:root{
  --ink:#232a38; --muted:#6b7280; --line:#e6e7eb; --bg:#f6f6f6; --card:#fff;
  --accent:#d9475c; --accent-dk:#b93549; --accent-soft:#fdecef; --good:#3aa872; --good-soft:#eaf7f0;
  --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
img{display:block;max-width:100%}

.page{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;padding:28px 24px 140px}

/* ---------- visual ---------- */
.visual{position:relative}
.vis-inner{position:sticky;top:24px}
.vis-card{position:relative;border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(20,24,35,.10);aspect-ratio:3/2}
.vis-card .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease-in-out}
.vis-card .slide.on{opacity:1}
.vis-card .slide img{width:100%;height:100%;object-fit:cover}
.vis-card.product{aspect-ratio:1/1;max-width:560px;margin:0 auto;background:#f4f4f4}
.prod-wrap{position:absolute;inset:0}
.prod-wrap img,.prod-wrap svg{position:absolute;inset:0;width:100%;height:100%}
.prod-wrap svg.print{mix-blend-mode:normal}
.vis-tabs{position:absolute;top:14px;left:14px;display:flex;background:#fff;border-radius:999px;padding:4px;box-shadow:0 2px 8px rgba(0,0,0,.08);z-index:3}
.vis-tabs button{border:0;background:none;padding:6px 16px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer;color:var(--muted)}
.vis-tabs button.on{background:var(--ink);color:#fff}
.vis-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:0 12px;z-index:3}
.dot{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.18);cursor:pointer;padding:0}
.dot.on{box-shadow:0 0 0 2px var(--ink)}
.vis-caption{display:flex;gap:18px;justify-content:center;margin-top:16px;color:var(--muted);font-size:13.5px;text-align:center;flex-wrap:wrap}
.vis-caption b{color:var(--ink);font-weight:600}
.spec{background:#fff;border-radius:6px;box-shadow:0 10px 30px rgba(20,24,35,.08);padding:18px 22px;margin-top:16px;display:grid;grid-template-columns:auto 1fr 1fr;gap:6px 22px;align-items:center}
.spec h3{margin:0;font-size:22px;grid-row:span 2}
.spec small{display:block;color:var(--muted);font-size:11.5px;letter-spacing:.8px;text-transform:uppercase}
.spec .meta{display:flex;gap:18px;grid-column:1/-1;color:var(--muted);font-size:13.5px;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}

/* ---------- intro ---------- */
.intro h1{font-size:34px;line-height:1.1;margin:6px 0 6px;font-weight:700;letter-spacing:-.3px}
.intro h2{font-size:28px;line-height:1.15;margin:0 0 16px;color:var(--accent);font-weight:700}
.badge{display:inline-block;background:var(--accent);color:#fff;padding:6px 12px;font-size:14px;transform:rotate(-2deg);box-shadow:0 3px 0 var(--accent-dk)}
.badge b{font-weight:700}

/* ---------- sections ---------- */
.sec{padding:30px 0 6px;transition:opacity .3s ease}
.sec.locked{opacity:.28;pointer-events:none}
.sec h2{font-size:22px;margin:0 0 4px;font-weight:600;line-height:1.2}
.sec h2 em{font-style:normal;color:#a3a7b0;font-weight:600}
.sec .sub{color:var(--muted);margin:0 0 12px;font-size:14px}
.note{font-size:13px;color:var(--muted);margin-top:8px}
.note b{color:var(--ink)}
.note a{color:var(--accent)}
.tiles{display:grid;gap:0;background:#fff;border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;margin-top:12px}
.tiles.c2{grid-template-columns:1fr 1fr}.tiles.c5{grid-template-columns:repeat(5,1fr)}.tiles.c2x2{grid-template-columns:1fr 1fr}
.tile{border:0;background:#fff;padding:16px 8px;cursor:pointer;font-size:14.5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;transition:background .15s}
.tile:hover{background:#fafafa}
.tile.sel{background:var(--good-soft);box-shadow:inset 0 0 0 1.5px var(--good);z-index:1}
.field{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;width:100%;margin-top:12px;font-size:15px}
.field:focus{outline:none;border-color:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
select.field{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23232a38' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center}
label.lbl{display:block;font-size:13.5px;font-weight:500;margin-top:14px}
label.lbl + .field{margin-top:6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}

/* style carousel */
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 2px 10px;margin:0 -2px}
.carousel::-webkit-scrollbar{height:6px}.carousel::-webkit-scrollbar-thumb{background:#d6d8dd;border-radius:9px}
.scard{flex:0 0 205px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;cursor:pointer;text-align:left;position:relative;transition:box-shadow .15s,border-color .15s}
.scard:hover{border-color:#cfd3da}
.scard.sel{border-color:var(--good);box-shadow:0 0 0 1.5px var(--good)}
.scard .ph{aspect-ratio:1/1;background:#f4f4f4;border-radius:7px;overflow:hidden;position:relative}
.scard .ph img{width:100%;height:100%;object-fit:cover}
.scard h4{margin:10px 0 2px;font-size:16px}
.scard .m{font-size:13px;color:var(--muted)}
.scard .pr{font-weight:600;font-size:14px;margin-top:2px}
.scard .cc{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;color:var(--accent);font-weight:600;background:none;border:0;padding:0;cursor:pointer}
.chips{display:flex;gap:3px}
.chips i{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.2);display:block}
.flag{position:absolute;top:8px;left:8px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:3px 7px;border-radius:4px;z-index:1}
.tick{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--good);color:#fff;font-size:13px;display:none;place-items:center;z-index:2}
.sel>.tick{display:grid}

/* option cards (front/back/extras) */
.opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.opt{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;text-align:left;cursor:pointer;position:relative;display:flex;flex-direction:column}
.opt:hover{border-color:#cfd3da}
.opt.sel{border-color:var(--good);box-shadow:0 0 0 1.5px var(--good)}
.opt .ph{aspect-ratio:1/1;background:#f4f4f4;border-radius:7px;overflow:hidden;position:relative;margin-bottom:8px}
.opt .ph img,.opt .ph svg{position:absolute;inset:0;width:100%;height:100%}
.opt .ph .none{position:absolute;inset:0;display:grid;place-items:center;color:#9aa0aa;font-size:40px}
.opt h4{margin:0;font-size:15px}
.opt .m{font-size:12.5px;color:var(--muted)}
.choose{margin-top:8px;align-self:flex-start;border:1px solid var(--ink);background:#fff;border-radius:6px;padding:5px 10px;font-size:12.5px;font-weight:600;cursor:pointer}
.opt.sel .choose{background:var(--ink);color:#fff}
.opt .price{font-size:12.5px;font-weight:600;color:var(--ink);margin-top:2px}
.upl{display:flex;gap:10px;align-items:center;margin-top:10px}
.upl img{height:44px;border-radius:6px;border:1px solid var(--line);background:#fff}
.btn-sec{border:1px solid var(--ink);background:#fff;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;font-size:14px}
.custom{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:4px 14px 14px;margin-top:12px}

/* toggles */
.tog{position:absolute;top:10px;right:10px;width:40px;height:22px;z-index:2}
.tog input{opacity:0;width:0;height:0}
.tog span{position:absolute;inset:0;background:#cfd3da;border-radius:99px;transition:.15s;cursor:pointer}
.tog span::before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s}
.tog input:checked+span{background:var(--good)}.tog input:checked+span::before{transform:translateX(18px)}

.submit{width:100%;margin-top:22px;border:0;border-radius:var(--radius);background:var(--accent);color:#fff;font-weight:700;font-size:16px;letter-spacing:.6px;padding:17px;cursor:pointer;box-shadow:0 4px 0 var(--accent-dk)}
.submit:hover{filter:brightness(1.04)}
.err{color:#c62828;font-size:13.5px;margin-top:8px;min-height:18px}
.req{font-size:12.5px;color:var(--muted);margin-top:8px}
details.names{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-top:14px}
details.names summary{cursor:pointer;font-weight:600}

/* price bar */
.pricebar{position:fixed;left:0;right:0;bottom:0;background:var(--ink);color:#fff;z-index:20;transform:translateY(100%);transition:transform .3s ease}
.pricebar.on{transform:none}
.pricebar .in{max-width:1280px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pricebar .big{font-size:24px;font-weight:700}
.pricebar .was{text-decoration:line-through;opacity:.6;margin-left:6px;font-size:14px}
.pricebar .lbl2{font-size:12px;opacity:.75}
.pricebar .eb{background:var(--accent);padding:4px 10px;border-radius:4px;font-size:12.5px;font-weight:600}
.pricebar .tot{margin-left:auto;text-align:right}

/* modal */
.modal{position:fixed;inset:0;background:rgba(20,24,35,.55);z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}
.modal[hidden]{display:none}
.modal-box{background:#fff;border-radius:12px;max-width:880px;width:100%;max-height:88vh;overflow:auto;padding:22px 22px 26px;position:relative}
.modal-x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:28px;cursor:pointer;line-height:1}
.modal h3{margin:0 0 4px;font-size:22px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:14px}
.swgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px;margin-top:14px}
.sw{border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px;cursor:pointer;font-size:11.5px;text-align:center;position:relative;line-height:1.2}
.sw i{display:block;height:40px;border-radius:6px;margin-bottom:5px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.sw.sel{border-color:var(--good);box-shadow:0 0 0 1.5px var(--good)}
.sw.sel::after{content:"✓";position:absolute;top:9px;right:10px;width:18px;height:18px;border-radius:50%;background:var(--good);color:#fff;font-size:11px;display:grid;place-items:center}
.modal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:12px}
.btn-pri{border:0;background:var(--good);color:#fff;border-radius:8px;padding:11px 20px;font-weight:700;cursor:pointer}

/* done */
.thanks{background:#fff;border-radius:12px;padding:26px;margin-top:24px;box-shadow:0 10px 30px rgba(20,24,35,.06)}
.thanks .ref{display:inline-block;background:var(--accent-soft);color:var(--accent);font-weight:700;padding:6px 12px;border-radius:6px;margin:6px 0 10px}
.sumt{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px}
.sumt td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.sumt td:first-child{color:var(--muted);width:38%}
.steps{list-style:none;padding:0;margin:14px 0 0;counter-reset:n}
.steps li{counter-increment:n;padding:6px 0 6px 38px;position:relative}
.steps li::before{content:counter(n);position:absolute;left:0;top:4px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}

@media (max-width:980px){
  .page{grid-template-columns:minmax(0,1fr);gap:14px;padding:12px 16px 120px}
  .flow{min-width:0}
  .visual{position:sticky;top:0;z-index:5;background:var(--bg);padding-top:8px;margin:0 -16px;padding-left:16px;padding-right:16px}
  .vis-inner{position:static}
  .vis-card{aspect-ratio:3/2;width:100%;max-height:38vh}
  .vis-card.product{aspect-ratio:1/1;width:min(100%,38vh);max-height:none;margin:0 auto}
  .vis-tabs{top:8px;left:8px}.vis-tabs button{padding:4px 12px}
  .dot{width:20px;height:20px}
  .vis-caption,.spec{display:none}
  .intro h1{font-size:27px}.intro h2{font-size:22px}
  .pricebar .in{padding:8px 16px;gap:10px;flex-wrap:nowrap}
  .pricebar .big{font-size:19px}
  .pricebar .eb{display:none}
  .pricebar .lbl2{font-size:11px}
}
@media (max-width:520px){
  .tiles.c5{grid-template-columns:repeat(5,1fr)}
  .tile{padding:14px 2px;font-size:13.5px}
  .opts{grid-template-columns:1fr 1fr}
  .two{grid-template-columns:1fr}
  .scard{flex-basis:170px}
}

/* school autocomplete */
.ac{position:relative}
.ac-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 30px rgba(20,24,35,.14);list-style:none;margin:0;padding:6px;z-index:30;max-height:340px;overflow:auto}
.ac-list li{padding:9px 10px;border-radius:7px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.ac-list li:hover,.ac-list li.on{background:var(--good-soft)}
.ac-list .n{font-size:14.5px}
.ac-list .n b{font-weight:700;color:var(--ink)}
.ac-list .m{font-size:12.5px;color:var(--muted)}
.ac-list .ac-foot{font-size:12.5px;color:var(--muted);cursor:default;border-top:1px solid var(--line);border-radius:0;margin-top:4px}
.ac-list .ac-foot:hover{background:none}
.ac-picked{color:var(--good)!important;font-weight:500}

.namesbox{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px 16px;margin-top:18px}
.namesbox h3{margin:0 0 4px;font-size:17px}
.namesbox h3 em{font-style:normal;color:#a3a7b0;font-weight:600;font-size:14px}

.btn-sec{white-space:nowrap}

/* style cards: show every hoodie at once (grid instead of a sideways slider) */
.carousel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:visible;padding:12px 0 4px;margin:0}
.scard{flex:none;min-width:0}
@media (min-width:1400px){.carousel{grid-template-columns:repeat(4,minmax(0,1fr))}}
.zoom-btn{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);border:0;background:#fff;color:var(--ink);font:600 13px Outfit,sans-serif;padding:8px 16px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.12);cursor:pointer;z-index:3}
.zoom-btn:hover{background:var(--ink);color:#fff}

/* ===== centre-stage layout: step strip, big hoodie, one question at a time ===== */
.page{display:block;max-width:1080px;padding:24px 24px 150px}
.intro{text-align:center;margin-bottom:18px}
.intro h1{font-size:36px}
.stepper{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto 22px;max-width:980px;background:#fff;border-radius:999px;padding:6px;box-shadow:0 4px 16px rgba(20,24,35,.06)}
.stepper .bar{flex:1;height:2px;background:var(--line);min-width:8px;max-width:40px}
.stp{display:flex;align-items:center;gap:8px;border:0;background:none;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap}
.stp .num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef0f3;font-size:12.5px;color:var(--ink)}
.stp.ok .num{background:var(--good);color:#fff}
.stp.on{background:var(--ink);color:#fff}
.stp.on .num{background:#fff;color:var(--ink)}
.stp:disabled{cursor:default;opacity:.5}
.visual{max-width:640px;margin:0 auto}
.vis-inner{position:static}
.vis-card{aspect-ratio:16/10}
.vis-card.product{max-width:600px;aspect-ratio:1/1}
.vis-caption{margin-top:12px}
.flow{max-width:820px;margin:8px auto 0;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(20,24,35,.07);padding:6px 28px 24px}
.flow .sec{padding-top:24px}
.flow .sec[hidden]{display:none}
.stepnav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.stepnav:empty{display:none}
.btn-next{border:0;background:var(--accent);color:#fff;font-weight:700;font-size:15.5px;padding:14px 26px;border-radius:999px;cursor:pointer;box-shadow:0 3px 0 var(--accent-dk)}
.btn-next:disabled{background:#d6d8de;box-shadow:none;cursor:default;font-weight:600;color:#6b7280}
#done:not([hidden]){max-width:820px;margin:20px auto 0}
@media (max-width:980px){
  .page{padding:12px 14px 120px}
  .stepper{border-radius:12px;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin-bottom:12px}
  .stepper::-webkit-scrollbar{display:none}
  .stp{padding:6px 10px;font-size:13px}
  .stp:not(.on) .lb{display:none}
  .stepper .bar{min-width:6px;max-width:14px}
  .visual{position:sticky;top:0;z-index:5;background:var(--bg);margin:0 -14px;padding:6px 14px 8px}
  .flow{padding:2px 16px 18px;border-radius:12px}
  .btn-next{padding:12px 18px;font-size:14.5px}
}
@media (min-width:981px){
  .vis-card{width:min(100%,calc(40vh * 1.6));margin:0 auto}
  .vis-card.product{width:min(100%,46vh)}
  .stepper{position:sticky;top:8px;z-index:6}
}
@media (min-width:981px){
  .flow .opts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .flow .opts .opt h4{font-size:14px}
}
/* big, can't-miss colour button on each style card */
.scard .cc{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;padding:11px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:14.5px;font-weight:700;box-shadow:0 3px 0 var(--accent-dk);transition:transform .1s,background .15s}
.scard .cc:hover{background:var(--accent-dk)}
.scard .cc:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent-dk)}
.scard .cc .pal{width:18px;height:18px;border-radius:50%;background:conic-gradient(#e53935,#fbc02d,#43a047,#1e88e5,#8e24aa,#e53935);box-shadow:0 0 0 2px #fff}
.scard .cc .chips i{width:14px;height:14px;box-shadow:0 0 0 1.5px #fff}
.choose{padding:8px 14px;font-size:14px;border-width:1.5px}
@media (max-width:520px){.scard .cc{font-size:13px;padding:10px 6px;gap:6px;white-space:nowrap}.scard .cc .pal{width:15px;height:15px}}

/* ===== style & colour card ===== */
body[data-step="1"] .visual{display:none}
.sl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 14px}
.sl-tabs{display:flex;gap:10px;flex-wrap:wrap;padding:6px}
.sl-tab{--tc:#1e88e5;border:2px solid var(--tc);background:var(--tc);border-radius:999px;padding:9px 16px;font-weight:800;font-size:14px;cursor:pointer;color:#fff;opacity:1;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:opacity .15s,transform .15s,box-shadow .15s;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.sl-tab:hover{filter:brightness(1.08);transform:translateY(-1px)}
.sl-tab.on{transform:scale(1.06);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--tc),0 4px 12px rgba(0,0,0,.2)}
.sl-arrows{display:flex;gap:8px}
.sl-arr{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:20px;cursor:pointer;display:grid;place-items:center;line-height:1}
.sl-arr:hover{border-color:var(--ink)}
.scard2{border:1.5px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.scard2.sel{border-color:var(--good);box-shadow:0 0 0 1.5px var(--good)}
.sc-top{display:grid;grid-template-columns:1fr 1fr}
.sc-photo{background:#f4f4f4;position:relative;aspect-ratio:1/1}
.sc-photo img{width:100%;height:100%;object-fit:contain}
.flag2{position:absolute;top:12px;left:12px;background:var(--accent);color:#fff;font-weight:700;font-size:12px;padding:4px 9px;border-radius:6px;z-index:1}
.sc-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.sc-dots i{width:8px;height:8px;border-radius:50%;background:#c8ccd3}.sc-dots i.on{background:var(--ink);width:22px;border-radius:5px}
.sc-info{padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.sc-info h3{margin:0;font-size:28px;letter-spacing:-.3px}
.sc-info p{margin:0;color:#3d4452;font-size:14.5px;line-height:1.5}
.sc-spec{font-size:13.5px;color:var(--muted)}.sc-spec b{color:var(--ink);font-weight:600}
.sc-price{font-size:15px}.sc-price b{font-size:24px}.sc-price s{color:var(--muted);margin-left:6px}
.sc-eb{display:inline-block;background:var(--accent);color:#fff;font-weight:600;font-size:12px;padding:3px 8px;border-radius:5px;transform:rotate(-1.5deg);width:max-content}
.sc-btns{display:flex;gap:10px;margin-top:auto;flex-wrap:wrap}
.sc-btn{border:0;border-radius:10px;padding:13px 16px;font-weight:700;font-size:14.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-family:inherit}
.sc-btn.g{background:var(--good);color:#fff;box-shadow:0 3px 0 #2c8a5c}
.sc-btn.r{background:var(--accent);color:#fff;box-shadow:0 3px 0 var(--accent-dk);flex:1}
.sc-btn.r.done{background:var(--good-soft);color:var(--good);box-shadow:inset 0 0 0 1.5px var(--good)}
.sc-cols{border-top:1.5px solid var(--line);padding:16px 20px 18px}
.sc-colhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.sc-colhead h4{margin:0;font-size:16px}.sc-colhead h4 span{color:var(--muted);font-weight:500;font-size:13.5px}
.sc-seg{display:flex;border:1.5px solid var(--line);border-radius:8px;overflow:hidden}
.sc-seg button{border:0;background:#fff;padding:6px 12px;font-weight:700;font-size:11.5px;letter-spacing:.6px;cursor:pointer;color:var(--muted)}
.sc-seg button.on{background:var(--good-soft);color:var(--good);box-shadow:inset 0 0 0 1.5px var(--good)}
.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px}
.sc-sw{aspect-ratio:1/1;border:1.5px solid transparent;border-radius:7px;background:none;padding:2px;cursor:pointer;position:relative}
.sc-sw:hover{border-color:#cfd3da}
.sc-sw svg{width:100%;height:100%;display:block}
.sc-sw.sel{border-color:var(--good);background:var(--good-soft)}
.sc-sw.sel::after{content:'✓';position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--good);color:#fff;font-size:10px;display:grid;place-items:center;font-weight:700}
.sc-label{font-size:13.5px;color:var(--ink);font-weight:600;margin:8px 0 0;min-height:1.2em}
.sc-picked{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:13.5px;color:var(--muted);flex-wrap:wrap}
.sc-chip{display:flex;align-items:center;gap:6px;background:#f2f3f5;border:0;border-radius:999px;padding:4px 10px 4px 4px;color:var(--ink);font-weight:600;font-size:12.5px;cursor:pointer;font-family:inherit}
.sc-chip i{width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
@media (max-width:640px){
  .sc-top{grid-template-columns:1fr}.sc-info{padding:16px}.sc-info h3{font-size:24px}
  .sl-head{flex-direction:column;align-items:stretch}.sl-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.sl-tab{white-space:nowrap;padding:7px 12px;font-size:13px}
  .sl-arrows{display:none}.sc-cols{padding:14px}.sc-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr))}
  .sc-photo{aspect-ratio:4/3}
}
.sl-head,.sl-tabs,.flow,.sec{min-width:0;max-width:100%}
.sg-wrap{overflow-x:auto}
.sg{border-collapse:collapse;width:100%;font-size:14px;text-align:center}
.sg th{background:var(--ink);color:#fff;padding:9px 8px;font-weight:600}
.sg th:first-child,.sg td:first-child{text-align:left;white-space:nowrap}
.sg td{padding:9px 8px;border-bottom:1px solid var(--line)}
.sg tr:nth-child(odd) td{background:#fafafa}

/* ===== front & back: hoodie left, designs right ===== */
@media (min-width:981px){
  body[data-step="2"] .page, body[data-step="3"] .page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"intro intro" "step step" "vis flow";column-gap:28px;max-width:1240px}
  body[data-step="2"] .intro, body[data-step="3"] .intro{grid-area:intro}
  body[data-step="2"] .stepper, body[data-step="3"] .stepper{grid-area:step;width:100%}
  body[data-step="2"] .visual, body[data-step="3"] .visual{grid-area:vis;max-width:none;margin:0;align-self:start;position:sticky;top:76px}
  body[data-step="2"] .vis-card.product, body[data-step="3"] .vis-card.product{width:100%;max-width:none}
  body[data-step="2"] .flow, body[data-step="3"] .flow{grid-area:flow;max-width:none;margin:0;align-self:start}
}
.dlabel{font-weight:700;font-size:14.5px;margin:16px 0 8px}.dlabel span{color:var(--muted);font-weight:500;font-size:13px}
.dslider{position:relative}
.dtrack{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 20px)/3);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 8px}
.dtrack::-webkit-scrollbar{display:none}
.dnav{position:absolute;top:calc(50% - 26px);width:38px;height:38px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18);font-size:22px;line-height:1;cursor:pointer;z-index:2;display:grid;place-items:center;color:var(--ink)}
.dnav.prev{left:-12px}.dnav.next{right:-12px}
.dnav:hover{background:var(--ink);color:#fff}
.dcard{scroll-snap-align:start;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:6px 6px 9px;cursor:pointer;text-align:left;position:relative;font-family:inherit;color:var(--ink);display:flex;flex-direction:column;gap:3px}
.dcard:hover{border-color:#bfc4cc}
.dcard .ph{aspect-ratio:1/1;background:#f4f4f4;border-radius:7px;overflow:hidden;position:relative}
.dcard .ph img,.dcard .ph svg{position:absolute;inset:0;width:100%;height:100%}
.dcard b{font-size:13.5px;margin-top:4px;line-height:1.2}
.dcard span:not(.tick){font-size:12.5px;color:var(--muted)}
.dcard .tick{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--good);color:#fff;font-size:12px;display:none;place-items:center;z-index:2;font-weight:700}
.dcard.sel{border-color:var(--good);box-shadow:0 0 0 1.5px var(--good)}
.dcard.sel .tick{display:grid}
.drow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:980px){ .dtrack{grid-auto-columns:calc((100% - 10px)/2.3)} .dnav{display:none} }

/* ===== design grids: close-up artwork, 4 across ===== */
.dgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:6px}
.dgrid .dcard .ph{aspect-ratio:1/1;border-radius:7px;overflow:hidden;position:relative;background:#e9eaee}
.dcard .ph svg.thumb{position:absolute;inset:0;width:100%;height:100%;display:block}
.thumb-none{position:absolute;inset:0;display:grid;place-items:center}
.thumb-none span{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.75);background:rgba(0,0,0,.18);padding:3px 8px;border-radius:999px}
.more-hint{display:inline-flex;align-items:center;gap:6px;background:#fff3c4;color:#7a5a00;border:1.5px solid #f5d76e;font-weight:700;font-size:13.5px;padding:6px 12px;border-radius:999px;margin:0 0 10px;animation:hintbob 1.6s ease-in-out infinite}
@keyframes hintbob{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@media (max-width:640px){ .dgrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:400px){ .dgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* personalisations: big add button */
.add-btn{margin-top:10px;width:100%;border:0;border-radius:10px;padding:12px 10px;font-weight:800;font-size:16px;cursor:pointer;background:var(--accent);color:#fff;box-shadow:0 3px 0 var(--accent-dk);font-family:inherit}
.add-btn:hover{background:var(--accent-dk)}
.add-btn.on{background:var(--good-soft);color:var(--good);box-shadow:inset 0 0 0 1.5px var(--good);font-size:14px}

/* ===== full-width header photo on the first step ===== */
html,body{overflow-x:hidden}
body[data-step="0"] .visual{max-width:none;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
body[data-step="0"] .vis-card:not(.product){width:100%;max-width:none;aspect-ratio:2.5/1;border-radius:0;box-shadow:none}
body[data-step="0"] .vis-card:not(.product) .slide img{object-fit:cover;object-position:center 40%}
@media (max-width:980px){ body[data-step="0"] .visual{position:static;padding:0;margin-top:0} body[data-step="0"] .vis-card:not(.product){aspect-ratio:16/9;max-height:none} }
/* top and bottom line colour picker */
.ink2{margin-top:14px}
.ink2 .lbl{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ink2-now{font-weight:500;color:var(--muted);font-size:13px}
.ink2-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ink2-sw{width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:var(--c);cursor:pointer;padding:0;box-shadow:inset 0 0 0 2px #fff;transition:transform .12s}
.ink2-sw:hover{transform:scale(1.08)}
.ink2-sw.on{outline:3px solid var(--ink);outline-offset:2px}
.ink2-sw.same{width:auto;padding:0 12px;border-radius:999px;background:#fff;font-size:12px;font-weight:700;color:var(--ink)}
.ink2-tip{font-size:12px;color:var(--muted);margin:6px 0 0}
