/* Shared component styles — all Circus pages */
/* Breakpoints: 480px · 768px · 1024px */

/* ── ACCESSIBILITY ── */
.sr-only{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;top:-40px;left:0;z-index:9999;font-weight:600;text-decoration:none;background:var(--coral);color:var(--paper);padding:12px 24px}
.skip-link:focus{position:fixed;top:0;left:0;width:100%;height:auto;overflow:visible;clip:auto;white-space:normal;background:var(--coral);color:var(--paper);padding:12px 24px;z-index:9999;display:block;font-weight:600;text-align:center;text-decoration:none}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
*:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:4px}
body{background:var(--paper);color:var(--ink);font-family:var(--fb);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}

/* ── LAYOUT PRIMITIVES ── */
.section{padding:clamp(72px,10vw,120px) 0}
.container{max-width:1100px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* ── BURST FRAME (animated conic border + halo, shared by nav + home hero) ── */
@property --circus-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes circus-burst-spin{to{--circus-angle:360deg}}
@keyframes circus-burst-pulse{0%,100%{opacity:.45}50%{opacity:.75}}

/* ── NAV — default is inner-page pill: fixed, dark translucent, 12px L/R inset, 18px radius ── */
nav#nav{position:fixed;top:12px;left:12px;right:12px;z-index:200;height:64px;border-radius:18px;background:rgba(12,9,7,.78);backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border:1px solid rgba(251,248,244,.08);color:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.5)}
@media(max-width:768px){nav#nav{top:8px;left:8px;right:8px;height:60px;border-radius:14px}}

/* ── BODY clearance for fixed pill nav ── */
body{padding-top:88px}
@media(max-width:768px){body{padding-top:80px}}

/* ── HOME OVERRIDES: nav becomes transparent overlay inside the hero frame, scrolls away with hero ── */
.tpl-home{padding-top:0}
@media(max-width:768px){.tpl-home{padding-top:0}}
.tpl-home nav#nav{position:absolute;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;box-shadow:none}
.tpl-home nav#nav.scrolled{position:fixed;background:rgba(12,9,7,.78);backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border:1px solid rgba(251,248,244,.08);box-shadow:0 10px 40px -10px rgba(0,0,0,.5)}
/* On home, nav floats inside .home-frame at top:48px; the frame extends up under it */
/* Force dark nav regardless of theme */
nav .nav-logo,nav .nav-wordmark{color:#fff}
nav .nav-links a,nav .nav-dropdown-btn{color:rgba(255,255,255,.9)}
nav .nav-links a:hover,nav .nav-dropdown-btn:hover,nav .nav-dropdown-btn[aria-expanded="true"]{color:#fff}
nav .nav-links a[aria-current="page"]{color:#fff}
nav .nav-burger{color:#fff}
.nav-inner{width:min(1320px,calc(100% - 48px));margin:0 auto;height:100%;padding:0 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.nav-logo{display:flex;align-items:center;gap:14px;justify-self:start;color:var(--ink)}
.nav-mark-wrap{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.nav-mark-wrap svg{width:100%;height:100%;display:block}
.nav-wordmark{font-family:var(--fd);font-size:24px;font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.nav-links{display:flex;align-items:center;list-style:none;justify-self:center;gap:8px}
.nav-links a{font-family:var(--fb);color:var(--text-body);font-size:15px;font-weight:500;letter-spacing:.01em;transition:color var(--dur-sm);padding:10px 16px}
.nav-links a:hover{color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:4px;text-decoration-thickness:2px}
.nav-right{display:flex;align-items:center;gap:12px;flex-shrink:0;justify-self:end}
.nav-store-badges{display:flex;gap:8px;align-items:center}
.nav-store-badge{display:inline-flex;align-items:center;line-height:0;opacity:.9;transition:opacity var(--dur-sm)}
.nav-store-badge:hover{opacity:1}
.nav-store-badge img{height:36px;width:auto;display:block}
.nav-burger{display:none;background:none;border:none;cursor:pointer;color:var(--ink);padding:8px;z-index:201;line-height:0}
.nav-burger .burger-icon-close{display:none}
.nav-burger[aria-expanded="true"] .burger-icon-menu{display:none}
.nav-burger[aria-expanded="true"] .burger-icon-close{display:block}
.nav-dropdown{position:relative;list-style:none}
.nav-dropdown-btn{background:none;border:none;cursor:pointer;color:var(--text-body);font-size:15px;font-weight:500;letter-spacing:.01em;transition:color var(--dur-sm);padding:10px 16px;display:flex;align-items:center;gap:6px;font-family:var(--fb)}
.nav-dropdown-btn:hover,.nav-dropdown-btn[aria-expanded="true"]{color:var(--ink)}
.nav-dropdown-btn svg{transition:transform var(--dur-sm);flex-shrink:0}
.nav-dropdown-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(-6px);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);list-style:none;padding:6px 8px 8px;min-width:300px;max-width:calc(100vw - 32px);z-index:300;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;will-change:opacity,transform}
.nav-dropdown-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);transition:opacity .18s ease,transform .18s ease,visibility 0s linear 0s}
@media(hover:hover){.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);transition:opacity .18s ease,transform .18s ease,visibility 0s linear 0s}}
.nav-dropdown-menu li a{display:flex;align-items:flex-start;gap:12px;padding:10px;border-radius:var(--radius-sm);color:var(--text-body);transition:background var(--dur-sm);white-space:normal}
.nav-dropdown-menu li a:hover{background:var(--n-200);color:inherit}
.nav-dd-icon{width:36px;height:36px;flex-shrink:0;border-radius:8px;background:var(--coral-tint);border:1px solid var(--coral-10);display:flex;align-items:center;justify-content:center;color:var(--coral);transition:background var(--dur-sm),color var(--dur-sm),border-color var(--dur-sm)}
.nav-dd-icon svg{width:18px;height:18px}
.nav-dropdown-menu li a:hover .nav-dd-icon{background:var(--coral);border-color:var(--coral);color:var(--paper)}
.nav-dd-label{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.nav-dd-desc{font-size:12px;color:var(--text-body);line-height:1.45;margin-top:2px}

/* Trefoil mark — static (animation kept available for page loader via ldr-spin) */
@keyframes ldr-spin{0%{transform:rotate(10deg)}100%{transform:rotate(370deg)}}
.nav-mark-wrap g{transform-origin:100px 100px}

/* ── MOBILE NAV DRAWER ── */
.nav-drawer{display:none;position:fixed;inset:0;background:var(--paper);z-index:199;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}
.nav-drawer.open{display:flex}
.drawer-main-links{display:flex;flex-direction:column;padding:84px 28px 0}
.drawer-main-links a{color:var(--ink);font-size:clamp(26px,7vw,34px);font-weight:800;font-family:var(--fd);letter-spacing:-.04em;line-height:1;padding:14px 0;border-bottom:1px solid var(--border);text-decoration:none;display:block;transition:color var(--dur-sm)}
.drawer-main-links a:hover,.drawer-main-links a:focus-visible{color:var(--coral)}
.drawer-company-section{padding:0 28px}
.drawer-section-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:block;padding:24px 0 10px}
.drawer-company-links a{color:var(--text-body);font-size:17px;font-weight:600;font-family:var(--fb);letter-spacing:-.01em;line-height:1;padding:11px 0;border-bottom:1px solid var(--border);text-decoration:none;display:block;transition:color var(--dur-sm)}
.drawer-company-links a:hover,.drawer-company-links a:focus-visible{color:var(--coral)}
.drawer-download-cta{padding:24px 28px 52px;margin-top:auto}
.drawer-download-btn{display:block;text-align:center;background:var(--ink);color:var(--paper);font-family:var(--fb);font-size:16px;font-weight:600;padding:16px 24px;border-radius:999px;text-decoration:none;letter-spacing:.01em;transition:background var(--dur-sm),color var(--dur-sm)}
.drawer-download-btn:hover,.drawer-download-btn:focus-visible{background:var(--coral)}

/* ── PAGE HERO ── */
.page-hero{padding:clamp(120px,16vh,180px) clamp(20px,4vw,40px) clamp(48px,6vh,80px);max-width:860px;margin:0 auto}
.tpl-sub .page-hero{padding-top:clamp(72px,8vh,96px);padding-bottom:clamp(32px,4vh,48px)}
.page-eyebrow{font-family:var(--fb);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral);font-weight:600;margin-bottom:16px;display:block}
.page-hl{font-family:var(--fd);font-size:clamp(36px,5vw,64px);font-weight:800;letter-spacing:-.04em;line-height:1.0;margin-bottom:20px;color:var(--ink)}
.page-lead{font-size:clamp(16px,1.8vw,19px);color:var(--text-body);line-height:1.7;max-width:640px}

/* ── LEGAL HERO ── */
.legal-hero-band{background:var(--n-100);border-bottom:1px solid var(--border)}
.legal-hero{padding:clamp(72px,8vh,104px) clamp(20px,4vw,48px) 48px;max-width:1100px;margin:0 auto}
.legal-eyebrow{font-family:var(--fb);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral);font-weight:600;margin-bottom:12px;display:block}
.legal-lead{font-size:clamp(16px,1.8vw,19px);color:var(--text-body);line-height:1.7;max-width:680px;margin-bottom:0}
.effective{font-size:13px;color:var(--text-muted);margin-top:12px}

/* ── HUB PAGES (support, contact, account — hub-* with sup-* aliases) ── */
.hub-hero-band,.sup-hero-band,.contact-hero-band,.account-hero-band,.download-hero-band,.legal-hero-band,.parents-hero-band,.mfst-hero-band,.careers-hero-band,.report-bug-hero-band{background:var(--n-100);border-bottom:1px solid var(--border)}
.hub-hero-band .page-hero,.sup-hero-band .page-hero,.contact-hero-band .page-hero,.account-hero-band .page-hero,.download-hero-band .page-hero,.parents-hero-band .page-hero,.mfst-hero-band .page-hero,.careers-hero-band .page-hero,.report-bug-hero-band .page-hero{max-width:1180px;padding-bottom:clamp(40px,5vh,56px)}
.hub-hero-band .legal-hero,.legal-hero-band .legal-hero{max-width:1180px;margin:0 auto;padding:clamp(72px,8vh,104px) clamp(20px,4vw,48px) clamp(40px,5vh,56px)}
.hub-channels,.sup-channels{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 64px}
.hub-channel,.sup-channel{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 32px;display:flex;flex-direction:column;gap:14px;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:transform .2s,box-shadow .2s,border-color .2s}
.hub-channel:hover,.sup-channel:hover{border-color:var(--text-body);transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,.2)}
.hub-channel-icon,.sup-channel-icon{width:32px;height:32px;color:var(--coral)}
.hub-channel-tag,.sup-channel-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);font-weight:600}
.hub-channel-title,.sup-channel-title{font-family:var(--fd);font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--ink)}
.hub-channel-desc,.sup-channel-desc{font-size:16px;color:var(--text-body);line-height:1.6;flex:1}
.hub-channel-action,.sup-channel-action{margin-top:auto;padding-top:8px}
.hub-channel-action a,.sup-channel-action a{font-size:14px;font-weight:600;color:var(--ink);transition:color .2s;text-decoration:none}
.hub-channel:hover .hub-channel-action a,.sup-channel:hover .sup-channel-action a{color:var(--coral)}
.hub-section-hd,.sup-section-hd{margin:0 0 8px}
.hub-section-hd h2,.sup-section-hd h2{font-family:var(--fd);font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;letter-spacing:-.04em;color:var(--ink)}
.hub-section-sub,.sup-section-sub{font-size:15px;color:var(--text-body);line-height:1.6;margin-bottom:28px;max-width:560px}
.hub-actions,.sup-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;margin:0 0 64px}
.hub-action,.sup-action{background:var(--paper);padding:28px 32px;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);transition:background .15s}
.hub-action:hover,.sup-action:hover{background:var(--n-100)}
.hub-action-tag,.sup-action-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);font-weight:600}
.hub-action-title,.sup-action-title{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.02em}
.hub-action-desc,.sup-action-desc{font-size:13.5px;color:var(--text-body);line-height:1.55}
.hub-faq,.sup-faq{margin:0 0 64px}
.hub-faq .tab-bar,.sup-faq .tab-bar{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:48px}
.hub-faq .tab,.sup-faq .tab{background:none;border:none;color:var(--text-muted);font-family:var(--fb);font-size:14px;font-weight:500;padding:12px 20px;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;margin-bottom:-1px;letter-spacing:.02em}
.hub-faq .tab:hover,.sup-faq .tab:hover{color:var(--text-body)}
.hub-faq .tab.active,.sup-faq .tab.active{color:var(--ink);border-bottom-color:var(--coral)}
.hub-faq .faq-panel,.sup-faq .faq-panel{display:none}
.hub-faq .faq-panel.active,.sup-faq .faq-panel.active{display:block}
.hub-faq .faq-item,.sup-faq .faq-item{border-top:1px solid var(--border)}
.hub-faq .faq-item:last-child,.sup-faq .faq-item:last-child{border-bottom:1px solid var(--border)}
.hub-faq .faq-q,.sup-faq .faq-q{font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--ink);padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;background:none;border:none;width:100%;text-align:left}
.hub-faq .faq-q svg,.sup-faq .faq-q svg{flex-shrink:0;transition:transform var(--dur-sm);color:var(--coral)}
.hub-faq .faq-item.open .faq-q svg,.sup-faq .faq-item.open .faq-q svg{transform:rotate(180deg)}
.hub-faq .faq-a,.sup-faq .faq-a{display:none;padding-bottom:20px}
.hub-faq .faq-item.open .faq-a,.sup-faq .faq-item.open .faq-a{display:block}
.hub-faq .faq-a p,.sup-faq .faq-a p{font-size:15px;color:var(--text-body);line-height:1.7}
.hub-faq .faq-q.open,.sup-faq .faq-q.open{color:var(--coral)}
.hub-faq .faq-icon,.sup-faq .faq-icon{flex-shrink:0;width:20px;height:20px;position:relative;transition:transform .3s}
.hub-faq .faq-icon::before,.hub-faq .faq-icon::after,.sup-faq .faq-icon::before,.sup-faq .faq-icon::after{content:'';position:absolute;background:currentColor;border-radius:1px}
.hub-faq .faq-icon::before,.sup-faq .faq-icon::before{width:12px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)}
.hub-faq .faq-icon::after,.sup-faq .faq-icon::after{width:1.5px;height:12px;top:50%;left:50%;transform:translate(-50%,-50%);transition:opacity .25s,transform .25s}
.hub-faq .faq-q.open .faq-icon::after,.sup-faq .faq-q.open .faq-icon::after{opacity:0;transform:translate(-50%,-50%) rotate(90deg)}
.hub-faq .faq-a a,.sup-faq .faq-a a{color:var(--coral);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1024px){.hub-channels,.sup-channels{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.hub-actions,.sup-actions{grid-template-columns:1fr}.hub-faq .tab-bar,.sup-faq .tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0}.hub-faq .tab,.sup-faq .tab{white-space:nowrap;padding:12px 16px}}
@media(max-width:480px){.hub-channels,.sup-channels{grid-template-columns:1fr}}

