/* ============================================================
   Página Bio Gita — Versão 2026
   Implementação pixel-perfect do Figma (zNjkuwNaXmQ30n1MqZa9Hy)
   Canvas de referência: 1920 × 4891
   ============================================================ */

/* ---------- Fontes ---------- */
@font-face {
  font-family: 'BDO Grotesk';
  src: url('assets/fonts/BDOGrotesk-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'BDO Grotesk';
  src: url('assets/fonts/BDOGrotesk-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'BDO Grotesk';
  src: url('assets/fonts/BDOGrotesk-DemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'BDO Grotesk';
  src: url('assets/fonts/BDOGrotesk-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- Tokens (Figma) ---------- */
:root {
  --marrom: #673527;        /* S2 bg, pills 1 e 6 */
  --marrom-claro: #803F2E;  /* pill 3, topo da faixa */
  --verde-escuro: #364636;  /* pill 2, fundos */
  --verde-claro: #5A7059;   /* pill 4, fim do gradiente da página */
  --verde-cta: #2FC097;     /* botões CTA */
  --sage: #A4B3A2;          /* Cores/05 — bordas */
  --vinho: #4E2021;         /* pill 5 */
  --verde-30382f: #30382F;  /* pill 7 */
  --cinza-claro: #E1E1E1;   /* Cores/08 — gradiente dos cards */
  --preto: #1A1A1A;         /* KIT Gita/3 — footer */
  --texto: #1B1B1B;
  --bdo: 'BDO Grotesk', 'Inter', system-ui, sans-serif;
  --poppins: 'Poppins', system-ui, sans-serif;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--verde-escuro);
  font-family: var(--bdo);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display: block; }
a { color: inherit; text-decoration: none; }

/* paragrafo em branco dos blocos de texto (ritmo exato do Figma) */
.blank { user-select: none; }

/* unidade de leitura: termo composto nunca quebra no meio (premissa de LP) */
.nw { white-space: nowrap; }

/* O Figma alinha texto pela altura das maiúsculas (text-box-trim).
   Suportado em Chrome/Edge 133+, Safari 18.2+; degrada com ~3px em Firefox. */
.hero__headline, .hero__sub, .links__chip p, .card__pill, .card__text,
.card__cta span, .s2__title, .s2__text, .footer__topo, .footer__copy, .footer__dev p {
  text-box: trim-both cap alphabetic;
}

/* ============================================================
   COMPONENTES COMPARTILHADOS (desktop e mobile)
   ============================================================ */

.card__pill {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 53px;
  border-radius: 100px;
  font-family: var(--bdo);
  font-weight: 600;
  font-size: 22px;
  color: #fff;
  white-space: nowrap;
  background: var(--pill-bg, var(--marrom));
  width: var(--pill-w, auto);
}

.card__text {
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: var(--texto);
  width: var(--text-w, auto);
  height: var(--text-h, auto);
  word-break: break-word;
}
.card__text strong { font-weight: 700; }

.card__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--verde-cta);
  border-radius: 72.972px;
  padding: 3.649px 3.649px 3.649px 21.892px;
  width: var(--cta-w, auto);
  transition: filter .2s ease, transform .2s ease;
}
.card__cta:hover { filter: brightness(1.06); transform: translateY(-1px); }
.card__cta span {
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  line-height: normal;
  width: var(--cta-tw, auto);
}
.card__cta img { width: 33.817px; height: 33.817px; }

/* ---------- Círculos de foto (coordenadas nativas do Figma,
   compartilhados entre desktop e mobile) ----------
   O anel é um ::after overlay (não border real): no Figma o stroke é
   interno, pinta POR CIMA do conteúdo e não desloca as coordenadas
   dos filhos — border CSS faria as duas coisas erradas. */
.foto {
  position: absolute;
  width: 619px;
  height: 619px;
  border-radius: 990.4px;
  overflow: hidden;
  top: 50%;
}
.foto::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: var(--ring-w, 31.363px) solid var(--ring-color, transparent);
  pointer-events: none;
  z-index: 9;
}

/* Card 1 — Programa Empresa no Digital */
.foto--1 {
  left: 631px;
  transform: translateY(calc(-50% + 9.5px));
  background: var(--marrom);
  --ring-color: rgba(128, 63, 46, 0.5);
}
.foto--1 .foto__macbook {
  position: absolute;
  left: -223px;
  top: 0;
  width: 869px;
  height: 651.75px;
  object-fit: cover;
}
.card--1 .card__iphone15 {
  position: absolute;
  left: 408px;
  top: 111px;
  width: 447px;
  height: 335.25px;
  object-fit: cover;
}

/* Card 2 — Soluções com IA (thumb de vídeo) */
.foto--2 {
  left: 658px;
  transform: translateY(calc(-50% + 9.5px));
  background: var(--verde-escuro);
  --ring-color: var(--sage);
}
.foto--2 .video {
  position: absolute;
  left: -165px;
  top: 86px;
  width: 762.778px;
  height: 429.063px;
  background: #070707;
  overflow: hidden;
}
.foto--2 .video__junior {
  position: absolute;
  left: 87px;
  top: -65px;
  width: 768.333px;
  height: 576.25px;
  object-fit: cover;
}
.foto--2 .video__lowerthird {
  position: absolute;
  left: calc(50% - 15.9px);
  top: 293.06px;
  transform: translateX(-50%);
  width: 262.181px;
  height: 92.941px;
  border-radius: 7.85px;
  overflow: hidden;
  box-shadow: 1.139px 1.139px 4.27px 0px black;
}
.foto--2 .video__lowerthird img {
  position: absolute;
  left: 0;
  top: -3.72%;
  width: 105.39%;
  height: 103.72%;
  max-width: none;
}
.foto--2 .video__logo {
  position: absolute;
  left: calc(50% + 110.45px);
  top: 262.6px;
  transform: translateX(-50%) rotate(5.93deg);
  width: 66.563px;
  height: 66.563px;
  object-fit: cover;
}
.foto--2 .video__bar {
  position: absolute;
  left: 303.29px;
  top: 301.03px;
  width: 98.496px;
  height: 14.803px;
  background: #fff;
}
.foto--2 .video__caption {
  position: absolute;
  left: 234.32px;
  top: 254px;
  font-family: var(--poppins);
  font-weight: 500;
  font-style: italic;
  font-size: 31.208px;
  line-height: 1.25;
  letter-spacing: -1.2483px;
  color: #fff;
  white-space: nowrap;
}

/* Card 3 — Tráfego pago */
.foto--3 {
  left: 631px;
  transform: translateY(calc(-50% - 0.5px));
  background: var(--marrom);
  --ring-color: rgba(128, 63, 46, 0.5);
}
.foto--3 img {
  position: absolute;
  left: 0;
  top: -30px;
  width: 508px;
  height: 634.774px;
  object-fit: cover;
}

/* Card 4 — Lançamentos */
.foto--4 {
  left: 713px;
  transform: translateY(calc(-50% + 9.5px));
  background: var(--sage);
  --ring-color: var(--verde-escuro);
}
.foto--4 img {
  position: absolute;
  left: -32px;
  top: 30px;
  width: 419.52px;
  height: 559.36px;
  object-fit: cover;
}

/* Card 5 — YouTube (círculo vazio + macbook/iphone soltos) */
.foto--5 {
  left: 633px;
  transform: translateY(calc(-50% + 22.5px));
  background: var(--vinho);
  --ring-color: #E2D0B0;
  overflow: visible;
}
.card--5 .card__macbook {
  position: absolute;
  left: 436px;
  top: -71px;
  width: 786px;
  height: 589.5px;
  object-fit: cover;
}
.card--5 .card__iphone13 {
  position: absolute;
  left: 927px;
  top: 52px;
  width: 126.808px;
  height: 255.385px;
  border-radius: 21.528px;
  overflow: hidden;
}
.card--5 .card__iphone13 img {
  position: absolute;
  left: -69.53%;
  top: -14.67%;
  width: 348.84%;
  height: 129.91%;
  max-width: none;
}

/* Card 6 — Fale com a equipe */
.foto--6 {
  left: 622px;
  transform: translateY(calc(-50% + 42px));
  background: var(--marrom);
  --ring-color: rgba(128, 63, 46, 0.5);
}
.foto--6 img {
  position: absolute;
  left: 0;
  top: 21px;
  width: 461px;
  height: 510px;
  object-fit: cover;
}

/* Card 7 — Trabalhe na Gita (círculo 707) */
.foto--7 {
  left: 570px;
  width: 707px;
  height: 707px;
  border-radius: 1131.2px;
  --ring-w: 35.821px;
  transform: translateY(calc(-50% - 1.5px));
  background: var(--verde-escuro);
  --ring-color: var(--sage);
}
.foto--7 img {
  position: absolute;
  left: 0;
  top: -38px;
  width: 510px;
  height: 906.185px;
  object-fit: cover;
}

/* ============================================================
   DESKTOP — canvas 1920 absoluto, fiel ao Figma
   (escala proporcional via zoom no script.js)
   ============================================================ */
@media (min-width: 1024px) {

/* desktop: quebras voltam ao fluxo natural; cue de scroll e abreviação são mobile-only */
.hero__headline .mbr, .hero__sub .mbr { display: none; }
.hero__scroll { display: none; }
.ia-short { display: none; }
.ia-full { display: inline; }

.page { width: 100%; }
.canvas {
  position: relative;
  width: 1920px;
  height: 4891px;
  margin: 0 auto;
  background: linear-gradient(180deg, #364636 0%, #5A7059 100%);
  overflow: hidden;
}

/* ---------- Faixa marrom central ----------
   Fica ACIMA do hero inteiro (foto + recorte da Tay): no Figma v2 a faixa
   cobre o recorte da Tay na faixa central (x671-1249), então o chip fica
   100% sobre marrom e a Tay aparece só à DIREITA da faixa. */
.strip {
  position: absolute;
  left: 671px;
  top: 504px;
  width: 578px;
  height: 3299px;
  border-radius: 50px 50px 0 0;
  background: linear-gradient(to top, #673527, #803F2E);
  z-index: 5;
}

/* ---------- Hero ---------- */
.hero {
  position: absolute;
  left: 0;
  top: 0;
  width: 1920px;
  height: 941px;
  border-radius: 0 0 450px 450px;
  overflow: hidden;
  filter: drop-shadow(0px 55px 38.65px rgba(0, 0, 0, 0.35));
  z-index: 2;
}
.hero__bg { position: absolute; inset: 0; border-radius: 0 0 450px 450px; overflow: hidden; }
.hero__photo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

/* padrão de logomarcas à esquerda */
.hero__pattern {
  position: absolute;
  left: calc(50% - 1199.5px);
  top: calc(50% - 13.6px);
  transform: translate(-50%, -50%);
  display: flex;
  gap: 39.938px;
  align-items: center;
}
.hero__pattern img { width: 61.974px; flex-shrink: 0; }
.hero__pattern img:nth-child(odd) { height: 1794.667px; }
.hero__pattern img:nth-child(even) { height: 1917.798px; }

/* card branco com a copy (v2) — Figma 3:8 */
.hero__card {
  position: absolute;
  left: 418px;
  top: 74px;
  width: 648px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
  padding: 33px 43px 47px 33px;
  background: #fdfdfd;
  border-radius: 35px;
  filter: drop-shadow(-4px 4px 4px rgba(0, 0, 0, 0.5));
  z-index: 6;
}

.hero__logo { width: 112px; height: 69.335px; flex-shrink: 0; }

.hero__headline {
  width: 570px;
  font-family: var(--poppins);
  font-weight: 400;
  font-size: 30px;
  line-height: 40px;
  color: var(--marrom);
  word-break: break-word;
}
.hero__headline em { font-weight: 700; font-style: italic; }

.hero__sub {
  width: 521px;
  height: 77px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-family: var(--poppins);
  font-weight: 400;
  font-size: 18px;
  line-height: normal;
  color: var(--verde-escuro);
  word-break: break-word;
}
.hero__sub em { font-weight: 700; font-style: italic; }

/* logomarca grande (blend overlay) + recorte da foto acima dela */
.hero__brandmark {
  /* Nova foto (headshot) ocupa a direita — a logomarca-blend cruzava o rosto. */
  display: none;
  position: absolute;
  left: 1270px;
  top: 52px;
  width: 637.265px;
  height: 734.729px;
  mix-blend-mode: overlay;
  z-index: 3;
  pointer-events: none;
}
.hero__cutout {
  position: absolute;
  left: 0;
  top: 0;
  width: 1920px;
  height: 941px;
  object-fit: cover;
  object-position: 0.05% 0;
  z-index: 4;
  pointer-events: none;
}

/* ---------- LINKS ---------- */
.links {
  position: absolute;
  left: 418px;
  top: 537px;
  width: 1084px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 6;
}

.links__chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 42px;
  padding: 0 20px;
  border: 3px solid rgba(255, 255, 255, 0.33);
  border-radius: 100px;
  margin-bottom: 40px;
}
.links__chip p {
  font-weight: 400;
  font-size: 16px;
  color: #fff;
  line-height: normal;
  width: 423px;
  word-break: break-word;
}
.links__chip p strong { font-weight: 700; }
.links__chip img {
  width: 10.311px;
  height: 17.822px;
  transform: rotate(90deg);
}

/* cards */
.card {
  position: relative;
  width: 1084px;
  height: var(--card-h, 430px);
  border: 1px solid var(--sage);
  border-radius: 50px;
  overflow: hidden;
  background: var(--card-grad, linear-gradient(-4.6011deg, rgb(225, 225, 225) 70.118%, rgb(255, 255, 255) 85.972%));
}
.card--1, .card--2 { margin-bottom: 40px; }
.card--3, .card--4, .card--5, .card--6 { margin-bottom: 20px; }
.card--5 { --card-grad: linear-gradient(-4.324deg, rgb(225, 225, 225) 70.118%, rgb(255, 255, 255) 85.972%); }
.card--6 { --card-grad: linear-gradient(-3.9079deg, rgb(225, 225, 225) 70.118%, rgb(255, 255, 255) 85.972%); }
.card--7 { --card-grad: linear-gradient(-4.8354deg, rgb(225, 225, 225) 70.118%, rgb(255, 255, 255) 85.972%); }

.card__content {
  position: absolute;
  left: 54px;
  top: 41px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
  z-index: 2;
}

.card__media { position: absolute; inset: 0; z-index: 1; }
.card__visuals { position: absolute; inset: 0; }

/* ---------- S2 — Quem somos ---------- */
.s2 {
  position: absolute;
  left: 0;
  top: 3803px;
  width: 1920px;
  height: 838px;
  background: var(--marrom);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 100px 418px;
  z-index: 5;
}
.s2__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px;
  color: #fff;
  margin-right: -10.827px;
}
.s2__title {
  font-weight: 700;
  font-size: 28px;
  line-height: normal;
  width: 564.827px;
}
.s2__text {
  font-weight: 400;
  font-size: 18px;
  line-height: normal;
  width: 518px;
  word-break: break-word;
}
.s2__text strong { font-weight: 700; }

.s2__card {
  position: relative;
  flex-shrink: 0;
  width: 530px;
  height: 638px;
  border-radius: 50px;
  overflow: hidden;
  background: var(--verde-escuro);
  box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.5);
}
.s2__bg {
  position: absolute;
  left: -670.37px;
  top: 0;
  width: 2060.125px;
  height: 638px;
}
.s2__bg img { width: 100%; height: 100%; object-fit: cover; }
.s2__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(54, 70, 54, 0) 50.888%, rgb(54, 70, 54) 100%),
    linear-gradient(270deg, rgba(54, 70, 54, 0) 70.83%, rgb(54, 70, 54) 111.84%);
}
.s2__junior {
  position: absolute;
  left: 105.45px;
  top: -1.73px;
  width: 585.547px;
  height: 731.89px;
  object-fit: cover;
  transform: rotate(180deg) scaleY(-1);
}
.s2__tay {
  position: absolute;
  left: -133px;
  top: -155px;
  width: 531.42px;
  height: 797.033px;
  object-fit: cover;
}

