/* =========================================================
   Reset
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, h1, h2, h3, p, figure, blockquote, dl, dd { margin: 0; }
ul, ol { margin: 0; padding: 0; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
button { border: 0; }

/* =========================================================
   Tokens
   ========================================================= */
:root {
  /* Bases */
  --onix: #17110E;
  --onix-soft: #241B16;
  --perola: #FAF6F0;
  --areia: #EDE3D6;

  /* Metais */
  --ouro: #C6A15B;
  --ouro-claro: #E7D2A2;
  --ouro-escuro: #8C6B2F;

  /* Apoio */
  --rose: #B98A7E;
  --vinho: #5E2434;

  /* Semânticos */
  --bg: var(--perola);
  --fg: var(--onix);
  --muted: #6B5B50;
  --line: rgba(23, 17, 14, .12);
  --line-dark: rgba(250, 246, 240, .16);
  --glass: rgba(23, 17, 14, .82);
  --glass-light: rgba(250, 246, 240, .7);
  --shadow: rgba(23, 17, 14, .16);
  --shadow-deep: rgba(23, 17, 14, .34);
  --gold-glow: rgba(198, 161, 91, .3);
  --gold-faint: rgba(198, 161, 91, .12);
  --pearl-faint: rgba(250, 246, 240, .08);
  --pearl-mid: rgba(250, 246, 240, .68);
  --transparent: rgba(23, 17, 14, 0);

  --grad-ouro: linear-gradient(100deg, var(--ouro-escuro) 0%, var(--ouro) 22%, var(--ouro-claro) 48%, var(--ouro) 72%, var(--ouro-escuro) 100%);
  --grad-soft: linear-gradient(140deg, var(--perola), var(--areia));
  --grad-dark: linear-gradient(145deg, var(--onix-soft), var(--onix));
  --grad-placeholder: linear-gradient(135deg, var(--onix-soft), var(--vinho));

  --font: "Fraunces", "Times New Roman", Georgia, serif;
  --container: 1200px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section-space: clamp(3.25rem, 5.5vw, 5.5rem);

  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --dur-fast: 240ms;
  --dur-base: 560ms;
  --dur-slow: 900ms;
}

/* =========================================================
   Base
   ========================================================= */
html { background: var(--onix); }
body {
  min-width: 320px;
  overflow-x: clip;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  font-size: clamp(1rem, .25vw + .95rem, 1.125rem);
  font-variation-settings: "SOFT" 35, "opsz" 16;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
body.is-locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
h1, h2, h3 {
  font-weight: 350;
  font-variation-settings: "SOFT" 20, "opsz" 120;
  letter-spacing: -.025em;
  line-height: .98;
  text-wrap: balance;
}
h1 { font-size: clamp(2.75rem, 7vw, 5.5rem); }
h2 { font-size: clamp(2.25rem, 5.3vw, 4.6rem); }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.08; }
p { max-width: 62ch; }
/* Colunas estreitas ficam de fora do justificado: evita rios de espaco entre palavras. */
main p:not(.kicker):not(.closing__signature):not(.carousel__hint):not(.editorial-card p),
.diagnosis__goal-value > span {
  text-align: justify;
  text-justify: inter-word;
  hyphens: none;
  overflow-wrap: break-word;
}
::selection { background: var(--ouro); color: var(--onix); }
:focus-visible { outline: 2px solid var(--ouro-claro); outline-offset: 4px; }

/* =========================================================
   Layout
   ========================================================= */
