/* ============================================================
   DRA. ERIKA MACEDO | HEMATOLOGIA E MEDICINA INTEGRATIVA
   Design System · v1.0
   Conceito: editorial clínico e orgânico
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* Paleta | IDV */
  --creme:        #F4EDE6;
  --creme-alto:   #FBF8F4;
  --creme-baixo:  #EAE0D5;
  --areia:        #DCC7AE;
  --areia-clara:  #E9DDCE;
  --cafe:         #3A2B21;
  --cafe-medio:   #6E5B4B;
  --cafe-suave:   #756557;
  --dourado:      #A98559;
  --dourado-texto:#7A5A2E;
  --dourado-alto: #C6A47B;
  --grafite:      #2E2C29;
  --grafite-alto: #45413C;

  /* Tipografia */
  --ff-display: "Playfair Display", "Times New Roman", serif;
  --ff-sans:    "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --fs-display: clamp(2.75rem, 1.35rem + 4.6vw, 5.25rem);
  --fs-h1:      clamp(2.5rem, 1.9rem + 1.7vw, 3.75rem);
  --fs-h2:      clamp(1.875rem, 1.25rem + 2.1vw, 3rem);
  --fs-h3:      clamp(1.375rem, 1.15rem + .8vw, 1.875rem);
  --fs-h4:      clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);
  --fs-pair-h1: var(--fs-h1);
  --fs-pair-h2: clamp(1.75rem, 1.25rem + 1.55vw, 2.625rem);
  --fs-tensao:  clamp(1.1875rem, 1.08rem + .45vw, 1.5rem);
  --fs-lead:    clamp(1.0625rem, 1rem + .38vw, 1.25rem);
  --fs-body:    1.0625rem;
  --fs-sm:      .9375rem;
  --fs-xs:      .8125rem;
  --fs-eyebrow: .6875rem;

  --lh-tight:   1.08;
  --lh-display: 1.12;
  --lh-heading: 1.2;
  --lh-body:    1.75;

  --tracking-eyebrow: .24em;
  --tracking-wide:    .12em;

  /* Espaçamento | escala 8pt */
  --s-1:  .5rem;   --s-2: 1rem;    --s-3: 1.5rem;  --s-4: 2rem;
  --s-5:  2.5rem;  --s-6: 3rem;    --s-7: 4rem;    --s-8: 5rem;
  --s-9:  6rem;    --s-10: 8rem;

  --section:     clamp(4.5rem, 2.5rem + 7vw, 8.5rem);
  --section-sm:  clamp(3rem, 2rem + 4.5vw, 5.5rem);
  --gutter:      clamp(1.5rem, 1rem + 3vw, 4rem);
  --maxw:        1440px;
  --maxw-narrow: 1000px;
  --maxw-read:   41rem;

  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --dur: .55s;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  background:var(--creme);
  color:var(--cafe);
  font-family:var(--ff-sans);
  font-size:var(--fs-body);
  font-weight:400;
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  /* NÃO usar overflow-x aqui: cria contexto de scroll e quebra o position:sticky do header.
     O corte lateral é feito em html{overflow-x:clip}. */
}
img,picture,video{ display:block; max-width:100%; height:auto; }
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{ margin:0; }
ul,ol{ padding:0; list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
a{ color:inherit; text-decoration:none; }
:focus-visible{ outline:3px solid var(--dourado-texto); outline-offset:3px; }
.bg-grafite :focus-visible,.footer :focus-visible{ outline-color:var(--dourado-alto); }

/* ---------- 3. TIPOGRAFIA ---------- */
.display,h1,h2,h3,.serif{
  font-family:var(--ff-display);
  font-weight:400;
  color:var(--cafe);
  letter-spacing:-.015em;
}
h1{ font-size:var(--fs-h1); line-height:1.06; letter-spacing:-.025em; }
h2{ font-size:var(--fs-h2); line-height:var(--lh-heading); }
h3{ font-size:var(--fs-h3); line-height:var(--lh-heading); letter-spacing:-.01em; }
.display{ font-size:var(--fs-display); line-height:var(--lh-tight); }
h1:has(> .tensao){ width:100%; max-width:none; font-size:var(--fs-pair-h1); line-height:1.06; }
h1 > .tensao{
  margin:0 0 clamp(1rem,1.4vw,1.4rem);
  font-size:clamp(1.375rem, 1.15rem + .55vw, 1.75rem);
  line-height:1.32;
  letter-spacing:-.012em;
}
h2:has(> .tensao){ font-size:var(--fs-pair-h2); line-height:1.16; }

.eyebrow{
  display:block;
  font-family:var(--ff-sans);
  font-size:var(--fs-eyebrow);
  font-weight:500;
  letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;
  color:var(--dourado-texto);
  margin:0 0 var(--s-3);
}
.tensao{
  display:block;
  width:100%;
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:var(--fs-tensao);
  line-height:1.45;
  color:var(--cafe-medio);
  margin-bottom:.35em;
}
.lead{ font-size:var(--fs-lead); line-height:1.7; color:var(--cafe-medio); }
p + p{ margin-top:var(--s-3); }
.body p, .prose p{ color:var(--cafe-medio); }
em{ font-family:var(--ff-display); font-style:italic; }
strong{ font-weight:600; color:var(--cafe); }
.gold{ color:var(--dourado); }
.italic-serif{ font-family:var(--ff-display); font-style:italic; }

/* Filete */
.rule{ width:56px; height:1px; background:var(--dourado); border:0; margin:0 0 var(--s-4); }
.rule--center{ margin-left:auto; margin-right:auto; }

/* Utilitários de medida */
.measure-34{ max-width:34rem; } .measure-38{ max-width:38rem; } .measure-40{ max-width:40rem; }
.measure-38.center,.measure-40.center,.measure-34.center{ margin-inline:auto; }
.text-muted{ color:var(--cafe-medio); }

/* ---------- 4. LAYOUT ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.container--narrow{ max-width:var(--maxw-narrow); }
.container--read{ max-width:calc(var(--maxw-read) + var(--gutter)*2); }
.section{ padding-block:var(--section); }
.section--sm{ padding-block:var(--section-sm); }
.section--tight{ padding-block:var(--s-8); }
.center{ text-align:center; }
.center .rule{ margin-inline:auto; }
.stack > * + *{ margin-top:var(--s-3); }
.mt-4{ margin-top:var(--s-4); } .mt-5{ margin-top:var(--s-5); }
.mt-6{ margin-top:var(--s-6); } .mt-7{ margin-top:var(--s-7); }

.grid{ display:grid; gap:var(--s-5); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }

/* Superfícies */
.bg-creme{ background:var(--creme); }
.bg-creme-alto{ background:var(--creme-alto); }
.bg-areia{ background:var(--areia-clara); }
.bg-grafite{ background:var(--grafite); color:var(--creme); }
.bg-grafite h1,.bg-grafite h2,.bg-grafite h3,.bg-grafite .display{ color:var(--creme); }
.bg-grafite p,.bg-grafite .lead,.bg-grafite li{ color:#D6CEC5; }
.bg-grafite .tensao{ color:var(--dourado-alto); }
.bg-grafite .eyebrow{ color:var(--dourado-alto); }
.bg-grafite .rule{ background:var(--dourado-alto); }
.bg-grafite .gold{ color:var(--dourado-alto); }

/* ---------- 5. BOTÕES ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--ff-sans); font-size:var(--fs-sm); font-weight:500;
  letter-spacing:.06em; text-transform:uppercase;
  padding:1.0625rem 2rem; border:1px solid transparent; border-radius:var(--radius);
  cursor:pointer; transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
  line-height:1.25; text-align:center;
}
.btn--primary{ background:var(--cafe); color:var(--creme); border-color:var(--cafe); }
.btn--primary:hover{ background:var(--dourado-texto); border-color:var(--dourado-texto); color:var(--creme-alto); }
.btn--ghost{ background:transparent; color:var(--cafe); border-color:rgba(58,43,33,.45); }
.btn--ghost:hover{ border-color:var(--cafe); background:var(--cafe); color:var(--creme); }
.bg-grafite .btn--primary{ background:var(--creme); color:var(--grafite); border-color:var(--creme); }
.bg-grafite .btn--primary:hover{ background:var(--dourado-texto); border-color:var(--dourado-texto); color:var(--creme-alto); }
.bg-grafite .btn--ghost{ color:var(--creme); border-color:rgba(244,237,230,.3); }
.bg-grafite .btn--ghost:hover{ background:var(--creme); color:var(--grafite); border-color:var(--creme); }
.btn--lg{ padding:1.25rem 2.75rem; font-size:var(--fs-body); }

.link-arrow{
  display:inline-flex; align-items:flex-end; gap:.7em;
  font-size:var(--fs-sm); font-weight:500; letter-spacing:.07em; text-transform:uppercase;
  color:var(--cafe); padding-bottom:.55rem; border-bottom:1px solid var(--dourado);
  transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.link-arrow::after{ content:"→"; font-size:1.05em; transition:transform var(--dur) var(--ease); }
.link-arrow:hover{ color:var(--dourado); }
.link-arrow:hover::after{ transform:translateX(5px); }
.bg-grafite .link-arrow{ color:var(--creme); border-color:var(--dourado-alto); }
.bg-grafite .link-arrow:hover{ color:var(--dourado-alto); }

.btn-group{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-3) var(--s-4); }
.microcopy{ font-size:var(--fs-xs); color:var(--cafe-suave); line-height:1.65; letter-spacing:.02em; }
.bg-grafite .microcopy{ color:rgba(214,206,197,.75); }

/* ---------- 6. HEADER ---------- */
.topbar{
  background:var(--grafite); color:#CFC6BC;
  font-size:var(--fs-xs); letter-spacing:.09em; text-transform:uppercase;
  text-align:center; padding:.6875rem var(--gutter);
}
.header{
  position:sticky; top:0; z-index:100;
  background:rgba(244,237,230,.9); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(58,43,33,.09);
  transition:background var(--dur) var(--ease);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
  min-height:84px; padding-block:var(--s-2);
}
.header__logo{ display:block; flex:0 0 auto; }
.header__logo img{ width:184px; height:auto; }
.custom-logo-link{ display:block; line-height:0; }
.header__wordmark{ display:flex; flex-direction:column; gap:.05rem; color:var(--cafe); line-height:1; }
.header__wordmark-name{ font-family:var(--ff-display); font-size:1.5rem; letter-spacing:-.025em; }
.header__wordmark-field{ font-size:.58rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--cafe-medio); }
.nav__list{ display:flex; align-items:center; gap:clamp(1.2rem,2vw,2rem); margin:0; }
.nav__list > li{ margin:0; }
.nav-wrap{ display:flex; align-items:center; gap:clamp(1.5rem,2.4vw,2.5rem); }
.nav{ display:flex; align-items:center; gap:clamp(1.25rem,1.9vw,2.25rem); }
.nav__link{
  font-size:var(--fs-xs); font-weight:400; letter-spacing:.11em; text-transform:uppercase;
  color:var(--cafe-medio); padding-block:.4rem; position:relative;
  transition:color var(--dur) var(--ease);
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--dourado); transition:width var(--dur) var(--ease);
}
.nav__link:hover,.nav__link[aria-current="page"]{ color:var(--cafe); }
.nav__link:hover::after,.nav__link[aria-current="page"]::after{ width:100%; }
.header .btn{ padding:.875rem 1.5rem; font-size:var(--fs-xs); }
.burger{
  display:none; width:44px; height:44px; background:none; border:0; cursor:pointer;
  align-items:center; justify-content:center; flex-direction:column; gap:5px; padding:0;
}
.burger span{ display:block; width:22px; height:1px; background:var(--cafe); transition:transform .3s var(--ease), opacity .3s var(--ease); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------- 7. HERO ---------- */
.hero{ background:var(--creme); overflow:hidden; }
.hero__grid{
  display:grid; grid-template-columns:minmax(0,54fr) minmax(0,46fr); align-items:center;
  gap:0; min-height:clamp(560px,78vh,820px);
}
.hero__content{
  padding-block:var(--section);
  padding-left:max(var(--gutter), calc((100vw - var(--maxw))/2 + var(--gutter)));
  padding-right:clamp(1.5rem,2vw,2.5rem);
}
.hero__media{ position:relative; align-self:stretch; min-height:420px; }
.hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.hero__title{ width:100%; max-width:none; font-size:var(--fs-pair-h1); line-height:var(--lh-tight); margin-bottom:var(--s-4); }
.hero h1.hero__title--home{
  margin-bottom:0;
  font-size:var(--fs-h1);
  line-height:1.06;
  letter-spacing:-.025em;
}
.hero__title--home > .tensao,
.hero__promise{
  font-size:clamp(1.375rem, 1.15rem + .55vw, 1.75rem);
  line-height:1.32;
  letter-spacing:-.012em;
}
.hero__title--home > .tensao{ color:var(--cafe-medio); }
.hero__headline-main{ display:block; max-width:none; text-wrap:balance; }
.hero__promise{
  width:100%;
  margin:clamp(1.25rem,1.7vw,1.75rem) 0 clamp(2rem,2.5vw,2.75rem);
  color:var(--dourado-texto);
}
.hero__slogan{ margin-top:var(--s-5); font-family:var(--ff-display); font-style:italic; color:var(--cafe-medio); }
.hero .lead{ width:100%; max-width:none; }
.hero__actions{ margin-top:var(--s-6); }
.hero__meta{ margin-top:var(--s-4); }

/* Hero centralizado */
.hero--center{ text-align:center; }
.hero--center .hero__grid{ grid-template-columns:1fr; min-height:clamp(360px,44vh,520px); }
.hero--center .hero__content{
  max-width:calc(52rem + var(--gutter)*2); margin-inline:auto;
  padding-inline:var(--gutter); padding-block:clamp(5rem,4rem + 6vw,9rem);
}
.hero--center .lead{ max-width:44rem; margin-inline:auto; }
.hero--center .btn-group{ justify-content:center; }

/* ---------- 8. SPLIT ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2.5rem,5vw,6rem); }
.split--wide-media{ grid-template-columns:1.15fr .85fr; }
.split--wide-text{ grid-template-columns:.85fr 1.15fr; }
.split__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.split__media--wide img{ aspect-ratio:4/3; }
.split__text{ max-width:34rem; }
.split--reverse .split__media{ order:2; }

/* Full-bleed media split */
.split-bleed{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.split-bleed__media{ position:relative; min-height:clamp(380px,54vh,640px); }
.split-bleed__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split-bleed__body{ display:flex; align-items:center; padding:var(--section) var(--gutter); }
.split-bleed__body > div{ width:100%; max-width:38rem; margin-inline:auto; }

/* ---------- 9. CARDS ---------- */
.card{ padding-top:var(--s-4); border-top:1px solid var(--dourado); }
.card__title{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.3; margin-bottom:var(--s-2); color:var(--cafe); }
.card__text{ font-size:var(--fs-sm); line-height:1.7; color:var(--cafe-medio); }
.bg-grafite .card{ border-top-color:var(--dourado-alto); }
.bg-grafite .card__title{ color:var(--creme); }
.bg-grafite .card__text{ color:#C9C0B7; }

.card--filled{
  background:var(--areia-clara); border-top:1px solid var(--dourado);
  padding:var(--s-5) var(--s-4) var(--s-5);
  transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.card--filled:hover{ background:var(--areia); }

.card--num{ border-top:1px solid rgba(58,43,33,.16); padding-top:var(--s-4); }
.card__num{
  font-family:var(--ff-display); font-size:clamp(2.25rem,1.6rem + 2vw,3.25rem);
  line-height:1; color:var(--dourado); display:block; margin-bottom:var(--s-3);
}

/* Stats */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(58,43,33,.16); }
.split-bleed__body .stats{ grid-template-columns:repeat(2,1fr); }
.split-bleed__body .stats__item:nth-child(odd){ padding-left:0; border-left:0; }
.split-bleed__body .stats__item:nth-child(n+3){ border-top:1px solid rgba(58,43,33,.16); }
.stats__item{ padding:var(--s-4) var(--s-3) 0 0; }
.stats__item + .stats__item{ padding-left:var(--s-3); border-left:1px solid rgba(58,43,33,.16); }
.stats__num{ font-family:var(--ff-display); font-size:clamp(1.5rem,1.2rem + 1.1vw,2.125rem); line-height:1.1; color:var(--cafe); display:block; }
.stats__label{ font-size:var(--fs-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--cafe-suave); margin-top:.5rem; display:block; line-height:1.5; }

/* ---------- 10. FAIXA CITAÇÃO ---------- */
.quote{ text-align:center; }
.quote__text{
  font-family:var(--ff-display); font-size:clamp(1.5rem,1.1rem + 1.9vw,2.5rem);
  line-height:1.35; max-width:44rem; margin-inline:auto; color:var(--cafe);
}
.quote__sign{ margin-top:var(--s-4); font-size:var(--fs-xs); letter-spacing:.18em; text-transform:uppercase; color:var(--dourado-texto); }
.bg-grafite .quote__text{ color:var(--creme); }

/* ---------- 11. TIMELINE ---------- */
.timeline{ position:relative; }
.timeline__item{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-5); padding-bottom:var(--s-7); position:relative; }
.timeline__item:last-child{ padding-bottom:0; }
.timeline__item::before{
  content:""; position:absolute; left:calc(var(--tl-num,68px) / 2); top:var(--s-6); bottom:0;
  width:1px; background:rgba(58,43,33,.16);
}
.timeline__item:last-child::before{ display:none; }
.timeline__num{
  width:var(--tl-num,68px); font-family:var(--ff-display); font-size:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);
  line-height:1; color:var(--dourado); text-align:center; position:relative; z-index:1;
  background:var(--creme); padding-bottom:.5rem;
}
.bg-grafite .timeline__num{ background:var(--grafite); }
.bg-grafite .timeline__item::before{ background:rgba(244,237,230,.18); }
.timeline__body{ padding-top:.25rem; max-width:36rem; }
.timeline__body h3{ margin-bottom:var(--s-2); }

/* ---------- 12. ACORDEÃO ---------- */
.accordion{ border-top:1px solid rgba(58,43,33,.16); }
.accordion__item{ border-bottom:1px solid rgba(58,43,33,.16); }
.accordion__btn{
  width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:var(--s-4);
  background:none; border:0; padding:var(--s-4) 0; text-align:left; cursor:pointer;
  font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.35; color:var(--cafe);
  transition:color var(--dur) var(--ease);
}
.accordion__btn:hover{ color:var(--dourado); }
.accordion__icon{ flex:0 0 auto; width:16px; height:16px; position:relative; margin-top:.45em; }
.accordion__icon::before,.accordion__icon::after{
  content:""; position:absolute; left:0; top:50%; width:16px; height:1px; background:var(--dourado);
  transition:transform var(--dur) var(--ease);
}
.accordion__icon::after{ transform:rotate(90deg); }
.accordion__btn[aria-expanded="true"] .accordion__icon::after{ transform:rotate(0); }
.accordion__panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur) var(--ease); }
.accordion__panel[data-open="true"]{ grid-template-rows:1fr; }
.accordion__panel > div{ overflow:hidden; }
.accordion__panel p{ padding-bottom:var(--s-4); max-width:44rem; color:var(--cafe-medio); font-size:var(--fs-sm); line-height:1.75; }
.bg-grafite .accordion,.bg-grafite .accordion__item{ border-color:rgba(244,237,230,.18); }
.bg-grafite .accordion__btn{ color:var(--creme); }
.bg-grafite .accordion__panel p{ color:#C9C0B7; }
.bg-grafite strong{ color:var(--creme); }

/* ---------- 13. LISTAS ---------- */
.list-check li{ position:relative; padding-left:var(--s-4); margin-bottom:var(--s-3); font-size:var(--fs-sm); line-height:1.7; color:var(--cafe-medio); }
.list-check li::before{ content:""; position:absolute; left:.15rem; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--dourado); }
.bg-grafite .list-check li{ color:#C9C0B7; }
.list-2col{ columns:2; column-gap:var(--s-6); }
.list-2col li{ break-inside:avoid; }

.deflist{ border-top:1px solid rgba(58,43,33,.16); }
.deflist__row{ display:grid; grid-template-columns:minmax(180px,.36fr) 1fr; gap:var(--s-4); padding:var(--s-4) 0; border-bottom:1px solid rgba(58,43,33,.16); align-items:baseline; }
.deflist__term{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.3; color:var(--cafe); }
.deflist__desc{ font-size:var(--fs-sm); line-height:1.7; color:var(--cafe-medio); }

/* ---------- 14. FORMULÁRIO ---------- */
.field{ margin-bottom:var(--s-4); }
.field__label{ display:block; font-size:var(--fs-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--cafe-medio); margin-bottom:.6rem; }
.field input[type=text],.field input[type=tel],.field input[type=email],.field select,.field textarea{
  width:100%; background:var(--creme-alto); border:1px solid rgba(58,43,33,.38); border-radius:var(--radius);
  padding:.9375rem 1rem; font-size:var(--fs-sm); color:var(--cafe);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.field textarea{ min-height:132px; resize:vertical; line-height:1.65; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--dourado-texto); background:var(--creme-alto); box-shadow:0 0 0 3px rgba(122,90,46,.2); }
.field input:user-invalid,.field select:user-invalid,.field textarea:user-invalid{ border-color:#9A3B2A; }
.field ::placeholder{ color:var(--cafe-suave); opacity:1; }
.radio-group{ display:flex; flex-wrap:wrap; gap:var(--s-3) var(--s-4); }
.radio{ display:inline-flex; align-items:center; gap:.6rem; font-size:var(--fs-sm); color:var(--cafe-medio); cursor:pointer; }
.radio input,.checkbox input{ accent-color:var(--dourado); width:17px; height:17px; }
.checkbox{ display:flex; align-items:flex-start; gap:.75rem; font-size:var(--fs-xs); line-height:1.65; color:var(--cafe-medio); cursor:pointer; }
.checkbox input{ margin-top:.2rem; flex:0 0 auto; }

/* ---------- 15. BLOG ---------- */
.post-card{ display:block; }
.post-card.split{ display:grid; }
.post-card.split .post-card__media{ margin-bottom:0; }
.post-card__media{ overflow:hidden; margin-bottom:var(--s-3); }
.post-card__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform 1.1s var(--ease); }
.post-card:hover .post-card__media img{ transform:scale(1.04); }
.post-card__cat{ font-size:var(--fs-eyebrow); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--dourado-texto); display:block; margin-bottom:.75rem; }
.post-card__title{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.32; color:var(--cafe); margin-bottom:.6rem; transition:color var(--dur) var(--ease); }
.post-card:hover .post-card__title{ color:var(--dourado); }
.post-card__excerpt{ font-size:var(--fs-sm); line-height:1.7; color:var(--cafe-medio); }
.post-card__meta{ font-size:var(--fs-xs); color:var(--cafe-suave); margin-top:var(--s-2); letter-spacing:.05em; }

