/* =========================================================
   PEDRO BERNARDO — COACH FEMININO
   Paleta: #D62F39 (vermelho) · #0C0E09 (base) · #EFEEE9 (creme)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Anton&display=swap');
@import url('https://db.onlinewebfonts.com/c/07cb29fdcb073fff840edc6de2067b50?family=Amsterdam+Four_ttf');

:root{
  --red: #D62F39;
  --base: #0C0E09;
  --cream: #EFEEE9;
  --white: #FFFFFF;

  --font-display: 'Anton', sans-serif;      /* sempre cor creme */
  --font-body: 'Helvetica Neue', Arial, sans-serif; /* sempre branco */
  --font-script: 'Amsterdam Four_ttf', 'Amsterdam Four', cursive; /* sempre cor base */

  --container: 1180px;
  --gap: clamp(1.25rem, 4vw, 3rem);
  --ease: cubic-bezier(.22,1,.36,1);
}

*, *::before, *::after{ box-sizing: border-box; }

html{
  scroll-behavior: smooth;
  scroll-snap-type: y proximity;
}

body{
  margin:0;
  background: var(--base);
  color: var(--white);
  font-family: var(--font-body);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
section{ position:relative; }

/* ---------- utilities ---------- */
.container{
  width:100%;
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  padding: 1.1rem clamp(1.25rem, 5vw, 3rem);
  transition: background-color .4s var(--ease), backdrop-filter .4s var(--ease), padding .3s var(--ease), border-color .4s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled{
  background: rgba(12,14,9,.86);
  backdrop-filter: blur(10px);
  padding-block: .75rem;
  border-color: rgba(239,238,233,.1);
}

.nav__inner{
  max-width: var(--container);
  margin-inline:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
}

.logo{ display:inline-flex; }
.logo__img{
  display:block;
  height: clamp(38px, 5vw, 52px);
  width: auto;
  object-fit: contain;
  transition: transform .3s var(--ease);
}
.logo:hover .logo__img{
  transform: scale(1.06);
}

.nav__links{
  display:flex;
  align-items:center;
  gap: clamp(1.25rem, 3vw, 2.25rem);
}
.nav__link{
  position:relative;
  font-family: var(--font-body);
  color: var(--white);
  font-size: .95rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding-block: .3rem;
}
.nav__link span{ position:relative; z-index:1; }
.nav__link::after{
  content:"";
  position:absolute;
  left:0; right:100%;
  bottom:0;
  height:2px;
  background: var(--red);
  transition: right .35s var(--ease);
}
.nav__link:hover::after{ right:0; }

.nav__link--cta{
  border:1px solid var(--cream);
  padding: .5rem 1.1rem;
  border-radius: 999px;
  transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.nav__link--cta::after{ display:none; }
.nav__link--cta:hover{
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}

.nav__toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:34px; height:34px;
  background:none; border:none;
  cursor:pointer;
  padding:0;
}
.nav__toggle span{
  display:block;
  height:2px;
  background: var(--cream);
  border-radius:2px;
  transition: transform .35s var(--ease), opacity .3s var(--ease);
}
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  min-height: 100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top: 6.5rem;
  overflow:hidden;
  scroll-snap-align: start;
}

.hero__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero__line{
  position:absolute;
  background: linear-gradient(90deg, transparent, rgba(239,238,233,.08), transparent);
  height:1px;
  width:140%;
  left:-20%;
}
.hero__line--1{ top:22%; transform: rotate(-4deg); }
.hero__line--2{ bottom:18%; transform: rotate(3deg); }

.hero__inner{
  position:relative;
  z-index:1;
  max-width: var(--container);
  margin-inline:auto;
  width:100%;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items:center;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family: var(--font-body);
  color: var(--white);
  text-transform: uppercase;
  letter-spacing:.18em;
  font-size:.8rem;
  margin: 0 0 1.1rem;
}
.eyebrow__dot{
  width:8px; height:8px;
  border-radius:50%;
  background: var(--red);
  box-shadow: 0 0 0 4px rgba(214,47,57,.18);
}

.hero__title{
  font-family: var(--font-display);
  color: var(--cream);
  font-size: clamp(3.2rem, 9vw, 6.4rem);
  line-height: .92;
  letter-spacing: .01em;
  margin: 0 0 1.4rem;
  text-transform: uppercase;
}

.hero__desc{
  font-family: var(--font-body);
  color: var(--white);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
  max-width: 46ch;
  opacity:.92;
  margin: 0 0 2rem;
}

.hero__actions{ display:flex; flex-wrap:wrap; gap: 1rem; }

.btn{
  font-family: var(--font-body);
  color: var(--white);
  font-size: .95rem;
  letter-spacing:.04em;
  text-transform: uppercase;
  padding: .95rem 1.9rem;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  transition: transform .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.btn--primary{
  background: var(--red);
  border: 1px solid var(--red);
}
.btn--primary:hover{
  transform: translateY(-3px);
  box-shadow: 0 12px 28px -10px rgba(214,47,57,.65);
}
.btn--ghost{
  background: transparent;
  border: 1px solid rgba(239,238,233,.35);
}
.btn--ghost:hover{
  border-color: var(--cream);
  transform: translateY(-3px);
}

/* ---------- photo frame ---------- */
.hero__figure{ display:flex; justify-content:center; }
.frame{
  position:relative;
  width:100%;
  max-width: 380px;
  aspect-ratio: 3 / 4;
  border: 1px solid var(--cream);
}
.frame__inner{
  position:absolute; inset: 14px;
  overflow:hidden;
}
.frame__inner::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(214,47,57,.28), transparent 55%, rgba(12,14,9,.35));
  mix-blend-mode: multiply;
  pointer-events:none;
}

