@font-face{font-family:'Lexend';src:url('/fonts/Lexend-100-900-normal-latin-ext.woff2')format('woff2');font-weight:100 900;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:'Lexend';src:url('/fonts/Lexend-100-900-normal-latin.woff2')format('woff2');font-weight:100 900;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:'Figtree';src:url('/fonts/Figtree-300-800-normal-latin-ext.woff2')format('woff2');font-weight:300 800;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:'Figtree';src:url('/fonts/Figtree-300-800-normal-latin.woff2')format('woff2');font-weight:300 800;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}:root{--color-primary:#ee9ba0;--color-primary-soft:#fdf5f6;--color-accent:#00b3ff;--color-secondary:#0c4da2;--color-text:#13203b;--color-muted:#566079;--color-bg:#fbf9fa;--color-bg-alt:#fcecee;--color-surface:#ffffff;--color-border:#efd9dc;--color-on-primary:#0b0f13;--color-on-accent:#0b0f13;--color-on-dark:#ffffff;--color-accent-readable:#006d9b;--footer-bg:#0b2c5e;--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.75rem;--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.75rem;--radius:1.25rem;--radius-lg:1.75rem;--radius-pill:999px;--shadow:0 8px 24px rgba(31,24,14,0.06);--shadow-lg:0 20px 50px rgba(31,24,14,0.12);--font-heading:'Lexend',sans-serif;--font-body:'Figtree',sans-serif;--font-accent:var(--font-heading);--container-width:1200px;--fs-display:clamp(2.75rem,1.85rem + 4.5vw,5.25rem);--fs-h1:clamp(2.25rem,1.6rem + 3vw,4rem);--fs-h2:clamp(1.875rem,1.3rem + 2.5vw,3rem);--fs-h3:clamp(1.25rem,1.1rem + 0.6vw,1.5rem);--fs-body:clamp(1.0625rem,1rem + 0.25vw,1.1875rem);--fs-small:0.875rem;--tracking-display:-0.025em;--tracking-heading:-0.012em;--leading-display:1.05;--leading-heading:1.18;--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:.75rem 1.25rem;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:2.25em;margin-bottom:.6em}.legal-page h3{font-size:var(--fs-h3);margin-top:1.75em;margin-bottom:.4em}.legal-page p{margin-bottom:1em;max-width:none;line-height:var(--leading-body)}.legal-page ul,.legal-page ol{margin:0 0 1.25em;padding-left:1.4em;list-style:revert}.legal-page li{margin-bottom:.4em;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}.embed-wrap{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-bg-alt);box-shadow:var(--shadow);max-width:100%}.embed-wrap__frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.embed-wrap__ratio--16x9{padding-top:56.25%}.embed-wrap__ratio--4x3{padding-top:75%}.embed-wrap__ratio--social{padding-top:120%;max-width:560px;margin-inline:auto}.embed-wrap__ratio--newsletter{padding-top:0;min-height:520px;background:var(--color-surface)}.embed-wrap__ratio--newsletter .embed-wrap__frame{position:relative;inset:auto;height:520px}.embed-wrap__ratio--audio{padding-top:0;min-height:152px;background:transparent;box-shadow:none}.embed-wrap__ratio--audio .embed-wrap__frame{position:relative;inset:auto;height:152px}.embed-wrap__ratio--audio-tall{padding-top:0;min-height:450px;background:transparent;box-shadow:none}.embed-wrap__ratio--audio-tall .embed-wrap__frame{position:relative;inset:auto;height:450px}.embed-wrap--widget{padding:2rem 1.5rem;min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.embed-wrap__widget{width:100%}.embed-wrap__placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.75rem;text-align:center;padding:1.5rem;background:var(--color-bg-alt);color:var(--color-text);z-index:1}.embed-wrap[data-embed-state="loaded"] .embed-wrap__placeholder{display:none}.embed-wrap[data-embed-state="pending"] .embed-wrap__frame[data-consent]:not([src]){visibility:hidden}.embed-wrap__placeholder-title{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;margin:0}.embed-wrap__placeholder-body{color:var(--color-muted);font-size:0.9rem;margin:0;max-width:36ch}.embed-wrap__load{margin-top:0.5rem}.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:1.25rem 1.5rem;box-shadow:var(--shadow-lg);z-index:90;display:none;flex-direction:column;gap:0.75rem}.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:0.5rem;flex-wrap:wrap}.cookie-btn{padding:0.55rem 1.1rem;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 .5rem}
: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:.35rem 1.1rem;align-items:center;margin-top:1rem;padding-top:1rem;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:1.5rem;display:grid;gap:var(--space-gap)}
.page .proseBlock-list{display:grid;gap:.5rem;padding-left:1.25rem}
.page .pageBanner{padding-block:var(--space-section-y)}
.page .pageBanner-inner{max-width:var(--container-width);margin-inline:auto;padding-inline:1.5rem;display:grid;gap:.5rem}
.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:1.5rem;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:.75rem;align-content:start}
.page .contactForm-intro{color:var(--color-muted);max-width:52ch}
.page .contactForm-form{display:grid;gap:1rem}
.page .contactForm-field{display:grid;gap:.35rem}
.page .contactForm-label{font-size:var(--fs-small);color:var(--color-muted)}
.page .contactForm-input,.page .contactForm-textarea{width:100%;padding:.7rem .8rem;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:.5rem;color:var(--color-muted)}
.page .contactForm-detail{display:flex;gap:.5rem;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:.25rem}

