/* Clínica Gaspar · Landing page
   Linguagem visual tirada do Instagram @clinicagasparodontologia:
   serifa fina de alto contraste, rótulos em caixa alta bem espaçados, palavra em destaque
   com fundo de cor, botão em pílula com seta longa, fotos editoriais com véu escuro quente. */

@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-latin-var.woff2) format("woff2");font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-italic-latin-var.woff2) format("woff2");font-weight:300 600;font-style:italic;font-display:swap}
@font-face{font-family:"Montserrat";src:url(../fonts/montserrat-latin-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  /* Paleta (posts + logo) */
  --night:#2D2623;      /* fundo escuro quente */
  --night-2:#3A312D;
  --ink:#2B2522;        /* texto principal */
  --muted:#6B605A;      /* texto secundário */
  --paper:#F7F4F0;      /* fundo claro */
  --stone:#EDE7E0;      /* fundo alternado */
  --sand:#D8C2A8;       /* bege dos posts */
  --sage:#5E7253;       /* verde-sálvia (destaques) */
  --sage-d:#4B5C42;
  --sage-t:#52654A;     /* sálvia para texto pequeno em fundo claro (contraste AA) */
  --mocha:#7B5B4C;      /* marrom-moca (destaques) */
  --rose:#875B45;       /* dourado-rosé para texto: escurecido do tom do logo (#B98369) para ter contraste AA em fundo claro */
  --rose-l:#E3B9A2;
  --line:rgba(43,37,34,.14);
  --line-l:rgba(255,255,255,.28);

  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;

  --wrap:1180px;
  --gut:clamp(20px,5vw,56px);
  --sec:clamp(88px,11vw,152px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,figure,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
svg{width:1em;height:1em;flex:none}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px}

.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.sec{padding:var(--sec) 0}
.sec-stone{background:var(--stone)}
.sec-night{background:var(--night);color:#fff}

/* ---------- Tipografia ---------- */
.kicker{font-family:var(--sans);font-size:11.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;line-height:1.6}
.kicker b{font-weight:700}
.kicker-sm{font-size:10px;letter-spacing:.3em}
.display{font-family:var(--serif);font-weight:300;line-height:.95;letter-spacing:-.005em}
.display em,.h2 em,.quote em{font-style:italic;font-weight:400}
.h2{font-family:var(--serif);font-weight:300;font-size:clamp(40px,5.4vw,68px);line-height:1.02;letter-spacing:-.01em}
.h3{font-family:var(--serif);font-weight:400;font-size:clamp(25px,2.4vw,30px);line-height:1.15}
.lead{font-size:clamp(16px,1.25vw,17.5px);color:var(--muted);max-width:34em}
.sec-night .lead{color:rgba(255,255,255,.78)}
.sec-head{max-width:760px;margin-bottom:clamp(48px,6vw,80px)}
.sec-head .kicker{color:var(--rose);margin-bottom:22px}
.sec-head .lead{margin-top:24px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head.center .lead{margin-left:auto;margin-right:auto}
.mark{display:inline-block;padding:.02em .16em .08em;line-height:1;background:var(--sage);color:#fff}

/* ---------- Botões (pílula com seta longa, como nos posts) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;height:54px;padding:0 30px;border-radius:999px;border:1px solid currentColor;background:transparent;color:inherit;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.btn .arr{width:34px;height:10px;transition:transform .3s}
.btn:hover .arr{transform:translateX(5px)}
.btn-light{color:#fff;border-color:rgba(255,255,255,.7)}
.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-solid{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-solid:hover{background:var(--sage);border-color:var(--sage)}
.btn-dark{color:var(--ink);border-color:rgba(43,37,34,.55)}
.btn-dark:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-sm{height:42px;padding:0 20px;font-size:10.5px;gap:12px}
.btn-sm .arr{width:24px}
.link-tel{font-size:13px;letter-spacing:.14em;text-decoration:none;opacity:.85;border-bottom:1px solid transparent}
.link-tel:hover{opacity:1;border-bottom-color:currentColor}

/* ---------- Topo ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;color:#fff;transition:background .35s,color .35s,box-shadow .35s}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:84px;transition:height .35s}
.brand{display:block;position:relative;width:176px;height:48px}
.brand img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left center;transition:opacity .35s}
.brand .logo-cor{opacity:0}
.nav-r{display:flex;align-items:center;gap:26px}
.nav-r .link-tel{font-size:12px}
.nav.solid{background:rgba(247,244,240,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav.solid .nav-in{height:68px}
.nav.solid .logo-branco{opacity:0}
.nav.solid .logo-cor{opacity:1}
.nav.solid .btn-light{color:var(--ink);border-color:rgba(43,37,34,.5)}
.nav.solid .btn-light:hover{background:var(--ink);color:#fff}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:min(100svh,940px);background:var(--night);color:#fff;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-1;background:var(--night)}
.hero-foto{position:absolute;top:0;right:0;bottom:0;width:min(52%,760px);overflow:hidden}
.hero-foto picture{display:contents}  /* o <picture> escolhe o recorte do celular; a <img> continua ocupando a caixa da foto */
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;-webkit-mask-image:linear-gradient(90deg,transparent 3px,#000 3px);mask-image:linear-gradient(90deg,transparent 3px,#000 3px)}  /* a borda esquerda da foto cai em fração de pixel e aparecia como uma linha clara sob o véu: os 3 px da borda ficam só com o fundo escuro */
.hero-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(45,38,35,.55) 22%,rgba(45,38,35,0) 55%),linear-gradient(0deg,rgba(45,38,35,.55) 0%,rgba(45,38,35,0) 35%)}
.hero-in{position:relative;width:100%;padding-top:150px;padding-bottom:clamp(40px,6vw,64px)}
.hero-copy{max-width:640px}
.hero .kicker{color:var(--rose-l);margin-bottom:30px}
.hero h1{font-size:clamp(40px,8.4vw,118px);text-transform:uppercase}
.hero h1 .l2{display:block;margin-top:.08em}
.hero h1 .mark{font-size:.92em}
.hero-sub{margin-top:26px;font-size:clamp(12px,1.1vw,14px);font-weight:500;letter-spacing:.34em;text-transform:uppercase}
.hero-sub b{font-weight:700}
.hero-p{margin-top:28px;max-width:30em;color:rgba(255,255,255,.8);font-size:clamp(15.5px,1.2vw,17px)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:40px}
.hero-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;margin-top:clamp(64px,9vw,120px);padding-top:22px;border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.66)}

/* ---------- Manifesto ---------- */
.manif{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(40px,7vw,110px);align-items:center}
.manif .kicker{color:var(--rose);margin-bottom:26px}
.quote{font-family:var(--serif);font-weight:300;font-size:clamp(38px,4.6vw,62px);line-height:1.06;letter-spacing:-.01em}
.manif-txt{margin-top:34px;display:grid;gap:18px;max-width:34em;color:var(--muted)}
.manif-fig{position:relative}
.manif-fig img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(1) contrast(1.02)}
.manif-fig figcaption{margin-top:16px;color:var(--muted)}

/* ---------- Odontologia integrada (editorial) ----------
   Sumário de revista: título fixo à esquerda, três temas numerados à direita, quase monocromático.
   A cor fica nos números e num círculo fino ao fundo, que retoma o círculo do hero. */
.integ{position:relative;overflow:hidden;overflow:clip;isolation:isolate}  /* clip (e não hidden) para o título fixo funcionar */
.integ::before{content:"";position:absolute;z-index:-1;width:min(82vmin,780px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(185,131,105,.32);right:max(-22vmin,-220px);top:clamp(40px,8vw,110px)}
.integ-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,8vw,128px);align-items:start}
.integ-head{position:sticky;top:120px}
.integ-head .kicker{color:var(--rose);margin-bottom:24px}
.integ-head .h2{font-size:clamp(44px,5.4vw,78px);line-height:1}
.integ-head .lead{margin-top:28px}
.integ-ig{display:inline-grid;grid-template-columns:auto auto;align-items:center;column-gap:16px;row-gap:6px;margin-top:48px;text-decoration:none;color:var(--ink)}
.integ-ig .kicker{grid-column:1/-1;color:var(--muted);margin:0}
.integ-ig-h{font-family:var(--serif);font-style:italic;font-size:22px;border-bottom:1px solid var(--line);transition:border-color .6s ease}
.integ-ig .arr{width:34px;height:10px;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.integ-ig:hover .integ-ig-h{border-bottom-color:var(--ink)}
.integ-ig:hover .arr{transform:translateX(6px)}
.temas{border-top:1px solid var(--line)}
.tema{position:relative;display:grid;grid-template-columns:clamp(48px,5vw,76px) 1fr;gap:12px;padding:clamp(36px,4vw,52px) 0;border-bottom:1px solid var(--line)}
/* a linha se desenha da esquerda para a direita ao passar o mouse */
.tema::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.tema:hover::after{transform:scaleX(1)}
.tema-n{font-family:var(--serif);font-style:italic;font-size:26px;line-height:1.2;color:var(--rose);padding-top:2px}
.tema .kicker{color:var(--muted);margin-bottom:16px}
.tema-t{font-family:var(--serif);font-weight:300;font-size:clamp(32px,3.3vw,48px);line-height:1.06;letter-spacing:-.01em;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.tema-t em{display:block;font-style:italic;font-weight:400}  /* parte em itálico sempre na segunda linha */
.tema:hover .tema-t{transform:translateX(8px)}
.tema-p{margin-top:20px;max-width:32em;font-size:15.5px;line-height:1.75;color:var(--muted)}
@media (max-width:860px){
  .integ-grid{grid-template-columns:1fr}
  .integ-head{position:static}
  .integ::before{width:120vw;right:-60vw;top:40px}
}
@media (max-width:640px){
  .tema{grid-template-columns:40px 1fr;gap:8px}
  .tema-n{font-size:21px}
  .tema-t{font-size:clamp(25px,7.2vw,32px)}
}

/* ---------- Especialidades (lista em pílulas, como no post "Cuidados essenciais") ---------- */
.spec{position:relative;overflow:hidden;isolation:isolate}
.spec::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 50% at 85% 10%,rgba(185,131,105,.22),transparent 70%),radial-gradient(50% 45% at 5% 95%,rgba(94,114,83,.25),transparent 70%)}
.spec .sec-head .kicker{color:var(--rose-l)}
.spec-list{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;counter-reset:n}
.spec-item{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:stretch}
.spec-n{display:grid;place-items:center;width:64px;height:64px;border:1px solid var(--line-l);border-radius:50%;font-size:13px;font-weight:600;letter-spacing:.06em;align-self:center}
.spec-box{border:1px solid var(--line-l);border-radius:40px;padding:20px 30px 22px;transition:background .35s,border-color .35s}
.spec-item:hover .spec-box{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.5)}
.spec-box h3{font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.01em;line-height:1.4}
.spec-box p{margin-top:6px;font-size:14px;line-height:1.65;color:rgba(255,255,255,.74)}
.spec-cta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 30px;margin-top:clamp(48px,6vw,72px)}

