/* ============================================================
   SIGNATURE STYLES LLC — Custom Apparel & Accessories
   Design system · CheatCode Solutions build
   ============================================================ */

:root{
  --bg:#0a0809; --bg-1:#0e0c0e; --bg-2:#141114; --bg-3:#1d181b;
  --line:rgba(255,255,255,.08); --line-strong:rgba(255,255,255,.17);
  --fg:#ffffff; --fg-2:#d8d4d3; --fg-3:#9a9393; --fg-4:#837d7d;
  --accent:#e8404a; --accent-deep:#a92630; --accent-2:#ff6f62;
  --gold:#e9b44c; --gold-deep:#b8842b;
  --accent-glow:rgba(232,64,74,.42); --gold-glow:rgba(233,180,76,.30);
  --chrome:#d5d2cd; --chrome-2:#8d8983;
  --max:1240px; --pad-x:clamp(20px,5vw,72px);
  --nav-h:74px; --top-h:34px;
  --f-disp:'Anton',sans-serif;
  --f-body:'Space Grotesk',sans-serif;
  --f-mono:'JetBrains Mono',monospace;
  --f-script:'Great Vibes',cursive;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:focus-visible{outline:2px solid var(--accent-2); outline-offset:2px}
body{
  background:var(--bg); color:var(--fg-2);
  font-family:var(--f-body); font-size:17px; line-height:1.6;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent); color:#fff}

/* ambient glow + film grain */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 520px at 82% -6%, rgba(232,64,74,.10), transparent 60%),
    radial-gradient(760px 500px at -8% 30%, rgba(233,180,76,.06), transparent 60%),
    radial-gradient(1000px 700px at 50% 108%, rgba(232,64,74,.07), transparent 62%);
}
body::after{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
}
#fx{position:fixed; inset:0; z-index:0; pointer-events:none}
main{position:relative; z-index:2}

img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font-family:inherit; cursor:pointer}
input,select,textarea{font-family:inherit}

h1,h2,h3,.disp{font-family:var(--f-disp); font-weight:400; color:var(--fg); text-transform:uppercase; line-height:.98; letter-spacing:.5px}
.text-grad{background:linear-gradient(100deg,var(--accent-2),var(--accent) 45%,var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.script{font-family:var(--f-script); text-transform:none; font-weight:400; color:var(--gold); letter-spacing:0}

.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--pad-x)}
section{position:relative}

/* mono eyebrow */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--accent-2); margin-bottom:18px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--accent)}
.eyebrow.gold{color:var(--gold)} .eyebrow.gold::before{background:var(--gold)}

/* ============ TOP BAR ============ */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:1001; height:var(--top-h);
  display:flex; align-items:center; justify-content:center; gap:26px;
  background:linear-gradient(90deg,#120e10,#1a1114 50%,#120e10);
  border-bottom:1px solid var(--line);
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--fg-3);
}
.topbar b{color:var(--fg-2); font-weight:600}
.topbar .dot{color:var(--accent)}
.topbar a{color:var(--gold)}
@media(max-width:720px){ .topbar .hide-m{display:none} }

.drawer .drawer-shop{
  display:flex; align-items:center; gap:10px; margin-top:6px; padding-top:16px;
  border-top:1px solid var(--line); color:var(--fg-3); font-size:15px;
}
.drawer .drawer-shop svg{width:15px; height:15px; flex-shrink:0}
.drawer .drawer-shop i{
  font-style:normal; font-family:var(--f-mono); font-size:8.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); border:1px solid rgba(233,180,76,.4); border-radius:100px; padding:3px 8px; margin-left:auto;
}