/* ── authored component library (experiment) ── */
.page{
  --pink-deep:#c9616b;
  --pink-ink:#a8414c;
  --rose-glow:rgba(238,155,160,.35);
  --blue-deep:#0b2c5e;
  --blue-glow:rgba(0,179,255,.18);
  --blue-tint:#eaf3fc;
  --hair:rgba(12,77,162,.14);
  --scrim-left:linear-gradient(90deg,rgba(251,249,250,.96) 0%,rgba(251,249,250,.86) 34%,rgba(251,249,250,.2) 62%,rgba(251,249,250,0) 80%);
  --fs-eyebrow:.8125rem;
  --fs-lead:clamp(1.125rem,1.05rem + .4vw,1.3125rem);
  --fs-stat:clamp(2.5rem,2rem + 2vw,3.5rem);
  --arc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 11 C 60 1, 140 1, 198 9' fill='none' stroke='%23ee9ba0' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-bg);
}
.page h1,.page h2,.page h3,.page h4{font-family:var(--font-heading);letter-spacing:-.02em;line-height:1.2;color:var(--color-text);font-weight:600}
.page h2{font-size:var(--fs-h2)}
.page h3{font-size:var(--fs-h3)}
.page p{line-height:1.65}
.page .wrap{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--space-container-x)}
.page main > section{padding-block:var(--space-section-y)}
.page .eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-heading);font-size:var(--fs-eyebrow);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-secondary);margin-bottom:1rem}
.page .eyebrow::before{content:"";width:1.75rem;height:.5rem;background:var(--arc) center/100% 100% no-repeat}
.page .accent-word{position:relative;color:var(--pink-ink);white-space:nowrap}
.page .accent-word::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.12em;height:.28em;background:var(--arc) center/100% 100% no-repeat}
.page .lead{font-size:var(--fs-lead);color:var(--color-muted);max-width:38rem}
.page .muted{color:var(--color-muted)}
/* buttons */
.page .k-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.5rem;border-radius:999px;font-family:var(--font-heading);font-weight:500;font-size:var(--fs-small);letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;white-space:nowrap}
.page .k-btn--primary{background:var(--color-secondary);color:var(--color-on-dark);box-shadow:0 10px 24px -12px var(--color-secondary)}
.page .k-btn--primary:hover{transform:translateY(-2px);background:var(--blue-deep)}
.page .k-btn--ghost{background:transparent;color:var(--color-secondary);border-color:var(--hair)}
.page .k-btn--ghost:hover{border-color:var(--color-secondary)}
.page .k-btn--pink{background:var(--color-primary);color:var(--color-on-primary)}
.page .k-btn--pink:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px var(--pink-deep)}
.page .k-btn .ph{font-size:1.15em}
.page .k-link{color:var(--color-secondary);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-primary);text-decoration-thickness:2px;text-underline-offset:4px;transition:color .2s}
.page .k-link:hover{color:var(--color-text)}
.page [data-comp="serviceIndex"] .si-row .si-arrow{grid-column:-2;grid-row:1 / span 2;align-self:center}
.page .actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
/* motif: soft arc blob */
.page .motif-arc{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--rose-glow),transparent 65%);pointer-events:none;z-index:0}
.page .section-head{max-width:46rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.page .section-head p{color:var(--color-muted);margin-top:1rem}
/* legal */
.page .legal-page{max-width:46rem;margin-inline:auto;padding:clamp(7rem,10vw,9rem) var(--space-container-x) var(--space-section-y)}
.page .legal-page h1{font-size:var(--fs-h1);margin-bottom:1.5rem}
.page .legal-page h2{font-size:var(--fs-h3);margin:2.5rem 0 .75rem}
.page .legal-page p,.page .legal-page li{color:var(--color-muted);line-height:1.7}
.page .legal-page ul{padding-left:1.25rem;margin:.75rem 0}
.page .legal-page a{color:var(--color-secondary);text-decoration:underline;text-decoration-color:var(--color-primary);text-underline-offset:3px}
/* page hero (inner opener) */
.page [data-comp="pageHero"]{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--color-bg-alt),var(--color-bg));padding-block:clamp(8rem,12vw,10rem) clamp(3rem,6vw,5rem)}
.page [data-comp="pageHero"] .ph-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4rem);align-items:end;position:relative;z-index:1}
.page [data-comp="pageHero"] h1{font-size:clamp(2rem,1.5rem + 2.6vw,3.75rem);max-width:22ch;overflow-wrap:break-word}
.page [data-comp="serviceDetail"] .sd-aside h2{color:var(--color-on-dark);font-size:var(--fs-h3);margin-bottom:1rem}
.page [data-comp="faq"] .faq-head h2{font-size:clamp(1.625rem,1.2rem + 1.6vw,2.375rem)}
@media (max-width:560px){.page [data-comp="pageHero"] h1{font-size:1.875rem}}
.page [data-comp="pageHero"] .lead{margin-top:1.25rem}
.page [data-comp="pageHero"] .ph-media{border-radius:200px 200px 24px 24px;overflow:hidden;aspect-ratio:4/5;max-height:26rem;box-shadow:var(--shadow-lg)}
.page [data-comp="pageHero"] .ph-media img{width:100%;height:100%;object-fit:cover}
.page [data-comp="pageHero"] .ph-facts{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.75rem;color:var(--color-muted);font-size:var(--fs-small)}
.page [data-comp="pageHero"] .ph-facts span{display:inline-flex;align-items:center;gap:.4rem}
.page [data-comp="pageHero"] .ph-facts .ph{color:var(--pink-deep);font-size:1.2em}
.page [data-comp="pageHero"] .motif-arc{width:38rem;height:38rem;right:-12rem;top:-14rem}
@media (max-width:860px){.page [data-comp="pageHero"] .ph-grid{grid-template-columns:1fr}.page [data-comp="pageHero"] .ph-media{max-height:20rem;aspect-ratio:4/3;border-radius:120px 120px 20px 20px}}