.chips{ display:flex; flex-wrap:wrap; gap:.625rem; justify-content:center; }
.chip{
  font-size:var(--fs-xs); letter-spacing:.08em; text-transform:uppercase;
  padding:.5rem 1.125rem; border:1px solid rgba(58,43,33,.2); border-radius:100px; color:var(--cafe-medio);
  transition:all var(--dur) var(--ease);
}
.chip:hover,.chip[aria-current="true"]{ background:var(--cafe); border-color:var(--cafe); color:var(--creme); }

.prose{ max-width:var(--maxw-read); }
.prose h2{ font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem); margin-top:var(--s-7); margin-bottom:var(--s-3); }
.prose h3{ font-size:var(--fs-h4); margin-top:var(--s-5); margin-bottom:var(--s-2); }
.prose p,.prose li{ color:var(--cafe-medio); line-height:1.85; }
.prose p + p{ margin-top:var(--s-3); }
.prose ul{ margin-top:var(--s-3); }
.prose ul li{ position:relative; padding-left:var(--s-4); margin-bottom:.75rem; }
.prose ul li::before{ content:""; position:absolute; left:.15rem; top:.72em; width:6px; height:6px; border-radius:50%; background:var(--dourado); }
.prose blockquote{
  margin:var(--s-6) 0; padding-left:var(--s-4); border-left:1px solid var(--dourado);
  font-family:var(--ff-display); font-size:clamp(1.25rem,1.05rem+.8vw,1.625rem); line-height:1.42; color:var(--cafe);
}
.callout{ background:var(--areia-clara); border-top:1px solid var(--dourado); padding:var(--s-5); margin:var(--s-6) 0; }
.callout h3{ font-size:var(--fs-h4); margin-bottom:var(--s-3); }
.disclaimer{ background:var(--creme-baixo); padding:var(--s-4); margin-top:var(--s-6); font-size:var(--fs-xs); line-height:1.7; color:var(--cafe-medio); }
.breadcrumb{ font-size:var(--fs-xs); letter-spacing:.06em; color:var(--cafe-suave); margin-bottom:var(--s-4); }
.breadcrumb a:hover{ color:var(--dourado); }
.byline{ font-size:var(--fs-xs); letter-spacing:.05em; color:var(--cafe-suave); line-height:1.8; }
.article-cover img{ width:100%; height:clamp(240px,42vw,560px); object-fit:cover; }

