@font-face{
  font-family:'Anton';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(assets/fonts/anton-400-latin.woff2) format('woff2');
  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:'Anton';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(assets/fonts/anton-400-latin-ext.woff2) format('woff2');
  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;
}
/* Archivo is a variable font: Google points 6 @font-face rules at one file, merged into one 400-900 range here. */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:400 900;
  font-display:swap;
  src:url(assets/fonts/archivo-var-latin.woff2) format('woff2');
  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:'Archivo';
  font-style:normal;
  font-weight:400 900;
  font-display:swap;
  src:url(assets/fonts/archivo-var-latin-ext.woff2) format('woff2');
  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:'Space Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(assets/fonts/spacemono-400-latin.woff2) format('woff2');
  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:'Space Mono';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url(assets/fonts/spacemono-700-latin.woff2) format('woff2');
  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:'Space Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(assets/fonts/spacemono-400-latin-ext.woff2) format('woff2');
  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:'Space Mono';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url(assets/fonts/spacemono-700-latin-ext.woff2) format('woff2');
  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;
}

:root{
  --paper:#F3F1EA;
  --paper-2:#E9E6DD;
  --ink:#14162A;
  --navy:#1a218c;
  --orange:#F0950A;
  --orange-d:#C97E06;
  --muted:#6C6F7B;
  --line:rgba(20,22,42,.14);
  --line-2:rgba(243,241,234,.16);
  --hh:74px;
  /* Font-size ladder. Body copy uses exactly three tiers and every new rule must land on one:
     --fs-body 16px (any complete sentence) / --fs-label 12px (mono kickers, table headers, field
     names, numbers) / --fs-mini 11.5px (hero metadata, legend, mobile column labels).
     Display sizes use their own clamp; buttons and UI text are their own group (13-13.5px).
     Only exceptions: the footer copyright line and the <=600px hero doc row (9px). Do not add px values.
  */
  --fs-body:16px;          /* 1. body baseline */
  --fs-label:12px;         /* 2. label */
  --fs-mini:11.5px;        /* 3. smallest tier */
  --max:1480px;
  --pad:clamp(20px,5vw,72px);
  --display:'Anton',Impact,sans-serif;
  --sans:'Archivo',-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'Space Mono','Courier New',monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:var(--fs-body);line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--orange);color:#fff}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.eyebrow{
  font-family:var(--mono);font-size:var(--fs-mini);font-weight:700;letter-spacing:.32em;
  text-transform:uppercase;color:var(--orange);display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--orange)}
.section{padding:clamp(72px,9vw,140px) 0;position:relative}

/* 移动/平板（≤920px）段间距统一 -------------------------------------------
   各页的深色带（.rail / .stageline / .engNote / .creed / .floor）、窄档带
   （.lane / .cmp / .svc-index / .nums）和 .plant/.ppl/.next 在桌面各有自己的档位（设计稿如此），
   但它们的 clamp 斜率不同，窄屏下会分别落到 46–68 而不一致（实测宽 390 时 30/40/46/52/58/68/72 七种）。
   这里在窄屏把所有整档带子归到与 .section 同一档（clamp(72px,9vw,140px)），
   于是整档处处相等、同底色邻居的半档（各页的 #id 规则）仍然是它的一半。
   选择器带 body 前缀是为了在层叠里压过各页 CSS 的同名类（style.css 先加载，光靠顺序赢不了）。 */
@media(max-width:920px){
  body .rail,body .stageline,body .engNote,body .nums,body .plant,body .ppl,body .next,
  body .lane,body .cmp,body .svc-index,body .creed,body .floor,body .statement{
    padding-top:clamp(72px,9vw,140px);padding-bottom:clamp(72px,9vw,140px)}
  /* 数字带是唯一不对称的一条：上整档、下半档（与 #x1 配对） */
  body .figures{padding-top:clamp(72px,9vw,140px);padding-bottom:clamp(36px,4.5vw,70px)}
  /* 同底色邻居各出半档（与各页桌面的 #id / 类规则同一套）；写在这行之后才能盖掉上面的整档。 */
  body .nums{padding-bottom:clamp(36px,4.5vw,70px)}
  body .plant,body .ppl{padding-top:clamp(36px,4.5vw,70px)}
  body .next{padding-bottom:clamp(36px,4.5vw,70px)}
}
.sec-head{max-width:920px}
body.sse-kids .sec-head,
body.sse-teen .sec-head{max-width:780px}
/* 2026-10 设计稿规则：本网站不再用「行分隔发丝线」。
   实测设计稿各页只保留三类边框：① 2px 墨色装置顶线（.tbl/.upgrades/.figures? 见各页）
   ② .head 行的 2px 墨色底线 ③ 盒子边框（图版/卡片/表单/标签）。
   旧的 .sec-alt / .inq 有 1px 顶线、表格/列表行有 1px 底线，均已在 2026-10-10 统一删除；
   窄屏堆叠时的分隔线（如 ≤1024 的 .step、≤1024 转置表格的格子）设计稿仍在用，保留。 */