/* header */
.page [data-comp="siteHeader"]{position:sticky;top:0;z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);transition:background .25s,box-shadow .25s}
.page [data-comp="siteHeader"] .sh-top{background:var(--blue-deep);color:var(--color-on-dark);font-size:var(--fs-small)}
.page [data-comp="siteHeader"] .sh-top-in{display:flex;gap:1.75rem;justify-content:flex-end;padding-block:.45rem}
.page [data-comp="siteHeader"] .sh-top a,.page [data-comp="siteHeader"] .sh-top span{color:var(--color-on-dark);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
.page [data-comp="siteHeader"] .sh-top .sh-hours{opacity:.7;margin-left:.25rem}
.page [data-comp="siteHeader"] .sh-bar{display:flex;align-items:center;gap:2rem;padding-block:.85rem}
.page [data-comp="siteHeader"] .sh-logo img{height:46px;width:auto;display:block}
.page [data-comp="siteHeader"] .sh-nav{margin-left:auto}
.page [data-comp="siteHeader"] .sh-nav > ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
.page [data-comp="siteHeader"] .sh-nav a{display:inline-flex;align-items:center;gap:.3rem;padding:.6rem .9rem;border-radius:999px;font-family:var(--font-heading);font-size:var(--fs-small);font-weight:500;color:var(--color-text);text-decoration:none;white-space:nowrap;transition:background .2s}
.page [data-comp="siteHeader"] .sh-nav a:hover{background:var(--color-bg-alt)}
.page [data-comp="siteHeader"] .sh-drop{position:relative}
.page [data-comp="siteHeader"] .sh-sub{position:absolute;top:100%;left:0;min-width:15rem;list-style:none;margin:0;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(6px);transition:all .2s}
.page [data-comp="siteHeader"] .sh-drop:hover .sh-sub,.page [data-comp="siteHeader"] .sh-drop:focus-within .sh-sub{opacity:1;visibility:visible;transform:none}
.page [data-comp="siteHeader"] .sh-sub a{display:flex;width:100%;border-radius:12px}
.page [data-comp="siteHeader"] .sh-cta{display:inline-flex;align-items:center;padding:.75rem 1.25rem;border-radius:999px;background:var(--color-secondary);color:var(--color-on-dark);font-family:var(--font-heading);font-weight:500;font-size:var(--fs-small);text-decoration:none;white-space:nowrap}
.page [data-comp="siteHeader"] .sh-cta:hover{background:var(--blue-deep)}
.page [data-comp="siteHeader"] .sh-nav a.sh-cta--mobile{display:none;background:var(--color-primary);color:var(--color-text);justify-content:center;margin-top:1rem;padding:.85rem 1.25rem;border-radius:999px}
.page [data-comp="siteHeader"] .sh-burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer}
.page [data-comp="siteHeader"] .sh-burger span{width:18px;height:2px;background:var(--color-text);border-radius:2px}
.home-hero .page [data-comp="siteHeader"],.page.home-hero [data-comp="siteHeader"]{position:fixed;left:0;right:0;background:var(--color-surface);border-bottom-color:var(--color-border)}
.page.home-hero [data-comp="siteHeader"].is-scrolled{background:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--color-border);box-shadow:0 6px 24px -18px rgba(0,0,0,.4)}
.page.home-hero [data-comp="siteHeader"].is-scrolled .sh-nav a{color:var(--color-text)}
@media (max-width:960px){
  .page [data-comp="siteHeader"] .sh-top-in{justify-content:center;gap:1rem}
  .page [data-comp="siteHeader"] .sh-top-in > span,.page [data-comp="siteHeader"] .sh-top-in a[href^="mailto"]{display:none}
  .page [data-comp="siteHeader"] .sh-bar > .sh-cta{display:none}
  .page [data-comp="siteHeader"] .sh-burger{display:flex}
  .page [data-comp="siteHeader"] .sh-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem var(--space-container-x) 1.5rem;box-shadow:var(--shadow-lg);max-height:80vh;overflow:auto}
  .page [data-comp="siteHeader"] .sh-burger[aria-expanded="true"] + .sh-nav,.page [data-comp="siteHeader"] .sh-nav.is-open,.page [data-comp="siteHeader"]:has(.sh-burger[aria-expanded="true"]) .sh-nav{display:block}
  .page [data-comp="siteHeader"] .sh-nav > ul{flex-direction:column}
  .page [data-comp="siteHeader"] .sh-sub{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 0 1rem;background:transparent}
  .page [data-comp="siteHeader"] .sh-nav a.sh-cta--mobile{display:flex}
}
/* footer */
.page [data-comp="siteFooter"]{background:var(--footer-bg);color:var(--footer-text);padding-top:clamp(3.5rem,6vw,5rem);font-size:var(--fs-small)}
.page [data-comp="siteFooter"] .sf-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2.5rem}
.page [data-comp="siteFooter"] .sf-logo{display:inline-block;background:var(--color-surface);padding:.6rem .9rem;border-radius:16px}
.page [data-comp="siteFooter"] .sf-logo img{height:42px;width:auto;display:block}
.page [data-comp="siteFooter"] .sf-brand p{color:var(--footer-muted);margin-top:1.25rem;max-width:22rem;line-height:1.6}
.page [data-comp="siteFooter"] .sf-h{font-size:var(--fs-small);color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem;font-weight:500}
.page [data-comp="siteFooter"] ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.page [data-comp="siteFooter"] a{color:var(--footer-text);text-decoration:none}
.page [data-comp="siteFooter"] a:hover{color:var(--color-primary)}
.page [data-comp="siteFooter"] .sf-contact p{margin-bottom:.9rem;line-height:1.6}
.page [data-comp="siteFooter"] .sf-muted{color:var(--footer-muted)}
.page [data-comp="siteFooter"] .sf-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:3.5rem;padding-block:1.5rem;border-top:1px solid var(--footer-border);color:var(--footer-muted)}
.page [data-comp="siteFooter"] .sf-legal{display:flex;gap:1.25rem;margin-left:auto}
.page [data-comp="siteFooter"] .sf-legal a{color:var(--footer-muted)}
.page [data-comp="siteFooter"] .sosei-credit{color:var(--footer-muted);opacity:.7}
@media (max-width:860px){.page [data-comp="siteFooter"] .sf-grid{grid-template-columns:1fr 1fr}.page [data-comp="siteFooter"] .sf-brand{grid-column:1/-1}.page [data-comp="siteFooter"] .sf-legal{margin-left:0}}