/* ---------- 16. FAIXA CTA COM TEXTURA ---------- */
.cta-band{ position:relative; overflow:hidden; background:var(--grafite); color:var(--creme); }
.cta-band__bg{ position:absolute; inset:0; z-index:0; }
.cta-band__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; opacity:.34; }
.cta-band::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(46,44,41,.86) 0%, rgba(46,44,41,.92) 100%);
}
.cta-band .container{ position:relative; z-index:2; }

/* ---------- 17. FOOTER ---------- */
.footer{ background:var(--grafite); color:#C9C0B7; padding-top:var(--section-sm); font-size:var(--fs-sm); }
.footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1.35fr 1.35fr; gap:var(--s-6) var(--s-5); padding-bottom:var(--s-8); }
.footer__logo{ width:200px; margin-bottom:var(--s-4); }
.footer .header__wordmark{ color:var(--creme); margin-bottom:var(--s-4); width:max-content; }
.footer .header__wordmark-field{ color:var(--dourado-alto); }
.footer .custom-logo-link{ filter:brightness(0) invert(1); opacity:.9; width:200px; margin-bottom:var(--s-4); }
.footer__tagline{ font-family:var(--ff-display); font-style:italic; font-size:1.125rem; color:var(--dourado-alto); margin-bottom:var(--s-3); }
.footer__title{ font-size:var(--fs-eyebrow); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--dourado-alto); margin-bottom:var(--s-3); display:block; }
.footer__list li{ margin-bottom:.75rem; line-height:1.6; font-size:var(--fs-xs); }
.footer__list a{ transition:color var(--dur) var(--ease); }
.footer__list a:hover{ color:var(--creme); }
.footer p{ font-size:var(--fs-xs); line-height:1.75; color:#A79E95; }
.footer__legal{ border-top:1px solid rgba(244,237,230,.13); padding-block:var(--s-4) var(--s-5); }
.footer__legal p{ font-size:var(--fs-xs); color:#9E958C; line-height:1.75; }
.footer__legal p + p{ margin-top:.75rem; }
.pending{ color:var(--dourado-alto); font-style:italic; }
.brand-seal{
  width:clamp(8.5rem, 11vw, 10.5rem); height:auto; margin-top:var(--s-5);
  opacity:.88; filter:saturate(.72) brightness(.92); transform:rotate(-3deg);
}

/* Saúde 360: atlas clínico orgânico */
.health360{ overflow:hidden; background:var(--creme-alto); }
.health360__grid{
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(2.75rem,6vw,7rem); align-items:center;
}
.health360__visual{
  position:relative; isolation:isolate; margin:0;
  box-shadow:0 30px 80px rgba(58,43,33,.12);
}
.health360__visual::before{
  content:""; position:absolute; inset:-8% 12% 10% -10%; z-index:-1;
  border:1px solid rgba(176,132,77,.28); border-radius:52% 48% 44% 56%;
  transform:rotate(-5deg);
}
.health360__visual img{
  display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover;
  filter:saturate(.9) contrast(.98); transition:transform 1.1s var(--ease), filter 1.1s var(--ease);
}
.health360__visual:hover img{ transform:scale(1.018); filter:saturate(.98) contrast(1); }
.health360__visual figcaption{
  position:absolute; right:0; bottom:0; max-width:72%;
  padding:.8rem 1rem; background:rgba(244,237,230,.88); backdrop-filter:blur(12px);
  font-size:var(--fs-xs); letter-spacing:.06em; color:var(--cafe-medio);
}
.health360__content{ max-width:35rem; }
.health360__lenses{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid rgba(58,43,33,.16);
}
.health360__lenses li{
  position:relative; padding:.95rem .5rem .95rem 1.35rem;
  border-bottom:1px solid rgba(58,43,33,.16);
  font-family:var(--ff-display); font-size:1.05rem; color:var(--cafe);
}
.health360__lenses li::before{
  content:""; position:absolute; left:0; top:1.35rem; width:6px; height:6px;
  border-radius:50%; background:var(--dourado);
  box-shadow:0 0 0 5px rgba(176,132,77,.1);
}

/* ---------- 18. WHATSAPP FLUTUANTE ---------- */
.wa-float{
  position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:90;
  width:58px; height:58px; border-radius:50%; background:var(--cafe); color:var(--creme);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 28px rgba(58,43,33,.28); transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.wa-float:hover{ background:var(--dourado); transform:translateY(-3px); }
.wa-float svg{ width:27px; height:27px; }

/* ---------- 19. REVEAL ---------- */
[data-reveal]{ opacity:1; transform:none; }
[data-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; transition:none; }
  .post-card__media img{ transition:none; }
}

/* ---------- 20. RESPONSIVO ---------- */
@media (max-width: 1080px){
  .footer__grid{ grid-template-columns:1fr 1fr; gap:var(--s-6); }
  .header__inner{ min-height:76px; }
  .nav{ gap:var(--s-4); }
}
@media (max-width: 900px){
  .brand-seal{ width:10rem; max-width:44vw; }
  .health360__grid{ grid-template-columns:1fr; }
  .health360__visual{ max-width:38rem; margin-inline:auto; }
  .health360__content{ max-width:none; }
  .nav-wrap{
    position:fixed; inset:0 0 0 auto; width:min(88vw,360px);
    background:var(--creme-alto); border-left:1px solid rgba(58,43,33,.1);
    transform:translateX(100%); transition:transform .45s var(--ease);
    display:flex; flex-direction:column; justify-content:center; gap:var(--s-4);
    padding:var(--s-8) var(--s-6); z-index:110; box-shadow:-20px 0 60px rgba(58,43,33,.12);
  }
  .nav-wrap[data-open="true"]{ transform:translateX(0); visibility:visible; }
  .nav-wrap{ visibility:hidden; }
  .header{ backdrop-filter:none; background:var(--creme); }
  .nav,.nav__list{ flex-direction:column; align-items:flex-start; gap:var(--s-4); }
  .nav__link{ font-size:1rem; letter-spacing:.09em; }
  .nav-wrap .btn{ width:100%; margin-top:var(--s-3); }
  .burger{ display:flex; z-index:120; position:relative; }
  .scrim{ position:fixed; inset:0; background:rgba(46,44,41,.4); opacity:0; pointer-events:none; transition:opacity .45s var(--ease); z-index:105; }
  .scrim[data-open="true"]{ opacity:1; pointer-events:auto; }
  .scrim{ z-index:99; }

  .hero__grid{ grid-template-columns:1fr; min-height:0; }
  .hero__content{ padding-inline:var(--gutter); padding-block:var(--section-sm) var(--s-7); order:1; }
  .hero__media{ order:2; min-height:0; aspect-ratio:4/3; }
  .hero__media img{ position:static; height:100%; }

  .split,.split-bleed{ grid-template-columns:1fr; gap:var(--s-5); }
  .split--wide-media,.split--wide-text{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
  .split__text{ max-width:none; }
  .split-bleed__media{ min-height:0; aspect-ratio:3/4; }
  .split-bleed__media img{ position:static; height:100%; object-position:center 16%; }
  .split-bleed__body{ padding:var(--section-sm) var(--gutter); }

  .grid--3,.grid--4{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .stats__item{ padding:var(--s-4) var(--s-3) var(--s-3) 0; }
  .stats__item:nth-child(odd){ padding-left:0; border-left:0; }
  .stats__item:nth-child(3),.stats__item:nth-child(4){ border-top:1px solid rgba(58,43,33,.16); }
  .list-2col{ columns:1; }
  .deflist__row{ grid-template-columns:1fr; gap:var(--s-1); }
  .footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px){
  :root{ --fs-body:1rem; }
  .grid--2,.grid--3,.grid--4{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; }
  .stats__item{ border-left:0 !important; padding-left:0 !important; border-top:1px solid rgba(58,43,33,.16); }
  .stats__item:first-child{ border-top:0; }
  .footer__grid{ grid-template-columns:1fr; gap:var(--s-6); }
  .btn{ width:100%; }
  .btn-group{ flex-direction:column; align-items:stretch; }
  .btn-group .link-arrow{ justify-content:center; }
  .header__logo img{ width:158px; }
  .timeline__item{ grid-template-columns:1fr; gap:var(--s-2); --tl-num:0px; }
  .timeline__item::before{ display:none; }
  .timeline__num{ width:auto; text-align:left; padding-bottom:0; }
  .prose blockquote{ padding-left:var(--s-3); }
}
@media print{ .header,.footer,.wa-float,.topbar{ display:none; } }

/* ============================================================
   21. COMPONENTES v2 | refinamento de layout e conversão
   ============================================================ */

/* --- Cabeçalho de seção padronizado --- */
.sec-head{ max-width:44rem; }
.sec-head .lead{ margin-top:var(--s-4); }
.sec-head--center{ margin-inline:auto; text-align:center; }
.sec-head--center .lead{ margin-inline:auto; }
.sec-head--split{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,26rem);
  gap:var(--s-5) var(--s-7); align-items:end; max-width:none;
}
.sec-head--split .lead{ margin-top:0; }

/* --- SINAIS: checklist de identificação (Home) --- */
.signals{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid rgba(58,43,33,.16); }
.signal{
  display:grid; grid-template-columns:auto 1fr; gap:var(--s-3);
  align-items:start; padding:var(--s-4) var(--s-5) var(--s-4) 0;
  border-bottom:1px solid rgba(58,43,33,.16);
  transition:background var(--dur) var(--ease);
}
.signal:nth-child(even){ padding-left:var(--s-5); border-left:1px solid rgba(58,43,33,.16); }
.signal__mark{
  width:26px; height:26px; margin-top:.15rem; flex:0 0 auto; border-radius:50%;
  border:1px solid var(--dourado); display:grid; place-items:center;
  color:var(--dourado-texto); font-size:.75rem; line-height:1;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.signal:hover .signal__mark{ background:var(--dourado-texto); color:var(--creme-alto); }
.signal__title{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.3; color:var(--cafe); }
.signal__text{ font-size:var(--fs-sm); line-height:1.7; color:var(--cafe-medio); margin-top:.4rem; }
.signals__foot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:var(--s-4); padding-top:var(--s-5);
}

/* --- MÉTODO: 3 etapas convergindo para 1 objetivo --- */
.method{ position:relative; }
.method__row{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-5); position:relative; }
.method__step{ position:relative; padding-top:var(--s-6); }
.method__step::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px; background:rgba(58,43,33,.18);
}
.method__step::after{
  content:""; position:absolute; top:-4px; left:0; width:9px; height:9px; border-radius:50%;
  background:var(--creme); border:1px solid var(--dourado);
}
.bg-grafite .method__step::before{ background:rgba(244,237,230,.22); }
.bg-grafite .method__step::after{ background:var(--grafite); border-color:var(--dourado-alto); }
.method__num{
  font-family:var(--ff-display); font-size:.8125rem; letter-spacing:.2em;
  color:var(--dourado-texto); display:block; margin-bottom:var(--s-3);
}
.bg-grafite .method__num{ color:var(--dourado-alto); }
.method__title{ font-family:var(--ff-display); font-size:var(--fs-h3); line-height:1.22; margin-bottom:var(--s-3); }
.method__text{ font-size:var(--fs-sm); line-height:1.75; color:var(--cafe-medio); }
.bg-grafite .method__text{ color:#C9C0B7; }

.method__funnel{ display:grid; place-items:center; padding-block:clamp(2.75rem,5vw,4.5rem) clamp(2rem,4vw,3.5rem); }
.method__funnel svg{ width:min(100%,520px); height:auto; overflow:visible; }
.method__funnel-track,.method__funnel-output,.method__funnel-arrow{
  fill:none; stroke:rgba(224,201,172,.96); stroke-width:1.65; vector-effect:non-scaling-stroke;
}
.method__funnel-source{
  fill:var(--grafite); stroke:rgba(224,201,172,1); stroke-width:1.65; vector-effect:non-scaling-stroke;
}
.method__funnel-core{
  fill:rgba(224,201,172,.22); stroke:rgba(224,201,172,1); stroke-width:1.65; vector-effect:non-scaling-stroke;
}
.method__funnel-core-dot{ fill:var(--dourado-alto); }
.method__funnel-arrow{ stroke:rgba(244,237,230,1); stroke-width:2; }
.method__goal{
  position:relative; text-align:center; max-width:40rem; margin-inline:auto; padding-top:var(--s-5);
}
.method__goal::before{
  content:""; position:absolute; top:0; left:50%; width:clamp(5.5rem,12vw,8rem); height:1px;
  background:var(--dourado); transform:translateX(-50%);
}
.method__goal .eyebrow{ margin-bottom:var(--s-2); }
.method__goal h3{ font-size:clamp(1.5rem,1.15rem + 1.5vw,2.25rem); line-height:1.24; }
.method__goal p{ margin-top:var(--s-3); color:var(--cafe-medio); }
.bg-grafite .method__goal p{ color:#C9C0B7; }

/* --- PILARES (filosofia humana) --- */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-6) var(--s-5); }
.pillar{ }
.pillar__word{
  font-family:var(--ff-display); font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);
  line-height:1.1; color:var(--cafe); display:block; margin-bottom:var(--s-3);
}
.bg-grafite .pillar__word{ color:var(--creme); }
.pillar__rule{ width:40px; height:1px; background:var(--dourado); border:0; margin:0 0 var(--s-3); }
.bg-grafite .pillar__rule{ background:var(--dourado-alto); }
.pillar__lead{ font-family:var(--ff-display); font-style:italic; font-size:1.0625rem; line-height:1.5; color:var(--dourado-texto); margin-bottom:var(--s-2); }
.bg-grafite .pillar__lead{ color:var(--dourado-alto); }
.pillar__text{ font-size:var(--fs-sm); line-height:1.8; color:var(--cafe-medio); }
.bg-grafite .pillar__text{ color:#C9C0B7; }

/* --- FORMAÇÃO simplificada --- */
.creds{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s-4); }
.cred{
  background:var(--creme-alto); border-top:1px solid var(--dourado);
  padding:var(--s-4) var(--s-4) var(--s-5);
  display:grid; grid-template-rows:auto auto 1fr; gap:.5rem;
}
.bg-areia .cred{ background:var(--creme-alto); }
.cred__year{ font-size:var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--dourado-texto); }
.cred__title{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.3; color:var(--cafe); }
.cred__inst{ font-size:var(--fs-sm); line-height:1.65; color:var(--cafe-medio); }

