/* ============================================================
   SOCKTEN — site stylesheet
   Ground: deep teal. Product blocks: bright pastels.
   ============================================================ */
:root{
  color-scheme: only dark;

  --canvas:#0D2226;
  --surface:#133034;
  --surface-2:#193D43;
  --edge:#1F4A52;
  --text:#E8F1F0;
  --muted:#96AFAF;
  --accent:#8ED0C4;
  --sky:#C5D5E8; --mint:#D4E6EB; --wisteria:#EFE5F9; --sand:#F5ECE5;
  --sky-deep:#9FBEDD; --mint-deep:#A8D3DC;
  --max:1300px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--text);
  font-family:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.55;letter-spacing:-.008em;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
p{margin:0}
a{color:inherit}
figure{margin:0}
address{font-style:normal;color:var(--muted);font-size:15px;line-height:1.45}
.spec address{color:inherit;font-size:inherit}
.foot-addr{font-size:14px}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.06}
h1{font-size:clamp(38px,5vw,62px);letter-spacing:-.035em;margin-top:18px}
h2{font-size:clamp(28px,3.3vw,42px)}
h3{font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.25}
.lede{font-size:19px;line-height:1.5;color:var(--muted);margin-top:16px;max-width:46ch}
.cap{font-size:14px;color:var(--muted);margin-top:14px}
.w{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,3.5vw,40px)}

.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--mint);color:#0B2226;
  padding:10px 16px;border-radius:999px}

.btn{display:inline-block;border-radius:999px;padding:13px 24px;text-decoration:none;
  font-size:16px;font-weight:500;letter-spacing:-.01em;background:var(--mint);color:#0B2226;
  border:1px solid var(--mint)}
.btn:hover{background:#fff;border-color:#fff}
.btn-o{background:transparent;color:var(--text);border-color:var(--edge)}
.btn-o:hover{border-color:var(--text)}
.chip{display:inline-block;border-radius:999px;padding:5px 13px;font-size:14px;
  background:var(--surface-2);color:var(--accent);font-weight:500}
.chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}

/* header */
.hd{position:sticky;top:0;z-index:40;background:rgba(13,34,38,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--edge)}
.hd-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;gap:20px}
.hd .logo{display:flex;align-items:center;text-decoration:none;justify-self:start;height:30px}
.hd .logo img{height:30px;width:auto}
.hd nav{display:flex;gap:34px;justify-self:center;align-items:center}
.hd nav a{text-decoration:none;color:var(--muted);font-size:17px;font-weight:500;white-space:nowrap}
.hd nav a:hover{color:var(--text)}
.hd .act{justify-self:end}
@media(max-width:1080px){.hd nav{display:none}.hd-in{grid-template-columns:1fr auto}}

/* hero */
.hero{padding:clamp(40px,5vw,68px) 0 clamp(24px,3vw,38px)}
.hero-in{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
  gap:clamp(28px,4vw,60px);align-items:center}
@media(max-width:940px){.hero-in{grid-template-columns:1fr}}
.hero .acts{display:flex;gap:11px;flex-wrap:wrap;margin-top:28px}
.hero .facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;padding-top:20px;
  border-top:1px solid var(--edge)}
.hero .facts div{font-size:14px;color:var(--muted)}
.hero .facts b{display:block;color:var(--text);font-weight:600;font-size:16px;margin-top:3px}

/* photo slots */
.ph{border-radius:14px;display:grid;place-items:center;text-align:center;padding:22px;
  background:var(--surface);overflow:hidden}
.ph span{font-size:13px;color:#6E8E8E;line-height:1.5;max-width:28ch}
.ph.bright span{color:#5F7A80}
.r54{aspect-ratio:5/4}.r43{aspect-ratio:4/3}.r11{aspect-ratio:1/1}
.r34{aspect-ratio:3/4}.r219{aspect-ratio:21/9}

/* reference band */
.refs-wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,3.5vw,40px)}
.refs{margin-block:clamp(16px,2.5vw,32px);padding:20px 0;background:var(--surface-2);
  border-radius:16px;overflow:hidden;position:relative}