/* ---------- Footer ---------- */
.footer {
  position: absolute;
  left: 0;
  top: 4641px;
  width: 1920px;
  height: 250.38px;
  background: var(--preto);
  z-index: 5;
}
.footer__inner {
  position: absolute;
  left: 418px;
  top: 62px;
  width: 1084px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.footer__top { display: flex; align-items: center; justify-content: center; }
.footer__topo {
  display: flex;
  align-items: center;
  gap: 15px;
  font-weight: 400;
  font-size: 16px;
  line-height: 28.8px;
  color: #fff;
  white-space: nowrap;
}
.footer__topo img {
  width: 28px;
  height: 28px;
  transform: rotate(-90deg) scaleY(-1);
}
.footer__divider { width: 100%; height: 1px; background: #fff; opacity: 0.3; }
.footer__bottom { display: flex; align-items: center; justify-content: space-between; }
.footer__copy {
  font-weight: 300;
  font-size: 12px;
  line-height: 28.8px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
}
.footer__dev { display: flex; align-items: center; gap: 10px; }
.footer__dev p {
  font-weight: 300;
  font-size: 10px;
  line-height: 24px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
}
.footer__dev img { width: 62.505px; height: 38.694px; }

} /* fim desktop */

/* ============================================================
   MOBILE (< 1024px) — adaptação derivada do design desktop
   (o Figma só tem versão desktop; ver README)
   ============================================================ */
@media (max-width: 1023.98px) {

.canvas {
  background: linear-gradient(180deg, #364636 0%, #5A7059 100%);
  overflow: hidden;
}
.strip { display: none; }

/* ---------- Hero mobile (fiel ao Figma 5:2) ----------
   Foto full-bleed mostra o rosto da Tay; o card branco full-bleed
   sobe (margin negativa) e cobre só o peito/mãos dela. Fundo marrom
   atrás do card emenda com a seção .links. Proporções do frame 480px:
   foto 430h, card começa em y=290 → overlap 140px, foto visível 290px. */
.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--marrom);
  border-radius: 0;
  overflow: hidden;
  min-height: 0;
}
.hero__bg {
  position: relative;
  inset: auto;
  width: 100%;
  aspect-ratio: 480 / 430;   /* foto na proporção do recorte do Figma */
  max-height: 430px;         /* congela a partir de 480px (tablets caem no mobile) */
}
.hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 100% 24%; /* 481-1023 usa a completa (paisagem): foto ancorada à direita, rosto no terço */
  position: absolute;
  inset: 0;
}
.hero__pattern { display: none; }
.hero__brandmark { display: none; }
.hero__cutout { display: none; }

