/* Fontes servidas pelo próprio site, não pelo CDN do Google.

   Geradas a partir do css2 do Google Fonts. Para acrescentar um peso, pegue o
   @font-face de lá e traga o .woff2 correspondente para assets/fonts/.

   Duas razões para sair do CDN. Velocidade: o navegador abria conexão com
   fonts.googleapis.com, baixava um CSS e só então descobria que a fonte estava
   em fonts.gstatic.com — duas viagens em série antes do primeiro pixel, e a
   folha bloqueava a renderização. E LGPD: pedir a fonte ao Google entrega o IP
   do visitante a um terceiro antes de qualquer consentimento, num site que tem
   política de privacidade e aviso de cookies.

   Só o subset `latin`: nenhum caractere das duas páginas cai fora dele, então
   latin-ext, cyrillic e vietnamese eram 432 KiB que nunca seriam baixados.
   O unicode-range fica assim mesmo — é ele que faz o navegador buscar só o
   arquivo do alfabeto que a página usa.

   Montserrat 600 não é aplicado por nenhuma regra do styles.css, mas fica: o
   <strong> da privacidade.html não declara peso, cai no padrão 700 do
   navegador e escolhe o 600. Sem ele, o navegador engrossaria o 500 por conta
   própria, com resultado pior. */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-300-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/montserrat-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/montserrat-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/montserrat-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../assets/fonts/montserrat-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =====================================================================
   JENIFFER ZIMERMANN — BIOMÉDICA ESTETA
   Sistema visual: Off White + Azul Acinzentado + Dourado Champagne
   Tipografia: Cormorant Garamond (display) + Montserrat (texto)
   ===================================================================== */

/* ------------------------------- TOKENS ------------------------------ */
:root{
  /* Paleta oficial */
  --blue:      #C9D7E6;   /* azul acinzentado */
  --off:       #F7F4EF;   /* off white — base do site */
  --gold:      #C8A86B;   /* dourado champagne — acento (3%) */
  --graphite:  #2D2D2D;   /* grafite — textos e footer */
  --warm:      #D8D2CC;   /* cinza quente — bordas e neutros */

  /* Derivadas (sempre a partir da paleta) */
  --off-2:     #FBF9F6;
  --blue-soft: #E3EBF3;
  --blue-deep: #B4C6D9;
  --gold-soft: rgba(200,168,107,.28);
  --gold-tint: rgba(200,168,107,.08);
  --ink:       #2D2D2D;
  --ink-70:    rgba(45,45,45,.72);
  --ink-50:    rgba(45,45,45,.52);
  --ink-25:    rgba(45,45,45,.22);

  /* Tipografia */
  --display: "Cormorant Garamond", "Times New Roman", serif;
  --sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;

  /* Ritmo */
  --wrap: 1240px;
  --gutter: clamp(20px, 5vw, 64px);
  --section-y: clamp(80px, 11vw, 160px);
  --radius: 4px;
  --radius-lg: 18px;

  /* Movimento — lento e sofisticado */
  --ease: cubic-bezier(.22,.61,.36,1);
  --t-fast: .45s var(--ease);
  --t: .7s var(--ease);
  --t-slow: 1.2s var(--ease);

  --header-h: 92px;
}

/* ------------------------------- RESET ------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 8px); }
body{
  margin:0;
  background:var(--off);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  font-weight:400;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
img{ height:auto; }
h1,h2,h3,h4,p,figure,blockquote,ul{ margin:0; }
ul{ list-style:none; padding:0; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
::selection{ background:var(--gold-soft); color:var(--ink); }

section[id]{ scroll-margin-top:calc(var(--header-h) + 8px); }
.sprite{ position:absolute; width:0; height:0; overflow:hidden; }
.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--graphite); color:var(--off); padding:12px 20px;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
}
.skip:focus{ left:16px; top:16px; }

:focus-visible{ outline:1px solid var(--gold); outline-offset:3px; }

/* ------------------------------ LAYOUT ------------------------------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:820px; }
.section{ padding-block:var(--section-y); position:relative; }
.section--tint{ background:var(--blue-soft); }
.section--soft{ background:linear-gradient(180deg,var(--off) 0%,var(--off-2) 100%); }
.center{ text-align:center; }
.center .rule, .center .diamond{ margin-inline:auto; }

/* --------------------------- TIPOGRAFIA ------------------------------ */
.h2{
  font-family:var(--display); font-weight:400;
  font-size:clamp(2.1rem,4.4vw,3.2rem); line-height:1.14;
  letter-spacing:-.005em; color:var(--ink);
}
.h3{
  font-family:var(--display); font-weight:400;
  font-size:clamp(1.6rem,2.6vw,2.15rem); line-height:1.2;
}
.h4{
  font-family:var(--display); font-weight:500;
  font-size:1.35rem; line-height:1.3;
}
.eyebrow{
  font-family:var(--sans); font-size:11.5px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  margin-bottom:22px;
}
.eyebrow::after{
  content:""; display:inline-block; width:34px; height:1px;
  background:var(--gold-soft); margin-left:14px; vertical-align:middle;
}
.center .eyebrow::before{
  content:""; display:inline-block; width:34px; height:1px;
  background:var(--gold-soft); margin-right:14px; vertical-align:middle;
}
p{ color:var(--ink-70); font-size:clamp(15px,1.05vw,16.5px); }
.section__head{ max-width:720px; margin-bottom:clamp(48px,6vw,84px); }
.section__head.center{ margin-inline:auto; }
.section__lead{ margin-top:22px; max-width:56ch; }
.center .section__lead{ margin-inline:auto; }

