:root{
  --ink:#0B0C0E; --ink-2:#121418; --steel:#1B1F24; --steel-2:#23282F;
  --line:#2C323A; --line-soft:#383F49;
  --bone:#F2F3F5; --bone-2:#E4E6EA; --bone-line:#CDD1D7;
  --white:#FFFFFF;
  --yellow:#FFC20E; --yellow-hot:#FFD84D; --yellow-deep:#D9A200;
  --alert:#FF4B23;
  --dim:#A3AAB5; --dim-2:#767E8A;
  --disp:'Big Shoulders Display','Barlow Condensed','Arial Narrow',sans-serif;
  --cond:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Barlow','Helvetica Neue',Arial,sans-serif;
  --mono:'Roboto Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --gut:20px; --wrap:1200px;
  --chamfer:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
  --chamfer-sm:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
  --tread:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px);
  --hazard:repeating-linear-gradient(135deg,var(--yellow) 0 26px,var(--ink) 26px 52px);
}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
h1,h2,h3,h4{margin:0;text-wrap:balance;font-family:var(--disp);font-weight:800;line-height:.94;letter-spacing:.004em;text-transform:uppercase}
h1{font-size:clamp(44px,7.4vw,88px);font-weight:900}
h2{font-size:clamp(32px,4.6vw,56px)}
h3{font-size:clamp(21px,2.2vw,27px)}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.stack{display:flex;flex-direction:column}

/* ---------- shared bits ---------- */
.eyebrow{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:13px;color:var(--yellow);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.eyebrow.dark{color:var(--yellow-deep)}
.eyebrow::before{content:"";width:26px;height:3px;background:currentColor;flex:none}
.lede{font-size:clamp(17px,1.5vw,19.5px);color:var(--dim);max-width:62ch}
.lede.dark{color:#4A5260}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:16px;padding:15px 26px;text-decoration:none;border:0;cursor:pointer;clip-path:var(--chamfer-sm);transition:background .15s,color .15s,transform .1s}
.btn-y{background:var(--yellow);color:var(--ink)}
.btn-y:hover{background:var(--yellow-hot)}
.btn-y:active{transform:translateY(1px)}
.btn-o{background:transparent;color:var(--bone);box-shadow:inset 0 0 0 2px var(--line-soft)}
.btn-o:hover{box-shadow:inset 0 0 0 2px var(--yellow);color:var(--yellow)}
.btn-d{background:var(--ink);color:var(--white)}
.btn-d:hover{background:var(--steel-2)}
.btn-lg{font-size:18px;padding:18px 32px}
section{padding-block:clamp(56px,7vw,96px)}
.s-dark{background:var(--ink);background-image:var(--tread)}
.s-steel{background:var(--steel)}
.s-bone{background:var(--bone);color:var(--ink)}
.s-bone h1,.s-bone h2,.s-bone h3{color:var(--ink)}
.s-yellow{background:var(--yellow);color:var(--ink)}
.hazard{height:14px;background:var(--hazard)}
.rule{height:3px;background:var(--yellow);width:56px;flex:none}

/* ---------- top bars ---------- */
.alertbar{background:var(--yellow);color:var(--ink)}
.alertbar .wrap{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding-block:8px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13.5px;text-align:center}
.livedot{width:9px;height:9px;border-radius:50%;background:var(--alert);flex:none;box-shadow:0 0 0 0 rgba(255,75,35,.75);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(255,75,35,0)}100%{box-shadow:0 0 0 0 rgba(255,75,35,0)}}
.alertbar a{color:var(--ink);text-decoration:none;border-bottom:2px solid rgba(11,12,14,.35)}
.alertbar a:hover{border-bottom-color:var(--ink)}

header.nav{position:sticky;top:0;z-index:60;background:var(--ink-2);border-bottom:1px solid var(--line)}
.navrow{display:flex;align-items:center;gap:18px;padding-block:12px}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{height:58px;width:auto}
.navlinks{display:flex;align-items:center;gap:2px;margin-left:auto;flex-wrap:wrap}
.navlinks a{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:15px;color:var(--dim);text-decoration:none;padding:9px 12px;border-bottom:3px solid transparent}
.navlinks a:hover{color:var(--white)}
.navlinks a.on{color:var(--white);border-bottom-color:var(--yellow)}
.navcall{flex:none}
.burger{display:none;margin-left:auto;background:transparent;border:2px solid var(--line-soft);color:var(--bone);width:46px;height:44px;cursor:pointer;align-items:center;justify-content:center;clip-path:var(--chamfer-sm)}
.burger span{display:block;width:20px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--ink);background-image:var(--tread);padding-block:clamp(56px,8vw,104px);border-bottom:1px solid var(--line)}
.hero::after{content:"";position:absolute;right:-90px;top:50%;transform:translateY(-50%);width:min(620px,72vw);aspect-ratio:480/255;background:url("viking-axes-white.png") center/contain no-repeat;opacity:.05;pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:flex;flex-direction:column;gap:26px;max-width:940px}
.hero h1 span{color:var(--yellow)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-note{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--dim-2);text-transform:uppercase}