.hero__card {
  position: relative;
  left: auto; right: auto; bottom: auto;
  width: 100%;
  /* overlap reduzido (era 29.2vw/140px): card desce e revela mais do busto */
  margin-top: calc(-1 * min(19vw, 92px));
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: min(7.3vw, 35px);     /* respiro do Figma (35px @480) */
  padding: 35px min(5.4vw, 26px) 36px;  /* laterais reduzidas: texto mais largo (pedido Junior 17/07) */
  background: #fdfdfd;
  border-radius: 35px;
  box-shadow: 0 -4px 22px rgba(0, 0, 0, 0.16);
  z-index: 2;
}
.hero__logo {
  position: relative;
  width: min(23.3vw, 112px); /* 112px @480 (= Figma); proporcional abaixo */
  aspect-ratio: 112 / 69.335;/* trava a proporção — SVG é preserveAspectRatio:none, evita distorção */
  height: auto;
  flex-shrink: 0;
}
/* Figma mobile: headline Poppins 22px centralizado, cláusula-alvo bold itálico INLINE (mesmo tamanho) */
.hero__headline {
  position: relative;
  width: 100%;
  font-family: var(--poppins);
  font-weight: 400;
  font-size: min(22px, 4.3vw); /* escala pras 3 linhas largas caberem inteiras */
  line-height: 1.426;        /* 31.383/22 do Figma */
  letter-spacing: -0.44px;
  color: var(--marrom);
  text-wrap: balance;        /* quebras coerentes (premissa de LP) */
}
.hero__headline em {
  display: inline;
  margin: 0;
  font-weight: 700;
  font-style: italic;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
}
.hero__sub {
  position: relative;
  width: 100%;
  max-width: none;                /* quebras fixas via .mbr — usa a largura toda do card */
  height: auto;
  font-family: var(--poppins);
  font-weight: 400;
  /* escala pra linha 2 ("com posicionamento...automação,", 402px @16px) caber inteira */
  font-size: min(16px, 3.55vw);
  line-height: 1.45;
  color: var(--verde-escuro);
  text-wrap: pretty;              /* quebras coerentes (premissa de LP) */
}