.section-shell { width: min(calc(100% - var(--gutter) - var(--gutter)), var(--container)); margin-inline: auto; }
.section-light, .section-dark { position: relative; padding-block: var(--section-space); }
.section-light { background: var(--perola); color: var(--onix); }
.section-dark { background: var(--onix); color: var(--perola); }
.section-heading { display: grid; gap: .8rem; max-width: 820px; margin-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.section-heading > p:last-child { color: var(--muted); }
.section-dark .section-heading > p:last-child { color: var(--pearl-mid); }
.kicker {
  color: var(--ouro-escuro);
  font-size: .76rem;
  font-weight: 600;
  font-variation-settings: "SOFT" 20, "opsz" 20;
  letter-spacing: .18em;
  line-height: 1.3;
  text-transform: uppercase;
}
.section-dark .kicker { color: var(--ouro-claro); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================
   Componentes
   ========================================================= */
.skip-link {
  position: fixed;
  z-index: 1000;
  inset: .75rem auto auto .75rem;
  padding: .75rem 1rem;
  border-radius: 999px;
  background: var(--perola);
  color: var(--onix);
  transform: translateY(-160%);
  transition: transform var(--dur-fast) var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }
.brand { display: inline-flex; min-height: 44px; align-items: center; gap: .65rem; font-weight: 600; letter-spacing: .02em; }
.diamond {
  display: inline-block;
  width: 1.15rem;
  aspect-ratio: 1;
  border: 1px solid currentColor;
  color: var(--ouro);
  transform: rotate(45deg);
  flex: 0 0 auto;
}
.diamond--small { width: .62rem; }
.button {
  position: relative;
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 1rem 2rem;
  overflow: hidden;
  border: 1px solid var(--ouro);
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.1;
  isolation: isolate;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.button::after {
  position: absolute;
  z-index: -1;
  inset: -40% auto -40% -45%;
  width: 38%;
  background: linear-gradient(90deg, var(--transparent), var(--glass-light), var(--transparent));
  content: "";
  transform: skewX(-20deg);
  animation: button-shine 4s var(--ease-in-out) infinite;
}
.button:hover { transform: translateY(-3px) scale(1.015); box-shadow: 0 12px 28px var(--shadow); }
.button--gold { background: var(--grad-ouro); color: var(--onix); }
.button--compact { min-height: 46px; padding: .65rem 1.1rem; background: var(--perola); color: var(--onix); font-size: .9rem; }
.button--large { min-height: 68px; padding: 1.25rem 3rem; font-size: 1.08rem; }
.button--conversion { width: 100%; text-wrap: balance; }

@media (min-width: 768px) {
  .button--conversion { width: min(100%, 460px); min-width: 320px; }
}
.text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .5rem;
  border-bottom: 1px solid var(--ouro);
  font-weight: 550;
  transition: color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.text-link:hover { color: var(--ouro-claro); transform: translateY(-2px); }
.reading-progress { position: fixed; z-index: 999; inset: 0 0 auto; height: 2px; background: var(--pearl-faint); }
.reading-progress span { display: block; width: 100%; height: 100%; background: var(--grad-ouro); transform: scaleX(var(--reading-progress, 0)); transform-origin: left; }
.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem var(--gutter);
  color: var(--perola);
  transition: background var(--dur-fast), backdrop-filter var(--dur-fast), padding var(--dur-fast);
}
.site-header.is-scrolled { padding-block: .7rem; background: var(--glass); backdrop-filter: blur(18px); }
.curtain { position: fixed; z-index: 2000; inset: 0; display: grid; place-items: center; pointer-events: none; }
.curtain__half { position: absolute; inset-inline: 0; height: 50%; background: var(--onix); transform: scaleY(1); }
.curtain__half--top { top: 0; transform-origin: top; }
.curtain__half--bottom { bottom: 0; transform-origin: bottom; }
.curtain__diamond { position: relative; z-index: 1; width: 74px; fill: none; stroke: var(--ouro); stroke-width: 2; stroke-dasharray: 260; stroke-dashoffset: 260; }
.curtain.is-opening .curtain__diamond { animation: diamond-draw .55s var(--ease-out) forwards, curtain-mark-out .25s .55s forwards; }
.curtain.is-opening .curtain__half { transition: transform .7s .5s var(--ease-in-out); transform: scaleY(0); }
.curtain.is-done { display: none; }

/* =========================================================
   Seções
   ========================================================= */
/* Hero */
.hero {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: max(600px, 82svh);
  align-items: stretch;
  overflow: hidden;
  background: var(--onix);
  color: var(--perola);
}
.hero::before { position: absolute; inset: 0; background: radial-gradient(circle at 18% 60%, var(--gold-faint), var(--transparent) 38%); content: ""; }
.hero__copy { position: relative; z-index: 2; display: grid; grid-row: 1; align-self: center; gap: 1.1rem; width: min(56%, 760px); padding: clamp(6.5rem, 10vh, 8rem) 0 clamp(5.5rem, 9vh, 7rem) var(--gutter); }
.hero__kicker { color: var(--ouro-claro); }
.hero h1 { max-width: 10.5ch; }
.text-shine {
  color: var(--ouro-claro);
  background: var(--grad-ouro);
  background-size: 260% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: text-shine 6s ease-in-out infinite;
}
.hero__lead { max-width: 39ch; color: var(--pearl-mid); font-size: clamp(1.05rem, 1.7vw, 1.35rem); text-align: justify; text-justify: inter-word; text-wrap: wrap; }
.hero__actions { display: flex; align-items: flex-start; flex-direction: column; gap: .55rem; }
.hero__proof { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin-top: .35rem; color: var(--pearl-mid); font-size: .8rem; letter-spacing: .03em; }
.hero__proof span { display: inline-flex; align-items: center; gap: .55rem; }
.hero__proof span::before { width: .34rem; aspect-ratio: 1; background: var(--ouro); content: ""; transform: rotate(45deg); }
.hero__media { position: absolute; z-index: 1; inset: 0 0 0 45%; overflow: hidden; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); }
.hero__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, var(--onix) 0%, var(--transparent) 33%); content: ""; }
.hero__media img { width: 100%; height: 108%; object-fit: cover; object-position: 62% 42%; transform: translateY(var(--parallax-y, 0)); }
.hero__media-line { position: absolute; z-index: 2; top: -10%; bottom: -10%; left: 12%; width: 1px; background: var(--grad-ouro); transform: rotate(11deg); }
.scroll-cue { position: absolute; z-index: 3; bottom: 4.8rem; left: var(--gutter); display: flex; align-items: center; gap: .8rem; color: var(--pearl-mid); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 1px; height: 48px; overflow: hidden; background: var(--line-dark); }
.scroll-cue i::after { position: absolute; inset: 0; background: var(--ouro); content: ""; animation: scroll-cue 2s infinite; }