/* foto real */
.frame__photo{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(.15) contrast(1.05);
}

/* placeholder (some por padrão, só aparece se a foto falhar) */
.frame__placeholder{
  display:none;
  position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(214,47,57,.12), transparent 55%),
    repeating-linear-gradient(135deg, rgba(239,238,233,.05) 0 2px, transparent 2px 14px);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  text-align:center;
}
.frame--empty .frame__photo{ display:none; }
.frame--empty .frame__placeholder{ display:flex; }

.frame__label{
  font-family: var(--font-body);
  color: var(--white);
  text-transform: uppercase;
  letter-spacing:.14em;
  font-size:.85rem;
  opacity:.85;
}
.frame__sub{
  font-family: var(--font-body);
  color: var(--white);
  font-size:.72rem;
  opacity:.5;
  letter-spacing:.08em;
  text-transform: uppercase;
}

.frame__corners{
  position:absolute;
  inset:-1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  overflow: visible;
}
.corner{
  fill:none;
  stroke: var(--red);
  stroke-width: 2.5;
  stroke-dasharray: 44;
  stroke-dashoffset: 44;
  vector-effect: non-scaling-stroke;
  animation: draw-corner 1s var(--ease) forwards;
}
.corner--tr{ animation-delay: .15s; }
.corner--bl{ animation-delay: .3s; }
.corner--br{ animation-delay: .45s; }

@keyframes draw-corner{
  to{ stroke-dashoffset: 0; }
}