/* --- FAIXA DE PROVA (credenciais em linha) --- */
.proof{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s-4);
  border-block:1px solid rgba(58,43,33,.16); padding-block:var(--s-5);
}
.bg-grafite .proof{ border-color:rgba(244,237,230,.18); }
.proof__item{ text-align:center; }
.proof__num{ font-family:var(--ff-display); font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem); line-height:1.15; color:var(--cafe); display:block; }
.bg-grafite .proof__num{ color:var(--creme); }
.proof__label{ font-size:var(--fs-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--cafe-suave); margin-top:.5rem; display:block; line-height:1.5; }
.bg-grafite .proof__label{ color:#A79E95; }

/* --- BENEFÍCIOS / OBJEÇÕES (landing) --- */
.benefit{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-3); align-items:start; }
.benefit__mark{
  width:30px; height:30px; flex:0 0 auto; border-radius:50%; margin-top:.1rem;
  background:var(--areia-clara); color:var(--dourado-texto);
  display:grid; place-items:center; font-size:.8125rem; line-height:1;
}
.bg-grafite .benefit__mark{ background:rgba(198,164,123,.18); color:var(--dourado-alto); }
.benefit__title{ font-family:var(--ff-display); font-size:var(--fs-h4); line-height:1.3; margin-bottom:.4rem; }
.benefit__text{ font-size:var(--fs-sm); line-height:1.75; color:var(--cafe-medio); }
.bg-grafite .benefit__text{ color:#C9C0B7; }

.objection{ border-top:1px solid rgba(58,43,33,.16); padding-top:var(--s-4); }
.objection__q{ font-family:var(--ff-display); font-style:italic; font-size:var(--fs-h4); line-height:1.35; color:var(--cafe-medio); margin-bottom:var(--s-2); }
.objection__a{ font-size:var(--fs-sm); line-height:1.8; color:var(--cafe-medio); }
.objection__a strong{ color:var(--cafe); }

/* --- BANNER DE TOPO (blog) --- */
.banner{ position:relative; overflow:hidden; background:var(--grafite); color:var(--creme); isolation:isolate; }
.banner__bg{ position:absolute; inset:0; z-index:0; }
.banner__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 42%; opacity:1; filter:saturate(.82) brightness(.94); }
.banner::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(46,44,41,.80) 0%, rgba(46,44,41,.70) 46%, rgba(46,44,41,.88) 100%);
}
.banner .container{ position:relative; z-index:2; }
.banner__inner{ padding-block:clamp(5rem, 3.5rem + 6vw, 9rem); max-width:46rem; }
.banner__inner.center{ margin-inline:auto; }