.refs::before,.refs::after{content:"";position:absolute;top:0;bottom:0;width:70px;z-index:2;pointer-events:none}
.refs::before{left:0;background:linear-gradient(90deg,var(--surface-2),transparent)}
.refs::after{right:0;background:linear-gradient(270deg,var(--surface-2),transparent)}
.track{display:flex;width:max-content;animation:slide 40s linear infinite}
.refs:hover .track{animation-play-state:paused}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none}}
.ref{display:flex;align-items:center;gap:10px;padding:0 34px}
.ref b{font-size:18px;font-weight:600;letter-spacing:-.03em;white-space:nowrap;color:var(--text)}
.ref span{font-size:13px;color:var(--muted);white-space:nowrap}
.ref i{width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}

section{padding-block:clamp(44px,5.5vw,80px)}
.head{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(20px,4vw,64px);align-items:end;margin-bottom:36px}
.head h2{max-width:22ch}
.head p{color:var(--muted);max-width:46ch;padding-bottom:4px}
@media(max-width:860px){.head{grid-template-columns:1fr;gap:14px;align-items:start}}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(26px,4vw,60px);align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr}}

/* product tiles */
.grid3{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid3{grid-template-columns:1fr}}
.tile{border-radius:14px;overflow:hidden;background:var(--surface)}
.tile .ph{border-radius:0}
.tile .bd{padding:18px 20px 22px}
.tile h3{margin-bottom:6px}
.tile p{font-size:15px;color:var(--muted);line-height:1.45}
.tile .sp{margin-top:12px;font-size:14px;color:var(--accent);font-weight:500}

/* process rail */
.proc{background:var(--surface);border-radius:20px;padding:clamp(30px,4vw,52px) 0 clamp(30px,4vw,48px)}
.proc .w{max-width:none;padding-inline:clamp(20px,3.5vw,44px)}
.proc-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;
  align-items:end;margin-bottom:28px}
@media(max-width:860px){.proc-top{grid-template-columns:1fr;gap:14px;align-items:start}}
.proc-top h2{margin-top:14px}
.proc-top p{color:var(--muted);max-width:44ch}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;
  scrollbar-width:thin;scrollbar-color:var(--edge) transparent}
.rail::-webkit-scrollbar{height:6px}
.rail::-webkit-scrollbar-thumb{background:var(--edge);border-radius:99px}
.rail::-webkit-scrollbar-track{background:transparent}
.stepc{flex:0 0 min(340px,78vw);scroll-snap-align:start;background:var(--surface-2);
  border-radius:14px;overflow:hidden}