/* Linhas finas e ornamentos */
.rule{ display:block; width:56px; height:1px; background:var(--gold); opacity:.7; margin:26px 0; }
.diamond{
  display:block; width:7px; height:7px; margin-bottom:26px;
  border:1px solid var(--gold); transform:rotate(45deg);
}
.diamond--gold{ background:var(--gold); border-color:var(--gold); }

/* ------------------------------ ÍCONES ------------------------------- */
.ic{
  width:24px; height:24px; fill:none; stroke:currentColor;
  stroke-width:1; stroke-linecap:round; stroke-linejoin:round;
  color:var(--gold); flex:none;
}
.ic--xs{ width:15px; height:15px; stroke-width:1.2; }
.ic--sm{ width:19px; height:19px; }
.ic--md{ width:34px; height:34px; }
.ic--lg{ width:42px; height:42px; }
.ic--flip{ transform:rotate(180deg); }

/* ------------------------------ BOTÕES ------------------------------- */
.btn{
  --btn-fg:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-size:11.5px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  padding:17px 34px; border-radius:2px; color:var(--btn-fg); white-space:nowrap;
  position:relative; transition:background var(--t-fast), color var(--t-fast),
    border-color var(--t-fast), transform var(--t-fast);
  will-change:transform;
}
.btn--solid{ background:var(--graphite); color:var(--off); }
.btn--solid:hover{ background:#1f1f1f; transform:translateY(-2px); }
.btn--outline{ border:1px solid var(--ink-25); padding:14px 26px; font-size:10.5px; }
.btn--outline:hover{ border-color:var(--gold); color:var(--gold); }
.btn--ghost{ border:1px solid var(--gold-soft); color:var(--gold); }
.btn--sm{ padding:14px 26px; }
.btn--full{ width:100%; }
.btn--whats{ background:var(--graphite); color:var(--off); }
.btn--whats .ic{ color:var(--gold); }
.btn--whats:hover{ background:var(--gold); color:#fff; }
.btn--whats:hover .ic{ color:#fff; }
.btn--link{
  padding:17px 0; letter-spacing:.16em; color:var(--ink);
}
.btn--link::after{
  content:""; position:absolute; left:0; right:26px; bottom:12px;
  height:1px; background:var(--ink-25); transition:background var(--t-fast);
}
.btn--link:hover{ color:var(--gold); }
.btn--link:hover::after{ background:var(--gold); }
.btn--link:hover .ic{ transform:translateX(4px); }
.btn .ic{ transition:transform var(--t-fast); }

.link{
  display:inline-flex; align-items:center; gap:9px;
  font-size:11.5px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink); padding-bottom:7px; border-bottom:1px solid var(--ink-25);
  transition:color var(--t-fast), border-color var(--t-fast);
}
.link:hover{ color:var(--gold); border-color:var(--gold); }
.link:hover .ic{ transform:translateX(4px); }
.link .ic{ transition:transform var(--t-fast); }
.link--sm{ font-size:10.5px; letter-spacing:.18em; }

/* ------------------------------ HEADER ------------------------------- */
.header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:transparent; transition:background var(--t), backdrop-filter var(--t);
}
.header.is-stuck{
  background:rgba(247,244,239,.92);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
}
.header__inner{
  max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter);
  height:var(--header-h); display:flex; align-items:center; justify-content:space-between;
  gap:32px; transition:height var(--t);
}
.header.is-stuck .header__inner{ height:74px; }
.header__line{
  display:block; height:1px; background:var(--gold-soft);
  transform:scaleX(0); transform-origin:left; transition:transform var(--t-slow);
}
.header.is-stuck .header__line{ transform:scaleX(1); }