/* ── SHARED CONTENT ── */
.divider{height:1px;background:var(--border);margin:0 clamp(20px,4vw,48px)}
.content-wrap{max-width:1180px;margin:0 auto;padding:clamp(48px,6vh,80px) clamp(20px,4vw,40px) clamp(96px,12vh,160px)}
.section-wrap{max-width:960px}
.section-title{font-family:var(--fd);font-size:var(--fs-title);font-weight:700;letter-spacing:var(--ls-display);margin-bottom:20px;color:var(--ink)}
.body-text{font-size:var(--fs-body);color:var(--text-body);line-height:var(--lh-body);max-width:680px;margin-bottom:24px}

/* ── LEGAL BODY ── */
.legal-layout{display:grid;grid-template-columns:1fr 220px;gap:48px;max-width:1100px;margin:0 auto;align-items:start;padding:48px clamp(20px,4vw,48px) 100px}
.legal-layout>.content-wrap{padding-top:0;padding-bottom:0;max-width:none}
.legal-body{min-width:0}
.legal-toc{position:sticky;top:88px;border:1px solid var(--border);border-radius:12px;padding:20px 20px 16px;background:var(--surface)}
/* Image placeholder */
.img-placeholder{border:2px dashed var(--border);border-radius:16px;min-height:280px;display:flex;align-items:center;justify-content:center;margin:40px 0}
.img-placeholder-inner{font-size:13px;color:var(--text-muted);text-align:center;padding:20px}
.legal-toc-label{font-family:var(--fd);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:12px}
.legal-toc-list{list-style:none;padding:0;margin:0}
.legal-toc-list li{margin-bottom:8px}
.legal-toc-list a{font-size:14px;color:var(--text-body);text-decoration:none;line-height:1.4}
.legal-toc-list a:hover{color:var(--coral)}
.legal-body h2,.section-title{scroll-margin-top:96px}
[id]{scroll-margin-top:96px}
.legal-body h2{font-family:var(--fd);font-size:var(--fs-h2);font-weight:700;letter-spacing:var(--ls-heading);margin:48px 0 12px;padding-top:48px;border-top:1px solid var(--border);color:var(--ink)}
.legal-body h2:first-of-type{margin-top:0;padding-top:0;border-top:none}
.legal-body h3{font-family:var(--fd);font-size:var(--fs-h3);font-weight:700;letter-spacing:var(--ls-heading);margin:28px 0 8px;color:var(--ink)}
.legal-body p{font-size:17px;color:var(--text-body);line-height:1.75;margin-bottom:16px}
.legal-body ul{font-size:17px;color:var(--text-body);line-height:1.75;padding-left:20px;margin-bottom:16px}
.legal-body ul li{margin-bottom:6px}
.legal-body ol{font-size:17px;color:var(--text-body);line-height:1.75;padding-left:20px;margin-bottom:16px}
.legal-body ol li{margin-bottom:8px}
.legal-body a{color:var(--coral);text-decoration:underline;text-underline-offset:3px}
.legal-body strong{color:var(--ink);font-weight:600}
.legal-body .page-hl{font-weight:700}
@media(min-width:861px){.legal-column>.legal-body{max-width:1100px;margin:0 auto;padding:0 clamp(20px,4vw,48px) 100px}}

