@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-400-normal-latin-ext.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-400-normal-latin.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-400-italic-latin-ext.woff2')format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-400-italic-latin.woff2')format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'General Sans';src:url('/fonts/GeneralSans-200-700-normal.woff2')format('woff2');font-weight:200 700;font-style:normal;font-display:swap}:root{--color-primary:#e0c0c0;--color-primary-soft:#fcf9f9;--color-accent:#9e2f3c;--color-secondary:#997e53;--color-text:#241b1e;--color-muted:#6e5f5a;--color-bg:#faf6f3;--color-bg-alt:#f2e7e3;--color-surface:#ffffff;--color-border:#e6d8d1;--color-on-primary:#0b0f13;--color-on-accent:#ffffff;--color-on-dark:#ffffff;--color-accent-readable:#9e2f3c;--footer-bg:#231a1d;--footer-text:#ffffff;--footer-muted:rgba(255,255,255,0.6);--footer-border:rgba(255,255,255,0.18);--space-section-y:clamp(4rem,7vw,6.5rem);--space-section-y-lg:clamp(5.5rem,10vw,9.5rem);--space-container-x:clamp(1.25rem,3vw,2rem);--space-gap:1.5rem;--spacing-section:clamp(4rem,7vw,6.5rem);--s-1:0.25rem;--s-2:0.5rem;--s-3:0.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:2.5rem;--s-8:3rem;--s-9:4rem;--s-10:5rem;--s-11:6rem;--s-12:8rem;--radius-sm:0.25rem;--radius:0.375rem;--radius-lg:0.5rem;--radius-pill:999px;--shadow:0 1px 3px rgba(15,23,42,0.04);--shadow-lg:0 4px 14px rgba(15,23,42,0.08);--font-heading:'Instrument Serif',serif;--font-body:'General Sans',sans-serif;--font-accent:var(--font-heading);--container-width:1200px;--fs-display:clamp(3.25rem,2rem + 5vw,6.5rem);--fs-h1:clamp(2.5rem,1.7rem + 3.4vw,4.5rem);--fs-h2:clamp(2rem,1.4rem + 2.6vw,3.25rem);--fs-h3:clamp(1.375rem,1.15rem + 0.7vw,1.625rem);--fs-body:clamp(1.0625rem,1rem + 0.25vw,1.1875rem);--fs-small:0.875rem;--tracking-display:-0.04em;--tracking-heading:-0.022em;--leading-display:0.98;--leading-heading:1.08;--leading-body:1.65;--measure:65ch}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(16px,0.95rem + 0.1vw,17px);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","ss01"}img,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);color:var(--color-text);text-wrap:balance}h1{line-height:var(--leading-display);letter-spacing:var(--tracking-display)}p{margin:0;text-wrap:pretty}::selection{background:var(--color-primary);color:var(--color-on-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:0;z-index:2147483646;background:var(--color-primary);color:var(--color-on-primary);padding:var(--s-3) var(--s-4);border-radius:0 0 var(--radius-sm) 0;font-weight:600;text-decoration:none}.skip-link:focus{left:0}.container{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--space-container-x)}.legal-page{max-width:min(72ch,100%);margin-inline:auto;padding:clamp(4.5rem,9vw,7rem) var(--space-container-x) clamp(3.5rem,7vw,5.5rem);color:var(--color-text)}.legal-page>section+section{margin-top:clamp(2rem,4vw,3rem)}.legal-page h1{font-size:var(--fs-h1);margin-bottom:clamp(1.25rem,2.5vw,2rem)}.legal-page h2{font-size:var(--fs-h2);margin-top:var(--s-6);margin-bottom:var(--s-2)}.legal-page h3{font-size:var(--fs-h3);margin-top:var(--s-5);margin-bottom:var(--s-2)}.legal-page p{margin-bottom:var(--s-4);max-width:none;line-height:var(--leading-body)}.legal-page ul,.legal-page ol{margin:0 0 var(--s-4);padding-left:var(--s-5);list-style:revert}.legal-page li{margin-bottom:var(--s-2);line-height:var(--leading-body)}.legal-page a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.legal-page:is(h1,h2,h3)+p{margin-top:0}.sosei-credit{font:400 11px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;opacity:.5;color:inherit;text-decoration:none;margin-left:auto;white-space:nowrap;flex-shrink:0}.sosei-credit:hover{opacity:.8}.cookie-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;max-width:600px;margin-inline:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--s-4) var(--s-5);box-shadow:var(--shadow-lg);z-index:90;display:none;flex-direction:column;gap:var(--s-3)}.cookie-banner[data-visible="true"]{display:flex}.cookie-banner p{color:var(--color-muted);font-size:0.925rem;line-height:1.5}.cookie-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.cookie-btn{padding:var(--s-2) var(--s-4);border-radius:var(--radius-pill);font-size:0.9rem;font-weight:600;border:1.5px solid transparent;cursor:pointer;background:var(--color-surface);color:var(--color-text)}.cookie-btn--accept{background:var(--color-primary);color:var(--color-on-primary)}.cookie-btn--reject{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.page{min-height:100vh;display:flex;flex-direction:column}.page__main{flex:1}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}}

/* ── icon size floor (deterministic; components may scale up) ── */
.page .icon{display:inline-block;vertical-align:middle;width:1.5em;height:1.5em;flex:none}
.page li:has(.icon){list-style:none !important}
.page li:has(.icon)::before{content:none !important}

/* ── header state-machine floor (structure by code; author styles the states) ── */
:where(.home-hero [data-comp="siteHeader"]){position:sticky;top:0;z-index:50;background:transparent;border-bottom-color:transparent}
:where(.home-hero [data-comp="siteHeader"].is-scrolled){background:var(--color-bg);border-bottom:1px solid var(--color-border)}
:where(.home-hero [data-comp="siteHeader"].is-scrolled) :where(nav a){color:var(--color-text)}
/* measured-light opener — the audit's verdict must beat the authored dark-hero assumption it corrects */
.page.hero-light [data-comp="siteHeader"]:not(.is-scrolled) :where(nav a,[data-slot="logo"],[class$="-logo"],[class$="-logo"] span){color:var(--color-text)!important}

/* ── motion language (CD-declared duration ladder + easing; authored CSS references these) ── */
.page{--motion-fast:140ms;--motion:280ms;--motion-slow:420ms;--motion-ease:ease}

/* ── slot floor (deterministic typographic default for inner-role suffixes; components override) ── */
:where(.page) [class~="eyebrow"],:where(.page) [class*="-eyebrow"]{font-family:var(--font-body);font-size:var(--fs-small);letter-spacing:.12em;text-transform:uppercase;display:block;margin:0 0 var(--s-2)}
:where(.page) [class$="-title"],:where(.page) [class$="-heading"]{font-family:var(--font-heading);font-size:var(--fs-h2);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin:0 0 var(--space-gap)}
:where(.page) [class$="-subtitle"],:where(.page) [class$="-subheading"]{font-size:var(--fs-body);line-height:var(--leading-body);opacity:.78;margin:0 0 var(--space-gap)}
:where(.page) [class$="-label"]{font-size:var(--fs-small);letter-spacing:.04em}
:where(.page) h1,:where(.page) h2,:where(.page) h3,:where(.page) h4{margin-block-end:var(--space-gap)}

/* ── utility floor (global accent-word/section-rule + empty-scrim fill; components override) ── */
:where(.page) .accent-word{color:var(--color-accent-readable);font-style:italic}
:where(.page) [id],:where(.page) section{scroll-margin-top:5rem}
:where(.page) .section-rule{border:0;width:100%;height:1px;background:var(--color-border);opacity:.7;margin:var(--space-gap) 0}
:where(.page) [class$="-scrim"],:where(.page) [class$="-overlay"]{background:linear-gradient(105deg,rgba(0,0,0,.5),transparent 42%)}
:where(.page) [data-comp]:has([class$="-bg"])::before{background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.34) 55%,rgba(0,0,0,.1))}
:where(.page) h1,:where(.page) h2,:where(.page) h3,:where(.page) [class$="-headline"],:where(.page) [class$="-title"]{overflow-wrap:normal}
:where(.page) [class$="-text"]{overflow-wrap:break-word}
:where(.page) [data-focal="top"]{object-position:center top!important}
:where(.page) [data-focal="bottom"]{object-position:center bottom!important}
:where(.page) [data-focal="left"]{object-position:left center!important}
:where(.page) [data-focal="right"]{object-position:right center!important}
:where(.page) [data-focal="left-top"]{object-position:left top!important}
:where(.page) [data-focal="right-top"]{object-position:right top!important}
:where(.page) [data-focal="left-bottom"]{object-position:left bottom!important}
:where(.page) [data-focal="right-bottom"]{object-position:right bottom!important}
:where(.page) [data-focal-pct="0"]{object-position:50% 0%!important}
:where(.page) [data-focal-pct="5"]{object-position:50% 5%!important}
:where(.page) [data-focal-pct="10"]{object-position:50% 10%!important}
:where(.page) [data-focal-pct="15"]{object-position:50% 15%!important}
:where(.page) [data-focal-pct="20"]{object-position:50% 20%!important}
:where(.page) [data-focal-pct="25"]{object-position:50% 25%!important}
:where(.page) [data-focal-pct="30"]{object-position:50% 30%!important}
:where(.page) [data-focal-pct="35"]{object-position:50% 35%!important}
:where(.page) [data-focal-pct="40"]{object-position:50% 40%!important}
:where(.page) [data-focal-pct="45"]{object-position:50% 45%!important}
:where(.page) [data-focal-pct="50"]{object-position:50% 50%!important}
:where(.page) [data-focal-pct="55"]{object-position:50% 55%!important}
:where(.page) [data-focal-pct="60"]{object-position:50% 60%!important}
:where(.page) [data-focal-pct="65"]{object-position:50% 65%!important}
:where(.page) [data-focal-pct="70"]{object-position:50% 70%!important}
:where(.page) [data-focal-pct="75"]{object-position:50% 75%!important}
:where(.page) [data-focal-pct="80"]{object-position:50% 80%!important}
:where(.page) [data-focal-pct="85"]{object-position:50% 85%!important}
:where(.page) [data-focal-pct="90"]{object-position:50% 90%!important}
:where(.page) [data-focal-pct="95"]{object-position:50% 95%!important}
:where(.page) [data-focal-pct="100"]{object-position:50% 100%!important}



