/* Shared interaction surfaces. Catalogue styles live in services.css; image
   geometry and contour animation live in feature-motion.css. */
:root{--control-duration:160ms;--content-duration:180ms;--category-duration:240ms;--panel-enter:180ms;--panel-exit:160ms}
.btn,.text-link,.service-tile,.treatment-card,.result-card,.nav-links a{transition:color var(--control-duration) ease,background-color var(--control-duration) ease,border-color var(--control-duration) ease}
@media(hover:hover) and (pointer:fine){.treatment-card:hover,.result-card:hover{border-color:var(--gold)}.service-tile:hover>img{transform:scale(1.01)}}
@media(hover:none){.service-tile:hover>img{transform:none}}
/* Native disclosures keep their keyboard behavior, with one aligned control. */
details>summary{position:relative;display:block;list-style:none;cursor:pointer;min-height:48px;padding:12px 32px 12px 0;line-height:1.5}
details>summary::-webkit-details-marker{display:none}
details>summary::marker{content:""}
details>summary::after{content:"";position:absolute;width:16px;height:16px;right:0;top:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23c9b88f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E") center/16px 16px no-repeat;transform:translateY(-50%);transition:transform var(--control-duration) ease}
details[open]>summary::after{transform:translateY(-50%) rotate(180deg)}
.faq{padding:4px 0;border-bottom:1px solid var(--line)}
.faq>summary,.guide-index>summary,.enquiry-extras>summary,.catalogue-group>summary{display:block;list-style:none;padding:12px 32px 12px 0;min-height:48px}
.faq>summary{font-size:16px;line-height:1.5}
.faq p{padding:4px 0 16px;font-size:16px;line-height:1.75}
body.panel-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
html:has(body.panel-open){scroll-behavior:auto;scrollbar-gutter:stable}
.site-dialog{width:min(1040px,calc(100% - 48px));max-width:none;max-height:90dvh;padding:0;border:1px solid #c9b88f55;background:var(--bg);color:var(--ink);overflow:hidden;box-shadow:0 24px 80px #0008}
.site-dialog[open]{display:flex;flex-direction:column;animation:panel-in var(--panel-enter) ease-out both}
.site-dialog::backdrop{background:rgb(0 0 0 / .68);animation:backdrop-in var(--panel-enter) ease-out both}
.site-dialog.is-closing{animation:panel-out var(--panel-exit) ease-in both}
.panel-header{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:64px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--line);z-index:2}
.panel-context{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
.panel-context:focus,.explorer-content h1[tabindex="-1"]:focus,.discovery-heading h2[tabindex="-1"]:focus{outline:none}
.panel-full{font-size:13px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.panel-full[hidden],.panel-back[hidden]{display:none}
.panel-back,.panel-close{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--ink)}
.panel-back{padding:8px 12px;gap:8px;font-size:14px}.panel-close{width:44px;flex:0 0 44px;font-size:28px;line-height:1}
.panel-back:hover,.panel-close:hover{border-color:var(--gold)}
.panel-body{position:relative;z-index:1;overflow:auto;overscroll-behavior:contain;min-height:0;scroll-behavior:auto;scroll-padding-top:24px;scrollbar-gutter:stable}
.panel-body>.panel-status{min-height:240px;padding:32px}.panel-status .btn{margin-top:16px}
.panel-body>.explorer-content{animation:content-in var(--content-duration) ease-out both}
.panel-body .container{width:calc(100% - 64px)}
.panel-body .page-intro{padding:28px 0 24px}.panel-body .page-intro h1{font-size:clamp(32px,4vw,48px);margin-bottom:16px}
.panel-body .section{padding-block:32px}.panel-body .split-section{gap:32px}.panel-body .treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel-body .treatment-hero{padding-top:28px;padding-bottom:24px;gap:32px;align-items:start}
.panel-body .treatment-hero-copy h1{font-size:clamp(32px,4vw,48px);letter-spacing:-1px;margin-bottom:16px}
.panel-body .treatment-hero-copy>.eyebrow{font-size:11px;margin-bottom:12px}
[data-treatment-summary]{display:none}
.panel-body [data-treatment-summary]{display:block;color:var(--muted);font-size:16px;line-height:1.65}
.panel-body [data-treatment-intro]{margin-top:20px;font-size:16px;line-height:1.75}
.panel-body .intro-opening{display:none}
.panel-body .back-to-treatments{display:none}
.panel-body .reading-layout{display:block;padding-bottom:32px}.panel-body .reading-content{max-width:none}.panel-body .guide-index,.panel-body .guide-toc{display:none}
.panel-body .guide-entry{padding:28px 0 0;border:0;scroll-margin-top:0}
.panel-body .guide-entry h1{font:400 clamp(32px,4vw,48px)/1.1 var(--serif);letter-spacing:-1px;margin:0 0 20px}
.panel-body .contact-first{display:block;padding-bottom:32px}.panel-body .contact-panel{padding:24px}.panel-body .enquiry-panel{border:0;padding:0;background:transparent}.panel-body .enquiry-panel>h2{display:none}
.panel-photo{margin:0;min-height:240px;padding:24px;display:grid;place-items:center;gap:12px}.panel-photo img{width:auto;max-width:100%;height:auto;max-height:72dvh;object-fit:contain}.panel-photo figcaption{font-size:14px;color:var(--muted)}
.guide-entry-image{position:relative;margin:0 0 24px;overflow:hidden;background:var(--panel)}
.guide-entry-image img{display:block;width:100%;height:240px;object-fit:cover}
.guide-entry-image img[data-media-kind=portrait],.guide-entry-image img[data-media-kind=comparison]{object-fit:contain}
.guide-entry-image figcaption{margin:0;padding:8px 12px;color:var(--muted);font-size:12px;line-height:1.5;border:1px solid var(--line);border-top:0}
.family-choices a{padding:0;overflow:hidden;display:flex;flex-direction:column}.family-choices .family-choice-copy{display:block;padding:16px}.family-choices .discovery-card-media img{height:120px;object-fit:cover}.family-choices .discovery-card-media figcaption{font-size:12px;padding:4px 8px;color:var(--muted)}
/* Explorer treatments are flattened by the controller for an explicit order. */
.panel-body .guide-entry.explorer-treatment{width:calc(100% - 64px);margin-inline:auto}
.panel-body .explorer-treatment{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px 32px;align-items:start}
.panel-body .explorer-treatment>.eyebrow{display:none}
.panel-body .explorer-treatment>h1{grid-column:2;grid-row:1;margin:0;font:400 clamp(32px,4vw,48px)/1.1 var(--serif);letter-spacing:-1px}
.panel-body .explorer-treatment>.treatment-hero-image,.panel-body .explorer-treatment>.guide-entry-image{grid-column:1;grid-row:1/5;margin:0}
.panel-body .explorer-treatment>[data-treatment-summary]{grid-column:2;grid-row:2;margin:0}
.panel-body .explorer-treatment>.btn{grid-column:2;grid-row:3;justify-self:start;margin:0}
.panel-body .explorer-treatment>[data-treatment-intro]{grid-column:1/-1;grid-row:5;margin:8px 0 0}
.panel-body .explorer-treatment>:not(h1):not(.eyebrow):not(.treatment-hero-image):not(.guide-entry-image):not([data-treatment-summary]):not(.btn):not([data-treatment-intro]){grid-column:1/-1}
[data-modal-open=true] body>.site-header,[data-modal-open=true] body>main,[data-modal-open=true] body>.site-footer{pointer-events:none}
@keyframes panel-in{from{transform:translateY(4px)}to{transform:none}}
@keyframes panel-out{from{opacity:1}to{opacity:0;transform:translateY(4px)}}
@keyframes backdrop-in{from{background:rgb(0 0 0 / 0)}to{background:rgb(0 0 0 / .68)}}
@keyframes content-in{from{opacity:.5}to{opacity:1}}
@media(max-width:600px){
.site-dialog{inset:0;width:100%;height:100dvh;max-height:100dvh;margin:0;border:0}
.panel-header{min-height:calc(60px + env(safe-area-inset-top));padding:calc(8px + env(safe-area-inset-top)) 12px 8px;gap:8px}
.panel-context{font-size:12px}.panel-full{font-size:12px}.panel-back{padding-inline:10px}.panel-close{width:44px}
.panel-body{padding-bottom:env(safe-area-inset-bottom)}.panel-body .container{width:calc(100% - 40px)}
.panel-body .treatment-grid,.panel-body .contact-first,.panel-body .split-section{grid-template-columns:1fr}
.panel-body .page-intro{padding-top:24px;padding-bottom:20px}.panel-body .page-intro h1{font-size:36px}
.panel-body .treatment-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding-top:24px}
.panel-body .treatment-hero-copy{display:contents}.panel-body .treatment-hero-copy>.eyebrow{display:none}
.panel-body .treatment-hero-copy>h1{grid-row:1;margin:0;font-size:36px;line-height:1.1}
.panel-body .treatment-hero-image{grid-row:2}
.panel-body .treatment-hero-copy>[data-treatment-summary]{grid-row:3;margin:0}
.panel-body .treatment-hero-copy>.btn{grid-row:4;margin:0;justify-self:start}
.panel-body .treatment-hero-copy>[data-treatment-intro]{grid-row:5;margin:8px 0 0}
.panel-body .contact-panel{padding:20px}.panel-body .enquiry-panel{padding:0}.panel-photo{padding:16px}
.guide-entry-image img{height:200px}.panel-body .guide-entry{padding-top:24px}
.panel-body .guide-entry.explorer-treatment{width:calc(100% - 40px)}
.panel-body .explorer-treatment{grid-template-columns:minmax(0,1fr);gap:16px}
.panel-body .explorer-treatment>h1{grid-column:1;grid-row:1;font-size:36px}
.panel-body .explorer-treatment>.treatment-hero-image,.panel-body .explorer-treatment>.guide-entry-image{grid-column:1;grid-row:2}
.panel-body .explorer-treatment>[data-treatment-summary]{grid-column:1;grid-row:3}
.panel-body .explorer-treatment>.btn{grid-column:1;grid-row:4}
.panel-body .explorer-treatment>[data-treatment-intro]{grid-column:1;grid-row:5}
.intro-opening{display:none}
}
[data-motion=reduced]{scroll-behavior:auto!important}[data-motion=reduced] *,[data-motion=reduced] *::before,[data-motion=reduced] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
[data-motion=reduced] .service-tile:hover>img{transform:none!important}
@media(prefers-reduced-motion:reduce){.site-dialog,.site-dialog::backdrop,.panel-body>.explorer-content{animation:none!important}}

/* Preserve every panel in comparison references. */
.panel-body .treatment-hero-image img[data-media-kind=comparison],.family-choices .discovery-card-media img[data-media-kind=comparison]{object-fit:contain;background:var(--bg)}

/* Keep the explorer quiet without removing access to care or family navigation. */
.panel-body .reading-narrow{max-width:720px}
.panel-body .treatment-guide{display:block}
.panel-body .treatment-details h2,.panel-body [data-client-care] h2{font-size:30px}
.panel-body .explorer-treatment>.treatment-overview{grid-column:1/-1;margin:0}
.panel-body .explorer-treatment>h1{overflow-wrap:anywhere}
.panel-body .explorer-treatment>.treatment-hero-image img{height:300px}
.panel-body .reading-layout .guide-index{display:block;position:static;margin-bottom:24px;padding:8px 20px}
.panel-body .guide-index .guide-toc{display:block;max-height:40dvh;overflow:auto}
.panel-body .guide-index .guide-toc a{border-top:1px solid var(--line)}
.panel-context:focus-visible,.explorer-content h1[tabindex="-1"]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.panel-body .care-shortcuts{padding-block:8px}
.panel-body .treatment-overview [data-treatment-intro]{margin:0}
@media(max-width:600px){
.panel-body .explorer-treatment>h1{grid-row:1;font-size:clamp(30px,8.5vw,38px)}
.panel-body .explorer-treatment>[data-treatment-summary]{grid-row:2}
.panel-body .explorer-treatment>.btn{grid-row:3;max-width:100%}
.panel-body .explorer-treatment>.treatment-hero-image,.panel-body .explorer-treatment>.guide-entry-image{grid-row:4}
.panel-body .explorer-treatment>.treatment-hero-image img,.panel-body .explorer-treatment>.guide-entry-image img{height:auto;aspect-ratio:4/3;max-height:30svh}
.panel-body .explorer-treatment>.treatment-overview{grid-row:5;grid-column:1}
.panel-body .explorer-treatment>[data-treatment-intro]{grid-row:5}
.panel-body .section{padding-block:28px}.panel-body .treatment-details h2,.panel-body [data-client-care] h2{font-size:28px}
}
@media(max-height:500px) and (orientation:landscape){.site-dialog{max-height:100dvh;height:100dvh;margin-block:0}.panel-header{min-height:52px}.panel-body .explorer-treatment>.treatment-hero-image img{height:180px}}
/* Photo-stage wrappers share the same responsive bounds as plain images. */
[data-treatment-summary]{display:block}
.treatment-overview .intro-opening{display:inline}
.treatment-hero-image>.photo-stage>img{height:clamp(260px,34vw,440px)}
@media(max-width:600px){.treatment-hero-image>.photo-stage>img,.panel-body .explorer-treatment>.treatment-hero-image>.photo-stage>img{height:auto;aspect-ratio:4/3;max-height:30svh}.treatment-hero-image>.photo-stage--comparison>img,.panel-body .explorer-treatment>.treatment-hero-image>.photo-stage--comparison>img{aspect-ratio:auto;object-fit:contain}}
@media(max-height:500px) and (orientation:landscape){.treatment-hero-image>.photo-stage>img,.panel-body .explorer-treatment>.treatment-hero-image>.photo-stage>img{height:180px;max-height:55svh}}

/* Keep the same visible introduction and picture relationship in the explorer. */
.panel-body .explorer-treatment{display:flow-root;max-width:960px}
.panel-body .explorer-treatment>.treatment-hero-image,.panel-body .explorer-treatment>.guide-entry-image{float:right;width:40%;margin:0 0 24px 28px}
.panel-body .explorer-treatment>.treatment-hero-image img,.panel-body .explorer-treatment>.guide-entry-image img{height:auto;aspect-ratio:4/3;max-height:none;object-fit:cover}
.panel-body .explorer-treatment>h1{font-size:clamp(32px,3.5vw,46px);line-height:1.13;margin:0 0 18px}
.panel-body .explorer-treatment>.treatment-overview{margin:20px 0 24px;max-width:none}
.panel-body .explorer-treatment [data-treatment-intro]{margin:0;line-height:1.8}
.panel-body .explorer-treatment>[data-treatment-summary]{max-width:none;margin:0 0 20px;font-size:17px}
.panel-body .explorer-treatment>.btn{margin:0 0 20px}
.panel-body .explorer-treatment>.faq,.panel-body .explorer-treatment>.personal-quote,.panel-body .explorer-treatment>.related-inline{clear:both}
.panel-body .explorer-treatment img[data-media-kind=comparison]{aspect-ratio:auto;object-fit:contain}
@media(max-width:600px){
.panel-body .explorer-treatment{display:flex;flex-direction:column;gap:0}
.panel-body .explorer-treatment>*{order:6}
.panel-body .explorer-treatment>.eyebrow{display:none}
.panel-body .explorer-treatment>h1{order:1;font-size:clamp(30px,8.5vw,38px)}
.panel-body .explorer-treatment>[data-treatment-summary]{order:2;font-size:16px}
.panel-body .explorer-treatment>.treatment-hero-image,.panel-body .explorer-treatment>.guide-entry-image{float:none;order:4;width:100%;margin:0 0 24px}
.panel-body .explorer-treatment>.treatment-overview,.panel-body .explorer-treatment>p:not([data-treatment-summary]):not(.personal-quote):not(.related-inline):not(.guide-aliases){order:5;margin:0 0 24px}
.panel-body .explorer-treatment>.btn{order:3;align-self:flex-start;margin:0 0 20px}
.panel-body .explorer-treatment>.treatment-overview p{font-size:16px}
.panel-body .explorer-treatment>.faq{align-self:stretch}
}
