/* =========================================================
   Rota da Fruticultura RIDE-DF — página inicial
   Reprodução fiel do layout aprovado (Elementor/Agron)
   ========================================================= */

@font-face {
  font-family: "Glittery Snowfall";
  src: url("../assets/fonts/Glittery-Snowfall.ttf") format("truetype");
  font-display: swap;
}

:root {
  /* Cores da marca */
  --roxo: #883E90;          /* cor primária (menu, play, rodapé) */
  --violeta: #8224E3;       /* botões */
  --lilas: #B588E2;         /* "Leia mais" no destaque, ícones do rodapé */
  --vermelho: #DD2C36;      /* botão da agenda */
  --verde: #5B8C51;         /* ícones / contadores */
  --verde-claro: #63AB52;   /* categoria / "Leia mais" */
  --verde-escuro: #0A2803;  /* títulos de cards */
  --oliva: #404A3D;         /* topo / subtítulos */
  --amarelo: #EDDD5E;
  --menta: #EDF2EC;         /* fundo de seções */
  --titulo: #3A3A3A;
  --texto: #5F5F5F;
  --cinza-rodape: #54595F;
  --branco: #fff;

  --raio: 28px;
  --container: 1320px;
  --font: "Nunito", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  color: var(--texto);
  background: var(--branco);
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, h5, ul { margin: 0; }
ul { padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; padding: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

:focus-visible { outline: 3px solid var(--violeta); outline-offset: 3px; border-radius: 6px; }

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 100;
  background: var(--violeta); color: #fff; padding: 10px 18px; border-radius: 100px; font-weight: 800;
}
.skip-link:focus { top: 12px; }

.container { width: min(var(--container), 100% - 30px); margin-inline: auto; }

/* ---------- Tipografia ---------- */
.h2 {
  font-size: 48px; line-height: 1.2083; font-weight: 800;
  letter-spacing: -0.02em; color: var(--titulo);
}
.h5 { font-size: 22px; line-height: 32px; font-weight: 800; color: var(--titulo); }
.body { font-size: 16px; line-height: 28px; font-weight: 500; color: var(--texto); }
.eyebrow {
  display: flex; align-items: center; gap: 5px;
  font-size: 15px; line-height: 28px; font-weight: 600; color: var(--oliva);
}
.eyebrow img { width: 20px; height: 20px; }

/* ---------- Botões ---------- */
.btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; gap: 10px;
  height: 58px; padding: 0 45px; border-radius: 100px;
  font-size: 16px; line-height: 1; font-weight: 800; color: #fff;
  border: 1px solid transparent;
  transition: background-color .3s ease, border-color .3s ease, color .3s ease;
  white-space: nowrap;
}
.btn svg { flex: none; transition: transform .3s ease; }
.btn:hover svg { transform: translate(2px, -2px); }
.btn--violet { background: var(--violeta); }
.btn--violet:hover { background: var(--roxo); }
.btn--outline-white { border-color: #fff; }
.btn--outline-green { border-color: var(--verde); }
.btn--ghost { background: transparent; border-color: #fff; }
.btn--ghost:hover { background: #fff; color: var(--violeta); }
.btn--red { background: var(--vermelho); }
.btn--red:hover { background: #c01f29; }
.btn-row { display: flex; flex-wrap: wrap; gap: 21px; }
.btn-row--center { justify-content: center; }

/* =========================================================
   CABEÇALHO
   ========================================================= */
.site-header { position: relative; z-index: 20; }

.topbar {
  display: flex; align-items: center;
  height: 56px; padding: 0 15px 0 31px;
  background: #fff;
  font-size: 15px; font-weight: 600; color: var(--oliva);
}
.topbar__brand { display: flex; align-items: center; gap: 6px; width: 116px; flex: none; }
.topbar__brand img { width: 20px; }
.topbar__sep { width: 1px; height: 50px; background: rgba(64, 74, 61, .14); flex: none; }
.topbar__item {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px;
  transition: color .3s;
}
.topbar__item svg { color: var(--verde); }
.topbar__item:hover { color: var(--violeta); }
.topbar__end { display: flex; align-items: center; gap: 22px; padding-left: 30px; flex: none; }

.lang { position: relative; }
.lang__current { display: flex; align-items: center; gap: 6px; font-weight: 600; color: var(--oliva); }
.lang__current img { width: 24px; }
.lang__current svg { margin-left: 4px; }
.lang__list {
  position: absolute; top: calc(100% + 12px); left: -14px; min-width: 150px;
  background: #fff; border-radius: 14px; padding: 8px;
  box-shadow: 0 14px 34px rgba(10, 40, 3, .14);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .2s, transform .2s, visibility .2s;
  z-index: 30;
}
.lang.is-open .lang__list { opacity: 1; visibility: visible; transform: none; }
.lang__list a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; }
.lang__list a:hover { background: var(--menta); }

.social { display: flex; align-items: center; gap: 19px; }
.social a { color: var(--oliva); transition: color .3s; }
.social a:hover { color: var(--violeta); }

/* Linha do menu (sobreposta ao hero) */
.navrow {
  position: absolute; top: 56px; left: 0; right: 0;
  height: 75px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center;
  pointer-events: none;
}
/* menu no centro exato da página, alinhado ao conteúdo; abas presas às bordas */
.navrow > .tab--left { grid-column: 1; justify-self: start; }
.navrow > .mainnav { grid-column: 2; }
.navrow > .tab--right { grid-column: 3; justify-self: end; }
.navrow > * { pointer-events: auto; }
.tab { position: relative; align-self: stretch; display: flex; align-items: center; background: #fff; }
.tab--left { padding: 0 12px 0 28px; border-bottom-right-radius: var(--raio); width: 110px; }
.tab--left img { width: 70px; height: 70px; }
.tab--right { padding: 0 10px 0 14px; border-bottom-left-radius: var(--raio); width: 251px; justify-content: flex-start; }
.tab--right .btn { height: 56px; padding: 0 42px; }

/* cantos invertidos que "recortam" o hero */
.corner { position: absolute; color: #fff; pointer-events: none; }
.corner--tr { top: 0; left: 100%; }
.corner--bl { top: 100%; left: 15px; }
.corner--tl { top: 0; right: 100%; transform: scaleX(-1); }
.corner--br { top: 100%; right: 15px; transform: scaleX(-1); }

.mainnav ul {
  display: flex; align-items: center;
  background: var(--roxo); border-radius: 25px;
  height: 46px;
}
.mainnav a {
  display: block; padding: 13px 20px;
  font-family: "Roboto", sans-serif; font-weight: 600; font-size: 16px; line-height: 20px; color: #fff;
  border-radius: 25px;
  transition: color .3s;
}
.mainnav a:hover { color: #e6d2f5; }

.menu-toggle { display: none; color: var(--titulo); padding: 8px; }

/* Menu mobile */
.mobile-menu {
  position: fixed; inset: 0; z-index: 60;
  background: #fff; padding: 28px 24px 40px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 22px;
  overflow-y: auto;
}
.mobile-menu[hidden] { display: none; }
.mobile-menu__close { position: absolute; top: 22px; right: 20px; padding: 8px; color: var(--titulo); }
.mobile-menu ul { width: 100%; }
.mobile-menu li a {
  display: block; padding: 14px 0; border-bottom: 1px solid rgba(36, 79, 11, .12);
  font-size: 20px; font-weight: 800; color: var(--titulo);
}
.mobile-menu li a[aria-current] { color: var(--roxo); }

/* =========================================================
   HERO
   ========================================================= */
.hero { padding: 0 15px; }
.hero__frame {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1060px); justify-content: center;
  min-height: 880px;
  padding: 150px 35px 96px;
  border-radius: 0 0 var(--raio) var(--raio);
  background: #2d3a24;
  overflow: hidden;
  isolation: isolate;
}
.hero__bg { position: absolute; inset: 0; z-index: -2; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.hero__frame::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: radial-gradient(ellipse at 50% 50%, rgba(5, 29, 1, .72) 0%, rgba(5, 29, 1, .5) 75%);
}
.hero__content { align-self: center; padding-bottom: 0; text-align: center; }
.hero__content .btn-row { justify-content: center; }
.hero__title {
  font-size: 88px; line-height: 90px; font-weight: 900;
  letter-spacing: -2.08px; color: #fff;
}
.hero__title .w { display: inline-block; }
.hero__lead { margin-top: 30px; font-size: 26px; line-height: 1.3; font-weight: 800; color: #fff; }
.hero__fruits { margin-top: 10px; font-size: 17px; line-height: 1.5; font-weight: 600; color: rgba(255, 255, 255, .82); }
.hero__rule { margin: 26px 0 37px; border: 0; height: 1px; background: rgba(255, 255, 255, .29); }
.hero__lead, .hero__rule { max-width: 778px; margin-inline: auto; }
.hero__content .btn { height: 56px; padding: 0 44.5px; }
.hero__content .btn--ghost { background: rgba(2, 1, 1, 0); }
.hero__content .btn--ghost:hover { background: #fff; }

/* Entrada do título: única animação de carregamento */
.js .hero__title .w { opacity: 0; transform: translateY(.35em); }
.js .hero__title.is-in .w {
  opacity: 1; transform: none;
  transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--i) * 90ms);
}

/* =========================================================
   VÍDEO (dentro de "O que é a Rota")
   ========================================================= */
.video-band {
  position: relative; z-index: 1; isolation: isolate;
  max-width: var(--container); height: 440px; margin: 56px auto 0;
  border-radius: var(--raio); overflow: hidden;
  display: grid; place-items: center;
}
.video-band__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.video-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(5, 29, 1, .62), rgba(5, 29, 1, .18)); }
.video-band__body { display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; padding: 0 20px; }
.video-band__label { font-size: 24px; line-height: 1.3; font-weight: 800; color: #fff; }
.play {
  position: relative;
  width: 84px; height: 84px; border-radius: 50%;
  background: var(--roxo); color: #fff;
  display: grid; place-items: center;
  transition: transform .3s ease;
}
.play svg { margin-left: 3px; }
.play::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .7);
  animation: ripple 2.4s ease-out infinite;
}
.play:hover { transform: scale(1.08); }
@keyframes ripple { from { transform: scale(1); opacity: 1; } to { transform: scale(1.8); opacity: 0; } }

/* =========================================================
   O QUE É A ROTA
   ========================================================= */
.about { position: relative; margin-top: 28px; padding: 20px 15px 104px; background: #fff; }
.about__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 434px) minmax(0, 467px) minmax(0, 434px);
  justify-content: space-between; gap: 30px;
  max-width: 1395px; margin-inline: auto;
}
.about__cherry { position: absolute; left: -40px; top: 334px; width: 171px; pointer-events: none; }
.about__berries { position: relative; align-self: start; padding-bottom: 14px; }
.about__berries-img {
  width: 434px; aspect-ratio: 1; object-fit: cover;
  -webkit-mask: url("../assets/img/mask-9.svg") center / cover no-repeat;
  mask: url("../assets/img/mask-9.svg") center / cover no-repeat;
}
.about__seal { position: absolute; left: 234px; top: 298px; width: 150px; }

.about__text { padding-top: 7px; text-align: center; }
.about__text .eyebrow { justify-content: center; }
.about__text .h2 { margin-top: 8px; }
.about__text .body { margin-top: 20px; margin-bottom: 21px; }
.about__text .btn { padding: 0 45px; }

.about__portrait { position: relative; padding: 0 0 14px 15px; }
.about__brush { position: absolute; left: 0; top: 0; width: 434px; }
.about__man { position: relative; width: 419px; }

.torn { position: absolute; left: 0; width: 100%; height: 46px; object-fit: fill; pointer-events: none; z-index: 2; }
.torn--up { bottom: 12px; }
.torn--down { bottom: -41px; transform: scaleY(-1); }

/* =========================================================
   NOTÍCIAS
   ========================================================= */
.news { position: relative; margin-top: -16px; background: var(--menta); padding: 80px 0 136px; }
.news__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.news__head .eyebrow { margin-bottom: 8px; }
.news__head .btn { margin-bottom: 23px; padding: 0 44.5px; }
.news__grid {
  margin-top: 42px;
  display: grid; grid-template-columns: minmax(0, 648px) minmax(0, 1fr); gap: 24px;
}

.feature {
  position: relative; height: 500px; border-radius: var(--raio); overflow: hidden;
  display: flex; flex-direction: column;
}
.feature__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.feature:hover .feature__img { transform: scale(1.04); }
.feature::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(rgba(36, 79, 11, 0) 0%, rgba(36, 79, 11, .8) 68.16%);
}
.feature__body { position: relative; z-index: 2; margin-top: auto; padding: 45px 45px 37px; height: 437px; display: flex; flex-direction: column; }
.datebox {
  width: 97px; height: 97px; border-radius: var(--raio); background: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.datebox__day { font-size: 34px; line-height: 47.6px; font-weight: 800; color: var(--oliva); }
.datebox__month { font-size: 16px; line-height: 24px; color: var(--texto); }
.feature__title { margin-top: 30px; font-size: 34px; line-height: 46px; font-weight: 800; letter-spacing: -.34px; color: #fff; }
.feature__title a {
  background: linear-gradient(transparent calc(100% - 1px), #fff 1px) no-repeat 0 0 / 0 100%;
  transition: background-size .5s ease;
}
.feature__title a:hover { background-size: 100% 100%; }
.feature__title a::after { content: ""; position: absolute; inset: 0; }

.readmore {
  display: inline-flex; align-items: center; gap: 10px; margin-top: auto;
  font-size: 16px; line-height: 28px; font-weight: 800; color: var(--verde-claro);
}
.readmore--light { color: var(--lilas); }

.carousel { min-width: 0; }
.carousel__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 24px) / 2);
  gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; padding-bottom: 4px;
}
.carousel__track::-webkit-scrollbar { display: none; }
.card { position: relative; scroll-snap-align: start; display: flex; flex-direction: column; }
.card__media { display: block; aspect-ratio: 1; border-radius: var(--raio); overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.card:hover .card__media img { transform: scale(1.05); }
.card__media--empty { background: #fff; display: grid; place-items: center; }
.card__media--empty img { width: 42%; height: auto; opacity: .9; }
.card:hover .card__media--empty img { transform: none; }
.meta { margin-top: 18px; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.meta__cat { position: relative; z-index: 2; font-size: 16px; line-height: 28px; font-weight: 500; color: var(--verde-claro); }
.meta__dot { width: 6px; height: 6px; border-radius: 50%; background: #C3C9C2; }
.meta time { font-family: "DM Sans", sans-serif; font-size: 16px; line-height: 26px; font-weight: 500; color: #636D6C; }
.card__title { margin: 9px 0 16px; font-size: 22px; line-height: 32px; font-weight: 800; color: var(--verde-escuro); }
.card__title a {
  background: linear-gradient(to right, var(--violeta), var(--violeta) 50%, var(--verde-escuro) 50%) 100% 0 / 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  transition: background-position .5s ease;
}
.card__title a:hover { background-position: 0 0; }
.card__title a::after { content: ""; position: absolute; inset: 0; }

/* =========================================================
   AGENDA
   ========================================================= */
.agenda { background: linear-gradient(var(--menta) 0 214px, #fff 214px); padding: 0 0 56px; }
.agenda .container { position: relative; top: -40px; }
.agenda__card {
  position: relative; isolation: isolate;
  display: flex; align-items: center;
  min-height: 330px; padding: 0 88px; border-radius: var(--raio);
  background: url("../assets/img/frutas-vermelhas.jpg") center / cover no-repeat;
}
.agenda__card::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: rgba(136, 62, 144, .6); }
.agenda__text { padding: 50px 0; }
.agenda__title { font-size: 93px; line-height: 1.5; font-weight: 900; letter-spacing: -2.08px; color: #fff; }
.agenda__text .btn { margin-top: 45px; }

/* =========================================================
   ÁRVORE DO CONHECIMENTO
   ========================================================= */
.tree { position: relative; background: var(--menta); padding: 63px 15px 278px; }
.tree__grid {
  display: grid; grid-template-columns: minmax(0, 652px) minmax(0, 557px);
  justify-content: space-between; align-items: center; gap: 40px;
  max-width: 1329px; margin-inline: auto;
}
.tree__media { position: relative; margin: 0; }
.tree__photo {
  width: 652px; aspect-ratio: 652 / 755; object-fit: cover;
  -webkit-mask: url("../assets/img/mask-1.png") center / 100% 100% no-repeat;
  mask: url("../assets/img/mask-1.png") center / 100% 100% no-repeat;
}
.tree__seal { position: absolute; left: 4px; top: 0; width: 194px; }
.tree__leaf { position: absolute; left: 36px; top: 153px; width: 77px; }
.tag {
  position: absolute; right: 0; bottom: 0; width: 281px;
  background: var(--amarelo); border-radius: var(--raio); padding: 30px 30px 21px;
}
.tag__title, .tag__text { display: block; }
.tag__head { display: flex; align-items: center; gap: 8px; padding-bottom: 20px; border-bottom: 1px solid rgba(36, 79, 11, .2); }
.tag__head img { width: 58px; flex: none; }
.tag__title { font-size: 20px; line-height: 29px; font-weight: 800; color: var(--verde-escuro); }
.tag__text { margin-top: 14px; font-size: 16px; line-height: 28px; font-weight: 500; color: var(--texto); }

.tree__text { position: relative; }
.tree__text .h2 { margin-top: 8px; }
.tree__text > .body { margin-top: 16px; max-width: 529px; }
.crops__title { margin-top: 18px; font-size: 22px; line-height: 32px; font-weight: 800; color: var(--verde); }
.crops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 26px 0 42px; }
.crop__media { position: relative; margin: 0; aspect-ratio: 3 / 4; border-radius: 22px; overflow: hidden; background: #fff; }
.crop__media > img { width: 100%; height: 100%; object-fit: cover; }
.crop__media--duo { display: grid; grid-template-rows: 3fr 2fr; gap: 4px; background: var(--menta); }
.crop__media--duo > img { min-height: 0; }
.crop__media--duo > img:first-child { object-position: 50% 58%; }
.crop__caption {
  position: absolute; left: 10px; bottom: 10px;
  padding: 3px 12px; border-radius: 999px; background: var(--amarelo);
  font-size: 14px; line-height: 22px; font-weight: 800; color: var(--verde-escuro);
}
.crop__name { margin-top: 14px; font-size: 18px; line-height: 24px; font-weight: 800; color: var(--verde-escuro); }
.tree__text > .btn { padding: 0 44.5px; }
.tree__berries { position: absolute; left: 212px; bottom: -147px; width: 118px; pointer-events: none; }

/* =========================================================
   CONTADORES
   ========================================================= */
.stats-wrap { position: relative; z-index: 3; margin-top: -176px; }
.stats {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  background: #fff; border: 2px dashed rgba(36, 79, 11, .49); border-radius: var(--raio);
  padding: 44px 0 39px;
}
.stat { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 46px 14px 0; }
.stat + .stat { border-left: 1.5px dashed rgba(36, 79, 11, .23); }
.stat { min-height: 296px; }
.stat__icon {
  width: 104px; height: 104px; border-radius: var(--raio); background: var(--verde); color: #fff;
  display: grid; place-items: center;
}
.stat__num { margin-top: 22px; white-space: nowrap; font-size: 38px; line-height: 52px; font-weight: 800; letter-spacing: -.96px; color: var(--titulo); font-variant-numeric: tabular-nums; }
.stat__pre { font-size: .58em; font-weight: 800; color: var(--verde); }
.stat__label { margin-top: 2px; max-width: 210px; font-size: 16px; line-height: 24px; font-weight: 500; }

/* =========================================================
   PARCEIROS
   ========================================================= */
.partners { padding: 113px 0 64px; }
.partners__inner { display: grid; gap: 36px; }
.partners__label { margin-bottom: 14px; font-size: 20px; line-height: 32px; font-weight: 500; color: #626C6B; }
.partners__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 32px; }
.partners__row img { width: auto; height: auto; max-width: 100%; }
.partners__pending {
  display: inline-flex; align-items: center; height: 64px; padding: 0 24px;
  border: 1.5px dashed #B9C2B6; border-radius: 14px;
  font-size: 22px; font-weight: 900; letter-spacing: .04em; color: #8A948A;
}

/* =========================================================
   RODAPÉ
   ========================================================= */
.site-footer { background: var(--cinza-rodape); color: #fff; }
.footer__top {
  display: grid; grid-template-columns: 223px repeat(3, minmax(0, 1fr));
  padding: 0 calc((100% - var(--container)) / 2);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.footer__logo { display: flex; align-items: center; padding: 28px 0; }
.footer__logo img { width: 150px; }
.contact {
  display: flex; align-items: center; gap: 14px;
  padding: 0 0 0 74px; min-height: 206px;
  border-left: 1px solid rgba(255, 255, 255, .12);
}
.contact__icon {
  width: 57px; height: 57px; border-radius: 50%; flex: none;
  background: var(--lilas); color: var(--violeta);
  display: grid; place-items: center;
}
.contact__label { font-size: 16px; line-height: 28px; font-weight: 500; color: rgba(255, 255, 255, .62); }
.contact__value { display: block; font-size: 20px; line-height: 28px; font-weight: 800; color: #fff; }
a.contact__value:hover { color: var(--lilas); }
.footer__social { display: flex; justify-content: center; gap: 21px; padding: 20px 0; }
.footer__social a { color: #fff; transition: color .3s; }
.footer__social a:hover { color: var(--lilas); }
.footer__bottom { background: var(--roxo); padding: 14px 15px; text-align: center; }
.footer__bottom p { font-size: 16px; line-height: 28px; font-weight: 500; color: rgba(255, 255, 255, .75); }

/* Voltar ao topo */
.to-top {
  position: fixed; right: 40px; bottom: 20px; z-index: 40;
  width: 50px; height: 50px; border-radius: 50%;
  background: #C8F31D; color: var(--oliva);
  display: grid; place-items: center;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .3s, transform .3s, visibility .3s;
}
.to-top svg { transform: rotate(-45deg); }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }

/* Modal de vídeo */
.video-modal {
  position: fixed; inset: 0; z-index: 80; background: rgba(10, 20, 8, .86);
  display: grid; place-items: center; padding: 24px;
}
.video-modal[hidden] { display: none; }
.video-modal__frame { width: min(960px, 100%); aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.video-modal__frame iframe { width: 100%; height: 100%; border: 0; }
.video-modal__close { position: absolute; top: 18px; right: 18px; color: #fff; padding: 10px; }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 1360px) {
  .hero__title { font-size: 78px; line-height: 80px; }
  .mainnav a { padding: 13px 14px; }
  .topbar__end { padding-left: 20px; }
  .about__seal { left: auto; right: 20px; }
}

@media (max-width: 1200px) {
  .topbar { padding-left: 20px; }
  .topbar__item:nth-of-type(2) { display: none; }
  .topbar__item:nth-of-type(2) + .topbar__sep { display: none; }
  .mainnav a { padding: 13px 11px; font-size: 15px; }
  .tab--right { width: auto; }
  .tab--right .btn { padding: 0 26px; }
  .hero__frame { min-height: 780px; }
  .hero__title { font-size: 68px; line-height: 72px; }

  .about__grid { grid-template-columns: 1fr 1fr; }
  .about__text { grid-column: 1 / -1; grid-row: 1; max-width: 640px; margin-inline: auto; padding-bottom: 20px; }
  .about__berries-img { width: 100%; }
  .about__brush { width: 100%; }
  .about__man { width: 96%; }

  .agenda__card { padding: 0 48px; }
  .agenda__title { font-size: 72px; }

  .tree__grid { grid-template-columns: 1fr 1fr; }
  .tree__photo { width: 100%; }
  .crops { gap: 14px; }
  .stat__num { font-size: 30px; line-height: 44px; }
  .partners__row img { max-height: 56px; }
  .partners__row .is-tall img { max-height: 96px; }

  .footer__top { grid-template-columns: 180px repeat(3, minmax(0, 1fr)); padding: 0 15px; }
  .contact { padding-left: 28px; }
  .contact__value { font-size: 17px; }
}

@media (max-width: 1024px) {
  .topbar { display: none; }
  .navrow { position: relative; top: 0; height: 85px; background: #fff; padding: 0 15px; }
  .tab { background: none; }
  .tab--left { width: auto; padding: 0; }
  .corner, .mainnav, .tab--right .btn { display: none; }
  .tab--right { padding: 0; }
  .menu-toggle { display: block; }
  .hero__frame { border-radius: var(--raio); }

  .hero__frame { grid-template-columns: 1fr; padding: 90px 30px 80px; min-height: 640px; align-content: center; }
  .hero__title { font-size: 58px; line-height: 62px; }

  .video-band { height: 380px; }

  .news__grid { grid-template-columns: 1fr; }
  .feature { height: 460px; }
  .feature__body { height: auto; }
  .feature__title { margin-top: 26px; margin-bottom: 26px; }

  .tree__grid { grid-template-columns: 1fr; max-width: 680px; }
  .tree__berries { display: none; }

  .stats { grid-template-columns: repeat(2, 1fr); row-gap: 30px; }
  .stat:nth-child(odd) { border-left: 0; }
  .stat:last-child { grid-column: 1 / -1; }
  .stat__num { font-size: 36px; }
  .partners__row { justify-content: center; gap: 22px 40px; }
  .stat { min-height: 0; padding-top: 10px; padding-bottom: 10px; }

  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__logo { grid-column: 1 / -1; justify-content: center; }
  .contact { min-height: 120px; border-top: 1px solid rgba(255, 255, 255, .12); }
  .contact:nth-of-type(2) { border-left: 0; }
}

@media (max-width: 767px) {
  .h2 { font-size: 36px; }
  .btn { height: 52px; padding: 0 30px; }
  .hero { padding: 0 10px; }
  .hero__frame { padding: 64px 20px 56px; min-height: 600px; }
  .hero__bg img { object-position: 50% 50%; }
  .hero__title { font-size: 42px; line-height: 46px; letter-spacing: -1px; }
  .hero__lead { margin-top: 22px; font-size: 19px; }
  .hero__fruits { font-size: 15px; }
  .hero__content .btn { padding: 0 30px; }

  .video-band { height: 240px; margin-top: 40px; }
  .video-band__label { font-size: 18px; }
  .play { width: 68px; height: 68px; }

  .about { padding: 40px 10px 84px; }
  .about__grid { grid-template-columns: 1fr; }
  .about__berries, .about__portrait { max-width: 420px; width: 100%; margin-inline: auto; }
  .about__seal { width: 110px; right: 0; top: auto; bottom: 0; }
  .about__cherry { display: none; }

  .news { padding: 60px 0 100px; }
  .news__head { flex-direction: column; align-items: flex-start; }
  .news__head .btn { margin-bottom: 0; }
  .feature { height: 440px; }
  .feature__body { padding: 28px; }
  .feature__title { font-size: 26px; line-height: 34px; }
  .carousel__track { grid-auto-columns: 82%; }

  .agenda__card { min-height: 0; padding: 0 24px; }
  .agenda__text { padding: 40px 0; }
  .agenda__title { font-size: 52px; letter-spacing: -1px; }
  .agenda__text .btn { margin-top: 20px; }

  .tree { padding: 50px 10px 220px; }
  .tag { position: relative; width: auto; margin-top: -60px; margin-left: 30px; }
  .tree__photo { -webkit-mask: none; mask: none; border-radius: var(--raio); aspect-ratio: 1; }
  .tree__seal { width: 120px; left: -6px; top: -20px; }
  .tree__leaf { display: none; }
  .crops { grid-template-columns: repeat(3, 68%); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -10px; padding-inline: 10px; scroll-padding-inline: 10px; }
  .crop { scroll-snap-align: start; }

  .stats-wrap { margin-top: -150px; }
  .stats { grid-template-columns: 1fr; padding: 24px 15px; }
  .stat + .stat { border-left: 0; border-top: 1.5px dashed rgba(36, 79, 11, .23); padding-top: 30px; }
  .stat:last-child { grid-column: auto; }
  .stat__num { font-size: 34px; }

  .partners { padding: 60px 0 44px; }
  .partners__row { gap: 18px 28px; }
  .partners__row img { max-height: 44px; }
  .partners__row .is-tall img { max-height: 72px; }
  .partners__pending { height: 44px; font-size: 17px; padding: 0 16px; }

  .footer__top { grid-template-columns: 1fr; }
  .contact { padding: 22px 15px; min-height: 0; border-left: 0; }
  .to-top { right: 16px; bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .marquee__track { animation: none; }
  .js .hero__title .w { opacity: 1; transform: none; }
}