/* ── tabs behavior-primitive floor (ADR-008; correctness only, AD styles the look) ── */
:where(.page) [data-tabs] [role="tab"]{cursor:pointer}
:where(.page) [role="tabpanel"][hidden]{display:none!important}

/* ── behavior-primitives floor (marquee/lightbox/parallax mechanics; agent styles the look) ── */
:where(.page) [data-marquee]{display:flex;overflow:hidden;gap:var(--marquee-gap,3rem)}
:where(.page) [data-marquee]>*{display:flex;align-items:center;gap:inherit;flex-shrink:0;min-width:max-content;padding-right:var(--marquee-gap,3rem);animation:sosei-marquee var(--marquee-duration,32s) linear infinite}
@keyframes sosei-marquee{to{transform:translateX(-100%)}}
:where(.page) [data-marquee]:hover>*{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){:where(.page) [data-marquee]>*{animation:none}}
dialog.sosei-lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;outline:none}
dialog.sosei-lightbox::backdrop{background:rgba(0,0,0,.86)}
dialog.sosei-lightbox img{max-width:92vw;max-height:88vh;display:block;margin:auto}
dialog.sosei-lightbox .sosei-lightbox-close{position:fixed;top:12px;right:16px;font-size:2rem;line-height:1;background:none;border:0;color:#fff;cursor:pointer;opacity:.8;z-index:2}
:where(.page) [data-lightbox] img{cursor:zoom-in}
:where(.page) [data-parallax]{will-change:transform}
:where(.page) [data-carousel] [data-carousel-track],:where(.page) [data-carousel]>:first-child{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
:where(.page) [data-carousel] [data-carousel-track]::-webkit-scrollbar,:where(.page) [data-carousel]>:first-child::-webkit-scrollbar{display:none}
:where(.page) [data-carousel] [data-carousel-track]>*,:where(.page) [data-carousel]>:first-child>*{scroll-snap-align:start;flex-shrink:0}
:where(.page) .st-w,:where(.page) .st-c{display:inline-block;will-change:transform,opacity}
@media (prefers-reduced-motion:reduce){:where(.page) .st-w,:where(.page) .st-c{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
:where(.page) [data-tilt]{will-change:transform;transition:transform .35s ease}
:where(.page) [data-compare]{position:relative;overflow:hidden}
:where(.page) [data-compare] img{display:block;width:100%}
:where(.page) [data-compare] img+img{position:absolute;inset:0;height:100%;object-fit:cover;clip-path:inset(0 0 0 var(--pos,50%))}
:where(.page) [data-compare] .sosei-compare-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
:where(.page) [data-video]{position:relative;cursor:pointer}
:where(.page) [data-video] iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
:where(.page) [data-video]:not(.is-playing):focus-visible{outline:2px solid var(--color-accent-readable)}
:where(.page) video[data-player]{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:var(--player-ratio,16/9);object-fit:contain;background:#000}
:where(.page) video[data-player][data-portrait]{aspect-ratio:var(--player-ratio,9/16);max-height:80vh;margin-inline:auto;width:auto}
:where(.page) video[data-player]:focus-visible{outline:2px solid var(--color-accent-readable);outline-offset:2px}
:where(.page) [data-player-frame]{position:relative;display:block}
:where(.page) [data-player-frame] [data-play]{position:absolute;inset:0;display:grid;place-items:center;cursor:pointer;border:0;background:transparent;width:100%;padding:0}
:where(.page) [data-player-frame].is-playing [data-play]{display:none}
@media (prefers-reduced-motion:reduce){:where(.page) video[data-player][autoplay]{animation:none}}
:where(.page) [data-scroll-progress]{transform:scaleX(var(--progress,0));transform-origin:left}
:where(.page) [data-fx~="grain"]{position:relative;isolation:isolate}
:where(.page) [data-fx~="grain"]::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:var(--fx-grain-opacity,.06);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}
:where(.page) [data-fx~="aurora"]{position:relative;isolation:isolate}
:where(.page) [data-fx~="aurora"]::before{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;filter:blur(60px);opacity:var(--fx-aurora-opacity,.5);background:radial-gradient(40% 50% at 25% 30%,var(--fx-aurora-1,var(--color-primary)),transparent 70%),radial-gradient(35% 45% at 75% 25%,var(--fx-aurora-2,var(--color-accent)),transparent 70%),radial-gradient(45% 55% at 55% 80%,var(--fx-aurora-3,var(--color-secondary)),transparent 70%);animation:sosei-aurora 18s ease-in-out infinite alternate}
@keyframes sosei-aurora{to{transform:translate3d(4%,6%,0) rotate(8deg) scale(1.08)}}
@media (prefers-reduced-motion:reduce){:where(.page) [data-fx~="aurora"]::before{animation:none}}
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}

/* ── chrome nav-overflow floor (deterministic; header nav items size to content) ── */
@media (min-width:901px){.page :is(header,[data-comp="siteHeader"]) :is(.siteHeader-nav-item,[class$="-nav-item"],[class*="nav-list-item"]){max-width:none !important;min-width:max-content;white-space:nowrap}}

/* ── logo size floor (deterministic minimum so the brand reads; author may size up) ── */
:where(.page .siteHeader [data-slot="logo"] img,.siteHeader [data-slot="logo"] img){min-height:2.25rem;width:auto}
:where(.page .siteHeader [data-slot="logo"]:not(:has(img)),.siteHeader [data-slot="logo"]:not(:has(img))){font-size:max(1.15rem,1em);font-weight:700}

/* ── footer legal-links floor (styles the deterministic GDPR privacy/terms/cookies row) ── */
.siteFooter [data-legal-floor]{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);align-items:center;margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--color-border);font-size:.8125rem}
.siteFooter [data-legal-floor] a{color:var(--color-muted);text-decoration:none;opacity:.85}
.siteFooter [data-legal-floor] a:hover{opacity:1;text-decoration:underline}

/* ── kit builtin floor (code-owned components + prose) ── */
.page .proseBlock{padding-block:var(--space-section-y)}
.page .proseBlock-inner{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--s-5);display:grid;gap:var(--space-gap)}
.page .proseBlock-list{display:grid;gap:var(--s-2);padding-left:var(--s-4)}
.page .pageBanner{padding-block:var(--space-section-y)}
.page .pageBanner-inner{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--s-5);display:grid;gap:var(--s-2)}
.page .pageBanner-intro{color:var(--color-muted);max-width:60ch}
.page .contactForm{padding-block:var(--space-section-y)}
.page .contactForm-inner{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--s-5);display:grid;gap:var(--space-gap)}
@media(min-width:820px){.page .contactForm-inner{grid-template-columns:1fr 1.15fr;align-items:start}}
.page .contactForm-copy{display:grid;gap:var(--s-3);align-content:start}
.page .contactForm-intro{color:var(--color-muted);max-width:52ch}
.page .contactForm-form{display:grid;gap:var(--s-4)}
.page .contactForm-field{display:grid;gap:var(--s-1)}
.page .contactForm-label{font-size:var(--fs-small);color:var(--color-muted)}
.page .contactForm-input,.page .contactForm-textarea{width:100%;padding:var(--s-3) var(--s-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}
.page .contactForm-textarea{resize:vertical;min-height:8rem}
.page .contactForm-details{list-style:none;padding:0;display:grid;gap:var(--s-2);color:var(--color-muted)}
.page .contactForm-detail{display:flex;gap:var(--s-2);align-items:baseline}
.page .contactForm-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.page .contactForm-submit{justify-self:start;margin-top:var(--s-1)}

/* ── authored component library (experiment) ── */
/* ===== EXTENDED PALETTE + FOUNDATIONS ===== */
.page{
  --ink-deep:#231a1d;
  --ink-deep-2:#2e2226;
  --ink-bg:#80666a;
  --ink-glass:rgba(128,102,106,.78);
  --pearl:#e0c0c0;
  --pearl-soft:#f3e3e1;
  --pearl-glow:rgba(224,192,192,.4);
  --pearl-sheen:radial-gradient(circle at 34% 28%, #ffffff 0%, #f6ebe8 22%, #e0c0c0 58%, #b39572 100%);
  --bronze:#997e53;
  --bronze-ink:#7a6340;
  --garnet:#9e2f3c;
  --hair:rgba(36,27,30,.12);
  --hair-light:rgba(255,255,255,.16);
  --fs-eyebrow:.78rem;
  --fs-quote:clamp(1.75rem,1.2rem + 2vw,2.75rem);
  --fs-num:clamp(3rem,2rem + 3.5vw,5rem);
  --fs-ghost:clamp(4.5rem,15vw,13rem);
  --fs-h2-compact:clamp(1.75rem,1.2rem + 1.4vw,2.35rem);
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
}
.page .wrap{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--space-container-x)}
.page :where(main section[data-comp]){padding-block:var(--space-section-y)}
.page h1,.page h2,.page h3{font-family:var(--font-heading);font-weight:400;letter-spacing:-0.012em;color:inherit}
.page h1{font-size:var(--fs-h1);line-height:1}
.page h2{font-size:var(--fs-h2);line-height:1.04;margin:0 0 var(--s-4)}
.page h3{font-size:var(--fs-h3);line-height:1.15}
.page h1 em,.page h2 em,.page h3 em{font-style:italic;color:var(--garnet)}
.page p{line-height:var(--leading-body)}
.page .eyebrow{display:inline-flex;align-items:center;gap:var(--s-3);font-family:var(--font-body);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--bronze-ink);margin:0 0 var(--s-4)}
.page .eyebrow::before{content:"";flex:none;width:.62rem;height:.62rem;border-radius:50%;background:var(--pearl-sheen);box-shadow:0 0 0 3px var(--pearl-glow)}
.page .muted{color:var(--color-muted)}