@media (min-width: 768px) {
  .hero h1 { font-size: clamp(2.75rem, 6.3vw, 4.95rem); }
}

@media (min-width: 768px) and (max-height: 799px) {
  .hero__copy { gap: .75rem; padding-top: 5.4rem; padding-bottom: 4.2rem; }
  .hero h1 { font-size: clamp(2.75rem, 5.2vw, 4rem); }
  .scroll-cue { display: none; }
}

/* Marquee */
.marquee { position: relative; z-index: 3; grid-row: 2; grid-column: 1 / -1; width: 100%; align-self: end; overflow: hidden; border-block: 1px solid var(--ouro-escuro); background: var(--ouro-claro); color: var(--onix); }
.marquee__track { display: flex; width: max-content; animation: marquee 26s linear infinite; }
.marquee__track span { padding: .72rem 1.2rem; font-size: .76rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }

/* Diagnóstico: grade no desktop e carrossel acessível no mobile */
.diagnosis__carousel { min-width: 0; }
.section-heading--wide { max-width: none; container-type: inline-size; }
/* 7.9cqi mantem cada periodo em uma linha unica, encaixado na largura do bloco. */
.diagnosis .section-heading h2 { font-size: clamp(1.4rem, 4.6vw, 4.6rem); font-size: min(4.6rem, 7.4cqi); text-wrap: nowrap; }
.diagnosis .section-heading h2 span { display: block; white-space: nowrap; }
.diagnosis .section-heading > p:last-child { max-width: 62ch; }
.diagnosis__track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.diagnosis-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: var(--perola); }
/* Moldura fixa 4:3: as tres fotos ficam com a mesma altura e o rosto na mesma faixa vertical,
   mesmo com originais em proporcoes diferentes. --zoom/--ox/--oy sao calibrados por card. */