.sec-alt{background:var(--paper-2)}
.sec-title{
  font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:clamp(2.1rem,5.2vw,4.4rem);line-height:.96;letter-spacing:.005em;margin-top:18px;
}
.sec-title .em{color:var(--orange)}
.lead{margin-top:22px;color:var(--muted);font-size:clamp(16px,1.15vw,18px);max-width:68ch;line-height:1.68}

/* 标签 + 数值成对铺开的规格条（#range 的平台卡与 #series 的系列事实条共用）。
   不画格线：这是并列的事实，不是对比矩阵（对比矩阵见 .tbl）。 */
.specs{display:flex;flex-wrap:wrap;gap:0;margin-top:26px}
.specs div{
  flex:1 1 140px;padding:15px 18px 15px 0;
  font-family:var(--mono);font-size:13.5px;letter-spacing:.04em;color:var(--ink);
}
.specs div span{display:block;color:var(--muted);font-size:var(--fs-mini);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(40px,6vw,72px);border-top:2px solid var(--ink)}
.step{padding:34px 32px 34px 0}
.step .n{font-family:var(--display);font-size:2.4rem;color:var(--orange);line-height:1}
.step h3{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:1.05rem;margin:14px 0 12px}
.step p{color:var(--muted);font-size:var(--fs-body);line-height:1.7}

.btn{
  display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:800;
  font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;padding:16px 32px;cursor:pointer;
  border:1px solid transparent;transition:transform .25s,background .25s,color .25s,border-color .25s;
}
.btn svg{transition:transform .25s}
.btn:hover svg{transform:translateX(4px)}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--ink);transform:translateY(-2px)}
.btn-solid{background:var(--orange);color:#0A0A0B}
.btn-solid:hover{background:#fff;color:#0A0A0B}
.btn-ghost{border-color:rgba(244,242,238,.4);color:var(--paper)}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange)}
.btn-ghost-l{background:transparent;border-color:var(--line-2);color:var(--paper)}
.btn-ghost-l:hover{background:var(--orange);border-color:var(--orange);color:#fff}

.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-arrow{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);border:1px solid var(--ink);padding:12px 18px 12px 20px;
  display:inline-flex;align-items:center;gap:14px;transition:background .3s,color .3s,border-color .3s}
.btn-arrow svg{width:22px;height:22px;flex-shrink:0;padding:3px;border:1px solid var(--orange);border-radius:50%;color:var(--orange);transition:transform .3s,background .3s,color .3s}
.btn-arrow:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-arrow:hover svg{background:#fff;color:var(--orange);transform:translateX(4px)}

.ctaRow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(26px,3.4vw,42px)}

.link-arrow{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--orange);display:inline-flex;align-items:center;gap:8px;transition:.25s}
.link-arrow svg{transition:transform .25s}
.link-arrow:hover{color:var(--navy)}
.link-arrow:hover svg{transform:translateX(5px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.chips span{font-family:var(--mono);font-size:var(--fs-mini);font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(240,149,10,.7);color:var(--ink);background:rgba(240,149,10,.08);padding:6px 11px}

#wpforms-29 {
  background: var(--paper);
  border: 1px solid var(--line);
  padding: clamp(26px, 3vw, 40px);
  margin: 0;
}
#wpforms-29 .wpforms-form { margin: 0; padding: 0; }

#wpforms-29 .wpforms-field { margin: 0 0 18px; padding: 0; }
#wpforms-29 .wpforms-field-layout { margin-bottom: 0; }
#wpforms-29-field_3-container, #wpforms-29-field_4-container { margin-bottom: 0; }

#wpforms-29 .wpforms-field-label {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  line-height: 1.65;
  color: var(--muted);
  margin-bottom: 8px;
  padding: 0;
}