/* Logo */
.logo{ display:flex; align-items:center; gap:13px; flex:none; }
.logo__sym{ height:56px; width:auto; transition:height var(--t); }
.header.is-stuck .logo__sym{ height:46px; }
.logo__mark{
  font-family:var(--display); font-size:27px; font-weight:400;
  letter-spacing:.06em; color:var(--gold); line-height:1;
}
.logo__rule{ width:1px; height:36px; background:var(--gold); opacity:.6; flex:none; }
.logo__text{ display:flex; flex-direction:column; gap:3px; }
.logo__name{
  font-family:var(--sans); font-size:11.5px; font-weight:500;
  letter-spacing:.17em; text-transform:uppercase; color:var(--ink); line-height:1;
  white-space:nowrap;
}
.logo__role{
  font-family:var(--sans); font-size:8.5px; font-weight:400;
  letter-spacing:.26em; text-transform:uppercase; color:var(--ink-50); line-height:1;
  white-space:nowrap;
}

/* Nav */
.nav__list{ display:flex; align-items:center; gap:clamp(18px,2.2vw,34px); }
.nav__list a{
  font-size:11.5px; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-70); position:relative; padding-block:6px; white-space:nowrap;
  transition:color var(--t-fast);
}
.nav__list a::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:right;
  transition:transform var(--t);
}
.nav__list a:hover{ color:var(--ink); }
.nav__list a:hover::after,
.nav__list a.is-active::after{ transform:scaleX(1); transform-origin:left; }
.nav__list a.is-active{ color:var(--ink); }
.nav__cta-mobile{ display:none; }

.burger{ display:none; width:30px; height:30px; position:relative; }
.burger span{
  position:absolute; left:3px; width:24px; height:1px; background:var(--ink);
  transition:transform var(--t-fast), opacity var(--t-fast);
}
.burger span:nth-child(1){ top:12px; }
.burger span:nth-child(2){ top:19px; }
.burger.is-open span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.burger.is-open span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

/* -------------------------------- HERO ------------------------------- */
.hero{ padding-top:calc(var(--header-h) + clamp(40px,6vw,80px)); position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; top:-14vw; right:-14vw; width:46vw; height:46vw;
  background:radial-gradient(circle at 50% 50%, var(--blue) 0%, rgba(201,215,230,0) 68%);
  opacity:.55; pointer-events:none;
}
.hero__grid{
  max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter);
  display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(40px,6vw,86px);
  align-items:center; position:relative;
}
.hero__title{
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.6rem,5.6vw,4.5rem); line-height:1.06;
  letter-spacing:-.012em; color:var(--ink); margin-bottom:30px;
}
.hero__title em{ font-style:italic; font-weight:300; color:var(--ink); }
.hero__lead{ max-width:46ch; font-size:clamp(15.5px,1.25vw,18px); line-height:1.75; }
.hero__actions{ display:flex; align-items:center; gap:clamp(14px,2.4vw,34px); margin-top:44px; flex-wrap:wrap; }
.hero__meta{
  display:flex; flex-wrap:wrap; gap:12px 30px; margin-top:56px;
  padding-top:26px; border-top:1px solid var(--gold-soft);
}
.hero__meta li{
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-50);
  display:flex; align-items:center; gap:10px;
}
.hero__meta li::before{
  content:""; width:5px; height:5px; border:1px solid var(--gold); transform:rotate(45deg);
}

.hero__media{ position:relative; }
.hero__sign{
  position:absolute; right:26px; bottom:26px; width:auto; height:64px; z-index:2;
  opacity:.85; filter:drop-shadow(0 2px 10px rgba(45,45,45,.35));
  pointer-events:none;
}
.hero__arc{
  position:absolute; inset:auto -22px -22px auto; width:62%; height:62%;
  border:1px solid var(--gold-soft); border-radius:0 0 200px 0; pointer-events:none;
}
.hero__badge{
  position:absolute; left:-6%; bottom:9%; background:var(--off);
  padding:24px 28px; display:flex; align-items:center; gap:16px;
  box-shadow:0 24px 60px -34px rgba(45,45,45,.45); max-width:76%;
}
.hero__badge-num{ font-family:var(--display); font-size:2.5rem; line-height:1; color:var(--gold); }
.hero__badge-txt{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-70); line-height:1.7; }