.diagnosis-card__frame { position: relative; flex: 0 0 auto; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--perola); }
.diagnosis-card__frame img {
  position: absolute;
  top: min(0%, var(--oy, 0%));
  left: min(0%, var(--ox, 0%));
  width: var(--zoom, 100%);
  max-width: none;
  height: auto;
  filter: saturate(.9) contrast(1.02);
  user-select: none;
}
.diagnosis-card:nth-child(1) .diagnosis-card__frame img { --zoom: 134%; --ox: -12.3%; --oy: -4.4%; }
.diagnosis-card:nth-child(2) .diagnosis-card__frame img { --zoom: 118%; --ox: -13.3%; --oy: -44.5%; }
.diagnosis-card:nth-child(3) .diagnosis-card__frame img { --zoom: 140%; --ox: -6.6%; --oy: -2.6%; }
.diagnosis-card__body { display: flex; min-height: 270px; flex: 1; flex-direction: column; align-items: flex-start; gap: .9rem; padding: clamp(1.25rem, 2.5vw, 2rem); }
.diagnosis-card__number { color: var(--ouro-escuro); font-size: .75rem; font-weight: 600; letter-spacing: .16em; }
.diagnosis-card h3 { font-size: clamp(1.45rem, 2.3vw, 2rem); }
.diagnosis-card__body p { color: var(--muted); }
.carousel__hint { display: none; }
.carousel__controls { display: none; }
.carousel__status { display: grid; flex: 1; gap: .45rem; justify-items: center; }
.carousel__count { color: var(--ouro-escuro); font-size: .72rem; font-weight: 600; letter-spacing: .16em; }
.carousel__progress { width: 100%; height: 2px; overflow: hidden; background: var(--line); }
.carousel__progress span { display: block; width: 100%; height: 100%; background: var(--grad-ouro); transform: scaleX(var(--carousel-progress, 1)); transform-origin: left; transition: transform var(--dur-fast) var(--ease-out); }
.carousel__controls button { display: grid; width: 52px; height: 52px; flex: 0 0 auto; place-items: center; border: 1px solid var(--ouro); border-radius: 50%; background: var(--grad-ouro); color: var(--onix); font-size: 1.15rem; cursor: pointer; box-shadow: 0 6px 16px var(--gold-glow); transition: transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast); }
.carousel__controls button:active { transform: scale(.94); }
.carousel__controls button:disabled { background: var(--perola); box-shadow: none; cursor: default; opacity: .35; }

/* Trilha contínua de módulos */
.method { height: auto; padding-block: var(--section-space); }
.method__sticky { position: static; min-height: auto; overflow: visible; }
.method__layout { display: grid; grid-template-columns: 1fr; gap: clamp(2.75rem, 5vw, 4.5rem); }
.method__intro { position: relative; z-index: 2; display: grid; max-width: 780px; gap: 1rem; }
.method__intro p:last-child { color: var(--pearl-mid); }
.method__modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 5vw, 5rem); list-style: none; }
.method-module { border-top: 1px solid var(--line-dark); }
.method-module:nth-last-child(-n + 2) { border-bottom: 1px solid var(--line-dark); }
.method-module__head { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; align-items: center; gap: 1.1rem; padding-block: clamp(1.15rem, 2.2vw, 1.6rem) .55rem; }
.method-module__number { color: var(--ouro-claro); font-size: .75rem; font-weight: 600; letter-spacing: .14em; }
.method-module__title { font-size: clamp(1.2rem, 1.9vw, 1.55rem); text-wrap: pretty; }
.method-module__head .diamond { width: .7rem; }
.method-module__answer { padding-bottom: clamp(1.15rem, 2.2vw, 1.6rem); }
.method-module__answer p { padding-left: 4.1rem; color: var(--pearl-mid); font-size: .95rem; text-wrap: pretty; }
.method-module__answer p + p { margin-top: .8rem; }