/* ---------- marquee ---------- */
.marquee{
  position:relative;
  z-index:1;
  border-top: 1px solid rgba(239,238,233,.12);
  border-bottom: 1px solid rgba(239,238,233,.12);
  overflow:hidden;
  padding-block: .85rem;
  margin-top: clamp(2.5rem, 6vw, 4rem);
}
.marquee__track{
  display:flex;
  width: max-content;
  animation: marquee 18s linear infinite;
}
.marquee__track span{
  font-family: var(--font-display);
  color: var(--cream);
  font-size: clamp(1.1rem, 2.4vw, 1.6rem);
  white-space: nowrap;
  padding-inline: .5rem;
}
@keyframes marquee{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* =========================================================
   SECTIONS (Sobre / Serviços / Contato)
   ========================================================= */
.section{
  padding-block: clamp(4.5rem, 10vw, 7rem);
  border-top: 1px solid rgba(239,238,233,.08);
}
.section--alt{ background: rgba(239,238,233,.03); }

/* seção de tela cheia — "trava" no scroll pra marcar a troca de bloco */
.section--snap{
  min-height: 100svh;
  padding-block: 6.5rem;
  display:flex;
  align-items:center;
  scroll-snap-align: start;
}

/* variante clara (fundo creme, texto escuro) */
.section--light{
  background: var(--cream);
  border-top-color: rgba(12,14,9,.1);
}
.section--light .section__tag{ color: var(--red); }
.section--light .section__title{ color: var(--base); }
.section--light .section__text{ color: var(--base); opacity:.78; }

/* ---------- depoimentos ---------- */
.depoimentos__intro{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}
.depoimentos__intro .section__text{
  max-width: 42ch;
}
.depoimentos__grid{
  max-width: var(--container);
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  columns: 2;
  column-gap: clamp(1rem, 2.5vw, 1.75rem);
}
.depoimento{
  margin:0;
  margin-bottom: clamp(1rem, 2.5vw, 1.75rem);
  break-inside: avoid;
  overflow:hidden;
  background: rgba(239,238,233,.04);
  border:1px solid rgba(239,238,233,.14);
  border-radius:10px;
  transition: transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.depoimento:hover{
  transform: translateY(-5px);
  border-color: var(--red);
  box-shadow: 0 18px 35px -24px rgba(214,47,57,.8);
}
.depoimento--featured{
  border-color: rgba(214,47,57,.65);
  background: linear-gradient(145deg, rgba(214,47,57,.1), rgba(239,238,233,.03));
}
.depoimento img{
  width:100%;
  height:auto;
  display:block;
}
.depoimento__caption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 1rem .9rem;
  font-family:var(--font-body);
  color:var(--white);
  opacity:.58;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.depoimento__stars{
  color:var(--red);
  opacity:1;
  font-size:.95rem;
  letter-spacing:.12em;
  line-height:1;
}

/* ---------- metodologia: grid de 2 colunas ---------- */
.metodologia__inner{
  max-width: var(--container);
  margin-inline:auto;
  width:100%;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}
.metodologia__grid{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  margin-top: clamp(2rem, 5vw, 3rem);
  align-items:start;
}
.metodologia__col{ max-width: 46ch; }
.metodologia__label{
  display:block;
  font-family: var(--font-body);
  color: var(--base);
  opacity:.5;
  text-transform: uppercase;
  letter-spacing:.16em;
  font-size:.75rem;
  margin-bottom: .6rem;
}
.metodologia__divider{
  width:1px;
  align-self:stretch;
  background: rgba(12,14,9,.15);
}

.section__inner{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  max-width: 60ch;
}
.section__tag{
  display:inline-block;
  font-family: var(--font-body);
  color: var(--red);
  text-transform: uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
  margin-bottom: .9rem;
}
.section__title{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.05;
  margin: 0 0 1rem;
}
.section__text{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.85;
  line-height:1.7;
  margin: 0 0 1.75rem;
}

/* ---------- serviços: lista serviço + texto (vira card depois) ---------- */
.servicos__grid{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  margin-top: clamp(2rem, 5vw, 3rem);
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(2.25rem, 5vw, 3.5rem) clamp(2rem, 5vw, 4rem);
}
.servico__title{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(1.35rem, 2.6vw, 1.75rem);
  line-height: 1.1;
  margin: 0 0 .75rem;
}
.servico__text{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.82;
  line-height:1.7;
  max-width: 42ch;
  margin: 0;
}

/* ---------- planos e valores: cards de preço ---------- */
.pricing__intro{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  margin-top: clamp(4rem, 9vw, 6rem);
  padding-top: clamp(2.5rem, 6vw, 3.5rem);
  border-top: 1px solid rgba(239,238,233,.1);
  text-align:center;
}
.pricing__heading{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(1.6rem, 3.4vw, 2.2rem);
  margin: 0 0 .6rem;
}
.pricing__sub{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.7;
  margin:0;
}

.pricing__grid{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  margin-top: clamp(2.5rem, 6vw, 3.5rem);
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: stretch;
}

.price-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background: rgba(239,238,233,.03);
  border: 1px solid rgba(239,238,233,.14);
  border-radius: 10px;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  transition: transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.price-card:hover{
  transform: translateY(-6px);
  border-color: rgba(239,238,233,.3);
}
.price-card--featured{
  border-color: var(--red);
  background: linear-gradient(160deg, rgba(214,47,57,.09), rgba(239,238,233,.02));
}
.price-card--featured:hover{
  border-color: var(--red);
  box-shadow: 0 20px 45px -20px rgba(214,47,57,.55);
}

.price-card__badge{
  align-self:flex-start;
  font-family: var(--font-body);
  color: var(--red);
  background: rgba(214,47,57,.12);
  border: 1px solid rgba(214,47,57,.4);
  text-transform: uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  padding: .35rem .75rem;
  border-radius: 999px;
  margin-bottom: 1.25rem;
}

.price-card__title{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(1.3rem, 2.6vw, 1.7rem);
  line-height: 1.1;
  margin: 0 0 .75rem;
}
.price-card__desc{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.78;
  line-height:1.6;
  margin: 0 0 1.5rem;
}

.price-card__list{
  list-style:none;
  margin: 0 0 1.5rem;
  padding: 0 0 1.5rem;
  border-bottom: 1px solid rgba(239,238,233,.12);
  display:flex;
  flex-direction:column;
  gap:.65rem;
  flex-grow:1;
}
.price-card__list li{
  font-family: var(--font-body);
  color: var(--white);
  font-size:.92rem;
  opacity:.9;
  padding-left: 1.6rem;
  position:relative;
}
.price-card__list li::before{
  content:"✓";
  position:absolute;
  left:0; top:0;
  color: var(--red);
  font-weight:bold;
}

.price-card__footer{ margin-top:auto; }
.price-card__label{
  display:block;
  font-family: var(--font-body);
  color: var(--white);
  opacity:.55;
  text-transform: uppercase;
  letter-spacing:.1em;
  font-size:.7rem;
  margin-bottom: .4rem;
}
.price-card__price{
  display:flex;
  align-items:baseline;
  gap:.6rem;
  margin-bottom: 1.5rem;
}
.price-card__old{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.45;
  text-decoration: line-through;
  font-size:1rem;
}
.price-card__value{
  font-family: var(--font-display);
  color: var(--cream);
  font-size: clamp(1.8rem, 4vw, 2.3rem);
  line-height:1;
}
.price-card__value small{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.6;
  font-size: .95rem;
  text-transform: none;
  letter-spacing:0;
  margin-left:.2rem;
}
.price-card__cta{
  width:100%;
  justify-content:center;
}

/* ---------- contato (centralizado) ---------- */
.contato__inner{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  text-align:center;
}
.contato__inner .section__tag,
.contato__inner .section__text{
  display:block;
}
.contato__inner .section__text{ margin-inline:auto; max-width: 42ch; }

.contato__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 300px));
  justify-content:center;
  gap: clamp(1.25rem, 3vw, 2rem);
  margin-top: clamp(2.5rem, 6vw, 3.5rem);
}

