@font-face{font-family:Manrope;src:url('/assets/fonts/manrope.woff') format('woff');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-semibold.woff') format('woff');font-weight:600;font-display:swap}@font-face{font-family:'DM Serif';src:url('/assets/fonts/dm-serif.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'DM Serif';src:url('/assets/fonts/dm-serif-italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap}
:root{--paper:#fff;--ink:#132b3e;--blue:#225b82;--cyan:#a6c4d6;--muted:#64717b;--line:#e4e9ed;--editorial:'DM Serif',Georgia,serif}body{background:#fff;font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.8;color:var(--ink)}::selection{background:#d4e7f2;color:#102d43}h1,h2{font-family:var(--editorial);letter-spacing:-.035em;line-height:1.1;font-weight:400}h1 em,h2 em{font-family:var(--editorial);color:#356b8e;font-weight:400}h2{font-size:clamp(2.75rem,4.1vw,4.65rem)}p{color:#616e79}header{height:110px;max-width:none;background:#ffffffee;backdrop-filter:blur(16px);padding:0 4.4%;border-bottom:1px solid #e9edf0;transition:height .25s,box-shadow .25s}header.scrolled{box-shadow:0 5px 25px #12304c05}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:67px;height:67px}.brand-wordmark{font-family:Manrope,Arial,sans-serif;display:block;font-size:27px;font-weight:400;letter-spacing:-.06em;line-height:1.2}.brand-wordmark>span{display:block;font-size:9px;font-weight:600;letter-spacing:.27em;color:#4d7a98;line-height:2;margin-left:2px}header nav{gap:19px;margin:0 25px}header nav>a,.nav-toggle{font-size:12px;font-weight:500}.nav-toggle{gap:5px}.nav-toggle>span{color:#5685a1}.nav-panel{background:#fff;border:1px solid #e4e9ed;box-shadow:0 14px 40px #14394e12;border-radius:0;padding:15px}.nav-panel a{font-size:14px;padding:11px 14px;border-radius:0}.button{background:#163a54;border:1px solid #163a54;border-radius:0;padding:18px 24px;font-size:13px;font-weight:600;letter-spacing:.01em;gap:27px;line-height:1.4;min-height:54px;box-shadow:none}.button:hover{background:#225c81;border-color:#225c81;transform:translateY(-2px)}.button>span{font-size:19px}.button.small{padding:13px 17px;min-height:45px;white-space:nowrap;font-size:11px;gap:15px}.button.outline{background:white;color:var(--ink);border:1px solid #b8c7d1}.button.outline:hover{background:#163a54;color:white}.text-link{font-size:12px;border-bottom:1px solid #aebfc9;padding-bottom:5px;line-height:1.6}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:600;color:#4d6a7e;margin-bottom:27px}.editorial-hero{display:grid;grid-template-columns:1.09fr 1fr;min-height:0;margin:0;padding:65px 4.4% 0;gap:0 4%;background:white;position:relative}.hero-copy{padding:20px 0 48px 0;min-width:0}.hero-kicker{display:flex;gap:25px;align-items:center;margin-bottom:43px}.hero-kicker .eyebrow{font-size:10px;margin:0;letter-spacing:.16em}.location-label{font-size:9px;letter-spacing:.12em;border-left:1px solid #d4dee5;padding-left:23px;color:#798792;white-space:nowrap}.editorial-hero h1{font-size:clamp(3.7rem,5.7vw,6.6rem);line-height:1.065;letter-spacing:-.042em;margin:0 0 30px}.hero-copy>p{font-size:15px;line-height:1.9;max-width:none;margin-bottom:32px}.hero-actions{gap:27px;flex-wrap:wrap}.hero-signature{display:flex;gap:17px;align-items:center;margin-top:46px}.signature-line{display:block;width:43px;height:1px;background:#65889f}.hero-signature>span:last-child{font-size:10px;font-weight:500;line-height:1.85;letter-spacing:.08em;color:#6e818f}.hero-visual{margin:0;position:relative;min-height:0;align-self:stretch;overflow:visible;background:#f2f7fa}.editorial-hero .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 48%;transition:transform 1.3s ease}.hero-visual:after{display:none}.hero-visual figcaption{position:absolute;left:24px;right:24px;bottom:22px;padding-top:16px;border-top:1px solid #fff9;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:1;color:#15364f}.hero-visual figcaption>span{font-size:9px;letter-spacing:.12em;font-weight:600}.hero-visual figcaption small{font-size:10px;line-height:1.4;color:#385267}.hero-image-rule{position:absolute;left:-12px;top:25px;width:24px;height:1px;background:#7096ad}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:35px;padding:19px 0;gap:20px}.hero-bottom>span{font-size:9px;letter-spacing:.15em;color:#6e7c86}.hero-bottom a{font-size:11px;display:flex;gap:20px}.hero-bottom a span{color:#467b9c;font-size:18px}.section{padding:100px 6.5%;background:#fff}.section-heading{align-items:flex-end;gap:60px;margin-bottom:48px}.section-heading>p{font-size:14px;line-height:1.9;max-width:340px;margin:0 0 6px}.section-heading .eyebrow{margin-bottom:23px}.treatment-editorial{display:grid;grid-template-columns:1fr 1.15fr;gap:6%}.consultation-frame{margin:0;position:relative;min-height:540px;background:#f5f7f8;overflow:hidden}.consultation-frame img{position:absolute;inset:0;height:100%;object-position:56% 50%;transition:transform 1.2s}.consultation-frame:hover img{transform:scale(1.025)}.consultation-frame figcaption{position:absolute;bottom:0;left:0;right:0;background:#ffffffee;backdrop-filter:blur(8px);padding:17px 22px;display:flex;justify-content:space-between;gap:15px;align-items:center}.consultation-frame figcaption>span{font-size:9px;letter-spacing:.14em}.consultation-frame figcaption small{font-size:10px;color:#72818d}.treatment-rows{border-top:1px solid #b4c6d1}.treatment-row{display:flex;gap:25px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.treatment-row:hover{padding-left:12px;background:#fafcfd}.row-number{font-size:11px;color:#7e96a6;align-self:flex-start;margin-top:8px;min-width:18px}.treatment-row h3{font-family:var(--editorial);font-size:32px;letter-spacing:-.02em;line-height:1.15;margin-bottom:10px}.treatment-row p{font-size:13px;line-height:1.7;margin:0}.row-arrow{margin-left:auto;padding-left:10px;font-size:23px;color:#5b8098}.all-treatments{display:flex;justify-content:space-between;font-size:12px;padding:23px 0;gap:25px;color:#385a71}.all-treatments:hover{color:#1d7aa5}.about{background:#fff;grid-template-columns:1fr 1fr;padding:30px 6.5% 100px;gap:8%;align-items:center}.about-photo{height:630px;max-height:none;background:#f1f3f5;position:relative}.about-photo img{object-position:center 25%;height:100%}.about-copy{padding:15px 0;align-self:center}.about h2{margin-bottom:30px}.about p{font-size:14px;line-height:1.95;max-width:470px}.doctor{padding:23px 0;margin-top:32px;border-color:var(--line)}.doctor strong{font-family:var(--editorial);font-size:27px}.doctor span{font-size:12px;color:#70808b}.about .button{margin-top:10px}.clinic{border-top:1px solid var(--line);padding-top:85px}.architectural-gallery{display:grid;grid-template-columns:1.08fr 1fr 1fr;gap:26px}.architectural-gallery figure{padding:0!important}.architectural-gallery figure:nth-child(2){margin-top:65px}.architectural-gallery figure:nth-child(3){margin-top:125px}.architectural-gallery img,.architectural-gallery figure:nth-child(2) img{height:420px;width:100%;object-fit:cover;object-position:center 50%}.architectural-gallery figcaption{font-size:12px;color:#627481;line-height:1.8;padding-top:18px}.architectural-gallery figcaption span{display:block;font-size:9px;letter-spacing:.15em;color:#3c6079;margin-bottom:6px}.journey{background:#fff;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:80px;padding-bottom:75px}.journey em{color:#356b8e}.journey h2{font-size:clamp(2.4rem,3.8vw,4rem)}.steps{gap:55px;margin-top:50px}.steps>div{border-color:#d7e0e6;padding-top:20px}.steps span{color:#7994a5;font-size:11px}.steps h3{font-family:var(--editorial);font-size:27px;margin:23px 0 16px}.steps p{font-size:14px;line-height:1.9;color:#677681;max-width:none}.articles{gap:35px}.article{border:0;border-top:1px solid #beced8;background:#fff;padding:26px 0 18px;border-radius:0;transition:border-color .25s}.article:hover{background:#fff;border-color:#153e5a}.article .eyebrow{font-size:10px;letter-spacing:.08em;color:#7c909e}.article h3{font-family:var(--editorial);font-size:29px;margin:16px 0 24px;line-height:1.25;letter-spacing:-.02em}.article p{font-size:14px;line-height:1.9}.article .service-link{font-size:12px;margin-top:24px;border-top:1px solid #edf1f4;padding-top:18px}.contact{background:white;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:85px 6.5%;gap:9%}.contact>div>p{font-size:15px;line-height:1.9}.contact h2{font-size:clamp(3rem,4.6vw,5rem)}.contact-details{border-color:var(--line);padding-left:50px}.contact-details h3{font-family:var(--editorial);font-size:31px}.contact-details address{font-size:14px;line-height:2}.contact-grid{border-color:var(--line)}.contact-grid span{font-size:10px;letter-spacing:.15em}.contact-grid p{font-size:13px}footer{background:#fff;color:#223f52;padding:65px 6.5% 28px}footer .wordmark{font-family:Manrope,Arial,sans-serif;color:#203f56;font-size:39px}footer .wordmark span{color:#477994;font-size:10px}footer p{color:#6a7a86;font-size:13px}footer h3{font-size:12px;color:#466275}.footer-top{grid-template-columns:1.2fr .9fr 1.2fr;gap:60px}.footer-bottom{border-color:var(--line);color:#73838e;font-size:11px;padding-top:24px;padding-bottom:35px}.footer-bottom .privacy-settings{font-size:11px}.floating{background:#fff;color:#173d56;border:1px solid #bdccd6;box-shadow:0 6px 25px #1e425316;border-radius:0;padding:12px 17px;right:22px;bottom:22px;font-size:12px}.floating:hover{background:#163a54;color:white}.consent{border-radius:0;box-shadow:0 0 50px #082e4a16;padding:22px;bottom:12px}.consent .button{min-height:42px}.consent>button{border-radius:0!important}.treatment-hero{background:#fff;padding:65px 6.5%;gap:6%;grid-template-columns:1.1fr 1fr;border-bottom:1px solid var(--line)}.treatment-hero>div{padding:0}.treatment-hero h1{font-size:clamp(3rem,4.8vw,5.3rem)}.treatment-hero p{font-size:15px;line-height:1.9}.treatment-hero>img{height:100%;min-height:530px;object-position:58% center}.treatment-body{gap:8%}.treatment-body h3{font-family:var(--editorial);font-size:28px}.treatment-body p{font-size:15px;line-height:1.9}.faq{background:white;border-top:1px solid var(--line)}.faq details{border-color:var(--line);padding:25px 0}.faq summary{font-size:16px}.faq details p{font-size:15px}.reading{max-width:1000px;padding-top:70px;padding-bottom:80px}.reading h1{font-family:var(--editorial);line-height:1.15;font-size:clamp(2.8rem,4.5vw,4.4rem)}.legacy-content{line-height:1.9}.legacy-content h2,.legacy-content h3,.legacy-content h4{font-family:var(--editorial);font-size:29px;letter-spacing:-.02em}.legacy-content p{font-size:16px;line-height:1.95}.archive-note{background:#fff;border:1px solid #e0e8ed;border-left:2px solid #9dbaca;padding:22px 25px}.archive-note p{font-size:13px}.archive-note strong{font-size:13px}.article-meta{font-size:12px;letter-spacing:.02em}.blog-utility{font-size:12px;gap:25px;margin-top:35px}.blog-utility a{font-size:12px}.blog-intro>h1{font-size:clamp(3rem,5vw,5.2rem)}.blog-intro>.articles{margin-top:40px}.pagination a{border-radius:0;font-size:14px}.pagination a[aria-current]{background:#163a54}.current-doctor{background:#fff;border:1px solid #dce6ec;border-left:2px solid #85a7bd}.current-doctor h2{font-family:var(--editorial)}.directory-photo{margin:35px 0 45px;position:relative}.directory-photo img{height:340px;object-fit:cover;object-position:center 50%}.directory-photo figcaption{font-size:10px;color:#84939d;margin-top:10px;text-align:right}.services{border-color:var(--line)}.service{border-color:var(--line)}.service:hover{background:#fcfdfe}.service h3{font-family:var(--editorial)}.legal{background:#fff}.legal h2{font-family:var(--editorial);font-size:28px}.contact-heading{padding-bottom:25px}.treatment-directory a{font-family:var(--editorial);font-size:24px;line-height:1.3;padding:23px 0}.history-heading,.history-profiles h2{font-family:var(--editorial)}
@media(min-width:1600px){.editorial-hero{padding-top:80px;gap:5%;grid-template-columns:1fr 1fr}.hero-copy{padding-bottom:65px}.editorial-hero h1{font-size:7.1rem}.hero-kicker{margin-bottom:48px}.hero-visual{min-height:0}.hero-copy>p{font-size:17px}.section,.contact{padding-left:8%;padding-right:8%}.about{padding-left:8%;padding-right:8%}.hero-signature{margin-top:55px}}
@media(max-width:1320px){.brand-wordmark{display:none}header nav{gap:16px;margin:0 20px}.editorial-hero h1{font-size:5.5vw}.hero-kicker{gap:13px}.location-label{padding-left:13px;font-size:8px}.hero-kicker .eyebrow{font-size:9px}.hero-actions{gap:18px}.hero-copy{padding-bottom:35px}.hero-signature{margin-top:36px}.treatment-row{gap:18px;padding:24px 0}.treatment-row h3{font-size:29px}.consultation-frame{min-height:490px}.about-photo{height:570px}.architectural-gallery img,.architectural-gallery figure:nth-child(2) img{height:350px}}
@media(max-width:1200px){header{height:90px;padding:0 5%}.brand-wordmark{display:block}.brand img{width:61px;height:61px}header>.small{margin-left:auto;margin-right:20px}.button.small{padding:12px 18px;font-size:12px}header nav{top:90px;margin:0;max-height:calc(100dvh - 90px);padding:20px 6%;background:white}header nav>a,.nav-toggle{font-size:15px;white-space:normal}.nav-panel{padding:0 10px;border-left:1px solid #b8ceda}.nav-panel a{padding:12px}.menu{font-size:23px}.hero-visual figcaption{left:18px;right:18px;gap:10px;display:block}.hero-visual figcaption small{display:block;margin-top:5px}.hero-bottom>span{font-size:8px}.hero-copy>p{font-size:14px}.hero-actions>.text-link{font-size:11px}.hero-actions>.button{font-size:12px;padding:17px 20px}.treatment-editorial{gap:5%}.section{padding:80px 6%}.about{padding:10px 6% 80px;gap:6%}.about-photo{height:540px}.contact{padding:70px 6%;gap:5%}.contact-details{padding-left:30px}.treatment-hero{padding:45px 6%;gap:5%}}
@media(max-width:900px){.editorial-hero{padding-top:40px;gap:4%;grid-template-columns:1.05fr 1fr}.hero-kicker{display:block;margin-bottom:30px}.location-label{display:block;border:0;padding:8px 0 0;letter-spacing:.13em;font-size:9px}.editorial-hero h1{font-size:5.8vw}.hero-copy{padding-top:5px}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px}.hero-signature{margin-top:30px}.hero-bottom>span:last-child{display:none}.section-heading>p{max-width:280px}.treatment-editorial{grid-template-columns:.9fr 1fr}.treatment-row h3{font-size:25px}.treatment-row p{font-size:12px}.row-number{display:none}.about-photo{height:500px}.about h2{font-size:3.2rem}.about p{font-size:13px}.architectural-gallery{gap:17px}.architectural-gallery img,.architectural-gallery figure:nth-child(2) img{height:290px}.architectural-gallery figure:nth-child(3){margin-top:80px}.architectural-gallery figure:nth-child(2){margin-top:40px}.articles{gap:25px}.article h3{font-size:25px}.treatment-hero>img{min-height:500px}.footer-top{gap:30px}}
@media(max-width:760px){header{height:85px;padding:0 5%}.brand img{width:55px;height:55px}.brand-wordmark{font-size:22px}.brand-wordmark>span{font-size:7px}.brand{gap:8px}.button.small{font-size:10px;padding:10px 12px;min-height:40px;gap:8px}header>.small{margin-right:10px}.menu{padding:8px;font-size:22px}header nav{top:85px;max-height:calc(100dvh - 85px);padding:15px 7%}.nav-toggle{padding:14px 0}.editorial-hero{display:flex;flex-direction:column;padding:35px 6% 0;gap:0}.hero-copy{padding:0 0 35px}.hero-kicker{display:flex;justify-content:space-between;align-items:center;margin-bottom:31px;gap:12px}.hero-kicker .eyebrow{font-size:9px;letter-spacing:.12em}.location-label{font-size:8px;padding:0;letter-spacing:.07em}.editorial-hero h1{font-size:clamp(3.25rem,10.8vw,5.2rem);line-height:1.07;margin-bottom:24px}.editorial-hero h1 br{display:block!important}.hero-copy>p{font-size:14px;line-height:1.9;margin-bottom:26px}.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:22px}.hero-actions>.button{font-size:11px;padding:16px 18px;min-height:49px;gap:20px}.hero-actions>.text-link{font-size:10px}.hero-signature{margin-top:29px;gap:15px}.signature-line{width:30px}.hero-signature>span:last-child{font-size:8px;letter-spacing:.1em}.hero-visual{width:100%;height:360px;min-height:0;align-self:auto}.editorial-hero .hero-photo{object-position:65% center}.hero-visual figcaption{left:19px;right:19px;bottom:18px;display:flex;align-items:center}.hero-visual figcaption>span{font-size:8px}.hero-visual figcaption small{font-size:9px;margin-top:0}.hero-image-rule{top:20px;left:-8px;width:16px}.hero-bottom{margin-top:23px;padding:15px 0;gap:15px}.hero-bottom>span{font-size:7px;letter-spacing:.09em;max-width:140px}.hero-bottom a{font-size:10px;gap:15px}.section{padding:65px 7%}.eyebrow{font-size:10px;letter-spacing:.15em;margin-bottom:23px}h2{font-size:2.8rem;line-height:1.1}.section-heading{display:block;margin-bottom:33px}.section-heading>p{max-width:none;font-size:14px;line-height:1.9;margin-top:23px}.section-heading .text-link{margin-top:25px;font-size:12px}.treatment-editorial{grid-template-columns:1fr;gap:28px}.consultation-frame{height:300px;min-height:0}.consultation-frame img{object-position:55% 50%}.consultation-frame figcaption{padding:14px 17px}.consultation-frame figcaption span{font-size:8px}.consultation-frame figcaption small{font-size:9px}.treatment-row{padding:24px 0;gap:18px}.row-number{display:block;font-size:10px;margin-top:5px}.treatment-row h3{font-size:29px;line-height:1.15;margin-bottom:9px}.treatment-row p{font-size:13px;line-height:1.7}.row-arrow{font-size:20px;padding-left:4px}.all-treatments{font-size:12px;padding:21px 0}.about{display:flex;flex-direction:column;padding:10px 7% 65px;gap:35px}.about-photo{width:100%;height:460px}.about-photo img{object-position:center 24%}.about-copy{padding:0;width:100%}.about h2{font-size:2.9rem}.about p{font-size:14px;max-width:none;line-height:1.9}.doctor{margin-top:25px}.about .button{font-size:12px}.clinic{padding-top:60px}.architectural-gallery{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px}.architectural-gallery figure:nth-child(1){grid-column:1/-1}.architectural-gallery figure:nth-child(2),.architectural-gallery figure:nth-child(3){margin-top:0}.architectural-gallery figure:nth-child(1) img{height:380px;object-position:center 44%}.architectural-gallery figure:nth-child(2) img,.architectural-gallery figure:nth-child(3) img{height:260px}.architectural-gallery figcaption{font-size:11px;padding-top:13px;line-height:1.7}.architectural-gallery figcaption span{font-size:8px;letter-spacing:.12em;margin-bottom:5px}.journey{padding-top:60px;padding-bottom:50px}.journey h2{font-size:2.55rem}.steps{gap:25px;margin-top:35px}.steps h3{font-size:28px;margin:15px 0}.steps p{font-size:14px;margin-bottom:0}.articles{gap:22px}.article{padding:24px 0 8px}.article h3{font-size:29px;line-height:1.2;margin:14px 0 18px}.article p{font-size:14px;margin-bottom:10px}.article .service-link{margin-top:16px;padding-top:13px}.contact{padding:60px 7%;gap:35px}.contact h2{font-size:3.3rem}.contact>div>p{font-size:14px}.contact-details{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:32px}.contact-details h3{font-size:29px;margin-bottom:22px}.contact-details address{font-size:14px}.contact-grid{margin-top:30px;gap:22px;flex-direction:row}.contact-grid span{font-size:9px}.contact-grid p{font-size:12px}footer{padding:50px 7% 24px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-top>div:last-child{grid-column:1/-1}.footer-bottom{padding-bottom:65px;font-size:10px}.floating{right:15px;bottom:15px;padding:10px 14px;font-size:11px}.floating svg{width:21px;height:21px}.consent{padding:18px;gap:10px}.consent p{font-size:12px}.consent>button{font-size:11px;white-space:normal}.treatment-hero{display:flex;flex-direction:column;padding:40px 7%;gap:35px}.treatment-hero h1{font-size:3rem}.treatment-hero>img{height:300px;min-height:0;object-position:center}.treatment-hero>div{padding:0}.treatment-body h3{font-size:27px}.treatment-body p{font-size:15px}.reading{padding-top:40px}.reading h1{font-size:2.65rem;line-height:1.16}.legacy-content h2,.legacy-content h3,.legacy-content h4{font-size:25px}.legacy-content p{font-size:16px;line-height:1.9}.directory-photo img{height:250px}.archive-note{padding:18px}.archive-note p{font-size:12px}.blog-intro>h1{font-size:3rem}.blog-utility{gap:13px 20px}.blog-utility a{font-size:11px}.treatment-directory a{font-size:24px}.contact-heading{padding-bottom:20px}}
@media(max-width:380px){.brand-wordmark{display:none}.hero-kicker{gap:8px}.hero-kicker .eyebrow{font-size:8px}.location-label{font-size:7px}.editorial-hero h1{font-size:3rem}.hero-actions{gap:16px}.hero-visual{height:310px}.hero-bottom>span{max-width:105px}.contact-grid{flex-direction:column}.treatment-row h3{font-size:26px}.hero-visual figcaption{display:block}.hero-visual figcaption small{margin-top:4px}}
@media(prefers-reduced-motion:no-preference){.hero-copy{animation:editorial-entry .7s ease-out both}.hero-visual{animation:editorial-entry .85s .06s ease-out both}@keyframes editorial-entry{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
/* ============================================================================
   ESCALA TIPOGRAFICA — camada final (Visivia, 06/09/2026)
   ----------------------------------------------------------------------------
   SUBSTITUI o bloco anterior "Keep the editorial scale legible on every viewport".
   As regras que NAO eram de tamanho (letter-spacing, flex, alturas, margens) foram
   preservadas na integra mais abaixo; so os font-size foram reescritos.

   POR QUE: o site tinha manchete de ate 113px convivendo com 171 trechos de texto
   em 12, 13 e 14px — cinco degraus (12/13/14/15/16) espremidos num intervalo de
   1,33x, o que nao produz hierarquia, produz borrao. E o publico da Personal e o
   morador da Mooca de 60 anos ou mais (19,8% -> 26,5% da subprefeitura, SEADE) que
   procura protese e implante. Texto de 12px e a pagina que ele nao consegue ler.

   COMO: quatro degraus com papel declarado, em rem — assim a escala respeita o
   tamanho de fonte que a pessoa configurou no proprio navegador, o que px ignora.
   Nada de layout muda: so o tamanho do texto.
   ============================================================================ */
:root{
  --t-micro:.8125rem; /* 13px — rotulo em caixa alta com tracking, legenda de foto */
  --t-ui:1rem;        /* 16px — navegacao, botao, link de acao, contato, rodape    */
  --t-body:1.125rem;  /* 18px — todo paragrafo de apoio                            */
  --t-read:1.25rem;   /* 20px — corpo de leitura longa (artigos do blog)           */
}

/* --- MICRO: rotulo em caixa alta, numeracao e legenda de imagem --------------- */
.eyebrow,.hero-kicker .eyebrow,.location-label,.hero-signature>span:last-child,
.hero-bottom>span,.hero-visual figcaption>span,.hero-visual figcaption small,
.consultation-frame figcaption>span,.consultation-frame figcaption small,
.article .eyebrow,.architectural-gallery figcaption,.architectural-gallery figcaption span,
.contact-grid span,.directory-photo figcaption,.gallery figcaption,
.row-number,.steps span,.index,.values,.vertical-label,.hero-proof>span:last-child,
.photo-tag span,.doctor span,.article-meta,
.team-cro>span,.team-atuacao>span,.about-photo>figcaption>span{font-size:var(--t-micro)}

/* --- UI: tudo que a pessoa clica, mais contato e rodape ----------------------- */
header nav>a,.nav-toggle,.nav-panel a,
.button,.button.small,.button.outline,.hero-actions>.button,.legal .button,
.text-link,.hero-actions>.text-link,.section-heading .text-link,
.all-treatments,.service-link,.article .service-link,.blog-utility,.blog-utility a,
.hero-bottom a,
.pagination a,.breadcrumb,.floating,
.contact-details address,.contact-grid p,
footer p,footer h3,footer .footer-top>div>a:not(.wordmark),
.footer-bottom,.footer-bottom .privacy-settings,.privacy-settings,
.consent p,.consent>button,.archive-note p,.archive-note strong,
.clinical-note,.blog-note p{font-size:var(--t-ui)}
/* A linha do CRO nao entra em nenhum dos degraus acima de proposito: e o unico dado da
   pagina que a norma EXIGE estar visivel e que o leitor pode querer CONFERIR digito a
   digito. Vai um degrau acima do corpo, em Manrope semibold e com tracking positivo —
   algarismo em serifada com letter-spacing negativo e dificil de conferir, e conferir e
   a funcao dele. */
.team-cro>b{font-size:1.25rem}

/* --- BODY: paragrafo de apoio ------------------------------------------------- */
.hero-copy>p,.section-heading>p,.treatment-row p,.about p,.steps p,.article p,
.contact>div>p,.treatment-hero p,.treatment-body p,.intro-text,
summary,.faq summary,.faq details p,
.team-role,.team-formacao li,.history-profiles p,.team-atuacao,.about-photo>figcaption{font-size:var(--t-body)}

/* --- READ: leitura longa ------------------------------------------------------ */
.legacy-content,.legacy-content p,.legacy-content li{font-size:var(--t-read)}

/* --- Logotipo. Nao e texto de conteudo, e um lockup: o subtitulo precisa caber
       na largura da palavra "Personal". Ainda assim 9px (e 7px no celular) era
       ilegivel; sobe ao maximo que o lockup comporta. ---------------------------- */
.brand-wordmark>span{font-size:.625rem}      /* 10px — cabe sob "Personal" de 27px */
footer .wordmark span{font-size:.75rem}      /* 12px — o lockup do rodape e maior (39px) e comporta */

/* --- Alinhamento da navegacao. Os <a> sao filhos diretos de um flex com
       align-items padrao (stretch): esticavam ate a altura do .nav-group (51px) e
       o texto ficava colado no topo, ~9px acima de "Quem somos" e "Tratamentos",
       que sao botoes centralizados. O menu ficava visivelmente torto. ----------- */
header nav{align-items:center}

/* --- Regras NAO tipograficas herdadas do bloco anterior, preservadas ---------- */
.hero-kicker{flex-wrap:wrap;gap:10px 20px}
.hero-bottom>span{letter-spacing:.07em}
.hero-visual figcaption{flex-wrap:wrap}
.hero-visual figcaption small{color:#254862}
.hero-signature>span:last-child{letter-spacing:.035em}
.hero-kicker .eyebrow{letter-spacing:.1em}
.location-label{letter-spacing:.05em}

@media(max-width:1320px){
  .hero-bottom>span:last-child{display:none}
  .hero-signature{margin-top:30px}
}

/* --- Cabecalho no celular. Medido: com o CTA em 16px, o conjunto logo + lockup
       "Personal ODONTOLOGIA" + botao + hamburguer nao cabe numa tela de 390px — o
       hamburguer saia inteiro para fora e a pagina ganhava 35px de rolagem lateral.
       O proprio design ja resolvia isso escondendo o lockup, mas so abaixo de 380px.
       Subir o limite para 480px devolve o cabecalho inteiro na tela: o selo circular
       da marca ja traz a palavra "Personal", e o que a pessoa precisa enxergar no
       celular e o botao de agendar. Verificado com rolagem lateral ZERO de 320px a
       768px. --------------------------------------------------------------------- */
@media(max-width:480px){
  .brand-wordmark{display:none}
  /* clinicapersonalodontologia@gmail.com tem 37 caracteres sem ponto de quebra: a 18px
     ele precisa de 330px e so ha 311px na coluna do celular, entao quebrava no meio da
     palavra e sobrava um "m." orfao numa linha so. A 16px ocupa 294px e cabe inteiro.
     Vale so para o endereco de e-mail, o resto do paragrafo continua em 18px. */
  a[href^="mailto:"]{font-size:var(--t-ui)}
}
@media(max-width:360px){
  /* Telas de 320-360px (iPhone SE) ainda ficavam 1px acima do limite. */
  .button.small{font-size:.875rem}
}

@media(max-width:760px){
  /* Leitura longa cede um degrau: 20px numa coluna de ~340px deixaria a linha
     curta demais. Os demais degraus NAO diminuem — tela pequena e onde o texto
     grande mais importa. */
  :root{--t-read:1.1875rem} /* 19px */
  .hero-kicker{display:block}
  .location-label{padding-top:8px}
  .hero-bottom>span{max-width:180px}
  .hero-visual figcaption{display:block}
  .hero-visual figcaption small{margin-top:7px}
  .hero-actions{gap:22px}
  .treatment-row{gap:15px}
  .treatment-row h3{font-size:29px}
  .row-number{display:none}
  .contact-grid{flex-wrap:wrap}
  .consultation-frame figcaption{flex-wrap:wrap;gap:5px}
  .hero-visual{height:390px}
}

/* ============================================================================
   /nossa-equipe/ — fichas dos profissionais           Visivia, 08/09/2026

   FORMA: linha empilhada (retrato a esquerda, credencial a direita), regua de
   1px entre linhas. Nao e a grade .articles de 3 colunas, e a razao e de
   conteudo, nao de gosto: o numero de fichas VARIA por decisao de conformidade
   (quem nao tem CRO nao entra), e numa grade de 3 cada ausencia vira celula
   vazia. Linha empilhada le igual com 1, 2 ou 5 fichas.

   O idioma ja e do site: .treatment-row e .faq usam a mesma regua fina sem
   caixa, sem raio e sem sombra. Nenhum token novo — as cores, a regua e a
   serifada vem das variaveis que ja existem no topo deste arquivo.

   PROPORCAO 2:3 nos retratos: e a proporcao NATIVA dos quatro originais. Nao
   ha recorte, entao nenhuma foto perde a cabeca, o jaleco ou o nome bordado
   que identifica a pessoa. E o motivo de as alturas serem 390/315/360px.
   ============================================================================ */
.team-roster{margin:52px 0 0;border-top:1px solid #b4c6d1}
.team-row{display:flex;gap:44px;align-items:flex-start;padding:44px 0;border-bottom:1px solid var(--line)}
.team-portrait{flex:0 0 260px;margin:0;padding:0;background:#f1f3f5}
.team-portrait img{display:block;width:100%;height:390px;object-fit:cover;object-position:center 22%}
.team-body{flex:1;min-width:0;max-width:38rem;padding-top:4px}
.team-body h2{font-family:var(--editorial);font-size:2.05rem;line-height:1.15;letter-spacing:-.02em;margin:0}
.team-role{margin:10px 0 0;color:#4d6a7e}
.team-cro{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);display:block}
.team-cro>span{display:block;text-transform:uppercase;letter-spacing:.2em;font-weight:600;color:#7c909e;margin-bottom:7px}
.team-cro>b{display:block;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.team-formacao{margin:22px 0 0;padding:0;list-style:none;color:#616e79}
.team-formacao li{position:relative;padding-left:22px;margin-bottom:9px;line-height:1.65}
.team-formacao li:last-child{margin-bottom:0}
.team-formacao li::before{content:"";position:absolute;left:0;top:.72em;width:11px;height:1px;background:#b4c6d1}
.team-body>.text-link{display:inline-block;margin-top:24px}
/* O fecho de acervo reaproveita .history-profiles, o mesmo bloco que /quem-somos/ ja
   publica desde 06/09 — a regua superior dele encosta na regua inferior da ultima ficha,
   entao esta perde a sua. */
.team-roster+.history-profiles{margin-top:0}
.history-profiles p{max-width:44rem}
.team-row:last-child{border-bottom:0}

@media(max-width:1200px){
  .team-row{gap:34px;padding:38px 0}
  .team-portrait{flex-basis:210px}
  .team-portrait img{height:315px}
  .team-body h2{font-size:1.85rem}
}
@media(max-width:760px){
  /* Empilha. O retrato para de ser uma coluna estreita e vira um bloco de 240px de
     largura alinhado a esquerda: maior que a miniatura de 210px do tablet, porque no
     celular a foto e a unica pista visual de quem e a pessoa. */
  .team-roster{margin-top:38px}
  .team-row{display:block;padding:34px 0}
  .team-portrait{width:240px;max-width:70%}
  .team-portrait img{height:360px}
  .team-body{padding-top:24px}
  .team-body h2{font-size:1.75rem}
  .team-cro{margin-top:20px;padding-top:16px}
}

/* ============================================================================
   Retrato do dono da clínica na home                Visivia, 08/09/2026

   É o Dr. Lucas Estácio Huck. A foto sempre foi dele — o que faltava era dizer isso.
   O defeito nunca foi a imagem: era um rosto SEM identificação encostado no bloco
   "Dr. Gustavo Issas · Responsável técnico · CRO-SP 47795", o que fazia o visitante
   ler a foto e o nome como a mesma pessoa. Com legenda nomeando quem está na foto,
   e o bloco do RT logo abaixo nomeando o outro, a ambiguidade some.

   O teto de 452px que existiu aqui por algumas horas foi embora junto: ele protegia
   contra ampliar o retrato pequeno do Dr. Gustavo, e este original tem 1086px — mais
   que a coluna pede em qualquer viewport. Volta a preencher.
   ============================================================================ */
.about-photo{display:flex;flex-direction:column;margin:0;background:#f1f3f5}
.about-photo>picture{display:block;flex:1 1 auto;min-height:0}
.about-photo>picture>img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.about-photo>figcaption{flex:0 0 auto;padding:16px 2px 0;line-height:1.45;color:var(--ink);font-weight:600;background:#fff}
.about-photo>figcaption>span{display:block;font-weight:400;color:#7c909e;letter-spacing:.02em;margin-top:3px}

/* A linha de ATUAÇÃO da ficha usa a mesma anatomia da linha do CRO: rótulo miúdo em caixa
   alta sobre o valor em corpo de leitura. Atuação descreve o que a pessoa faz — não é
   título, e por isso não ganha o destaque tipográfico que o número do CRO tem. */
.team-atuacao{margin:18px 0 0}
.team-atuacao>span{display:block;text-transform:uppercase;letter-spacing:.2em;font-weight:600;color:#7c909e;margin-bottom:5px}

/* ============================================================================
   Correções objetivas de acessibilidade e conversão          Visivia, 14/09/2026

   Saíram da revisão de UX/acessibilidade feita na virada para personalodontologiamooca.com.
   Só cor, tamanho de alvo e empilhamento: nenhum texto, rota, imagem ou decisão de conteúdo
   muda. Camada no FIM do arquivo de propósito — sobrescreve pela ordem, sem tocar nas regras
   anteriores, e sai inteira se precisar reverter.
   ============================================================================ */

/* C2. Contraste mínimo de 4,5:1 (WCAG 1.4.3) nos textos secundários. Os piores casos eram
   justamente os que o CFO exige visíveis: a linha do responsável técnico no rodapé (3,9:1)
   e o CRO sob a foto (3,3:1). Um tom só para todos, em vez de seis cinzas parecidos. */
.footer-bottom,footer p,
.about-photo>figcaption>span,.team-cro>span,.team-atuacao>span,
.doctor span,.location-label,.article .eyebrow,
.hero-signature>span:last-child,.hero-bottom>span,
.consultation-frame figcaption small,.directory-photo figcaption,
.steps span,.row-number{color:#56697a}
a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:#225b82}

/* C5. Telefone e e-mail com cara de link (WCAG 1.4.1): antes eram texto cinza sem sublinhado. */
a[href^="tel:"],a[href^="mailto:"]{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.contact-grid a[href^="tel:"],.contact-grid a[href^="mailto:"],.intro-text a{color:var(--ink)}

/* C6. Os dois textos que ficaram fora da escala tipográfica de 06/09 (estavam em 14px). */
.service p{font-size:var(--t-body)}
.article-next a{font-size:var(--t-ui)}

/* C4. Menu do celular: o botão flutuante não fica por cima dos itens, e o botão do menu tem
   pelo menos 44x44px (antes 36x56). O menu já marca aria-expanded; nenhum JS novo. */
body:has(.menu[aria-expanded="true"]) .floating{display:none}
.menu{min-width:44px;min-height:44px}

/* C1. Aviso de cookies na primeira visita. No celular ele ocupava um terço da tela e tampava o
   botão principal "Agendar uma avaliação"; o flutuante ficava escondido atrás dele.
   - celular: aviso compacto, os dois botões lado a lado com 44px, e o flutuante sai de cena só
     enquanto o aviso está aberto (o botão principal do topo continua visível e clicável);
   - computador: o flutuante sobe acima do aviso em vez de ficar atrás dele. */
@media(max-width:760px){
  .consent{left:8px;right:8px;width:auto;bottom:8px;padding:12px 14px;gap:10px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .consent>div{grid-column:1/-1}
  .consent>button{min-height:44px;width:100%;margin:0;padding:10px 8px;line-height:1.25;white-space:normal}
  .consent p{margin-top:2px}
  body:has(.consent:not([hidden])) .floating{display:none}
}
@media(min-width:761px){
  body:has(.consent:not([hidden])) .floating{bottom:calc(15px + var(--consent-offset,150px))}
}
html:has(.consent:not([hidden])){scroll-padding-bottom:200px}