/* ============ NAV ============ */
.nav{
  position:fixed; top:var(--top-h); left:0; right:0; z-index:1000; height:var(--nav-h);
  display:flex; align-items:center;
  background:linear-gradient(rgba(10,8,9,.88),rgba(10,8,9,.62));
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .3s ease, box-shadow .3s ease;
}
.nav.scrolled{background:rgba(10,8,9,.95); box-shadow:0 10px 34px rgba(0,0,0,.5)}
.nav-inner{max-width:var(--max); margin:0 auto; padding:0 var(--pad-x); width:100%; display:flex; align-items:center; gap:28px}
.brand{display:flex; align-items:center; gap:12px; flex-shrink:0}
.brand-logo{height:54px; width:auto; display:block; filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
@media(max-width:960px){ .brand-logo{height:46px} }
.nav-links{display:flex; align-items:center; gap:20px; margin-left:auto}
.nav-links a{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-3);
  padding:6px 2px; position:relative; transition:color .25s; white-space:nowrap;
}
.nav-links a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:linear-gradient(90deg,var(--accent),var(--gold)); transition:width .28s}
.nav-links a:hover,.nav-links a.active{color:var(--fg)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{margin-left:6px}
/* CTA buttons inside link lists: beat the link-color rules, kill the underline */
.nav-links a.btn-accent, .nav-links a.btn-accent:hover,
.drawer a.btn-accent, .drawer a.btn-accent:hover{color:#fff}
.nav-links a.btn-accent::after{display:none}
.nav-links a.btn-accent:hover{transform:translateY(-1px)}

/* Owner door — outlined portal button, far right of the nav */
.nav-links a.nav-portal,
.nav-links a.nav-portal:hover,
.nav-links a.nav-portal.active{
  display:inline-flex; align-items:center; justify-content:center;
  height:36px; padding:0 20px; margin-left:10px;
  background:rgba(24,17,10,.5); border:2px solid rgba(233,180,76,.62); border-radius:5px;
  color:#fdf3df; font-family:var(--f-mono); font-size:11px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; white-space:nowrap;
  box-shadow:0 0 8px rgba(233,180,76,.22);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease, transform .25s ease;
}
.nav-links a.nav-portal::after{display:none}
.nav-links a.nav-portal:hover{
  background:rgba(233,180,76,.12); border-color:var(--gold);
  box-shadow:0 0 16px rgba(233,180,76,.4); transform:translateY(-1px);
}
.nav-links a.nav-portal:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
@media(max-width:1180px){ .nav-links{gap:14px} .nav-links a{letter-spacing:.1em} .nav-links a.nav-portal{padding:0 12px; letter-spacing:.12em} .nav-links a.btn-accent{padding:13px 16px; letter-spacing:.12em} }
.cart-link{position:relative; display:inline-flex; align-items:center; gap:8px}
.cart-count{
  min-width:19px; height:19px; padding:0 5px; border-radius:10px;
  background:var(--accent); color:#fff; font-family:var(--f-mono); font-size:10.5px; font-weight:700;
  display:none; align-items:center; justify-content:center; line-height:1;
  box-shadow:0 0 12px var(--accent-glow);
}
.cart-count.on{display:inline-flex}
.burger{display:none; margin-left:auto; background:none; border:1px solid var(--line-strong); border-radius:7px; width:44px; height:40px; align-items:center; justify-content:center; flex-direction:column; gap:5px}
.burger span{display:block; width:20px; height:2px; background:var(--fg); transition:.3s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.drawer{
  position:fixed; top:calc(var(--top-h) + var(--nav-h)); left:0; right:0; z-index:999;
  background:rgba(12,10,11,.97); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  display:none; flex-direction:column; padding:18px var(--pad-x) 26px; gap:4px;
}
.drawer.open{display:flex}
.drawer a{font-family:var(--f-mono); font-size:13px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-2); padding:13px 4px; border-bottom:1px solid var(--line)}
.drawer a:last-child{border-bottom:none}
.drawer .btn-accent{margin-top:12px; justify-content:center}
@media(max-width:960px){ .nav-links{display:none} .burger{display:flex} }

/* ============ BUTTONS / CHIPS ============ */
.btn-accent,.btn-ghost{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  padding:15px 26px; border-radius:7px; transition:transform .25s, box-shadow .25s, background .25s, border-color .25s;
  border:1px solid transparent; line-height:1;
}
.btn-accent{background:linear-gradient(120deg,#d93641,#9d222b); color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.28); box-shadow:0 10px 30px rgba(232,64,74,.28)}
.btn-accent:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(232,64,74,.42)}
.btn-ghost{background:rgba(255,255,255,.03); border-color:var(--line-strong); color:var(--fg-2)}
.btn-ghost:hover{transform:translateY(-2px); border-color:var(--accent); color:var(--fg)}
.btn-gold{background:linear-gradient(120deg,var(--gold),var(--gold-deep)); color:#161007; box-shadow:0 10px 30px rgba(233,180,76,.25)}
.btn-gold:hover{transform:translateY(-2px)}
.chip{
  display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:100px;
  background:rgba(255,255,255,.035); border:1px solid var(--line);
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-3);
}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);flex-shrink:0}
.chip.gold i{background:var(--gold);box-shadow:0 0 8px var(--gold-glow)}

/* ============ HERO ============ */
.hero{
  min-height:calc(100svh);
  display:flex; align-items:flex-end; position:relative; overflow:hidden;
  padding:calc(var(--top-h) + var(--nav-h) + 60px) 0 74px;
}
.hero-bg{position:absolute; inset:0; z-index:-2}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:center 38%; filter:saturate(1.04) contrast(1.02)}
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,8,9,.72), rgba(10,8,9,.38) 34%, rgba(10,8,9,.62) 70%, var(--bg) 97%),
    linear-gradient(100deg, rgba(10,8,9,.86) 6%, rgba(10,8,9,.25) 55%, rgba(10,8,9,.55));
}
.hero-logo{width:min(300px,56vw); margin-bottom:26px; filter:drop-shadow(0 8px 30px rgba(0,0,0,.6))}
.hero h1{font-size:clamp(46px,8.6vw,116px); max-width:12ch}
.hero .sub{max-width:600px; margin:22px 0 30px; font-size:clamp(16px,1.9vw,19px); color:var(--fg-2)}
.hero .sub b{color:var(--fg)}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:30px}
.hero-chips{display:flex; gap:10px; flex-wrap:wrap}

/* ============ RIDGE DIVIDER ============ */
.ridge-div{display:flex; justify-content:center; padding:8px 0 0; opacity:.5}
.ridge-div svg{width:min(420px,70vw); height:auto}

/* ============ STAT STRIP ============ */
.stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr)}
.stat{padding:44px 20px; text-align:center; border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat .num{font-family:var(--f-disp); font-size:clamp(38px,4.6vw,58px); color:var(--fg); line-height:1}
.stat .num em{font-style:normal; color:var(--accent)}
.stat .lbl{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-3); margin-top:10px}
@media(max-width:820px){ .stats-grid{grid-template-columns:1fr 1fr} .stat:nth-child(3){border-left:none} .stat{padding:30px 12px} }