#wpforms-29 .wpforms-required-label { color: var(--muted); }
#wpforms-29 .wpforms-field-sublabel { display: none; }

#wpforms-29 input[type="text"],
#wpforms-29 input[type="email"],
#wpforms-29 input[type="tel"],
#wpforms-29 input[type="url"],
#wpforms-29 input[type="number"],
#wpforms-29 select,
#wpforms-29 textarea {
  width: 100%;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 14px 16px;
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: normal;
  height: 51px;
  min-height: 51px;
  color: var(--ink);
  box-shadow: none;
}
#wpforms-29 input:focus,
#wpforms-29 select:focus,
#wpforms-29 textarea:focus {
  border-color: var(--orange);
  outline: none;
  box-shadow: none;
}
#wpforms-29 textarea { min-height: 110px; resize: vertical; }
#wpforms-29 select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%236C6F7B' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  padding-right: 40px;
  height: 51px;
  min-height: 51px;
}

#wpforms-29 .wpforms-submit-container { margin: 32px 0 0; padding: 0; }
#wpforms-29 button.wpforms-submit {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--orange);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 16px 32px;
  height: auto;
  line-height: normal;
  font-family: var(--sans);
  font-weight: 800;
  font-size: 13.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .25s, background .25s, color .25s;
}
#wpforms-29 button.wpforms-submit::after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/16px 16px no-repeat;
}
#wpforms-29 button.wpforms-submit:hover,
#wpforms-29 button.wpforms-submit:focus { background: var(--ink); color: #fff; }
#wpforms-29 button.wpforms-submit:disabled { opacity: .65; cursor: default; }

#wpforms-29 .wpforms-confirmation-container-full,
#wpforms-29 .wpforms-confirmation-container {
  background: var(--paper);
  border: 1px solid var(--orange);
  border-radius: 0;
  color: var(--orange);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  padding: 14px 16px;
}
#wpforms-29 .wpforms-error-container,
#wpforms-29 .wpforms-head-error-container { color: #c0392b; }
#wpforms-29 .wpforms-field input.wpforms-error,
#wpforms-29 .wpforms-field select.wpforms-error,
#wpforms-29 .wpforms-field textarea.wpforms-error { border-color: #c0392b; }
#wpforms-29 .wpforms-field-sublabel,
#wpforms-29 .wpforms-field-label .wpforms-required-label { font-size: inherit; }

.inq{background:var(--paper-2)}
.inq-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,72px);align-items:start;margin-top:clamp(40px,6vw,64px)}
.values{margin-top:36px;display:flex;flex-direction:column;gap:18px}
.value{display:flex;gap:16px;align-items:flex-start}
.value .ck{flex-shrink:0;width:9px;height:9px;background:var(--ink);margin-top:7px}  /* The check-mark glyph is banned by craft-floor; solid square instead. */
.value strong{display:block;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;margin-bottom:4px}
.value span{color:var(--muted);font-size:var(--fs-body);line-height:1.62}