.contato__card{
  display:flex;
  align-items:center;
  gap: 1rem;
  text-align:left;
  background: rgba(239,238,233,.03);
  border: 1px solid rgba(239,238,233,.14);
  border-radius: 10px;
  padding: 1.25rem 1.4rem;
  transition: transform .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);
}
.contato__card:hover{
  transform: translateY(-5px);
  border-color: var(--red);
  background: rgba(214,47,57,.07);
}

.contato__icon{
  flex-shrink:0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--red);
  color: var(--cream);
  display:flex;
  align-items:center;
  justify-content:center;
}
.contato__icon svg{ width: 22px; height: 22px; }

.contato__text{ display:flex; flex-direction:column; gap:.2rem; }
.contato__label{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: 1.05rem;
  letter-spacing:.01em;
}
.contato__value{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.8;
  font-size:.88rem;
}

.contato__back{
  display:inline-block;
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  font-family: var(--font-body);
  color: var(--white);
  opacity:.55;
  text-transform: uppercase;
  letter-spacing:.1em;
  font-size:.8rem;
  border-bottom: 1px solid transparent;
  transition: opacity .3s var(--ease), border-color .3s var(--ease);
}
.contato__back:hover{
  opacity:1;
  border-color: rgba(239,238,233,.4);
}

.coupon__feedback{
  font-family: var(--font-body);
  font-size: .82rem;
  margin: 1rem 0 0;
  min-height: 1.2em;
  text-align:center;
}
.coupon__feedback--ok{ color: var(--cream); }
.coupon__feedback--error{ color: var(--red); }