.stepc .ph{border-radius:0;background:#123A42;aspect-ratio:3/2}
.stepc .bd{padding:18px 20px 22px}
.stepc .n{display:inline-block;font-size:13px;color:var(--accent);font-weight:500;margin-bottom:8px}
.stepc p{font-size:15px;color:var(--muted);line-height:1.45;margin-top:6px}
.proc-foot{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px;padding-top:20px;
  border-top:1px solid var(--edge);font-size:15px;color:var(--muted)}
.hint{font-size:13px;color:#6E8E8E;margin-top:10px}

/* materials */
.mat{display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.mat{grid-template-columns:repeat(2,1fr)}}
.mc{padding:22px;border-radius:14px;color:#123034}
.mc b{display:block;font-size:19px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}
.mc p{font-size:15px;line-height:1.45;color:#28494D}
.mc .ct{margin-top:14px;font-size:13px;color:#2F6B78;font-weight:500}

/* faq */
.faq{display:grid;gap:10px;max-width:900px}
.faq details{background:var(--surface);border-radius:12px;padding:2px 20px}
.faq summary{cursor:pointer;padding:16px 0;font-size:17px;font-weight:500;list-style:none;
  display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:22px;line-height:1;flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 18px;color:var(--muted);font-size:16px;line-height:1.55;max-width:70ch}

/* cta */
.cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--mint);border-radius:16px;padding:22px clamp(22px,3vw,36px);
  margin-block:clamp(28px,4vw,56px);color:#0F3238}
.cta h3{font-size:clamp(20px,2.2vw,26px);max-width:28ch}
.cta .acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cta .btn{background:#0F3238;color:var(--mint);border-color:#0F3238}
.cta .btn:hover{background:#0B2226;border-color:#0B2226}
.cta .btn-o{color:#0F3238;border-color:#8FB6BD}
.cta .btn-o:hover{border-color:#0F3238}

.todo{display:inline-block;border-radius:999px;border:1px solid var(--accent);color:var(--accent);
  padding:1px 10px;font-size:13px;font-weight:500}
.mc .todo,.cta .todo{border-color:#2F6B78;color:#2F6B78}

footer{background:var(--surface);padding-block:48px;font-size:16px;margin-top:clamp(20px,3vw,40px)}
.fg{display:grid;gap:30px;grid-template-columns:1.6fr 1fr 1fr 1.2fr}
@media(max-width:820px){.fg{grid-template-columns:1fr 1fr}}
.fg h4{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text)}
.foot-about{max-width:34ch;font-size:15px;color:var(--muted);margin-top:16px}
.fl{display:flex;flex-direction:column;gap:8px}
.fl a{text-decoration:none;color:var(--muted)}
.fl a:hover{color:var(--text)}
.fbar{margin-top:38px;padding-top:20px;border-top:1px solid var(--edge);display:flex;
  justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ============================================================
   Multi-page additions
   ============================================================ */

/* dropdown nav */
.hd nav{align-items:center}
.nav-item{position:relative}
.nav-item>a{display:flex;align-items:center;gap:5px}
.nav-item>a::after{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-1px)}
.nav-item .menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);
  padding-top:14px;opacity:0;visibility:hidden;transition:opacity .14s ease}
.nav-item:hover .menu,.nav-item:focus-within .menu{opacity:1;visibility:visible}
.menu-in{background:var(--surface);border:1px solid var(--edge);border-radius:14px;
  padding:20px;display:grid;grid-template-columns:repeat(3,max-content);gap:8px 44px;
  box-shadow:0 18px 40px rgba(0,0,0,.35)}
.menu-in h5{grid-column:1/-1;margin:0;font-size:12px;font-weight:600;color:var(--accent);
  letter-spacing:.06em;padding:2px 8px 6px}
.menu-in .col{display:flex;flex-direction:column;gap:2px}
.menu-in .col b{font-size:13px;font-weight:600;color:var(--accent);padding:4px 10px 6px;letter-spacing:.04em}
.menu-in a{display:block;padding:8px 10px;border-radius:8px;font-size:16px;
  color:var(--text);white-space:nowrap}
.menu-in a:hover{background:var(--surface-2)}
.nav-cur{color:var(--text)!important}

/* page hero (inner pages) */
.phero{padding:clamp(30px,4vw,52px) 0 clamp(20px,2.5vw,32px);border-bottom:1px solid var(--edge)}
.phero h1{font-size:clamp(32px,4.2vw,52px);margin-top:12px;max-width:20ch}
.phero .lede{max-width:56ch}
.crumb{font-size:14px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--text)}
.crumb span{color:#5E7A7C}

/* compact process strip (homepage teaser) */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:var(--surface);border-radius:16px;overflow:hidden}
@media(max-width:860px){.strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.strip{grid-template-columns:1fr}}
.strip .s{padding:22px 20px;border-right:1px solid var(--edge);position:relative}
.strip .s:last-child{border-right:0}
@media(max-width:860px){.strip .s:nth-child(2){border-right:0}
  .strip .s:nth-child(-n+2){border-bottom:1px solid var(--edge)}}
.strip .s b{display:block;font-size:13px;color:var(--accent);font-weight:600;margin-bottom:8px}
.strip .s h3{font-size:17px;margin-bottom:5px}
.strip .s p{font-size:14px;color:var(--muted);line-height:1.45}

/* link list / preview rows */
.rowlink{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:18px 0;border-bottom:1px solid var(--edge);text-decoration:none}
.rowlink:hover h3{color:var(--accent)}
.rowlink .t{display:flex;flex-direction:column;gap:4px}
.rowlink p{font-size:15px;color:var(--muted)}
.rowlink .go{color:var(--accent);font-size:15px;white-space:nowrap}

/* claim block */
.claim{background:#1B3F45;color:var(--text);border-radius:18px;border:1px solid #2A565E;
  padding:clamp(28px,4vw,52px);margin-block:clamp(28px,4vw,56px)}
.claim h2{max-width:20ch}
.claim h2{color:var(--text)}
.claim p{margin-top:16px;max-width:60ch;font-size:18px;color:#A9C6C8}

/* sock catalogue grid */
.cat{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){.cat{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.cat{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.cat{grid-template-columns:1fr}}
.cat a{background:var(--surface);border-radius:14px;overflow:hidden;text-decoration:none;display:block}
.cat a:hover{background:var(--surface-2)}
.cat .ph{border-radius:0;aspect-ratio:4/3}
.cat .bd{padding:14px 16px 18px}
.cat h3{font-size:17px;margin-bottom:4px}
.cat p{font-size:14px;color:var(--muted);line-height:1.4}

/* spec table */
.spec{width:100%;border-collapse:collapse;margin-top:6px}
.spec th{text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);font-weight:600;padding:10px 14px 10px 0;border-bottom:1px solid var(--edge)}
.spec td{padding:12px 14px 12px 0;border-bottom:1px solid var(--edge);font-size:16px;vertical-align:top}
.spec td:first-child{color:var(--muted);width:40%}
.spec tr:last-child td{border-bottom:0}

/* gallery */
.gal{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}
.gal .ph{aspect-ratio:3/4}
@media(max-width:900px){.gal{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gal{grid-template-columns:1fr}}

/* contact */
.cform{display:grid;gap:14px;grid-template-columns:repeat(2,1fr);max-width:720px}
@media(max-width:640px){.cform{grid-template-columns:1fr}}
.f{display:flex;flex-direction:column;gap:6px}
.f.full{grid-column:1/-1}
.f label{font-size:14px;color:var(--muted)}
.f input,.f select,.f textarea{font-family:inherit;font-size:16px;color:var(--text);
  padding:12px 14px;border:1px solid var(--edge);background:var(--surface);border-radius:10px}
.f textarea{min-height:130px;resize:vertical}

/* footer one-line call to action */
.foot-cta{margin-top:34px;padding-top:22px;border-top:1px solid var(--edge);
  font-size:17px;color:var(--muted)}
.foot-cta a{color:var(--accent)}

/* ---------------- mobile menu ---------------- */
.burger{display:none;width:42px;height:42px;border:1px solid var(--edge);border-radius:999px;
  background:transparent;cursor:pointer;padding:0;place-items:center;gap:4px}
.burger span{display:block;width:16px;height:1.6px;background:var(--text);border-radius:2px;
  transition:transform .18s ease,opacity .18s ease}
.hd .act{display:flex;align-items:center;gap:10px}
@media(max-width:1080px){
  .burger{display:grid}
  .hd{backdrop-filter:none;background:var(--canvas)}
  .hd nav{display:flex!important;position:absolute;top:100%;left:0;right:0;width:100%;
    justify-self:stretch;flex-direction:column;align-items:stretch;gap:0;z-index:60;
    background:var(--canvas);border-bottom:1px solid var(--edge);
    padding:8px 0 20px;max-height:calc(100dvh - 76px);overflow-y:auto;
    opacity:0;visibility:hidden;transition:opacity .16s ease}
  body.nav-open .hd nav{transform:none;opacity:1;visibility:visible}
  .hd nav > a,.nav-item > a{padding:14px clamp(20px,3.5vw,40px);font-size:19px;color:var(--text)}
  .nav-item{position:static}
  .nav-item > a::after{margin-left:auto}
  .nav-item .menu{position:static;transform:none;opacity:1;visibility:visible;padding-top:0}
  .menu-in{border:0;border-radius:0;box-shadow:none;background:var(--surface);
    grid-template-columns:1fr;gap:2px;padding:10px clamp(20px,3.5vw,40px) 16px}
  .menu-in a{font-size:17px;padding:10px 0}
  .menu-in .col b{padding:10px 0 4px}
  body.nav-open{overflow:hidden}
}
@media(max-width:520px){.hd .act .btn{padding:11px 16px;font-size:15px}}

/* Enquiry form: honeypot, status line */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin:12px 0 0;font-size:15px;line-height:1.5;padding:12px 14px;border-radius:8px;border:1px solid}
.form-status.is-ok{color:var(--accent);border-color:#2A565E;background:#12333A}
.form-status.is-err{color:#F0C2C2;border-color:#5E3232;background:#3A1E1E}
.cform .cf-turnstile{margin-top:4px}