/* grounds */
.page section.ground-alt{background:var(--color-bg-alt)}
.page section.ground-pearl{background:var(--color-primary)}
.page section.ground-dark{background:var(--ink-bg);color:var(--color-on-dark)}
.page .ground-dark p{color:rgba(255,255,255,.78)}
.page .ground-dark .eyebrow{color:var(--pearl)}
.page .ground-dark h2 em,.page .ground-dark h1 em{color:var(--pearl)}

/* buttons + links */
.page .cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-4) var(--s-5);border-radius:var(--radius-pill);background:var(--ink-deep);color:var(--pearl-soft);border:1px solid var(--ink-deep);font-family:var(--font-body);font-weight:600;font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.page .cta:hover{background:var(--garnet);border-color:var(--garnet);color:var(--color-on-accent);transform:translateY(-1px)}
.page .cta--pearl{background:var(--pearl);color:var(--ink-deep);border-color:var(--pearl)}
.page .cta--pearl:hover{background:var(--pearl-soft);border-color:var(--pearl-soft);color:var(--ink-deep)}
.page .cta--ghost{background:transparent;color:inherit;border-color:currentColor}
.page .cta--ghost:hover{background:var(--ink-deep);color:var(--pearl-soft);border-color:var(--ink-deep)}
.page .cta .ph{font-size:1.1em}
.page .link-arrow{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:600;font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;color:inherit;text-decoration:none;padding-bottom:var(--s-1);border-bottom:1px solid var(--bronze);transition:gap .25s ease,border-color .25s ease}
.page .link-arrow::after{content:"→";font-family:var(--font-body)}
.page .link-arrow:hover{gap:var(--s-3);border-color:var(--garnet)}