/* Faixa de pilares */
.hero__strip{
  margin-top:clamp(64px,8vw,110px); border-top:1px solid var(--warm);
  border-bottom:1px solid var(--warm); overflow:hidden; padding-block:20px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.strip__track{
  display:flex; align-items:center; gap:34px; width:max-content;
  animation:marquee 62s linear infinite;
}
.strip__track span:not(.dot){
  font-family:var(--display); font-size:1.3rem; font-style:italic;
  color:var(--ink-50); white-space:nowrap;
}
.strip__track .dot{ width:4px; height:4px; background:var(--gold); transform:rotate(45deg); flex:none; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ------------------------------ MÍDIA -------------------------------- */
.media{
  position:relative; overflow:hidden; background:
    linear-gradient(150deg,var(--blue-soft) 0%,var(--warm) 55%,var(--off-2) 100%);
  border-radius:var(--radius);
}
.media img{ width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(.86) contrast(.97) sepia(.05);
  transition:transform var(--t-slow), opacity var(--t); opacity:0; }
.media img.is-loaded{ opacity:1; }
.media--arch{ aspect-ratio:4/5; border-radius:260px 260px var(--radius) var(--radius); }
.media--arch-soft{ aspect-ratio:4/5; border-radius:var(--radius) 200px var(--radius) 200px; }
.media:hover img{ transform:scale(1.03); }
/* Placeholder elegante quando não há foto */
.media--empty::after{
  content:"JZ"; position:absolute; inset:0; display:grid; place-items:center;
  font-family:var(--display); font-size:clamp(2rem,5vw,3.4rem); letter-spacing:.14em;
  color:var(--gold); opacity:.5;
}
.media--empty::before{
  content:""; position:absolute; inset:16px; border:1px solid var(--gold-soft);
  border-radius:inherit; pointer-events:none;
}

/* ------------------------------ MANIFESTO ---------------------------- */
.manifesto{ padding-block:clamp(72px,9vw,130px); }
.manifesto__title{
  font-family:var(--display); font-weight:300; font-style:italic;
  font-size:clamp(1.9rem,4vw,3rem); line-height:1.24; color:var(--ink);
}
/* sem título, o parágrafo passa a ser a voz da seção — ganha corpo de citação */
.manifesto__text{
  margin-top:30px; max-width:52ch; margin-inline:auto;
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:clamp(1.25rem,2.3vw,1.7rem); line-height:1.5; color:var(--ink);
}

/* -------------------------------- SOBRE ------------------------------ */
.sobre__grid{
  display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(40px,6vw,96px); align-items:start;
}
/* a coluna de texto é bem mais alta que a foto — a foto acompanha a leitura */
.sobre__media{ position:sticky; top:calc(var(--header-h) + 40px); }
.sobre__vline{
  position:absolute; top:12%; right:-26px; width:1px; height:46%; background:var(--gold); opacity:.5;
}
.sobre__content p + p{ margin-top:20px; }
.pillars{ margin-top:44px; display:grid; gap:1px; background:var(--warm); border-block:1px solid var(--warm); }
.pillars li{
  background:var(--off); display:flex; gap:20px; align-items:baseline; padding:20px 4px;
  font-size:14.5px; color:var(--ink-70);
}
.pillars__num{ font-family:var(--display); font-size:1.15rem; color:var(--gold); flex:none; }
.signature{ margin-top:44px; }
.signature__name{
  display:block; font-family:var(--display); font-style:italic;
  font-size:1.9rem; color:var(--ink); line-height:1.2;
}
.signature__role{
  display:block; margin-top:8px; font-size:10px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--gold);
}

/* --------------------------- PROCEDIMENTOS --------------------------- */
.proc{ display:grid; gap:clamp(48px,6vw,88px); }
.proc__item{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4.5vw,64px); align-items:center;
}
.proc__item--rev .proc__media{ order:2; }
.proc__media .media{ aspect-ratio:16/11; border-radius:var(--radius) var(--radius) 140px var(--radius); }
.proc__item--rev .proc__media .media{ border-radius:var(--radius) var(--radius) var(--radius) 140px; }
.proc__body .h3{ margin:22px 0 16px; }
.proc__body p{ max-width:44ch; margin-bottom:30px; }