/* ---------- assinatura / marca final ---------- */
.brand-final{
  background: var(--red);
  text-align:center;
  padding-block: clamp(5rem, 13vw, 9rem);
  overflow:hidden;
}
.brand-final__inner{
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}
.brand-final__stack{
  position:relative;
  display:block;
}
.brand-final__signature{
  position:absolute;
  top:50%;
  left:50%;
  z-index:2;
  transform: translate(-50%, -50%) rotate(-4deg);
  font-family: var(--font-script);
  color: var(--base);
  font-size: clamp(2.2rem, 7vw, 4.5rem);
  line-height:1;
  white-space: nowrap;
  pointer-events:none;
}
.brand-final__title{
  position:relative;
  z-index:1;
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(3.4rem, 13vw, 9.5rem);
  line-height: .92;
  letter-spacing: .01em;
  margin: 0;
}
.brand-final__copy{
  font-family: var(--font-body);
  color: var(--base);
  opacity:.6;
  text-transform: uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  margin: clamp(2rem, 5vw, 3rem) 0 0;
}

/* =========================================================
   SCROLL REVEAL ANIMATION
   ========================================================= */
.reveal{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay: calc(var(--d, 0) * 110ms);
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 900px){
  .hero__inner{
    grid-template-columns: 1fr;
    text-align:center;
  }
  .eyebrow{ justify-content:center; }
  .hero__desc{ margin-inline:auto; }
  .hero__actions{ justify-content:center; }
  .hero__figure{ order:-1; }
  .frame{ max-width: 300px; }

  .metodologia__grid{
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .metodologia__col{ max-width: none; }
  .metodologia__divider{
    width:100%;
    height:1px;
  }

  .servicos__grid{
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }

  .pricing__grid{
    grid-template-columns: 1fr;
  }

  .depoimentos__grid{
    columns: 1;
  }

  .contato__grid{
    grid-template-columns: 1fr;
    justify-items:center;
  }
  .contato__card{ width:100%; max-width: 340px; }
}

@media (max-width: 760px){
  .nav__links{
    position:fixed;
    inset: 4.5rem 0 auto 0;
    flex-direction:column;
    align-items:flex-start;
    gap: 0;
    background: rgba(12,14,9,.98);
    border-bottom: 1px solid rgba(239,238,233,.12);
    padding: 1rem clamp(1.25rem, 5vw, 3rem) 1.5rem;
    transform: translateY(-8px);
    opacity:0;
    visibility:hidden;
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  }
  .nav__links.is-open{
    transform: translateY(0);
    opacity:1;
    visibility:visible;
  }
  .nav__link{ width:100%; padding-block: .85rem; border-bottom:1px solid rgba(239,238,233,.08); }
  .nav__link--cta{ margin-top:.75rem; text-align:center; }
  .nav__toggle{ display:flex; }
}

@media (max-width: 480px){
  .hero{ padding-top: 5.5rem; }
  .hero__title{ font-size: clamp(2.6rem, 13vw, 4rem); }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; scroll-snap-type: none; }
  .reveal{ transition:none; opacity:1; transform:none; }
  .marquee__track{ animation:none; }
  .corner{ animation:none; stroke-dashoffset:0; }
  .btn, .logo__img, .nav__link::after{ transition:none; }
}

/* =========================================================
   ANAMNESE (formulário em etapas)
   ========================================================= */
.anamnese-page{ min-height:100vh; }
.anamnese{
  max-width: 720px;
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 2rem);
}
.anamnese__intro{ text-align:center; margin-bottom: clamp(2.5rem, 6vw, 3.5rem); }
.anamnese__intro .section__text{ margin-inline:auto; max-width: 52ch; }

