@font-face{font-family:Sora;src:url('../fonts/sora.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap}
:root{--ink:#352f38;--muted:#6b626f;--purple:#855c94;--purple-dark:#684577;--lavender:#f5eff7;--paper:#fdfcf9;--line:#e6dde9;--container:1280px;--soft-purple:#cfb3db}
body{font-size:17px;line-height:1.8}.section{padding:130px 0}h1,h2{font-family:Sora,InstrumentSans,sans-serif;font-weight:550;letter-spacing:-1.9px;line-height:1.16}h2{font-size:clamp(42px,4.3vw,62px)}h3{font-family:Sora,InstrumentSans,sans-serif;font-weight:500}.serif-accent,.care-inner h2 em{font-family:Sora,InstrumentSans,sans-serif;font-style:normal;font-weight:inherit;color:#a080af}.section-number,.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:500}.button{background:#d1b8dd;border-color:#d1b8dd;color:#382640;font-size:15px;padding:18px 29px;min-height:58px;border-radius:4px;font-weight:500;gap:12px}.button:hover{background:#c3a1d1;transform:translateY(-2px)}.button-small{font-size:14px;padding:13px 22px;min-height:48px}.button-outline{background:transparent;border-color:#b89dc2;color:#634870}.button-white{background:var(--paper);border-color:var(--paper);color:var(--ink)}.button-white:hover{background:white}.text-link{font-size:15px;color:#755681;font-weight:500}.header-inner{height:100px}.main-nav{gap:34px}.main-nav a{font-family:Sora,InstrumentSans,sans-serif;font-size:16px;font-weight:500;white-space:nowrap}.header-cta{font-family:Sora,InstrumentSans,sans-serif;font-size:16px;font-weight:500;white-space:nowrap}.hero{padding-top:66px}.hero-tooth{font-size:650px;top:-45px;right:-120px;color:#bb97cd;opacity:.12;transform:rotate(16deg)}.hero-heading{display:block;margin-bottom:45px}.hero h1{font-family:Sora,InstrumentSans,sans-serif;font-size:clamp(64px,7vw,104px);letter-spacing:-3.6px;line-height:1.12;max-width:1130px;margin-top:28px;font-weight:400}.hero h1>span{color:#ac89bb;white-space:nowrap;font-style:normal}.hero-intro{max-width:none;margin:30px 0 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 55px;align-items:center}.hero-intro>p{font-size:18px;max-width:650px;line-height:1.75;margin:0;grid-row:1/3}.hero-intro .button{grid-column:2}.hero-services{font-size:13px;margin-top:11px;grid-column:2;justify-content:center;font-weight:400}.hero-photo{height:auto;aspect-ratio:3.9;border-radius:3px}.hero-photo>img{width:100%;height:100%;object-fit:cover}.photo-note{border-radius:2px;box-shadow:none;padding:17px 22px;font-size:15px;gap:14px;background:#fdfcf9f2;backdrop-filter:none}.photo-note div span{font-size:12px}.photo-note>i{display:none}.photo-location{font-size:13px}.hero-values{padding:25px 0;gap:50px}.hero-values>span,.hero-values>a{font-size:13px;font-weight:400}.hero-values i{font-size:20px;color:#a080af}
.section-top{gap:65px;margin-bottom:55px}.section-top h2{max-width:710px}.section-top>p{font-size:17px;max-width:340px;line-height:1.75}.cookie-copy strong{font-size:16px;font-weight:500}.cookie-copy p{font-size:13px}.cookie-actions .button{font-size:13px;min-height:45px;padding:12px 18px}.cookie-actions .text-button{font-size:12px}.cookie-banner{border-radius:5px;padding:24px;max-width:1280px}.cookie-copy>i{color:#a382b2}.cookie-dialog h2{font-family:Sora,InstrumentSans,sans-serif}.cookie-dialog>p,.consent-option p,.option-detail{font-size:14px}.consent-option{font-size:15px}.always-on{font-size:11px}.dialog-actions .button{font-size:13px}.legal-page h1{font-family:Sora,InstrumentSans,sans-serif;font-size:55px}.legal-text p,.legal-page>p{font-size:17px}.business-data>div{font-size:16px}.pricing-page{padding-top:60px}.pricing-page-heading{max-width:900px;margin:65px 0 80px}.pricing-page-heading h1{font-size:78px;letter-spacing:-2px}.pricing-page-heading>p:last-child{font-size:19px;max-width:750px;color:var(--muted);margin-top:30px}.pricing-page-grid{display:grid;grid-template-columns:.8fr 1.3fr;gap:110px}.pricing-page-grid>aside h2{font-size:38px;letter-spacing:-1px}.pricing-page-grid>aside>p{font-size:17px;margin-top:25px;color:var(--muted)}.pricing-page-grid>aside .button{margin-top:30px}.pricing-payment{margin-top:45px;border-top:1px solid var(--line);padding-top:25px;font-size:15px;color:var(--muted)}.pricing-payment>i{color:var(--purple);font-size:30px}.pricing-payment>p{margin-top:15px}.pricing-payment .payment-methods{font-size:13px}.price-list-heading{font-size:12px;letter-spacing:1px}.price-row{padding:28px 0;gap:25px}.price-row h3{font-size:20px;font-weight:400}.price-row p{font-size:14px;margin-top:7px}.price-amount{font-size:25px}.price-amount small{font-size:14px}.price-pending{font-size:17px}.price-footnote{font-size:13px;line-height:1.8}.price-list>.text-link{margin-top:28px}
@media(max-width:1100px){.main-nav{gap:20px}.main-nav a{font-size:15px}.header-inner{gap:25px}.header-cta{font-size:15px;padding:12px 16px}.hero h1{font-size:84px}.hero-intro>p{max-width:580px;font-size:17px}.cookie-actions{max-width:280px}.cookie-copy p{font-size:12px}.pricing-page-grid{gap:70px}}
@media(max-width:850px){.section{padding:90px 0}.header-inner{height:86px}.main-nav{gap:16px}.header-cta{font-size:14px;padding:11px 14px;min-height:44px}.hero{padding-top:50px}.hero h1{font-size:70px;letter-spacing:-2.5px;max-width:800px}.hero-intro{gap:0 35px}.hero-intro>p{font-size:16px}.hero-intro .button{font-size:14px;padding:16px 20px}.hero-photo{aspect-ratio:3}.photo-note{font-size:13px;padding:15px 18px}.hero-values>span{font-size:12px}.hero-values{gap:15px}.section-top h2{font-size:46px}.section-top>p{font-size:16px;max-width:250px}.section-top{gap:35px}.cookie-actions{max-width:none;margin-left:46px}.cookie-copy strong{font-size:15px}.pricing-page-heading h1{font-size:62px}.pricing-page-grid{gap:45px;grid-template-columns:.8fr 1.2fr}.price-row h3{font-size:18px}.price-row p{font-size:13px}.pricing-page-grid>aside h2{font-size:32px}.pricing-page-grid>aside>p{font-size:16px}}
@media(max-width:640px){body{font-size:16px}.container{width:calc(100% - 40px)}.section{padding:70px 0}.header-inner{height:82px;gap:14px}.header-cta{font-size:12px;padding:10px 12px;min-height:44px}.menu-toggle{width:32px;font-size:22px}.main-nav{top:82px;padding:15px 20px 22px}.main-nav a{font-size:19px;padding:16px 0}.hero{padding-top:40px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.hero h1{font-size:clamp(37px,10.4vw,63px);letter-spacing:-1.25px;line-height:1.25;margin-top:25px;max-width:none}.hero h1>span{white-space:normal}.hero-intro{display:block;margin-top:25px}.hero-intro>p{font-size:16px;line-height:1.75;max-width:none;margin-bottom:26px}.hero-intro .button{font-size:14px;min-height:53px;padding:16px 23px}.hero-services{font-size:12px;margin-left:17px;display:inline-flex;vertical-align:middle;margin-top:0}.hero-heading{margin-bottom:32px}.hero-photo{aspect-ratio:1.5;border-radius:2px}.hero-photo>img{object-position:46% 50%}.photo-note{bottom:12px;left:12px;padding:12px 15px;font-size:12px;gap:11px}.photo-note div span{font-size:10px}.note-icon{font-size:22px}.hero-tooth{font-size:420px;top:0;right:-220px;opacity:.12}.hero-values{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:22px 0}.hero-values>span{font-size:12px;gap:9px}.hero-values>span:last-of-type{max-width:none;grid-column:1/-1}.hero-values i{font-size:18px}.section-number,.eyebrow{font-size:10px;letter-spacing:1.3px}.section-top{display:block;margin-bottom:35px}.section-top h2{font-size:39px;letter-spacing:-1px;max-width:none}.section-top>p{font-size:16px;max-width:none;margin-top:22px}.cookie-banner{padding:18px;bottom:10px;left:10px;right:10px;border-radius:6px}.cookie-copy{gap:12px}.cookie-copy>i{font-size:25px;margin-top:4px}.cookie-copy strong{font-size:15px}.cookie-copy p{font-size:12px;line-height:1.6;margin-top:6px}.cookie-actions{margin:16px 0 0;gap:8px}.cookie-actions .button{font-size:12px;min-height:44px;padding:11px 13px}.cookie-actions .text-button{font-size:11px}.dialog-actions .button{font-size:12px;padding:12px 15px}.cookie-dialog h2{font-size:37px}.cookie-dialog>p{font-size:14px}.consent-option{font-size:14px}.consent-option p,.option-detail{font-size:13px}.always-on{font-size:10px}.legal-page h1{font-size:39px;letter-spacing:-1px}.legal-text p,.legal-page>p{font-size:16px}.business-data>div{font-size:15px}.pricing-page{padding-top:40px}.pricing-page-heading{margin:45px 0 50px}.pricing-page-heading h1{font-size:46px;letter-spacing:-1.3px}.pricing-page-heading>p:last-child{font-size:17px;margin-top:25px}.pricing-page-grid{display:flex;flex-direction:column;gap:50px}.pricing-page-grid>aside{order:2}.pricing-page-grid>aside h2{font-size:32px}.pricing-page-grid>aside>p{font-size:16px}.pricing-page-grid .price-list{margin-top:0}.price-list-heading{font-size:11px}.price-row{gap:17px;padding:24px 0}.price-row h3{font-size:18px;line-height:1.45}.price-row p{font-size:13px}.price-amount{font-size:22px}.price-pending{font-size:15px}.price-footnote{font-size:12px}.pricing-payment{margin-top:35px}}
@media(max-width:370px){.container{width:calc(100% - 32px)}.header-cta{display:none}.hero-services{display:block;margin:17px 0 0;font-size:13px;justify-content:flex-start}.hero h1{font-size:37px;letter-spacing:-1px}.hero-intro>p{font-size:16px}.cookie-copy>i{display:none}.cookie-actions .button{font-size:11px;padding:11px 9px}}




h1,h2{text-wrap:balance}.hero h1>span{color:#a17bae}.serif-accent{color:#9470a2}

/* Keep the larger navigation readable before the header gets crowded. */
.main-nav .menu-cta { display: none; }
@media (max-width: 960px) {
    .header-cta { display: none; }
    .menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; margin-left: auto; }
    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        margin-left: 0;
        padding: 15px 24px 22px;
        background: var(--paper);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 15px 20px #30203b0a;
    }
    .main-nav.is-open { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
    .main-nav a { font-size: 19px; padding: 16px 0; border-bottom: 1px solid var(--line); }
    .main-nav a:last-child { border-bottom: 0; }
    .main-nav a:after { display: none; }
    .main-nav .menu-cta {
        display: inline-flex;
        align-self: flex-start;
        margin-top: 18px;
        padding: 14px 22px;
        min-height: 50px;
        border: 1px solid #d1b8dd;
        font-size: 15px;
    }
}

/* One responsive lockup for the header and footer. */
.brand {
    --brand-name-size: 30px;
    --brand-mark-size: 45px;
    --brand-tagline-size: 8.3px;
    --brand-gap: 14px;
    display: inline-flex;
    align-items: center;
    gap: var(--brand-gap);
    flex-shrink: 0;
}
.brand-mark {
    display: grid;
    place-items: center;
    color: #b293c1;
    font-size: var(--brand-mark-size);
    line-height: 1;
}
.brand-mark > i {
    --fa-width: auto;
    display: block;
    line-height: 1;
}
.brand-name {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: var(--brand-name-size);
    line-height: 1;
}
.brand-wordmark {
    display: block;
    font-family: Sora, InstrumentSans, sans-serif;
    font-weight: 600;
    font-size: inherit;
    line-height: 1.08;
    letter-spacing: -.045em;
    white-space: nowrap;
}
.brand-tagline {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .8em;
    font-family: InstrumentSans, Arial, sans-serif;
    font-size: var(--brand-tagline-size);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .11em;
    white-space: nowrap;
}
@media (max-width: 1100px) {
    .brand { --brand-name-size: 28px; --brand-mark-size: 42px; --brand-tagline-size: 7.8px; --brand-gap: 12px; }
}
@media (max-width: 850px) {
    .brand { --brand-name-size: 26px; --brand-mark-size: 40px; --brand-tagline-size: 7px; --brand-gap: 11px; }
}
@media (max-width: 640px) {
    .brand { --brand-name-size: 25px; --brand-mark-size: 38px; --brand-tagline-size: 6.8px; --brand-gap: 10px; }
}

.about.section { padding-block: 104px; }
.about-editorial {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(36px, 4.5vw, 64px);
}
.photo-depth {
    position: relative;
    isolation: isolate;
    margin: 0;
    overflow: visible;
}
.photo-depth::before {
    content: '';
    position: absolute;
    inset: 14px -14px -14px 14px;
    border-radius: 0;
    background: #e6d6ed;
    border: 1px solid #d4bddf;
}
.photo-depth-frame {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: 0;
}
.photo-depth-frame::after {
    content: '';
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 0;
    pointer-events: none;
}
.photo-depth-frame > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease-out;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .photo-depth:hover .photo-depth-frame > img { transform: scale(1.015); }
}
@media (prefers-reduced-motion: reduce) {
    .photo-depth-frame > img { transition: none; }
}
.about-photo { min-height: 400px; }
.about-photo .photo-depth-frame > img { object-position: center 25%; }
.about-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}
.about-content .section-number {
    margin: 0 0 18px;
    color: var(--purple);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 1.5px;
}
.about-content h2 {
    max-width: none;
    margin: 0 0 24px;
    font-size: clamp(34px, 3.1vw, 42px);
    font-weight: 550;
    line-height: 1.2;
    letter-spacing: -.035em;
    text-wrap: pretty;
}
.about-content p { font-size: 16px; line-height: 1.8; color: var(--muted); }
.about-content .lead { font-size: 18px; line-height: 1.7; color: var(--ink); }
.about-content p + p { margin-top: 20px; }
@media (max-width: 1000px) {
    .about-editorial { grid-template-columns: 1fr; gap: 32px; }
    .about-photo { order: 2; min-height: 0; aspect-ratio: 3 / 2; }
    .about-content h2 { font-size: 38px; }
}
@media (max-width: 640px) {
    .about.section { padding-block: 72px; }
    .photo-depth::before { inset: 8px -8px -8px 8px; }
    .photo-depth::before, .photo-depth-frame { border-radius: 0; }
    .photo-depth-frame::after { inset: 10px; border-radius: 0; }
    .about-content h2 { font-size: 32px; margin-bottom: 22px; }
    .about-content .section-number { font-size: 10px; margin-bottom: 16px; }
    .about-content .lead { font-size: 17px; }
}

.principles-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 76px 0;
    background: #f0e8f4;
}

.principles {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.principle-card {
    padding: 36px;
    border-radius: 5px;
    background: #fff;
}
.principle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    color: #9470a2;
    font-size: 42px;
    line-height: 1;
}
.principle-icon > i { --fa-width: auto; }
.principle-card h3 { font-size: 24px; font-weight: 500; line-height: 1.3; margin: 25px 0 16px; letter-spacing: -.025em; }
.principle-card p { font-size: 16px; line-height: 1.75; color: var(--muted); }
@media (max-width: 1100px) {
    .principles { gap: 20px; }
    .principle-card { padding: 28px; }
    .principle-card h3 { font-size: 22px; }
}
@media (max-width: 850px) {
    .principles-band { padding: 56px 0; }
    .principles { grid-template-columns: 1fr; gap: 18px; }
    .principle-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0 22px; }
    .principle-icon { grid-row: 1 / 3; align-self: start; font-size: 36px; margin-top: 2px; }
    .principle-card h3 { margin: 0 0 12px; }
    .principle-card p { grid-column: 2; }
}
@media (max-width: 640px) {
    .principles-band { padding: 44px 0; }
    
    .principle-card { padding: 25px 22px; gap: 0 18px; }
    .principle-card p { font-size: 15px; }
}

/* Services: a quiet introduction and an accessible, icon-led list. */
.services.section { background: #fff; padding-block: 104px; overflow: clip; }
.services-editorial { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: clamp(48px, 6vw, 88px); align-items: start; }
.services-intro { position: sticky; top: 140px; }
.services-intro .section-number { margin-bottom: 24px; }
.services-intro h2 { max-width: 390px; font-size: clamp(34px, 3.1vw, 42px); font-weight: 550; line-height: 1.2; letter-spacing: -1.3px; text-wrap: initial; }
.services-intro > p:not(.section-number) { max-width: 390px; margin-top: 24px; font-size: 18px; line-height: 1.75; color: var(--muted); }
.services-note { display: flex; align-items: center; gap: 18px; max-width: 360px; margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--line); font-size: 16px; line-height: 1.75; color: var(--muted); }
.services-note > i { flex-shrink: 0; font-size: 28px; color: var(--purple); }
.service-list { min-width: 0; border-top: 1px solid var(--line); }
.service-row { border-bottom: 1px solid var(--line); background: #fff; transition: background .2s; }
.service-row[open] { background: #faf7fc; }
.service-row summary { display: grid; grid-template-columns: 46px minmax(0, 1fr) 32px; align-items: center; gap: 18px; padding: 20px; list-style: none; cursor: pointer; }
.service-row summary::-webkit-details-marker { display: none; }
.service-row summary:focus-visible { outline: 2px solid var(--purple); outline-offset: -2px; }
.service-icon { display: grid; place-items: center; width: 46px; height: 46px; color: var(--purple); background: #f6f0f8; border-radius: 4px; font-size: 26px; transition: background .2s; }
.service-icon i { --fa-width: auto; }
.service-row h3 { margin: 0; font-size: 20px; font-weight: 500; line-height: 1.45; letter-spacing: -.35px; transition: color .2s; }
.service-toggle { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #e7dceb; border-radius: 50%; color: var(--purple); font-size: 14px; transition: transform .2s, background .2s; }
.service-row[open] .service-toggle { transform: rotate(45deg); background: #eee2f3; border-color: transparent; }
.service-row[open] .service-icon { background: #eee2f3; }
.service-row[open] h3 { color: var(--purple-dark); }
.service-row .service-description { padding: 0 32px 28px 84px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.service-row .service-description p { padding: 0; border: 0; }
.service-row .service-description a { display: inline-block; margin-top: 18px; padding-bottom: 2px; border-bottom: 1px solid #baa2c5; color: var(--purple-dark); font-size: 16px; font-weight: 500; line-height: 1.5; }
.service-help { display: block; margin-top: 24px; padding-inline: 20px; text-align: left; color: var(--muted); font-size: 16px; line-height: 1.75; }
.service-help a { color: var(--purple-dark); text-decoration: underline; text-underline-offset: 4px; }
@media (hover: hover) {
    .service-row summary:hover { background: #faf7fc; }
    .service-row summary:hover h3 { color: var(--purple-dark); }
    .service-row summary:hover .service-icon { background: #eee2f3; }
}
@media (max-width: 1000px) {
    .services-editorial { grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: 36px; }
    .service-row summary { padding: 18px 12px; gap: 14px; grid-template-columns: 42px minmax(0, 1fr) 30px; }
    .service-icon { width: 42px; height: 42px; font-size: 24px; }
    .service-row h3 { font-size: 18px; }
    .service-toggle { width: 30px; height: 30px; }
    .service-row .service-description { padding-inline: 68px 24px; }
    .service-help { padding-inline: 12px; }
}
@media (max-width: 760px) {
    .services-editorial { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .services-intro { position: static; }
    .services-intro h2 { max-width: 500px; }
    .services-intro > p:not(.section-number) { max-width: 560px; }
    .services-note { max-width: 100%; margin-top: 24px; padding-top: 20px; }
}
@media (max-width: 640px) {
    .services.section { padding-block: 72px; }
    .services-intro .section-number { margin-bottom: 20px; }
    .services-intro h2 { font-size: 32px; letter-spacing: -1px; }
    .services-intro > p:not(.section-number) { margin-top: 20px; font-size: 17px; }
    .services-note { font-size: 16px; gap: 14px; }
    .services-note > i { font-size: 25px; }
    .service-row summary { padding: 18px 8px; gap: 12px; grid-template-columns: 36px minmax(0, 1fr) 28px; }
    .service-icon { width: 36px; height: 40px; font-size: 23px; }
    .service-row h3 { font-size: 17px; letter-spacing: -.2px; }
    .service-toggle { width: 28px; height: 28px; font-size: 13px; }
    .service-row .service-description { padding: 0 12px 24px 56px; }
    .service-help { padding-inline: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .service-row, .service-icon, .service-row h3, .service-toggle { transition: none; }
}

/* Clinic and waiting room share the same size and photo treatment. */
.spaces.section { background: #f0e8f4; padding-block: 104px; }
.spaces-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 18px 40px; margin-bottom: 40px; }
.spaces-heading .section-number { grid-column: 1 / -1; margin: 0; }
.spaces-heading h2 { margin: 0; font-size: clamp(34px, 3.1vw, 42px); font-weight: 550; line-height: 1.2; letter-spacing: -.035em; text-wrap: pretty; }
.spaces-heading p:last-child { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.75; white-space: nowrap; }
.space-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 40px; }
.space-photos figure { min-width: 0; margin: 0; }
.space-photo { width: 100%; aspect-ratio: 3 / 2; }
@media (max-width: 850px) {
    .spaces-heading, .space-photos { column-gap: 28px; }
}
@media (max-width: 1000px) {
    .spaces-heading { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-bottom: 32px; }
    .spaces-heading p:last-child { white-space: normal; }
}
@media (max-width: 640px) {
    .spaces.section { padding-block: 72px; }
    .spaces-heading h2 { font-size: 32px; letter-spacing: -1px; }
    .spaces-heading p:last-child { font-size: 17px; }
    .space-photos { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

/* Larger portraits, with a full-width introduction and natural text flow. */
.team.section { background: #fff; padding-block: 104px; }
.team-heading { margin-bottom: 48px; }
.team-heading .section-number { margin: 0 0 24px; }
.team-heading h2 { margin: 0; max-width: none; font-size: clamp(34px, 3.1vw, 42px); font-weight: 550; line-height: 1.2; letter-spacing: -.035em; text-wrap: initial; }
.team-heading > p:last-child { max-width: none; margin: 20px 0 0; font-size: 18px; line-height: 1.75; color: var(--muted); }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; align-items: start; }
.team-member { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.team-photo { width: 100%; aspect-ratio: 1; }
.team-member .member-copy { padding-top: 34px; }
.team-member h3 { margin: 0; font-size: 20px; font-weight: 500; line-height: 1.4; letter-spacing: -.35px; text-wrap: initial; }
.team-role { margin-top: 8px; font-size: 15px; line-height: 1.65; color: var(--purple); }
.team-bio { max-width: none; margin-top: 14px; color: var(--muted); font-size: 16px; line-height: 1.75; }
@media (max-width: 1100px) {
    .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 32px; }
}
@media (max-width: 640px) {
    .team.section { padding-block: 72px; }
    .team-heading { margin-bottom: 32px; }
    .team-heading .section-number { margin-bottom: 20px; }
    .team-heading h2 { font-size: 32px; letter-spacing: -1px; }
    .team-heading > p:last-child { font-size: 17px; }
    .team-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .team-member .member-copy { padding-top: 26px; }
}

/* The tinted sections share one pre-rendered, fixed raster background. */
.tinted-section { position: relative; isolation: isolate; overflow: clip; background: #f0e8f4; }
.tinted-section > .container { position: relative; z-index: 1; }

.results.section { padding-block: 104px; }
.results-heading { margin-bottom: 40px; }
.results-heading .section-number { margin: 0 0 24px; }
.results-heading h2 { margin: 0; max-width: none; font-size: clamp(34px, 3.1vw, 42px); font-weight: 550; line-height: 1.2; letter-spacing: -.035em; text-wrap: initial; }
.results-heading p:not(.section-number) { max-width: none; margin: 16px 0 0; font-size: 16px; line-height: 1.8; color: var(--muted); }
.results-heading p.results-lead { margin-top: 24px; font-size: 18px; line-height: 1.75; }
.results-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.results-grid figure { min-width: 0; margin: 0; }
.result-photo { width: 100%; aspect-ratio: 1058 / 378; }
.result-zoom { position: absolute; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: #171419; cursor: zoom-in; }
.result-zoom:focus-visible { outline: 2px solid var(--purple-dark); outline-offset: 5px; }
.result-zoom img { display: block; width: 100%; height: 100%; object-fit: contain; }
.zoom-label { position: absolute; right: 12px; bottom: 12px; display: flex; align-items: center; gap: 8px; padding: 7px 12px; background: #090909c9; color: #fff; font-size: 13px; line-height: 1.5; }
.results-grid figcaption { display: grid; grid-template-columns: 1fr 1fr; text-align: center; margin-top: 28px; font-size: 14px; line-height: 1.75; color: var(--muted); }
.results-note { margin-top: 28px; font-size: 14px; line-height: 1.75; color: var(--muted); }
.gallery-dialog { width: min(1200px, calc(100vw - 40px)); max-height: 92dvh; margin: auto; padding: 64px 24px 24px; border: 1px solid #ffffff24; border-radius: 0; background: #080808; color: #fff; box-shadow: 0 24px 80px #0009; }
.gallery-dialog::backdrop { background: #000e; }
.gallery-dialog > .icon-button { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; border-color: #ffffff50; color: #fff; background: transparent; font-size: 20px; }
.gallery-dialog > .icon-button:hover { background: #fff; color: #080808; }
.gallery-dialog > .icon-button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.gallery-dialog img { display: block; width: 100%; max-height: calc(92dvh - 150px); object-fit: contain; filter: none; }
.gallery-dialog p { margin-top: 18px; color: #ddd; font-size: 16px; line-height: 1.6; text-align: center; }

@media (max-width: 640px) {
    .results.section { padding-block: 72px; }
    .results-heading { margin-bottom: 32px; }
    .results-heading .section-number { margin-bottom: 20px; }
    .results-heading h2 { font-size: 32px; letter-spacing: -1px; }
    .results-heading p.results-lead { font-size: 17px; margin-top: 20px; }
    .results-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .zoom-label { right: 8px; bottom: 8px; padding: 5px 9px; font-size: 12px; }
    .gallery-dialog { width: calc(100vw - 20px); padding: 64px 10px 20px; }
    .gallery-dialog p { font-size: 15px; }
    
}
@media (prefers-reduced-motion: reduce) {
    .result-zoom img { transition: none; }
}

/* An opaque sticky header avoids a full-width blur pass on every scroll. */
.site-header { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
.cookie-dialog::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Closing sections use the same type scale and spacing as the rest of the page. */
.faq.section { background: #fff; padding-block: 104px; }
.faq-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; padding: 0; border: 0; }
.faq .section-number, .contact-heading .section-number { margin: 0 0 24px; }
.faq h2, .contact-heading h2 { max-width: none; margin: 0; font-size: clamp(34px, 3.1vw, 42px); font-weight: 550; line-height: 1.2; letter-spacing: -.035em; text-wrap: initial; }
.faq-list { margin: 0; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list details[open] { background: #faf7fc; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; padding: 24px 20px; gap: 24px; font-family: Sora, InstrumentSans, sans-serif; font-size: 20px; font-weight: 500; line-height: 1.5; }
.faq-list summary:focus-visible { outline: 2px solid var(--purple); outline-offset: -2px; }
.faq-list summary i { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; font-size: 14px; border: 1px solid var(--line); border-radius: 50%; }
.faq-list details[open] summary i { background: #eee2f3; border-color: transparent; }
.faq-list p { padding: 0 76px 28px 20px; font-size: 16px; line-height: 1.8; color: var(--muted); }
.contact.section { padding-block: 104px; }
.contact-heading { margin-bottom: 44px; }
.contact-heading > p:last-child { margin-top: 20px; font-size: 18px; line-height: 1.75; color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: start; }
.contact-info { min-width: 0; }
.contact-phone { display: flex; align-items: center; gap: 16px; color: var(--purple-dark); font-family: Sora, InstrumentSans, sans-serif; font-size: 36px; font-weight: 500; line-height: 1.3; letter-spacing: -1px; }
.contact-phone > i:first-child { margin: 0; font-size: 26px; }
.contact-email { display: inline-block; margin-top: 18px; color: var(--ink); font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.contact-details { display: grid; grid-template-columns: 1fr 1.2fr; gap: 28px; max-width: none; margin-top: 36px; }
.contact-details > div { min-width: 0; }
.contact-details > div > i { font-size: 25px; margin-bottom: 16px; color: var(--purple); }
.contact-details h3 { margin: 0 0 12px; font-size: 18px; font-weight: 500; line-height: 1.5; }
.contact-details p, .contact-details dl { margin: 0; font-size: 16px; line-height: 1.75; color: var(--muted); }
.contact-details dd { margin: 2px 0 12px; font-weight: 500; color: var(--ink); }
.payment-note, .contact-note { display: flex; align-items: start; gap: 12px; max-width: none; margin-top: 24px; font-size: 15px; line-height: 1.75; color: var(--muted); }
.payment-note > i, .contact-note > i { flex: 0 0 22px; margin-top: 5px; font-size: 20px; color: var(--purple); }
.contact-note { margin-top: 16px; }
.map-card { align-self: start; margin: 0; border-radius: 4px; background: #fff; }
.map-container { height: 420px; }
.map-placeholder { padding: 28px; }
.map-pin { width: 56px; height: 56px; font-size: 28px; margin-bottom: 18px; box-shadow: none; }
.map-placeholder strong { font-family: Sora, InstrumentSans, sans-serif; font-size: 24px; font-weight: 500; line-height: 1.4; }
.map-placeholder > span:not(.map-pin) { margin-top: 8px; font-size: 16px; line-height: 1.7; }
.map-placeholder .button { margin-top: 22px; padding: 14px 22px; min-height: 48px; font-size: 15px; }
.map-placeholder > p { max-width: 390px; margin-top: 18px; font-size: 14px; line-height: 1.7; }
.map-directions { gap: 20px; padding: 20px 24px; font-size: 16px; font-weight: 500; line-height: 1.5; }
.map-directions > span { font-size: 14px; }
.site-footer { padding-top: 56px; background: #fff; }
.footer-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 40px; padding-bottom: 36px; }
.footer-top > p { display: block; max-width: none; margin: 0; font-size: 17px; line-height: 1.75; color: var(--muted); }
.back-top { max-width: none; color: var(--purple-dark); font-size: 15px; font-weight: 500; line-height: 1.6; white-space: nowrap; }
.footer-bottom { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 32px; padding: 28px 0 84px; }
.footer-bottom small { font-size: 14px; line-height: 1.7; }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: 14px 24px; }
.footer-bottom nav a { font-size: 14px; line-height: 1.7; }
.cookie-settings-fab { position: fixed; left: 20px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 40; display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 1px solid #fff5; border-radius: 50%; color: #fff; background: var(--purple); box-shadow: 0 4px 14px #35243826; font-size: 26px; }
.cookie-settings-fab:hover { background: var(--purple-dark); }
.cookie-settings-fab:focus-visible { outline: 2px solid var(--purple-dark); outline-offset: 4px; }
.cookie-banner { background: #fff; }
.cookie-copy strong { font-size: 18px; }
.cookie-copy p { font-size: 15px; }
.cookie-actions .button, .cookie-actions .text-button { font-size: 14px; }
.cookie-dialog h2 { font-size: 32px; font-weight: 550; }
.cookie-dialog > p { font-size: 15px; }
@media (max-width: 1000px) {
    .contact-grid { gap: 36px; }
    .contact-phone { font-size: 30px; }
    .contact-email { font-size: 18px; }
    .contact-details { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .contact-details > div { display: grid; grid-template-columns: 26px minmax(0, 1fr); column-gap: 14px; }
    .contact-details > div > i { grid-row: 1 / 3; margin-top: 2px; }
    .contact-details p, .contact-details dl { grid-column: 2; }
    .map-container { height: 460px; }
    .footer-top { grid-template-columns: minmax(0, 1fr) auto; gap: 24px; }
    .footer-top > p { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 760px) {
    .contact-grid { grid-template-columns: minmax(0, 1fr); }
    .contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .map-container { height: 380px; }
}
@media (max-width: 640px) {
    .faq.section, .contact.section { padding-block: 72px; }
    .faq h2, .contact-heading h2 { font-size: 32px; letter-spacing: -1px; }
    .faq .section-number, .contact-heading .section-number { margin-bottom: 20px; }
    .faq-grid { gap: 28px; }
    .faq-list summary { padding: 20px 8px; gap: 14px; font-size: 17px; }
    .faq-list summary i { flex-basis: 28px; width: 28px; height: 28px; font-size: 13px; }
    .faq-list p { padding: 0 12px 24px 8px; }
    .contact-heading { margin-bottom: 32px; }
    .contact-heading > p:last-child { font-size: 17px; }
    .contact-details { grid-template-columns: minmax(0, 1fr); }
    .contact-phone { font-size: 30px; gap: 12px; }
    .contact-phone > i:first-child { font-size: 23px; }
    .map-placeholder { padding: 20px; }
    .map-placeholder strong { font-size: 22px; }
    .map-placeholder > p { font-size: 14px; }
    .map-directions { padding: 18px; gap: 14px; flex-wrap: wrap; }
    .site-footer { padding-top: 40px; }
    .footer-top { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding-bottom: 28px; }
    .footer-top > p { font-size: 16px; }
    .back-top { text-align: left; font-size: 15px; }
    .footer-bottom { align-items: flex-start; gap: 18px; padding-top: 24px; }
    .footer-bottom nav { gap: 12px 20px; }
    .cookie-settings-fab { left: 14px; bottom: max(14px, env(safe-area-inset-bottom)); width: 52px; height: 52px; font-size: 24px; }
    .cookie-copy strong { font-size: 17px; }
    .cookie-copy p { font-size: 14px; }
    .cookie-actions .button, .cookie-actions .text-button { font-size: 13px; }
}
@media print { .cookie-settings-fab { display: none; } }

.tinted-section {
    background-color: #f0e8f4;
    background-image: url('/assets/images/tooth-watermark.webp');
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: right -80px center;
    background-size: 760px 760px;
}
@media (max-width: 850px) {
    .tinted-section { background-size: 620px 620px; background-position: right -140px center; }
}
@media (max-width: 640px) {
    .tinted-section { background-size: 440px 440px; background-position: right -150px center; }
}
@media (prefers-reduced-motion: reduce) {
    .tinted-section { background-attachment: scroll; }
}

/* Consent controls use equal visual emphasis and native keyboard interaction. */
.cookie-actions .button{flex:1;min-width:154px}
.cookie-dialog{width:min(600px,calc(100% - 32px));padding:30px;border-radius:4px;max-height:90dvh;overflow:auto}
.cookie-dialog .dialog-header .icon-button{width:42px;height:42px;font-size:21px}
.cookie-dialog h2{font-size:30px;line-height:1.25;font-weight:550;letter-spacing:-.9px;margin-bottom:18px}
.cookie-dialog>p{font-size:15px;line-height:1.75}
.cookie-dialog .eyebrow{font-size:11px}
.cookie-dialog .consent-option{gap:24px;align-items:center;padding:22px 0;font-size:16px}
.cookie-dialog .consent-option strong{font-family:Sora,InstrumentSans,sans-serif;font-size:16px;font-weight:500}
.cookie-dialog .consent-option p,.cookie-dialog .option-detail{font-size:14px;line-height:1.7;margin-top:8px}
.cookie-dialog .always-on{font-size:12px;font-weight:500}
.cookie-dialog .consent-option input{appearance:none;-webkit-appearance:none;width:44px;height:26px;border:1px solid #b9acbf;background:#e9e2ed;border-radius:99px;position:relative;cursor:pointer;margin:0;flex:0 0 44px}
.cookie-dialog .consent-option input::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 1px 3px #302a3429}
.cookie-dialog .consent-option input:checked{background:var(--purple);border-color:var(--purple)}
.cookie-dialog .consent-option input:checked::before{left:21px}
.cookie-dialog .dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.cookie-dialog .dialog-actions .button{font-size:14px;padding:14px 16px;min-height:50px}
@media(max-width:640px){.cookie-dialog{padding:24px 20px}.cookie-dialog h2{font-size:27px}.cookie-dialog .consent-option{gap:16px}.cookie-dialog .dialog-actions{gap:10px}.cookie-dialog .dialog-actions .button{font-size:13px;padding:12px 9px}.cookie-actions .button{min-width:0;font-size:13px}.cookie-dialog .always-on{white-space:normal;text-align:right;min-width:60px}}
@media(forced-colors:active){.cookie-dialog .consent-option input{appearance:auto;-webkit-appearance:auto}.cookie-dialog .consent-option input::before{display:none}}

/* Safe CMS formatting follows the existing section typography. */
.cms-copy{overflow-wrap:anywhere}
h2.cms-copy,h3.cms-copy{font-size:24px!important;line-height:1.4!important;font-weight:500!important;letter-spacing:-.5px!important;margin:24px 0 14px!important}
h3.cms-copy{font-size:20px!important}
ul.cms-copy,ol.cms-copy{padding-left:24px;margin:18px 0;font-size:16px;line-height:1.8;color:var(--muted)}
blockquote.cms-copy{margin:20px 0;padding:8px 20px;border-left:3px solid #c8afd5;color:var(--muted);font-size:17px}
.cms-copy a{color:var(--purple-dark);text-decoration:underline;text-underline-offset:3px}
.cms-copy li+li{margin-top:6px}
.spaces-heading .cms-copy{white-space:normal;min-width:0}
@media(min-width:1201px){.spaces-heading{grid-template-columns:auto minmax(0,1fr)}.spaces-heading .cms-copy{text-align:right}}
@media(min-width:641px) and (max-width:850px){.principle-card>.cms-copy{grid-column:2}}