.proc__grid{
  margin-top:clamp(56px,7vw,100px);
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--warm); border:1px solid var(--warm);
}
.proc__card{
  background:var(--off); padding:clamp(28px,3vw,40px) clamp(22px,2.4vw,32px);
  display:flex; flex-direction:column; gap:16px;
  transition:background var(--t), transform var(--t);
}
.proc__card .h4{ margin-top:6px; }
.proc__card p{ font-size:14px; flex:1; }
.proc__card .link{ align-self:flex-start; }
.proc__card:hover{ background:var(--off-2); }
.proc__card .ic{ transition:transform var(--t); }
.proc__card:hover .ic--md{ transform:translateY(-3px); }
.proc__card--cta{ background:var(--graphite); }
.proc__card--cta .h4{ color:var(--off); }
.proc__card--cta p{ color:rgba(247,244,239,.62); }
.proc__card--cta .btn--solid{ background:var(--gold); color:#fff; align-self:flex-start; }
.proc__card--cta .btn--solid:hover{ background:#d3b57c; }
.proc__card--cta:hover{ background:#262626; }

/* ---------------------------- RESULTADOS ----------------------------- */
.ba{ max-width:600px; margin-inline:auto; }
.ba__frame{
  position:relative; aspect-ratio:3/4; overflow:hidden; border-radius:var(--radius);
  background:var(--warm); cursor:ew-resize; user-select:none; -webkit-user-select:none;
  box-shadow:0 40px 90px -60px rgba(45,45,45,.6);
}
.ba__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0;
  transition:opacity var(--t); }
.ba__img--ph{ opacity:1; }
.ba__img--ph.ba__img--after{ background:linear-gradient(140deg,var(--blue-soft),var(--blue) 70%,var(--off-2)); }
.ba__img--ph.ba__img--before{ background:linear-gradient(140deg,var(--warm),var(--off-2) 70%,var(--warm)); }
.ba__img.is-loaded{ opacity:1; }
.ba__clip{ position:absolute; inset:0; }
.ba__img--before{ clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0); }
.ba__handle{
  position:absolute; top:0; bottom:0; left:var(--pos,50%); width:1px; background:var(--gold);
  transform:translateX(-.5px); z-index:3;
}
.ba__grip{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border:1px solid var(--gold); border-radius:50%;
  background:rgba(247,244,239,.86); backdrop-filter:blur(4px);
  display:grid; place-items:center; transition:background var(--t-fast), transform var(--t-fast);
}
.ba__grip::before,.ba__grip::after{
  content:""; position:absolute; width:6px; height:6px;
  border-top:1px solid var(--gold); border-right:1px solid var(--gold);
}
.ba__grip::before{ transform:rotate(-135deg) translate(-4px,-4px); }
.ba__grip::after{ transform:rotate(45deg) translate(-4px,-4px); }
.ba__handle:hover .ba__grip,
.ba__handle:focus-visible .ba__grip{ background:var(--off); transform:translate(-50%,-50%) scale(1.06); }
.ba__tag{
  position:absolute; top:22px; z-index:2; font-size:9.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--off); padding:8px 16px;
  background:rgba(45,45,45,.55); backdrop-filter:blur(3px);
}
.ba__tag--l{ left:22px; }
.ba__tag--r{ right:22px; }
.ba__caption{
  margin-top:20px; text-align:center; font-size:10.5px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-50);
}

.stats{
  margin-top:clamp(60px,8vw,110px);
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--warm); border-bottom:1px solid var(--warm);
}
.stats__item{
  padding:clamp(28px,3.4vw,46px) 22px; text-align:center;
  border-left:1px solid var(--warm);
}
.stats__item:first-child{ border-left:0; }
.stats__num{ display:block; font-family:var(--display); font-size:clamp(2.2rem,3.4vw,3rem); line-height:1; color:var(--ink); }
.stats__lbl{ display:block; margin-top:14px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-50); }

/* ------------------------------ CTA BAND ----------------------------- */
.cta-band{
  padding-block:clamp(88px,11vw,150px); position:relative; overflow:hidden;
  background:
    linear-gradient(180deg, rgba(247,244,239,.84) 0%, rgba(201,215,230,.86) 100%),
    url("../assets/img/estrutura-1.jpg") center 42% / cover no-repeat;
}
.cta-band .wrap{ position:relative; z-index:1; }
.cta-band::before,.cta-band::after{
  content:""; position:absolute; border:1px solid rgba(200,168,107,.35); border-radius:50%;
  pointer-events:none;
}
.cta-band::before{ width:520px; height:520px; left:-190px; top:-190px; }
.cta-band::after{ width:380px; height:380px; right:-140px; bottom:-160px; }
.cta-band__sym{ height:74px; width:auto; margin:0 auto 26px; filter:brightness(1.04); }
.cta-band__title{
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.1rem,4.6vw,3.4rem); line-height:1.12; color:var(--ink);
}
.cta-band__text{ margin:24px auto 42px; max-width:48ch; color:rgba(45,45,45,.68); }

/* ------------------------------ ESTRUTURA ---------------------------- */
.gallery{
  display:grid; grid-template-columns:1.5fr 1fr; grid-template-rows:auto auto;
  gap:clamp(14px,1.8vw,26px);
}
.gallery__a{ grid-row:1/3; aspect-ratio:3/4; border-radius:200px 200px var(--radius) var(--radius); }
.gallery__b,.gallery__c{ aspect-ratio:4/3; }
.gallery__c{ border-radius:var(--radius) var(--radius) 120px var(--radius); }