/* Grade editorial uniforme */
.editorial-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.editorial-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.editorial-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.editorial-card { display: flex; min-width: 0; min-height: 240px; flex-direction: column; align-items: flex-start; gap: .85rem; padding: clamp(1.35rem, 2.6vw, 2.25rem); background: var(--perola); }
.editorial-card__meta { display: flex; width: 100%; align-items: center; justify-content: space-between; color: var(--ouro-escuro); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.editorial-card h3 { margin-top: auto; font-size: clamp(1.3rem, 1.8vw, 1.65rem); }
.editorial-card p { color: var(--muted); text-align: left; }

/* Subgrid alinha meta, título e texto na mesma linha entre todos os cards. */
@supports (grid-template-rows: subgrid) {
  .editorial-grid { grid-template-rows: auto 1fr auto auto; }
  .editorial-card { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
  .editorial-card__meta { grid-row: 1; }
  .editorial-card h3 { grid-row: 3; margin-top: 0; align-self: end; }
  .editorial-card > p { grid-row: 4; margin-top: .85rem; align-self: start; }

  .editorial-grid--included { grid-template-rows: auto auto auto 1fr; }
  .editorial-grid--included .editorial-card h3 { grid-row: 2; margin-top: .85rem; align-self: start; }
  .editorial-grid--included .editorial-card > p { grid-row: 3; margin-top: .85rem; }
}
.editorial-grid--included .editorial-card { justify-content: flex-start; }
.editorial-grid--included .editorial-card h3 { margin-top: 0; }

/* Depoimentos */
.proof { background: var(--areia); }
.proof .section-heading { margin-bottom: clamp(1.75rem, 3vw, 2.75rem); }
.proof__carousel { min-width: 0; }
.proof__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); list-style: none; }
/* Os prints ja vem montados em 2:3, entao o card so acompanha a proporcao da arte. */
.proof-card { position: relative; overflow: hidden; aspect-ratio: 2 / 3; border: 1px solid var(--line); background: var(--onix); }
.proof-card img { width: 100%; height: 100%; object-fit: cover; }
/* Sobre */
.about__grid { display: grid; grid-template-columns: minmax(300px, .85fr) 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.about__portrait { position: relative; }
.about__portrait::before { position: absolute; z-index: 0; inset: 1.4rem -1.4rem -1.4rem 1.4rem; border: 1px solid var(--ouro); content: ""; }
.about__portrait img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 28%; filter: saturate(.86) contrast(1.02); }
.about__portrait--solution img { aspect-ratio: 4 / 4.55; object-position: center 18%; }
.about__copy { display: grid; gap: 1.25rem; }
.about__copy, .about__numbers, .about__numbers div { min-width: 0; }
.about__copy > p:not(.kicker) { color: var(--pearl-mid); }
.about__numbers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 1.25rem; background: var(--line-dark); }
.about__numbers div { padding: 1rem; background: var(--onix); }
.about__numbers dt { overflow-wrap: anywhere; color: var(--ouro-claro); font-size: clamp(1.15rem, 2.6vw, 2rem); line-height: 1; }
.about__numbers dd { margin-top: .5rem; overflow-wrap: anywhere; color: var(--pearl-mid); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }

