/*
Theme Name: Diniz Odontologia v2
Theme URI: https://fernandobraga.pro
Author: Fernando Braga
Author URI: https://fernandobraga.pro
Description: Tema custom Diniz Odontologia Especializada — v2, direção acolhimento + rigor tipográfico. Alto Paraná, PR.
Version: 2.1.6
License: Private
Text Domain: diniz-v2
*/

/* ============================================================
   FONTES — self-hosted, SIL OFL (Fraunces + Inter, variáveis)
============================================================ */
@font-face{
  font-family:'Fraunces';
  src:url('assets/fonts/fraunces-latin.woff2') format('woff2');
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('assets/fonts/inter-latin.woff2') format('woff2');
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}

/* ============================================================
   TOKENS — paleta Diniz com contraste verificado
   dourado #B5985A NUNCA como texto sobre creme (2,6:1).
   Sobre creme: gold-ink #7A6330 (5,4:1). Sobre tinta: gold/gold-lt.
============================================================ */
:root{
  --ink:#14120E;            /* tinta profunda — seções escuras */
  --ink-800:#23201A;        /* grafite da marca — texto e CTA sólido */
  --ink-600:#3A352B;
  --paper:#FAF8F2;          /* creme — ground dominante */
  --white:#FFFFFF;
  --rule:#E8E1D2;           /* filete sobre creme */
  --rule-dark:rgba(217,194,140,.22);
  --gold:#B5985A;           /* só sobre tinta ou como borda/filete */
  --gold-lt:#D9C28C;        /* display sobre tinta */
  --gold-ink:#7A6330;       /* único dourado-texto sobre creme */
  --mut:#5C564A;            /* texto secundário sobre creme (6,85:1) */
  --mut-dark:#A79C86;       /* texto secundário sobre tinta (6,9:1) */

  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;

  --fs-display:clamp(2.9rem,8vw,7rem);
  --fs-h1:clamp(2.4rem,5.6vw,4.6rem);
  --fs-h2:clamp(1.9rem,3.8vw,3.1rem);
  --fs-h3:clamp(1.3rem,2vw,1.7rem);
  --fs-lead:clamp(1.08rem,1.5vw,1.35rem);
  --fs-body:1.0625rem;
  --fs-sm:.9rem;
  --fs-caps:.6875rem;
  --fs-xs:.75rem;

  --sp-sec:clamp(5rem,11vw,11rem);
  --sp-lat:clamp(1.25rem,5vw,6.5rem);

  --r-md:10px;
  --r-lg:18px;
  --max:1280px;
  --header-h:76px;
  --arc:240px;              /* raio do arco do hero; sobrescrito por componente */
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ============================================================
   BASE
============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{font-family:var(--sans);font-size:var(--fs-body);line-height:1.7;color:var(--ink-800);background:var(--paper);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--sp-lat)}

::selection{background:var(--gold-lt);color:var(--ink)}

/* grids nunca estouram: mínimo automático zerado + quebra de palavra longa */
.hero-foco .container>*,.hs-grid>*,.carta-grid>*,.digital-grid>*,.local-grid>*,.oq-grid>*,
.portas>*,.porta>*,.clinica-strip>*,.ind-row>*,.eq-row>*,.dstep>*,.etapa>*,.espec>*,.duo>*,
.s-cta-grid>*,.footer-grid>*{min-width:0}
h1,h2,h3,p,li,a{overflow-wrap:break-word}

/* tipografia */
h1,h2,h3{font-family:var(--serif);font-weight:350;letter-spacing:-.02em;line-height:1.12;color:var(--ink)}
h1 em,h2 em{font-style:normal;color:var(--gold-ink)}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--paper)}
.on-dark h1 em,.on-dark h2 em{color:var(--gold-lt)}
.lead{font-size:var(--fs-lead);line-height:1.6;color:var(--mut);max-width:34em}
.on-dark .lead,.on-dark p{color:var(--mut-dark)}

.sec{padding:var(--sp-sec) 0}
.sec-head{max-width:820px;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.sec-head h2{font-size:var(--fs-h2);margin:.55em 0 .4em}
.bg-white{background:var(--white)}

.rule{border:0;border-top:1px solid var(--rule)}

/* botões — primário grafite sólido; nunca fundo dourado */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-size:.95rem;font-weight:600;
  padding:15px 28px;border-radius:999px;
  transition:translate .25s var(--ease),background .25s,border-color .25s,color .25s;
  cursor:pointer;border:1px solid transparent;
}
.btn svg{width:17px;height:17px;flex-shrink:0}
.btn-primary{background:var(--ink-800);color:#fff}
.btn-primary:hover{background:var(--ink);translate:0 -2px}
.btn-outline{border-color:var(--ink-800);color:var(--ink-800);background:transparent}
.btn-outline:hover{background:var(--ink-800);color:#fff}
.on-dark .btn-primary{background:var(--paper);color:var(--ink)}
.on-dark .btn-primary:hover{background:#fff}
.on-dark .btn-outline{border-color:var(--rule-dark);color:var(--gold-lt)}
.on-dark .btn-outline:hover{background:rgba(217,194,140,.1)}
.btn-lg{padding:17px 34px;font-size:1rem}

/* ============================================================
   HEADER
============================================================ */
.header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--header-h);
  background:rgba(250,248,242,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
}
.header-inner{
  max-width:var(--max);margin:0 auto;height:100%;
  padding:0 var(--sp-lat);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
}
.logo{line-height:1.32}
.logo .l-name{font-family:var(--serif);font-size:1.5rem;font-weight:400;line-height:1.32;letter-spacing:-.01em;color:var(--ink)}
.logo .l-tag{display:block;font-size:.6875rem;font-weight:600;line-height:1.4;letter-spacing:.18em;white-space:nowrap;text-transform:uppercase;color:var(--gold-ink);margin-top:2px}
.nav{display:flex;gap:2rem}
.nav a{font-size:.92rem;font-weight:500;color:var(--ink-600);transition:color .2s;white-space:nowrap}
.nav a:hover{color:var(--ink)}
.nav a.nav-back{color:var(--gold-ink)}
.header .btn{padding:11px 22px;font-size:.88rem}
.hamburger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.hamburger span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;transition:.25s}

/* mobile nav */
.mnav{position:fixed;inset:0;z-index:200;background:rgba(20,18,14,.4);opacity:0;pointer-events:none;transition:opacity .3s;overflow:visible;visibility:hidden}
.mnav.open{visibility:visible}
.mnav.open{opacity:1;pointer-events:auto}
.mnav-panel{position:absolute;top:0;right:0;bottom:0;width:min(330px,88vw);background:var(--paper);padding:28px;display:flex;flex-direction:column;overflow-y:auto;transform:translateX(100%);transition:transform .35s var(--ease)}
.mnav.open .mnav-panel{transform:none}
.mnav-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.mnav-close{background:0;border:0;cursor:pointer;padding:6px;color:var(--ink)}
.mnav-links{padding:22px 0;display:flex;flex-direction:column;gap:4px;flex:1}
.mnav-links a{font-family:var(--serif);font-size:1.45rem;padding:9px 0;color:var(--ink)}
.mnav-links a.nav-back{font-family:var(--sans);font-size:.9rem;color:var(--gold-ink)}
.mnav-addr{font-size:.8rem;color:var(--mut);border-top:1px solid var(--rule);padding-top:16px}

/* ============================================================
   HERO HOME — .hero-foco: split texto-esq / arco-dir 480x600
============================================================ */
.hero-foco{padding:calc(var(--header-h) + clamp(2.5rem,5vw,4.5rem)) 0 clamp(3rem,6vw,5rem);min-height:clamp(560px,calc(100svh - 76px),820px);background:var(--paper);display:flex;align-items:center}
.hero-foco .container{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:72px;align-items:center}
.hero-foco h1{font-size:clamp(2.75rem,5.4vw,4.75rem);line-height:1.08;letter-spacing:-.025em;max-width:10ch;margin:0 0 .45em}
.hero-foco .lead{font-size:clamp(1.08rem,1.4vw,1.3rem);line-height:1.6;color:var(--mut);max-width:34em}
.hero-actions{margin-top:2rem;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.hero-tel{font-size:.95rem;font-weight:600;color:var(--ink-600)}
.hc-prova{margin-top:1.1rem;font-size:.9rem;line-height:1.5;color:var(--mut)}
.hero-meta{margin-top:.4rem;font-size:.85rem;color:var(--mut);letter-spacing:0}
.hero-foto-wrap{position:relative}
.hero-foto-wrap::after{content:"";position:absolute;inset:-14px;border:1px solid var(--rule);border-radius:254px 254px 32px 32px;pointer-events:none}
.hero-foto{--arc:240px;margin:0;overflow:hidden;border-radius:var(--arc) var(--arc) 18px 18px}
.hero-foto img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;display:block}
.hero-legenda{margin-top:28px;font-size:var(--fs-xs);line-height:1.4;color:var(--mut);letter-spacing:.02em}

/* ============================================================
   FAIXA DA CLÍNICA — 3 tiles 16:10, legenda abaixo, sem filtro
   (home bloco 02 e #casos das 5 páginas)
============================================================ */
.clinica-strip-sec{padding:0 0 var(--sp-sec)}
.clinica-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1080px}
.clinica-strip figure{margin:0}
.clinica-strip .cs-img{display:block;overflow:hidden;border-radius:var(--r-md)}
.clinica-strip img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:scale .5s var(--ease)}
.clinica-strip figure:hover img{scale:1.03}
.clinica-strip figcaption{margin-top:8px;font-size:.78rem;line-height:1.45;color:var(--mut);letter-spacing:0}