/* ----------------------------- DEPOIMENTOS --------------------------- */
.depoimentos{ background:var(--blue); }
.quotes__viewport{ overflow:hidden; }
.quotes__track{ display:flex; transition:transform var(--t-slow); }
.quote{
  flex:0 0 100%; padding-inline:clamp(8px,1vw,14px); box-sizing:border-box;
}
.quote > *{ background:none; }
.quote{ display:block; }
.quote blockquote{
  background:var(--off); margin:0; padding:clamp(34px,4vw,52px);
  border-radius:var(--radius) 44px var(--radius) 44px;
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:clamp(1.35rem,2.1vw,1.75rem); line-height:1.5; color:var(--ink);
}
.quote .diamond{ margin:0 auto 20px; }
.quote__who{
  margin-top:24px; text-align:center; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink); line-height:2;
}
.quotes__nav{ display:flex; align-items:center; justify-content:center; gap:26px; margin-top:44px; }
.quotes__btn{
  width:46px; height:46px; border:1px solid rgba(45,45,45,.2); border-radius:50%;
  display:grid; place-items:center; color:var(--ink);
  transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.quotes__btn:hover{ border-color:var(--gold); color:var(--gold); background:rgba(247,244,239,.5); }
.quotes__dots{ display:flex; gap:10px; }
.quotes__dot{ width:6px; height:6px; border:1px solid rgba(45,45,45,.35); transform:rotate(45deg); transition:background var(--t-fast), border-color var(--t-fast); }
.quotes__dot.is-active{ background:var(--gold); border-color:var(--gold); }

/* ------------------------------- CONTATO ----------------------------- */
.contato__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(44px,6vw,96px); align-items:start; }
.info{ margin:44px 0; display:grid; gap:1px; background:var(--warm); border-block:1px solid var(--warm); }
.info li{ background:var(--off); display:flex; gap:18px; padding:22px 4px; align-items:flex-start; }
.info strong{
  display:block; font-size:9.5px; font-weight:500; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin-bottom:8px;
}
.info span{ font-size:14.5px; color:var(--ink-70); line-height:1.7; }
.info a:hover{ color:var(--gold); }

.form{
  background:var(--off); border:1px solid var(--warm); padding:clamp(28px,3.6vw,48px);
  border-radius:var(--radius) 60px var(--radius) 60px;
}
.field{ margin-bottom:24px; }
.field label{
  display:block; font-size:10px; font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-70); margin-bottom:11px;
}
.field .opt{ letter-spacing:.1em; text-transform:none; color:var(--ink-50); }
.field input,.field select,.field textarea{
  width:100%; background:var(--off-2); border:1px solid var(--warm); border-radius:2px;
  padding:15px 16px; font-size:14.5px; color:var(--ink);
  transition:border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.field textarea{ resize:vertical; min-height:96px; font-family:var(--sans); }
.field input::placeholder,.field textarea::placeholder{ color:rgba(45,45,45,.34); }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--gold); background:var(--off);
  box-shadow:0 0 0 3px var(--gold-tint);
}
.select{ position:relative; }
.select select{ appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer; }
.select::after{
  content:""; position:absolute; right:18px; top:50%; width:7px; height:7px;
  border-right:1px solid var(--gold); border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg); pointer-events:none;
}
.field.is-invalid input,.field.is-invalid select{ border-color:#a8705f; }
.field__err{
  display:none; margin-top:8px; font-size:11px; letter-spacing:.06em; color:#a8705f;
}
.field.is-invalid .field__err{ display:block; }
.form__note{ margin-top:18px; font-size:11.5px; letter-spacing:.04em; color:var(--ink-50); text-align:center; }
.form__ok{
  margin-top:16px; padding:14px; text-align:center; font-size:12px; letter-spacing:.1em;
  color:var(--ink); background:var(--blue-soft); border:1px solid var(--gold-soft);
}

/* -------------------------------- FOOTER ----------------------------- */
.footer{ background:var(--graphite); color:rgba(247,244,239,.72); padding-block:clamp(64px,8vw,96px) 40px; }
.footer__top{ display:grid; grid-template-columns:1.1fr 1.6fr; gap:clamp(40px,5vw,80px); }
.logo--footer .logo__sym{ height:66px; filter:brightness(1.18) saturate(1.05); }
.logo--footer .logo__rule{ background:var(--gold); }
.logo--footer .logo__name{ color:var(--off); }
.logo--footer .logo__role{ color:rgba(247,244,239,.5); }
.footer__tag{ margin-top:26px; font-size:14px; color:rgba(247,244,239,.55); line-height:1.9; }
.footer__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.footer__col h4{
  font-family:var(--sans); font-size:9.5px; font-weight:500; letter-spacing:.24em;
  text-transform:uppercase; color:var(--gold); margin-bottom:22px;
}
.footer__col li{ margin-bottom:12px; font-size:13.5px; color:rgba(247,244,239,.6); }
.footer__col a{ transition:color var(--t-fast); }
.footer__col a:hover{ color:var(--gold); }
.footer__line{ display:block; height:1px; background:rgba(200,168,107,.4); margin:clamp(44px,5vw,64px) 0 30px; }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.footer__sign{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--off);
}
.footer__sign span{ color:var(--gold); margin-inline:8px; }
.footer__legal{ font-size:10.5px; letter-spacing:.12em; color:rgba(247,244,239,.42); }

