/* Homepage refinement: compact type, independent surfaces, app shell, seamless rails. */
:root {
  --section-space: clamp(2.8rem, 4.5vw, 4.5rem);
  --gutter: clamp(1rem, 3.5vw, 2.75rem);
  --text-muted: #545452;
  --border-strong: #777773;
  --accent-text: var(--accent);
  --accent-on-dark: color-mix(in srgb, var(--accent) 45%, #ffffff);
  --header-height: 4.75rem;
}
html[data-theme="dark"] { --text-muted:#c2bfbb; --border-strong:#898a8d; --accent-text:var(--accent); }
html[data-theme="light"][data-accent="0"] { --accent:#c92632; --on-accent:#fff; }
html[data-theme="light"][data-accent="3"] { --accent:#bd4036; --on-accent:#fff; }
html[data-theme="light"][data-accent="4"] { --accent:#a44b35; --on-accent:#fff; }
html[data-theme="dark"][data-accent="0"] { --accent:#ff6570; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="1"] { --accent:#ff7a83; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="2"] { --accent:#ff917e; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="3"] { --accent:#f6ae66; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="6"] { --accent:#68c8dd; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="7"] { --accent:#9bacff; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="8"] { --accent:#cb9cf1; --on-accent:#120a0b; }
html[data-theme="dark"][data-accent="9"] { --accent:#f399bf; --on-accent:#120a0b; }
html { overscroll-behavior:none; }
body { font-size:1rem; line-height:1.65; }
h1,h2,h3 { line-height:1.14; letter-spacing:-.035em; }
h1 { font-size:clamp(2.4rem,var(--fluid-h1),3.6rem); }
h2 { font-size:clamp(1.8rem,var(--fluid-h2),2.65rem); }
h3 { font-size:1.18rem; line-height:1.28; letter-spacing:-.025em; }
h1 em,h2 em { color:var(--accent-text); }
button, .button, nav, .carousel, img, .brand-logo { -webkit-user-select:none; user-select:none; }
img { -webkit-user-drag:none; }
button, a, label { touch-action:manipulation; }
:focus-visible { outline:3px solid var(--accent-text); outline-offset:4px; }
.section { padding-block:var(--section-space); }
.why,.testimonials { padding-top:var(--section-space); }
.section-heading { margin-bottom:2rem; }
.section-heading--split { grid-template-columns:1.2fr .8fr; gap:2rem; }
.section-heading--split > p { max-width:34rem; font-size:.97rem; }
.eyebrow { font-size:.72rem; letter-spacing:.13em; margin-bottom:.85rem; }
.button { min-height:2.9rem; padding:.75rem 1rem; font-size:.88rem; border-radius:.65rem; box-shadow:none; }
.button--primary:hover { background:var(--accent); color:var(--on-accent); box-shadow:0 5px 15px color-mix(in srgb,var(--accent) 24%,transparent); }
.icon-button { min-width:2.75rem; min-height:2.75rem; }
body, .section, .site-header, .control-panel, .sidebar, .sidebar-tool, .bottom-bar, .why-card, .service-slide, .insurance-slide, .team-member, .button, .theme-options span, .a11y-grid button, .accent-swatch, .pathway-card, .new-patient-offer {
  transition-property:background-color,color,border-color,box-shadow,opacity,transform;
  transition-duration:300ms;
  transition-timing-function:cubic-bezier(.2,.7,.2,1);
}
h1,h2,h3,p,a,svg { transition:color 280ms ease; }
.site-scroll { outline:none; }
.hero { min-height:0; padding-block:3.6rem 3rem; }
.hero-grid { grid-template-columns:1fr 1.08fr; gap:3.5rem; }
.hero-copy { padding-top:0; }
.hero-copy h1 { max-width:17ch; }
.hero-lede { margin-top:1.1rem; font-size:1.025rem; }
.hero-actions { margin-top:1.4rem; gap:.6rem; }
.hero-proof { margin-top:1.25rem; font-size:.76rem; gap:.6rem 1rem; }
.hero-frame { border-radius:5rem 1rem 4rem 1rem; }
.scroll-cue { display:none; }
.trust-grid { min-height:7rem; }
.trust-item { padding-block:1.15rem; }
.trust-item small { color:#c4c1bd; }
.trust-item > svg,.trust-book svg { color:var(--accent-on-dark); }
.nav-submenu__intro span { color:var(--accent-on-dark); }
.support-warning .panel-kicker { color:#c2bfbb; }
.support-warning__dialog > svg { color:var(--accent-on-dark); }
.transition-divider { height:clamp(1.6rem,3.3vw,3rem); }
.divider--terrace { --divider-from:var(--bg); --divider-to:var(--surface-soft); }
.divider--ribbon,.divider--fold { --divider-from:var(--surface-soft); --divider-to:var(--bg); }
.divider--zigzag { --divider-from:var(--bg); }
.doctor-grid { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:3.8rem; }
.doctor-visual { width:min(100%,22rem); justify-self:center; }
.doctor-copy h2,.experience-copy h2,.contact-copy h2 { margin-bottom:1.1rem; }
.doctor-intro { font-size:1.025rem; }
.doctor-copy > p { font-size:.95rem; }
.credential-list { margin-top:1.25rem; }
.credential-list > div { padding:.85rem; }
.experience-grid { grid-template-columns:1fr 1.05fr; gap:3rem; }
.experience-copy p { font-size:.97rem; color:#d0cdc8; }
.experience-copy h2 em,.final-cta h2 em { color:var(--accent-on-dark); }
.experience-points { margin-block:1.2rem; }
.experience-points svg { color:var(--accent-on-dark); }
.experience-visual figcaption { color:#c5c1bc; }
.final-cta__inner { max-width:53rem; display:flex; flex-direction:column; align-items:center; text-align:center; }
.final-cta h2 { max-width:26ch; }
.final-cta .eyebrow { justify-content:center; }
.final-cta__inner > div:last-child { justify-content:center; margin-top:1.35rem; }
.cta-description { max-width:42rem; margin-top:1.2rem; color:#cecac5; }
.site-footer { padding-top:3rem; }
.footer-grid { padding-bottom:2.5rem; gap:2.5rem; }
.footer-brand > p,.footer-links a,.footer-contact a { color:#c4c1bc; }
.footer-bottom { color:#b9b6b1; font-size:.78rem; }
.social-links { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.1rem; }
.social-links .social-link { margin:0; width:2.5rem; height:2.5rem; border:1px solid #707176; border-radius:.6rem; display:grid; place-items:center; color:#f7f5f2; }
.social-links .social-link:hover { color:#fff; background:#303135; }
.social-link svg { width:1.05rem; height:1.05rem; }

/* The two layers share the original sprite. Only monochrome ink is inverted. */
.brand-logo--footer,.brand-logo__art,html[data-theme="dark"] .site-header .brand-logo__art { filter:none; }
.brand-logo__art { position:relative; background-image:none; isolation:isolate; }
.brand-logo__art::before,.brand-logo__art::after { content:""; position:absolute; inset:0; background:url('/static/images/sprites.webp') 0 0 / 366.6667% 454.5455% no-repeat; }
html[data-theme="dark"] .brand-logo__art::before,.brand-logo--footer .brand-logo__art::before { filter:brightness(0) invert(1); }
.brand-logo__art::after { clip-path:polygon(92% 12%,97% 12%,97% 23%,92% 23%); background:var(--accent); -webkit-mask:url('/static/images/sprites.webp') 0 0 / 366.6667% 454.5455% no-repeat; mask:url('/static/images/sprites.webp') 0 0 / 366.6667% 454.5455% no-repeat; transition:background-color 280ms ease; }

/* Compact illustrated reasons, with no forced empty card heights. */
.why-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:1.5rem; align-items:start; }
.why-visual { position:sticky; top:6rem; overflow:hidden; border-radius:2.5rem .8rem .8rem .8rem; background:var(--surface); border:1px solid var(--border); }
.why-visual figcaption { padding:1.25rem; display:flex; gap:.85rem; align-items:center; color:var(--text-muted); font-size:.9rem; }
.why-visual figcaption svg { color:var(--accent-text); width:1.8rem; height:1.8rem; flex-shrink:0; }
.why-visual figcaption strong { color:var(--text); font-weight:650; }
.why-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:none; gap:.8rem; }
.why-card { min-height:0; grid-column:auto; grid-row:auto; display:grid; grid-template-columns:2rem 1fr; align-content:start; gap:.75rem; padding:1.1rem; border-radius:.8rem; }
.why-card:nth-child(3n+1) { background:var(--surface-raised); border-top:2px solid var(--accent); }
.why-card:hover { transform:translateY(-2px); }
.why-card .feature-icon { width:1.8rem; height:1.8rem; color:var(--accent-text); padding:.12rem; }
.why-card h3 { font-size:1rem; margin:.08rem 0 .5rem; }
.why-card p { font-size:.85rem; line-height:1.65; }
.why-card a { display:inline-flex; gap:.35rem; align-items:center; margin-top:.6rem; font-size:.8rem; font-weight:700; color:var(--accent-text); }
.why-card a svg { width:.95rem; height:.95rem; }

/* The rail is measured to exact integer columns; one transform owns every gesture. */
.carousel { --carousel-columns:3; --carousel-gap:1rem; padding:0 3.5rem; width:100%; margin-inline:auto; }
/* Edge contact tabs occupy 80px: keep both rail controls clear and the rail centered. */
@media (min-width:68.001rem) { .carousel { width:calc(100% - 6rem); } }
.carousel-viewport,.insurance-carousel .carousel-viewport,.team-carousel .carousel-viewport { overflow:hidden; padding:0; width:100%; touch-action:pan-y pinch-zoom; scroll-snap-type:none; border-radius:0; }
.carousel-track { display:flex; align-items:stretch; gap:var(--carousel-gap); width:100%; min-width:0; will-change:transform; transition:none; }
.carousel-slide { flex-grow:0; flex-shrink:0; flex-basis:calc((100% - (var(--carousel-columns) - 1) * var(--carousel-gap)) / var(--carousel-columns)); min-width:0; margin:0; height:auto; align-self:stretch; scroll-snap-align:none; scroll-snap-stop:normal; }
.carousel-slide:not(.is-active),.carousel-slide.is-active,.carousel-slide:hover { opacity:1; transform:none; }
.carousel.is-dragging,.carousel.is-dragging * { cursor:grabbing; }
.carousel-button { width:2.75rem; height:2.75rem; top:calc(50% - 2.25rem); bottom:auto; }
.carousel-button[data-carousel-prev] { left:0; right:auto; }
.carousel-button[data-carousel-next] { right:0; left:auto; }
.carousel-button:hover { transform:translateY(-2px); }
.service-carousel { --carousel-columns:3; --carousel-gap:1rem; padding-bottom:0; }
.service-slide { border-radius:1.7rem .6rem .6rem .6rem; background:var(--surface); }
.service-slide .media-frame { aspect-ratio:4/3; }
.service-slide > a { display:flex; flex-direction:column; height:100%; }
.service-slide > a > div:last-child { flex:1; min-height:0; display:grid; grid-template-columns:auto 1fr; gap:.55rem .65rem; padding:1.1rem; }
.service-slide h3 { font-size:1.15rem; line-height:1.25; }
.service-slide p { font-size:.88rem; line-height:1.65; }
.service-slide > a > div:last-child > span { grid-row:1; padding-top:.2rem; font-size:.68rem; }
.service-slide p { grid-column:1/-1; }
.service-carousel__button { border:1px solid var(--accent); background:var(--accent); color:var(--on-accent); border-radius:.7rem; box-shadow:none; }
.service-carousel__button--next,.service-carousel__button--next:hover,.service-carousel__button--next svg { transform:none; }
.carousel-navigation { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:1rem; }
.carousel-hint { font-size:.8rem; color:var(--text-muted); }
.carousel-pages { display:flex; align-items:center; justify-content:center; gap:.25rem; min-height:2.75rem; }
.carousel-page { position:relative; width:2.35rem; height:2.75rem; display:grid; place-items:center; border:0; border-radius:0; color:var(--text-muted); font-size:.75rem; font-weight:700; }
.pages--numbers .carousel-page::after { content:""; position:absolute; bottom:.3rem; width:.7rem; height:2px; background:var(--border-strong); transition:width 300ms,background 300ms; }
.pages--numbers .carousel-page[aria-current="true"] { color:var(--accent-text); }
.pages--numbers .carousel-page[aria-current="true"]::after { width:1.7rem; height:3px; background:var(--accent); }
.testimonial-carousel { --carousel-columns:1; --carousel-gap:0px; max-width:65rem; padding:0 3.5rem; border:0; background:transparent; }
.testimonial-viewport { background:var(--surface-raised); border:1px solid var(--border); border-radius:1rem 3rem 1rem 1rem; }
.testimonial { min-height:0; padding:2.1rem 2.25rem; display:flex; flex-direction:column; justify-content:space-between; }
.testimonial blockquote { font-size:clamp(1.06rem,var(--fluid-quote),1.35rem); font-weight:500; line-height:1.65; letter-spacing:-.015em; transform:none; opacity:1; }
.testimonial footer,.testimonial.is-active footer { opacity:1; transform:none; margin-top:1.25rem; }
.story-avatar { width:3.5rem; flex:0 0 3.5rem; border-radius:.6rem; overflow:hidden; }
.testimonial footer .story-avatar img { width:100%; height:100%; aspect-ratio:auto; border-radius:0; object-fit:cover; }
.quote-mark { top:-1.2rem; left:4.7rem; width:2.5rem; height:2.5rem; padding:.65rem; z-index:2; }
.testimonial-carousel__button { border-radius:50%; background:var(--surface); border:1px solid var(--border-strong); color:var(--text); box-shadow:none; }
.testimonial-controls { position:static; display:flex; justify-content:center; gap:1.1rem; margin-top:.75rem; }
.testimonial-controls .carousel-page { min-width:0; width:2.2rem; height:2.75rem; border:0; background:transparent; }
.testimonial-controls .carousel-page span { display:none; }
.pages--dots .carousel-page::after { content:""; width:.45rem; height:.45rem; border-radius:50%; background:var(--text-muted); transition:width 300ms,border-radius 300ms,background 300ms; }
.pages--dots .carousel-page[aria-current="true"]::after { width:1.45rem; border-radius:1rem; background:var(--accent); }
.testimonial-controls .story-count { min-width:auto; font-size:.76rem; }
.insurance-carousel { --carousel-columns:4; --carousel-gap:.85rem; }
.insurance-slide { display:flex; flex-direction:column; border-radius:.65rem; background:var(--surface); }
.insurance-slide img,.insurance-slide:hover img { filter:none; opacity:1; }
.insurance-slide .media-frame { aspect-ratio:4/3; background:#fff; }
.insurance-slide figcaption { font-size:.79rem; color:var(--text); padding:.8rem; min-height:3.4rem; display:grid; place-items:center; text-align:center; }
.insurance-slide:hover,.insurance-slide.is-active { transform:none; box-shadow:none; }
.insurance-carousel__button { border-radius:50% .4rem 50% .4rem; clip-path:none; border-color:var(--border-strong); }
.insurance-carousel__meta { display:flex; justify-content:center; align-items:center; gap:1rem; font-size:.75rem; color:var(--text-muted); margin-top:1rem; padding:0; }
.carousel-progress-meter { width:8rem; height:4px; background:var(--border); overflow:hidden; border-radius:1rem; }
.carousel-progress-meter { appearance:none; border:0; color:var(--accent); }
.carousel-progress-meter::-webkit-progress-bar { background:var(--border); border-radius:1rem; }
.carousel-progress-meter::-webkit-progress-value { background:var(--accent); border-radius:1rem; transition:width 420ms ease; }
.carousel-progress-meter::-moz-progress-bar { background:var(--accent); border-radius:1rem; }
.carousel-progress-meter > span { display:block; height:100%; width:100%; background:var(--accent); transform-origin:left; transform:scaleX(var(--carousel-progress)); transition:transform 420ms ease; }
.insurance-note { margin-top:1.35rem; padding:1rem 1.2rem; }
.team-carousel { --carousel-columns:3; --carousel-gap:1rem; }
.team-member,.team-member--cta { display:flex; flex-direction:column; border:1px solid var(--border); border-radius:.75rem; background:var(--surface-raised); overflow:hidden; }
.team-member .team-photo,.team-member:nth-child(n) .team-photo { aspect-ratio:4/3; border-radius:0!important; }
.team-photo img { object-position:50% 25%; }
.team-member[data-slide-index="0"] .team-photo img { object-position:50% 20%; }
.team-member > div:last-child,.team-member--cta > div:last-child { flex:1; display:flex; flex-direction:column; gap:.15rem; padding:1rem; }
.team-member > div:last-child > span { display:none; }
.team-member h3 { font-size:1.12rem; margin:0; }
.team-member p { color:var(--text-muted); font-size:.86rem; }
.team-member--cta a { margin-top:.5rem; font-size:.83rem; }
.team-carousel__button { border:1px solid var(--border-strong); border-radius:50%; box-shadow:none; background:var(--surface); }
.team-carousel__button::before { inset:4px; border:1px solid var(--border); animation:none; }
.team-carousel__meta { padding:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.75rem; font-size:.75rem; color:var(--text-muted); }
.pages--segments { gap:.2rem; }
.pages--segments .carousel-page { width:2.15rem; }
.pages--segments .carousel-page span { display:none; }
.pages--segments .carousel-page::after { content:""; width:100%; height:3px; border-radius:1rem; background:var(--border-strong); transition:height 200ms,background 200ms; }
.pages--segments .carousel-page[aria-current="true"]::after { height:7px; background:var(--accent); }

/* New patient guide and additional content come from the legacy practice pages. */
.patient-guide { border-top:1px solid var(--border); }
.patient-guide-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:2.5rem; align-items:start; }
.visit-steps { display:grid; gap:1rem; }
.visit-steps article { display:flex; gap:1.1rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.visit-steps article > span { flex:0 0 2.25rem; height:2.25rem; border:1px solid var(--border-strong); display:grid; place-items:center; border-radius:50%; font-size:.75rem; font-weight:750; color:var(--accent-text); }
.visit-steps h3 { margin:.15rem 0 .4rem; font-size:1.1rem; }
.visit-steps p { font-size:.94rem; color:var(--text-muted); }
.visit-steps .text-link { margin-top:0; }
.new-patient-offer { padding:1.7rem; border:1px solid var(--border-strong); border-top:3px solid var(--accent); border-radius:.75rem 2rem .75rem .75rem; background:var(--surface-raised); }
.offer-label { display:flex; align-items:center; gap:.5rem; color:var(--accent-text); font-size:.73rem; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.new-patient-offer h3 { margin-top:1rem; font-size:1.45rem; }
.offer-price { display:flex; align-items:baseline; gap:.12rem; margin:.7rem 0 0; font-size:3.3rem; font-weight:650; letter-spacing:-.06em; line-height:1.2; }
.offer-price > span { font-size:1.5rem; }
.new-patient-offer ul { display:grid; gap:.35rem; margin-block:1rem; }
.new-patient-offer li { display:flex; gap:.5rem; font-size:.87rem; color:var(--text-muted); }
.new-patient-offer li svg { flex-shrink:0; color:var(--accent-text); }
.new-patient-offer .offer-terms { font-size:.78rem; line-height:1.6; color:var(--text-muted); }
.new-patient-offer .button { margin-top:1.1rem; width:100%; }
.pathway-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.pathway-card { display:grid; grid-template-columns:.75fr 1fr; border:1px solid var(--border); border-radius:.8rem; overflow:hidden; background:var(--surface); align-items:start; }
.pathway-card .media-frame { margin:1rem 0 1rem 1rem; border-radius:.5rem; }
.pathway-card > div:last-child { padding:1.25rem; }
.pathway-card h3 { margin:.5rem 0 .7rem; font-size:1.1rem; }
.pathway-card p:not(.panel-kicker) { font-size:.87rem; color:var(--text-muted); }
.pathway-card .text-link { font-size:.83rem; margin-top:.8rem; }
.faq-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:3.5rem; }
.faq-layout > div:first-child > p:not(.eyebrow) { margin-top:1rem; color:var(--text-muted); font-size:.95rem; }
.faq-list details { border-bottom:1px solid var(--border-strong); }
.faq-list summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.1rem 0; font-weight:650; font-size:.95rem; cursor:pointer; user-select:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary svg { flex-shrink:0; transition:transform 250ms ease; }
.faq-list details[open] summary svg { transform:rotate(45deg); color:var(--accent-text); }
.faq-list details > div { padding:0 1.8rem 1.1rem 0; font-size:.9rem; color:var(--text-muted); }
.faq-list details a { display:inline-block; margin-top:.6rem; color:var(--accent-text); text-decoration:underline; }

/* Sidebar is a separate, self-contained navigation and preferences surface. */
.sidebar-backdrop { position:fixed; inset:0; z-index:299; background:rgba(8,9,10,.5); backdrop-filter:blur(5px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity 360ms,visibility 360ms; }
.sidebar-backdrop.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.sidebar { position:fixed; z-index:300; right:0; top:0; bottom:0; width:min(27rem,calc(100% - 1rem)); display:flex; flex-direction:column; background:var(--bg); color:var(--text); border-left:1px solid var(--border); border-radius:1.5rem 0 0 1.5rem; box-shadow:-1rem 0 5rem rgba(0,0,0,.2); transform:translate3d(105%,0,0); visibility:hidden; transition:transform 460ms cubic-bezier(.2,.8,.2,1),visibility 460ms,background-color 280ms,color 280ms; padding-top:env(safe-area-inset-top); }
.sidebar.is-open { transform:translate3d(0,0,0); visibility:visible; }
.sidebar-header { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.3rem 1.4rem 1rem; border-bottom:1px solid var(--border); }
.sidebar-header h2 { font-size:1.2rem; letter-spacing:-.025em; margin-top:.25rem; }
.sidebar-scroll { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:none; padding:1.2rem 1.4rem; }
.sidebar-intro { max-width:29ch; font-size:.84rem; line-height:1.6; color:var(--text-muted); margin-bottom:1rem; }
.sidebar nav { display:grid; gap:0; }
.sidebar nav > a,.sidebar .mobile-submenu-heading button { min-height:2.9rem; display:flex; align-items:center; padding:.6rem 0; border-bottom:1px solid var(--border); font-size:1rem; line-height:1.4; font-weight:580; letter-spacing:-.01em; }
.sidebar nav > a::after { content:""; width:.35rem; height:.35rem; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); margin-left:auto; opacity:.7; }
.sidebar nav a:hover,.sidebar .mobile-submenu-heading button:hover { color:var(--accent-text); }
.sidebar .mobile-submenu-heading button { width:100%; justify-content:space-between; gap:1rem; background:transparent; }
.sidebar .mobile-submenu-heading svg { width:1rem; height:1rem; }
.sidebar .mobile-submenu-panel > div { display:grid; grid-template-columns:1fr 1fr; gap:0 .75rem; min-height:0; overflow:hidden; }
.sidebar .mobile-submenu-panel a { min-height:2.75rem; display:flex; align-items:center; padding:.45rem .4rem; font-size:.81rem; line-height:1.45; border:0; font-family:var(--font-sans); font-weight:550; color:var(--text-muted); }
.sidebar-contact { display:flex; align-items:center; gap:.75rem; margin-block:1.2rem; padding:1rem; border:1px solid var(--border); border-radius:.65rem; background:var(--surface-raised); }
.sidebar-contact > svg { color:var(--accent-text); }
.sidebar-contact span { font-size:.78rem; line-height:1.55; color:var(--text-muted); }
.sidebar-contact a { margin-left:auto; width:2.75rem; height:2.75rem; display:grid; place-items:center; border:1px solid var(--border); border-radius:50%; }
.sidebar-tool-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; margin-top:.65rem; }
.sidebar-tool-tabs button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem; min-height:4rem; border:1px solid var(--border-strong); border-radius:.6rem; background:var(--surface); color:var(--text); font-size:.73rem; }
.sidebar-tool-tabs button svg { width:1.15rem; height:1.15rem; }
.sidebar-tool-tabs button[aria-expanded="true"] { color:var(--accent-text); border-color:var(--accent-text); background:var(--accent-faint); }
.sidebar-tool { position:absolute; z-index:3; inset:calc(5.7rem + env(safe-area-inset-top)) 1rem auto; max-height:calc(100% - 12rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:none; margin:0; padding:1rem; border:1px solid var(--border-strong); border-radius:.7rem; background:var(--surface-raised); box-shadow:0 1rem 2rem rgba(0,0,0,.14); opacity:0; transform:translateY(12px); transition:opacity 240ms,transform 280ms; }
.sidebar-intro,.sidebar nav,.sidebar-contact,.sidebar-tool-tabs { transition:opacity 220ms,filter 220ms; }
.sidebar.has-tool .sidebar-intro,.sidebar.has-tool nav,.sidebar.has-tool .sidebar-contact,.sidebar.has-tool .sidebar-tool-tabs { opacity:.16; filter:blur(2px); }
.sidebar-tool.is-open { opacity:1; transform:none; }
.sidebar-tool[hidden] { display:none; }
.sidebar-tool .panel-heading h2 { font-size:1.05rem; }
.sidebar-tool .panel-heading { margin-bottom:.8rem; }
.sidebar-tool .a11y-grid { grid-template-columns:1fr 1fr; }
.sidebar-tool .a11y-grid button { min-height:3.5rem; font-size:.74rem; padding:.6rem; gap:.45rem; }
.sidebar-tool .text-size-control { gap:.5rem; padding:.6rem; font-size:.83rem; }
.sidebar-tool .text-size-control > div { gap:.2rem; }
.sidebar-tool .text-size-control output { min-width:2.5rem; }
.sidebar-footer { padding:1rem 1.4rem calc(1rem + env(safe-area-inset-bottom)); border-top:1px solid var(--border); background:var(--surface); }
.sidebar-footer .button { width:100%; }
.sidebar-footer > span { display:block; text-align:center; margin-top:.5rem; color:var(--text-muted); font-size:.73rem; }

/* Popovers stay mounted during their exit transition. */
.control-panel { position:fixed; top:calc(var(--header-height) + .7rem); right:1.25rem; z-index:250; width:min(23rem,calc(100vw - 2rem)); max-height:calc(100dvh - var(--header-height) - 2rem); padding:1.15rem; border-color:var(--border-strong); transform:translateY(-10px) scale(.98); transform-origin:top right; opacity:0; transition:opacity 220ms,transform 260ms cubic-bezier(.2,.8,.2,1),background-color 280ms; overscroll-behavior:none; }
.control-panel.is-open { opacity:1; transform:none; }
.control-panel.is-utility-anchored { right:var(--control-panel-right,1.25rem); }
.control-panel[hidden] { display:none; }
.panel-heading h2 { font-size:1.25rem; line-height:1.3; }
.panel-kicker { font-size:.7rem; color:var(--text-muted); }
.accessibility-panel { width:min(29rem,calc(100vw - 2rem)); }
.a11y-grid { grid-template-columns:1fr 1fr; }
.a11y-grid button { color:var(--text); font-size:.79rem; min-height:3.65rem; border-color:var(--border-strong); }
.theme-options span { color:var(--text); border-color:var(--border-strong); }
.accent-swatch { min-height:2.65rem; }
.accent-swatch:focus-visible { outline-color:var(--text); }
.chat-panel { width:min(26rem,calc(100vw - 2rem)); }
.chat-frame { height:min(28rem,50dvh); border:1px solid var(--border); background:var(--surface); }
.chat-frame iframe { width:100%; height:100%; border:0; }
.chat-frame > p { padding:1rem; font-size:.9rem; }
.chat-help { font-size:.8rem; margin-top:.75rem; color:var(--text-muted); }
.chat-help a { color:var(--accent-text); text-decoration:underline; }
.bottom-bar { display:none; }

/* Native modal provides focus containment and background inertness. */
/* Dialog styles are shared with the chatbot in interaction.css. */

/* Filtering the scrolling content, not body, keeps fixed layers attached to the viewport. */
html[data-a11y-grayscale="true"] body,html[data-a11y-low-saturation="true"] body { filter:none; }
html[data-a11y-grayscale="true"] .site-scroll { filter:grayscale(1); }
html[data-a11y-low-saturation="true"] .site-scroll { filter:saturate(.45); }
html[data-a11y-high-contrast="true"] { --text-muted:var(--text); --border:var(--text); --border-strong:var(--text); }
html[data-a11y-high-contrast="true"] :is(.experience,.trust-rail,.final-cta,.site-footer) { --text:#fff; --text-muted:#fff; }
@media (min-width:68.01rem) { .sidebar,.sidebar-backdrop { display:none; } }
@media (max-width:74rem) {
  .hero-grid { gap:2rem; }
  .why-layout { grid-template-columns:.62fr 1.38fr; }
  .why-grid { gap:.65rem; }
  .why-card { padding:.85rem; }
  .pathway-card { grid-template-columns:1fr; }
  .pathway-card .media-frame { margin:0; aspect-ratio:2/1; border-radius:0; }
}
@media (max-width:68rem) {
  :root { --header-height:4.5rem; --bottom-height:4.15rem; }
  html,body { height:100%; overflow:hidden; overscroll-behavior:none; }
  .site-header,.site-header.is-compact { position:fixed; top:0; left:0; right:0; height:calc(var(--header-height) + env(safe-area-inset-top)); --header-height:4.5rem; padding-top:env(safe-area-inset-top); background:var(--bg); border-bottom:1px solid var(--border); }
  .site-scroll { position:fixed; top:calc(var(--header-height) + env(safe-area-inset-top)); bottom:calc(var(--bottom-height) + env(safe-area-inset-bottom)); left:0; right:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:none; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; scroll-padding-top:1rem; }
  .bottom-bar { position:fixed; z-index:200; bottom:0; left:0; right:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); height:calc(var(--bottom-height) + env(safe-area-inset-bottom)); padding:0 .3rem env(safe-area-inset-bottom); border-top:1px solid var(--border-strong); background:var(--surface); box-shadow:0 -.2rem 1.25rem rgba(0,0,0,.04); }
  .bottom-bar > * { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.28rem; color:var(--text-muted); font-size:.68rem; font-weight:600; position:relative; }
  .bottom-bar svg { width:1.2rem; height:1.2rem; }
  .bottom-bar [aria-expanded="true"] { color:var(--accent-text); background:var(--accent-faint); }
  .bottom-bar [aria-expanded="true"]::before { content:""; position:absolute; top:0; width:1.5rem; height:3px; background:var(--accent); border-radius:0 0 3px 3px; }
  .control-panel { top:auto; bottom:calc(var(--bottom-height) + env(safe-area-inset-bottom) + .6rem); right:.65rem; width:min(29rem,calc(100vw - 1.3rem)); max-height:calc(100dvh - var(--header-height) - var(--bottom-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1.3rem); transform:translateY(12px) scale(.98); transform-origin:bottom center; }
  .hero { padding-block:2.3rem 2.4rem; }
  .hero-grid { grid-template-columns:1fr 1fr; }
  .section-heading--split { grid-template-columns:1fr; gap:.9rem; }
  .section-heading--split > p { max-width:48rem; }
  .why-layout { grid-template-columns:1fr; }
  .why-visual { position:relative; top:auto; display:grid; grid-template-columns:1fr 1fr; align-items:center; }
  .why-visual .media-frame { aspect-ratio:2/1; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .why-card { padding:1rem; }
  .service-carousel,.team-carousel { --carousel-columns:2; }
  .insurance-carousel { --carousel-columns:3; }
  .experience-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .experience-frame { aspect-ratio:4/3; }
  .doctor-grid { gap:2rem; grid-template-columns:.7fr 1.3fr; }
  .doctor-visual figcaption { right:-.5rem; }
  .credential-list { grid-template-columns:1fr; }
  .patient-guide-grid { gap:1.5rem; grid-template-columns:1fr 1fr; }
  .faq-layout { gap:2rem; }
}
@media (max-width:48rem) {
  :root { --section-space:2.5rem; --gutter:1rem; }
  h1 { font-size:clamp(2.15rem,var(--fluid-h1-mobile),3rem); }
  h2 { font-size:clamp(1.65rem,var(--fluid-h2-mobile),2.2rem); }
  .section-heading { margin-bottom:1.5rem; }
  .hero-grid { grid-template-columns:1fr; gap:1.7rem; }
  .hero-copy h1 { max-width:21ch; }
  .hero-lede { font-size:.97rem; }
  .hero-visual { max-width:100%; }
  .hero-frame { aspect-ratio:6/4; border-radius:3rem .7rem 2.5rem .7rem; }
  .hero-proof { grid-template-columns:1fr 1fr; font-size:.75rem; }
  .hero-actions .button { flex:1 1 12rem; }
  .hero-visual figcaption { font-size:.7rem; }
  .trust-grid { grid-template-columns:1fr 1fr; min-height:0; }
  .trust-item { min-height:0; padding:1rem .7rem; gap:.55rem; }
  .trust-item:first-child { padding-left:.7rem; }
  .trust-item > svg { width:1.1rem; height:1.1rem; flex-shrink:0; }
  .trust-item strong { font-size:.8rem; }
  .trust-item small { font-size:.65rem; letter-spacing:.03em; }
  .trust-item--wide { grid-column:1/-1; justify-content:center; border-bottom:1px solid rgba(255,255,255,.12); }
  .trust-book { min-height:2.8rem; padding:.7rem; border:0; font-size:.8rem; }
  .why-visual { grid-template-columns:1fr; }
  .why-visual .media-frame { aspect-ratio:2/1; }
  .why-visual figcaption { padding:1rem; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .why-card { grid-template-columns:1fr; gap:.5rem; padding:1rem; }
  .why-card p { font-size:.84rem; }
  .doctor-grid,.experience-grid,.contact-grid { grid-template-columns:1fr; gap:1.8rem; }
  .doctor-visual { width:min(72%,20rem); }
  .doctor-frame { aspect-ratio:4/6; }
  .doctor-copy h2 { max-width:22ch; }
  .experience-frame { aspect-ratio:2/1; }
  .experience-visual { padding:.6rem .6rem 0 0; }
  .carousel { padding-inline:2.8rem; --carousel-gap:.8rem; }
  .service-carousel,.team-carousel { --carousel-columns:1; }
  .insurance-carousel { --carousel-columns:2; }
  .carousel-button { width:2.35rem; height:2.75rem; }
  .service-slide { border-radius:1.2rem .55rem .55rem .55rem; }
  .service-slide > a > div:last-child { padding:1rem; }
  .carousel-navigation { flex-direction:column; gap:.15rem; margin-top:.5rem; }
  .carousel-page { width:1.95rem; }
  .carousel-hint { display:none; }
  .testimonial-carousel { padding-inline:2.8rem; }
  .testimonial { padding:1.5rem 1.1rem; }
  .testimonial blockquote { font-size:1.02rem; line-height:1.65; }
  .testimonial-controls { gap:.4rem; }
  .testimonial-controls .carousel-page { width:1.9rem; }
  .quote-mark { left:3.8rem; }
  .team-carousel__meta { flex-direction:column; gap:0; }
  .insurance-carousel__meta { gap:.65rem; font-size:.7rem; }
  .insurance-carousel__meta > span:first-child { display:none; }
  .insurance-note { font-size:.85rem; gap:.6rem; padding:1rem; }
  .insurance-note .text-link { margin-top:0; }
  .patient-guide-grid { grid-template-columns:1fr; gap:1.5rem; }
  .new-patient-offer { padding:1.3rem; }
  .pathway-grid,.faq-layout { grid-template-columns:1fr; gap:1.4rem; }
  .pathway-card { grid-template-columns:.6fr 1fr; }
  .pathway-card .media-frame { aspect-ratio:4/3; margin:1rem 0 0 1rem; border-radius:.5rem; }
  .pathway-card > div:last-child { padding:1rem; }
  .pathway-card p:not(.panel-kicker) { font-size:.84rem; }
  .contact-copy address { grid-template-columns:1fr; gap:.9rem; }
  .map-frame.map-embed { aspect-ratio:4/3; border-radius:1.5rem .75rem 1.5rem .75rem; }
  .final-cta__inner > div:last-child { flex-direction:row; }
  .cta-description { font-size:.95rem; }
  .footer-grid { gap:1.7rem; }
  .footer-links { grid-template-columns:1fr 1fr; padding-top:1.5rem; }
  .footer-contact { padding-top:1.5rem; }
  .a11y-grid { grid-template-columns:1fr 1fr; }
  .ui-dialog__content { padding:1.25rem; }
  .ui-dialog__actions .button { flex:1 1 10rem; }
}
/* The flex basis is the vertical dimension in a column: never use a card width here. */
@media (max-width:30rem) {
  .header-shell { gap:.5rem; }
  .header-book { padding:.65rem .6rem; font-size:.82rem; gap:.45rem; min-height:2.75rem; }
  .hero-actions { flex-direction:column; }
  .hero-actions .button { flex:0 0 auto; width:100%; }
}
@media (max-width:25rem) {
  .hero-proof { grid-template-columns:1fr; gap:.45rem; }
  .why-grid { grid-template-columns:1fr; }
  .why-card { grid-template-columns:1.8rem 1fr; gap:.75rem; }
  .insurance-carousel { --carousel-columns:1; }
  .carousel { padding-inline:2.6rem; }
  .carousel-button { width:2.2rem; }
  .carousel-page { width:1.7rem; }
  .pathway-card { grid-template-columns:1fr; }
  .pathway-card .media-frame { aspect-ratio:2/1; margin:0; }
  .sidebar-header,.sidebar-scroll { padding-inline:1rem; }
  .sidebar-footer { padding-inline:1rem; }
  .sidebar-tool { padding:.75rem; }
  .sidebar-tool .a11y-grid { grid-template-columns:1fr; }
  .bottom-bar > * { font-size:.62rem; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
html[data-a11y-reduce-motion="true"] *,html[data-a11y-reduce-motion="true"] *::before,html[data-a11y-reduce-motion="true"] *::after { scroll-behavior:auto!important; animation-duration:.001ms!important; transition-duration:.001ms!important; }

/* Revision 21 — project photos, contact dock, template images and scroll states. */
.hero-frame { clip-path:none; }
.hero-frame img { object-position:center; }
.why-visual .media-frame { aspect-ratio:6/4; }
.team-member .team-photo,.team-member:nth-child(n) .team-photo { aspect-ratio:4/6; }
.team-photo img,.team-member[data-slide-index="0"] .team-photo img { object-position:center; }
.team-carousel__button { display:grid; place-items:center; padding:0; line-height:1; }
.team-carousel__button > svg { grid-area:1/1; align-self:center; justify-self:center; margin:0; }
.team-carousel__button > span { display:none; }
@media (min-width:74.01rem) { .team-carousel { --carousel-columns:4; } }

/* Actual supplied SVG files, rendered with the current foreground color. */
.footer-grid h2 { font-size:.75rem; line-height:1.5; }
.social-icon { display:inline-block; flex-shrink:0; width:1.1rem; height:1.1rem; aspect-ratio:1; background:currentColor; -webkit-mask:var(--social-icon) center/contain no-repeat; mask:var(--social-icon) center/contain no-repeat; pointer-events:none; user-select:none; }
.social-icon--facebook { --social-icon:url('/Icons/facebook.svg'); }
.social-icon--x-logo { --social-icon:url('/Icons/x-logo.svg'); }
.social-icon--instagram { --social-icon:url('/Icons/instagram.svg'); }
.social-icon--threads { --social-icon:url('/Icons/threads.svg'); }
.social-icon--youtube { --social-icon:url('/Icons/youtube.svg'); }
.social-icon--telephone-fill { --social-icon:url('/Icons/telephone-fill.svg'); }
.social-icon--envelope-fill { --social-icon:url('/Icons/envelope-fill.svg'); }
.social-icon--chat-fill { --social-icon:url('/Icons/chat-fill.svg'); }

/* AI presence is explicit, never presented as a human operator. */
.chat-presence,.online-dot { --online:#12874a; width:.5rem; height:.5rem; border-radius:50%; background:var(--online); box-shadow:0 0 0 3px color-mix(in srgb,var(--online) 15%,transparent),0 0 9px color-mix(in srgb,var(--online) 48%,transparent); animation:online-glow 2.8s ease-in-out infinite; flex-shrink:0; }
html[data-theme="dark"] .chat-presence,html[data-theme="dark"] .online-dot { --online:#58de94; }
.chat-presence { position:absolute; z-index:2; outline:2px solid var(--surface); pointer-events:none; }
.bottom-bar .chat-presence { top:.55rem; left:calc(50% + .35rem); }
.chat-status { display:flex; align-items:center; gap:.55rem; }
@keyframes online-glow { 50% { box-shadow:0 0 0 5px color-mix(in srgb,var(--online) 8%,transparent),0 0 12px color-mix(in srgb,var(--online) 55%,transparent); } }
.desktop-contact-dock { position:fixed; z-index:220; right:1.5rem; bottom:1.25rem; display:flex; align-items:stretch; gap:.25rem; padding:.3rem; border:1px solid var(--border-strong); border-radius:1rem; background:var(--surface); color:var(--text); box-shadow:0 .4rem 1.6rem rgba(0,0,0,.16); }
.desktop-contact-dock > * { position:relative; display:flex; align-items:center; justify-content:center; gap:.65rem; min-height:3rem; padding:.45rem .85rem; font-size:.83rem; font-weight:650; border-radius:.7rem; background:transparent; color:inherit; }
.desktop-contact-dock > *:hover,.desktop-contact-dock [aria-expanded="true"] { background:var(--accent-faint); color:var(--accent-text); }
.desktop-contact-dock small { display:block; font-size:.65rem; font-weight:500; color:var(--text-muted); text-align:left; }
.desktop-contact-dock .chat-presence { left:1.5rem; top:.5rem; }
@media (min-width:68.01rem) {
  .chat-panel { top:auto; bottom:6rem; right:1.5rem; max-height:calc(100dvh - 8rem); transform-origin:bottom right; transform:translateY(12px) scale(.98); }
  .chat-panel.is-open { transform:none; }
  .site-footer { padding-bottom:6rem; }
}
@media (max-width:68rem) {
  .desktop-contact-dock { display:none; }
  /* An actually fixed root prevents document-level chaining on iOS. */
  body { position:fixed; inset:0; width:100%; }
}

/* Each frame already owns its aspect-ratio, so deferred images cannot shift layout. */
.lazy_image_container { display:block; position:relative; z-index:1; overflow:hidden; pointer-events:none; -webkit-user-select:none; user-select:none; }
.lazy_image_container::before { content:""; position:absolute; z-index:1; inset:auto; top:50%; left:50%; width:var(--spinner-size,2rem); height:var(--spinner-size,2rem); margin:calc(var(--spinner-size,2rem) / -2); border:2px solid color-mix(in srgb,var(--text-muted) 22%,transparent); border-top-color:var(--accent-text); border-radius:50%; animation:image-spin 850ms linear infinite; pointer-events:none; }
.lazy_image_container.white::before { border-top-color:white; }
.lazy_image_container.loaded::before,.lazy_image_container.error::before,.lazy_image_container.no_spinner::before { display:none; }
.lazy_image_container.error::after { content:"!"; position:absolute; inset:0; display:grid; place-items:center; font-size:2.5rem; font-weight:700; color:var(--accent-text); background:var(--surface-soft); }
.lazy_image_container.error > img { visibility:hidden; }
.lazy_image_container > img { position:absolute; z-index:2; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.lazy_image_container.fade_in > img { opacity:0; transition:opacity 550ms ease; }
.lazy_image_container.fade_in.loaded > img { opacity:1; }
.lazy_image_container.zoom_in > img { opacity:0; transform:scale(1.035) translate3d(0,8px,0); filter:blur(6px); backface-visibility:hidden; -webkit-backface-visibility:hidden; transition:opacity 650ms ease,transform 950ms cubic-bezier(.21,1,.32,1),filter 800ms ease; }
.lazy_image_container.zoom_in.loaded > img { opacity:1; transform:none; filter:none; }
@keyframes image-spin { to { transform:rotate(360deg); } }

/* ScrollSpy toggles classes only. Enter/exit motion is entirely CSS.
   No visibility/inert changes: keyboard focus remains available and reveals a target. */
.js .reveal { opacity:1; transform:none; }
.contact-phone .fax-line { display:block; margin-top:.4rem; color:var(--text-muted); font-size:.8rem; }
.scroll-reveal { --enter-x:0; --enter-y:15px; }
.scroll-reveal[data-enter="glide"] { --enter-x:-14px; --enter-y:6px; }
.scroll-reveal[data-enter="image"] { --enter-x:18px; --enter-y:0; }
.scroll-reveal[data-enter="soft"] { --enter-y:9px; }
.js.motion-ready .scroll-reveal { opacity:0; transform:translate3d(var(--enter-x),var(--enter-y),0); transition:opacity 240ms ease,transform 300ms ease; }
.js.motion-ready .scroll-reveal.scroll_active,.js.motion-ready .scroll-reveal:focus-within { opacity:1; transform:none; transition:opacity 600ms ease var(--enter-delay,0ms),transform 720ms cubic-bezier(.16,1,.3,1) var(--enter-delay,0ms); }
.js.motion-ready .scroll-reveal.carousel { transform:none; }
/* Keep animated artwork, but do not spend frames on sections outside the viewport. */
.js.motion-ready main > section:not(.section-in-view) .section-art,
.js.motion-ready main > section:not(.section-in-view) .section-art * { animation-play-state:paused; }
.faq-list details[open] > div { animation:answer-enter 240ms ease both; }
@keyframes answer-enter { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce) {
  .js.motion-ready .scroll-reveal { opacity:1; transform:none; transition:none; }
  .lazy_image_container.loaded > img { opacity:1; transform:none; filter:none; transition:none; }
  .chat-presence,.online-dot,.lazy_image_container::before { animation:none; }
}
html[data-a11y-reduce-motion="true"].motion-ready .scroll-reveal { opacity:1; transform:none; transition:none; }
html[data-a11y-reduce-motion="true"] .lazy_image_container.loaded > img { opacity:1; transform:none; filter:none; transition:none; }
html[data-a11y-reduce-motion="true"] .chat-presence,html[data-a11y-reduce-motion="true"] .online-dot,html[data-a11y-reduce-motion="true"] .lazy_image_container::before { animation:none; }

/* Revision 23 — flush edge tabs; the chatbot owns its entire frame. */
.desktop-contact-dock { right:0; bottom:calc(25% - 2rem); gap:0; padding:0; display:block; width:5rem; border-right:0; border-radius:1rem 0 0 1rem; overflow:hidden; transition:width .35s cubic-bezier(.2,.8,.2,1),background-color .3s; }
.desktop-contact-dock > .contact-dock-actions { display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; justify-items:stretch; align-items:stretch; gap:0; padding:0; width:100%; min-width:0; min-height:0; border-radius:0; background:transparent; overflow:hidden; max-height:10rem; opacity:1; transition:max-height .35s,opacity .25s,transform .35s; }
.contact-dock-actions > * { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.45rem; min-height:4.3rem; padding:.65rem .6rem; width:100%; color:var(--text); background:transparent; font-size:.75rem; font-weight:650; }
.contact-dock-actions > *:hover,.contact-dock-actions [aria-expanded="true"] { color:var(--accent-text); background:var(--accent-faint); }
.contact-dock-actions > * + * { border-top:1px solid var(--border); }
.desktop-contact-dock .chat-presence { left:calc(50% + .25rem); top:.7rem; }
.desktop-contact-dock > .contact-dock-toggle { width:100%; min-height:2.5rem; padding:.55rem .2rem; display:flex; gap:.2rem; border-top:1px solid var(--border); border-radius:0; font-size:.65rem; color:var(--text-muted); background:var(--surface-soft); }
.contact-dock-toggle svg { width:.85rem; height:.85rem; transition:transform .3s; }
.desktop-contact-dock.is-collapsed { width:3.7rem; }
.desktop-contact-dock.is-collapsed .contact-dock-actions { max-height:0; opacity:0; transform:translateX(100%); pointer-events:none; }
.desktop-contact-dock.is-collapsed .contact-dock-toggle { min-height:3rem; flex-direction:column; border-top:0; }
.desktop-contact-dock.is-collapsed .contact-dock-toggle svg { transform:rotate(180deg); }
.chat-panel { padding:0; width:min(26rem,calc(100vw - 7.5rem)); height:min(43rem,calc(100dvh - 7rem)); max-height:none; top:auto; right:6rem; bottom:1rem; border-radius:1.15rem; overflow:hidden; }
.chat-panel > iframe { display:block; width:100%; height:100%; border:0; background:var(--bg); }
@media (max-width:68rem) {
  .desktop-contact-dock { display:none; }
  .chat-panel { position:fixed; inset:0; width:100%; height:100%; height:100dvh; max-height:none; border:0; border-radius:0; z-index:900; transform:translateY(14px); }
  body.chat-is-open .bottom-bar,body.chat-is-open .site-header { visibility:hidden; pointer-events:none; }
}