/* ============ MARQUEE ============ */
.marquee-sec{padding:34px 0; border-bottom:1px solid var(--line); overflow:hidden}
.marquee{display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex; align-items:center; gap:64px; padding-right:64px; white-space:nowrap; animation:mq 30s linear infinite; flex-shrink:0}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-100%)}}
.mq-item{font-family:var(--f-disp); font-size:21px; letter-spacing:2.5px; color:var(--fg-4); text-transform:uppercase; transition:color .3s}
.mq-item:hover{color:var(--gold)}
.mq-zia{color:var(--accent); font-size:16px}

/* ============ SECTION SHELL ============ */
.sec{padding:104px 0}
.sec-head{max-width:720px; margin-bottom:56px}
.sec-head h2{font-size:clamp(34px,5.6vw,60px); margin-bottom:16px}
.sec-head p{color:var(--fg-3); font-size:17px}
.sec-head.center{margin-left:auto; margin-right:auto; text-align:center}
.sec-head.center .eyebrow{justify-content:center}

/* ============ SERVICES GRID ============ */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.svc{
  background:linear-gradient(165deg,var(--bg-2),var(--bg-1)); border:1px solid var(--line); border-radius:9px;
  padding:30px 26px 28px; position:relative; overflow:hidden;
  transition:transform .3s, border-color .3s, box-shadow .3s;
}
.svc::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,var(--accent),var(--gold)); opacity:0; transition:opacity .3s}
.svc:hover{transform:translateY(-4px); border-color:var(--line-strong); box-shadow:0 22px 44px rgba(0,0,0,.45)}
.svc:hover::before{opacity:1}
.svc-icon{
  width:52px; height:52px; border:1px solid var(--line-strong); border-radius:9px;
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
  background:linear-gradient(160deg,rgba(232,64,74,.10),transparent);
}
.svc-icon svg{width:26px; height:26px; stroke:var(--accent-2); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.svc h3{font-size:19px; letter-spacing:1.2px; margin-bottom:10px}
.svc p{font-size:14.5px; color:var(--fg-3); line-height:1.65}
.svc .tag{margin-top:16px; display:inline-block; font-family:var(--f-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold)}
@media(max-width:960px){ .svc-grid{grid-template-columns:1fr 1fr} }
@media(max-width:640px){ .svc-grid{grid-template-columns:1fr} }

/* ============ SPLIT FEATURE ============ */
.split{display:grid; grid-template-columns:1.05fr 1fr; gap:60px; align-items:center}
.split-media{position:relative; border-radius:10px; overflow:hidden; border:1px solid var(--line-strong)}
.split-media img{width:100%; height:100%; object-fit:cover; transition:transform .6s}
.split-media:hover img{transform:scale(1.03)}
.badge-float{
  position:absolute; right:18px; bottom:18px; background:linear-gradient(135deg,#d93641,#9d222b);
  color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.28); border-radius:9px; padding:14px 18px; text-align:center; box-shadow:0 14px 34px rgba(232,64,74,.4);
}
.badge-float .b-num{font-family:var(--f-disp); font-size:26px; line-height:1}
.badge-float .b-lbl{font-family:var(--f-mono); font-size:9px; letter-spacing:.18em; text-transform:uppercase; margin-top:4px; opacity:.92}
.split-copy h2{font-size:clamp(30px,4.4vw,50px); margin-bottom:18px}
.split-copy>p{color:var(--fg-3); margin-bottom:22px}
.quote{
  border-left:2px solid var(--gold); padding:6px 0 6px 18px; margin:22px 0;
  color:var(--fg-2); font-size:16.5px; font-style:italic;
}
.quote .who{display:block; margin-top:8px; font-style:normal; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--fg-3)}
.checks{list-style:none; display:flex; flex-direction:column; gap:12px; margin-top:6px}
.checks li{display:flex; gap:12px; align-items:flex-start; color:var(--fg-2); font-size:15.5px}
.checks svg{width:19px; height:19px; flex-shrink:0; margin-top:3px; stroke:var(--gold); fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round}
@media(max-width:920px){ .split{grid-template-columns:1fr; gap:34px} }

/* ============ HOW IT WORKS ============ */
.how-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; counter-reset:step}
.how{
  border:1px solid var(--line); border-radius:9px; padding:28px 22px;
  background:linear-gradient(170deg,var(--bg-2),transparent); position:relative; transition:transform .3s,border-color .3s;
}
.how:hover{transform:translateY(-4px); border-color:var(--line-strong)}
.how .n{font-family:var(--f-disp); font-size:44px; color:transparent; -webkit-text-stroke:1px var(--accent); line-height:1; margin-bottom:14px}
.how h3{font-size:16.5px; letter-spacing:1.2px; margin-bottom:8px}
.how p{font-size:14px; color:var(--fg-3); line-height:1.6}
@media(max-width:920px){ .how-grid{grid-template-columns:1fr 1fr} }
@media(max-width:560px){ .how-grid{grid-template-columns:1fr} }

/* ============ GALLERY ============ */
.gal{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:12px}
.gal a{position:relative; border-radius:8px; overflow:hidden; border:1px solid var(--line); display:block}
.gal a:first-child{grid-column:span 2; grid-row:span 2}
.gal a.wide{grid-column:span 2}
.gal img{width:100%; height:100%; object-fit:cover; transition:transform .55s}
.gal a::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(10,8,9,.72)); opacity:0; transition:opacity .35s}
.gal a:hover img{transform:scale(1.06)}
.gal a:hover::after{opacity:1}
.gal .cap{
  position:absolute; left:14px; bottom:12px; z-index:2; opacity:0; transform:translateY(6px);
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#fff; transition:.35s;
}
.gal a:hover .cap{opacity:1; transform:none}
@media(max-width:860px){ .gal{grid-template-columns:1fr 1fr; grid-auto-rows:170px} }

