/* Touchwood Team - shared styles for spoke pages. Homepage carries its own CSS. */
@font-face{font-family:"Urbanist";font-style:normal;font-weight:400;font-display:swap;
src:url("fonts/urbanist-400.woff2") format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:500;font-display:swap;
src:url("fonts/urbanist-500.woff2") format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:600;font-display:swap;
src:url("fonts/urbanist-600.woff2") format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:800;font-display:swap;
src:url("fonts/urbanist-800.woff2") format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:900;font-display:swap;
src:url("fonts/urbanist-900.woff2") format("woff2")}
:root{--void:#000;--ink:#F7F7F5;--mute:#8B8D8B;--dim:#4A4C4A;--hair:#242624;--gold:#37C387;--gold-deep:#249A69;
--edge:rgba(255,255,255,.075);--surf:#111311;--r:9px;--s:clamp(64px,10vh,116px);
--ease:cubic-bezier(.22,1,.36,1);--logo:url("/assets/touchwood-team-logo-white.png");
--ff:"Urbanist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html,body{overflow-x:clip}
body.sub{margin:0;background:var(--void);color:var(--ink);font-family:var(--ff);font-weight:400;
letter-spacing:-.002em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}
a{color:inherit}
.lg{display:block;width:150px;aspect-ratio:900/288;background:var(--logo) center/contain no-repeat}
.sh{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:24px;
padding:16px clamp(20px,5vw,72px);background:rgba(0,0,0,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--edge)}
.brand{display:block}.snav{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);font:500 11px/1 var(--ff);letter-spacing:.14em;text-transform:uppercase}
.snav a{color:var(--mute);text-decoration:none;transition:color .3s var(--ease)}.snav a:hover,.snav a.on{color:var(--ink)}
.nbtn{border:1px solid var(--edge);border-radius:99px;padding:9px 16px;color:var(--ink)!important}
.nbtn:hover{background:var(--gold);border-color:var(--gold);color:#0A0B0A!important}
main{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,72px) var(--s)}
.crumb{font:400 11px/1 var(--ff);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:28px 0 0}
.crumb a{color:var(--mute);text-decoration:none}.crumb a:hover{color:var(--ink)}
.eyebrow{display:flex;align-items:center;gap:12px;font:500 11px/1 var(--ff);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 26px}
.bar{display:none}
.shero{padding:clamp(40px,7vh,84px) 0 clamp(36px,6vh,64px);max-width:940px}
h1{font-size:clamp(34px,5.6vw,72px);line-height:1.02;letter-spacing:-.025em;font-weight:800;margin:0;text-transform:uppercase;font-weight:900}
h1 em{display:block;font-style:normal;color:var(--gold)}
.lede{max-width:66ch;margin:28px 0 0;font-size:clamp(16px,1.35vw,19px);color:#C9CBC9}
.sblk{padding:clamp(28px,4.5vh,52px) 0;border-top:1px solid var(--hair);max-width:1180px}
.sblk h2{font-size:clamp(23px,2.6vw,34px);line-height:1.12;letter-spacing:-.015em;font-weight:700;margin:0 0 18px;max-width:22ch}
.sblk p{max-width:74ch;margin:0 0 16px;color:#B9BBB9;font-size:16.5px}
.sblk.row{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,4vw,56px);align-items:start}
.lab{font:500 11px/1.4 var(--ff)!important;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:4px 0 0!important;font-weight:500!important}
.tagl{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.tagl li{font:400 12px/1 var(--ff);letter-spacing:.06em;color:var(--mute);border:1px solid var(--edge);border-radius:99px;padding:9px 14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}
.kpi{background:var(--surf);padding:22px 20px}
.kpi b{display:block;font-size:clamp(24px,2.8vw,36px);letter-spacing:-.02em;color:var(--gold)}
.kpi span{display:block;margin-top:6px;font:400 11.5px/1.45 var(--ff);color:var(--mute)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--hair)}
th{font:500 11px/1 var(--ff);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
td{color:#C9CBC9}tbody tr:last-child td{color:var(--ink)}
.note{font:400 12.5px/1.6 var(--ff);color:var(--dim);max-width:70ch}
.wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.wcard{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--edge);border-radius:var(--r);
background:linear-gradient(180deg,var(--surf),#0B0C0B);text-decoration:none;transition:border-color .3s var(--ease),transform .3s var(--ease)}
.wcard:hover{border-color:rgba(55,195,135,.5);transform:translateY(-2px)}
.wcard .cat{font:500 10.5px/1 var(--ff);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.wcard .nm{font-size:18px;font-weight:600;letter-spacing:-.01em}
.wcard .bl{font-size:14px;color:var(--mute)}
.ilist{list-style:none;padding:0;margin:0}
.ilist li{border-bottom:1px solid var(--hair);padding:18px 0;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.ilist a{text-decoration:none;font-size:17px;transition:color .3s var(--ease)}.ilist a:hover{color:var(--gold)}
.ilist .soon span:first-child{color:var(--dim);font-size:17px}
.ilist .tag{font:500 10px/1 var(--ff);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
.sfaq{padding:clamp(28px,4.5vh,52px) 0;border-top:1px solid var(--hair)}
.sfaq h2{font-size:clamp(23px,2.6vw,34px);font-weight:700;letter-spacing:-.015em;margin:0 0 18px}
details{border-bottom:1px solid var(--hair)}
summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;position:relative;font-size:17px;font-weight:500}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:20px}
details[open] summary::after{content:"\2013"}
details p{margin:0 0 20px;max-width:74ch;color:#B9BBB9}
.scta{margin-top:clamp(40px,7vh,80px);padding:clamp(34px,6vh,64px) clamp(24px,4vw,52px);border:1px solid var(--edge);border-radius:var(--r);
background:radial-gradient(120% 140% at 50% 0%,rgba(55,195,135,.08),transparent 60%),linear-gradient(180deg,var(--surf),#0B0C0B)}
.scta h2{font-size:clamp(24px,3.2vw,42px);font-weight:700;letter-spacing:-.02em;margin:0 0 14px;max-width:20ch}
.scta p{color:#B9BBB9;max-width:60ch;margin:0 0 22px}
.sbtns{display:flex;flex-wrap:wrap;gap:12px}
.sbtn{display:inline-block;text-decoration:none;border:1px solid var(--edge);border-radius:99px;padding:14px 26px;
font:500 11.5px/1 var(--ff);letter-spacing:.16em;text-transform:uppercase;transition:all .3s var(--ease)}
.sbtn:hover{border-color:var(--ink)}
.sbtn.primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));border-color:transparent;color:#0A0B0A}
.sbtn.primary:hover{filter:brightness(1.08)}
.srel{padding:clamp(28px,4.5vh,52px) 0 0}
.rh{font:500 11px/1 var(--ff)!important;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 18px!important;font-weight:500!important}
.relg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.relg a{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--edge);border-radius:var(--r);text-decoration:none;transition:border-color .3s var(--ease)}
.relg a:hover{border-color:rgba(55,195,135,.5)}
.relg b{font:500 10.5px/1 var(--ff);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:500}
.relg span{font-size:15px;color:#C9CBC9}
.vblk{border-top:none;padding-top:0}
.cover{margin:0;padding:clamp(18px,3vw,34px);border:1px solid var(--edge);border-radius:var(--r);
background:radial-gradient(120% 130% at 50% 0%,rgba(55,195,135,.09),transparent 62%),linear-gradient(180deg,var(--surf),#0B0C0B);
display:flex;flex-direction:column;align-items:center;gap:16px}
.cover img,.cover video{display:block;max-height:min(74vh,760px);width:auto;max-width:100%;border-radius:6px;
box-shadow:0 30px 70px -30px rgba(0,0,0,.9)}
.cover figcaption{font:400 12px/1.6 var(--ff);color:var(--dim);max-width:62ch;text-align:center}
.vid{margin:0}
.vframe{position:relative;aspect-ratio:16/9;border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;
background:radial-gradient(120% 140% at 50% 0%,rgba(55,195,135,.07),transparent 62%),linear-gradient(180deg,var(--surf),#0B0C0B)}
.vframe iframe,.vframe video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}
.vid figcaption{font:400 12px/1.6 var(--ff);color:var(--dim);margin-top:12px}
.slot .vframe{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
background:repeating-linear-gradient(135deg,#0B0C0B,#0B0C0B 12px,#111311 12px,#111311 24px)}
.vlabel{font:500 11px/1 var(--ff);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.vhint{font:400 13px/1.5 var(--ff);color:var(--dim);max-width:34ch;text-align:center;padding:0 16px}
.sblk.media{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(22px,4vw,60px);align-items:center;border-top:none;padding:clamp(22px,4vh,46px) 0}
.sblk.media.flip .bimg{order:2}
.bimg{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--edge);background:var(--surf);box-shadow:0 30px 70px -34px rgba(0,0,0,.9)}
.bimg img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transform:scale(1.04);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.sblk.media:hover .bimg img{transform:scale(1)}
.btxt .lab{margin:0 0 12px!important;color:var(--gold)!important}
.blead{font-size:clamp(22px,2.2vw,32px)!important;line-height:1.15!important;letter-spacing:-.025em;font-weight:800;color:var(--ink)!important;margin:0 0 14px!important;max-width:18ch!important}
.bfull{font-size:14.5px!important;line-height:1.7!important;color:var(--mute)!important;max-width:52ch!important;margin:0!important}
@media (max-width:760px){.sblk.media{grid-template-columns:1fr}.sblk.media.flip .bimg{order:0}}
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.shot{margin:0;border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;background:var(--surf)}
.shot img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#0B0C0B}
.shot figcaption{font:400 11.5px/1.5 var(--ff);color:var(--dim);padding:10px 12px;border-top:1px solid var(--hair)}
.shot.miss img{display:none}
.shot.miss{min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;
background:repeating-linear-gradient(135deg,#0B0C0B,#0B0C0B 10px,#111311 10px,#111311 20px)}
.shot.miss figcaption::before{content:"Image slot: ";color:var(--gold)}
.sfoot{border-top:1px solid var(--hair);padding:clamp(40px,6vh,72px) clamp(20px,5vw,72px) 32px;max-width:1180px;margin:0 auto}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:32px}
.fcol{display:flex;flex-direction:column;gap:9px}
.fk{font:500 10.5px/1 var(--ff);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.fcol a{color:var(--mute);text-decoration:none;font-size:14.5px;transition:color .3s var(--ease)}.fcol a:hover{color:var(--ink)}
address{font-style:normal;font-size:14px;color:var(--dim);line-height:1.7;margin-top:6px}
.fbot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:44px;padding-top:22px;border-top:1px solid var(--hair);
font:400 11.5px/1.5 var(--ff);color:var(--dim)}

/* ================= TYPE SYSTEM =================================
   DISPLAY 900 / TITLE 800-600 / LABEL 500 uppercase / READING 400
   One family, four jobs, nothing decorative.
============================================================== */
h1{font-weight:900;letter-spacing:-.042em;line-height:.93}
.sblk h2,.sfaq h2,.scta h2{font-weight:800;letter-spacing:-.03em;line-height:1.05}
.eyebrow,.crumb,.lab,.rh,.fk,.wcard .cat,.relg b,.ilist .tag,.sbtn,.snav,.nbtn,th,.kpi span{
font-weight:500}
.eyebrow{font-size:10px;letter-spacing:.2em}
.sbtn,.nbtn{font-weight:600;letter-spacing:.17em}
.lede{font-size:clamp(16px,1.4vw,19.5px);line-height:1.6;letter-spacing:-.006em;color:#C6C8C6;max-width:60ch}
.sblk p{font-size:clamp(15px,1.08vw,16.5px);line-height:1.68;letter-spacing:-.002em}
.note,.shot figcaption,.cover figcaption,.fbot{letter-spacing:.002em;line-height:1.6}
.wcard .nm{font-weight:700;letter-spacing:-.022em}
.wcard .bl,.relg span,.fcol a,address{letter-spacing:-.001em}
.kpi b{font-weight:800;letter-spacing:-.03em}
.ilist a{font-weight:500;letter-spacing:-.012em}
summary{font-weight:600;letter-spacing:-.012em}
details p{font-size:16px;line-height:1.68}
.tagl li{font-weight:500;letter-spacing:.02em}

.scta h2 em{font-style:normal;color:var(--gold)}
/* readability pass */
.eyebrow{font-size:11.5px;letter-spacing:.2em}
.crumb{font-size:11.5px}
.lab{font-size:11.5px!important}
.note,.shot figcaption,.cover figcaption,.vid figcaption{font-size:13.5px;line-height:1.65}
.kpi span{font-size:12.5px;line-height:1.5}
.wcard .cat{font-size:11px;letter-spacing:.18em}
.wcard .bl{font-size:15px;line-height:1.6}
.tagl li{font-size:13px}
.fk{font-size:11px;letter-spacing:.18em}
.fcol a,address{font-size:15px;line-height:1.7}
.fbot{font-size:12.5px}
.ilist .tag{font-size:11px}
.relg span{font-size:15.5px}
.relg b{font-size:11px;letter-spacing:.16em}
th{font-size:11.5px}
@media(max-width:760px){.snav a:not(.nbtn){display:none}.sblk.row{grid-template-columns:1fr;gap:8px}h1{font-size:clamp(28px,8vw,42px)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