/* motifs */
.page .motif-pearl{display:inline-block;width:1rem;height:1rem;border-radius:50%;background:var(--pearl-sheen);box-shadow:0 0 0 6px var(--pearl-glow)}
.page .motif-arch{border-radius:999px 999px var(--radius-lg) var(--radius-lg);overflow:hidden}
.page .motif-orb{position:absolute;border-radius:50%;background:var(--pearl-sheen);pointer-events:none}

/* ===== pageHero (inner page opener) ===== */
.page [data-comp="pageHero"]{background:var(--color-bg);padding-top:clamp(3.5rem,7vw,6.5rem);padding-bottom:0}
.page [data-comp="pageHero"] .pageHero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.page [data-comp="pageHero"] h1{font-size:var(--fs-display);line-height:.94;margin:0}
.page [data-comp="pageHero"] .pageHero-intro{color:var(--color-muted);margin:0;max-width:34rem}
.page [data-comp="pageHero"] .pageHero-intro + .pageHero-intro{margin-top:var(--s-4)}
.page [data-comp="pageHero"] .pageHero-actions{margin-top:var(--s-5);display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center}
.page [data-comp="pageHero"] .pageHero-media{margin:clamp(2.5rem,5vw,4.5rem) 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden;aspect-ratio:21/8}
.page [data-comp="pageHero"] .pageHero-media img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:860px){
  .page [data-comp="pageHero"] .pageHero-grid{grid-template-columns:1fr;align-items:start}
  .page [data-comp="pageHero"] .pageHero-media{aspect-ratio:4/3}
}

/* ===== introSplit (image + text) ===== */
.page [data-comp="introSplit"]{background:var(--color-bg)}
.page [data-comp="introSplit"] .introSplit-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2.5rem,7vw,7rem);align-items:center}
.page [data-comp="introSplit"].is-reverse .introSplit-media{order:2}
.page [data-comp="introSplit"] .introSplit-media{position:relative;margin:0;max-width:30rem}
.page [data-comp="introSplit"] .introSplit-media img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.page [data-comp="introSplit"] .introSplit-media .motif-orb{width:5.5rem;height:5.5rem;right:-1.75rem;bottom:2.5rem;box-shadow:var(--shadow-lg)}
.page [data-comp="introSplit"] .introSplit-media figcaption{margin-top:var(--s-4);font-size:var(--fs-small);color:var(--color-muted)}
.page [data-comp="introSplit"] .introSplit-copy p{color:var(--color-muted);max-width:36rem;margin:0 0 var(--s-4)}
.page [data-comp="introSplit"] .introSplit-copy .eyebrow{margin-bottom:var(--s-4)}
.page [data-comp="introSplit"] .introSplit-media img.is-pos-low{object-position:30% 70%}
.page [data-comp="introSplit"] .introSplit-actions{margin-top:var(--s-6);display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center}
@media (max-width:860px){
  .page [data-comp="introSplit"] .introSplit-grid{grid-template-columns:1fr}
  .page [data-comp="introSplit"].is-reverse .introSplit-media{order:0}
  .page [data-comp="introSplit"] .introSplit-media{max-width:24rem}
  .page [data-comp="introSplit"] .introSplit-media .motif-orb{right:-.75rem;width:4rem;height:4rem}
}

/* ===== serviceIndex (category cards) ===== */
.page [data-comp="serviceIndex"]{background:var(--color-bg-alt)}
.page [data-comp="serviceIndex"] .serviceIndex-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s-6);margin-bottom:clamp(2rem,4vw,3.5rem)}
.page [data-comp="serviceIndex"] .serviceIndex-head h2{margin:0;max-width:16em}
.page [data-comp="serviceIndex"] .serviceIndex-head p{margin:0;max-width:26rem;color:var(--color-muted)}
.page [data-comp="serviceIndex"] .serviceIndex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.page [data-comp="serviceIndex"] .serviceCard{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s ease,box-shadow .35s ease}
.page [data-comp="serviceIndex"] .serviceCard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.page [data-comp="serviceIndex"] .serviceCard img{display:block;width:100%;aspect-ratio:395/230;object-fit:cover}
.page [data-comp="serviceIndex"] .serviceCard-body{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-5) var(--s-5) var(--s-5);flex:1}
.page [data-comp="serviceIndex"] .serviceCard h3{margin:0}
.page [data-comp="serviceIndex"] .serviceCard p{margin:0;flex:1;font-size:var(--fs-small);color:var(--color-muted)}
.page [data-comp="serviceIndex"] .serviceCard .link-arrow{align-self:flex-start;margin-top:var(--s-4)}
@media (max-width:1000px){.page [data-comp="serviceIndex"] .serviceIndex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page [data-comp="serviceIndex"] .serviceIndex-head{flex-direction:column;align-items:start}}
@media (max-width:560px){.page [data-comp="serviceIndex"] .serviceIndex-grid{grid-template-columns:1fr}}