#site-header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background .3s ease,border-color .3s ease,padding .3s ease;
  border-bottom:1px solid transparent;padding:0;
}
#site-header .bar{
  display:flex;align-items:center;justify-content:space-between;gap:32px;
  height:86px;transition:height .3s ease;
}
#site-header.scrolled{background:var(--paper);border-color:rgba(20,22,42,.14);backdrop-filter:blur(10px)}
#site-header.scrolled .bar{height:68px}
#site-header.scrolled .logo img{filter:none}
#site-header.scrolled nav.main a{color:var(--ink)}
#site-header.scrolled nav.main a:hover{color:var(--orange)}
#site-header.scrolled nav.main .drop-panel a{color:#CFCCC4}
#site-header.scrolled nav.main .drop-panel a:hover{color:#fff;background:rgba(240,149,10,.08)}
#site-header.scrolled .btn-ghost{border-color:var(--ink);color:var(--ink)}
#site-header.scrolled .btn-ghost:hover{border-color:var(--orange);color:var(--orange)}
#site-header.scrolled .burger span{background:var(--ink)}
.logo{display:flex;align-items:center;gap:14px}
.logo img{height:44px;width:auto;filter:brightness(0) invert(1)}
nav.main{display:flex;gap:38px}
nav.main a{
  font-size:var(--fs-label);font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);opacity:.85;position:relative;padding:6px 0;transition:.2s;
}
nav.main a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--orange);transition:width .25s ease;
}
nav.main a:hover{opacity:1;color:var(--orange)}
nav.main a:hover::after{width:100%}
/* products dropdown */
.drop{position:relative}
.drop > a{display:flex;align-items:center;gap:7px}
.drop .caret{font-size:var(--fs-mini);color:var(--orange);transition:transform .2s}
.drop:hover .caret,.drop:focus-within .caret{transform:rotate(180deg)}
.drop-panel{
  position:absolute;top:100%;left:0;transform:translateY(12px);min-width:252px;
  padding:12px 0;background:#15161a;border:1px solid var(--line);border-radius:3px;
  box-shadow:0 26px 52px rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:.22s ease;z-index:120;
}
.drop:hover .drop-panel,.drop:focus-within .drop-panel{opacity:1;visibility:visible;transform:translateY(6px)}
nav.main .drop-panel a{display:block;padding:13px 26px;font-size:13.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#CFCCC4;transition:.15s}
nav.main .drop-panel a:hover{color:#fff;background:rgba(240,149,10,.08)}
.has-sub{position:relative}
.has-sub > a{display:flex;justify-content:space-between;align-items:center}
.has-sub > a::after{content:"\203A";color:var(--orange);font-size:15px;line-height:1}
.fly{
  position:absolute;left:100%;top:-10px;min-width:176px;padding:10px 0;background:#15161a;
  border:1px solid var(--line);border-radius:3px;box-shadow:0 26px 52px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transform:translateX(8px);transition:.2s ease;z-index:121;
}
.has-sub:hover .fly,.has-sub:focus-within .fly{opacity:1;visibility:visible;transform:none}
section[id],footer[id]{scroll-margin-top:84px}
.hdr-cta{display:flex;align-items:center;gap:14px}
.btn-sm{padding:11px 22px;font-size:13px}
.burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;position:relative;z-index:110}
.burger span{position:absolute;left:8px;right:8px;height:2px;background:var(--paper);transition:.3s}
.burger span:nth-child(1){top:13px}
.burger span:nth-child(2){top:19px}
.burger span:nth-child(3){top:25px}
body.menu-open .burger span:nth-child(1){top:19px;transform:rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){top:19px;transform:rotate(-45deg)}
.mobile-nav{
  position:fixed;inset:0;background:rgba(10,10,11,.98);z-index:105;
  display:none;flex-direction:column;justify-content:safe center;gap:8px;
  padding:calc(var(--hh) + var(--sse-ab) + 24px) 40px 40px;overflow:auto;
}
body.menu-open .mobile-nav{display:flex}
body.menu-open #site-header{
  z-index:110;background:#0A0A0B;border-color:transparent;box-shadow:none;backdrop-filter:none;
}
body.menu-open #site-header .hdr-cta > :not(.burger){display:none}
body.menu-open #site-header .bar .logo img{filter:brightness(0) invert(1)}
body.menu-open #site-header .burger span{background:var(--paper)}

body.menu-open{overflow:hidden}
.mobile-nav a{font-size:1.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);padding:14px 0;border-bottom:1px solid var(--line)}
.mobile-nav a:hover{color:var(--orange)}
.mobile-nav .sub{padding-left:26px;font-size:1.5rem;color:#CFCCC4;border-bottom:1px solid rgba(38,40,44,.6)}
.mobile-nav .sub:hover{color:var(--orange)}
.mobile-nav .btn{margin-top:18px;justify-content:center}

.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:var(--ink)}
.hero video,.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-pic{display:contents}          /* Let <picture> produce no layout box; the img is still positioned by .hero-media. */
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,11,20,.55) 0%,rgba(10,11,20,.15) 35%,rgba(10,11,20,.82) 100%),
             linear-gradient(90deg,rgba(10,11,20,.78) 0%,rgba(10,11,20,.15) 55%);}
.hero-inner{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 var(--pad) clamp(28px,5vh,56px);max-width:var(--max);margin:0 auto}
.hero-top{position:absolute;top:calc(var(--hh) + 22px);right:var(--pad);z-index:3;
  display:flex;justify-content:flex-end;font-family:var(--mono);font-size:var(--fs-mini);letter-spacing:.22em;
  text-transform:uppercase;color:rgba(243,241,234,.7)}
.hero-top .r{color:var(--orange)}
.hero h1{font-family:var(--display);font-weight:400;text-transform:uppercase;color:#fff;
  font-size:clamp(2.32rem,min(6.11vw,9vh),6rem);line-height:.9;letter-spacing:.01em;}