/* ============ COMMUNITY BAND ============ */
.band{position:relative; padding:130px 0; overflow:hidden}
.band-bg{position:absolute; inset:0; z-index:-1}
.band-bg img{width:100%; height:100%; object-fit:cover; object-position:center 30%}
.band-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,8,9,.94) 22%,rgba(10,8,9,.55) 65%,rgba(10,8,9,.85))}
.band h2{font-size:clamp(32px,5vw,56px); max-width:13ch; margin-bottom:18px}
.band p{max-width:520px; color:var(--fg-2); margin-bottom:26px}
.band .pills{display:flex; gap:10px; flex-wrap:wrap}

/* ============ CTA BAND ============ */
.cta-band{position:relative; padding:120px 0; text-align:center; overflow:hidden; border-top:1px solid var(--line)}
/* pointer-events:none is load-bearing: .wrap below is static, so this absolutely-positioned
   glow paints ON TOP of the CTA buttons and was eating every click on them. */
.cta-band::before{content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(640px 340px at 50% 20%, rgba(232,64,74,.16), transparent 65%)}
.cta-band h2{font-size:clamp(36px,6vw,68px); margin-bottom:14px}
.cta-band .script-line{font-family:var(--f-script); font-size:clamp(26px,3.6vw,40px); color:var(--gold); display:block; margin-bottom:26px}
.cta-phone{
  display:inline-block; font-family:var(--f-disp); font-size:clamp(30px,5.4vw,54px); color:var(--fg);
  letter-spacing:2px; margin:6px 0 28px; transition:color .3s, text-shadow .3s;
}
.cta-phone:hover{color:var(--accent-2); text-shadow:0 0 34px var(--accent-glow)}
.cta-band .row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}