/* Oferta */
.offer { padding-block: clamp(5.5rem, 9vw, 8rem); perspective: 1600px; }
.jewel-box { position: relative; width: min(900px, 100%); margin: 0 auto; transform-style: preserve-3d; }
.jewel-box__lid { position: absolute; z-index: 2; inset: -78px 4% auto; display: grid; height: 92px; place-items: center; border: 1px solid var(--ouro-escuro); background: var(--onix); box-shadow: 0 18px 35px var(--shadow-deep); transform: perspective(900px) rotateX(-105deg); transform-origin: bottom; transition: transform 1.15s .15s var(--ease-out); }
.jewel-box__lid .diamond { width: 2rem; color: var(--ouro); }
.jewel-box.is-in .jewel-box__lid { transform: perspective(900px) rotateX(0); }
.jewel-box__body { position: relative; z-index: 1; display: grid; gap: 1.25rem; padding: clamp(1.75rem, 5vw, 4rem); border: 1px solid var(--ouro-escuro); background: var(--onix); color: var(--perola); box-shadow: 0 30px 80px var(--shadow-deep); }
.jewel-box__body > *, .offer__content > *, .offer__stack li > * { min-width: 0; }
.jewel-box__body [data-config] { overflow-wrap: anywhere; }
.jewel-box__body::before { position: absolute; inset: 10px; border: 1px solid var(--line-dark); content: ""; pointer-events: none; }
.offer__intro { display: grid; max-width: 72ch; gap: .8rem; }
.offer__intro p { color: var(--pearl-mid); }
.offer__intro em { color: var(--perola); }
.offer__content { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(2rem, 6vw, 5rem); align-items: end; margin-block: 1rem; }
.offer__stack { list-style: none; }
.offer__stack li { display: flex; justify-content: space-between; gap: 1rem; padding-block: .65rem; border-bottom: 1px solid var(--line-dark); }
.offer__stack li::before { color: var(--ouro-claro); content: "◆"; }
.offer__price { display: grid; gap: .5rem; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--ouro-escuro); background: var(--pearl-faint); }
.offer__price h3 { color: var(--perola); font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.offer__price > span { color: var(--pearl-mid); font-size: 1rem; }
.offer__price s { color: var(--perola); font-size: 1.2em; text-decoration-color: var(--ouro-claro); text-decoration-thickness: 2px; }
/* A coluna do preco e estreita: sem o teto menor, "R$ 297" quebrava em duas linhas. */
.offer__price strong { color: var(--ouro-claro); font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 350; line-height: 1.05; white-space: nowrap; }
.offer__price small { font-size: 1rem; }
.offer__condition { color: var(--pearl-mid); font-size: .82rem; font-style: italic; }
.offer__scarcity { display: flex; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid var(--vinho); background: var(--pearl-faint); color: var(--pearl-mid); }
.offer__scarcity strong { color: var(--perola); }
.offer__guarantee { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-block: 1px solid var(--line-dark); }
.offer__guarantee > .diamond { width: .85rem; }
.offer__guarantee div { min-width: 0; }
.offer__guarantee strong { color: var(--ouro-claro); }
.offer__guarantee p { margin-top: .2rem; color: var(--pearl-mid); font-size: .86rem; line-height: 1.45; }
.offer__guarantee [data-config] { overflow-wrap: anywhere; }
.jewel-box .button { justify-self: start; }

/* FAQ */
.faq__grid { display: grid; grid-template-columns: .65fr 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.faq__list details { border-bottom: 1px solid var(--line); }
.faq__list summary { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .75rem; cursor: pointer; font-size: clamp(1.05rem, 1.8vw, 1.3rem); list-style: none; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary .diamond { width: .7rem; transition: transform var(--dur-fast) var(--ease-out), background var(--dur-fast); }
.faq__list details[open] summary .diamond { background: var(--ouro); transform: rotate(90deg); }
.faq__answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--dur-base) var(--ease-out); }
.faq__answer > p { min-height: 0; overflow: hidden; color: var(--muted); }
.faq__list details[open] .faq__answer { grid-template-rows: 1fr; }
.faq__list details[open] .faq__answer > p { padding-bottom: 1.4rem; }

/* Fechamento */
.closing { min-height: 58svh; display: grid; place-items: center; overflow: hidden; text-align: center; }
.closing__glow { position: absolute; width: min(760px, 90vw); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, var(--gold-glow), var(--transparent) 65%); animation: glow-breathe 7s ease-in-out infinite; }
.closing__inner { position: relative; z-index: 1; display: grid; justify-items: center; gap: 1.25rem; }
.closing__inner > .diamond { width: 1.5rem; margin-bottom: 1rem; }
.closing__inner h2 { max-width: 13ch; }
.closing__inner > p:not(.kicker, .closing__signature) { color: var(--pearl-mid); }
.closing__price { display: grid; justify-items: center; gap: .2rem; margin-block: .35rem; }
.closing__price span, .closing__price small { color: var(--pearl-mid); font-size: .82rem; }
.closing__price strong { color: var(--ouro-claro); font-size: clamp(2.4rem, 7vw, 4.6rem); font-weight: 350; line-height: 1; }
.closing__signature { margin-top: 1.6rem; color: var(--ouro-claro); font-size: .78rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }

/* Footer */
.site-footer { padding-block: 3rem 1.25rem; border-top: 1px solid var(--line-dark); background: var(--onix); color: var(--perola); }
.site-footer__grid { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: center; }
.site-footer__grid > div:first-child p { margin-top: .8rem; color: var(--pearl-mid); font-size: .8rem; }
.site-footer__social { display: inline-flex; min-height: 48px; align-items: center; gap: .65rem; padding: .5rem 1.15rem .5rem .95rem; border: 1px solid var(--line-dark); border-radius: 999px; color: var(--perola); font-size: .85rem; transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.site-footer__social svg { flex: 0 0 auto; }
.site-footer__social:hover { border-color: var(--ouro); color: var(--ouro-claro); transform: translateY(-2px); }
.site-footer__disclaimer { margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--line-dark); color: var(--pearl-mid); font-size: .72rem; text-align: center; }