.hero h1 .o{color:var(--orange)}

@media(min-width:601px){
  body.sse-kids .hero-block,
  body.sse-teen .hero-block,
  body.sse-adults .hero-block,
  body.sse-about .hero-block,
  body.sse-service .hero-block{width:min(700px,54%)}
  body.sse-kids .hero h1,
  body.sse-teen .hero h1,
  body.sse-adults .hero h1,
  body.sse-about .hero h1,
  body.sse-service .hero h1{font-size:clamp(2.32rem,min(6.11vw,9vh),5.5rem);}
}

/* Wide-desktop tier (>=1440): on the design source, kids/service (and production,
   via its own css) run the base clamp(2.6rem,7vw,6rem), whose ceiling sits a step
   above the shared 5.5rem cap -- under the shared clamp they render smaller than
   the design on wide screens. From 1440 up they rejoin the design scale, on the
   same 12vh ladder as body.home so every big-title page moves together on short
   windows. teen/adults/about stay on the shared clamp: their design counterparts
   sit below it, so they already render at or above design size.
   The min-height guard keeps the tier off short viewports: these heroes carry a
   static hero-top line plus a 46-52ch sub, so at 12vh the h1 walks into the fixed
   header once the window gets short. Below 650px of height the already-validated
   shared clamp (9vh slope) takes over instead. */
@media(min-width:1440px) and (min-height:650px){
  body.sse-kids .hero h1,
  body.sse-service .hero h1{font-size:clamp(2.6rem,12vh,6rem)}
}

@media(min-width:1280px){
  body.home .hero h1{font-size:clamp(2.6rem,12vh,6rem);max-width: 12ch;}
}
.hero .sub{margin-top:24px;color:rgba(243,241,234,.84);max-width:60ch;font-size:clamp(16px,1.25vw,18.5px);line-height:1.68}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-foot{position:absolute;bottom:clamp(20px,4vh,34px);right:var(--pad);z-index:3;
  display:flex;align-items:center;gap:18px;font-family:var(--mono);font-size:var(--fs-mini);letter-spacing:.2em;
  text-transform:uppercase;color:rgba(243,241,234,.62)}
.hero-foot .scroll{color:var(--orange)}
.hero-certs{display:flex;gap:8px}
.hero-certs span{border:1px solid var(--line-2);padding:5px 10px;color:rgba(243,241,234,.8)}

.mark{position:absolute;width:18px;height:18px;z-index:3;opacity:.5}
.mark.tl{top:calc(var(--hh) + 14px);left:14px;border-top:2px solid var(--orange);border-left:2px solid var(--orange)}
.mark.tr{top:calc(var(--hh) + 14px);right:14px;border-top:2px solid var(--orange);border-right:2px solid var(--orange)}
.mark.bl{bottom:14px;left:14px;border-bottom:2px solid var(--orange);border-left:2px solid var(--orange)}
.mark.br{bottom:14px;right:14px;border-bottom:2px solid var(--orange);border-right:2px solid var(--orange)}