/* ============================================================
   TRÊS PORTAS — colunas separadas por filete, sem caixa
============================================================ */
.portas{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.porta{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:16px;align-content:start;padding:0 32px;background:transparent;border:0;border-left:1px solid var(--rule);border-radius:0;transition:translate .35s var(--ease)}
.porta:first-child{border-left:0;padding-left:0}
.porta:last-child{padding-right:0}
.porta .p-num{grid-row:1/4;font-family:var(--serif);font-size:1.25rem;line-height:1.3;color:var(--gold-ink);padding-top:.25em}
.porta .p-q{grid-column:2;font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.3;color:var(--ink);margin:0 0 .55em}
.porta .p-d{grid-column:2;font-size:var(--fs-sm);line-height:1.55;color:var(--mut);margin:0 0 1.2em}
.porta .p-go{grid-column:2;font-size:.9rem;font-weight:600;color:var(--gold-ink);display:inline-flex;gap:7px;align-items:center}
.porta .p-go::after{content:"\2192";transition:translate .25s}
.porta:hover .p-go::after{translate:4px 0}
.porta:hover,.porta:focus-visible{translate:0 -3px}

/* ============================================================
   ÍNDICE DE ESPECIALIDADES — lista editorial
============================================================ */
.indice{border-top:1px solid var(--rule)}
.ind-row{
  display:grid;grid-template-columns:70px 1fr auto;gap:clamp(1rem,3vw,3rem);
  align-items:baseline;padding:clamp(1.4rem,2.6vw,2rem) 0;
  border-bottom:1px solid var(--rule);
  transition:translate .35s var(--ease);position:relative;
}
a.ind-row:hover{background:rgba(181,152,90,.05)}
a.ind-row:hover,a.ind-row:focus-visible{translate:0 -3px}
.ind-num{font-family:var(--serif);font-size:1rem;color:var(--gold-ink)}
.ind-name{font-family:var(--serif);font-size:clamp(1.45rem,3vw,2.2rem);letter-spacing:-.015em;color:var(--ink);line-height:1.32}
.ind-desc{display:block;font-family:var(--sans);font-size:var(--fs-sm);color:var(--mut);margin-top:6px;letter-spacing:0;line-height:1.45}
.ind-go{font-size:.85rem;font-weight:600;color:var(--gold-ink);white-space:nowrap}
.ind-extra{padding:1.6rem 0 0;font-size:var(--fs-sm);color:var(--mut);max-width:58ch}
.ind-extra b{color:var(--ink-800);font-weight:600}

/* ============================================================
   CARTA (sobre) — foto-esq sticky 400x500 / texto-dir
============================================================ */
.carta-grid{display:grid;grid-template-columns:400px minmax(0,1fr);gap:72px;align-items:start}
.carta-figure{position:sticky;top:calc(var(--header-h) + 24px)}
.carta-figure img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-md);width:100%}
.carta-body h2{font-size:var(--fs-h2);margin:.5em 0 .6em}
.carta-body p{color:var(--mut);margin-bottom:1.2em;max-width:56ch}
.carta-body p.destaque{
  font-family:var(--serif);font-size:var(--fs-lead);color:var(--ink);
  border-left:2px solid var(--gold);padding-left:20px;line-height:1.45;
}
.assina{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.assina .a-n{font-family:var(--serif);font-size:1.35rem;color:var(--ink)}
.assina .a-c{font-size:.8rem;color:var(--gold-ink);letter-spacing:.04em;margin-top:3px}

/* ============================================================
   EQUIPE — lista de 5 linhas, zero foto
============================================================ */
.eq-list{border-top:1px solid var(--rule)}
.eq-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;column-gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--rule);transition:translate .35s var(--ease)}
.eq-num{font-family:var(--serif);font-size:1rem;color:var(--gold-ink)}
.eq-nome{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.3;color:var(--ink)}
a.eq-row .eq-nome{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--gold);text-decoration-thickness:1px}
.eq-area{display:block;font-size:var(--fs-sm);line-height:1.45;color:var(--mut);margin-top:4px}
.eq-cro{font-size:.8125rem;font-weight:600;letter-spacing:.04em;color:var(--gold-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
a.eq-row:hover,a.eq-row:focus-visible{translate:4px 0}
.eq-nota{margin-top:20px}

/* ============================================================
   SEÇÃO ESCURA — fluxo digital
============================================================ */
.on-dark{background:var(--ink);color:var(--mut-dark)}
.digital-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,5rem);align-items:start}
.digital-body h2{font-size:var(--fs-h2);margin:.5em 0 .55em}
.digital-body p{margin-bottom:1.15em;max-width:56ch}
.digital-steps{margin-top:1.8rem;display:grid;gap:0}
.dstep{display:grid;grid-template-columns:52px 1fr;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--rule-dark)}
.dstep .s-n{font-family:var(--serif);color:var(--gold-lt);font-size:1.05rem}
.dstep .s-t{color:var(--paper);font-weight:600;font-size:.95rem}
.dstep .s-d{font-size:var(--fs-sm);margin-top:3px}
.digital-note{font-size:.8rem;color:var(--mut-dark);border-left:2px solid var(--rule-dark);padding-left:14px;margin-top:1.6rem;max-width:50ch}
/* bloco vertical grande do fluxo digital (scanner-vert.jpg 463x617) */
.digital-foto{margin:0;display:flex;flex-direction:column;gap:.75rem}
.digital-foto .df-media{display:block;overflow:hidden;border-radius:var(--r-lg)}
.digital-foto img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 38%;display:block}
.digital-foto figcaption{font-size:var(--fs-xs);line-height:1.4;color:var(--mut-dark);letter-spacing:.04em}

/* ============================================================
   LOCALIZAÇÃO — texto-esq / mapa-dir (só o iframe)
============================================================ */
.local-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.local-items{display:grid;gap:1.35rem;margin-top:1.8rem}
.li-row{display:flex;gap:15px;align-items:flex-start}
.li-row svg{width:20px;height:20px;stroke:var(--gold-ink);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:3px}
.li-row b{display:block;font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--gold-ink);font-weight:600;margin-bottom:2px}
.li-row span,.li-row a{font-size:.98rem;color:var(--ink-800)}
.local-media{display:block}
.local-media iframe{width:100%;height:380px;border:0;border-radius:var(--r-md);filter:grayscale(.35) sepia(.08)}