/* ---------- Nossa história (editorial) ----------
   Cabeçalho com fio fino, título grande, foto larga que se revela de baixo para cima e se move
   mais devagar que a página, e duas colunas: frase em destaque + história com o livro do fundador. */
.hist-top{display:flex;align-items:center;gap:24px;margin-bottom:clamp(36px,5vw,60px)}
.hist-top .kicker:first-child{color:var(--rose)}
.hist-top .kicker:last-child{color:var(--muted)}
.hist-linha{flex:1;height:1px;background:var(--line)}
.hist-t{font-family:var(--serif);font-weight:300;font-size:clamp(48px,7.4vw,112px);line-height:.98;letter-spacing:-.015em}
.hist-t em{font-style:italic;font-weight:400}
.hist-figwrap{max-width:1640px;margin:clamp(48px,6vw,84px) auto 0;padding:0 var(--gut)}
.hist-fig{margin:0}
.hist-frame{position:relative;overflow:hidden;aspect-ratio:2/1;background:var(--stone)}
.hist-par{position:absolute;left:0;right:0;top:-8%;bottom:-8%;will-change:transform}
.hist-par img{width:100%;height:100%;object-fit:cover;object-position:50% 10%;filter:saturate(.95)}  /* foto dos sócios (15/out/2026): enquadramento alto para não cortar a cabeça do Dr. José Carlos */
.hist-fig figcaption{display:flex;justify-content:space-between;gap:12px 30px;flex-wrap:wrap;margin-top:18px;color:var(--muted)}
.hist-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);margin-top:clamp(56px,7vw,100px);align-items:start}
.hist-frase{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(28px,2.9vw,42px);line-height:1.2;letter-spacing:-.005em}
.hist-corpo>p{font-size:16.5px;line-height:1.8;color:var(--muted);max-width:32em}
.hist-livro{margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}
.hist-livro .kicker{color:var(--rose);margin-bottom:14px}
.hist-livro cite{display:block;font-family:var(--serif);font-style:normal;font-weight:400;font-size:clamp(26px,2.4vw,34px);line-height:1.1}
.hist-livro-sub{margin-top:6px;font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.35;color:var(--muted)}
.hist-livro-autor{margin-top:16px;font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
/* a foto se revela de baixo para cima ao entrar na tela, como na equipe */
@media (prefers-reduced-motion:no-preference){
  .js .hist-frame.rv{opacity:1;transform:none;clip-path:inset(100% 0 0 0);transition:clip-path 1.8s cubic-bezier(.16,1,.3,1)}
  .js .hist-frame.rv.in{clip-path:inset(0 0 0 0)}
  .js .hist-frame.rv img{transform:scale(1.14);transition:transform 2.6s cubic-bezier(.16,1,.3,1)}
  .js .hist-frame.rv.in img{transform:none}
}
@media (max-width:860px){
  .hist-frame{aspect-ratio:4/3}
  .hist-grid{grid-template-columns:1fr}
  .hist-top{gap:14px}
}

/* ---------- Equipe ---------- */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
.pro-fig{overflow:hidden;background:#d9cfc4}
.pro-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;transition:transform 1.2s ease}
.pro:hover .pro-fig img{transform:scale(1.03)}
.pro h3{margin-top:26px;font-size:clamp(22px,1.85vw,26px)}
.pro .reg{margin-top:8px;color:var(--rose)}
.pro .area{margin-top:14px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-t)}
.pro .bio{margin-top:14px;font-size:14.5px;color:var(--muted);line-height:1.7}
.pro .bio p+p{margin-top:10px}
.pro-n,.pro-ver{display:none}