/* ── ARTICLE TEMPLATE (bp-*) ── */
.bp-shell{max-width:860px;margin:0 auto;padding:clamp(88px,10vh,120px) clamp(20px,4vw,48px) clamp(80px,10vh,120px)}
.bp-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-muted);text-decoration:none;margin-bottom:40px;transition:color .15s}
.bp-back:hover{color:var(--coral)}
.bp-meta{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.bp-tag{font-family:var(--fb);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--coral);background:var(--coral-tint);border:1px solid var(--coral-10);padding:3px 10px;border-radius:var(--radius-pill)}
.bp-date,.bp-author{font-size:13px;color:var(--text-muted)}
.bp-date::after{content:'·';margin-left:10px;opacity:.4}
.bp-headline{font-family:var(--fd);font-size:clamp(32px,5vw,56px);font-weight:800;letter-spacing:-.04em;line-height:1.05;color:var(--ink);margin-bottom:20px}
.bp-deck{font-size:18px;color:var(--text-body);line-height:1.7;margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--border)}
.bp-body h2{font-family:var(--fd);font-size:clamp(20px,2.5vw,26px);font-weight:700;letter-spacing:-.03em;color:var(--ink);margin:48px 0 16px;padding-top:48px;border-top:1px solid var(--border)}
.bp-body h2:first-child{border-top:none;padding-top:0;margin-top:0}
.bp-body p{font-size:17px;color:var(--text-body);line-height:1.8;margin-bottom:22px}
.bp-body a{color:var(--coral);text-underline-offset:3px}
.bp-body strong{color:var(--ink)}
.bp-body ul,.bp-body ol{margin:0 0 22px;padding-left:22px}
.bp-body ul li,.bp-body ol li{font-size:17px;color:var(--text-body);line-height:1.8;margin-bottom:8px}
.bp-footer{margin-top:64px;padding-top:40px;border-top:1px solid var(--border)}
.bp-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.bp-cta p{font-size:14px;color:var(--text-muted)}
.bp-body img{max-width:100%;border-radius:8px;margin:32px 0;display:block}
.bp-body pre{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 24px;overflow-x:auto;margin:28px 0;font-size:14px;line-height:1.65}
.bp-body code{font-size:.875em;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 6px}
.bp-body pre code{background:none;border:none;padding:0;font-size:inherit}