/* ============================================================
   CTA FINAL
============================================================ */
.cta-final{text-align:center}
.cta-final h2{font-size:clamp(2.2rem,5vw,4rem);max-width:18ch;margin:0 auto .4em}
.cta-final p{max-width:52ch;margin:0 auto 2.2em}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============================================================
   FOOTER
============================================================ */
.footer{background:var(--ink);padding:clamp(3rem,6vw,4.5rem) 0 2rem;color:var(--mut-dark)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:clamp(2rem,4vw,4rem);padding-bottom:2.5rem;border-bottom:1px solid var(--rule-dark)}
.footer .logo .l-name{color:var(--paper)}
.footer .logo .l-tag{color:var(--gold-lt)}
.footer p{font-size:var(--fs-sm);margin-top:1rem;max-width:34ch}
.footer h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-lt);font-weight:600;margin-bottom:1rem}
.footer ul{display:grid;gap:.55rem}
.footer ul a{font-size:var(--fs-sm);transition:color .2s}
.footer ul a:hover{color:var(--paper)}
.footer-base{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding-top:1.6rem;font-size:.78rem}
.footer-base a{color:var(--gold-lt)}

/* wa flutuante */
.wa-float{
  position:fixed;right:22px;bottom:22px;z-index:90;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(20,18,14,.18);
  transition:scale .25s var(--ease);
}
.wa-float:hover{scale:1.08}
.wa-float svg{width:28px;height:28px;fill:#fff}

/* ============================================================
   PÁGINA DE SERVIÇO
============================================================ */
.crumb{padding:calc(var(--header-h) + 18px) 0 0;font-size:.82rem;color:var(--mut)}
.crumb ol{display:flex;gap:9px}
.crumb a{color:var(--gold-ink)}

/* hero de serviço: um componente, duas geometrias (--arco / --faixa) */
.hero-serv{padding:clamp(2rem,4vw,3.5rem) 0 clamp(3rem,6vw,5rem);background:var(--paper)}
.hero-serv h1{font-size:clamp(2.4rem,4.4vw,3.6rem);line-height:1.08;letter-spacing:-.02em;margin:0 0 .45em}
.hero-serv .lead{font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.6;color:var(--mut);max-width:34em}
.hero-serv .hero-actions{margin-top:1.8rem}
.hs-meta{font-size:var(--fs-sm);line-height:1.5;color:var(--mut);border-top:1px solid var(--rule);padding-top:14px;margin-top:28px;max-width:52ch;letter-spacing:0;text-transform:none}
.hs-fato{display:flex;align-items:baseline;gap:12px;margin-top:20px}
.hs-fato dt{font-family:var(--serif);font-weight:400;font-size:2.5rem;line-height:1;color:var(--gold-ink)}
.hs-fato dd{margin:0;font-size:var(--fs-sm);line-height:1.45;color:var(--mut)}
.hs-legenda{margin-top:28px;font-size:var(--fs-xs);line-height:1.4;color:var(--mut);letter-spacing:.02em}

/* variante --arco (reabilitação, implante, ortodontia): foto 4x5 a 400x500 */
.hero-serv--arco .hs-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:64px;align-items:center}
.hs-foto-wrap{position:relative}
.hs-foto-wrap::after{content:"";position:absolute;inset:-14px;border:1px solid var(--rule);border-radius:214px 214px 32px 32px;pointer-events:none}
.hs-foto{--arc:200px;margin:0;overflow:hidden;border-radius:var(--arc) var(--arc) 18px 18px}
.hs-foto img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;display:block}

/* variante --faixa (lente, clareamento): faixa 21:9 a 1080x463 */
.hero-serv--faixa .hs-txt{max-width:760px}
.hs-faixa{margin:clamp(2rem,4vw,3rem) 0 0;max-width:1080px;overflow:hidden;border-radius:var(--r-lg)}
.hs-faixa img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:40% 45%;display:block}
.hs-faixa+.hs-legenda{margin-top:12px}

/* prosa */
.prose{max-width:56ch}
.prose h2{font-size:var(--fs-h2);margin:1.6em 0 .55em}
.prose h3{font-size:var(--fs-h3);margin:1.5em 0 .5em}
.prose p{color:var(--mut);margin-bottom:1.15em}
.prose strong{color:var(--ink-800)}
.prose ul{display:grid;gap:.6rem;margin:1.1em 0 1.4em}
.prose ul li{position:relative;padding-left:26px;color:var(--mut)}
.prose ul li::before{content:"";position:absolute;left:2px;top:.65em;width:12px;height:1.5px;background:var(--gold)}

/* #o-que-e: prosa + foto lateral sticky (scanner-vert.jpg 380x507) */
.oq-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8rem,4.5vw,3.6rem);align-items:start}
.oq-media{position:sticky;top:calc(var(--header-h) + 24px);max-width:380px}
.oq-media img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-md);display:block}
.oq-stat{margin-top:1.4rem;padding:1.1rem 1.3rem;border-left:2px solid var(--gold);background:var(--white)}
.oq-stat b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,5vw,4rem);line-height:1;color:var(--gold-ink)}
.oq-stat span{font-size:var(--fs-xs);color:var(--mut)}

/* duas colunas de indicação (#quem-pode): separadas por filete, sem caixa */
#quem-pode{border-top:1px solid var(--rule)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:2rem 0}
.duo-col{border:0;border-radius:0;background:transparent;padding:0 40px 0 0}
.duo-col+.duo-col{border-left:1px solid var(--rule);padding:0 0 0 40px}
.duo-col h3{font-size:1.2rem;margin-bottom:1rem}
.duo-col ul{display:grid;gap:.65rem}
.duo-col li{position:relative;padding-left:24px;font-size:var(--fs-sm);color:var(--mut)}
.duo-col li::before{content:"";position:absolute;left:0;top:.62em;width:11px;height:1.5px;background:var(--gold)}

/* etapas */
.etapas{display:grid;gap:0;margin:2rem 0;border-top:1px solid var(--rule)}
.etapa{display:grid;grid-template-columns:64px 1fr;gap:clamp(1rem,3vw,2.2rem);padding:1.5rem 0;border-bottom:1px solid var(--rule)}
.etapa .e-n{font-family:var(--serif);font-size:1.5rem;color:var(--gold-ink)}
.etapa .e-t{font-weight:600;font-size:1.05rem;color:var(--ink);font-family:var(--sans)}
.etapa .e-d{font-size:var(--fs-sm);color:var(--mut);margin-top:5px;max-width:62ch}

/* timeline de etapas */
.etapas-tl{position:relative;padding-left:2.1rem}
.etapas-tl::before{content:"";position:absolute;left:.55rem;top:.9rem;bottom:.9rem;width:1px;background:var(--rule)}
.etapas-tl .et-fio{position:absolute;left:.55rem;top:.9rem;bottom:.9rem;width:1px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform 1.4s var(--ease) .15s}
.etapas-tl.on .et-fio{transform:scaleY(1)}
.etapas-tl .etapa{position:relative;transform:translateY(18px);transition:transform .6s var(--ease)}
.etapas-tl.on .etapa{transform:none}
.etapas-tl.on .etapa:nth-child(3){transition-delay:.12s}
.etapas-tl.on .etapa:nth-child(4){transition-delay:.24s}
.etapas-tl.on .etapa:nth-child(5){transition-delay:.36s}
.etapas-tl.on .etapa:nth-child(6){transition-delay:.48s}
.etapas-tl .etapa::before{content:"";position:absolute;left:-1.85rem;top:.55rem;width:9px;height:9px;border-radius:50%;background:var(--gold);transform:scale(0);transition:transform .45s var(--ease) .3s}
.etapas-tl.on .etapa::before{transform:scale(1)}
.etapas-tl.on .etapa:nth-child(3)::before{transition-delay:.42s}
.etapas-tl.on .etapa:nth-child(4)::before{transition-delay:.54s}
.etapas-tl.on .etapa:nth-child(5)::before{transition-delay:.66s}
.etapas-tl.on .etapa:nth-child(6)::before{transition-delay:.78s}