/* Equipe em colunas (desktop com mouse; a classe .cols é posta pelo script).
   Referência: Visionary (Awsmd). A foto sobe por baixo na coluna ativa e sai por cima da anterior. */
.team-wrap{position:relative}
.team.cols{gap:0;height:clamp(620px,74vh,700px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.team.cols .pro{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:30px 32px 32px;border-left:1px solid var(--line);cursor:pointer;overflow:hidden;isolation:isolate}
.team.cols .pro:last-child{border-right:1px solid var(--line)}
/* curva longa e suave: a foto começa a andar na hora e desliza até parar */
.team.cols{--curva:cubic-bezier(.25,1,.5,1)}  /* menos concentrada no início que a anterior: o movimento se espalha pelo tempo todo */
.team.cols .pro-fig{position:absolute;inset:0;z-index:-1;background:var(--night);clip-path:inset(100% 0 0 0);transition:clip-path 2.4s var(--curva)}
/* profundidade: a foto entra subindo por dentro da coluna e sai subindo junto com o corte */
.team.cols .pro-fig img{height:100%;aspect-ratio:auto;object-position:50% 20%;transform:translateY(9%) scale(1.12);transition:transform 3s var(--curva);will-change:transform}
.team.cols .pro-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(45,38,35,.86) 0%,rgba(45,38,35,.4) 34%,rgba(45,38,35,0) 58%)}
.team.cols .pro.on .pro-fig{clip-path:inset(0 0 0 0)}
.team.cols .pro.on .pro-fig img{transform:none}
.team.cols .pro.sai .pro-fig{clip-path:inset(0 0 100% 0)}
.team.cols .pro.sai .pro-fig img{transform:translateY(-7%) scale(1.05)}
.team.cols .pro.snap .pro-fig,.team.cols .pro.snap .pro-fig img{transition:none}
.team.cols .pro h3,.team.cols .pro .reg,.team.cols .pro .area,.team.cols .pro-n,.team.cols .pro-ver{transition:color 1.5s ease .2s,border-color 1.5s ease .2s,background-color .3s ease}
.team.cols .pro .bio{display:none}
/* nome, CRO, área e botão ficam na mesma altura nas três colunas, qualquer que seja a quebra de linha */
@supports (grid-template-rows:subgrid){
  .team.cols{grid-template-rows:1fr auto auto auto auto}
  .team.cols .pro{display:grid;grid-row:1/-1;grid-template-rows:subgrid}
  .team.cols .pro h3{grid-row:2;align-self:end}
  .team.cols .pro .reg{grid-row:3}
  .team.cols .pro .area{grid-row:4}
  .team.cols .pro-ver{grid-row:5;justify-self:start}
}
.team.cols .pro-n{display:block;position:absolute;top:26px;left:32px;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--rose)}
.team.cols .pro-ver{display:inline-flex;align-self:flex-start;align-items:center;gap:12px;margin-top:24px;height:40px;padding:0 20px;border:1px solid rgba(43,37,34,.45);border-radius:999px;background:none;color:var(--ink);font:600 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}
.team.cols .pro-ver .arr{width:24px;height:10px}
.team.cols .pro.on h3,.team.cols .pro.on .pro-n{color:#fff}
.team.cols .pro.on .reg{color:var(--rose-l)}
.team.cols .pro.on .area{color:#CFDCC6}
.team.cols .pro.on .pro-ver{color:#fff;border-color:rgba(255,255,255,.6)}
.team.cols .pro.on .pro-ver:hover{background:#fff;color:var(--ink)}

/* Perfil aberto: cresce a partir da coluna clicada */
.perfil{position:absolute;inset:0;z-index:5;background:var(--night);color:#fff;overflow:hidden}
.perfil[hidden]{display:none}
.perfil-fig{position:absolute;top:0;bottom:0;left:0;width:40%;overflow:hidden}
.perfil-fig img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.perfil-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,38,35,0) 70%,rgba(45,38,35,.5) 100%)}
.perfil-txt{position:absolute;top:0;bottom:0;left:40%;right:0;display:flex;flex-direction:column;justify-content:safe center;overflow-y:auto;padding:40px clamp(40px,5vw,80px)}  /* se o texto não couber, rola em vez de cortar */
.perfil-area{color:#CFDCC6;margin-bottom:16px}
.perfil-nome{font-family:var(--serif);font-weight:300;font-size:clamp(34px,3.2vw,48px);line-height:1.05}
.perfil-reg{margin-top:14px;color:var(--rose-l)}
.perfil-bio{margin-top:18px;max-width:38em;font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.8)}
.perfil-bio p+p{margin-top:12px}
/* telas médias (até 1200 px): mais espaço para o texto, que ficou mais longo em out/2026 */
@media (max-width:1200px){
  .perfil-fig{width:34%}
  .perfil-txt{left:34%;padding:36px clamp(32px,4vw,56px)}
  .perfil-area{margin-bottom:14px}
  .perfil-nome{font-size:clamp(30px,3.3vw,40px)}
  .perfil-bio{margin-top:16px;font-size:14px;line-height:1.7}
  .perfil-bio p+p{margin-top:10px}
  .perfil-acoes{margin-top:26px}
}
.perfil-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:30px}
.perfil-fechar{background:none;border:0;color:rgba(255,255,255,.75);font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer;padding:10px 0}
.perfil-fechar span{font-size:18px;vertical-align:-2px;margin-left:6px;letter-spacing:0}
.perfil-fechar:hover{color:#fff}
@media (prefers-reduced-motion:reduce){.team.cols .pro-fig,.team.cols .pro-fig img{transition:none}}

/* ---------- Experiência ---------- */
.exp{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,7vw,100px);align-items:center}
.exp-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:40% 50%;filter:saturate(.72) sepia(.1) contrast(1.02)}
.exp-list{margin-top:10px;border-top:1px solid var(--line)}
.exp-list li{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:24px 0;border-bottom:1px solid var(--line)}
.exp-list .n{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--rose);line-height:1.2}
.exp-list h3{font-family:var(--serif);font-weight:400;font-size:25px;line-height:1.2}
.exp-list p{margin-top:6px;font-size:14.5px;color:var(--muted)}