/* CTA flutuante */
.floating-cta { position: fixed; z-index: 90; right: 1.2rem; bottom: 1.2rem; display: flex; align-items: center; gap: 1rem; padding: .65rem; padding-left: 1.1rem; border: 1px solid var(--line-dark); border-radius: 999px; background: var(--glass); color: var(--perola); box-shadow: 0 16px 46px var(--shadow-deep); backdrop-filter: blur(18px); opacity: 0; pointer-events: none; transform: translateY(calc(100% + 2rem)); transition: opacity var(--dur-base), transform var(--dur-base) var(--ease-out); }
.floating-cta.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.floating-cta div { display: grid; line-height: 1.25; }
.floating-cta small { color: var(--pearl-mid); font-size: .68rem; }
.floating-cta strong { font-size: .9rem; }

/* =========================================================
   Utilitários e motion
   ========================================================= */
.reveal { opacity: 0; filter: blur(6px); transform: translateY(24px); transition: opacity var(--dur-base), filter var(--dur-base), transform var(--dur-base) var(--ease-out); }
.reveal.is-in { opacity: 1; filter: blur(0); transform: translateY(0); }
.editorial-grid > .reveal:nth-child(2), .proof__grid > .reveal:nth-child(2) { transition-delay: 80ms; }
.editorial-grid > .reveal:nth-child(3), .proof__grid > .reveal:nth-child(3) { transition-delay: 160ms; }
.proof__grid > .reveal:nth-child(4) { transition-delay: 240ms; }
.editorial-grid > .reveal:nth-child(4) { transition-delay: 240ms; }