/* ============ CONTACT ============ */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px}
.c-rows{display:flex; flex-direction:column; gap:6px}
.c-row{display:flex; gap:16px; padding:18px 4px; border-bottom:1px solid var(--line); align-items:flex-start; transition:background .25s}
.c-row:hover{background:rgba(255,255,255,.015)}
.c-ic{width:44px; height:44px; border:1px solid var(--line-strong); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:linear-gradient(160deg,rgba(232,64,74,.10),transparent)}
.c-ic svg{width:20px; height:20px; stroke:var(--accent-2); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.c-row .k{font-family:var(--f-mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-4); margin-bottom:4px}
.c-row .v{color:var(--fg); font-size:16.5px}
.c-row .v a:hover{color:var(--accent-2)}
.c-row .s{font-size:13px; color:var(--fg-3); margin-top:3px}

/* form */
.form{display:flex; flex-direction:column; gap:14px}
.f-row{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.f-field{display:flex; flex-direction:column; gap:7px}
.f-field label{font-family:var(--f-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--fg-3)}
.f-field label em{color:var(--accent); font-style:normal}
input[type=text],input[type=tel],input[type=email],input[type=date],select,textarea{
  background:var(--bg-2); border:1px solid var(--line-strong); border-radius:7px; color:var(--fg);
  padding:13px 14px; font-size:15px; outline:none; transition:border-color .25s, box-shadow .25s; width:100%;
}
input:focus,select:focus,textarea:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(232,64,74,.15)}
textarea{resize:vertical; min-height:96px}
@media(max-width:920px){ .contact-grid{grid-template-columns:1fr} .f-row{grid-template-columns:1fr} }

/* ============ FOOTER ============ */
footer{border-top:1px solid var(--line); padding:64px 0 34px; background:linear-gradient(180deg,transparent,rgba(0,0,0,.32)); position:relative; z-index:2}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:44px; margin-bottom:44px}
.foot-brand img{width:210px; margin-bottom:16px}
.foot-brand p{font-size:14px; color:var(--fg-3); max-width:340px}
.foot h4{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--fg-4); margin-bottom:16px; font-weight:600}
.foot ul{list-style:none; display:flex; flex-direction:column; gap:10px}
.foot ul a{color:var(--fg-3); font-size:14.5px; transition:color .25s}
.foot ul a:hover{color:var(--accent-2)}
.foot-bottom{border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap}
.foot-bottom p{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; color:var(--fg-4); text-transform:uppercase}
.cc-mark{display:inline-flex; align-items:center; gap:8px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-4); transition:color .3s}
.cc-mark:hover{color:#39d353}
.cc-mark .b{color:#39d353}
@media(max-width:860px){ .foot-grid{grid-template-columns:1fr; gap:30px} }

/* ============ STICKY MOBILE BAR ============ */
.mob-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:1002; display:none;
  grid-template-columns:auto auto 1fr; gap:1px; background:var(--line-strong);
  border-top:1px solid var(--line-strong);
}
.mob-bar a{
  display:flex; align-items:center; justify-content:center; gap:8px; padding:15px 16px;
  font-family:var(--f-mono); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.mob-bar .m-call{background:#131013; color:var(--fg)}
.mob-bar .m-design{background:linear-gradient(120deg,#d93641,#9d222b); color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.28)}
@media(max-width:760px){ .mob-bar{display:grid} body{padding-bottom:52px} }

/* ============ REVEAL ============ */
.rv{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.22,.7,.3,1), transform .8s cubic-bezier(.22,.7,.3,1)}
.rv.in{opacity:1; transform:none}
.rv[data-d="1"]{transition-delay:.09s}.rv[data-d="2"]{transition-delay:.18s}.rv[data-d="3"]{transition-delay:.27s}.rv[data-d="4"]{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){
  /* Reveal-on-scroll must not leave content stuck invisible when motion is off. */
  .rv{opacity:1; transform:none; transition:none}
  .marquee-track{animation:none}
  /* Neutralise every decorative animation/transition (readyPulse's infinite loop, mockIn,
     artIn, count-ups) in one place so nothing new slips past this guard either. */
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ============================================================
   DESIGN STUDIO
   ============================================================ */
.studio-page{padding:calc(var(--top-h) + var(--nav-h) + 46px) 0 90px}
.studio-page .wrap{max-width:1420px}
.studio-head{margin-bottom:38px}
.studio-head h1{font-size:clamp(34px,5.4vw,58px)}
.studio-head p{color:var(--fg-3); max-width:640px; margin-top:12px}
.studio{display:grid; grid-template-columns:1.12fr .92fr; gap:clamp(26px,3vw,46px); align-items:start}

/* stage */
.stage-wrap{position:sticky; top:calc(var(--top-h) + var(--nav-h) + 18px)}
.stage{
  position:relative; border:1px solid var(--line-strong); border-radius:14px 14px 0 0; overflow:hidden;
  background:
    radial-gradient(78% 60% at 50% 34%, rgba(232,64,74,.14), transparent 70%),
    radial-gradient(60% 40% at 50% 100%, rgba(233,180,76,.05), transparent 70%),
    linear-gradient(172deg,#221a1e, #131015 52%, #0d0b0d);
  display:flex; align-items:center; justify-content:center;
  padding:clamp(30px,3.6vw,54px) clamp(24px,3vw,48px) clamp(36px,4vw,60px);
  min-height:540px;
}
.stage::before{content:""; position:absolute; inset:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34'%3E%3Cpath d='M0 33.5h34M33.5 0v34' stroke='rgba(255,255,255,.03)'/%3E%3C/svg%3E")}
.stage::after{content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; box-shadow:inset 0 0 130px rgba(0,0,0,.55)}
.stage-hud{position:absolute; top:16px; left:16px; right:16px; display:flex; justify-content:space-between; gap:10px; z-index:5; pointer-events:none}
.hud-chip{
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--fg-3);
  background:rgba(10,8,9,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid var(--line); border-radius:100px; padding:8px 14px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.hud-chip b{color:var(--fg); font-weight:700}
.hud-chip .gold{color:var(--gold)}

/* photoreal garment mockup — layered: color tint → art → shade(multiply) → light(screen) */
.mock{
  position:relative; width:min(80%,560px); isolation:isolate; z-index:1;
  filter:drop-shadow(0 30px 50px rgba(0,0,0,.62));
}
.mock.pop{animation:mockIn .38s cubic-bezier(.22,.7,.3,1)}
@keyframes mockIn{from{opacity:.15; transform:scale(.96) translateY(8px)}}
.mock-floor{
  position:absolute; left:10%; right:10%; bottom:-30px; height:44px; z-index:0; pointer-events:none;
  background:radial-gradient(50% 100% at 50% 0%, rgba(0,0,0,.5), transparent 72%);
  filter:blur(8px);
}
.m-color{
  position:absolute; inset:0; z-index:1; background:#f2f1ed; pointer-events:none;
  -webkit-mask:var(--mock-img) center / contain no-repeat;
  mask:var(--mock-img) center / contain no-repeat;
  transition:background .3s;
}
.m-shade{
  position:relative; display:block; width:100%; height:auto; z-index:3;
  mix-blend-mode:multiply; filter:grayscale(1) contrast(1.1); pointer-events:none;
}
.m-light{
  position:absolute; inset:0; z-index:4; width:100%; height:100%; object-fit:contain;
  mix-blend-mode:screen; filter:grayscale(1) brightness(.67) contrast(3);
  opacity:var(--light-op,.08); pointer-events:none;
}
.art-clip{
  position:absolute; inset:0; z-index:2;
  -webkit-mask:var(--mock-img) center / contain no-repeat;
  mask:var(--mock-img) center / contain no-repeat;
}
.print-zone{
  position:absolute; z-index:2; border:1.5px dashed transparent; border-radius:4px;
  display:flex; align-items:center; justify-content:center; transition:border-color .25s;
  touch-action:none;
}
.stage.guides .print-zone{border-color:rgba(233,180,76,.5)}
.print-zone .zone-tag{
  position:absolute; top:-22px; left:50%; transform:translateX(-50%); white-space:nowrap;
  font-family:var(--f-mono); font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  opacity:0; transition:opacity .25s;
}
.stage.guides .print-zone .zone-tag{opacity:.9}
.art-layer{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; cursor:grab}
.art-layer:active{cursor:grabbing}
.art-layer.pop{animation:artIn .32s ease-out}
@keyframes artIn{from{opacity:0}}
.art-layer img{max-width:100%; max-height:100%; object-fit:contain; pointer-events:none; filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.zone-empty{
  display:none; flex-direction:column; align-items:center; justify-content:center; gap:9px;
  color:rgba(233,180,76,.8); font-family:var(--f-mono); font-size:9.5px; letter-spacing:.22em;
  text-transform:uppercase; text-align:center; pointer-events:none; line-height:1.7;
}
.zone-empty svg{width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; opacity:.9}
.stage.no-art .print-zone{border-color:rgba(233,180,76,.4)}
.stage.no-art .zone-empty{display:flex}
.art-text{position:absolute; left:0; right:0; text-align:center; pointer-events:none; line-height:1.05; font-weight:700; white-space:nowrap}
.stage-bar{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  border:1px solid var(--line-strong); border-top:none; border-radius:0 0 14px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,.008)), var(--bg-1);
  padding:13px 18px;
}
.stage-bar .tool{
  font-family:var(--f-mono); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  background:rgba(255,255,255,.03); color:var(--fg-3); border:1px solid var(--line-strong); border-radius:7px; padding:9px 13px; transition:.25s;
}
.stage-bar .tool:hover{color:var(--fg); border-color:var(--accent); transform:translateY(-1px)}
.scale-row{display:flex; align-items:center; gap:12px; flex:1; min-width:190px}
.scale-row label{font-family:var(--f-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--fg-4)}
input[type=range]{-webkit-appearance:none; appearance:none; flex:1; height:3px; background:var(--bg-3); border-radius:2px; outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:17px; height:17px; border-radius:50%; background:var(--accent); box-shadow:0 0 12px var(--accent-glow); cursor:pointer; border:2px solid #fff2}
input[type=range]::-moz-range-thumb{width:17px; height:17px; border-radius:50%; background:var(--accent); border:none; cursor:pointer}

/* panel */
.panel{display:flex; flex-direction:column; gap:16px}
.step{
  border:1px solid var(--line); border-radius:11px; padding:22px 22px 24px;
  background:linear-gradient(170deg,var(--bg-2),var(--bg-1));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.step-h{display:flex; align-items:center; gap:14px; margin-bottom:18px}
.step-n{
  width:30px; height:30px; border-radius:7px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-disp); font-size:15px; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-deep));
  box-shadow:0 6px 16px rgba(232,64,74,.32); transition:background .3s, box-shadow .3s;
}
.step-n.done{background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#171007; box-shadow:0 6px 16px rgba(233,180,76,.3)}
.btn-accent.ready{animation:readyPulse 2.2s ease-in-out infinite}
@keyframes readyPulse{50%{box-shadow:0 14px 44px rgba(232,64,74,.6)}}
.step-h h3{font-size:16px; letter-spacing:1.4px}
.step-h .opt{margin-left:auto; font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em; color:var(--fg-4); text-transform:uppercase}

/* product cards — real product thumbs */
.prod-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.prod{
  border:1px solid var(--line-strong); border-radius:10px; padding:14px 10px 13px;
  background:radial-gradient(90% 70% at 50% 20%, rgba(255,255,255,.045), transparent 70%), var(--bg-1);
  display:flex; flex-direction:column; align-items:center; gap:9px; transition:.25s; position:relative;
}
.prod .p-img{width:100%; height:78px; object-fit:contain; filter:drop-shadow(0 8px 14px rgba(0,0,0,.55)); transition:transform .3s}
.prod .p-name{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-2)}
.prod .p-price{font-family:var(--f-mono); font-size:10px; color:var(--fg-4); letter-spacing:.1em}
.prod:hover{border-color:var(--accent); transform:translateY(-2px)}
.prod:hover .p-img{transform:scale(1.06)}
.prod.sel{border-color:var(--accent); background:radial-gradient(90% 70% at 50% 20%, rgba(232,64,74,.16), transparent 75%), var(--bg-1); box-shadow:0 0 0 1px var(--accent), 0 12px 28px rgba(232,64,74,.18)}
.prod.sel .p-price{color:var(--accent-2)}
@media(max-width:460px){ .prod .p-img{height:60px} }

/* swatches */
.swatches{display:flex; gap:10px; flex-wrap:wrap}
.sw{
  width:38px; height:38px; border-radius:50%; border:2px solid var(--line-strong); position:relative; transition:.2s;
  box-shadow:inset 0 -6px 12px rgba(0,0,0,.25);
}
.sw:hover{transform:scale(1.1)}
.sw.sel{border-color:var(--gold); box-shadow:0 0 0 3px rgba(233,180,76,.25), inset 0 -6px 12px rgba(0,0,0,.25)}
.sw .sw-tip{
  position:absolute; bottom:calc(100% + 7px); left:50%; transform:translateX(-50%); white-space:nowrap;
  background:#000; border:1px solid var(--line-strong); border-radius:5px; padding:3px 8px;
  font-family:var(--f-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-2);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.sw:hover .sw-tip{opacity:1}

/* upload */
.drop{
  display:block;
  border:1.5px dashed var(--line-strong); border-radius:9px; padding:17px 18px; text-align:center;
  color:var(--fg-3); transition:.25s; cursor:pointer; background:rgba(255,255,255,.015);
}
.drop:hover,.drop.over{border-color:var(--accent); color:var(--fg-2); background:rgba(232,64,74,.05)}
.drop svg{display:block; width:24px; height:24px; stroke:var(--accent-2); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; margin:0 auto 7px}
.sample-row{display:flex; align-items:center; gap:10px; margin-top:12px}
.sample-btn{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--f-mono); font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(233,180,76,.08); border:1px solid rgba(233,180,76,.4); color:var(--gold);
  border-radius:7px; padding:12px 14px; transition:.25s;
}
.sample-btn:hover{background:rgba(233,180,76,.16); transform:translateY(-1px)}
.drop .d-main{font-size:14.5px; color:var(--fg-2)}
.drop .d-sub{font-family:var(--f-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; margin-top:6px; color:var(--fg-4)}
.drop input{display:none}
.art-meta{display:none; align-items:center; gap:12px; margin-top:12px; background:var(--bg-1); border:1px solid var(--line); border-radius:8px; padding:10px 12px}
.art-meta.on{display:flex}
.art-meta img{width:42px; height:42px; object-fit:contain; background:#fff1; border-radius:6px; padding:3px}
.art-meta .am-name{font-size:13px; color:var(--fg-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px}
.art-meta button{margin-left:auto; background:none; border:none; color:var(--fg-4); font-size:17px; transition:color .2s}
.art-meta button:hover{color:var(--accent)}
.help-toggle{display:flex; align-items:flex-start; gap:11px; margin-top:14px; cursor:pointer; user-select:none}
.help-toggle input{display:none}
.tick{width:20px; height:20px; border:1.5px solid var(--line-strong); border-radius:5px; flex-shrink:0; margin-top:2px; display:flex; align-items:center; justify-content:center; transition:.2s}
.tick svg{width:12px; height:12px; stroke:#fff; fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; opacity:0; transition:.2s}
.help-toggle input:checked + .tick{background:var(--accent); border-color:var(--accent)}
.help-toggle input:checked + .tick svg{opacity:1}
.help-toggle .ht-copy b{color:var(--fg); font-weight:600; font-size:14.5px}
.help-toggle .ht-copy span{display:block; font-size:12.5px; color:var(--fg-3); margin-top:2px}

/* text add-on */
.text-row{display:grid; grid-template-columns:1.6fr 1fr; gap:10px}
.text-row + .text-row{margin-top:10px}
.font-pick{display:flex; gap:8px}
.font-pick button{flex:1; background:var(--bg-1); border:1px solid var(--line-strong); border-radius:7px; color:var(--fg-3); padding:10px 6px; font-size:13px; transition:.2s}
.font-pick button.sel{border-color:var(--gold); color:var(--fg); box-shadow:0 0 0 2px rgba(233,180,76,.18)}
.font-pick .fp-block{font-family:var(--f-disp); letter-spacing:1px}
.font-pick .fp-script{font-family:var(--f-script); font-size:16px}
.ink-dots{display:flex; gap:8px; align-items:center}
.ink{width:26px; height:26px; border-radius:50%; border:2px solid var(--line-strong); transition:.2s}
.ink.sel{border-color:var(--gold); box-shadow:0 0 0 3px rgba(233,180,76,.22)}

/* placement */
.place-chips{display:flex; gap:9px; flex-wrap:wrap}
.pc{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  background:var(--bg-1); border:1px solid var(--line-strong); color:var(--fg-3); border-radius:100px; padding:10px 16px; transition:.2s;
}
.pc:hover{color:var(--fg)}
.pc.sel{background:linear-gradient(120deg,#d93641,#9d222b); border-color:transparent; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.28); box-shadow:0 6px 18px rgba(232,64,74,.3)}

/* sizes — two stacked rows per cell: size + stock tag on top, full-width stepper below.
   (The old single-row layout absolutely-positioned the stock tag over the stepper.) */
.size-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.size-cell{border:1px solid var(--line-strong); border-radius:8px; background:var(--bg-1); padding:11px 12px 12px; display:flex; flex-direction:column; gap:9px}
.size-cell .sc-top{display:flex; align-items:baseline; justify-content:space-between; gap:8px; min-height:16px}
.size-cell .sz{font-family:var(--f-mono); font-size:12.5px; letter-spacing:.1em; color:var(--fg); font-weight:600; white-space:nowrap}
.size-cell .up{font-family:var(--f-mono); font-size:8.5px; color:var(--gold); letter-spacing:.06em}
.stepper{display:flex; align-items:center; justify-content:space-between; gap:8px}
.stepper button{width:30px; height:30px; border-radius:6px; border:1px solid var(--line-strong); background:none; color:var(--fg-2); font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center; transition:.2s}
.stepper button:hover{border-color:var(--accent); color:var(--fg)}
.stepper button:disabled{opacity:.35; cursor:not-allowed}
.stepper .q{font-family:var(--f-mono); font-size:14px; min-width:22px; text-align:center; color:var(--fg)}
.size-cell.has{border-color:var(--accent); background:linear-gradient(160deg,rgba(232,64,74,.10),var(--bg-1))}
@media(max-width:520px){ .size-grid{grid-template-columns:1fr 1fr} }

/* summary bar */
.sum{
  border:1px solid var(--line-strong); border-radius:10px; overflow:hidden;
  background:linear-gradient(165deg,#1b1215,var(--bg-1));
}
.sum-rows{padding:20px 22px; display:flex; flex-direction:column; gap:9px}
.sum-row{display:flex; justify-content:space-between; font-size:14px; color:var(--fg-3)}
.sum-row b{color:var(--fg-2); font-weight:600}
.sum-row.tot{border-top:1px solid var(--line); padding-top:12px; margin-top:4px; font-size:15px}
.sum-row.tot .amt{font-family:var(--f-disp); font-size:26px; color:var(--fg)}
.sum-note{font-size:11.5px; color:var(--fg-4); padding:0 22px 16px; font-family:var(--f-mono); letter-spacing:.06em}
.sum-cta{display:flex; gap:10px; padding:0 22px 22px}
.sum-cta .btn-accent{flex:1; justify-content:center}
.toast{
  position:fixed; bottom:78px; left:50%; transform:translate(-50%,20px); z-index:1300; opacity:0; pointer-events:none;
  background:#101010; border:1px solid var(--accent); color:var(--fg); border-radius:9px; padding:14px 22px;
  font-family:var(--f-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  box-shadow:0 16px 44px rgba(232,64,74,.3); transition:.35s;
}
.toast.on{opacity:1; transform:translate(-50%,0)}

@media(max-width:980px){
  .studio{grid-template-columns:1fr}
  .stage-wrap{position:relative; top:0}
}
@media(max-width:640px){
  .stage{min-height:400px; padding:22px 16px 30px}
  .mock{width:min(88%,420px)}
  .stage-hud{top:10px; left:10px; right:10px}
  .hud-chip{font-size:8.5px; padding:6px 10px}
}

/* ============================================================
   ORDER PAGE
   ============================================================ */
.order-page{padding:calc(var(--top-h) + var(--nav-h) + 46px) 0 90px}
.order-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:34px; align-items:start}
.cart-list{display:flex; flex-direction:column; gap:14px}
.cart-item{
  display:grid; grid-template-columns:96px 1fr auto; gap:18px; align-items:center;
  border:1px solid var(--line); border-radius:10px; padding:16px; background:linear-gradient(170deg,var(--bg-2),var(--bg-1));
}
.ci-thumb{
  width:96px; height:96px; border-radius:8px; border:1px solid var(--line); overflow:hidden; position:relative;
  display:flex; align-items:center; justify-content:center;
}
.ci-thumb .swatch-bg{position:absolute; inset:0}
.ci-thumb img{position:relative; max-width:70%; max-height:70%; object-fit:contain; filter:drop-shadow(0 2px 5px rgba(0,0,0,.4))}
.ci-thumb .ci-txt{position:relative; font-size:11px; font-weight:700; text-align:center; line-height:1.1; padding:4px}
.ci-body h3{font-size:16px; letter-spacing:1px; margin-bottom:6px}
.ci-body .ci-meta{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; color:var(--fg-3); text-transform:uppercase; display:flex; flex-wrap:wrap; gap:6px 14px}
.ci-body .ci-note{font-size:12.5px; color:var(--fg-4); margin-top:6px; font-style:italic}
.ci-right{text-align:right; display:flex; flex-direction:column; gap:8px; align-items:flex-end}
.ci-right .ci-price{font-family:var(--f-disp); font-size:21px; color:var(--fg)}
.ci-right button{background:none; border:none; color:var(--fg-4); font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; transition:color .2s}
.ci-right button:hover{color:var(--accent)}
.cart-empty{
  border:1.5px dashed var(--line-strong); border-radius:10px; padding:60px 30px; text-align:center; color:var(--fg-3);
}
.cart-empty .disp{font-size:22px; letter-spacing:1.6px; margin-bottom:10px}
.order-side{position:sticky; top:calc(var(--top-h) + var(--nav-h) + 18px)}
.order-form{border:1px solid var(--line-strong); border-radius:10px; padding:26px; background:linear-gradient(165deg,#171013,var(--bg-1))}
.order-form h2{font-size:22px; letter-spacing:1.6px; margin-bottom:20px}
.pill-pick{display:flex; gap:9px}
.pill-pick .pc{flex:1; text-align:center; justify-content:center; display:inline-flex}
.ok-panel{border:1px solid var(--gold); border-radius:10px; padding:36px 30px; text-align:center; background:radial-gradient(420px 220px at 50% 0%, rgba(233,180,76,.12), transparent 70%), var(--bg-1)}
.ok-panel .ok-ic{width:64px; height:64px; margin:0 auto 18px; border-radius:50%; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; box-shadow:0 0 34px var(--gold-glow)}
.ok-panel .ok-ic svg{width:30px; height:30px; stroke:var(--gold); fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round}
.ok-panel h2{font-size:clamp(24px,4vw,34px); margin-bottom:8px}
.ok-panel .ord-no{font-family:var(--f-mono); font-size:13px; letter-spacing:.2em; color:var(--gold); margin-bottom:16px}
.ok-panel p{color:var(--fg-3); font-size:15px; max-width:440px; margin:0 auto 8px}
.ok-panel .row{display:flex; gap:12px; justify-content:center; margin-top:22px; flex-wrap:wrap}
.err{color:var(--accent-2); font-size:12.5px; font-family:var(--f-mono); letter-spacing:.08em; display:none; margin-top:4px}
.err.on{display:block}
@media(max-width:980px){ .order-grid{grid-template-columns:1fr} .order-side{position:relative; top:0} }
/* Skip-to-content link — hidden until keyboard-focused (injected by components.js) */
.skip-link{position:fixed; top:8px; left:8px; z-index:2000; transform:translateY(-160%); background:var(--gold,#e9b44c); color:#151216; padding:10px 16px; border-radius:8px; font:600 13px/1 var(--f-mono,monospace); letter-spacing:.06em; text-decoration:none; transition:transform .18s ease}
.skip-link:focus{transform:translateY(0); outline:2px solid #151216; outline-offset:2px}