/* ===== featureBand (full-bleed photo + glass card) ===== */
.page [data-comp="featureBand"]{position:relative;overflow:hidden;background:var(--ink-bg);color:var(--color-on-dark);padding-block:clamp(5rem,11vw,9.5rem)}
.page [data-comp="featureBand"] .featureBand-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6}
.page [data-comp="featureBand"] .wrap{position:relative;z-index:1}
.page [data-comp="featureBand"] .featureBand-card{max-width:38rem;background:var(--ink-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--hair-light);border-radius:var(--radius-lg);padding:clamp(2rem,4.5vw,3.75rem)}
.page [data-comp="featureBand"].is-right .featureBand-card{margin-left:auto}
.page [data-comp="featureBand"] .featureBand-card p{color:rgba(255,255,255,.8);margin:0 0 var(--s-4)}
.page [data-comp="featureBand"] .featureBand-actions{margin-top:var(--s-5)}
.page [data-comp="featureBand"] .eyebrow{color:var(--pearl)}
.page [data-comp="featureBand"] h2 em{color:var(--pearl)}
.page [data-comp="featureBand"] .featureBand-list{list-style:none;padding:0;margin:var(--s-5) 0 var(--s-6);display:grid;gap:var(--s-3)}
.page [data-comp="featureBand"] .featureBand-list li{display:flex;gap:var(--s-3);align-items:baseline;color:rgba(255,255,255,.88)}
.page [data-comp="featureBand"] .featureBand-list li::before{content:"";flex:none;width:.55rem;height:.55rem;border-radius:50%;background:var(--pearl-sheen);transform:translateY(-.1rem)}
.page [data-comp="featureBand"] .featureBand-actions{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center}

/* ===== newsBento (news: copy + tall photo + wide photo) ===== */
.page [data-comp="newsBento"]{background:var(--color-bg)}
.page [data-comp="newsBento"] .newsBento-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-4)}
.page [data-comp="newsBento"] .newsBento-copy{grid-column:1;grid-row:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(2rem,4.5vw,3.75rem)}
.page [data-comp="newsBento"] .newsBento-copy p{color:var(--color-muted);max-width:38rem;margin:0 0 var(--s-4)}
.page [data-comp="newsBento"] .newsBento-copy .link-arrow{margin-top:var(--s-3)}
.page [data-comp="newsBento"] .newsBento-tall{grid-column:2;grid-row:1 / span 2;margin:0;border-radius:var(--radius-lg);overflow:hidden;min-height:24rem}
.page [data-comp="newsBento"] .newsBento-tall img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.page [data-comp="newsBento"] .newsBento-wide{grid-column:1;grid-row:2;margin:0;border-radius:var(--radius-lg);overflow:hidden}
.page [data-comp="newsBento"] .newsBento-wide img{display:block;width:100%;aspect-ratio:16/5;object-fit:cover}
@media (max-width:860px){
  .page [data-comp="newsBento"] .newsBento-grid{grid-template-columns:1fr}
  .page [data-comp="newsBento"] .newsBento-copy,.page [data-comp="newsBento"] .newsBento-tall,.page [data-comp="newsBento"] .newsBento-wide{grid-column:1;grid-row:auto}
  .page [data-comp="newsBento"] .newsBento-tall{min-height:0;aspect-ratio:4/5}
}

/* ===== newsList (ruled editorial list with thumbs) ===== */
.page [data-comp="newsList"]{background:var(--color-bg)}
.page [data-comp="newsList"] .newsList-head{margin-bottom:clamp(2rem,4vw,3rem);max-width:40rem}
.page [data-comp="newsList"] .newsList-items{border-top:1px solid var(--color-border)}
.page [data-comp="newsList"] .newsItem{display:grid;grid-template-columns:minmax(0,17rem) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);padding-block:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--color-border);align-items:start}
.page [data-comp="newsList"] .newsItem-media{margin:0;border-radius:var(--radius);overflow:hidden}
.page [data-comp="newsList"] .newsItem-media img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.page [data-comp="newsList"] .newsItem h3{margin:0 0 var(--s-3);font-size:var(--fs-h3)}
.page [data-comp="newsList"] .newsItem p{color:var(--color-muted);margin:0 0 var(--s-4);max-width:44rem}
.page [data-comp="newsList"] .newsItem .eyebrow{margin-bottom:var(--s-3)}
@media (max-width:700px){.page [data-comp="newsList"] .newsItem{grid-template-columns:1fr}}

/* ===== treatmentGroup (sticky head + treatment rows with pearl-round thumbs) ===== */
.page [data-comp="treatmentGroup"]{background:var(--color-bg)}
.page [data-comp="treatmentGroup"].ground-alt{background:var(--color-bg-alt)}
.page [data-comp="treatmentGroup"] .treatmentGroup-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem)}
.page [data-comp="treatmentGroup"] .treatmentGroup-head{position:sticky;top:8rem;align-self:start}
.page [data-comp="treatmentGroup"] .treatmentGroup-head p{color:var(--color-muted)}
.page [data-comp="treatmentGroup"] .treatment{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:clamp(1.25rem,3vw,2.25rem);padding-block:var(--s-6);border-top:1px solid var(--color-border)}
.page [data-comp="treatmentGroup"] .treatment:first-child{border-top:0;padding-top:0}
.page [data-comp="treatmentGroup"] .treatment.no-media{grid-template-columns:minmax(0,1fr)}
.page [data-comp="treatmentGroup"] .treatment-media{margin:0}
.page [data-comp="treatmentGroup"] .treatment-media img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 0 0 6px var(--pearl-soft)}
.page [data-comp="treatmentGroup"] .treatment h3{margin:0 0 var(--s-2)}
.page [data-comp="treatmentGroup"] .treatment p{color:var(--color-muted);margin:0 0 var(--s-3)}
.page [data-comp="treatmentGroup"] .treatment-meta{font-size:var(--fs-small);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bronze-ink)}
.page [data-comp="treatmentGroup"] .treatment ul{list-style:none;padding:0;margin:var(--s-2) 0 var(--s-4);display:grid;gap:var(--s-2)}
.page [data-comp="treatmentGroup"] .treatment li{display:flex;gap:var(--s-3);align-items:baseline;color:var(--color-muted)}
.page [data-comp="treatmentGroup"] .treatment li::before{content:"";flex:none;width:.45rem;height:.45rem;border-radius:50%;background:var(--pearl-sheen);transform:translateY(-.1rem)}
@media (max-width:860px){
  .page [data-comp="treatmentGroup"] .treatmentGroup-grid{grid-template-columns:1fr}
  .page [data-comp="treatmentGroup"] .treatmentGroup-head{position:static}
  .page [data-comp="treatmentGroup"] .treatment{grid-template-columns:5.5rem minmax(0,1fr)}
}