/* serviceBento (delegated) */
.page [data-comp="serviceBento"]{background:var(--color-bg)}
.page [data-comp="serviceBento"] .sb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.page [data-comp="serviceBento"] .sb-card{position:relative;display:flex;flex-direction:column;padding:clamp(1.5rem,3vw,2.25rem);border-radius:28px;background:var(--color-surface);border:1px solid var(--color-border);text-decoration:none;color:var(--color-text);min-height:15rem;transition:transform .25s ease,box-shadow .25s ease}
.page [data-comp="serviceBento"] .sb-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px var(--rose-glow),0 10px 26px -18px var(--rose-glow)}
.page [data-comp="serviceBento"] .sb-card:focus-visible{outline:2px solid var(--color-accent-readable,var(--color-secondary));outline-offset:3px}
.page [data-comp="serviceBento"] .sb-card h3{font-size:var(--fs-h3);margin:.5rem 0 .75rem}
.page [data-comp="serviceBento"] .sb-card p{color:var(--color-muted);margin:0}
.page [data-comp="serviceBento"] .sb-tag{align-self:flex-start;display:inline-block;font-family:var(--font-heading);font-size:var(--fs-small);font-weight:500;line-height:1.3;padding:.3rem .75rem;border-radius:999px;background:var(--color-bg-alt);color:var(--pink-ink)}
.page [data-comp="serviceBento"] .sb-more{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:1.25rem;color:var(--color-secondary);font-family:var(--font-heading);font-size:var(--fs-small);font-weight:500}
.page [data-comp="serviceBento"] .sb-more .ph,.page [data-comp="serviceBento"] .sb-more svg{transition:transform .25s ease}
.page [data-comp="serviceBento"] .sb-card:hover .sb-more .ph,.page [data-comp="serviceBento"] .sb-card:hover .sb-more svg{transform:translateX(4px)}
/* feature */
.page [data-comp="serviceBento"] .sb-card--feature{grid-column:span 2;background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.35) 0%,rgba(255,255,255,.12) 38%,transparent 62%),var(--color-primary);border-color:transparent;color:var(--color-text);overflow:hidden}
.page [data-comp="serviceBento"] .sb-card--feature h3{font-size:var(--fs-h2);max-width:20ch}
.page [data-comp="serviceBento"] .sb-card--feature p{color:var(--color-text);max-width:36rem}
.page [data-comp="serviceBento"] .sb-card--feature .sb-tag{background:rgba(255,255,255,.88)}
.page [data-comp="serviceBento"] .sb-card--feature .sb-more{color:var(--color-text)}
/* blue */
.page [data-comp="serviceBento"] .sb-card--blue{background:var(--color-secondary);border-color:transparent;color:var(--color-on-dark)}
.page [data-comp="serviceBento"] .sb-card--blue h3{color:var(--color-on-dark)}
.page [data-comp="serviceBento"] .sb-card--blue p{color:rgba(255,255,255,.82)}
.page [data-comp="serviceBento"] .sb-card--blue .sb-more{color:var(--color-on-dark)}
.page [data-comp="serviceBento"] .sb-card--blue .sb-tag{background:rgba(255,255,255,.14);color:var(--color-on-dark)}
@media (max-width:960px){
  .page [data-comp="serviceBento"] .sb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page [data-comp="serviceBento"] .sb-card--feature,.page [data-comp="serviceBento"] .sb-card--blue{grid-column:span 2}
}
@media (max-width:600px){
  .page [data-comp="serviceBento"] .sb-grid{grid-template-columns:1fr}
  .page [data-comp="serviceBento"] .sb-card,.page [data-comp="serviceBento"] .sb-card--feature,.page [data-comp="serviceBento"] .sb-card--blue{grid-column:span 1;min-height:auto}
}
@media (prefers-reduced-motion:reduce){
  .page [data-comp="serviceBento"] .sb-card,.page [data-comp="serviceBento"] .sb-more .ph,.page [data-comp="serviceBento"] .sb-more svg{transition:none}
  .page [data-comp="serviceBento"] .sb-card:hover{transform:none}
}

/* youthSplit (delegated) */
.page [data-comp="youthSplit"]{position:relative;background:var(--blue-tint);overflow:hidden}
.page [data-comp="youthSplit"] .ys-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.page [data-comp="youthSplit"] .ys-media{margin:0;position:relative;min-width:0}
.page [data-comp="youthSplit"] .ys-media::before{content:"";position:absolute;inset:0;transform:translate(24px,24px);border-radius:240px 240px 28px 28px;background:var(--color-primary);z-index:0}
.page [data-comp="youthSplit"] .ys-media img{position:relative;z-index:1;display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;border-radius:240px 240px 28px 28px;overflow:hidden}
.page [data-comp="youthSplit"] .ys-copy{min-width:0}
.page [data-comp="youthSplit"] .ys-copy h2{margin-bottom:1rem}
.page [data-comp="youthSplit"] .ys-topics{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-wrap:wrap;gap:.5rem}
.page [data-comp="youthSplit"] .ys-topics li{padding:.5rem 1rem;border-radius:999px;background:var(--color-surface);border:1px solid var(--hair);font-size:var(--fs-small);color:var(--color-text);transition:transform .2s ease,border-color .2s ease}
.page [data-comp="youthSplit"] .ys-topics li:hover{transform:translateY(-2px);border-color:var(--color-primary)}
.page [data-comp="youthSplit"] .ys-help{margin-top:2rem;padding:1.25rem;border-radius:20px;background:var(--color-surface);border:1px solid var(--color-border);display:grid;grid-template-columns:9rem 1fr;gap:1.25rem;align-items:center}
.page [data-comp="youthSplit"] .ys-help img{width:100%;height:auto;display:block}
.page [data-comp="youthSplit"] .ys-help p{font-size:var(--fs-small);color:var(--color-muted);margin:0}
@media (max-width:860px){
  .page [data-comp="youthSplit"] .ys-grid{grid-template-columns:1fr}
  .page [data-comp="youthSplit"] .ys-media{max-height:26rem;aspect-ratio:4/3;margin-right:24px}
  .page [data-comp="youthSplit"] .ys-media::before{border-radius:160px 160px 24px 24px;transform:translate(16px,16px)}
  .page [data-comp="youthSplit"] .ys-media img{aspect-ratio:4/3;max-height:26rem;border-radius:160px 160px 24px 24px}
  .page [data-comp="youthSplit"] .ys-help{grid-template-columns:1fr}
  .page [data-comp="youthSplit"] .ys-help img{max-width:12rem}
}

