.skip-link { position:fixed; top:8px; left:16px; transform:translateY(-160%); z-index:200; padding:12px 20px; background:var(--background); color:var(--text); border:2px solid var(--highlight); }
.skip-link:focus { transform:none; }
.policy-page { padding:120px 0 64px; }
.policy-page .wrap { max-width:900px; }
.policy-page h1 { font-size:clamp(32px,5vw,54px); margin-bottom:24px; }
.policy-page h2 { font-size:25px; margin:32px 0 12px; line-height:1.2; }
.policy-page p, .policy-page li { max-width:72ch; }
.policy-page a, .consent-group a, .chat-notice a, .cookie-banner a { text-decoration:underline; text-underline-offset:3px; }
.policy-links { display:flex; flex-wrap:wrap; gap:16px 24px; padding-block:24px; border-top:1px solid var(--line2); font-size:14px; }
.policy-links a, .policy-links button { min-height:44px; display:inline-flex; align-items:center; color:var(--text); }
.policy-links button { font:inherit; padding:0; background:none; border:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.pricing-disclosure { font-size:14px; color:var(--muted); max-width:90ch; }
.cookie-banner { position:fixed; inset:auto 16px 16px; z-index:100; display:flex; align-items:center; gap:24px; justify-content:space-between; background:var(--background); color:var(--text); padding:24px; border:1px solid var(--line2); box-shadow:0 4px 24px #0003; max-height:80svh; overflow:auto; }
.cookie-banner[hidden] { display:none; }
body:has(#cookieBanner:not([hidden])) :is(#yvChatFab,#yvChat) { display:none; }
.cookie-banner h2 { font-size:20px; line-height:1.3; }
.cookie-banner p { font-size:15px; margin-bottom:0; max-width:64ch; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.cookie-actions .btn { min-height:44px; font-size:14px; padding:12px 16px; }
.consent-group { margin:24px 0; padding:16px; border:1px solid var(--line2); text-align:left; min-width:0; }
.consent-group legend { padding:0 6px; font-size:15px; font-weight:600; }
.consent-check { display:flex; align-items:flex-start; gap:12px; margin:12px 0; font-size:14px; color:var(--text); line-height:1.5; }
.consent-check input { width:20px; height:20px; flex:0 0 20px; margin:2px 0; accent-color:var(--primary); }
.consent-group p, .chat-notice { font-size:13px; line-height:1.5; }
.chat-notice { padding:0 16px; color:var(--text); }
.chat-consent { margin:8px 16px; padding:8px; }
.chat-consent .consent-check { margin:8px 0; font-size:12px; }
.chat-consent legend { font-size:12px; }
.gallery figure[role="button"] { cursor:pointer; }
:root[data-theme="light"] { --highlight:#275B60; }
.swatch.active { border-color:var(--text); outline:2px solid var(--background); }
.yc-m.user { background:var(--primary); color:#fff; }
.lb { transition:opacity .18s; background:rgba(0,0,0,.8); }
.lb-btn:hover { background:var(--support); color:var(--text); }
.lb-btn { transition:background-color .18s,border-color .18s; }
.cv-stat a { text-decoration:underline; text-underline-offset:3px; }
.quote-disclosure { position:relative; z-index:1; background:var(--background); padding-block:24px; border-top:1px solid var(--line2); color:var(--muted); font-size:14px; }
.quote-disclosure > .wrap { display:grid; gap:16px; }
.quote-disclosure p { max-width:90ch; margin:0; }
.hero-cta [hidden] { display:none; }
:is(.gal2,.mc-configs,.cn-gal) figcaption { background:#141F23; color:#F5F4EF; padding:8px 12px; text-shadow:none; opacity:1; max-width:calc(100% - 28px); }
:is(.thesis-media,.start-media) figcaption { background:var(--background); color:var(--text); }
.spec-mini .m span { background:#141F23; color:#F5F4EF; }
.yc-head small::before { display:none; }
.st-scrolldown, .cov-route, .cov-pulse { animation:none; }
.cov-pulse { display:none; }
.lead-error { color:#A12B2B; }
:root[data-theme="dark"] .lead-error { color:#FFB8B8; }
.hero-grad { background:linear-gradient(90deg,var(--background) 0%,var(--background) 56%,rgba(var(--surface-rgb),.8) 70%,transparent 94%) !important; }
:is(.st-hero-scrim,.of-hero-scrim,.kv-hero-scrim,.mc-hero-scrim,.cn-hero-scrim,.acc-hero-scrim) { background:linear-gradient(90deg,var(--background) 0%,var(--background) 65%,rgba(var(--surface-rgb),.5) 85%,transparent) !important; }
:is(.of-hero-in,.kv-hero-in,.mc-hero-in,.cn-hero-in,.acc-hero-in) { margin-left:max(0px,calc((100vw - var(--maxw))/2)); margin-right:0; }
.st-hero-scrim { background:rgba(var(--surface-rgb),.96) !important; }
@media(max-width:1100px) { :is(.hero-grad,.st-hero-scrim,.of-hero-scrim,.kv-hero-scrim,.mc-hero-scrim,.cn-hero-scrim,.acc-hero-scrim) { background:rgba(var(--surface-rgb),.96) !important; } }
:is(.of-uc-scrim,.bw-scrim,.mc-scenes .cap,.kv-bandwrap .ov,.st-gal-scrim) { background:var(--background) !important; color:var(--text); }
:is(.of-uc-scrim,.bw-scrim,.mc-scenes .cap,.kv-bandwrap .ov,.st-gal-scrim) :is(h3,p,b,span) { color:var(--text); text-shadow:none; }
:is(.quicknav,.est,.mc-roi-out,.kv-model.feat,.of-uc-tab.active,.bw-step.active) { background:var(--support); }
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }
@media(max-width:900px) { .cookie-banner { flex-direction:column; align-items:stretch; gap:16px; } }
@media(max-width:440px) { .cookie-banner { inset:auto 8px 8px; padding:16px; } .cookie-actions { flex-direction:column; } .cookie-actions .btn { justify-content:center; white-space:normal; } }