/* ---------- barra de progresso ---------- */
.wizard__progress{
  height: 4px;
  background: rgba(239,238,233,.1);
  border-radius: 999px;
  overflow:hidden;
  margin-bottom: .6rem;
}
.wizard__bar{
  height:100%;
  width: 14.28%;
  background: var(--red);
  border-radius: 999px;
  transition: width .4s var(--ease);
}
.wizard__stepLabel{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.5;
  font-size:.78rem;
  text-transform: uppercase;
  letter-spacing:.1em;
  margin: 0 0 2rem;
}

/* ---------- etapas ---------- */
.wizard__step{
  display:none;
  border:none;
  padding:0;
  margin:0 0 2rem;
}
.wizard__step.is-active{ display:block; }
.wizard__title{
  font-family: var(--font-display);
  color: var(--cream);
  text-transform: uppercase;
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  margin: 0 0 .5rem;
}
.wizard__hint{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.65;
  font-size:.88rem;
  line-height:1.6;
  margin: 0 0 1.75rem;
}

.wizard__row{ margin-bottom: 1.5rem; }
.wizard__row--split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.wizard__label{
  display:block;
  font-family: var(--font-body);
  color: var(--white);
  font-size:.9rem;
  line-height:1.5;
  margin-bottom: .5rem;
}
.wizard__field{
  width:100%;
  font-family: var(--font-body);
  color: var(--white);
  background: rgba(239,238,233,.05);
  border: 1px solid rgba(239,238,233,.2);
  border-radius: 10px;
  padding: .8rem 1rem;
  font-size: .95rem;
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
textarea.wizard__field{ resize: vertical; min-height: 3rem; font-family: var(--font-body); }
.wizard__field::placeholder{ color: var(--white); opacity:.4; }
.wizard__field:focus{
  outline:none;
  border-color: var(--red);
  background: rgba(239,238,233,.08);
}
select.wizard__field{
  appearance:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 7.5L10 12l4.5-4.5' stroke='%23EFEEE9' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}
select.wizard__field option{ background: var(--base); color: var(--white); }

/* ---------- chips (radio/checkbox estilizados) ---------- */
.wizard__chips{
  display:flex;
  flex-wrap:wrap;
  gap: .6rem;
}
.wizard__chip{
  position:relative;
  cursor:pointer;
}
.wizard__chip input{
  position:absolute;
  opacity:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
}
.wizard__chip span{
  display:inline-block;
  font-family: var(--font-body);
  color: var(--white);
  font-size:.85rem;
  padding: .55rem 1rem;
  border: 1px solid rgba(239,238,233,.2);
  border-radius: 999px;
  background: rgba(239,238,233,.04);
  transition: border-color .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
}
.wizard__chip:hover span{ border-color: rgba(239,238,233,.4); }
.wizard__chip.is-checked span{
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}
.wizard__other-field{ margin-top: .75rem; max-width: 320px; }

/* ---------- consentimento ---------- */
.wizard__consent{
  display:flex;
  align-items:flex-start;
  gap: .75rem;
  cursor:pointer;
  margin-bottom: 2rem;
}
.wizard__consent input{ margin-top: .3rem; flex-shrink:0; width:18px; height:18px; accent-color: var(--red); }
.wizard__consent span{
  font-family: var(--font-body);
  color: var(--white);
  opacity:.85;
  font-size:.88rem;
  line-height:1.6;
}

.wizard__final-actions{
  display:flex;
  flex-wrap:wrap;
  gap: 1rem;
  margin-bottom: 1rem;
}

/* ---------- erro + navegação ---------- */
.wizard__error{
  font-family: var(--font-body);
  color: var(--red);
  font-size:.85rem;
  min-height: 1.2em;
  margin: 0 0 1rem;
}
.wizard__nav{
  display:flex;
  justify-content:space-between;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(239,238,233,.1);
}

@media (max-width: 560px){
  .wizard__row--split{ grid-template-columns: 1fr; }
  .wizard__nav{ flex-direction: row; }
}