/* --- MAPA --- */
.map{ position:relative; }
.map iframe{ width:100%; height:clamp(320px,42vh,460px); border:0; display:block; filter:saturate(.72) contrast(.96); }
.map__card{
  background:var(--creme-alto); border-top:1px solid var(--dourado);
  padding:var(--s-5); max-width:26rem;
}
.map--overlay{ display:grid; }
.map--overlay > *{ grid-area:1/1; }
.map--overlay .map__card{ align-self:center; justify-self:start; margin-inline:var(--gutter); box-shadow:0 18px 50px rgba(58,43,33,.16); }

/* --- FIGURA COM LEGENDA --- */
.figure figcaption{
  font-size:var(--fs-xs); line-height:1.6; color:var(--cafe-suave);
  margin-top:var(--s-2); padding-left:var(--s-2); border-left:1px solid var(--dourado);
}

/* --- CTA STICKY (mobile, landing) --- */
.cta-sticky{ display:none; }

/* --- Media ratio helpers --- */
.ratio-45 img{ aspect-ratio:4/5; object-fit:cover; width:100%; }
.ratio-11 img{ aspect-ratio:1/1;  object-fit:cover; width:100%; }
.ratio-43 img{ aspect-ratio:4/3;  object-fit:cover; width:100%; }
.ratio-169 img{ aspect-ratio:16/9; object-fit:cover; width:100%; }
.ratio-34 img{ aspect-ratio:3/4;  object-fit:cover; width:100%; }

