:root{--bg:#ffffff;--sand:#f6f2ea;--ink:#16292a;--teal:#134a4d;--teal2:#0c3234;--mut:#667574;--line:#e4ddd0;--gap:clamp(52px,8vw,96px)}
@media(prefers-color-scheme:dark){:root{--bg:#0d1718;--sand:#132325;--ink:#ebe5d9;--teal:#8cc9c5;--teal2:#0a1415;--mut:#9fb0ae;--line:#233a3b}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:300 17px/1.85 Figtree,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:300;line-height:1.12;letter-spacing:-.015em;margin:0 0 .6em}
h1{font-size:clamp(2.4rem,7vw,4.6rem);max-width:15ch}
h2{font-size:clamp(1.7rem,3.6vw,2.4rem);margin-top:1.8em}
section>.w>h2:first-child,.two h2:first-child{margin-top:0}
h3{font-size:1.25rem}
a{color:var(--teal);text-underline-offset:4px;text-decoration-thickness:1px}
p{margin:0 0 1.3em;max-width:62ch}
ul,ol{max-width:62ch;padding-left:1.2em}li{margin-bottom:.5em}li::marker{color:var(--mut)}
b{font-weight:500}
.w{max-width:1120px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}

header{background:var(--bg);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}
header .w{display:flex;align-items:center;justify-content:space-between;gap:16px 40px;padding-top:20px;padding-bottom:20px;flex-wrap:wrap}
.logo{font-family:Newsreader,Georgia,serif;font-size:1.35rem;font-weight:400;color:var(--ink);text-decoration:none;letter-spacing:.14em;white-space:nowrap}
nav{display:flex;gap:6px 28px;flex-wrap:wrap;font-size:.88rem}
nav a{color:var(--mut);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
nav a:hover,nav a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}

section{padding:var(--gap) 0}
.sand{background:var(--sand)}
.hero{padding:clamp(52px,9vw,112px) 0 var(--gap)}
.hero p{font-size:1.2rem;color:var(--mut);max-width:48ch}

.cta{display:flex;gap:14px;margin-top:40px;flex-wrap:wrap}
.cta a{flex:0 1 auto;min-width:200px;text-align:center;padding:16px 28px;border:1px solid var(--teal);border-radius:0;text-decoration:none;font-weight:400;font-size:.95rem;letter-spacing:.02em;color:var(--teal);transition:background .2s,color .2s}
.cta a:first-child{background:var(--teal);color:var(--bg)}
.cta a:hover{background:var(--teal2);border-color:var(--teal2);color:#fff}
.cta a:last-child:hover{background:transparent;color:var(--ink);border-color:var(--ink)}
a:focus-visible{outline:2px solid var(--teal);outline-offset:4px}

.facts{display:flex;flex-wrap:wrap;gap:8px 40px;margin-top:72px;padding-top:28px;border-top:1px solid var(--line);color:var(--mut);font-size:.9rem;max-width:720px}

.grid{display:grid;gap:0 48px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid a{display:block;padding:32px 0;border-top:1px solid var(--ink);text-decoration:none;color:var(--mut);font-size:.95rem;line-height:1.6;transition:color .2s}
.grid a b{font:300 1.6rem/1.2 Newsreader,Georgia,serif;display:block;color:var(--ink);margin-bottom:10px;transition:color .2s}
.grid a:hover b{color:var(--teal)}

.ph{background:var(--sand);border:1px solid var(--line);min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:var(--mut);font-size:.85rem}
.sand .ph{background:var(--bg)}
.two{display:grid;gap:48px clamp(40px,8vw,112px);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}

blockquote{margin:0 0 56px;padding:0;border:0}
blockquote p{font:300 1.25rem/1.65 Newsreader,Georgia,serif;margin-bottom:14px}
blockquote cite{display:block;color:var(--mut);font-style:normal;font-size:.85rem}
.sand .grid{gap:0 64px}

details{border-bottom:1px solid var(--line);padding:22px 0}
details:first-of-type{border-top:1px solid var(--line)}
summary{cursor:pointer;font:300 1.3rem/1.35 Newsreader,Georgia,serif;list-style:none;display:flex;justify-content:space-between;gap:24px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--mut);font-family:Figtree,sans-serif;font-weight:300}
details[open] summary::after{content:"\2212"}
details p{margin:16px 0 0;color:var(--mut)}

footer{background:var(--teal2);color:#e9e3d6;padding:88px 0;font-size:.9rem;line-height:1.9}
footer a{color:#e9e3d6;text-decoration-color:rgba(233,227,214,.35)}footer a:hover{text-decoration-color:#e9e3d6}
footer .two{gap:40px 64px}
@media(max-width:560px){.cta a{flex:1 1 100%}.facts{margin-top:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

img{max-width:100%;height:auto;display:block}
.band{background:#000;padding:0}.band img{margin:0 auto;width:100%;max-width:1080px}
.photo{width:100%;aspect-ratio:1/1;object-fit:cover}.photo.tall{aspect-ratio:4/5}
.ba{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));margin:48px 0}
.ba figure{margin:0}.ba img{width:100%;aspect-ratio:1/1;object-fit:cover}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pair .photo{aspect-ratio:4/5}
figcaption{margin-top:12px;font-size:.85rem;color:var(--mut)}

/* carrossel */
.car{position:relative;--per:1}
.car.narrow{max-width:640px}
.car-vp{overflow:hidden}
.car-track{display:flex;transition:transform .8s cubic-bezier(.65,0,.35,1)}
.slide{flex:0 0 calc(100% / var(--per));min-width:0;margin:0;padding-right:24px}
.car-ctrl{display:flex;align-items:center;gap:20px;margin-top:24px}
.car-dots{display:flex;gap:8px;flex:1;min-width:0}
.dot{appearance:none;border:0;background:var(--line);height:26px;flex:1 1 0;max-width:56px;padding:12px 0;background-clip:content-box;position:relative;cursor:pointer}
.dot.on{background:var(--mut);background-clip:content-box}
.dot.on::after{content:"";position:absolute;left:0;right:0;top:12px;height:2px;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.dot.on.run::after{animation:fill 4s linear forwards}
.car.paused .dot.on.run::after{animation-play-state:paused}
.car.still .dot.on::after{transform:scaleX(1);animation:none}
@keyframes fill{to{transform:scaleX(1)}}
.car-btn{appearance:none;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);font:300 1.1rem/1 Figtree,sans-serif;cursor:pointer;transition:border-color .2s,color .2s}
.car-btn:hover{border-color:var(--ink)}
.car-btn:focus-visible,.dot:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.car.single .car-ctrl{display:none}
.car .slide img{width:100%;aspect-ratio:1/1;object-fit:cover}
.quotes{max-width:760px}.quotes .slide{padding-right:0}
.quotes blockquote{margin:0}.quotes blockquote p{font-size:clamp(1.15rem,2.4vw,1.5rem);max-width:none}
/* animações de texto */
.hw{display:inline-block;opacity:0;transform:translateY(.45em);animation:wordin .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 70ms)}
@keyframes wordin{to{opacity:1;transform:none}}
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.hw{animation:none;opacity:1;transform:none}.js .rv{opacity:1;transform:none;transition:none}.car-track{transition:none}}
.stars{color:var(--teal);letter-spacing:.25em;font-size:.95rem;line-height:1;margin-bottom:18px}

/* Nossa história: edição de jornal */
.story{--serif-h:"Libre Caslon Text",Georgia,"Times New Roman",serif;--serif-b:"Source Serif 4",Georgia,"Times New Roman",serif}
.story .w{max-width:1120px}
.st-top{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;border-top:3px double var(--ink);padding-top:12px;font:400 .78rem/1.4 Figtree,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.story .st-h{font:700 clamp(2rem,5vw,3.4rem)/1.08 var(--serif-h);letter-spacing:-.02em;max-width:20ch;margin:28px 0 16px;text-wrap:balance}
.story .st-dek{font:italic 400 clamp(1.1rem,2vw,1.35rem)/1.5 var(--serif-b);color:var(--mut);max-width:44ch;margin:0 0 28px;padding-bottom:28px;border-bottom:1px solid var(--ink)}
.st-grid{display:grid;gap:40px 48px;grid-template-columns:minmax(0,1fr)}
.st-body{font:400 1.05rem/1.7 var(--serif-b)}
.st-body p{max-width:none;margin:0 0 1em}
.st-body strong{font-weight:600;color:var(--ink)}
.st-body>p:first-child::first-letter{float:left;font:700 4.4em/.82 var(--serif-h);padding:.06em .1em 0 0}
.st-pull{column-span:all;margin:.4em 0 1.4em;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.st-pull p{margin:0;max-width:none;font:italic 400 clamp(1.5rem,3.2vw,2.3rem)/1.25 var(--serif-h);text-align:center;text-wrap:balance}
.st-side{align-self:start;background:var(--sand);padding:24px 24px 8px;border-top:3px solid var(--ink)}
.st-side h3{font:700 1.05rem/1.3 var(--serif-h);margin:0 0 8px}
.st-side dl{margin:0}.st-side dl>div{padding:16px 0;border-top:1px dotted var(--mut)}
.st-side dt{font:700 2rem/1.1 var(--serif-h);color:var(--teal)}
.st-side dd{margin:4px 0 0;font:400 .9rem/1.45 Figtree,sans-serif;color:var(--mut)}
@media(min-width:700px){.st-body{column-count:2;column-gap:40px;column-rule:1px solid var(--line);text-align:justify;hyphens:auto;-webkit-hyphens:auto}}
@media(min-width:1000px){.st-grid{grid-template-columns:minmax(0,1fr) 260px}}
.logo{display:inline-flex;align-items:center;gap:12px}.logo img{width:40px;height:40px;flex:none}

/* WhatsApp flutuante */
.wa-float{position:fixed;z-index:20;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;background:#128c7e;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.22);transition:transform .2s,background .2s;animation:wain .6s .8s cubic-bezier(.2,.7,.2,1) both}
.wa-float:hover{background:#0d6f64;transform:scale(1.06)}
.wa-float:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
@keyframes wain{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wa-float{animation:none}}
.car.smiles .slide img{aspect-ratio:16/10;object-fit:contain;background:var(--sand)}
.car.smiles .slide img.sig{object-fit:cover;background:#000}

/* clínica em números: animação */
.st-side dt{font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:no-preference){
.js .st-side dl>div{position:relative;opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .14s)}
.js .st-side.in dl>div{opacity:1;transform:none}
.js .st-side dl>div::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.65,0,.35,1);transition-delay:calc(var(--i) * .14s + .2s)}
.js .st-side.in dl>div::before{transform:scaleX(1)}
}