/* ---------- spec plate ---------- */
.plate{background:var(--steel);border:1px solid var(--line);clip-path:var(--chamfer)}
.plate-hd{display:flex;align-items:center;gap:12px;padding:11px 18px;background:var(--ink-2);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow)}
.plate-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.plate-rows > div{padding:20px 22px;border-right:1px solid var(--line);border-top:1px solid var(--line)}
.plate-rows > div:last-child{border-right:0}
.pk{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2);margin-bottom:7px}
.pv{font-family:var(--disp);font-weight:800;font-size:28px;line-height:1;text-transform:uppercase;color:var(--white)}
.pv em{font-style:normal;color:var(--yellow)}

/* ---------- grids ---------- */
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.g4{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.sec-hd{display:flex;flex-direction:column;gap:14px;margin-bottom:38px;max-width:70ch}

/* ---------- service SKU card ---------- */
.sku{background:var(--white);color:var(--ink);clip-path:var(--chamfer);display:flex;flex-direction:column;border-top:5px solid var(--yellow)}
.s-dark .sku,.s-steel .sku{background:var(--steel-2);color:var(--bone)}
.sku-top{padding:22px 22px 16px;display:flex;flex-direction:column;gap:10px}
.sku-code{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--dim-2)}
.s-bone .sku-code{color:#7A828E}
.sku h3{font-size:24px}
.sku p{font-size:15.5px;line-height:1.55;color:#4A5260}
.s-dark .sku p,.s-steel .sku p{color:var(--dim)}
.sku-specs{margin-top:auto;border-top:1px solid var(--bone-line);display:flex;flex-direction:column}
.s-dark .sku-specs,.s-steel .sku-specs{border-top-color:var(--line)}
.sku-specs span{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:13.5px;padding:9px 22px;border-bottom:1px solid var(--bone-line);display:flex;gap:9px;align-items:baseline}
.s-dark .sku-specs span,.s-steel .sku-specs span{border-bottom-color:var(--line)}
.sku-specs span:last-child{border-bottom:0}
.sku-specs span::before{content:"";width:7px;height:7px;background:var(--yellow);flex:none;transform:translateY(-1px)}

/* ---------- photo plate (awaiting real photography) ---------- */
.pp{position:relative;background:var(--steel-2);background-image:var(--tread);border:1px solid var(--line);aspect-ratio:4/3;display:flex;align-items:flex-end;overflow:hidden;clip-path:var(--chamfer-sm)}
.pp::before{content:"";position:absolute;inset:0;background:url("viking-axes-white.png") center/52% no-repeat;opacity:.07}
.pp::after{content:"";position:absolute;inset:12px;border:2px solid rgba(255,194,14,.28);border-inline:0;pointer-events:none}
.pp-cap{position:relative;width:100%;padding:12px 14px;background:linear-gradient(to top,rgba(11,12,14,.92),rgba(11,12,14,0));display:flex;justify-content:space-between;gap:10px;align-items:flex-end}
.pp-cap b{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:14.5px;color:var(--white)}
.pp-cap i{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--yellow);white-space:nowrap}
.pp.wide{aspect-ratio:16/9}

/* ---------- emergency band ---------- */
.band{background:var(--ink);position:relative}
.band .wrap{display:flex;gap:26px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:clamp(34px,4.4vw,52px)}
.band h2{font-size:clamp(30px,4.4vw,52px)}
.band .wrap > .stack{flex:1 1 340px;min-width:0}
.split{display:flex;gap:30px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.split > .stack{flex:1 1 340px;min-width:0}
.split > .hero-cta,.split > .btn,.split > a{flex:0 1 auto;max-width:100%}
.hero-cta{max-width:100%}
.hero-cta .btn{max-width:100%}
.band h2 em{font-style:normal;color:var(--yellow)}

/* ---------- testimonial ---------- */
.quote{background:var(--steel);border-left:5px solid var(--yellow);padding:26px 26px 22px;display:flex;flex-direction:column;gap:14px}
.s-bone .quote{background:var(--white);border-left-color:var(--yellow)}
.quote .stars{color:var(--yellow);letter-spacing:.22em;font-size:14px}
.quote h4{font-family:var(--disp);font-weight:800;font-size:21px;text-transform:uppercase;line-height:1.05}
.quote p{font-size:15.5px;color:var(--dim)}
.s-bone .quote p{color:#4A5260}
.quote cite{font-style:normal;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2);margin-top:auto;padding-top:4px}
.quote-big p{font-size:clamp(18px,2vw,22px);line-height:1.5;color:var(--bone)}

/* ---------- numbered / listed ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:0;border-top:1px solid var(--line)}
.steps > div{padding:26px 24px 30px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.steps > div:last-child{border-right:0}
.s-bone .steps,.s-bone .steps > div{border-color:var(--bone-line)}
.step-n{font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--yellow-deep)}
.s-dark .step-n,.s-steel .step-n{color:var(--yellow)}
.steps h3{font-size:22px}
.steps p{font-size:15.5px;color:var(--dim)}
.s-bone .steps p{color:#4A5260}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--line)}
.s-bone .faq{border-top-color:var(--bone-line)}
.faq details{border-bottom:1px solid var(--line)}
.s-bone .faq details{border-bottom-color:var(--bone-line)}
.faq summary{cursor:pointer;list-style:none;padding:20px 46px 20px 0;position:relative;font-family:var(--disp);font-weight:800;font-size:clamp(19px,2vw,23px);text-transform:uppercase;line-height:1.1}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:var(--cond);font-weight:700;font-size:28px;color:var(--yellow);line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 22px;max-width:70ch;color:var(--dim);font-size:16px}
.s-bone .faq details p{color:#4A5260}

/* ---------- team ---------- */
.member{background:var(--steel);border:1px solid var(--line);clip-path:var(--chamfer);display:flex;flex-direction:column}
.member .pp{border:0;border-bottom:1px solid var(--line);clip-path:none;aspect-ratio:1/1}
.member-body{padding:22px;display:flex;flex-direction:column;gap:12px}
.member h3{font-size:25px}
.member .role{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow)}
.member p{font-size:15.5px;color:var(--dim)}

/* ---------- contact ---------- */
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--yellow)}
.field input,.field select,.field textarea{background:var(--ink);border:1px solid var(--line-soft);color:var(--bone);font-family:var(--body);font-size:16px;padding:12px 14px;width:100%}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--yellow);outline:none}
.contact-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.contact-list a,.contact-list div{display:flex;flex-direction:column;gap:3px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.contact-list .k{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2)}
.contact-list .v{font-family:var(--disp);font-weight:800;font-size:23px;text-transform:uppercase;color:var(--white);line-height:1.1}
.contact-list a:hover .v{color:var(--yellow)}
.contact-list .v.sm{font-family:var(--body);font-weight:500;font-size:17px;text-transform:none;letter-spacing:0}
.formnote{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--dim-2);line-height:1.7}