/* ── GUIDE TEMPLATE (cg-*) ── */
.cg-hero{background:var(--surface);border-bottom:1px solid var(--border);padding:clamp(40px,5vh,72px) clamp(20px,4vw,48px) clamp(40px,5vh,64px)}
.cg-hero-inner{max-width:860px;margin:0 auto}
.cg-hero-wide{max-width:1120px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.content-wrap--tight-top{padding-top:clamp(40px,5vh,60px)}
.content-wrap--flush-top{padding-top:clamp(24px,3vh,40px)}
.cg-hero-eyebrow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.cg-hero-back{font-size:13px;font-weight:600;color:var(--text-muted);text-decoration:none;transition:color var(--dur-sm)}
.cg-hero-back:hover{color:var(--coral)}
.cg-hero-tag{font-family:var(--fb);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--coral);background:var(--coral-tint);border:1px solid var(--coral-10);padding:3px 10px;border-radius:var(--radius-pill)}
.cg-hero-meta{font-size:13px;color:var(--text-muted)}
.cg-hero-title{font-family:var(--fd);font-size:clamp(36px,5vw,64px);font-weight:800;letter-spacing:-.04em;line-height:1.0;margin-bottom:20px;color:var(--ink)}
.cg-hero-lead{font-size:clamp(16px,1.8vw,19px);color:var(--text-body);line-height:1.7;max-width:640px}
.cg-hero-cover{width:100%;height:auto;display:block;border-radius:12px;margin-top:40px}
.cg-layout{display:grid;grid-template-columns:1fr 220px;gap:64px;max-width:1280px;margin:0 auto;padding:56px clamp(20px,4vw,48px) 120px;align-items:start}
@media(max-width:860px){.cg-layout{grid-template-columns:1fr}}
.cg-toc{position:sticky;top:100px}
.cg-toc-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:600;margin-bottom:14px;display:block}
.cg-toc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.cg-toc-list a{font-size:13px;color:var(--text-muted);text-decoration:none;padding:5px 0;border-left:2px solid var(--border);padding-left:12px;display:block;transition:color var(--dur-sm),border-color var(--dur-sm)}
.cg-toc-list a:hover{color:var(--coral);border-color:var(--coral)}
@media(max-width:860px){.cg-toc{display:none}}
.cg-content h2{font-family:var(--fd);font-size:clamp(20px,2.5vw,28px);font-weight:700;letter-spacing:-.03em;margin:56px 0 18px;padding-top:56px;border-top:1px solid var(--border);color:var(--ink)}
.cg-content h2:first-child{border-top:none;padding-top:0;margin-top:0}
.cg-content h3{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.02em;margin:28px 0 10px;color:var(--ink)}
.cg-content p{font-size:16px;color:var(--text-body);line-height:1.75;margin-bottom:16px}
.cg-content ul,.cg-content ol{font-size:16px;color:var(--text-body);line-height:1.75;padding-left:20px;margin-bottom:16px}
.cg-content li{margin-bottom:6px}
.cg-content a{color:var(--coral);text-underline-offset:3px}