/* --- Responsivo dos componentes v2 --- */
@media (max-width: 900px){
  .sec-head--split{ grid-template-columns:1fr; align-items:start; }
  .method__row{ grid-template-columns:1fr; gap:var(--s-6); }
  .method__funnel{ padding-block:2.5rem 2rem; }
  .method__funnel svg{ width:min(100%,300px); }
  .pillars{ grid-template-columns:1fr; gap:var(--s-6); }
  .creds{ grid-template-columns:1fr; }
  .proof{ grid-template-columns:repeat(2,1fr); gap:var(--s-5) var(--s-4); }
  .map--overlay{ display:block; }
  .map--overlay .map__card{ max-width:none; margin:0; }
  .cta-sticky{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:95;
    background:var(--creme-alto); border-top:1px solid rgba(58,43,33,.16);
    padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));
    box-shadow:0 -8px 30px rgba(58,43,33,.1);
  }
  .cta-sticky .btn{ width:100%; padding-block:.9375rem; }
  body:has(.cta-sticky) .footer{ padding-bottom:5.5rem; }
  body:has(.cta-sticky) .wa-float{ bottom:5.5rem; }
}
@media (max-width: 620px){
  .signals{ grid-template-columns:1fr; }
  .signal{ padding-right:0; }
  .signal:nth-child(even){ padding-left:0; border-left:0; }
  .proof{ grid-template-columns:1fr; gap:var(--s-4); }
  .proof__item{ text-align:left; }
  .signals__foot{ flex-direction:column; align-items:flex-start; }
}