/* ---------- Chamada final ---------- */
.final{text-align:center}
.final-mono{width:84px;margin:0 auto 34px}
.final .quote{max-width:15em;margin:0 auto}
.final .lead{margin:26px auto 0}
.final-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 30px;margin-top:40px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:980px;margin:clamp(64px,8vw,96px) auto 0;text-align:left;border-top:1px solid var(--line);padding-top:36px}
.steps .n{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--rose)}
.steps h3{margin-top:6px;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.steps p{margin-top:8px;font-size:14.5px;color:var(--muted)}

/* ---------- Contato ---------- */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,90px);align-items:stretch}
.contact .kicker{color:var(--rose);margin-bottom:20px}
.contact dl{margin-top:36px;display:grid;gap:26px}
.contact dt{font-size:10.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.contact dd{margin-top:6px;font-family:var(--serif);font-size:23px;line-height:1.35;font-variant-numeric:lining-nums}
.contact dd a{text-decoration:none;border-bottom:1px solid var(--line)}
.contact dd a:hover{border-bottom-color:var(--ink)}
.contact .btn{margin-top:36px}
.map{position:relative;min-height:420px;background:var(--stone);overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.55) sepia(.12)}
.map-ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;padding:30px;text-align:center;color:var(--muted);font-size:14px}
.map.loaded .map-ph{display:none}