/* ── Guide showcase template (afm-*) ── */
.afm-inner{max-width:1120px;margin:0 auto}
.afm-section{margin:0 0 56px}
.afm-section-hd{display:flex;align-items:baseline;gap:16px;margin:0 0 12px}
.afm-section-hd::after{content:'';flex:1;height:1px;background:var(--border)}
.afm-section-title{font-family:var(--fd);font-size:clamp(22px,2.6vw,28px);font-weight:700;letter-spacing:-.03em;color:var(--ink);margin:0}
.afm-section-lead{font-size:15px;color:var(--text-muted);line-height:1.6;margin:0 0 28px;max-width:680px}
.afm-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 32px 28px;display:flex;flex-direction:column;gap:14px;margin:0 0 48px;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:transform .2s,box-shadow .2s}
.afm-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,.2)}
.afm-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.afm-card-tag{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--coral);font-weight:600}
.afm-card-title{font-family:var(--fd);font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--ink);line-height:1.15;margin:0}
.afm-card-desc{font-size:16px;color:var(--text-body);line-height:1.65;margin:0;flex:1}
.afm-card-specs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.afm-spec{font-size:11px;font-weight:600;letter-spacing:.04em;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--text-body)}
.afm-badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:rgba(15,158,153,.12);color:#0F9E99;border:1px solid rgba(15,158,153,.25);border-radius:6px;padding:3px 8px}
.afm-rules{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 36px}
.afm-rules h3{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0 0 14px}
.afm-rules ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 32px}
.afm-rules li{font-size:14px;color:var(--text-body);line-height:1.55;padding-left:20px;position:relative}
.afm-rules li::before{content:'→';position:absolute;left:0;color:var(--coral);font-weight:700}
@media(max-width:900px){.afm-rules ul{grid-template-columns:1fr}}
.afm-inner h3{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.02em;margin:28px 0 10px;color:var(--ink)}
.afm-inner p{font-size:16px;color:var(--text-body);line-height:1.75;margin-bottom:16px}
.afm-inner ul,.afm-inner ol{font-size:16px;color:var(--text-body);line-height:1.75;padding-left:20px;margin-bottom:16px}
.afm-inner li{margin-bottom:6px}
.afm-inner a{color:var(--coral);text-underline-offset:3px}
.afm-inner code{font-size:.9em;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 6px}