/* ===== priceTable ===== */
.page [data-comp="priceTable"]{background:var(--color-bg-alt)}
.page [data-comp="priceTable"] .priceTable-groups{display:grid;gap:clamp(3rem,6vw,5rem)}
.page [data-comp="priceTable"] .priceGroup{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:clamp(1.5rem,4vw,3.5rem)}
.page [data-comp="priceTable"] .priceGroup-head{position:sticky;top:8rem;align-self:start}
.page [data-comp="priceTable"] .priceGroup-head h2{font-size:var(--fs-h2-compact)}
.page [data-comp="priceTable"] .priceGroup-head p{color:var(--color-muted);font-size:var(--fs-small)}
.page [data-comp="priceTable"] .priceGroup-rows{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.5rem clamp(1.25rem,3vw,2.25rem)}
.page [data-comp="priceTable"] .priceRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s-2) var(--s-6);padding-block:var(--s-5);border-bottom:1px solid var(--color-border);align-items:baseline}
.page [data-comp="priceTable"] .priceRow:last-child{border-bottom:0}
.page [data-comp="priceTable"] .priceRow-name{font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1.15;margin:0}
.page [data-comp="priceTable"] .priceRow-time{font-size:var(--fs-small);font-weight:600;color:var(--bronze-ink);white-space:nowrap}
.page [data-comp="priceTable"] .priceRow-price{font-family:var(--font-heading);font-size:var(--fs-h3);white-space:nowrap;color:var(--garnet)}
.page [data-comp="priceTable"] .priceRow-desc{grid-column:1 / -1;margin:0;font-size:var(--fs-small);color:var(--color-muted);max-width:62ch}
@media (max-width:860px){
  .page [data-comp="priceTable"] .priceGroup{grid-template-columns:1fr}
  .page [data-comp="priceTable"] .priceGroup-head{position:static}
  .page [data-comp="priceTable"] .priceRow{grid-template-columns:minmax(0,1fr) auto}
  .page [data-comp="priceTable"] .priceRow-name{grid-column:1 / -1;grid-row:1}
  .page [data-comp="priceTable"] .priceRow-time{grid-column:1;grid-row:2}
  .page [data-comp="priceTable"] .priceRow-price{grid-column:2;grid-row:2}
  .page [data-comp="priceTable"] .priceRow-desc{grid-row:3}
}

/* ===== steps (numbered how-to) ===== */
.page [data-comp="steps"]{background:var(--color-bg)}
.page [data-comp="steps"] .steps-head{max-width:40rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.page [data-comp="steps"] .steps-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:clamp(1.5rem,3vw,3rem);counter-reset:step}
.page [data-comp="steps"] .step{counter-increment:step;border-top:1px solid var(--color-border);padding-top:var(--s-5)}
.page [data-comp="steps"] .step::before{content:counter(step);display:block;font-family:var(--font-heading);font-style:italic;font-size:var(--fs-num);line-height:1;color:var(--bronze);margin-bottom:var(--s-4)}
.page [data-comp="steps"] .step h3{margin:0 0 var(--s-2)}
.page [data-comp="steps"] .step p{margin:0;color:var(--color-muted)}

/* ===== quoteBlock ===== */
.page [data-comp="quoteBlock"]{background:var(--color-bg-alt);text-align:center}
.page [data-comp="quoteBlock"] .quoteBlock-in{max-width:52rem;margin-inline:auto}
.page [data-comp="quoteBlock"] .motif-pearl{margin-bottom:var(--s-6)}
.page [data-comp="quoteBlock"] blockquote{margin:0;font-family:var(--font-heading);font-size:var(--fs-quote);line-height:1.2}
.page [data-comp="quoteBlock"] blockquote em{font-style:italic;color:var(--garnet)}
.page [data-comp="quoteBlock"] .quoteBlock-action{margin-top:var(--s-6)}
.page [data-comp="quoteBlock"] cite{display:block;margin-top:var(--s-5);font-style:normal;font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--bronze-ink)}

/* ===== faq ===== */
.page [data-comp="faq"]{background:var(--color-bg-alt)}
.page [data-comp="faq"] .faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem)}
.page [data-comp="faq"] .faq-head p{color:var(--color-muted)}
.page [data-comp="faq"] details{border-bottom:1px solid var(--color-border);padding-block:var(--s-5)}
.page [data-comp="faq"] details:first-child{border-top:1px solid var(--color-border)}
.page [data-comp="faq"] summary{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-5);cursor:pointer;list-style:none;font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1.2}
.page [data-comp="faq"] summary::-webkit-details-marker{display:none}
.page [data-comp="faq"] summary::after{content:"+";flex:none;font-family:var(--font-body);font-size:var(--fs-h3);color:var(--garnet);transition:transform .3s ease}
.page [data-comp="faq"] details[open] summary::after{transform:rotate(45deg)}
.page [data-comp="faq"] details p{margin:var(--s-4) 0 0;color:var(--color-muted);max-width:60ch}
@media (max-width:860px){.page [data-comp="faq"] .faq-grid{grid-template-columns:1fr}}