.footer{background:var(--navy);color:var(--paper)}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:40px;padding:clamp(56px,7vw,90px) 0 50px}
.footer .brand .logo{display:block;margin-bottom:22px;cursor:default}
.footer .brand .logo:hover{padding-left:0}
.footer .brand .logo img{height:40px;width:auto;filter:brightness(0) invert(1)}
.footer .brand p{color:rgba(243,241,234,.66);font-size:var(--fs-body);max-width:38ch;line-height:1.7}
.footer .socials{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.footer .socials a{width:38px;height:38px;border:1px solid var(--line-2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--paper);transition:.3s}
.footer .socials a:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-2px)}
.footer .socials svg{width:16px;height:16px}
.fcol h2{font-family:var(--mono);font-size:var(--fs-mini);letter-spacing:.24em;text-transform:uppercase;color:var(--orange);margin-bottom:20px}
.fcol a{display:block;font-size:var(--fs-body);color:rgba(243,241,234,.72);padding:6px 0;transition:.2s}
.fcol a:hover{color:#fff}
.fcol .contact{font-size:var(--fs-body);color:rgba(243,241,234,.72);line-height:1.7;margin-top:8px}
.footer-bottom{border-top:1px solid var(--line-2);padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer-bottom p,.footer-bottom a{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;color:rgba(243,241,234,.6)}
.footer-bottom a:hover{color:var(--orange)}

.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.js .reveal.vis{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

body:not(.sse-hero-top) #site-header {
  background: var(--paper);
  border-color: rgba(20, 22, 42, .14);
  backdrop-filter: blur(10px);
}
body:not(.sse-hero-top) #site-header .bar { height: 68px; }
body:not(.sse-hero-top) #site-header .logo img { filter: none; }
body:not(.sse-hero-top) #site-header nav.main a { color: var(--ink); }
body:not(.sse-hero-top) #site-header nav.main a:hover { color: var(--orange); }
body:not(.sse-hero-top) #site-header nav.main .drop-panel a { color: #CFCCC4; }
body:not(.sse-hero-top) #site-header nav.main .drop-panel a:hover { color: #fff; background: rgba(240, 149, 10, .08); }
body:not(.sse-hero-top) #site-header .btn-ghost { border-color: var(--ink); color: var(--ink); }
body:not(.sse-hero-top) #site-header .btn-ghost:hover { border-color: var(--orange); color: var(--orange); }
body:not(.sse-hero-top) #site-header .burger span { background: var(--ink); }

body.menu-open:not(.sse-hero-top) #site-header .burger span { background: var(--paper); }

body:not(.sse-hero-top) section[id],
body:not(.sse-hero-top) footer[id] { scroll-margin-top: 76px; }

.sse-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

:root { --sse-ab: 0px; }
body.admin-bar { --sse-ab: 32px; }
@media (max-width: 782px) { body.admin-bar { --sse-ab: 46px; } }

body.admin-bar #site-header { top: var(--sse-ab); }
body.admin-bar .hero-top { top: calc(var(--hh) + var(--sse-ab) + 22px); }
body.admin-bar .mark.tl,
body.admin-bar .mark.tr { top: calc(var(--hh) + var(--sse-ab) + 14px); }

.screen-reader-text {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: var(--paper);
  border: 2px solid var(--orange);
  clip-path: none;
  color: var(--ink);
  display: block;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 700;
  height: auto;
  left: 12px;
  line-height: 1.4;
  padding: 12px 18px;
  text-decoration: none;
  top: calc(var(--sse-ab) + 12px);
  width: auto;
  z-index: 200;
  clip: auto;
}

.section.sse-offset {
  padding-top: calc(var(--hh) + clamp(40px, 5vw, 72px));
}

.sse-plain {
  max-width: 820px;
  margin: 0 auto;
  padding: calc(var(--hh) + clamp(56px, 8vw, 96px)) var(--pad) clamp(72px, 9vw, 120px);
}.sse-plain > * + * { margin-top: 1.1em; }
.sse-plain h1,
.sse-plain h2,
.sse-plain h3 {
  font-family: var(--display);
  font-weight: 400;
  text-transform: uppercase;
  line-height: 1.02;
  letter-spacing: .01em;
}
.sse-plain h1 { font-size: clamp(2rem, 4.4vw, 3.4rem); }
.sse-plain h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin-top: 1.8em; }
.sse-plain h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); margin-top: 1.6em; }
.sse-plain p,
.sse-plain li { color: var(--muted); font-size: var(--fs-body); line-height: 1.72; }

.sse-plain a:not(.btn) { color: var(--orange); text-decoration: underline; text-underline-offset: 3px; }
.sse-plain a:not(.btn):hover { color: var(--navy); }
.sse-plain img { height: auto; }
.sse-plain ul { list-style: disc; padding-left: 1.4em; }
.sse-plain ol { list-style: decimal; padding-left: 1.4em; }
.sse-plain blockquote {
  border-left: 3px solid var(--orange);
  padding-left: 20px;
  font-family: var(--display);
  text-transform: uppercase;
  color: var(--ink);
  font-size: 1.3rem;
  line-height: 1.15;
}
.sse-plain .eyebrow { margin-bottom: 6px; }

/* pagination */
.sse-plain .page-numbers { display: inline-flex; gap: 8px; flex-wrap: wrap; margin-top: 40px; }
.sse-plain .page-numbers a,
.sse-plain .page-numbers span {
  font-family: var(--mono);
  font-size: 13px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  color: var(--ink);
}
.sse-plain .page-numbers .current { background: var(--orange); border-color: var(--orange); color: #fff; }

/* 404 */
.sse-404 .sse-404-code {
  font-family: var(--display);
  font-size: clamp(4rem, 14vw, 9rem);
  line-height: .85;
  color: var(--orange);
}
body.sse-modal-open { overflow: hidden; }

#pi-modal-overlay { background: rgba(20, 22, 42, .55); }
#pi-modal {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: 0 24px 60px rgba(20, 22, 42, .28);
  position: absolute;
  top: 50%;
  left: 16px;
  right: 16px;
  transform: translateY(-50%);
  max-height: calc(100vh - 80px);   /* fallback for browsers without svh */
  max-height: calc(100svh - 80px);  /* svh = viewport height with the mobile URL bar shown, so the button stays on screen */
  overflow-y: auto;                 /* scroll this card when content overflows (horizontal stays the plugin's overflow:hidden) */
}