/* ── Guide post mock previews (cg-post-ex-*) ── */
.cg-post-ex-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 8px}
.cg-post-ex{background:#19191A;border-radius:16px;overflow:hidden;border:0.5px solid rgba(255,255,255,0.08);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif}
.cg-post-ex-hd{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:0.5px solid rgba(255,255,255,0.06)}
.cg-post-ex-chip{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;color:#fff;white-space:nowrap}
.cg-post-ex-time{font-size:11px;color:rgba(255,255,255,0.4);margin-left:auto}
.cg-post-ex-body{padding:12px 14px;font-size:14px;line-height:1.5;color:rgba(217,217,217,0.9)}
.cg-post-ex-body strong{color:#fff;font-weight:600}
.cg-post-ex-media{background:#0C1B2E;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-size:36px;position:relative}
.cg-post-ex-gif-badge{position:absolute;top:8px;right:8px;background:rgba(0,0,0,0.6);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:0.5px;pointer-events:none}
.cg-post-ex-poll{padding:10px 14px 4px;display:flex;flex-direction:column;gap:8px}
.cg-post-ex-q{font-size:15px;font-weight:700;color:rgba(217,217,217,0.95);margin-bottom:4px;line-height:1.3}
.cg-post-ex-opt{border-radius:10px;padding:12px 14px;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center}
.cg-post-ex-opt-fill{position:absolute;inset:0;border-radius:10px}
.cg-post-ex-opt-label{font-size:13px;font-weight:600;color:#fff;position:relative;z-index:1}
.cg-post-ex-opt-pct{font-size:13px;font-weight:700;color:rgba(255,255,255,0.85);position:relative;z-index:1}
.cg-post-ex-vs{padding:12px 14px;display:flex;align-items:stretch;gap:0}
.cg-post-ex-vs-side{flex:1;padding:10px 12px;border-radius:10px}
.cg-post-ex-vs-side--a{background:rgba(52,199,89,0.12);border:0.5px solid rgba(52,199,89,0.25)}
.cg-post-ex-vs-side--b{background:rgba(255,59,48,0.12);border:0.5px solid rgba(255,59,48,0.25)}
.cg-post-ex-vs-name{font-size:13px;font-weight:700;color:#fff;margin-bottom:6px}
.cg-post-ex-vs-stat{font-size:11px;color:rgba(255,255,255,0.5);line-height:1.6}
.cg-post-ex-vs-divider{display:flex;align-items:center;justify-content:center;padding:0 10px;font-size:11px;font-weight:800;color:rgba(255,255,255,0.3);letter-spacing:1px}
.cg-post-ex-media--vert{aspect-ratio:4/5}
.cg-post-ex-caption{padding:8px 14px 0;font-size:13px;color:rgba(217,217,217,0.7);line-height:1.4}
.cg-post-ex-event{padding:12px 14px}
.cg-post-ex-event-title{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px;line-height:1.3}
.cg-post-ex-event-meta{font-size:12px;color:rgba(255,255,255,0.5);line-height:1.6}
.cg-post-ex-link-thumb{background:linear-gradient(135deg,#1a1a2e,#533483);aspect-ratio:2/1;display:flex;align-items:center;justify-content:center;font-size:32px}
.cg-post-ex-link-meta{padding:10px 14px 4px}
.cg-post-ex-link-domain{font-size:11px;color:rgba(255,255,255,0.4);margin-bottom:4px}
.cg-post-ex-link-title{font-size:13px;font-weight:600;color:rgba(217,217,217,0.9);line-height:1.4}
.cg-post-ex-actions{display:flex;gap:4px;padding:8px 10px;border-top:0.5px solid rgba(255,255,255,0.06)}
.cg-post-ex-act{font-size:12px;color:rgba(255,255,255,0.35);padding:4px 8px;border-radius:16px}
.cg-post-ex-act--on{color:#34C759}
.cg-post-ex-note{font-size:13px;color:var(--text-muted);margin:4px 0 28px;font-style:italic;line-height:1.5}
@media(max-width:600px){.cg-post-ex-pair{grid-template-columns:1fr}}

/* ── Shared guide components ── */
.comp-steps{display:flex;flex-direction:column;gap:2px;background:var(--border);margin:32px 0 40px}
.comp-step{background:var(--paper);display:grid;grid-template-columns:72px 1fr;gap:32px;padding:36px 40px;align-items:start}
.comp-step-num{font-family:var(--fd);font-size:44px;font-weight:700;letter-spacing:-.05em;color:rgba(232,96,78,.22);line-height:1}
.comp-step-title{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px;color:var(--ink)}
.comp-step-text{font-size:15px;color:var(--text-body);line-height:1.65;margin:0}
.comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--border);margin:32px 0 40px}
.comp-card{background:var(--paper);padding:36px}
.comp-card-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--coral);font-weight:600;margin:0 0 12px;display:block}
.comp-card-title{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}
.comp-card-text{font-size:15px;color:var(--text-body);line-height:1.65;margin:0}
.comp-contacts{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;margin:28px 0 0}
.comp-contact-card{background:var(--paper);padding:32px 36px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);transition:background var(--dur-sm)}
.comp-contact-card:hover{background:var(--surface)}
.comp-contact-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-weight:600}
.comp-contact-email{font-family:var(--fb);font-size:17px;font-weight:600;color:var(--coral);letter-spacing:-.01em}
.comp-contact-desc{font-size:14px;color:var(--text-body);line-height:1.55;margin:0}
@media(max-width:768px){.comp-step{grid-template-columns:1fr;gap:8px;padding:28px 24px}.comp-grid{grid-template-columns:1fr}.comp-contacts{grid-template-columns:1fr}}
.cg-checklist{list-style:none;padding:0;margin:16px 0 32px;display:flex;flex-direction:column;gap:8px}
.cg-checklist li{padding:14px 16px 14px 44px;background:var(--paper);border:1px solid var(--border);border-radius:16px;font-size:14px;color:var(--text-body);line-height:1.5;position:relative}
.cg-checklist li::before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:color-mix(in srgb, var(--coral) 18%, transparent);border:1.5px solid var(--coral)}
.cg-checklist li strong{color:var(--ink)}
.cg-tip{padding:18px 22px;background:color-mix(in srgb, var(--coral) 7%, transparent);border:1px solid color-mix(in srgb, var(--coral) 22%, transparent);border-radius:16px;margin:18px 0 28px;font-size:14px;color:var(--text-body);line-height:1.6}
.cg-tip strong{display:block;margin-bottom:4px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--coral)}
.cg-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 32px}
.cg-card{padding:18px 20px;background:var(--paper);border:1px solid var(--border);border-radius:16px}
.cg-card-h{font-family:var(--fd);font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.cg-card p{font-size:13.5px;color:var(--text-body);line-height:1.55;margin:0}
@media(max-width:600px){.cg-cards{grid-template-columns:1fr}}
.cg-cta{margin:40px 0 8px;padding:28px 32px;background:var(--paper);border:1px solid var(--border);border-radius:16px;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}
.cg-cta h3{font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.cg-cta p{font-size:14px;color:var(--text-body);margin:0;max-width:480px}

/* ── NOTICE BOX ── */
.notice-box{background:var(--coral-tint);border:1px solid var(--coral-20);border-radius:var(--radius-lg);padding:24px 28px;margin:24px 0}
.notice-box p{margin:0;font-size:14px;color:var(--text-body);line-height:1.65}
.notice-box strong{color:var(--ink)}

/* ── PULL QUOTE ── */
.pull-quote{font-family:var(--fd);font-size:clamp(20px,2.8vw,32px);font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--ink);background:var(--coral-tint);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;margin:48px 0;max-width:560px}

/* ── EYEBROW / ACCENT LINE ── */
.eyebrow{font-family:var(--fb);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-deep);font-weight:600;margin-bottom:8px;display:block}
.s-accent{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.s-accent::before{content:'';width:32px;height:2px;background:var(--coral);border-radius:4px;flex-shrink:0}

/* ── BUTTONS ── */
.btn-primary{display:inline-block;background:transparent;color:var(--coral);padding:12px 28px;border-radius:var(--radius-pill);font-size:15px;font-weight:600;font-family:var(--fb);transition:background var(--dur-sm),border-color var(--dur-sm),color var(--dur-sm);border:1.5px solid var(--coral);cursor:pointer}
.btn-primary:hover{background:var(--coral-tint);border-color:var(--coral-deep);color:var(--coral-deep)}
.btn-outline{border:1px solid var(--border);color:var(--ink);padding:12px 28px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;font-family:var(--fb);transition:border-color var(--dur-sm),background var(--dur-sm);white-space:nowrap;display:inline-block;background:transparent}
.btn-outline:hover{border-color:var(--coral);background:var(--coral-tint);color:var(--coral)}
.btn-coral{display:inline-block;background:transparent;color:var(--coral);padding:12px 28px;border-radius:var(--radius-pill);font-size:15px;font-weight:600;font-family:var(--fb);transition:background var(--dur-sm),border-color var(--dur-sm),color var(--dur-sm);border:1.5px solid var(--coral)}
.btn-coral:hover{background:var(--coral-tint);border-color:var(--coral-deep);color:var(--coral-deep)}

/* ── CONTACT BAND ── */
.contact-band{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.contact-copy h3{font-family:var(--fd);font-size:28px;font-weight:700;letter-spacing:-.03em;margin-bottom:8px;color:var(--ink)}
.contact-copy p{font-size:16px;color:var(--text-body);max-width:480px;line-height:1.5}

/* ── FOOTER ── */
footer{border-top:none;background:var(--ink);margin-top:80px}
.footer-inner{max-width:1320px;margin:0 auto;padding:32px 32px 0;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:16px;border-left:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06)}
.footer-col-card{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:28px 24px;margin-bottom:32px}
.footer-brand-link,.footer-logo{display:inline-flex;align-items:center;gap:10px;color:#fff;margin-bottom:16px}
.footer-brand-name,.footer-wordmark{font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:-.03em}
.footer-tagline{font-size:13px;color:rgba(255,255,255,.5);line-height:1.65;margin-bottom:24px;max-width:240px}
.footer-social{display:flex;gap:18px;align-items:center}
.footer-social a{color:rgba(255,255,255,.45);transition:color var(--dur-sm);display:flex;min-width:24px;min-height:24px;align-items:center;justify-content:center;padding:3px}
.footer-social a:hover{color:#fff}
.footer-col-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:18px;font-weight:700;display:block}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:9px}
.footer-links a{font-size:13px;color:rgba(255,255,255,.82);transition:color var(--dur-sm)}
.footer-links a:hover{color:var(--coral)}
.footer-links a:focus-visible{color:var(--coral);outline:2px solid var(--coral);outline-offset:2px;border-radius:2px}
.footer-legal-grid{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:9px 24px}
.footer-legal-grid a{font-size:12px;color:rgba(255,255,255,.65);transition:color var(--dur-sm)}
.footer-legal-grid a:hover{color:#fff}
.footer-legal-row{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.08);padding:24px 32px 28px;margin:0 -32px}
.footer-legal-list{list-style:none;display:flex;flex-wrap:wrap;gap:6px 20px}
.footer-legal-list a{font-size:11px;color:rgba(255,255,255,.5);transition:color var(--dur-sm);letter-spacing:.01em}
.footer-legal-list a:hover{color:rgba(255,255,255,.8)}
.footer-bottom{max-width:1320px;margin:0 auto;padding:18px 32px;border-top:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-bottom p{font-size:11px;color:rgba(255,255,255,.60);letter-spacing:.02em}
.footer-qr{margin-top:24px}
.footer-qr-code{display:inline-block;line-height:0;border-radius:8px;overflow:hidden;opacity:.88;transition:opacity var(--dur-sm);position:relative}
.footer-qr-code:hover{opacity:1}
.footer-qr-copy{background:none;border:none;padding:0;cursor:pointer;color:inherit;line-height:0;display:block}
.footer-qr-copy:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:8px}
.footer-qr-code svg{display:block;width:88px;height:88px;pointer-events:none}
.footer-qr-badges{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.footer-qr-badges a{display:inline-flex;line-height:0;opacity:.7;transition:opacity var(--dur-sm)}
.footer-qr-badges a:hover{opacity:1}
.footer-qr-badges img{height:28px;width:auto;display:block}
@media(max-width:768px){.footer-qr{display:none}}

/* ── PAGE LOADER ── */
#page-loader{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--paper);transition:opacity .4s var(--ease)}
#page-loader.fade{opacity:0;pointer-events:none}
@keyframes ldr-opc{0%,100%{opacity:.55}50%{opacity:1}}
.ldr-grp{transform-origin:100px 100px;animation:ldr-spin 2s cubic-bezier(.45,.05,.55,.95) infinite}
.ldr-r1{animation:ldr-opc 2s linear infinite}
.ldr-r2{animation:ldr-opc 2s linear infinite;animation-delay:-.67s}
.ldr-r3{animation:ldr-opc 2s linear infinite;animation-delay:-1.33s}
@media(prefers-reduced-motion:reduce){.ldr-grp,.ldr-r1,.ldr-r2,.ldr-r3{animation:none}}

/* ── REVEAL ON SCROLL ── */
.reveal{opacity:1;transform:none}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.18s}.d3{transition-delay:.28s}

/* ── TEMPLATES ── */
/* Home hero is built inline in src/pages/index.astro using the .home-frame system. */
.tpl-sub .content-wrap{padding:clamp(48px,6vh,80px) clamp(20px,4vw,40px) clamp(96px,12vh,160px)}

/* ── HERO HEADLINE SCALE ── */
.hero-hl--xl{font-family:var(--fd);font-size:clamp(72px,13vw,160px);font-weight:700;line-height:.95;letter-spacing:-.05em;color:var(--ink)}
.hero-hl--lg{font-family:var(--fd);font-size:clamp(48px,7vw,88px);font-weight:700;line-height:1.0;letter-spacing:-.04em;color:var(--ink)}
.hero-hl--md{font-family:var(--fd);font-size:clamp(36px,5vw,56px);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--ink)}