/* ===== contactBlock ===== */
.page [data-comp="contactBlock"]{background:var(--color-bg-alt)}
.page [data-comp="contactBlock"] .contactBlock-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.page [data-comp="contactBlock"] .contactPortrait-name{font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1.2;margin:0 0 var(--s-7)}
.page [data-comp="contactBlock"] .contactList{display:grid;gap:var(--s-5);margin:0}
.page [data-comp="contactBlock"] .contactList dt{font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--bronze-ink);margin-bottom:var(--s-1)}
.page [data-comp="contactBlock"] .contactList dd{margin:0;font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1.25}
.page [data-comp="contactBlock"] .contactList dd small{display:block;font-family:var(--font-body);font-size:var(--fs-small);color:var(--color-muted);margin-top:var(--s-1)}
.page [data-comp="contactBlock"] .contactList a{color:inherit;text-decoration:none;border-bottom:1px solid var(--bronze)}
.page [data-comp="contactBlock"] .contactForm{display:grid;gap:var(--s-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(1.75rem,4vw,3rem)}
.page [data-comp="contactBlock"] .contactForm h2{margin-bottom:var(--s-1)}
.page [data-comp="contactBlock"] .contactForm-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.page [data-comp="contactBlock"] .contactForm label{display:grid;gap:var(--s-2);font-size:var(--fs-small);font-weight:600}
.page [data-comp="contactBlock"] .contactForm input,.page [data-comp="contactBlock"] .contactForm textarea,.page [data-comp="contactBlock"] .contactForm select{font:inherit;font-weight:400;padding:var(--s-4) var(--s-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);width:100%}
.page [data-comp="contactBlock"] .contactForm textarea{min-height:9rem;resize:vertical}
.page [data-comp="contactBlock"] .contactForm input:focus,.page [data-comp="contactBlock"] .contactForm textarea:focus{outline:2px solid var(--garnet);outline-offset:1px}
.page [data-comp="contactBlock"] .contactForm .cta{justify-self:start}
.page [data-comp="contactBlock"] .contactForm-note{font-size:var(--fs-small);color:var(--color-muted);margin:0}
@media (max-width:860px){.page [data-comp="contactBlock"] .contactBlock-grid,.page [data-comp="contactBlock"] .contactForm-row{grid-template-columns:1fr}}

/* ===== ctaClose (closing band, pearl or dark) ===== */
.page [data-comp="ctaClose"]{position:relative;overflow:hidden;background:var(--color-primary);color:var(--ink-deep);padding-block:clamp(4.5rem,9vw,8rem)}
.page [data-comp="ctaClose"]::after{content:"";position:absolute;width:26rem;height:26rem;left:-9rem;bottom:-14rem;border-radius:50%;background:var(--pearl-sheen);opacity:.55;pointer-events:none}
.page [data-comp="ctaClose"] .wrap{position:relative;z-index:1}
.page [data-comp="ctaClose"] .ctaClose-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.page [data-comp="ctaClose"] h2{font-size:var(--fs-h1);margin:0}
.page [data-comp="ctaClose"] h2 em{color:var(--garnet)}
.page [data-comp="ctaClose"] .eyebrow{color:var(--ink-deep)}
.page [data-comp="ctaClose"] p{margin:var(--s-4) 0 0;max-width:36rem}
.page [data-comp="ctaClose"] .ctaClose-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-4)}
.page [data-comp="ctaClose"] .ctaClose-phone{font-family:var(--font-heading);font-size:var(--fs-h2);line-height:1;color:inherit;text-decoration:none;white-space:nowrap}
.page [data-comp="ctaClose"] .ctaClose-phone:hover{color:var(--garnet)}
.page [data-comp="ctaClose"] .ctaClose-meta{font-size:var(--fs-small);margin:0}
.page [data-comp="ctaClose"].is-dark{background:var(--ink-bg);color:var(--color-on-dark)}
.page [data-comp="ctaClose"].is-dark::after{opacity:.18}
.page [data-comp="ctaClose"].is-dark .eyebrow{color:var(--pearl)}
.page [data-comp="ctaClose"].is-dark h2 em,.page [data-comp="ctaClose"].is-dark .ctaClose-phone:hover{color:var(--pearl)}
.page [data-comp="ctaClose"].is-dark p{color:rgba(255,255,255,.78)}
@media (max-width:860px){.page [data-comp="ctaClose"] .ctaClose-in{grid-template-columns:1fr;align-items:start}}

/* ===== legal pages ===== */
.page .legal-page{max-width:48rem;margin-inline:auto;padding:clamp(3.5rem,7vw,6rem) var(--space-container-x) clamp(4rem,8vw,7rem)}
.page .legal-page section{padding:0}
.page .legal-page h1{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-h1);line-height:1;margin:0 0 var(--s-6)}
.page .legal-page h2{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-h3);margin:var(--s-7) 0 var(--s-4);padding-top:var(--s-5);border-top:1px solid var(--color-border)}
.page .legal-page p,.page .legal-page li{color:var(--color-muted)}
.page .legal-page ul{padding-left:var(--s-4);display:grid;gap:var(--s-2)}
.page .legal-page a{color:var(--garnet);text-underline-offset:3px}

/* ===== chrome: header ===== */
.page [data-comp="siteHeader"]{position:sticky;top:0;z-index:60;background:var(--ink-bg);color:var(--color-on-dark);transition:background .3s ease}
.page [data-comp="siteHeader"] .hdr-top{border-bottom:1px solid var(--hair-light);font-size:var(--fs-small);color:rgba(255,255,255,.7)}
.page [data-comp="siteHeader"] .hdr-top-in{display:flex;justify-content:space-between;gap:var(--s-5);padding-block:var(--s-2)}
.page [data-comp="siteHeader"] .hdr-top-group{display:flex;gap:var(--s-5);align-items:center}
.page [data-comp="siteHeader"] .hdr-top a,.page [data-comp="siteHeader"] .hdr-top span{display:inline-flex;align-items:center;gap:var(--s-2);color:inherit;text-decoration:none;white-space:nowrap}
.page [data-comp="siteHeader"] .hdr-top a:hover{color:var(--pearl)}
.page [data-comp="siteHeader"] .hdr-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);padding-block:var(--s-3)}
.page [data-comp="siteHeader"] .hdr-brand{display:flex;align-items:center;gap:var(--s-3);text-decoration:none;color:var(--color-on-dark);flex:none}
.page [data-comp="siteHeader"] .hdr-brand img{height:46px;width:auto;display:block;border-radius:var(--radius-sm)}
.page [data-comp="siteHeader"] .hdr-brand span{font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1;white-space:nowrap}
.page [data-comp="siteHeader"] #siteNav ul{display:flex;gap:var(--s-5);list-style:none;margin:0;padding:0}
.page [data-comp="siteHeader"] #siteNav a{position:relative;display:inline-block;padding-block:var(--s-2);color:rgba(255,255,255,.82);text-decoration:none;font-size:var(--fs-small);font-weight:500;letter-spacing:.02em;white-space:nowrap;transition:color .2s ease}
.page [data-comp="siteHeader"] #siteNav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--pearl);transform-origin:left;transition:transform .3s ease}
.page [data-comp="siteHeader"] #siteNav a:hover,.page [data-comp="siteHeader"] #siteNav a[aria-current="page"],.page [data-comp="siteHeader"] #siteNav a.is-active{color:var(--color-on-dark)}
.page [data-comp="siteHeader"] #siteNav a:hover::after,.page [data-comp="siteHeader"] #siteNav a[aria-current="page"]::after,.page [data-comp="siteHeader"] #siteNav a.is-active::after{transform:scaleX(1)}
.page [data-comp="siteHeader"] .hdr-actions{display:flex;align-items:center;gap:var(--s-4);flex:none}
.page [data-comp="siteHeader"] .hdr-cta{padding:var(--s-3) var(--s-5)}
.page [data-comp="siteHeader"] .hdr-burger{display:none;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--hair-light);background:transparent;color:var(--color-on-dark);cursor:pointer;align-items:center;justify-content:center;font-size:var(--fs-h3)}
.page.home-hero [data-comp="siteHeader"]{position:fixed;left:0;right:0;top:0;background:var(--ink-bg);color:var(--color-on-dark)}
.page.home-hero [data-comp="siteHeader"].is-scrolled{background:var(--ink-bg);color:var(--color-on-dark);box-shadow:var(--shadow-lg)}
.page.home-hero [data-comp="siteHeader"].is-scrolled .hdr-top{display:none}
@media (max-width:1140px){
  .page [data-comp="siteHeader"] .hdr-burger{display:inline-flex}
  .page [data-comp="siteHeader"] #siteNav{display:none;position:absolute;top:100%;left:calc(-1 * var(--space-container-x));right:calc(-1 * var(--space-container-x));background:var(--ink-bg);padding:1.5rem var(--space-container-x) 2rem;border-top:1px solid var(--hair-light)}
  .page [data-comp="siteHeader"]:has(.hdr-burger[aria-expanded="true"]) #siteNav,.page [data-comp="siteHeader"] #siteNav.is-open{display:block}
  .page [data-comp="siteHeader"] #siteNav ul{flex-direction:column;gap:var(--s-1)}
  .page [data-comp="siteHeader"] #siteNav a{font-family:var(--font-heading);font-size:var(--fs-h3)}
}
@media (max-width:760px){
  .page [data-comp="siteHeader"] .hdr-top .hdr-hide-sm{display:none}
  .page [data-comp="siteHeader"] .hdr-brand span{font-size:1.4rem}
}
@media (max-width:440px){.page [data-comp="siteHeader"] .hdr-cta{display:none}}