/* ---------- Rodapé ---------- */
.foot{background:var(--night);color:rgba(255,255,255,.72);padding:clamp(72px,8vw,100px) 0 36px;font-size:13.5px}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:30px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.14)}
.foot-top img{width:200px}
.foot-tag{color:rgba(255,255,255,.62)}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:36px;padding:44px 0}
.foot-h{margin:0 0 14px;font-size:10.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--rose-l)}
.foot p+p{margin-top:6px}
.foot a{text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 30px;padding-top:28px;border-top:1px solid rgba(255,255,255,.14);font-size:12px;color:rgba(255,255,255,.5);line-height:1.7}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:40;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--sage);color:#fff;box-shadow:0 14px 30px -12px rgba(0,0,0,.45);transition:transform .3s,background .3s,opacity .4s;opacity:0;pointer-events:none}
.rolou .wa-float{opacity:1;pointer-events:auto}
.wa-float:hover{transform:translateY(-3px);background:var(--sage-d)}
.wa-float svg{width:26px;height:26px}

/* ---------- Cookies ---------- */
.cookie{position:fixed;left:18px;right:18px;bottom:18px;z-index:60;max-width:540px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 24px 48px -20px rgba(0,0,0,.35);padding:22px 24px;display:none}
.cookie.show{display:block}
.cookie p{font-size:13.5px;line-height:1.6;color:var(--muted)}
.cookie a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.cookie-actions{display:flex;gap:10px;margin-top:16px}
.cookie-actions .btn{height:42px;padding:0 22px;font-size:10.5px}