/* firstVisit (delegated) */
.page [data-comp="firstVisit"]{position:relative;overflow:hidden;background:var(--color-bg-alt)}
.page [data-comp="firstVisit"]::before{content:"";position:absolute;width:40rem;height:40rem;right:-10rem;top:-12rem;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--rose-glow),transparent 65%);pointer-events:none;z-index:0}
.page [data-comp="firstVisit"] .fv-head{position:relative;z-index:1;max-width:52rem}
.page [data-comp="firstVisit"] .fv-head h2{font-size:var(--fs-h2)}
.page [data-comp="firstVisit"] .fv-head p{color:var(--color-muted);margin-top:1rem;font-size:var(--fs-body)}
.page [data-comp="firstVisit"] .fv-steps{list-style:none;padding:0;margin:clamp(2.5rem,5vw,4rem) 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;z-index:1}
.page [data-comp="firstVisit"] .fv-steps li{border-left:1px solid var(--hair);padding:0 1.75rem}
.page [data-comp="firstVisit"] .fv-steps li:first-child{border-left:0;padding-left:0}
.page [data-comp="firstVisit"] .fv-steps li .ph{font-size:2rem;color:var(--pink-deep);display:block;margin-bottom:1rem}
.page [data-comp="firstVisit"] .fv-steps li h3{font-size:var(--fs-h3);margin-bottom:.5rem}
.page [data-comp="firstVisit"] .fv-steps li p{color:var(--color-muted);margin:0}
@media (max-width:900px){
  .page [data-comp="firstVisit"] .fv-steps{grid-template-columns:repeat(2,1fr);row-gap:2rem}
  .page [data-comp="firstVisit"] .fv-steps li{border-left:0}
  .page [data-comp="firstVisit"] .fv-steps li:nth-child(even){border-left:1px solid var(--hair)}
  .page [data-comp="firstVisit"] .fv-steps li:nth-child(odd){padding-left:0}
}
@media (max-width:560px){
  .page [data-comp="firstVisit"] .fv-steps{grid-template-columns:1fr}
  .page [data-comp="firstVisit"] .fv-steps li,.page [data-comp="firstVisit"] .fv-steps li:nth-child(even){border-left:0;border-top:1px solid var(--hair);padding:1.5rem 0 0}
  .page [data-comp="firstVisit"] .fv-steps li:first-child{border-top:0;padding-top:0}
}

/* galleryStrip (delegated) */
.page [data-comp="galleryStrip"]{background:var(--color-bg)}
.page [data-comp="galleryStrip"] .gs-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem}
.page [data-comp="galleryStrip"] .gs-head h2{max-width:22ch}
.page [data-comp="galleryStrip"] .gs-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;height:clamp(16rem,30vw,24rem)}
.page [data-comp="galleryStrip"] .gs-item{display:block;position:relative;overflow:hidden;border-radius:24px;height:100%;aspect-ratio:auto;background:var(--color-bg-alt);box-shadow:var(--shadow)}
.page [data-comp="galleryStrip"] .gs-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.page [data-comp="galleryStrip"] .gs-item:hover img,.page [data-comp="galleryStrip"] .gs-item:focus-visible img{transform:scale(1.04)}
.page [data-comp="galleryStrip"] .gs-item:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px}
@media (max-width:760px){
  .page [data-comp="galleryStrip"] .gs-grid{grid-template-columns:1fr 1fr;height:auto}
  .page [data-comp="galleryStrip"] .gs-item{height:auto;aspect-ratio:4/3}
  .page [data-comp="galleryStrip"] .gs-item--wide{grid-column:span 2}
}
@media (prefers-reduced-motion:reduce){
  .page [data-comp="galleryStrip"] .gs-item img{transition:none}
  .page [data-comp="galleryStrip"] .gs-item:hover img{transform:none}
}

/* faq (delegated) */
.page [data-comp="faq"]{background:var(--color-surface);border-top:1px solid var(--color-border)}
.page [data-comp="faq"] .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.page [data-comp="faq"] .faq-head{position:sticky;top:8rem}
.page [data-comp="faq"] .faq-head h2{margin-bottom:1rem}
.page [data-comp="faq"] .faq-head p{color:var(--color-muted)}
.page [data-comp="faq"] .faq-list details{border-bottom:1px solid var(--color-border)}
.page [data-comp="faq"] .faq-list details:first-child{border-top:1px solid var(--color-border)}
.page [data-comp="faq"] .faq-list summary{list-style:none;cursor:pointer;padding:1.4rem 3rem 1.4rem 0;position:relative;font-family:var(--font-heading);font-weight:600;font-size:var(--fs-body);line-height:1.35;color:var(--color-text);transition:color .2s ease}
.page [data-comp="faq"] .faq-list summary::-webkit-details-marker{display:none}
.page [data-comp="faq"] .faq-list summary:hover{color:var(--pink-ink)}
.page [data-comp="faq"] .faq-list summary:focus-visible{outline:2px solid var(--color-secondary);outline-offset:4px;border-radius:8px}
.page [data-comp="faq"] .faq-list summary::after{content:"+";position:absolute;right:0;top:50%;width:2rem;height:2rem;margin-top:-1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-alt);color:var(--pink-ink);font-family:var(--font-heading);font-weight:500;font-size:1.25rem;line-height:1;transition:transform .25s ease,background .2s ease}
.page [data-comp="faq"] .faq-list details[open] summary::after{transform:rotate(45deg);background:var(--color-primary);color:var(--color-on-primary)}
.page [data-comp="faq"] .faq-list details p{color:var(--color-muted);padding:0 3rem 1.5rem 0;margin:0}
@media (max-width:860px){
  .page [data-comp="faq"] .faq-grid{grid-template-columns:1fr}
  .page [data-comp="faq"] .faq-head{position:static}
  .page [data-comp="faq"] .faq-list details p{padding-right:0}
}