@media (max-width: 768px) {
  #pi-modal {
    left: 12px;
    right: 12px;
    max-height: calc(100vh - 48px);
    max-height: calc(100svh - 48px);
  }
}
.pi-modal-header {
  padding: 18px clamp(20px, 3vw, 28px);
  border-bottom: 1px solid var(--line);
}

.pi-modal-header h3 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  letter-spacing: .01em;
  line-height: 1.02;
  text-transform: uppercase;
  color: var(--ink);
}
#pi-modal-close { color: var(--muted); font-size: 20px; line-height: 1; transition: color .2s; }
#pi-modal-close:hover { color: var(--orange); }

.pi-modal-body { padding: clamp(20px, 3vw, 28px); }
#pi-modal-form #wpforms-29 { background: transparent; border: 0; padding: 0; }

#pi-modal-form .pi-modal-cart-list { border-color: var(--line); border-radius: 0; }
#pi-modal-form .pi-modal-list-header {
  background: var(--paper-2);
  border-bottom-color: var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
}
#pi-modal-form .pi-modal-item { border-bottom-color: var(--line); }
#pi-modal-form .pi-modal-item-img { border-radius: 0; }
#pi-modal-form .pi-modal-item-model { color: var(--muted); }
#pi-modal-form .pi-qty-control .pi-qty-minus,
#pi-modal-form .pi-qty-control .pi-qty-plus,
#pi-modal-form .pi-qty-control .pi-qty-input {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
}
#pi-modal-form .pi-qty-control .pi-qty-minus:hover,
#pi-modal-form .pi-qty-control .pi-qty-plus:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}

.sse-footer-widgets {
  border-top: 1px solid var(--line-2);
  padding: 34px 0 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px;
}
.sse-footer-widgets h3 {
  font-family: var(--mono);
  font-size: var(--fs-mini);
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 14px;
}
.sse-footer-widgets a,
.sse-footer-widgets p,
.sse-footer-widgets li { color: rgba(243, 241, 234, .72); font-size: var(--fs-body); line-height: 1.7; }
.sse-footer-widgets a:hover { color: #fff; }
.sse-footer-widgets ul { list-style: none; }
@media(max-width:1280px){
  /* No .hero h1 override here any more -- see the note below. */
  .btn-sm{padding:10px 20px;font-size:12.5px}
  nav.main{gap:28px}
}

@media(max-width:1024px){
  nav.main{display:none}.burger{display:block}
  .footer-top{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}.step{border-right:0;border-bottom:1px solid var(--line)}
  .inq-grid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:1024px){
  .hero-actions .btn{flex:1 1 100%;justify-content:center}
  .ctaRow .btn:first-child:nth-last-child(2),
  .ctaRow .btn:first-child:nth-last-child(2) ~ .btn{flex:1 1 100%;justify-content:center}
}
@media(max-width:600px){
  :root{--hh:64px}
  .hero{height:auto;min-height:0}
  .hero-inner{height:auto;padding-top:calc(var(--hh) + 96px)}
  .hdr-cta .btn-ghost{display:none}
  .hero-top{font-size:9px;letter-spacing:.12em;top:calc(var(--hh) + 34px)}
  .hero h1{font-size:clamp(2.6rem,13.4vw,4.89rem);}
  .hero-foot{display:none}
  .footer-top{grid-template-columns:1fr;gap:32px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .js .reveal{opacity:1;transform:none}
}
.ps-colors{
  --ps-accent:var(--orange);
  margin:0 0 18px;
}
@media(max-width:640px){
  .ps-color-name{display:inline}
}

@media (min-width: 601px) {
    body.sse-kids .hero-block, body.sse-teen .hero-block, body.sse-adults .hero-block, body.sse-about .hero-block, body.sse-service .hero-block {
        width: min(700px, 54%);
    }
}