/* comparativo */
.comp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:2rem 0 .6rem}
.comp{width:100%;min-width:620px;border-collapse:collapse;background:var(--white);border-radius:var(--r-md);overflow:hidden}
.comp th{font-family:var(--sans);font-size:.85rem;letter-spacing:0;text-transform:none;font-weight:600;text-align:left;padding:14px 16px;background:var(--ink-800);color:var(--paper)}
.comp th.destaque{color:var(--gold-ink)} /* th.destaque tem fundo branco (linha abaixo): dourado-claro dava 1,7:1 */
.comp td{padding:13px 16px;font-size:var(--fs-sm);color:var(--mut);border-bottom:1px solid var(--rule)}
.comp td:first-child{font-weight:600;color:var(--ink-800)}
.comp td.destaque{background:rgba(181,152,90,.07);color:var(--ink-800);font-weight:600}
.comp-hint{display:none;font-size:.72rem;letter-spacing:.04em;color:var(--mut);margin-bottom:1.4rem}
@media(max-width:700px){.comp-hint{display:block}}
/* coluna vencedora vira card */
.comp td.destaque,.comp th.destaque{background:var(--white);border-left:1px solid var(--gold);border-right:1px solid var(--gold);position:relative}
.comp thead th.destaque{border-top:2px solid var(--gold);border-radius:var(--r-md) var(--r-md) 0 0}
.comp tbody tr:last-child td.destaque{border-bottom:2px solid var(--gold);border-radius:0 0 var(--r-md) var(--r-md)}

/* #especialista: faixa de tinta, ficha com CRO em display */
#especialista{padding:clamp(4rem,8vw,6.5rem) 0}
.espec{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:center;border:0;border-radius:0;background:transparent;padding:0;margin:0}
.espec-txt{min-width:0}
.espec h3{font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1.15;color:var(--paper);margin:0}
.espec .e-cro{font-size:var(--fs-sm);line-height:1.45;letter-spacing:.02em;text-transform:none;color:var(--gold-lt);margin:.4em 0 1em}
.espec p{font-size:var(--fs-body);line-height:1.65;color:var(--mut-dark);max-width:52ch}
.espec p a{color:var(--gold-lt);text-decoration:underline}
.espec .espec-nota{font-size:var(--fs-sm);margin-top:1rem}
.espec-cro{justify-self:end;text-align:right;min-width:260px;border-top:1px solid var(--rule-dark);padding-top:20px;margin:0}
.espec-cro b{display:flex;align-items:baseline;justify-content:flex-end;gap:14px;font-family:var(--serif);font-weight:300;font-size:clamp(3.5rem,7vw,5.5rem);line-height:1;letter-spacing:-.02em;color:var(--gold-lt);font-variant-numeric:tabular-nums}
.espec-cro b small{font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;color:var(--mut-dark)}
.espec-cro span{display:block;font-size:var(--fs-sm);line-height:1.45;color:var(--mut-dark);margin-top:12px}
.espec-foto{position:relative;justify-self:end;width:min(100%,320px);margin:0}
.espec-foto img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-md);display:block}
.espec-foto::after{content:"";position:absolute;inset:-12px;border:1px solid var(--rule-dark);border-radius:16px;pointer-events:none}
.espec-foto figcaption{margin-top:24px;font-size:var(--fs-xs);line-height:1.4;color:var(--mut-dark)}

/* FAQ — details/summary nativo */
.faq{max-width:820px;margin:1.6rem 0}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding:1.25rem 0;font-weight:600;font-size:1.02rem;color:var(--ink);
  font-family:var(--sans);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font-family:var(--serif);font-size:1.5rem;font-weight:300;
  color:var(--gold-ink);flex-shrink:0;transition:transform .3s var(--ease);line-height:1;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-a{padding:0 0 1.4rem;color:var(--mut);font-size:var(--fs-sm);max-width:64ch}
.faq .faq-a p{margin-bottom:.8em}
.faq .faq-a p:last-child{margin-bottom:0}

/* cta da página de serviço: seção .on-dark full-bleed */
.s-cta{background:var(--ink);border-radius:0;padding:var(--sp-sec) 0;margin:0}
.s-cta-grid{display:grid;grid-template-columns:1.4fr auto;gap:2rem;align-items:center}
.s-cta h2{color:var(--paper);font-size:clamp(1.7rem,3.2vw,2.5rem);margin-bottom:.35em}
.s-cta p{color:var(--mut-dark);font-size:var(--fs-sm);max-width:52ch}

/* ============================================================
   GRAIN + LUZ (mata o papel liso)
============================================================ */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .14 0 0 0 0 .12 0 0 0 0 .09 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
body>*{position:relative;z-index:1}
.glow{position:relative}
.glow::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 640px 420px at 82% 8%,rgba(181,152,90,.07),transparent 65%)}
.on-dark.glow::before{background:radial-gradient(ellipse 700px 460px at 85% 0%,rgba(217,194,140,.08),transparent 60%),radial-gradient(ellipse 520px 380px at 8% 100%,rgba(217,194,140,.05),transparent 60%)}

/* nota de secao e credito do rodape: linha dentro de 65-75ch */
.nota{font-size:var(--fs-sm);line-height:1.55;color:var(--mut);max-width:56ch}
.footer-legal,.footer-bottom span{max-width:70ch}
.footer .nota-legal{max-width:56ch;display:inline-block}

/* ============================================================
   MOVIMENTO v4 · scroll-driven nativo · sem suporte = visível e parado
============================================================ */

/* 1. entrada do arco: por animation, não por classe (o estado final existe sem JS).
      Só clip-path; o raio mora no border-radius do próprio elemento, então nenhum valor fixo aqui. */
@media (prefers-reduced-motion: no-preference){
  .hero-foto,.hs-foto{animation:hfClip .9s var(--ease) both}
  @keyframes hfClip{from{clip-path:inset(0 0 10% 0)}to{clip-path:inset(0)}}
}