/* ctaClose (delegated) */
.page [data-comp="ctaClose"]{position:relative;overflow:hidden;background:radial-gradient(60rem 30rem at 0% 0%,var(--blue-glow),transparent 65%),radial-gradient(52rem 28rem at 100% 100%,var(--rose-glow),transparent 65%),var(--blue-deep);color:var(--color-on-dark)}
.page [data-comp="ctaClose"] .cc-in{position:relative;z-index:1;display:grid;grid-template-columns:1.3fr auto;gap:2rem;align-items:center}
.page [data-comp="ctaClose"] h2{color:var(--color-on-dark);font-size:var(--fs-h2);max-width:18ch}
.page [data-comp="ctaClose"] p{color:rgba(255,255,255,.78);margin-top:1rem;max-width:34rem}
.page [data-comp="ctaClose"] .cc-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.page [data-comp="ctaClose"] .cc-mail{color:var(--color-on-dark);font-family:var(--font-heading);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;border-bottom:2px solid var(--color-primary);padding-bottom:2px;transition:color .2s ease}
.page [data-comp="ctaClose"] .cc-mail:hover{color:var(--color-primary)}
.page [data-comp="ctaClose"] .cc-mail:focus-visible,.page [data-comp="ctaClose"] .k-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}
.page [data-comp="ctaClose"] .cc-mail .ph{font-size:1.15em}
@media (max-width:760px){
  .page [data-comp="ctaClose"] .cc-in{grid-template-columns:1fr;gap:1.75rem}
}

/* priceTable (delegated) */
.page [data-comp="priceTable"]{background:var(--color-bg);position:relative}
.page [data-comp="priceTable"] .pt-intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem}
.page [data-comp="priceTable"] .pt-note{border-radius:24px;padding:1.75rem;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);transition:transform .2s ease,box-shadow .2s ease}
.page [data-comp="priceTable"] .pt-note:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.page [data-comp="priceTable"] .pt-note p{margin-top:.5rem;color:var(--color-muted);font-size:var(--fs-small);line-height:1.6}
.page [data-comp="priceTable"] .pt-note strong{display:block;font-family:var(--font-heading);font-size:var(--fs-h2);font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--color-secondary);margin-bottom:.35rem}
.page [data-comp="priceTable"] .pt-note--free{background:var(--color-primary);color:var(--color-text);border-color:var(--color-primary)}
.page [data-comp="priceTable"] .pt-note--free p{color:var(--color-text)}
.page [data-comp="priceTable"] .pt-note--free strong{color:var(--color-text)}
.page [data-comp="priceTable"] .pt-table-wrap{margin-top:3rem;background:var(--color-surface);border-radius:28px;border:1px solid var(--color-border);overflow:hidden}
.page [data-comp="priceTable"] .pt-table{width:100%;border-collapse:collapse}
.page [data-comp="priceTable"] .pt-table caption{text-align:left;padding:1.5rem 1.75rem;font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;color:var(--color-text)}
.page [data-comp="priceTable"] .pt-table th{text-align:left;font-family:var(--font-heading);font-size:var(--fs-small);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);padding:.9rem 1.75rem;background:var(--color-bg-alt)}
.page [data-comp="priceTable"] .pt-table td{padding:1rem 1.75rem;border-top:1px solid var(--color-border);color:var(--color-text);line-height:1.5;vertical-align:top}
.page [data-comp="priceTable"] .pt-table tbody tr{transition:background .2s ease}
.page [data-comp="priceTable"] .pt-table tbody tr:hover{background:var(--color-primary-soft)}
.page [data-comp="priceTable"] .pt-table th:last-child,.page [data-comp="priceTable"] .pt-table td.pt-price{text-align:right}
.page [data-comp="priceTable"] .pt-table td.pt-price{white-space:nowrap;font-family:var(--font-heading);font-weight:600;color:var(--color-secondary);font-variant-numeric:tabular-nums}
.page [data-comp="priceTable"] .pt-rules{margin-top:3rem;max-width:48rem}
.page [data-comp="priceTable"] .pt-rules h2,.page [data-comp="priceTable"] .pt-rules h3{font-weight:600;margin-bottom:1rem}
.page [data-comp="priceTable"] .pt-rules h3{font-size:var(--fs-h3)}
.page [data-comp="priceTable"] .pt-rules ul{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.page [data-comp="priceTable"] .pt-rules li{position:relative;padding-left:1.5rem;color:var(--color-muted);line-height:1.65}
.page [data-comp="priceTable"] .pt-rules li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--color-primary)}
@media (max-width:700px){
  .page [data-comp="priceTable"] .pt-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .page [data-comp="priceTable"] .pt-table{min-width:30rem}
  .page [data-comp="priceTable"] .pt-table caption,.page [data-comp="priceTable"] .pt-table th,.page [data-comp="priceTable"] .pt-table td{padding-inline:1.25rem}
}