/* --- Split: proporções por posição (nomes sem ambiguidade) --- */
.split--lg-first{ grid-template-columns:1.15fr .85fr; }
.split--lg-last { grid-template-columns:.85fr 1.15fr; }
@media (max-width:900px){ .split--lg-first,.split--lg-last{ grid-template-columns:1fr; } }
/* Evita que retratos verticais estourem a altura da seção */
.split__media--cap img{ max-height:min(78vh,700px); object-fit:cover; }

/* --- Superfícies escuras: herança única para .bg-grafite, .cta-band e .banner --- */
.cta-band, .banner{ color:var(--creme); }
.cta-band h1,.cta-band h2,.cta-band h3,.cta-band .display,
.banner h1,.banner h2,.banner h3,.banner .display{ color:var(--creme); }
.cta-band p,.cta-band .lead,.cta-band li,
.banner p,.banner .lead,.banner li{ color:#D6CEC5; }
.cta-band .tensao,.cta-band .eyebrow,
.banner .tensao,.banner .eyebrow{ color:var(--dourado-alto); }
.cta-band .rule,.banner .rule{ background:var(--dourado-alto); }
.cta-band .gold,.banner .gold{ color:var(--dourado-alto); }
.cta-band .microcopy,.banner .microcopy{ color:rgba(214,206,197,.78); }
.cta-band .btn--primary,.banner .btn--primary{ background:var(--creme); color:var(--grafite); border-color:var(--creme); }
.cta-band .btn--primary:hover,.banner .btn--primary:hover{ background:var(--dourado-texto); border-color:var(--dourado-texto); color:var(--creme-alto); }
.cta-band .btn--ghost,.banner .btn--ghost{ color:var(--creme); border-color:rgba(244,237,230,.4); }
.cta-band .btn--ghost:hover,.banner .btn--ghost:hover{ background:var(--creme); color:var(--grafite); border-color:var(--creme); }
.cta-band .link-arrow,.banner .link-arrow{ color:var(--creme); border-color:var(--dourado-alto); }
.cta-band .link-arrow:hover,.banner .link-arrow:hover{ color:var(--dourado-alto); }

/* --- .pending: legível em superfícies claras --- */
.pending{ color:var(--dourado-texto); font-style:italic; }
.bg-grafite .pending,.cta-band .pending,.banner .pending,.footer .pending{ color:var(--dourado-alto); }

/* ============================================================
   22. HEADER COMPACTO NO SCROLL
   ============================================================ */
.header{
  --header-h: 88px;
  --logo-w: 184px;
  transition:background var(--dur) var(--ease),
             box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
  will-change:background;
}
.header__inner{
  min-height:var(--header-h);
  transition:min-height .4s var(--ease), padding-block .4s var(--ease);
}
.header__logo img{
  width:var(--logo-w);
  transition:width .4s var(--ease);
}

/* Estado compacto */
.header.is-compact{
  --header-h: 62px;
  --logo-w: 146px;
  background:rgba(250,246,241,.94);
  border-bottom-color:rgba(58,43,33,.14);
  box-shadow:0 6px 26px rgba(58,43,33,.07);
}
.header.is-compact .header__inner{ padding-block:.5rem; }
.header.is-compact .btn{ padding:.75rem 1.375rem; }
.header .btn{ transition:padding .4s var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease); }

@media (max-width: 900px){
  .header{ --header-h: 76px; --logo-w: 168px; }
  .header.is-compact{ --header-h: 58px; --logo-w: 132px; }
}
@media (max-width: 620px){
  .header{ --logo-w: 152px; }
  .header.is-compact{ --logo-w: 124px; }
}
@media (prefers-reduced-motion: reduce){
  .header__inner,.header__logo img,.header .btn{ transition:none; }
}