/* ---------------------------- WHATS FLUTUANTE ------------------------ */
.whats-float{
  position:fixed; right:24px; bottom:24px; z-index:90;
  display:inline-flex; align-items:center; gap:11px;
  background:var(--graphite); color:var(--off); padding:14px 22px; border-radius:40px;
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  box-shadow:0 18px 40px -22px rgba(45,45,45,.85);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity var(--t), transform var(--t), background var(--t-fast);
}
.whats-float .ic{ color:var(--gold); transition:color var(--t-fast); }
.whats-float.is-visible{ opacity:1; transform:none; pointer-events:auto; }
.whats-float:hover{ background:var(--gold); }
.whats-float:hover .ic{ color:#fff; }

/* ------------------------- REVELAÇÕES / MOVIMENTO -------------------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.reveal--slow{ transition-duration:1.5s; }
.reveal.is-in{ opacity:1; transform:none; }

/* ------------------------------ RESPONSIVO --------------------------- */
@media (max-width:1080px){
  .nav__list{ gap:16px; }
  .nav__list a{ font-size:10.5px; letter-spacing:.1em; }
  .header__cta{ padding:13px 20px; font-size:10px; letter-spacing:.12em; }
  .proc__grid{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .stats__item:nth-child(3){ border-left:0; }
  .stats__item:nth-child(n+3){ border-top:1px solid var(--warm); }
}

@media (max-width:900px){
  :root{ --header-h:76px; }
  .burger{ display:block; }
  .header__cta{ display:none; }
  .logo__sym{ height:46px; }
  /* sem backdrop-filter no mobile: ele viraria bloco de contenção
     do menu em position:fixed, quebrando o posicionamento do painel */
  .header,
  .header.is-stuck{
    background:var(--off);
    backdrop-filter:none; -webkit-backdrop-filter:none;
  }
  .header__line{ transform:scaleX(1); }

  .nav{
    position:fixed; inset:var(--header-h) 0 0 0; background:var(--off);
    padding:38px var(--gutter) calc(48px + env(safe-area-inset-bottom));
    display:flex; flex-direction:column; justify-content:center; gap:34px;
    overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
    opacity:0; visibility:hidden; transform:translateY(-12px);
    transition:opacity var(--t), transform var(--t), visibility var(--t);
  }
  .nav.is-open{ opacity:1; visibility:visible; transform:none; }
  .nav__list{ flex-direction:column; align-items:flex-start; gap:0; width:100%; }
  .nav__list li{ width:100%; border-bottom:1px solid var(--warm); }
  .nav__list li:first-child{ border-top:1px solid var(--warm); }
  .nav__list a{ display:block; padding:20px 2px; font-size:13px; letter-spacing:.16em; }
  .nav__list a::after{ display:none; }
  .nav__cta-mobile{ display:inline-flex; width:100%; }
  body.no-scroll{ overflow:hidden; overscroll-behavior:none; }
  html:has(body.no-scroll){ overflow:hidden; }

  .hero__grid{ grid-template-columns:1fr; gap:48px; }
  .hero__content{ text-align:center; }
  .hero__lead{ margin-inline:auto; }
  .hero__actions{ justify-content:center; }
  .hero__meta{ justify-content:center; }
  .hero__media{ max-width:520px; margin-inline:auto; width:100%; }
  .hero__badge{ left:auto; right:-4%; bottom:6%; padding:18px 20px; }

  .sobre__grid,.contato__grid{ grid-template-columns:1fr; }
  .sobre__media{ max-width:460px; position:relative; top:auto; margin-inline:auto; }
  .sobre__vline{ display:none; }
  .proc__item,.proc__item--rev{ grid-template-columns:1fr; }
  .proc__item--rev .proc__media{ order:0; }
  .gallery{ grid-template-columns:1fr 1fr; }
  .gallery__a{ grid-row:auto; grid-column:1/3; aspect-ratio:16/10; border-radius:180px 180px var(--radius) var(--radius); }
}

@media (max-width:640px){
  body{ font-size:15px; }
  .btn{ width:100%; }
  .btn--link{ width:auto; }
  .hero__actions{ flex-direction:column; align-items:stretch; gap:8px; }
  .hero__actions .btn--link{ align-self:center; }
  .hero__badge{ position:static; margin-top:18px; max-width:none; justify-content:center; box-shadow:none; border:1px solid var(--warm); }
  .hero__sign{
  position:absolute; right:26px; bottom:26px; width:auto; height:64px; z-index:2;
  opacity:.85; filter:drop-shadow(0 2px 10px rgba(45,45,45,.35));
  pointer-events:none;
}
.hero__arc{ display:none; }
  .proc__grid{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; }
  .stats__item{ border-left:0; border-top:1px solid var(--warm); }
  .stats__item:first-child{ border-top:0; }
  .gallery{ grid-template-columns:1fr; }
  .gallery__a{ grid-column:auto; }
  .footer__top{ grid-template-columns:1fr; }
  .footer__cols{ grid-template-columns:1fr 1fr; gap:28px; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; }
  .header .logo__sym{ height:42px; }
  .header .logo__role{ font-size:8px; letter-spacing:.2em; }
  .hero__sign{ display:none; }
  .whats-float{ right:16px; bottom:16px; padding:13px 18px; }
  .whats-float span{ display:none; }
  .whats-float{ width:52px; height:52px; padding:0; justify-content:center; border-radius:50%; }
  .ba__tag{ top:14px; padding:6px 12px; }
  .ba__tag--l{ left:14px; } .ba__tag--r{ right:14px; }
  .form{ border-radius:var(--radius); }
  .quote blockquote{ border-radius:var(--radius) 34px var(--radius) 34px; }
}

@media (min-width:901px){
  .quote{ flex:0 0 50%; }
}

/* ---------------------- ACESSIBILIDADE DE MOVIMENTO ------------------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}

/* ------------------------------ IMPRESSÃO ---------------------------- */
@media print{
  .header,.whats-float,.quotes__nav,.hero__strip{ display:none; }
  body{ background:#fff; }
}

/* =====================================================================
   TRAVA DE ROLAGEM (menu mobile)
   ===================================================================== */
body.no-scroll{ overflow:hidden; }
html:has(body.no-scroll){ overflow:hidden; }

/* =====================================================================
   AVISO DE COOKIES / LGPD
   ===================================================================== */
.lgpd{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  padding:clamp(14px,2vw,26px);
  transform:translateY(120%);
  transition:transform .9s var(--ease);
}
.lgpd.is-visible{ transform:none; }

.lgpd__card{
  max-width:var(--wrap); margin-inline:auto;
  background:var(--off); border:1px solid var(--warm);
  border-radius:var(--radius) 44px var(--radius) 44px;
  box-shadow:0 30px 70px -40px rgba(45,45,45,.55);
  padding:clamp(20px,2.4vw,28px) clamp(22px,3vw,40px);
  display:flex; align-items:center; gap:clamp(20px,3vw,48px);
}
.lgpd__card::before{
  content:""; width:7px; height:7px; flex:none;
  border:1px solid var(--gold); transform:rotate(45deg);
}
.lgpd__conteudo{ flex:1; }
.lgpd__titulo{
  font-family:var(--display); font-weight:400; font-size:1.35rem;
  line-height:1.2; color:var(--ink); margin-bottom:7px;
}
.lgpd__texto{ font-size:13px; line-height:1.7; color:var(--ink-70); max-width:74ch; }
.lgpd__texto a{
  color:var(--gold); border-bottom:1px solid var(--gold-soft);
  padding-bottom:1px; transition:border-color var(--t-fast);
}
.lgpd__texto a:hover{ border-color:var(--gold); }
.lgpd__acoes{ display:flex; gap:12px; flex:none; }

/* link discreto no rodapé para reabrir as preferências */
.footer__legal{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; }
.footer__legal a,
.footer__link{
  font-size:10.5px; letter-spacing:.12em; color:rgba(247,244,239,.6);
  border-bottom:1px solid transparent; padding-bottom:1px;
  transition:color var(--t-fast), border-color var(--t-fast);
}
.footer__legal a:hover,
.footer__link:hover{ color:var(--gold); border-color:var(--gold-soft); }

@media (max-width:860px){
  .lgpd__card{
    flex-direction:column; align-items:stretch; gap:18px;
    border-radius:var(--radius) 34px var(--radius) 34px;
    padding:24px 22px;
  }
  .lgpd__card::before{ display:none; }
  .lgpd__acoes{ flex-direction:column-reverse; }
  .lgpd__acoes .btn{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
  .lgpd{ transition-duration:.01ms; }
}