/* 2. tudo preso à rolagem */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){

    /* 2a. hero (home + 3 arcos): a foto respira; texto e CTA não têm transform */
    .hero-foto img,.hs-foto img{animation:mvHero linear both;animation-timeline:view();animation-range:entry 0% exit 85%}
    @keyframes mvHero{from{transform:scale(1.04)}to{transform:scale(1)}}

    /* 2b. faixa 21:9 (lente, clareamento): parallax de 1 camada; teto 1.08 porque a fonte tem 1800px */
    .hs-faixa img{animation:mvFaixa linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
    @keyframes mvFaixa{from{transform:translateY(3%) scale(1.08)}to{transform:none}}

    /* 2c. tiles da clínica (720px): zoom com teto 1.04 */
    .clinica-strip img{animation:mvZoom720 linear both;animation-timeline:view();animation-range:entry 0% cover 75%}
    @keyframes mvZoom720{from{transform:scale(1.04)}to{transform:scale(1)}}

    /* 2d. lista da equipe: timeline própria por linha = cascata sem stagger manual */
    .eq-row{animation:mvSobe20 linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
    @keyframes mvSobe20{from{transform:translateY(20px)}to{transform:none}}

    /* 2e. CRO em display (implante, ortodontia) */
    .espec-cro b{animation:mvSobe24 linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
    @keyframes mvSobe24{from{transform:translateY(24px)}to{transform:none}}

    /* 2f. mantidos do v3 */
    .digital-foto img{animation:mvFotoSobe linear both;animation-timeline:view();animation-range:entry 8% cover 65%}
    @keyframes mvFotoSobe{from{transform:translateY(3.5%) scale(1.06)}to{transform:none}}
    .etapas-tl .et-fio{transform:scaleY(0);transition:none;animation:mvFio linear both;animation-timeline:view();animation-range:entry 25% cover 60%}
    @keyframes mvFio{to{transform:scaleY(1)}}
    .indice .ind-row{transition:translate .35s var(--ease);animation:mvLinha linear both;animation-timeline:view();animation-range:entry 0% entry 75%}
    @keyframes mvLinha{from{transform:translateX(-16px)}to{transform:none}}
    .carta-figure img{animation:mvZoom720 linear both;animation-timeline:view();animation-range:entry 0% cover 75%}
  }
}

/* 3. estado: hover e foco em translate/scale (propriedades individuais),
      porque animation com fill-mode both sobrescreve transform para sempre */
.porta,.ind-row,.eq-row{transition:translate .35s var(--ease)}
.porta:hover,.ind-row:hover,.porta:focus-visible,.ind-row:focus-visible{translate:0 -3px}
a.eq-row:hover,a.eq-row:focus-visible{translate:4px 0}
.btn-primary:hover{translate:0 -2px}
.wa-float:hover{scale:1.08}
.clinica-strip img{transition:scale .5s var(--ease)}
.clinica-strip figure:hover img{scale:1.03}
.faq summary::after{transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}

/* 4. IO existente: fallback e o que view() não cobre (nunca em hero, CTA, telefone, endereço, CRO) */
.rv{transform:translateY(22px);transition:transform .7s var(--ease)}
.rv.on{transform:none}
/* 5. view transition: o arco da home morfa para o arco da página (exatamente 1 elemento por página; a faixa não participa) */
@view-transition{navigation:auto}
.hero-foto,.hs-foto{view-transition-name:foto-hero}

/* 6. FAQ (mantido) */
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:hidden;transition:block-size .38s var(--ease),content-visibility .38s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}

/* 7. sticky (0 custo). Nenhuma animação de seção em #sobre nem em #o-que-e: transform em ancestral mata o sticky */
.carta-figure,.oq-media{position:sticky;top:calc(var(--header-h) + 24px)}

/* 8. reduced motion: lista explícita, nunca universal (transform:none universal abriria o drawer .mnav-panel) */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero-foto,.hs-foto,.hero-foto img,.hs-foto img,.hs-faixa img,.clinica-strip img,.carta-figure img,
  .eq-row,.espec-cro b,.digital-foto img,.etapas-tl .et-fio,.etapas-tl .etapa,.etapas-tl .etapa::before,
  .indice .ind-row,.porta,.ind-row,.btn-primary,.wa-float,.rv,.rv-l,.rv-r{
    animation:none!important;transform:none!important;transition:none!important;clip-path:none!important;translate:none!important;scale:none!important
  }
}

/* ============================================================
   RESPONSIVO (depois do movimento: o static do mobile vence o sticky)
============================================================ */
@media(max-width:1199px){
  .hero-foco .container{grid-template-columns:minmax(0,1fr) 400px;gap:48px}
}
@media(max-width:1099px){
  .hero-serv--arco .hs-grid{grid-template-columns:minmax(0,1fr) 340px;gap:40px}
}
@media(max-width:1080px){
  /* de 900 a 1080 o menu desktop nao cabe junto com logo + CTA: vira hamburger, mas o CTA fica */
  .nav{display:none}
  .hamburger{display:block}
}
@media(max-width:900px){
  .nav{display:none}
  .header .btn{display:none}
  .hamburger{display:block}
  .carta-grid,.digital-grid,.local-grid,.oq-grid{grid-template-columns:1fr}
  .carta-figure{position:static;max-width:400px}
  .oq-media{position:static;max-width:70%;margin:0 auto}
  .clinica-strip{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:6px}
  .clinica-strip figure{scroll-snap-align:start}
  .portas{grid-template-columns:1fr}
  .porta{border-left:0;border-top:1px solid var(--rule);padding:24px 0}
  .porta:first-child{border-top:0;padding-top:0}
  .duo{grid-template-columns:1fr}
  .duo-col{padding:0}
  .duo-col+.duo-col{border-left:0;border-top:1px solid var(--rule);padding:24px 0 0;margin-top:24px}
  .s-cta-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
}
@media(max-width:899px){
  /* hero home: 1 coluna, ordem do DOM = ordem visual */
  .hero-foco .container{grid-template-columns:1fr}
  .hero-foto-wrap{max-width:380px;margin-top:32px}
  .hero-foto{--arc:179px}
  .hero-foto-wrap::after{inset:-10px;border-radius:189px 189px 24px 24px}
  /* hero de serviço --arco */
  .hero-serv--arco .hs-grid{grid-template-columns:1fr}
  .hs-foto-wrap{max-width:380px;margin-top:32px}
  .hs-foto{--arc:179px}
  .hs-foto-wrap::after{inset:-10px;border-radius:189px 189px 24px 24px}
  /* hero de serviço --faixa */
  .hs-faixa img{aspect-ratio:16/10;object-position:30% 50%}
  /* botão em bloco, telefone abaixo */
  .hero-foco .hero-actions,.hero-serv .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
  .hero-foco .btn-primary,.hero-serv .btn-primary{width:100%;min-height:56px;justify-content:center}
  .hero-foco .hero-tel,.hero-serv .hero-tel{display:block}
  /* especialista */
  .espec{grid-template-columns:1fr;gap:40px}
  .espec-cro{justify-self:start;text-align:left;min-width:0}
  .espec-cro b{justify-content:flex-start;font-size:3.5rem}
  .espec-foto{justify-self:start;width:min(100%,280px)}
}
@media(max-width:640px){
  .ind-row{grid-template-columns:44px 1fr;grid-template-rows:auto auto}
  .ind-go{grid-column:2;justify-self:start;margin-top:4px}
  .eq-row{grid-template-columns:40px 1fr}
  .eq-cro{grid-column:2;margin-top:6px}
}

/* v3 · revisao: o zoom de entrada da foto do #sobre fica contido (sticky no proprio elemento, overflow no proprio elemento) */
.carta-figure{overflow:hidden;border-radius:var(--r-md)}
.carta-figure img{border-radius:0}

/* v3 · revisao visual: "pela boca" nunca se parte entre linhas (h1 curto, cabe em 1 linha em qualquer viewport) */
.hero-foco h1 em{white-space:nowrap}

/* ============================================================
   REDESIGN V4 — direção aprovada em 10/09/2026
   Home editorial, heros em split e páginas internas unificadas.
============================================================ */
:root{
  --ink:#151713;
  --ink-800:#272923;
  --ink-600:#34352F;
  --paper:#F3F0E7;
  --rule:#D8D2C3;
  --rule-dark:#4B493F;
  --gold:#A88948;
  --gold-lt:#D6BF8A;
  --gold-ink:#806B3B;
  --mut:#62635C;
  --mut-dark:#BDBAB0;
  --sp-sec:clamp(4.875rem,8vw,7.75rem);
  --max:1264px;
  --header-h:88px;
}
body{background:var(--paper);color:var(--ink);font-size:16px}
.container{max-width:var(--max);padding:0 20px}