@keyframes text-shine { 0%, 72%, 100% { background-position: 100% 50%; } 84% { background-position: 0 50%; } }
@keyframes button-shine { 0%, 62% { left: -45%; } 90%, 100% { left: 130%; } }
@keyframes scroll-cue { 0% { transform: translateY(-100%); } 55%, 100% { transform: translateY(100%); } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes diamond-draw { to { stroke-dashoffset: 0; } }
@keyframes curtain-mark-out { to { opacity: 0; transform: scale(.84); } }
@keyframes glow-breathe { 0%, 100% { opacity: .45; transform: scale(.92); } 50% { opacity: .85; transform: scale(1.05); } }

/* =========================================================
   Media queries
   ========================================================= */
@media (max-width: 1023px) {
  .hero__copy { width: 62%; }
  .hero__media { left: 47%; }
  .editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer__content { grid-template-columns: 1fr; }
  .faq__grid { grid-template-columns: 1fr; gap: 1rem; }
  .faq__grid .section-heading { margin-bottom: 2rem; }
}

@media (max-width: 767px) {
  :root { --gutter: 1.25rem; --section-space: 3.25rem; }
  /* A marca cabe em uma linha so no header fixo: sem quebra colando no titulo da secao. */
  .site-header .brand span:last-child { font-size: .88rem; white-space: nowrap; }
  .site-header .button { min-height: 46px; padding-inline: .9rem; font-size: .78rem; }
  .button--large { padding-inline: 1.25rem; }
  .hero { min-height: max(720px, 100svh); padding: 0; }
  .hero__copy { width: 100%; min-height: 0; align-content: center; padding: 5.8rem var(--gutter) 2.2rem; }
  .hero__copy h1 { max-width: 10ch; }
  .hero__lead { max-width: 36ch; }
  .hero__proof { display: none; }
  .hero__media { inset: 0; width: 100%; height: 100%; clip-path: none; }
  .hero__media::after { background: linear-gradient(180deg, var(--glass) 0%, var(--shadow-deep) 38%, var(--onix) 100%), linear-gradient(90deg, var(--glass) 0%, var(--transparent) 100%); }
  .hero__media img { height: 100%; object-position: 63% center; filter: saturate(.9) brightness(.82); }
  .hero__actions { align-items: flex-start; flex-direction: column; margin-top: .25rem; }
  .hero__media-line { display: none; }
  .scroll-cue { display: none; }
  /* No mobile a linha longa nao cabe em uma unica linha: liberamos a quebra. */
  .diagnosis .section-heading h2 { font-size: clamp(1.85rem, 8.4vw, 2.6rem); text-wrap: balance; }
  .diagnosis .section-heading h2 span { display: block; white-space: normal; }
  .diagnosis__track { display: flex; gap: 1rem; overflow-x: auto; cursor: grab; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; }
  .diagnosis__track::-webkit-scrollbar { display: none; }
  .diagnosis__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
  /* O card seguinte aparece pela metade: o corte na borda mostra que ha mais conteudo ao lado. */
  .diagnosis-card { flex: 0 0 86%; scroll-snap-align: start; }
  .diagnosis-card__body { min-height: 250px; }
  .carousel__hint { display: block; margin-bottom: .85rem; text-align: right; color: var(--ouro-escuro); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
  .carousel__controls { display: flex; align-items: center; gap: 1rem; margin-top: 1.25rem; }
  .proof__grid { display: flex; gap: 1rem; overflow-x: auto; cursor: grab; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; }
  .proof__grid::-webkit-scrollbar { display: none; }
  .proof__grid.is-dragging { cursor: grabbing; scroll-snap-type: none; }
  .proof-card { flex: 0 0 78%; scroll-snap-align: start; }
  .method__modules { grid-template-columns: 1fr; }
  .method-module:nth-last-child(2) { border-bottom: 0; }
  .method-module__head { grid-template-columns: 2.2rem minmax(0, 1fr) auto; gap: .85rem; }
  .method-module__answer p { padding-left: 3.05rem; }
  .about__grid { grid-template-columns: 1fr; }
  .about__portrait { width: calc(100% - 1.4rem); }
  .floating-cta { right: .65rem; bottom: .65rem; left: .65rem; justify-content: space-between; padding: .5rem .5rem .5rem .9rem; border-radius: 999px; }
  .floating-cta div { max-width: 42%; }
  .floating-cta .button { min-height: 44px; padding-inline: .95rem; font-size: .78rem; }
}

@media (max-width: 767px) and (max-height: 719px) {
  .hero { min-height: 100svh; }
  .hero__copy { gap: .75rem; padding-top: 5.2rem; padding-bottom: 1rem; }
}

@media (max-width: 479px) {
  h1 { font-size: clamp(2.65rem, 13.5vw, 3.65rem); }
  h2 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .brand { gap: .45rem; }
  .site-header { gap: .75rem; }
  .site-header .brand span:last-child { max-width: none; font-size: .8rem; letter-spacing: 0; }
  .hero__actions { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .marquee__track span { padding-block: .58rem; }
  .editorial-grid, .editorial-grid--two, .editorial-grid--three { grid-template-columns: 1fr; }
  .editorial-card { min-height: 200px; }
  .about__numbers { grid-template-columns: 1fr; }
  .offer { padding-top: 9rem; }
  .jewel-box__lid { inset-inline: 2%; }
  .jewel-box__body { padding-inline: 1.4rem; }
  .offer__stack li { display: grid; grid-template-columns: auto 1fr; }
  .jewel-box .button { width: 100%; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 1.5rem; justify-items: start; }
  .floating-cta div { display: none; }
  .floating-cta .button { width: 100%; }
}

@supports (grid-template-rows: subgrid) {
  @media (max-width: 1023px) {
    .editorial-grid { grid-template-rows: repeat(2, auto 1fr auto auto); }
    .editorial-grid--included { grid-template-rows: repeat(2, auto auto auto 1fr); }
    .editorial-grid--two { grid-template-rows: auto 1fr auto auto; }
  }

  @media (max-width: 479px) {
    .editorial-grid { grid-template-rows: repeat(4, auto 1fr auto auto); }
    .editorial-grid--included { grid-template-rows: repeat(4, auto auto auto 1fr); }
    .editorial-grid--two { grid-template-rows: repeat(2, auto 1fr auto auto); }
    .editorial-grid--three { grid-template-rows: repeat(3, auto 1fr auto auto); }
  }
}

@media (min-width: 1440px) {
  :root { --container: 1320px; }
  .hero__copy { padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms; animation-iteration-count: 1; scroll-behavior: auto; transition-duration: 150ms; }
  .curtain { display: none; }
  .marquee__track, .text-shine, .button::after, .scroll-cue i::after, .closing__glow { animation: none; }
  .marquee__track { transform: none; }
  .reveal { filter: none; transform: none; }
  .hero__media img { transform: none; }
  .jewel-box__lid { transform: none; }
}