/* serviceDetail (delegated) */
.page [data-comp="serviceDetail"]{background:var(--color-bg)}
.page [data-comp="serviceDetail"] .sd-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.page [data-comp="serviceDetail"] .sd-main h2{font-size:var(--fs-h2);margin-bottom:1rem}
.page [data-comp="serviceDetail"] .sd-main p{color:var(--color-text);max-width:40rem;margin-bottom:1rem;font-size:var(--fs-body)}
.page [data-comp="serviceDetail"] .sd-topics{list-style:none;padding:0;margin:1.5rem 0 2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.page [data-comp="serviceDetail"] .sd-topics li{padding:1rem 1.1rem;border-radius:16px;background:var(--color-surface);border:1px solid var(--color-border);display:flex;gap:.75rem;align-items:flex-start;line-height:1.5;transition:transform .2s ease,box-shadow .2s ease}
.page [data-comp="serviceDetail"] .sd-topics li:hover{transform:translateY(-2px);box-shadow:0 12px 24px -18px var(--pink-deep)}
.page [data-comp="serviceDetail"] .sd-topics li::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--color-primary);margin-top:.45em}
.page [data-comp="serviceDetail"] .sd-aside{position:sticky;top:8rem;border-radius:28px;padding:1.75rem;background:var(--color-secondary);color:var(--color-on-dark);box-shadow:0 24px 48px -28px var(--color-secondary)}
.page [data-comp="serviceDetail"] .sd-aside h3{color:var(--color-on-dark);font-size:var(--fs-h3);margin-bottom:1rem}
.page [data-comp="serviceDetail"] .sd-aside p,.page [data-comp="serviceDetail"] .sd-aside li{color:rgba(255,255,255,.85);line-height:1.55}
.page [data-comp="serviceDetail"] .sd-aside a{color:var(--color-on-dark);font-weight:600}
.page [data-comp="serviceDetail"] .sd-aside ul{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.page [data-comp="serviceDetail"] .sd-aside li{display:flex;gap:.6rem;align-items:flex-start}
.page [data-comp="serviceDetail"] .sd-aside .ph{color:var(--color-primary);font-size:1.25rem}
.page [data-comp="serviceDetail"] .sd-aside .k-btn{margin-top:1.5rem;width:100%;justify-content:center}
.page [data-comp="serviceDetail"] .sd-aside .k-btn--pink{background:var(--color-primary);color:var(--color-on-primary)}
.page [data-comp="serviceDetail"] .sd-figure{margin:2rem 0 0;border-radius:24px;overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow-lg)}
.page [data-comp="serviceDetail"] .sd-figure img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:900px){
  .page [data-comp="serviceDetail"] .sd-grid{grid-template-columns:1fr}
  .page [data-comp="serviceDetail"] .sd-aside{position:static}
  .page [data-comp="serviceDetail"] .sd-topics{grid-template-columns:1fr}
}

/* serviceIndex (delegated) */
.page [data-comp="serviceIndex"]{background:var(--color-surface)}
.page [data-comp="serviceIndex"] .si-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--color-border)}
.page [data-comp="serviceIndex"] .si-list li{margin:0;padding:0}
.page [data-comp="serviceIndex"] .si-row{display:grid;grid-template-columns:4rem 1.1fr 1.4fr 3rem;gap:1.5rem;align-items:center;padding:1.6rem 0;border-bottom:1px solid var(--color-border);color:var(--color-text);text-decoration:none;transition:background .2s ease,padding .2s ease}
.page [data-comp="serviceIndex"] .si-row:hover,.page [data-comp="serviceIndex"] .si-row:focus-visible{background:var(--color-bg-alt);padding-inline:1rem;border-radius:16px}
.page [data-comp="serviceIndex"] .si-row:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px}
.page [data-comp="serviceIndex"] .si-num{font-family:var(--font-heading);color:var(--pink-deep);font-size:var(--fs-small);letter-spacing:.04em}
.page [data-comp="serviceIndex"] .si-row h3{font-size:var(--fs-h3);margin:0}
.page [data-comp="serviceIndex"] .si-row p{color:var(--color-muted);margin:0}
.page [data-comp="serviceIndex"] .si-tag{display:inline-block;background:var(--color-bg-alt);color:var(--pink-ink);font-family:var(--font-body);font-size:var(--fs-small);font-weight:500;letter-spacing:0;line-height:1.4;padding:.2rem .6rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}
.page [data-comp="serviceIndex"] .si-row:hover .si-tag{background:var(--color-surface)}
.page [data-comp="serviceIndex"] .si-arrow{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid var(--hair);border-radius:50%;color:var(--color-secondary);font-size:1.25rem;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.page [data-comp="serviceIndex"] .si-row:hover .si-arrow,.page [data-comp="serviceIndex"] .si-row:focus-visible .si-arrow{background:var(--color-secondary);color:var(--color-on-dark);border-color:var(--color-secondary);transform:translateX(2px)}
@media (max-width:760px){
  .page [data-comp="serviceIndex"] .si-row{grid-template-columns:2.5rem 1fr 2.5rem;gap:.5rem 1rem;padding:1.3rem 0}
  .page [data-comp="serviceIndex"] .si-row p{grid-column:2;grid-row:2}
  .page [data-comp="serviceIndex"] .si-arrow{width:2.5rem;height:2.5rem;grid-column:3;grid-row:1 / span 2;align-self:center}
}
@media (prefers-reduced-motion:reduce){
  .page [data-comp="serviceIndex"] .si-row,.page [data-comp="serviceIndex"] .si-arrow{transition:none}
  .page [data-comp="serviceIndex"] .si-row:hover .si-arrow{transform:none}
}

/* contactBlock (delegated) */
.page [data-comp="contactBlock"]{background:var(--color-bg);position:relative}
.page [data-comp="contactBlock"] .cb-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.page [data-comp="contactBlock"] .cb-info{background:var(--color-secondary);color:var(--color-on-dark);border-radius:28px;padding:2rem;box-shadow:var(--shadow-lg)}
.page [data-comp="contactBlock"] .cb-info h2{color:var(--color-on-dark);font-size:var(--fs-h3);margin-bottom:.75rem}
.page [data-comp="contactBlock"] .cb-line{display:flex;gap:.9rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.16)}
.page [data-comp="contactBlock"] .cb-line .ph{font-size:clamp(1.4rem,1.3rem + .2vw,1.5rem);color:var(--color-primary);flex-shrink:0;margin-top:.1rem}
.page [data-comp="contactBlock"] .cb-line a{color:var(--color-on-dark);font-weight:600;text-decoration:none;transition:color .2s}
.page [data-comp="contactBlock"] .cb-line a:hover{color:var(--color-primary)}
.page [data-comp="contactBlock"] .cb-line small{display:block;color:rgba(255,255,255,.7);font-size:var(--fs-small)}
.page [data-comp="contactBlock"] .cb-company{font-size:var(--fs-small);color:rgba(255,255,255,.72);margin-top:1.25rem;line-height:1.7}
.page [data-comp="contactBlock"] form.cb-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:28px;padding:clamp(1.5rem,3vw,2.5rem)}
.page [data-comp="contactBlock"] form.cb-form h2{font-size:var(--fs-h3);margin-bottom:.5rem}
.page [data-comp="contactBlock"] .cb-field{display:grid;gap:.4rem;margin-bottom:1rem}
.page [data-comp="contactBlock"] .cb-field label{font-size:var(--fs-small);font-weight:600;color:var(--color-text)}
.page [data-comp="contactBlock"] .cb-field input,.page [data-comp="contactBlock"] .cb-field textarea{width:100%;padding:.9rem 1rem;border-radius:14px;border:1.5px solid var(--color-border);background:var(--color-bg);font:inherit;color:var(--color-text);transition:border-color .2s,outline-color .2s}
.page [data-comp="contactBlock"] .cb-field input:focus,.page [data-comp="contactBlock"] .cb-field textarea:focus{border-color:var(--color-secondary);outline:3px solid var(--blue-glow)}
.page [data-comp="contactBlock"] .cb-field textarea{min-height:9rem;resize:vertical}
.page [data-comp="contactBlock"] .cb-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.page [data-comp="contactBlock"] button.k-btn{width:auto;cursor:pointer}
.page [data-comp="contactBlock"] .cb-map{margin-top:3rem;border-radius:28px;overflow:hidden;border:1px solid var(--color-border);min-height:22rem;background:var(--color-bg-alt)}
.page [data-comp="contactBlock"] .cb-map iframe{width:100%;height:22rem;border:0;display:block}
.page [data-comp="contactBlock"] .embed-wrap{background:var(--color-bg-alt)}
@media (max-width:860px){
  .page [data-comp="contactBlock"] .cb-grid{grid-template-columns:1fr}
  .page [data-comp="contactBlock"] .cb-row{grid-template-columns:1fr}
}