/* Cabeçalho e navegação */
.header{position:relative;height:var(--header-h);background:var(--white);backdrop-filter:none;border-color:#DED8CA}
.header-inner{max-width:var(--max);padding:0 20px;gap:36px}
.logo .l-name{font-size:26px;line-height:1.05;letter-spacing:-.025em}
.logo .l-tag{font-size:11px;line-height:1.3;letter-spacing:.16em;margin-top:5px}
.nav{gap:34px;margin-left:auto}
.nav a{font-size:14px;color:#34352F}
.header .btn{min-height:48px;padding:0 22px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font-size:14px}
.header .btn:hover{background:var(--ink);color:var(--white)}
.mnav-primary{margin-top:auto}

/* Botões */
.btn{border-radius:0;justify-content:center}
.btn-primary{background:var(--ink);color:var(--white)}
.btn-outline{border-color:var(--ink);color:var(--ink)}

/* Home */
.home-hero{position:relative;background:var(--paper);min-height:calc(100svh - var(--header-h));isolation:isolate}
.home-hero::before{content:"";position:absolute;z-index:-1;inset:0 auto 0 0;width:50%;background:var(--ink)}
.home-hero-grid{min-height:calc(100svh - var(--header-h));display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center}
.home-hero-copy{color:var(--paper);padding:58px 68px 62px 0;background:var(--ink)}
.home-hero h1{font-size:clamp(58px,5.4vw,78px);font-weight:350;line-height:1.01;letter-spacing:-.04em;max-width:9ch;margin:0;color:var(--paper)}
.home-hero h1 strong{font-weight:350;color:var(--gold-lt)}
.home-hero .lead{font-size:clamp(17px,1.35vw,20px);line-height:1.62;max-width:34em;margin:26px 0 0;color:#D5D2C9}
.home-hero .hero-actions{margin-top:32px;gap:20px}
.home-hero .btn-primary{min-height:56px;padding:0 28px;background:var(--paper);color:var(--ink);font-size:15px}
.home-hero .hero-tel{font-size:15px;color:var(--gold-lt);padding:12px 0}
.home-credentials{margin-top:28px;padding-top:18px;border-top:1px solid var(--rule-dark)}
.home-credentials p{margin:0;font-size:12.5px;line-height:1.55;color:#BDBAB0}
.home-credentials p+p{margin-top:4px;color:var(--gold-lt)}
.home-credentials b{font-weight:650;color:var(--paper)}
.home-hero-visual{padding:48px 0 48px 58px}
.home-photo-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(245px,31vh) minmax(170px,22vh);gap:12px;padding-left:18px;border-left:1px solid var(--gold)}
.home-photo-grid figure{position:relative;margin:0;overflow:hidden;background:#D8D2C4;border-radius:3px}
.home-photo-grid figure:first-child{grid-column:1/-1}
.home-photo-grid img{width:100%;height:100%;object-fit:cover}
.home-photo-grid figure:first-child img{object-position:50% 55%}
.home-photo-grid figure:nth-child(2) img{object-position:74% 50%}
.home-photo-grid figure:nth-child(3) img{object-position:50% 55%}
.home-photo-grid figcaption{position:absolute;right:10px;bottom:10px;padding:6px 8px;background:rgba(21,23,19,.92);color:var(--paper);font-size:12px;line-height:1.3}

.home-section{padding:var(--sp-sec) 0}
.home-section h2{font-size:clamp(40px,4.4vw,62px);font-weight:350;line-height:1.05;letter-spacing:-.035em;margin:0}
.home-section h2 em{font-style:normal;color:var(--gold-ink)}
.home-section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.72fr);gap:70px;align-items:end;margin-bottom:58px}
.home-section-head>p{font-size:17px;line-height:1.68;color:var(--mut);margin:0;max-width:42em}
.home-section-head--solo{grid-template-columns:1fr;margin-bottom:48px}
.home-needs,.home-people{background:var(--white)}
.home-need-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.home-need{display:grid;grid-template-columns:35px 1fr;align-content:start;gap:0 18px;padding:32px 28px 34px;border-left:1px solid var(--rule);transition:translate .25s}
.home-need:first-child{border-left:0;padding-left:0}
.home-need:last-child{padding-right:0}
.home-need:hover{translate:0 -3px}
.home-need-num{grid-row:1/4;font:350 20px/1.3 var(--serif);color:var(--gold-ink)}
.home-need h3{font-size:clamp(24px,2vw,30px);font-weight:350;line-height:1.22;letter-spacing:-.02em;margin:0}
.home-need p{font-size:14px;line-height:1.62;color:#676861;margin:16px 0 22px}
.home-text-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--gold-ink)}
.home-text-link svg{width:17px;height:17px}

.home-service-index{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #CFC8B8}
.home-service{display:grid;grid-template-columns:48px minmax(0,1fr) 22px;column-gap:16px;align-items:center;min-height:112px;padding:20px 24px 20px 0;border-bottom:1px solid #CFC8B8}
.home-service:nth-child(even){padding-left:24px;border-left:1px solid #CFC8B8}
.home-service-num{font:350 16px/1 var(--serif);color:var(--gold-ink)}
.home-service-name{display:block;font:350 clamp(22px,2vw,29px)/1.2 var(--serif);letter-spacing:-.02em}
.home-service-desc{display:block;margin-top:5px;font-size:12.5px;line-height:1.45;color:#686961}
.home-service>svg{width:18px;height:18px;color:var(--gold-ink)}
.home-service-extra{margin:28px 0 0;max-width:56ch;font-size:13px;line-height:1.65;color:#686961}

.home-digital{background:var(--ink);color:var(--paper)}
.home-digital-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(400px,1.1fr);gap:80px;align-items:start}
.home-digital h2{color:var(--paper);max-width:10ch}
.home-digital h2 em{color:var(--gold-lt)}
.home-digital-copy>p{font-size:16px;line-height:1.72;color:#C6C3B9;max-width:46ch;margin:28px 0 0}
.home-digital-steps{margin-top:50px;border-top:1px solid var(--rule-dark)}
.home-digital-steps>div{display:grid;grid-template-columns:44px 160px 1fr;gap:20px;padding:30px 0 16px;border-bottom:1px solid var(--rule-dark);align-items:baseline}
.home-digital-steps span{font:350 17px/1 var(--serif);color:var(--gold-lt)}
.home-digital-steps h3{font:600 14px/1.4 var(--sans);color:var(--paper);margin:0}
.home-digital-steps p{font-size:13px;line-height:1.55;color:#AAA79E;margin:0}
.home-digital-copy .home-digital-note{font-size:12px;line-height:1.55;color:#AAA79E;margin-top:20px}
.home-digital-photo{width:min(100%,520px);height:auto;max-height:none;justify-self:end;margin:0;border-left:1px solid var(--gold)}
.home-digital-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;border-radius:3px}
.home-digital-photo figcaption{font-size:12px;color:#B8B4A8;margin-top:9px}

.home-people-grid{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(0,1fr) minmax(320px,.96fr);gap:44px;align-items:start}
.home-story-photo{margin:0;position:sticky;top:22px}
.home-story-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px}
.home-story-copy h2{font-size:clamp(38px,3.7vw,54px);max-width:9ch}
.home-story-copy p{font-size:14px;line-height:1.7;color:var(--mut);margin:22px 0 0}
.home-story-copy .home-statement{font:350 21px/1.42 var(--serif);color:var(--ink);padding-left:16px;border-left:1px solid var(--gold)}
.home-signature{padding-top:20px;border-top:1px solid var(--rule)}
.home-signature b{display:block;font:350 20px/1.3 var(--serif)}
.home-signature span{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--gold-ink)}
.home-team{border-top:1px solid var(--rule)}
.home-team-intro{font-size:14px;line-height:1.55;color:var(--mut);margin:0;padding:18px 0}
.home-team ul{margin:0;padding:0}
.home-team li{display:grid;grid-template-columns:1fr auto;gap:13px;padding:19px 0;border-top:1px solid #E1DBCF;align-items:baseline}
.home-team-name{display:block;font:350 18px/1.28 var(--serif)}
.home-team-area{display:block;font-size:12px;line-height:1.45;color:#74756D;margin-top:4px}
.home-team-cro{font-size:12px;font-weight:650;color:var(--gold-ink);white-space:nowrap}
.home-team-note{font-size:12px;line-height:1.5;color:#74756D;margin:16px 0 0}

.home-contact{padding-bottom:0}
.home-contact-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:74px;align-items:stretch}
.home-contact h2{max-width:9ch}
.home-contact-items{margin-top:38px;border-top:1px solid #CFC8B8}
.home-contact-items>div{display:grid;grid-template-columns:22px 1fr;gap:15px;padding:16px 0;border-bottom:1px solid #CFC8B8}
.home-contact-items svg{width:19px;height:19px;stroke:var(--gold-ink);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.home-contact-items p{margin:0}
.home-contact-items b{display:block;font-size:12px;color:var(--gold-ink);margin-bottom:4px}
.home-contact-items span,.home-contact-items a{display:block;font-size:13px;line-height:1.5;color:#52534D}
.home-map{min-height:510px;border:0;width:100%;background:#D6D0C2 url('assets/clinica-fachada.jpg') center/cover no-repeat;filter:saturate(.68) contrast(.96)}
.home-final{margin-top:var(--sp-sec);background:var(--ink);color:var(--paper);padding:72px 0}
.home-final-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center}
.home-final h2{color:var(--paper);max-width:11ch;font-size:clamp(38px,4.5vw,62px)}
.home-final h2 em{color:var(--gold-lt)}
.home-final p{font-size:14px;line-height:1.6;color:#BDB9AE;max-width:52ch;margin:18px 0 0}
.home-final .btn-primary{background:var(--paper);color:var(--ink)}
.home-final .btn-outline{border-color:var(--rule-dark);color:var(--gold-lt)}

/* Páginas de serviço */
.crumb{background:var(--white);border-bottom:1px solid #DED8CA;padding:14px 0}
.crumb ol{display:flex;gap:10px;align-items:center;font-size:12px;line-height:1.4;color:var(--mut)}
.crumb a{color:var(--gold-ink)}
.hero-serv{position:relative;isolation:isolate;padding:clamp(3.5rem,6vw,5.5rem) 0;min-height:calc(100svh - 117px);display:flex;align-items:center;background:var(--paper)}
.hero-serv::before{content:"";position:absolute;z-index:-1;inset:0 auto 0 0;width:50%;background:var(--ink)}
.hero-serv .hs-txt{background:var(--ink)}
.hero-serv h1{font-size:clamp(48px,4.8vw,68px);line-height:1.03;letter-spacing:-.035em;max-width:11ch;margin:0;color:var(--paper)}
.hero-serv h1 em{color:var(--gold-lt)}
.hero-serv .lead{font-size:clamp(16px,1.25vw,19px);line-height:1.62;color:#D5D2C9;margin-top:24px;max-width:34em}
.hero-serv .hero-actions{margin-top:30px}
.hero-serv .btn-primary{min-height:56px;padding:0 28px;background:var(--paper);color:var(--ink)}
.hero-serv .hero-tel{color:var(--gold-lt);padding:12px 0}
.hero-serv .hs-meta{border-color:var(--rule-dark);color:#BDBAB0;max-width:48ch}
.hero-serv .hs-fato dt{color:var(--gold-lt)}
.hero-serv .hs-fato dd{color:#BDBAB0}
.hero-serv--arco .hs-grid{grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);gap:70px}
.hero-serv--arco .hs-foto-wrap{padding-left:18px;border-left:1px solid var(--gold)}
.hero-serv--arco .hs-foto-wrap::after{display:none}
.hero-serv--arco .hs-foto{border-radius:3px;overflow:hidden}
.hero-serv--arco .hs-foto img{aspect-ratio:4/5;object-position:50% 50%}
.hero-serv .hs-legenda{font-size:12px;color:var(--mut);margin-top:10px}
.hero-serv--faixa .container{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);gap:14px 70px;align-items:center}
.hero-serv--faixa .hs-txt{max-width:none;grid-column:1;grid-row:1}
.hero-serv--faixa .hs-faixa{grid-column:2;grid-row:1;margin:0;padding-left:18px;border-left:1px solid var(--gold);border-radius:0;max-width:none}
.hero-serv--faixa .hs-faixa img{aspect-ratio:16/10;border-radius:3px;object-position:40% 45%}
.hero-serv--faixa .hs-legenda{grid-column:2;margin:0 0 0 18px}

.sec{padding:var(--sp-sec) 0}
.sec h2{font-size:clamp(38px,4.1vw,58px);line-height:1.06;letter-spacing:-.035em}
.sec-head{max-width:none;display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.72fr);gap:70px;align-items:end;margin-bottom:52px}
.sec-head h2{margin:0}
.sec-head .lead{font-size:16px;line-height:1.65}
.oq-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);gap:72px}
.prose h2{margin:0 0 .55em!important}
.prose p{font-size:15px;line-height:1.72}
.prose li{font-size:14px;line-height:1.62}
.oq-media{border-left:1px solid var(--gold);padding-left:18px}
.oq-media img{aspect-ratio:9/16;border-radius:3px}
.oq-stat{border-radius:0;background:var(--ink);color:var(--paper)}
.etapas{margin:0;border-color:#CFC8B8}
.etapas-tl{padding-left:0}
.etapas-tl::before,.etapas-tl .et-fio,.etapas-tl .etapa::before{display:none}
.etapa{grid-template-columns:64px minmax(0,1fr);padding:24px 0;border-color:#CFC8B8}
.etapa .e-n{font-size:18px;color:var(--gold-ink)}
.etapa .e-t{font:350 24px/1.25 var(--serif)}
.etapa .e-d{font-size:13.5px;line-height:1.62;max-width:56ch}
.duo{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0}
.duo-col{padding:30px 38px 34px 0}
.duo-col+.duo-col{padding:30px 0 34px 38px}
.duo-col h3{font:350 25px/1.25 var(--serif)}
.duo-col li{font-size:13.5px;line-height:1.58}
.espec{gap:80px}
.espec h2{font-size:clamp(36px,4vw,54px);font-weight:350;color:var(--paper);margin:0}
.espec .e-cro{color:var(--gold-lt)}
.espec p{font-size:15px;line-height:1.7}
.espec-foto img{border-radius:3px}
.espec-foto::after{display:none}
.comp{border-radius:0}
.comp th{background:var(--ink);padding:17px 18px}
.comp td{padding:15px 18px}
.clinica-strip{max-width:none;gap:12px}
.clinica-strip .cs-img{border-radius:3px}
.faq{max-width:960px;margin:0}
.faq summary{font:350 clamp(19px,2vw,24px)/1.35 var(--serif);padding:21px 46px 21px 0}
.faq .faq-a{font-size:14px;line-height:1.65}
.s-cta{padding:72px 0}
.s-cta-grid{grid-template-columns:minmax(0,1fr) auto;gap:60px}
.s-cta h2{font-size:clamp(38px,4.1vw,58px);line-height:1.06;max-width:13ch}
.s-cta .cta-actions{justify-content:flex-end}

/* A fotografia só existe quando arquivo, alt e legenda forem aprovados. */
.editorial-image{width:min(360px,calc(100% - 40px));margin:var(--sp-sec) auto var(--sp-sec) max(20px,calc((100% - 1224px)/2));padding-left:9px;border-left:1px solid var(--gold)}
.editorial-image[data-editorial-slot="lente-editorial"],.editorial-image[data-editorial-slot="ortodontia-editorial"]{margin-left:auto;margin-right:max(20px,calc((100% - 1224px)/2));padding-left:0;padding-right:9px;border-left:0;border-right:1px solid var(--gold)}
.editorial-image img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:3px}
.editorial-image figcaption{font-size:12px;line-height:1.45;color:var(--mut);margin-top:9px}

/* Rodapé */
.footer{background:#0D0E0C;padding:58px 0 28px}
.footer-grid{grid-template-columns:1.1fr .75fr 1fr;gap:70px;padding-bottom:0;border:0}
.footer .logo .l-name{font-size:25px;color:var(--paper)}
.footer .logo .l-tag{font-size:11px;color:var(--gold-lt)}
.footer p,.footer li,.footer a{font-size:12.5px;line-height:1.65;color:#AAA79D}
.footer p{margin-top:18px}
.footer h3{font-size:12px;letter-spacing:0;text-transform:none;color:var(--paper);margin-bottom:14px}
.footer ul{gap:0}
.footer-base{margin-top:42px;padding-top:20px;border-top:1px solid #2D2E29;font-size:11px}
.wa-float{width:52px;height:52px;right:22px;bottom:22px;background:#1FCF6A;box-shadow:0 8px 22px rgba(21,23,19,.18)}

/* Amplia todas as fotografias sem biblioteca externa. */
img.is-zoomable{cursor:zoom-in}
img.is-zoomable:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.lightbox-open,.lightbox-open body{overflow:hidden;overscroll-behavior:none}
.image-lightbox{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;margin:auto;padding:18px;border:0;background:transparent;color:var(--paper)}
.image-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;place-items:center}
.image-lightbox.is-fallback{z-index:9999;background:rgba(13,14,12,.96)}
.image-lightbox::backdrop{background:rgba(13,14,12,.94)}
.image-lightbox-close{justify-self:end;display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(243,240,231,.48);border-radius:50%;background:#151713;color:var(--paper);cursor:pointer}
.image-lightbox-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.image-lightbox-image{display:block;width:auto;height:auto;max-width:calc(100% - 8px);max-height:calc(100% - 8px);object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.34)}

@media(max-width:960px){
  .home-hero-copy{padding-right:40px}
  .home-hero-visual{padding-left:38px}
  .home-section-head,.sec-head{grid-template-columns:1fr;gap:24px}
  .home-digital-grid{grid-template-columns:1fr 1fr;gap:42px}
  .home-people-grid{grid-template-columns:.8fr 1.2fr}
  .home-story-copy{grid-column:2}
  .home-team{grid-column:1/-1}
  .home-contact-grid{gap:40px}
  .hero-serv--arco .hs-grid,.hero-serv--faixa .container{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:48px}
  .s-cta-grid{grid-template-columns:1fr}
  .s-cta .cta-actions{justify-content:flex-start}
}

@media(max-width:720px){
  :root{--header-h:74px;--sp-sec:72px}
  .header-inner{padding:0 20px}
  .logo .l-name{font-size:23px}
  .logo .l-tag{font-size:11px;letter-spacing:.14em}
  .header .btn{display:none}
  .hamburger{display:block}
  .mnav .btn{display:flex}

  .home-hero{min-height:auto;background:var(--paper)}
  .home-hero::before{width:100%;height:600px;bottom:auto}
  .home-hero-grid{display:block;min-height:auto}
  .home-hero-copy{min-height:600px;padding:43px 0 32px}
  .home-hero h1{font-size:46px;max-width:8.4ch}
  .home-hero .lead{font-size:16px;line-height:1.56;margin-top:20px;max-width:32ch}
  .home-hero .hero-actions{display:grid;grid-template-columns:1fr;margin-top:25px;gap:5px}
  .home-hero .btn-primary{width:100%}
  .home-hero .hero-tel{text-align:left;padding:9px 0}
  .home-credentials{margin-top:14px;padding-top:13px}
  .home-credentials p{font-size:12px}
  .home-hero-visual{padding:24px 0 34px}
  .home-photo-grid{grid-template-rows:174px 126px;gap:8px;padding-left:9px}
  .home-photo-grid figcaption{font-size:12px;right:7px;bottom:7px}
  .home-section h2{font-size:40px}
  .home-section-head{margin-bottom:38px}
  .home-section-head>p{font-size:15px}
  .home-need-grid{grid-template-columns:1fr}
  .home-need{border-left:0;border-top:1px solid var(--rule);padding:25px 0}
  .home-need:first-child{border-top:0}
  .home-need:last-child{padding-right:0}
  .home-need h3{font-size:25px}
  .home-service-index{grid-template-columns:1fr}
  .home-service,.home-service:nth-child(even){padding:18px 0;border-left:0;min-height:98px}
  .home-service{grid-template-columns:36px minmax(0,1fr) 20px}
  .home-service-name{font-size:23px}
  .home-digital-grid{grid-template-columns:1fr;gap:42px}
  .home-digital h2{font-size:43px}
  .home-digital-photo{width:100%;height:auto;max-width:520px;justify-self:center;grid-row:1}
  .home-digital-copy{grid-row:2}
  .home-digital-steps{margin-top:36px}
  .home-digital-steps>div{grid-template-columns:34px 1fr;gap:8px 14px}
  .home-digital-steps p{grid-column:2}
  .home-people-grid{grid-template-columns:1fr;gap:36px}
  .home-story-photo{position:static;max-width:330px}
  .home-story-copy,.home-team{grid-column:auto}
  .home-story-copy h2{font-size:42px}
  .home-team li{grid-template-columns:1fr}
  .home-team-cro{margin-top:4px}
  .home-contact-grid{grid-template-columns:1fr;gap:40px}
  .home-map{min-height:360px}
  .home-final{margin-top:72px;padding:62px 0}
  .home-final-grid{grid-template-columns:1fr;gap:32px}
  .home-final .cta-actions{display:grid;grid-template-columns:1fr}
  .home-final .btn{width:100%}

  .crumb{padding:11px 0}
  .hero-serv{display:block;min-height:0;padding:0 0 36px}
  .hero-serv::before{display:none}
  .hero-serv .hs-txt{margin:0 -20px;padding:42px 20px 34px;background:var(--ink)}
  .hero-serv h1{font-size:44px;max-width:10ch}
  .hero-serv .lead{font-size:16px;line-height:1.56}
  .hero-serv .hero-actions{display:grid;grid-template-columns:1fr;gap:5px;margin-top:24px}
  .hero-serv .btn-primary{width:100%}
  .hero-serv .hero-tel{display:block;text-align:left}
  .hero-serv--arco .hs-grid,.hero-serv--faixa .container{display:block}
  .hero-serv--arco .hs-foto-wrap,.hero-serv--faixa .hs-faixa{margin:24px 0 0;padding-left:9px;border-left:1px solid var(--gold);max-width:none}
  .hero-serv--arco .hs-foto{max-width:none}
  .hero-serv--arco .hs-foto img{aspect-ratio:4/5;border-radius:3px}
  .hero-serv--faixa .hs-faixa img{aspect-ratio:16/10;border-radius:3px}
  .hero-serv--faixa .hs-legenda{margin:9px 0 0}
  .sec h2{font-size:40px}
  .sec-head{margin-bottom:38px}
  .oq-grid{grid-template-columns:1fr;gap:42px}
  .oq-media{position:static;max-width:none;margin:0;padding-left:9px}
  .etapa{grid-template-columns:42px 1fr;gap:14px;padding:21px 0}
  .etapa .e-t{font-size:21px}
  .duo{grid-template-columns:1fr}
  .duo-col{padding:26px 0}
  .duo-col+.duo-col{border-left:0;border-top:1px solid var(--rule);padding:26px 0}
  .espec{grid-template-columns:1fr;gap:36px}
  .comp-wrap{margin-left:-20px;margin-right:-20px;padding-left:20px}
  .clinica-strip{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;gap:8px}
  .faq summary{font-size:20px}
  .s-cta{padding:62px 0}
  .s-cta h2{font-size:40px}
  .s-cta .cta-actions{display:grid;grid-template-columns:1fr;justify-content:stretch}
  .s-cta .btn{width:100%}
  .editorial-image,.editorial-image[data-editorial-slot="lente-editorial"],.editorial-image[data-editorial-slot="ortodontia-editorial"]{width:calc(100% - 40px);margin-left:auto;margin-right:auto;padding-left:9px;padding-right:0;border-left:1px solid var(--gold);border-right:0}
  .editorial-image img{aspect-ratio:9/16}
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .footer-base{display:block}
  .footer-base span{display:block;margin-top:8px}
  .wa-float{right:14px;bottom:14px;width:48px;height:48px}
}

@media(prefers-reduced-motion:reduce){
  .home-need,.home-need:hover,.btn,.btn:hover,.clinica-strip img,.clinica-strip figure:hover img,.faq summary::after,.image-lightbox,.image-lightbox::backdrop{animation:none!important;transition:none!important;translate:none!important;scale:none!important;transform:none!important}
}