/* ---------- Animação de entrada ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
  .js .rv.in{opacity:1;transform:none}
  .js .rv-d1{transition-delay:.12s}.js .rv-d2{transition-delay:.24s}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- Responsivo ---------- */
@media (max-width:1024px){
  .spec-list{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .nav-r .link-tel{display:none}
  .hero{min-height:100svh}
  .hero-foto{width:100%;bottom:auto;height:min(68svh,760px)}
  .hero-foto img{object-position:50% 20%;-webkit-mask-image:none;mask-image:none}
  .hero-foto::after{background:linear-gradient(180deg,rgba(45,38,35,.5) 0%,rgba(45,38,35,0) 20%,rgba(45,38,35,0) 68%,rgba(45,38,35,.62) 84%,var(--night) 100%)}  /* a sombra de baixo começa abaixo do queixo */
  .hero-in{padding-top:max(52svh,300px)}
  .hero h1{font-size:clamp(40px,11.4vw,80px)}
  .hero .kicker{font-size:10.5px;letter-spacing:.22em}
  .hero-sub{letter-spacing:.26em}
  .hero .kicker{margin-bottom:18px}
  .hero-foot{margin-top:48px}
  .manif,.exp,.contact{grid-template-columns:1fr}
  .manif-fig{max-width:420px}
  .exp-fig{order:-1}
  .exp-fig img{aspect-ratio:4/3}
  .team{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .steps{grid-template-columns:1fr;gap:24px}
  .map{min-height:340px}
}
/* tablet em pé: a foto fica mais alta (larga e recortada pela largura), então o texto desce para não cobrir o rosto */
@media (min-width:561px) and (max-width:860px) and (orientation:portrait){
  .hero-foto{height:min(84svh,1000px)}
  .hero-in{padding-top:max(70svh,300px)}
  .hero-foto::after{background:linear-gradient(180deg,rgba(45,38,35,.5) 0%,rgba(45,38,35,0) 16%,rgba(45,38,35,0) 76%,rgba(45,38,35,.62) 88%,var(--night) 100%)}
}
@media (max-width:640px){
  body{font-size:15.5px}
  .brand{width:150px;height:42px}
  .nav-in{height:72px}
  .spec-item{grid-template-columns:1fr;gap:0}
  .spec-n{display:none}
  .spec-box{border-radius:28px;padding:20px 24px}
  .spec-box h3::before{content:attr(data-n) "  ";color:var(--rose-l);font-weight:600}
  .btn{height:52px;padding:0 24px;gap:12px}
  .hero-actions .btn,.final-actions .btn,.spec-cta .btn{width:100%}
  .foot-grid{grid-template-columns:1fr}
  .foot{padding-bottom:96px}  /* o botão flutuante do WhatsApp não cobre a última linha */
  .cookie{bottom:92px}
  .wa-float{right:16px;bottom:16px}
}

/* ---------- Abertura do hero ----------
   Referência: Kolomenskoe (Charmer Studio). A página abre clara, só com o título. O hero inteiro
   (fundo escuro + foto) é UM bloco só, revelado por um círculo centrado no sorriso: o círculo
   nasce em volta do sorriso, segura um instante e se abre até cobrir tudo.
   O círculo é desenhado quadro a quadro pelo script do index.html, a partir da posição real do
   sorriso na foto (assim ele acompanha qualquer mudança de tamanho da tela durante a abertura).
   html.intro = movimento permitido e JS ativo; html.intro-go = foto pronta, pode começar. */
/* máscara só em cima e embaixo: a palavra pode ser mais larga que a coluna */
.hero .ln{display:block;clip-path:inset(-.3em -100vw 0 -100vw)}
.hero .ln>span{display:block}
@media (prefers-reduced-motion:no-preference){
  .intro .hero{background-color:var(--paper)}
  /* antes de começar, o hero fica escondido; depois o script controla o círculo */
  .intro:not(.intro-go) .hero-media{clip-path:circle(0px at 50% 50%)}
  .intro .hero,.intro .hero-foto img,.intro .hero-foto::after,
  .intro .hero .kicker,.intro .hero .ln>span,.intro .hero h1 .mark,
  .intro .hero-sub,.intro .hero-p,.intro .hero-actions,.intro .hero-foot,.intro .nav{animation-fill-mode:both;animation-play-state:paused}
  .intro-go .hero,.intro-go .hero-foto img,.intro-go .hero-foto::after,
  .intro-go .hero .kicker,.intro-go .hero .ln>span,.intro-go .hero h1 .mark,
  .intro-go .hero-sub,.intro-go .hero-p,.intro-go .hero-actions,.intro-go .hero-foot,.intro-go .nav{animation-play-state:running}

  /* o círculo (nasce no sorriso, segura e se abre) é animado pelo script: ver "Abertura do hero" no index.html */
  /* a foto "assenta": o zoom diminui a partir do sorriso, então ele não sai do círculo */
  .intro .hero-foto img{animation-name:hero-foto;animation-duration:3s;animation-delay:.4s}
  @keyframes hero-foto{
    0%{transform:scale(1.22);animation-timing-function:cubic-bezier(.22,1,.36,1)}
    38%{transform:scale(1.12);animation-timing-function:cubic-bezier(.65,0,.35,1)}
    100%{transform:scale(1)}
  }
  /* o véu escuro sobre a foto entra quando o círculo começa a se abrir */
  .intro .hero-foto::after{animation-name:hero-veu;animation-duration:2.6s;animation-delay:.4s}
  /* precisa estar pronto quando o círculo cruza a borda da foto, senão aparece uma emenda */
  @keyframes hero-veu{0%,46%{opacity:0}64%,100%{opacity:1}}
  /* o título fica branco quando o círculo chega nele */
  .intro .hero{animation-name:hero-tom;animation-duration:2.6s;animation-delay:.4s}
  @keyframes hero-tom{0%,64%{color:var(--ink)}84%,100%{color:#fff}}

  /* título: a linha sobe por trás de uma máscara; o destaque verde abre da esquerda */
  .intro .hero .kicker{animation-name:hero-kicker;animation-duration:2.8s;animation-delay:.2s}
  @keyframes hero-kicker{0%{opacity:0;color:var(--rose)}12%{opacity:1;color:var(--rose)}64%{color:var(--rose)}100%{opacity:1;color:var(--rose-l)}}
  .intro .hero .ln>span{animation-name:sobe;animation-duration:1.1s;animation-delay:.25s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
  @keyframes sobe{from{transform:translateY(105%)}to{transform:none}}
  .intro .hero h1 .mark{animation-name:marca;animation-duration:1s;animation-delay:.55s;animation-timing-function:cubic-bezier(.65,0,.35,1)}
  @keyframes marca{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

  /* o resto entra depois que o círculo cobriu o hero */
  .intro .hero-sub,.intro .hero-p,.intro .hero-actions,.intro .hero-foot{animation-name:entra;animation-duration:.9s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
  .intro .hero-sub{animation-delay:2.3s}
  .intro .hero-p{animation-delay:2.45s}
  .intro .hero-actions{animation-delay:2.6s}
  .intro .hero-foot{animation-delay:2.75s}
  @keyframes entra{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  .intro .nav{animation-name:nav-entra;animation-duration:.8s;animation-delay:2.4s;animation-timing-function:ease}
  @keyframes nav-entra{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
}