/* galleryGrid (delegated) */
.page [data-comp="galleryGrid"]{background:var(--color-bg)}
.page [data-comp="galleryGrid"] .gg-grid{column-count:3;column-gap:1rem}
.page [data-comp="galleryGrid"] .gg-item{margin:0 0 1rem;break-inside:avoid;border-radius:22px;overflow:hidden;background:var(--color-surface)}
.page [data-comp="galleryGrid"] .gg-item img{width:100%;height:auto;display:block;cursor:zoom-in;transition:transform .4s ease}
.page [data-comp="galleryGrid"] .gg-item:hover img{transform:scale(1.03)}
.page [data-comp="galleryGrid"] .gg-item figcaption{font-size:var(--fs-small);color:var(--color-muted);padding:.7rem 1rem}
.page [data-comp="galleryGrid"] .gg-small{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:2.5rem}
.page [data-comp="galleryGrid"] .gg-small img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;display:block}
@media (max-width:860px){
  .page [data-comp="galleryGrid"] .gg-grid{column-count:2}
  .page [data-comp="galleryGrid"] .gg-small{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:520px){
  .page [data-comp="galleryGrid"] .gg-grid{column-count:1}
}
@media (prefers-reduced-motion:reduce){
  .page [data-comp="galleryGrid"] .gg-item img{transition:none}
  .page [data-comp="galleryGrid"] .gg-item:hover img{transform:none}
}

/* home hero */
.page [data-comp="homeHero"]{position:relative;overflow:hidden;min-height:min(54rem,94vh);display:flex;flex-direction:column;justify-content:center;padding-block:clamp(9rem,13vw,11rem) clamp(4rem,7vw,6rem);background:var(--color-bg-alt)}
.page [data-comp="homeHero"] .homeHero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%;z-index:0}
.page [data-comp="homeHero"]::before{content:"";position:absolute;inset:0;background:var(--scrim-left);z-index:1;pointer-events:none}
.page [data-comp="homeHero"] .wrap{position:relative;z-index:2;width:100%}
.page [data-comp="homeHero"] .hh-in{max-width:37rem}
.page [data-comp="homeHero"] .hh-title{font-size:var(--fs-display);line-height:1.04;letter-spacing:-.035em;color:var(--color-text);font-weight:600}
.page [data-comp="homeHero"] .lead{margin-top:1.5rem;color:var(--color-text)}
.page [data-comp="homeHero"] .k-btn--ghost{background:rgba(255,255,255,.7);backdrop-filter:blur(8px)}
.page [data-comp="homeHero"] .hh-card{position:absolute;right:var(--space-container-x);bottom:-1rem;display:flex;gap:0;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.9);border-radius:24px;box-shadow:0 24px 48px -28px var(--pink-deep);overflow:hidden}
.page [data-comp="homeHero"] .hh-card-item{padding:1.25rem 1.5rem;max-width:15rem;display:grid;gap:.3rem}
.page [data-comp="homeHero"] .hh-card-item + .hh-card-item{border-left:1px solid var(--color-border)}
.page [data-comp="homeHero"] .hh-card-item strong{font-family:var(--font-heading);font-size:var(--fs-h3);color:var(--pink-ink);font-weight:600}
.page [data-comp="homeHero"] .hh-card-item span{font-size:var(--fs-small);color:var(--color-muted);line-height:1.45}
.page [data-comp="homeHero"] .hh-title .st-w{display:inline-block;opacity:0;translate:0 .5em;animation:hhRise .7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*70ms)}
@keyframes hhRise{to{opacity:1;translate:0 0}}
@media (prefers-reduced-motion:reduce){.page [data-comp="homeHero"] .hh-title .st-w{opacity:1;translate:none;animation:none}}
@media (max-width:860px){
  .page [data-comp="homeHero"]{min-height:auto;padding-top:8.5rem}
  .page [data-comp="homeHero"]::before{background:linear-gradient(180deg,rgba(251,249,250,.92) 0%,rgba(251,249,250,.85) 60%,rgba(251,249,250,.7) 100%)}
  .page [data-comp="homeHero"] .hh-card{position:static;margin-top:2.5rem;flex-direction:column}
  .page [data-comp="homeHero"] .hh-card-item{max-width:none}
  .page [data-comp="homeHero"] .hh-card-item + .hh-card-item{border-left:0;border-top:1px solid var(--color-border)}
}