/* ── SECTION PADDING ── */
.section-pad{padding:clamp(64px,8vw,120px) clamp(20px,4vw,40px)}

/* ── RING DIVIDER ── */
.ring-divider{display:flex;justify-content:center;margin:48px 0;color:var(--n-300)}

/* ── SECTION MARK ── */
.section-mark{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.section-mark::before{content:'';display:block;width:32px;height:2px;background:var(--coral)}

/* ── PAGE BACKGROUND ── */
.page-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.page-bg picture,.page-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.tpl-sub .page-bg{position:relative;inset:auto;width:100%;height:20vh}
body{position:relative}
body > section, body > main, body > footer{position:relative;z-index:2}

/* ── PAGE SPINE ── */
.page-spine{position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(1320px,calc(100% - 48px));border-left:1px solid var(--border);border-right:1px solid var(--border);pointer-events:none;z-index:5}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:860px){
  .legal-layout{grid-template-columns:1fr}
  .legal-toc{position:static;margin-bottom:32px}
  .legal-hero{padding:clamp(88px,12vh,110px) 20px 40px}
  .legal-body{padding:0 20px 80px}
}
@media(max-width:768px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:12px;padding:24px 16px 0}
  .nav-inner{padding:0 20px;grid-template-columns:auto 1fr auto}
  .nav-links{display:none}
  .nav-store-badges{display:none}
  .nav-burger{display:block}
  .page-hero{padding:clamp(88px,12vh,120px) 20px clamp(40px,5vh,60px)}
  .divider{margin:0 20px}
  .content-wrap{padding:60px 20px 80px}
  .contact-band{padding:28px}
  footer{margin-top:40px}
  .footer-bottom{padding:16px 24px;flex-direction:column;gap:6px;align-items:flex-start}
  .footer-legal-grid{grid-template-columns:1fr 1fr}
  .footer-legal-list{gap:5px 14px}
  .footer-tagline{max-width:none}
}
@media(max-width:480px){
  .footer-inner{grid-template-columns:1fr;padding:16px 12px 0}
  .page-hl{font-size:clamp(36px,10vw,56px)}
  .hero-hl--xl{font-size:clamp(56px,14vw,88px)}
}

