@font-face{font-family:Jost;src:url('/assets/Jost.woff2') format('woff2'),url('/assets/Jost.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--olive:#363725;--olive-deep:#25271d;--olive-brand:#8d8a59;--rose:#deb8ad;--terra:#96504d;--paper:#f4efe7;--white:#fffaf5;--ink:#363725;--muted:#686657;--line:#dcd7ca;--wrap:1240px}
*{box-sizing:border-box}html{scroll-padding-top:120px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Jost,Arial,sans-serif;font-size:17px;font-weight:400;line-height:1.65;-webkit-font-smoothing:antialiased}body,button,a{-webkit-tap-highlight-color:transparent}img,video{max-width:100%;display:block}img{height:auto}picture{display:block}button,a{-webkit-touch-callout:default}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;line-height:1.12;letter-spacing:-.035em}h1{font-size:clamp(48px,5.2vw,76px)}h2{font-size:clamp(36px,3.6vw,52px)}h3{font-size:26px}p+p{margin-top:18px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--terra);outline-offset:6px}.site-header :focus-visible,.hero :focus-visible,.inner-hero :focus-visible,.site-footer :focus-visible,.contact-section :focus-visible{outline-color:var(--rose)}::selection{background:var(--rose);color:var(--olive-deep)}[hidden]{display:none!important}.wrap{width:min(var(--wrap),calc(100% - 96px));margin-inline:auto}.section{padding:112px 0}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.18em;line-height:1.6;margin-bottom:23px;text-transform:uppercase;color:var(--terra)}.lead{font-size:23px;line-height:1.5;letter-spacing:-.018em}.lead.light{color:var(--white)}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;padding:15px 23px;background:var(--terra);color:#fff;font-size:15px;font-weight:500;border:1px solid var(--terra);border-radius:4px;min-height:54px;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:#7d3f3d;border-color:#7d3f3d;transform:translateY(-2px)}.button>span:last-child{font-size:23px;line-height:1}.button-small{padding:12px 18px;min-height:44px;font-size:14px;gap:22px}.button-outline{background:transparent;color:var(--ink);border-color:#aaa998}.button-outline:hover{background:var(--olive);color:var(--white);border-color:var(--olive)}.button-row{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:15px;font-weight:500;padding:8px 0;border-bottom:1px solid currentColor;line-height:1.5}.text-link span{font-size:23px}.text-link:hover{color:var(--terra)}.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-150%);background:var(--white);color:var(--olive);padding:12px 20px;z-index:100}.skip-link:focus{transform:none}main:focus{outline:none}.brand-mark{pointer-events:none}
/* Header */
.site-header{position:sticky;top:0;z-index:30;background:var(--olive);color:var(--white);border-bottom:1px solid #ffffff16}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:108px;gap:32px}.brand-link{display:block;width:172px;flex-shrink:0;padding:8px 0}.brand-link img{width:100%;height:88px;object-fit:contain}#main-nav{display:flex;align-items:center;gap:31px}#main-nav .nav-link{font-size:14px;color:#e6e0d4;padding:11px 0;position:relative}#main-nav .nav-link:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .2s}#main-nav .nav-link[aria-current]:after,#main-nav .nav-link:hover:after{transform:scaleX(1)}#main-nav .nav-link[aria-current]{color:var(--rose)}.nav-group{position:relative;display:flex;align-items:center;gap:2px}.submenu-toggle{display:grid;place-items:center;width:28px;height:44px;padding:0;border:0;background:transparent;color:#e6e0d4}.submenu-toggle span{width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s}.submenu-toggle[aria-expanded=true] span{transform:translateY(2px) rotate(225deg)}.submenu{position:absolute;top:100%;left:-20px;z-index:2;display:none;flex-direction:column;min-width:270px;padding:10px 0;background:var(--olive-deep);border:1px solid #ffffff22;border-radius:6px;box-shadow:0 20px 35px #0004}.submenu a{padding:10px 20px;font-size:14px;color:#e6e0d4}.submenu a:hover,.submenu a[aria-current]{color:var(--rose)}.nav-group.is-open .submenu{display:flex}@media(hover:hover) and (min-width:701px){.nav-group:hover .submenu{display:flex}}.menu-toggle{display:none}
/* First screen */
.hero{background:var(--olive);color:var(--white);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr .92fr;gap:clamp(48px,6vw,96px);align-items:center;padding-top:58px;padding-bottom:60px}.hero .eyebrow{color:var(--rose);font-size:11px;letter-spacing:.15em}.hero h1{font-size:clamp(58px,5.9vw,84px);line-height:1.02;letter-spacing:-.055em}.hero h1 em{color:var(--rose);letter-spacing:-.065em}.hero-description{max-width:440px;margin:27px 0 30px;color:#e3dfd3;font-size:18px;line-height:1.65}.hero-secondary{font-size:13px;display:inline-flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #b9b09a}.hero-secondary:hover{color:var(--rose)}.hero-portrait{position:relative;min-width:0}.portrait-frame{height:620px;max-height:64vw;border-radius:180px 180px 10px 10px;overflow:hidden;background:#958b73;position:relative;z-index:1}.portrait-frame picture,.portrait-frame img{width:100%;height:100%}.portrait-frame img{object-fit:cover;object-position:50% 37%}.portrait-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:15px;font-size:12px;color:#ccc6b5}.portrait-caption span:first-child{color:var(--rose);font-size:15px}.hero-watermark{position:absolute;width:270px;right:-118px;bottom:40px;opacity:.11;z-index:0;transform:rotate(12deg)}.hero-bottom{display:flex;justify-content:space-between;gap:25px;align-items:center;border-top:1px solid #ffffff20;min-height:71px;font-size:12px;letter-spacing:.025em;color:#d4cdbd}.hero-bottom a{display:flex;align-items:center;gap:30px;color:var(--rose)}.hero-bottom a span{font-size:20px}.hero-signature{display:flex;align-items:center;gap:18px;margin-top:31px}.brand-film{width:154px;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;border:1px solid #b5a38c35;border-radius:4px;flex-shrink:0;background:radial-gradient(ellipse at 70% 25%,#666341 0,#363725 65%,#25271d 100%)}.brand-film .symbol-draw{width:44%}.brand-film .symbol-stroke{stroke-width:7}.signature-label{font-size:11px;color:var(--rose);letter-spacing:.16em}.hero-signature p{font-size:12px;line-height:1.6;color:#d1cbbb;margin-top:5px}
/* About and editorial blocks */
.about-grid{display:grid;grid-template-columns:.95fr 1fr;gap:clamp(64px,8vw,124px);align-items:center}.about-photo{padding-right:18px;position:relative}.about-photo:before{content:'';position:absolute;inset:28px 0 34px 28px;border:1px solid #b1ad8c;z-index:0;border-radius:8px}.about-photo picture{position:relative;overflow:hidden;border-radius:8px}.about-photo img{height:570px;width:100%;object-fit:cover;object-position:50% 41%;border-radius:8px}.photo-footnote{font-size:11px;letter-spacing:.15em;display:block;margin-top:20px;color:var(--muted)}.about-copy h2{margin-bottom:29px}.about-copy h2 em,.editorial-grid h2 em{color:var(--terra)}.about-copy p:not(.eyebrow){color:var(--muted)}.about-copy .lead{color:var(--ink)!important;margin-bottom:22px}.about-copy .text-link{margin-top:25px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:49px}.section-heading>p{max-width:320px;color:var(--muted);font-size:17px}.section-heading h2 em{color:var(--terra)}.section-heading .eyebrow{margin-bottom:20px}
/* Services */
.services-section{background:#ebe7dc;border-top:1px solid #dedacc;border-bottom:1px solid #dedacc}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.service-card{display:flex;flex-direction:column;padding:33px 31px 31px;border-bottom:1px solid #c6c5b6;min-height:300px;position:relative;transition:background .2s}.service-card:nth-child(3n+2){border-inline:1px solid #c6c5b6}.service-card:nth-last-child(-n+3){border-bottom:0}.service-card:hover{background:#f5f1e7}.service-number{font-size:13px;color:var(--terra);letter-spacing:.1em;margin-bottom:24px;display:block}.service-card h3{font-size:26px;margin-bottom:13px;letter-spacing:-.025em}.service-card p{font-size:15px;color:var(--muted);line-height:1.7;max-width:290px}.service-link{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:500;padding-top:24px;margin-top:auto}.service-link>span{font-size:26px;transition:transform .2s;color:var(--terra)}.service-card:hover .service-link>span{transform:translate(3px,-3px)}.services-index{padding-top:60px}.topics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px}.topics-grid article{border-top:1px solid #bfc0a9;padding-top:27px}.topic-number{display:block;font-size:12px;letter-spacing:.12em;color:var(--terra);margin-bottom:30px}.topics-grid h3{margin-bottom:17px}.topics-grid p{color:var(--muted);font-size:16px}.medical-note{font-size:13px;color:var(--muted);border-top:1px solid var(--line);margin-top:48px;padding-top:22px}.related-section{background:#eeeade}.related-section h2{font-size:38px}
/* Philosophy */
.approach-section{background:var(--white)}.approach-grid{display:grid;grid-template-columns:1.1fr .85fr;align-items:center;gap:100px}.approach-copy h2 em{color:var(--terra)}.care-principles{margin-top:40px}.care-principles article{display:flex;align-items:flex-start;gap:25px;border-top:1px solid var(--line);padding:26px 0}.care-principles article:last-child{padding-bottom:0}.care-principles article>span{font-size:12px;color:var(--terra);padding-top:5px}.care-principles h3{font-size:22px;margin-bottom:8px}.care-principles p{font-size:15px;color:var(--muted);max-width:340px}.approach-photo{position:relative;border-radius:8px;overflow:hidden;background:#282420}.approach-photo img{width:100%;height:565px;object-fit:cover;object-position:50% 35%}.photo-quote{position:absolute;inset:auto 0 0;color:var(--white);padding:72px 34px 32px;background:linear-gradient(transparent,#171911eb);font-size:22px;line-height:1.5}.photo-quote em{color:var(--rose)}
/* Presentation video: plays inside a photo frame and is fetched only on play. */
.photo-media{position:relative;overflow:hidden;border-radius:8px}.photo-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 12%;background:var(--olive-deep)}.video-play{position:absolute;left:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;border:0;border-radius:50px;background:var(--white);color:var(--olive-deep);font-size:14px;font-weight:500;line-height:1.3;text-align:left;box-shadow:0 4px 24px #0004;transition:transform .18s cubic-bezier(.22,1,.36,1)}.video-play:hover{transform:translateY(-2px)}.video-play:active{transform:scale(.97)}.video-play small{display:block;font-size:12px;font-weight:400;color:var(--muted)}.video-play-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--terra);flex-shrink:0}.video-play-icon:before{content:'';border-left:12px solid #fff;border-block:7px solid transparent;margin-left:3px}
.training-section{background:#ebe7dc;border-block:1px solid #dedacc}.words-section{background:var(--white)}.words-grid{display:grid;grid-template-columns:.6fr 1fr;gap:70px;align-items:center}.words-video{aspect-ratio:9/16;width:100%;max-width:340px;justify-self:center}.words-video img{width:100%;height:100%;object-fit:cover}.words-video .photo-video{object-position:center}.words-section h2{margin-bottom:24px}.words-section h2 em{color:var(--terra)}.words-section p:not(.eyebrow,.lead){color:var(--muted);margin-top:18px}.transcript{margin-top:28px;border-block:1px solid #bcbcab}.transcript summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;list-style:none;cursor:pointer;font-size:16px;font-weight:500}.transcript summary::-webkit-details-marker{display:none}.transcript summary:hover{color:var(--terra)}.transcript p{margin-top:0}.transcript p+p{margin-top:14px}
@media(max-width:850px){.words-grid{grid-template-columns:.7fr 1fr;gap:40px}}
@media(max-width:700px){.words-grid{grid-template-columns:1fr;gap:34px}.words-video{justify-self:start;max-width:300px}}
/* Reviews supplied by patients on Google. */
.reviews-section{background:#e9e4d8;border-block:1px solid var(--line)}.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.review-card{margin:0;padding:29px;background:var(--white);border-radius:6px;display:flex;flex-direction:column}.review-stars{color:var(--terra);font-size:17px;letter-spacing:.15em;line-height:1}.review-card blockquote{margin:23px 0 27px;font-size:17px;line-height:1.7}.review-card figcaption{display:flex;align-items:center;gap:12px;margin-top:auto}.review-initial{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;background:#e8e1d4;border-radius:50%;color:var(--terra);font-size:15px}.review-card strong{display:block;font-size:14px;font-weight:500;line-height:1.4}.review-source{display:block;font-size:12px;color:var(--muted);margin-top:3px}.reviews-more{margin-top:28px}.reviews-more summary{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:265px;padding:13px 0;list-style:none;border-bottom:1px solid var(--ink);cursor:pointer;font-size:15px;font-weight:500}.reviews-more summary::-webkit-details-marker{display:none}.reviews-hide,.reviews-more[open] .reviews-show{display:none}.reviews-more[open] .reviews-hide{display:inline}.reviews-more .reviews-grid{margin-top:28px}.reviews-google{margin-top:28px}.clinic-address{font-style:normal;font-size:16px;line-height:1.7;max-width:400px;margin-top:24px;color:var(--muted)}.contact-information .clinic-address{font-size:14px;margin-top:14px;color:#d9d3c7}
@media(max-width:1000px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.reviews-grid{grid-template-columns:1fr;gap:16px}.review-card{padding:26px}.review-card blockquote{margin-block:20px 24px}}
/* FAQ */
.faq-section{background:#f4efe7}.faq-layout{display:grid;grid-template-columns:.82fr 1fr;gap:100px}.faq-layout h2{font-size:43px;max-width:360px}.faq-layout>div>p:not(.eyebrow){margin-top:22px;color:var(--muted);max-width:300px}.faq-layout .text-link{margin-top:15px}.faq-list{border-top:1px solid #bcbcab}.faq-list details{border-bottom:1px solid #bcbcab}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0;cursor:pointer;list-style:none;font-size:18px;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-plus{width:20px;height:20px;position:relative;flex-shrink:0}.faq-plus:before,.faq-plus:after{content:'';position:absolute;background:var(--terra);left:4px;right:4px;top:9px;height:1px}.faq-plus:after{transform:rotate(90deg);transition:transform .2s}details[open] .faq-plus:after{transform:rotate(0deg)}.faq-answer{padding:0 35px 25px 0;color:var(--muted);font-size:16px}
/* Contact and footer */
.contact-section{padding:95px 0;background:var(--olive);color:var(--white)}.contact-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:110px}.contact-section .eyebrow{color:var(--rose)}.contact-section h2{font-size:51px;max-width:590px}.contact-section h2 em{color:var(--rose)}.contact-section p{font-size:16px;color:#d9d3c7;max-width:440px;margin-top:24px}.contact-section .button{margin-top:30px}.contact-information{padding-left:55px;border-left:1px solid #ffffff28;align-self:center}.location-label{display:block;font-size:11px;letter-spacing:.17em;color:var(--rose);margin-bottom:22px}.contact-information h3{font-size:30px;line-height:1.23}.contact-information h3 span{font-size:18px;color:#d9d3c7}.contact-information p{font-size:14px;margin-top:14px}.contact-information .text-link{margin-top:17px;color:var(--rose);font-size:13px}.contact-numbers{display:flex;flex-wrap:wrap;gap:27px;margin-top:31px;font-size:17px}.contact-numbers a>span{display:block;font-size:11px;letter-spacing:.14em;color:#ccc5b2;margin-bottom:7px}.site-footer{padding:64px 0 25px;background:var(--olive-deep);color:#d2cbbb}.footer-top{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:60px;align-items:start}.footer-brand img{width:225px}.footer-brand p{font-size:13px;margin-top:22px}.footer-label{color:var(--rose);font-size:11px;letter-spacing:.18em;margin-bottom:22px}.footer-top>div:not(.footer-brand)>a{display:block;font-size:14px;margin-bottom:10px;width:fit-content}.footer-top a:hover{color:var(--rose)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #ffffff16;padding-top:28px;margin-top:49px;font-size:12px;color:#bdb7a6}.footer-bottom p:nth-child(2){text-align:center}.footer-bottom p{margin:0}.footer-bottom>a{border-bottom:1px solid #8e8d77}.floating-contact{position:fixed;bottom:22px;right:24px;z-index:25;background:var(--rose);color:var(--olive-deep);border-radius:50px;display:flex;align-items:center;justify-content:center;width:54px;height:54px;box-shadow:0 3px 20px #0002;border:1px solid #fff4;transition:transform .2s}.floating-contact svg{width:29px;height:29px}.floating-contact>span{position:absolute;right:65px;white-space:nowrap;background:var(--olive-deep);color:var(--white);font-size:12px;padding:7px 12px;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .2s}.floating-contact:hover{transform:translateY(-3px)}.floating-contact:hover>span,.floating-contact:focus-visible>span{opacity:1}
/* Interior pages */
.inner-hero{padding:67px 0 80px;background:var(--olive);color:var(--white)}.inner-hero-grid{display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:95px}.inner-hero .eyebrow{color:var(--rose)}.inner-hero h1 em{color:var(--rose)}.inner-hero .lead{margin-top:30px;max-width:520px}.inner-hero p:not(.lead,.eyebrow){margin-top:22px;color:#d8d2c3;font-size:17px;max-width:510px}.inner-hero .button{margin-top:33px}.inner-portrait{border-radius:7px 100px 7px 7px;overflow:hidden;min-width:0}.inner-portrait img{width:100%;height:540px;object-fit:cover;object-position:center 36%}.credentials{display:flex;flex-wrap:wrap;gap:18px 32px;border-block:1px solid #ffffff25;padding:22px 0;margin-top:28px}.credentials span{font-size:11px;letter-spacing:.14em;color:var(--rose)}.credentials strong{display:block;font-size:19px;font-weight:400;letter-spacing:0;color:var(--white);margin-top:6px}.editorial-grid{display:grid;grid-template-columns:.6fr 1fr;gap:70px}.editorial-grid>.eyebrow{padding-top:12px}.editorial-grid h2{margin-bottom:28px}.editorial-grid .lead{margin-bottom:24px}.editorial-grid p:not(.eyebrow,.lead){color:var(--muted)}.editorial-grid .text-link{margin-top:28px}.brand-story{padding:80px 0;background:#e8e1d4}.brand-story-inner{display:grid;grid-template-columns:.6fr 1fr;gap:70px;align-items:center}.brand-story .symbol-draw{width:180px;justify-self:center}.brand-story .symbol-stroke{stroke-width:2.5}.brand-story h2{font-size:41px;margin-bottom:24px}.brand-story p:not(.eyebrow){max-width:640px;color:var(--muted)}.brand-story h2 em{color:var(--terra)}.page-intro{position:relative;overflow:hidden;background:var(--olive);color:var(--white);padding:81px 0 85px}.page-intro>.wrap{position:relative;z-index:1}.page-intro .eyebrow{color:var(--rose)}.page-intro h1{max-width:890px;font-size:clamp(44px,5vw,72px)}.page-intro h1 em{color:var(--rose)}.page-intro p:not(.eyebrow){color:#ddd5c6;max-width:560px;margin-top:27px;font-size:18px}.intro-mark{position:absolute;width:310px;right:-30px;top:20px;opacity:.075;transform:rotate(12deg)}.compact-intro{padding-block:65px}.service-hero{padding-top:28px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:13px;font-size:12px;color:#d2ccbc;margin-bottom:43px}.breadcrumbs a:hover{color:var(--rose);text-decoration:underline}.breadcrumbs span[aria-current]{color:var(--rose)}.service-hero h1{font-size:clamp(40px,4.4vw,65px);hyphens:auto;overflow-wrap:break-word}.service-hero .inner-portrait img{height:510px}.service-hero .inner-hero-grid{gap:80px;grid-template-columns:1.05fr .85fr}.service-hero .lead{font-size:26px;line-height:1.4;margin-top:22px;color:var(--rose)}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-options article{border-top:1px solid #b5b5a1;padding-top:32px;display:flex;align-items:flex-start;flex-direction:column}.contact-options h2{font-size:32px;margin-top:23px}.contact-options p{font-size:16px;color:var(--muted);margin-top:15px}.contact-options .button{margin-top:25px}.option-icon{color:var(--terra);font-size:35px;line-height:1}.option-icon svg{width:40px;height:40px}.contact-value{display:inline-block;font-size:30px;margin-top:18px;letter-spacing:-.025em}.contact-value:hover{color:var(--terra)}.location-section{padding:88px 0;background:#e9e4d8}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.location-grid h2 em{color:var(--terra)}.location-grid p:not(.eyebrow){margin-top:24px;max-width:400px;color:var(--muted)}.location-grid .text-link{margin-top:20px}.location-art{background:var(--olive);padding:43px;border-radius:8px;display:flex;min-height:300px;flex-direction:column;align-items:center;justify-content:center;gap:28px;color:var(--rose);text-align:center}.location-map{border-radius:8px;overflow:hidden;background:var(--olive)}.location-map iframe{display:block;width:100%;height:380px;border:0}.location-art img{width:110px}.location-art span{font-size:12px;letter-spacing:.18em;line-height:1.9}.social-invitation{padding:85px 0}.social-invitation .wrap{display:flex;justify-content:space-between;align-items:center;gap:45px}.social-invitation h2{font-size:42px}.social-invitation h2 em{color:var(--terra)}.prose{max-width:780px}.prose h2{font-size:30px;margin:42px 0 20px}.prose h2:first-child{margin-top:0}.prose p{color:var(--muted)}.prose a{text-decoration:underline;color:var(--terra)}.error-page{min-height:65vh}.error-page .button{margin-top:32px}
@media(min-width:1500px){.hero-grid{padding-block:70px}.portrait-frame{height:660px}.hero h1{font-size:88px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header-inner{gap:25px}#main-nav{gap:23px}.hero-grid{gap:40px}.hero h1{font-size:67px}.hero-description{font-size:17px}.portrait-frame{height:590px;border-radius:150px 150px 8px 8px}.button-row{gap:18px}.hero-bottom{font-size:11px}.hero-bottom>a{display:none}.about-grid{gap:65px}.about-photo img{height:510px}.approach-grid{gap:60px}.faq-layout{gap:60px}.contact-layout{gap:65px}.contact-information{padding-left:35px}.contact-section h2{font-size:44px}.service-card{padding-inline:22px}.service-card h3{font-size:24px}.inner-hero-grid,.service-hero .inner-hero-grid{gap:55px}.contact-options{gap:65px}}
@media(max-width:850px){.wrap{width:calc(100% - 48px)}.header-inner{min-height:91px}.brand-link{width:145px}.brand-link img{height:74px}#main-nav{gap:20px}#main-nav .nav-link{font-size:13px}#main-nav>.button{font-size:12px;padding-inline:12px;gap:12px}.hero h1{font-size:59px}.hero-grid{gap:28px;padding-top:43px}.hero .eyebrow{font-size:11px;letter-spacing:.08em}.portrait-frame{height:575px;border-radius:130px 130px 8px 8px}.portrait-caption{display:block}.portrait-caption span{display:block}.hero-signature{gap:10px}.brand-film{width:135px}.hero-signature p{font-size:11px}.section{padding:82px 0}.about-grid{gap:43px}.about-photo img{height:500px}.about-copy h2{font-size:39px}.lead{font-size:21px}.about-copy p{font-size:16px}.section-heading{gap:25px}.section-heading>p{max-width:250px;font-size:15px}.service-card{padding-inline:20px;min-height:320px}.service-card h3{font-size:23px}.service-card p{font-size:14px}.approach-grid{gap:40px;grid-template-columns:1fr .8fr}.approach-photo img{height:520px}.approach-copy h2{font-size:39px}.photo-quote{font-size:20px;padding-inline:22px}.faq-layout{gap:43px;grid-template-columns:.8fr 1fr}.faq-layout h2{font-size:36px}.faq-list summary{font-size:17px}.contact-layout{gap:40px}.contact-section h2{font-size:39px}.contact-information{padding-left:28px}.contact-numbers{gap:15px}.footer-top{gap:35px}.footer-brand img{width:190px}.inner-hero-grid{gap:45px;grid-template-columns:1fr .8fr}.inner-portrait img{height:500px}.inner-hero h1{font-size:53px}.service-hero .inner-hero-grid{gap:40px;grid-template-columns:1fr .75fr}.service-hero h1{font-size:45px}.topics-grid{gap:30px}.topics-grid h3{font-size:24px}.editorial-grid,.brand-story-inner{grid-template-columns:.45fr 1fr;gap:40px}}
@media(max-width:700px){html{scroll-padding-top:98px}.wrap{width:calc(100% - 40px)}.site-header{position:sticky}.header-inner{min-height:85px}.brand-link{width:137px;padding:5px 0}.brand-link img{height:73px}.menu-toggle{display:flex;align-items:center;gap:12px;padding:12px 4px;background:transparent;border:0;color:var(--rose);font-size:13px}.menu-lines{width:24px;height:16px;border-block:1px solid currentColor;position:relative}.menu-lines:after{content:'';position:absolute;left:0;right:0;top:7px;border-top:1px solid currentColor}.menu-toggle[aria-expanded=true] .menu-lines{border-color:transparent}.menu-toggle[aria-expanded=true] .menu-lines:before,.menu-toggle[aria-expanded=true] .menu-lines:after{content:'';position:absolute;top:7px;left:0;right:0;border-top:1px solid currentColor;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines:after{transform:rotate(-45deg)}#main-nav{position:absolute;top:100%;left:0;right:0;padding:17px 24px 29px;background:var(--olive-deep);display:none;align-items:stretch;flex-direction:column;gap:5px;border-bottom:1px solid #ffffff30;box-shadow:0 20px 35px #0003}#main-nav.is-open{display:flex}#main-nav{max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain}#main-nav .nav-link{font-size:16px;padding:13px 0}.nav-group{flex-direction:column;align-items:stretch;gap:0}.submenu-toggle{display:none}.submenu{position:static;display:flex;min-width:0;padding:0 0 8px 16px;background:transparent;border:0;border-left:1px solid #ffffff22;border-radius:0;box-shadow:none}.submenu a{padding:11px 0;font-size:15px}#main-nav>.button{font-size:15px;margin-top:12px;min-height:49px}#main-nav .nav-link:after{display:none}.hero-grid{grid-template-columns:1fr;gap:34px;padding-top:38px;padding-bottom:28px}.hero h1{font-size:clamp(56px,12.8vw,82px)}.hero .eyebrow{font-size:11px;letter-spacing:.12em}.hero-description{font-size:17px;max-width:470px;margin:23px 0 27px}.hero-copy .button{font-size:14px;padding:14px 20px;gap:27px}.hero-secondary{font-size:12px}.hero-signature{margin-top:25px;gap:19px}.brand-film{width:142px}.hero-signature p{font-size:12px}.hero-portrait{width:100%;max-width:510px;justify-self:center}.portrait-frame{height:auto;aspect-ratio:4/4.6;max-height:none;border-radius:155px 155px 7px 7px}.portrait-frame img{object-position:50% 36%}.portrait-caption{display:flex}.portrait-caption span:last-child{font-size:11px}.hero-watermark{width:210px;right:-90px}.hero-bottom{flex-direction:column;align-items:flex-start;gap:6px;min-height:auto;padding-block:18px;font-size:12px}.section{padding:65px 0}h2{font-size:38px}.eyebrow{margin-bottom:19px}.about-grid{grid-template-columns:1fr;gap:38px}.about-photo{max-width:490px;padding-right:18px}.about-photo img{height:auto;aspect-ratio:4/4.7;object-position:50% 41%}.about-photo:before{inset:20px 0 33px 20px}.about-copy h2{font-size:42px;margin-bottom:22px}.about-copy .lead{font-size:23px}.about-copy p{font-size:17px}.about-copy .text-link{margin-top:19px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{max-width:400px;margin-top:22px;font-size:16px}.section-heading h2{font-size:39px}.services-grid{grid-template-columns:1fr 1fr}.service-card,.service-card:nth-child(3n+2){border:0;border-bottom:1px solid #c6c5b6;padding:27px 18px;min-height:302px}.service-card:nth-child(odd){border-right:1px solid #c6c5b6;padding-left:0}.service-card:nth-child(even){padding-right:0}.service-card:nth-last-child(-n+2){border-bottom:0}.service-card h3{font-size:24px;overflow-wrap:anywhere}.service-card p{font-size:14px;line-height:1.65}.service-number{margin-bottom:20px}.service-link{font-size:11px;gap:8px;padding-top:18px}.service-link>span{font-size:22px}.approach-grid{grid-template-columns:1fr;gap:40px}.approach-copy h2{font-size:40px}.care-principles{margin-top:29px}.care-principles p{font-size:16px;max-width:100%}.approach-photo{max-width:490px}.approach-photo img{height:auto;aspect-ratio:4/4.6;object-position:50% 25%}.photo-quote{padding-inline:27px;font-size:23px}.faq-layout{grid-template-columns:1fr;gap:34px}.faq-layout h2{font-size:40px;max-width:420px}.faq-layout>div>p:not(.eyebrow){max-width:none;font-size:16px;margin-top:18px}.faq-list summary{font-size:18px;padding-block:22px}.faq-answer{font-size:16px}.contact-section{padding:64px 0}.contact-layout{grid-template-columns:1fr;gap:46px}.contact-section h2{font-size:41px}.contact-section p{font-size:16px}.contact-information{border-left:0;border-top:1px solid #ffffff28;padding-left:0;padding-top:33px}.contact-information h3{font-size:29px}.contact-numbers{gap:34px}.site-footer{padding-top:48px;padding-bottom:80px}.footer-top{grid-template-columns:1fr 1fr;gap:38px 30px}.footer-brand{grid-column:1/-1}.footer-brand img{width:200px}.footer-brand p{margin-top:16px}.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:17px 30px;margin-top:32px;padding-top:23px}.footer-bottom p:nth-child(2){text-align:left}.footer-bottom p:first-child{width:100%}.floating-contact{right:16px;bottom:16px;width:52px;height:52px}.inner-hero{padding:41px 0 45px}.inner-hero-grid,.service-hero .inner-hero-grid{grid-template-columns:1fr;gap:38px}.inner-hero h1{font-size:57px}.inner-hero .lead{margin-top:25px;font-size:23px}.inner-hero p:not(.lead,.eyebrow){font-size:17px}.inner-portrait{max-width:490px;border-radius:7px 85px 7px 7px}.inner-portrait img,.service-hero .inner-portrait img{height:auto;aspect-ratio:4/4.6;object-position:50% 35%}.credentials{gap:36px}.editorial-grid{grid-template-columns:1fr;gap:10px}.editorial-grid>.eyebrow{padding-top:0;margin-bottom:15px}.editorial-grid h2{font-size:39px}.editorial-grid .lead{font-size:22px}.brand-story{padding:55px 0}.brand-story-inner{grid-template-columns:1fr;gap:33px}.brand-story .symbol-draw{width:100px;justify-self:start}.brand-story .symbol-stroke{stroke-width:4}.brand-story h2{font-size:36px}.page-intro{padding:48px 0 55px}.page-intro h1{font-size:49px}.page-intro p:not(.eyebrow){font-size:17px;margin-top:24px}.intro-mark{width:230px;right:-75px;top:40px}.services-index{padding-top:32px}.service-hero{padding-top:24px}.breadcrumbs{font-size:12px;gap:8px;margin-bottom:29px}.service-hero h1{font-size:44px;hyphens:auto}.service-hero .lead{font-size:25px}.topics-grid{grid-template-columns:1fr;gap:30px}.topics-grid article{padding-top:22px}.topic-number{margin-bottom:18px}.topics-grid h3{font-size:26px}.topics-grid p{font-size:17px}.medical-note{margin-top:30px}.related-section h2{font-size:35px}.related-section .section-heading .text-link{margin-top:22px}.related-grid{grid-template-columns:1fr}.related-grid .service-card{border:0;border-bottom:1px solid #c6c5b6;padding:25px 0;min-height:0}.related-grid .service-card:last-child{border-bottom:0}.related-grid .service-card p{max-width:none;font-size:16px}.related-grid .service-card h3{font-size:27px}.contact-options{grid-template-columns:1fr;gap:48px}.contact-options h2{font-size:30px}.contact-value{font-size:29px}.location-section{padding:60px 0}.location-grid{grid-template-columns:1fr;gap:36px}.location-map iframe{height:320px}.location-art{min-height:220px;padding:32px}.location-art img{width:85px}.social-invitation{padding:58px 0}.social-invitation .wrap{flex-direction:column;align-items:flex-start;gap:29px}.social-invitation h2{font-size:39px}.prose h2{font-size:28px}.error-page{min-height:65vh}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:53px}.hero .eyebrow{letter-spacing:.06em}.hero-copy .button-row{align-items:flex-start;flex-direction:column;gap:9px}.hero-signature{gap:12px}.hero-signature p{font-size:11px}.brand-film{width:129px}.portrait-caption{display:block}.service-card h3{font-size:22px}.service-card{padding-inline:13px}.contact-section h2{font-size:36px}.page-intro h1,.inner-hero h1{font-size:45px}.service-hero h1{font-size:39px}.contact-numbers{gap:22px}}
/* Keep section labels and row dividers consistent at small sizes. */
@media(max-width:700px){.services-grid .service-card{border-bottom:1px solid #c6c5b6}.services-grid .service-card:nth-last-child(-n+2){border-bottom:0}.related-grid .service-card:nth-last-child(2){border-bottom:1px solid #c6c5b6}}
/* Micro-interactions — make-interfaces-feel-better. */
:root{--motion-fast:180ms;--motion-ease:cubic-bezier(.22,1,.36,1)}
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes answer-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.button,.floating-contact{transition:transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease}
.button:active,.floating-contact:active{transform:scale(.97)}
.text-link>span,.hero-secondary>span{transition:transform var(--motion-fast) var(--motion-ease)}
.text-link:hover>span,.text-link:focus-visible>span{transform:translate(3px,-3px)}
.hero-secondary:hover>span,.hero-secondary:focus-visible>span{transform:translateY(3px)}
.service-card{transition:background-color var(--motion-fast) ease}
.service-card:focus-visible{background:#f5f1e7}
.service-link>span{transition:transform var(--motion-fast) var(--motion-ease)}
.service-card:focus-visible .service-link>span{transform:translate(3px,-3px)}
.faq-list summary,.reviews-more summary{transition:color var(--motion-fast) ease}
.faq-list summary:hover,.reviews-more summary:hover{color:var(--terra)}
.faq-list details[open] .faq-answer{animation:answer-enter var(--motion-fast) var(--motion-ease)}
.faq-plus:after{transition:transform var(--motion-fast) var(--motion-ease)}
.review-card blockquote p,.hero-description,.service-card p{text-wrap:pretty}
@media(max-width:700px){#main-nav.is-open{animation:menu-enter var(--motion-fast) var(--motion-ease)}}
@media(hover:none){.button:hover,.floating-contact:hover,.text-link:hover>span,.hero-secondary:hover>span,.service-card:hover .service-link>span{transform:none}.button:active,.floating-contact:active{transform:scale(.97)}}
/* Scroll motion — skill motion-web: GSAP, ScrollTrigger, SplitText and Lenis, all served from /vendor. */
html.lenis,html.lenis body{height:auto}.lenis.lenis-stopped{overflow:clip}.lenis.lenis-smooth iframe{pointer-events:none}
.symbol-draw{display:grid}.symbol-draw>svg{grid-area:1/1;width:100%;height:auto;overflow:visible}.symbol-fill{fill:var(--rose)}.symbol-stroke{fill:none;stroke:var(--rose);stroke-linecap:round;stroke-linejoin:round;opacity:0}
/* Initial states exist only under .js, so the page stays complete when scripts fail or are blocked. */
.js [data-hero]>*,.js [data-hero-fade],.js [data-reveal],.js [data-reveal-children]>*,.js [data-split],.js .symbol-fill{opacity:0}
.js [data-img-reveal]{clip-path:inset(0 0 100% 0)}
/* The hero portrait is the largest element of the first screen: it opens with CSS at first paint, without waiting for scripts. */
[data-hero-img]{animation:frame-open 1.2s cubic-bezier(.65,0,.35,1) both}[data-hero-img] img{animation:photo-settle 1.5s cubic-bezier(.22,1,.36,1) both}
@keyframes frame-open{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes photo-settle{from{transform:scale(1.15)}to{transform:none}}
/* Room for descenders inside the line masks created by SplitText. */
.line-mask{padding-bottom:.14em;margin-bottom:-.14em}
[data-parallax],[data-spin]{will-change:transform}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-leave .25s ease-out both}
::view-transition-new(root){animation:page-arrive .35s ease-out both}
@keyframes page-leave{to{opacity:0}}
@keyframes page-arrive{from{opacity:0}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}.js [data-hero]>*,.js [data-hero-fade],.js [data-reveal],.js [data-reveal-children]>*,.js [data-split],.js .symbol-fill{opacity:1}.js [data-img-reveal]{clip-path:none}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.button:active,.floating-contact:hover,.floating-contact:active,.text-link:hover>span,.text-link:focus-visible>span,.hero-secondary:hover>span,.hero-secondary:focus-visible>span,.service-card:hover .service-link>span,.service-card:focus-visible .service-link>span{transform:none}}
/* Touch targets: footer, breadcrumb and privacy links get at least 44px of height on phones, tablets and touch screens. */
@media(max-width:850px),(pointer:coarse){.footer-top>div:not(.footer-brand)>a{padding-block:11px;margin-bottom:0}.footer-label{margin-bottom:10px}.footer-bottom>a{padding-block:12px;border-bottom:0;text-decoration:underline;text-underline-offset:4px}.breadcrumbs{align-items:center;margin-bottom:17px}.breadcrumbs a{padding-block:13px}}
/* Arrow icons are inline SVG sized by the font size of their wrapper, so they never fall back to emoji. */
.glyph{display:inline-block;width:.72em;height:.72em;vertical-align:-.04em}.option-icon .glyph,.hero-secondary .glyph{width:1em;height:1em}.site-footer .glyph{width:.85em;height:.85em}
/* Back to top: stacked above the WhatsApp button; with scripts it appears only after the first screen. */
.back-to-top{position:fixed;right:29px;bottom:88px;z-index:25;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #deb8ad66;background:var(--olive);color:var(--rose);box-shadow:0 3px 20px #0002;transition:opacity .2s,transform .2s,visibility .2s}.back-to-top .glyph{width:18px;height:18px}.back-to-top:hover{transform:translateY(-3px)}.js .back-to-top:not(.is-visible){opacity:0;visibility:hidden;transform:translateY(8px)}
@media(max-width:700px){.back-to-top{right:20px;bottom:80px}}
@media(hover:none){.back-to-top:hover{transform:none}}
/* Phones in landscape: a sticky header would take a quarter of the screen height. */
@media(max-height:500px) and (orientation:landscape){.site-header{position:static}html{scroll-padding-top:16px}}
/* Seven services: the last card spans the whole row as a horizontal strip, and the row above keeps its divider. */
.services-grid:has(>.service-card:nth-child(7)) .service-card:nth-last-child(-n+3){border-bottom:1px solid #c6c5b6}
.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:28px;min-height:0;border-bottom:0;border-inline:0}
.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child .service-number{margin-bottom:0}
.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child p{max-width:560px}
.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child .service-link{margin-top:0;padding-top:0;gap:20px}
@media(max-width:700px){.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child{display:flex;flex-direction:column;align-items:stretch;gap:0;border-right:0;padding-inline:0}.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child .service-number{margin-bottom:20px}.services-grid:has(>.service-card:nth-child(7)) .service-card:last-child .service-link{padding-top:18px}}