/* mobile abrevia "inteligência artificial" pra I.A no sub (linha larga) */
.ia-full { display: none; }

/* cue de scroll no fim da hero (só mobile/tablet) */
.hero__scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  margin-top: calc(-1 * min(3.5vw, 17px)); /* aproxima do sub, metade do gap do card */
  color: var(--marrom);
  opacity: 0.65;
}
.hero__scroll-txt {
  font-family: var(--poppins);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hero__scroll svg {
  animation: heroScrollBounce 1.6s ease-in-out infinite;
}
@keyframes heroScrollBounce {
  0%, 100% { transform: translateY(0); opacity: 0.45; }
  50%      { transform: translateY(6px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__scroll svg { animation: none; }
}
.hero__sub em { font-weight: 700; font-style: italic; }

/* ---------- LINKS (seção marrom com os cards) ---------- */
.links {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 44px 16px 52px;
  width: 100%;
  background: var(--marrom);
}

.links__chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 20px;
  border: 2px solid rgba(255, 255, 255, 0.34);
  border-radius: 100px;
  margin-bottom: 30px;
  max-width: 360px;
}
.links__chip p { font-size: 14px; color: #fff; line-height: 1.35; text-align: center; }
.links__chip p strong { font-weight: 700; }
.links__chip img { width: 9px; height: 15px; transform: rotate(90deg); flex-shrink: 0; }

/* ---------- Card (mobile-first: banner no topo, CTA full-width) ---------- */
.card {
  position: relative;
  width: 100%;
  max-width: 440px;
  margin: 0 auto 22px;
  display: flex;
  flex-direction: column-reverse; /* DOM = conteúdo, mídia → invertido: mídia em cima */
  border: 1px solid rgba(164, 179, 162, 0.6);
  border-radius: 26px;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff 0%, #E9E9E7 100%);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
}
.card:last-child { margin-bottom: 0; }

/* banner visual no topo do card */
.card__media {
  width: var(--stage-w);
  height: var(--stage-h);
  align-self: center;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.card__visuals {
  position: absolute;
  left: var(--shift);
  top: 0;
  width: 1084px;
  height: var(--stage-h);
}

.card__content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  padding: 22px 22px 24px;
}
.card__pill {
  align-self: flex-start;
  height: auto;
  min-height: 0;
  width: auto;
  max-width: 100%;
  padding: 9px 17px;
  font-size: 13px;
  letter-spacing: 0.2px;
  white-space: normal;
  text-align: left;
  line-height: 1.2;
}
.card__text {
  width: auto;
  height: auto;
  min-height: 0;
  font-size: 15.5px;
  line-height: 1.5;
}
.card__text .blank { line-height: 0.5; }

/* CTA full-width, alvo de toque confortável */
.card__cta {
  width: 100%;
  max-width: 100%;
  min-height: 56px;
  padding: 7px 7px 7px 24px;
  border-radius: 30px;
  margin-top: 2px;
}
.card__cta span { font-size: 15.5px; width: auto; }
.card__cta img { width: 42px; height: 42px; }
.card__cta:active { transform: scale(0.985); filter: brightness(0.96); }

/* ---------- S2 — Quem somos ---------- */
.s2 {
  background: var(--marrom);
  padding: 52px 24px 56px;
  display: flex;
  flex-direction: column;
  gap: 34px;
  align-items: center;
  margin-top: 0;
}
.s2__copy { display: flex; flex-direction: column; gap: 20px; color: #fff; max-width: 460px; }
.s2__title { font-weight: 700; font-size: 23px; line-height: 1.25; }
.s2__text { font-weight: 400; font-size: 15.5px; line-height: 1.55; }
.s2__text strong { font-weight: 700; }

.s2__cardwrap { width: 100%; max-width: 440px; display: flex; justify-content: center; }
.s2__card {
  position: relative;
  width: 530px;
  height: 638px;
  border-radius: 44px;
  overflow: hidden;
  background: var(--verde-escuro);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4);
}
.s2__bg { position: absolute; left: -670.37px; top: 0; width: 2060.125px; height: 638px; }
.s2__bg img { width: 100%; height: 100%; object-fit: cover; }
.s2__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(54, 70, 54, 0) 50.888%, rgb(54, 70, 54) 100%),
    linear-gradient(270deg, rgba(54, 70, 54, 0) 70.83%, rgb(54, 70, 54) 111.84%);
}
.s2__junior { position: absolute; left: 105.45px; top: -1.73px; width: 585.547px; height: 731.89px; object-fit: cover; transform: rotate(180deg) scaleY(-1); }
.s2__tay { position: absolute; left: -133px; top: -155px; width: 531.42px; height: 797.033px; object-fit: cover; }

/* ---------- Footer ---------- */
.footer { background: var(--preto); padding: 38px 24px 46px; }
.footer__inner { display: flex; flex-direction: column; gap: 22px; max-width: 460px; margin: 0 auto; }
.footer__top { display: flex; justify-content: center; }
.footer__topo { display: flex; align-items: center; gap: 12px; font-size: 15px; color: #fff; }
.footer__topo img { width: 26px; height: 26px; transform: rotate(-90deg) scaleY(-1); }
.footer__divider { width: 100%; height: 1px; background: #fff; opacity: 0.25; }
.footer__bottom { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.footer__copy { font-weight: 300; font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: #fff; text-align: center; }
.footer__dev { display: flex; align-items: center; gap: 10px; }
.footer__dev p { font-weight: 300; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; }
.footer__dev img { width: 56px; height: auto; }

} /* fim mobile */

/* ============================================================
   Modais Premium — Bio Gita (glassmorphism)
   ============================================================ */

/* ── Overlay ── */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  overflow-y: auto;
  padding: 32px 16px;
  box-sizing: border-box;
  background: rgba(12, 9, 7, 0.55);
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}
.modal-overlay.is-open {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  animation: overlayIn .35s ease both;
}
@keyframes overlayIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Orbs de fundo animados ── */
.modal-orb {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9001;
  opacity: 0;
  transition: opacity .6s ease;
}
.modal-overlay.is-open .modal-orb { opacity: 1; }

.modal-orb--1 {
  width: 480px; height: 480px;
  top: -120px; left: -120px;
  background: radial-gradient(circle, rgba(128,63,46,.45) 0%, transparent 65%);
  filter: blur(70px);
  animation: orb1 11s ease-in-out infinite;
}
.modal-orb--2 {
  width: 400px; height: 400px;
  bottom: -80px; right: -80px;
  background: radial-gradient(circle, rgba(54,70,54,.45) 0%, transparent 65%);
  filter: blur(60px);
  animation: orb2 14s ease-in-out infinite;
}
.modal-orb--3 {
  width: 240px; height: 240px;
  top: 45%; right: 8%;
  background: radial-gradient(circle, rgba(196,149,106,.3) 0%, transparent 65%);
  filter: blur(50px);
  animation: orb3 9s ease-in-out infinite;
}

@keyframes orb1 {
  0%,100% { transform: translate(0,0) scale(1); }
  33%      { transform: translate(70px,50px) scale(1.05); }
  66%      { transform: translate(-25px,80px) scale(0.97); }
}
@keyframes orb2 {
  0%,100% { transform: translate(0,0); }
  40%      { transform: translate(-60px,-70px); }
  70%      { transform: translate(35px,-25px); }
}
@keyframes orb3 {
  0%,100% { transform: translate(0,0) scale(1); }
  50%      { transform: translate(-50px,35px) scale(1.18); }
}

/* ── Card glass ── */
.modal {
  position: relative;
  z-index: 9010;
  width: 100%;
  max-width: 520px;
  margin: auto;
  border-radius: 22px;
  overflow: hidden;
  background: rgba(62, 50, 44, 0.66);
  backdrop-filter: blur(40px) saturate(155%);
  -webkit-backdrop-filter: blur(40px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow:
    0 48px 110px rgba(0,0,0,0.5),
    0 0 0 1px rgba(128,63,46,0.16) inset,
    0 1px 0 rgba(255,255,255,0.12) inset;
  font-family: 'BDO Grotesk', 'Inter', system-ui, sans-serif;
  animation: cardIn .5s cubic-bezier(0.16,1,0.3,1) both;
  animation-delay: .05s;
}
@keyframes cardIn {
  from { opacity: 0; transform: translateY(56px) scale(0.95); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.modal.is-leaving {
  animation: cardOut .22s ease-in both !important;
  animation-delay: 0s !important;
}
@keyframes cardOut {
  to { opacity: 0; transform: translateY(28px) scale(0.96); }
}

/* pontilhado decorativo no canto superior direito */
.modal::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 180px; height: 180px;
  background-image: radial-gradient(circle, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size: 16px 16px;
  -webkit-mask-image: radial-gradient(ellipse 85% 85% at 100% 0%, black 35%, transparent 100%);
  mask-image: radial-gradient(ellipse 85% 85% at 100% 0%, black 35%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* ── Header ── */
.modal__header {
  position: relative;
  padding: 32px 32px 28px;
  background: linear-gradient(135deg, rgba(128,63,46,.34) 0%, rgba(128,63,46,.08) 55%, transparent 100%);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  z-index: 1;
}

.modal__badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(128,63,46,.18);
  border: 1px solid rgba(128,63,46,.32);
  border-radius: 99px;
  padding: 5px 13px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(235,185,155,.88);
  margin-bottom: 16px;
}
.modal__badge-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #803F2E;
  box-shadow: 0 0 8px rgba(128,63,46,.9);
  animation: dotPulse 2.2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes dotPulse {
  0%,100% { opacity: 1; transform: scale(1); box-shadow: 0 0 8px rgba(128,63,46,.9); }
  50%      { opacity: .6; transform: scale(.75); box-shadow: 0 0 4px rgba(128,63,46,.4); }
}

.modal__title {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 7px;
  line-height: 1.25;
  letter-spacing: -.012em;
}
.modal__subtitle {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.45);
  margin: 0;
  line-height: 1.55;
}

.modal__close {
  position: absolute;
  top: 26px; right: 26px;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  color: rgba(255,255,255,.45);
  font-size: 19px;
  cursor: pointer;
  transition: all .22s;
  line-height: 1;
}
.modal__close:hover {
  background: rgba(255,255,255,.13);
  border-color: rgba(255,255,255,.2);
  color: #fff;
  transform: rotate(90deg);
}

/* ── Body ── */
.modal__body { padding: 24px 32px 32px; }

/* ── Form ── */
.modal-form { display: flex; flex-direction: column; }

/* ── Campo individual ── */
.gf {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.055);
  opacity: 0;
  transform: translateY(18px);
  animation: fieldIn .42s cubic-bezier(0.16,1,0.3,1) both;
}
.gf:last-of-type { border-bottom: none; }
.gf:first-of-type { padding-top: 4px; }

@keyframes fieldIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

.gf__label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: 9px;
  transition: color .2s;
}
.gf:focus-within .gf__label { color: rgba(215,148,115,.82); }
.gf__req { color: #9E5038; }
.gf__opt { font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 11px; color: rgba(255,255,255,.22); }

.gf__input,
.gf__select,
.gf__textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 16px;
  background: #372924;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  font-family: inherit;
  font-size: 15px;
  color: rgba(255,255,255,.96);
  outline: none;
  -webkit-appearance: none;
  transition: background .2s, border-color .2s, box-shadow .2s, color .2s;
}
.gf__input::placeholder,
.gf__textarea::placeholder { color: rgba(255,255,255,.45); }

.gf__input:hover,
.gf__select:hover,
.gf__textarea:hover {
  background-color: #40302a;
  border-color: rgba(255,255,255,.28);
}
.gf__input:focus,
.gf__select:focus,
.gf__textarea:focus {
  background-color: #473630;
  border-color: rgba(214,126,92,.85);
  box-shadow: 0 0 0 3px rgba(128,63,46,.28), 0 1px 3px rgba(0,0,0,.3);
  color: #fff;
}

.gf__textarea { resize: vertical; min-height: 92px; line-height: 1.55; }

.gf__select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='rgba(255,255,255,0.3)' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
}
.gf__select:focus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='rgba(215,148,115,0.85)' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.gf__select option { background: #2a201c; color: #fff; }

/* ── Honeypot ── */
.gf--honey { display: none !important; }

/* ── Ações ── */
.modal__actions { margin-top: 24px; }

/* ── Botão submit com shimmer ── */
.modal__submit {
  position: relative;
  width: 100%;
  padding: 16px;
  background: linear-gradient(110deg, #6B3325 0%, #9E4D38 40%, #803F2E 60%, #6B3325 100%);
  background-size: 250% 100%;
  background-position: 0% center;
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .025em;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  overflow: hidden;
  transition: background-position .5s ease, transform .15s, box-shadow .25s;
  box-shadow: 0 4px 22px rgba(128,63,46,.42), 0 1px 0 rgba(255,255,255,.12) inset;
}
.modal__submit:hover:not(:disabled) {
  background-position: 100% center;
  box-shadow: 0 8px 34px rgba(128,63,46,.58), 0 1px 0 rgba(255,255,255,.12) inset;
  transform: translateY(-2px);
}
.modal__submit:active:not(:disabled) { transform: translateY(0) scale(.99); }
.modal__submit:disabled { opacity: .45; cursor: not-allowed; transform: none; }

/* shimmer sweep */
.modal__submit::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(108deg, transparent 35%, rgba(255,255,255,.22) 50%, transparent 65%);
  transform: translateX(-100%);
}
.modal__submit:hover:not(:disabled)::after {
  animation: shimmerSweep .65s ease forwards;
}
@keyframes shimmerSweep {
  to { transform: translateX(220%); }
}

/* ── Trust ── */
.modal__trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 14px;
  font-size: 11px;
  color: rgba(255,255,255,.22);
  letter-spacing: .04em;
  user-select: none;
}

/* ── Sucesso ── */
.modal__success {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
  padding: 12px 0 4px;
}
.modal__success.is-visible {
  display: flex;
  animation: fieldIn .55s cubic-bezier(0.16,1,0.3,1) both;
}

.modal__success-ring {
  width: 76px; height: 76px;
  border-radius: 50%;
  background: rgba(47,192,151,.1);
  border: 2px solid rgba(47,192,151,.38);
  display: flex; align-items: center; justify-content: center;
  animation: ringPop .5s cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes ringPop {
  from { transform: scale(.4); opacity: 0; }
  to   { transform: scale(1);   opacity: 1; }
}
.modal__success-check {
  width: 34px; height: 34px;
  stroke: #2FC097;
  stroke-width: 2.4;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 58;
  stroke-dashoffset: 58;
  animation: checkDraw .55s .25s ease forwards;
}
@keyframes checkDraw { to { stroke-dashoffset: 0; } }

.modal__success h3 { font-size: 21px; font-weight: 700; color: #fff; margin: 0; }
.modal__success p  { font-size: 14px; color: rgba(255,255,255,.45); margin: 0; line-height: 1.6; max-width: 300px; }

/* ── Erro inline ── */
.modal__error {
  display: none;
  margin-bottom: 12px;
  background: rgba(140,30,20,.2);
  border: 1px solid rgba(200,70,60,.28);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  color: rgba(255,175,160,.9);
}
.modal__error.is-visible { display: block; }

/* ── Mobile: sheet deslizante ── */
@media (max-width: 600px) {
  .modal-overlay { padding: 0; align-items: flex-end; }
  .modal {
    border-radius: 20px 20px 0 0;
    max-height: 92dvh;
    overflow-y: auto;
    animation: sheetIn .42s cubic-bezier(0.16,1,0.3,1) both !important;
    animation-delay: .04s !important;
  }
  .modal.is-leaving { animation: sheetOut .22s ease-in both !important; animation-delay: 0s !important; }
  @keyframes sheetIn  { from { transform: translateY(100%); } to { transform: translateY(0); } }
  @keyframes sheetOut { to   { transform: translateY(100%); } }
  .modal__header { padding: 26px 24px 22px; }
  .modal__body   { padding: 18px 24px 48px; }
  .modal-orb--1  { width: 280px; height: 280px; }
  .modal-orb--2  { width: 240px; height: 240px; }
  .modal-orb--3  { display: none; }
}

/* Link da Política de Privacidade no rodapé (migração grupogita.com.br) */
.footer__copy { white-space: normal; }
.footer__policy {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(255,255,255,.45);
  transition: text-decoration-color .2s;
}
.footer__policy:hover { text-decoration-color: #fff; }