/* ---------- footer ---------- */
footer{background:var(--ink-2);border-top:1px solid var(--line);padding-block:46px 30px}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:34px;align-items:start}
footer img.flogo{height:62px;width:auto;margin-bottom:16px}
.fh{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--yellow);margin-bottom:14px}
.flist{display:flex;flex-direction:column;gap:9px}
.flist a,.flist span{text-decoration:none;color:var(--dim);font-size:15.5px}
.flist a:hover{color:var(--white)}
.foot-bot{margin-top:38px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim-2)}

/* ---------- mobile call bar ---------- */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--yellow);color:var(--ink);text-decoration:none;align-items:center;justify-content:center;gap:10px;padding:14px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:16px;border-top:3px solid var(--ink)}

@media (max-width:860px){
  .burger{display:flex}
  .navlinks{display:none;order:3;width:100%;flex-direction:column;align-items:stretch;gap:0;margin-left:0;border-top:1px solid var(--line);padding-block:6px}
  .navlinks.open{display:flex}
  .navlinks a{border-bottom:1px solid var(--line);border-left:3px solid transparent;padding:13px 4px}
  .navlinks a.on{border-bottom-color:var(--line);border-left-color:var(--yellow)}
  .navcall{display:none}
  .navrow{flex-wrap:wrap}
  .callbar{display:flex}
  body{padding-bottom:58px}
  .hero::after{opacity:.035}
  .plate-rows > div{border-right:0}
  .brand img{height:46px}
  .steps > div{border-right:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