/* ===== chrome: footer ===== */
.page [data-comp="siteFooter"]{background:var(--footer-bg);color:var(--footer-text);padding-top:clamp(4rem,8vw,6.5rem);overflow:hidden}
.page [data-comp="siteFooter"] .ftr-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(2rem,4vw,3.5rem)}
.page [data-comp="siteFooter"] .ftr-brand img{height:56px;width:auto;display:block;margin-bottom:var(--s-4);border-radius:var(--radius-sm)}
.page [data-comp="siteFooter"] .ftr-tag{font-family:var(--font-heading);font-size:var(--fs-h3);line-height:1.2;max-width:18rem;margin:0}
.page [data-comp="siteFooter"] .ftr-col h2{font-family:var(--font-body);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--pearl);margin:0 0 var(--s-4)}
.page [data-comp="siteFooter"] .ftr-col ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--s-2)}
.page [data-comp="siteFooter"] .ftr-col li,.page [data-comp="siteFooter"] .ftr-col p{color:var(--footer-muted);font-size:var(--fs-small);margin:0;line-height:1.6}
.page [data-comp="siteFooter"] a{color:var(--footer-muted);text-decoration:none;transition:color .2s ease}
.page [data-comp="siteFooter"] a:hover{color:var(--footer-text)}
.page [data-comp="siteFooter"] .ftr-social{display:inline-flex;align-items:center;gap:var(--s-2)}
.page [data-comp="siteFooter"] .ftr-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s-4) var(--s-6);border-top:1px solid var(--footer-border);padding-block:var(--s-5);font-size:var(--fs-small);color:var(--footer-muted)}
.page [data-comp="siteFooter"] .ftr-legal{display:flex;flex-wrap:wrap;gap:var(--s-4);list-style:none;margin:0;padding:0}
.page [data-comp="siteFooter"] .sosei-credit{opacity:.6}
.page [data-comp="siteFooter"] .sosei-credit:hover{opacity:1}
@media (max-width:900px){.page [data-comp="siteFooter"] .ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.page [data-comp="siteFooter"] .ftr-grid{grid-template-columns:1fr}}


/* ===== homeHero (dark photo, light ink, floating hours card) ===== */
.page{--hdr-scrim:linear-gradient(180deg,rgba(128,102,106,.92) 0%,rgba(128,102,106,.6) 70%,rgba(128,102,106,0) 100%);--hero-mobile-scrim:linear-gradient(0deg,rgba(128,102,106,.92) 0%,rgba(128,102,106,.7) 55%,rgba(128,102,106,.35) 100%);--hero-scrim:linear-gradient(90deg,rgba(128,102,106,.94) 0%,rgba(128,102,106,.72) 34%,rgba(128,102,106,.18) 62%,rgba(128,102,106,0) 80%);--hero-floor:linear-gradient(0deg,rgba(128,102,106,.55) 0%,rgba(128,102,106,0) 30%)}
.page [data-comp="homeHero"]{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:min(100svh,52rem);padding-top:clamp(9rem,14vw,11rem);padding-bottom:clamp(6rem,9vw,8rem);background:var(--ink-bg);color:var(--color-on-dark);isolation:isolate}
.page [data-comp="homeHero"] .homeHero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%;z-index:-2}
.page [data-comp="homeHero"]::before{content:"";position:absolute;inset:0;background:var(--hero-scrim),var(--hero-floor);z-index:-1}
.page [data-comp="homeHero"] > .wrap{width:100%;align-self:stretch}
.page [data-comp="homeHero"] .homeHero-in{max-width:41rem}
.page [data-comp="homeHero"] .eyebrow{color:var(--pearl)}
.page [data-comp="homeHero"] h1{font-size:var(--fs-display);line-height:.93;letter-spacing:-0.02em;margin:0 0 var(--s-5);color:var(--color-on-dark)}
.page [data-comp="homeHero"] h1 em{color:var(--pearl);font-style:italic}
.page [data-comp="homeHero"] .homeHero-text{color:rgba(255,255,255,.82);max-width:32rem;margin:0}
.page [data-comp="homeHero"] .homeHero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4) var(--s-6);margin-top:var(--s-7)}
.page [data-comp="homeHero"] .link-arrow{color:var(--color-on-dark);border-color:var(--pearl)}
.page [data-comp="homeHero"] .homeHero-cardRow{position:absolute;left:0;right:0;bottom:-3.25rem;z-index:3}
.page [data-comp="homeHero"] .homeHero-cardRow .wrap{display:flex;justify-content:flex-end}
.page [data-comp="homeHero"] .homeHero-card{display:flex;align-items:center;gap:var(--s-4);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);padding:var(--s-5) var(--s-6);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}
.page [data-comp="homeHero"] .homeHero-card strong{display:block;font-family:var(--font-heading);font-weight:400;font-size:var(--fs-h3);line-height:1.15}
.page [data-comp="homeHero"] .homeHero-card span.homeHero-cardMeta{display:block;font-size:var(--fs-small);color:var(--color-muted);margin-top:var(--s-1)}
.page [data-comp="homeHero"] + section[data-comp]{padding-top:calc(var(--space-section-y) + 2.5rem)}
@media (prefers-reduced-motion:no-preference){
  .page [data-comp="homeHero"] h1 .st-w{display:inline-block;opacity:0;transform:translateY(.45em);animation:heroRise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 70ms + .15s)}
}
@keyframes heroRise{from{opacity:0;transform:translateY(.45em)}to{opacity:1;transform:none}}
@media (max-width:760px){
  .page [data-comp="homeHero"]{min-height:0;padding-top:var(--s-12);padding-bottom:var(--s-8)}
  .page [data-comp="homeHero"] .homeHero-bg{object-position:72% 50%}
  .page [data-comp="homeHero"]::before{background:var(--hero-mobile-scrim)}
  .page [data-comp="homeHero"] .homeHero-cardRow{position:static;margin-top:var(--s-7)}
  .page [data-comp="homeHero"] .homeHero-cardRow .wrap{justify-content:flex-start}
  .page [data-comp="homeHero"] + section[data-comp]{padding-top:var(--space-section-y)}
}