/* ── CARD CAROUSEL (Netflix-style) ── */
.card-carousel{position:relative}
.card-carousel-viewport{overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,#000 32px,#000 calc(100% - 32px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 32px,#000 calc(100% - 32px),transparent 100%)}
.card-carousel-track{display:flex;gap:12px;padding:8px 20px;width:max-content;transition:transform .4s cubic-bezier(.4,0,.2,1);will-change:transform}
.card-carousel-track community-share-card{flex-shrink:0}
.card-carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:72px;border:none;cursor:pointer;background:rgba(12,9,7,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;z-index:4;transition:background .15s,opacity .15s}
.card-carousel-btn:hover{background:rgba(12,9,7,.8)}
.card-carousel-btn[hidden]{display:none}
.card-carousel-btn--prev{left:0}
.card-carousel-btn--next{right:0}
.card-carousel-dots{display:flex;justify-content:center;align-items:center;gap:6px;padding:10px 0 4px}
.card-carousel-dot{width:6px;height:6px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.3);padding:0;transition:width .2s,border-radius .2s,background .2s,opacity .2s;flex-shrink:0}
.card-carousel-dot.active{width:18px;border-radius:3px;background:rgba(255,255,255,.85)}

/* ── VIEW TRANSITIONS ── */
::view-transition-old(root),::view-transition-new(root){animation-duration:100ms}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  ::view-transition-group(*),
  ::view-transition-image-pair(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation-duration: 0.001ms !important;
    animation-delay: 0s !important;
  }
}
