:root{
  --ink:#1B1F23;
  --paper:#F2F3F0;
  --paper-dim:#E7E8E3;
  --hazard:#F4C21A;
  --compliant:#1F6F4A;
  --compliant-deep:#164F35;
  --steel:#4A5A6A;
  --steel-light:#7C8B99;
  --white:#FFFFFF;
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Barlow Condensed',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.02em;
  margin:0;
  color:var(--ink);
}
.mono{
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:0.02em;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

:focus-visible{
  outline:3px solid var(--compliant);
  outline-offset:2px;
}

/* ===== Header ===== */
header{
  position:sticky;top:0;z-index:50;
  background:var(--ink);
  border-bottom:4px solid var(--hazard);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;max-width:1120px;margin:0 auto;
}
.brand{
  display:flex;align-items:center;gap:10px;
  color:var(--white);
  font-family:'Barlow Condensed',sans-serif;
  font-weight:800;
  font-size:1.25rem;
  text-transform:uppercase;
  text-decoration:none;
  letter-spacing:0.03em;
}
.brand .tag-dot{
  width:12px;height:12px;background:var(--hazard);
  border-radius:50%;flex-shrink:0;
}
nav ul{
  display:flex;gap:28px;list-style:none;margin:0;padding:0;
}
nav ul a{
  color:var(--paper-dim);
  text-decoration:none;
  font-size:0.9rem;
  font-weight:500;
  transition:color .15s;
}
nav ul a:hover,nav ul a.active{color:var(--hazard);}
.nav-cta{
  background:var(--hazard);color:var(--ink);
  padding:10px 18px;
  font-weight:700;font-size:0.85rem;
  text-decoration:none;
  border-radius:var(--radius);
  text-transform:uppercase;letter-spacing:0.03em;
}
.menu-btn{
  display:none;background:none;border:1px solid var(--steel-light);
  color:var(--white);padding:8px 12px;font-size:0.85rem;
  border-radius:var(--radius);cursor:pointer;
}
@media(max-width:820px){
  nav ul{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    background:var(--ink);
    flex-direction:column;
    gap:0;
    border-bottom:4px solid var(--hazard);
  }
  nav ul.open{display:flex;}
  nav ul a{padding:16px 24px;border-top:1px solid rgba(255,255,255,0.08);}
  .menu-btn{display:block;}
}

/* ===== Page header (non-hero pages) ===== */
.page-header{
  background:var(--ink);
  color:var(--white);
  padding:64px 0;
}
.page-header .kicker{color:var(--hazard);}
.page-header h1{
  font-size:clamp(2.2rem,5vw,3.2rem);
  color:var(--white);
}
.page-header p{
  color:var(--paper-dim);
  font-size:1.05rem;
  max-width:56ch;
  margin-top:16px;
}

/* ===== Hero ===== */
.hero{
  background:var(--ink);
  color:var(--white);
  padding:72px 0 0;
  position:relative;
  overflow:hidden;
}
.hero-grid{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;
  align-items:center;
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;
  color:var(--hazard);
  background:rgba(244,194,26,0.1);
  border:1px solid rgba(244,194,26,0.35);
  padding:6px 12px;
  border-radius:var(--radius);
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(2.6rem,6vw,4.4rem);
  line-height:0.98;
  font-weight:800;
  color:var(--white);
}
.hero h1 span{color:var(--hazard);}
.hero p.lede{
  color:var(--paper-dim);
  font-size:1.1rem;
  max-width:46ch;
  margin:22px 0 32px;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.btn-primary{
  background:var(--hazard);color:var(--ink);
  padding:15px 26px;font-weight:700;
  text-decoration:none;border-radius:var(--radius);
  font-size:0.95rem;
  display:inline-block;
  border:2px solid var(--hazard);
  transition:transform .12s ease;
}
.btn-primary:hover{transform:translateY(-2px);}
.btn-secondary{
  background:transparent;color:var(--white);
  border:2px solid var(--steel-light);
  padding:15px 26px;font-weight:700;
  text-decoration:none;border-radius:var(--radius);
  font-size:0.95rem;display:inline-block;
}

/* Inspection tag — signature element */
.tag{
  background:var(--paper);
  color:var(--ink);
  position:relative;
  padding:28px 26px 24px;
  border-radius:var(--radius);
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
  transform:rotate(2deg);
  max-width:360px;
  justify-self:end;
}
.tag::before{
  content:"";
  position:absolute;left:50%;top:-14px;
  transform:translateX(-50%);
  width:28px;height:28px;
  background:var(--ink);
  border-radius:50%;
  border:5px solid var(--paper);
}
.tag::after{
  content:"";
  position:absolute;left:50%;top:-3px;
  transform:translateX(-50%);
  width:6px;height:6px;
  background:var(--paper);
  border-radius:50%;
}
.tag-status{
  display:flex;align-items:center;gap:8px;
  color:var(--compliant);
  font-weight:700;
  font-size:0.85rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:2px dashed var(--steel-light);
}
.tag-status .dot{width:9px;height:9px;background:var(--compliant);border-radius:50%;}
.tag-row{
  display:flex;justify-content:space-between;gap:12px;
  font-size:0.84rem;
  padding:7px 0;
  border-bottom:1px solid var(--paper-dim);
}
.tag-row:last-of-type{border-bottom:none;}
.tag-row .k{color:var(--steel);}
.tag-row .v{font-weight:600;text-align:right;}
.tag-ref{
  margin-top:16px;
  font-size:0.72rem;
  color:var(--steel);
}

@media(max-width:900px){
  .tag{transform:rotate(0deg);justify-self:center;margin-top:12px;}
}

.hero-strip{
  margin-top:56px;
  border-top:1px solid rgba(255,255,255,0.12);
  padding:20px 0;
  display:flex;gap:40px;flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;
  color:var(--steel-light);
}
.hero-strip strong{color:var(--paper-dim);}

/* ===== Section shell ===== */
section{padding:88px 0;}
.section-head{max-width:640px;margin-bottom:52px;}
.kicker{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;
  color:var(--compliant-deep);
  text-transform:uppercase;
  letter-spacing:0.08em;
  display:block;margin-bottom:12px;
}
.section-head h2{
  font-size:clamp(1.9rem,3.6vw,2.6rem);
}
.section-head p{
  color:var(--steel);
  font-size:1.05rem;
  margin-top:14px;
}

/* ===== Services ===== */
.services{background:var(--white);}
.service-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  background:var(--paper-dim);
  border:1px solid var(--paper-dim);
}
@media(max-width:820px){.service-grid{grid-template-columns:1fr;}}
.service{
  background:var(--white);
  padding:34px 30px;
}
.service .num{
  font-family:'IBM Plex Mono',monospace;
  color:var(--hazard);
  background:var(--ink);
  display:inline-block;
  padding:3px 9px;
  font-size:0.78rem;
  border-radius:var(--radius);
  margin-bottom:18px;
}
.service h3{
  font-size:1.4rem;
  margin-bottom:10px;
}
.service p{color:var(--steel);font-size:0.96rem;}

/* ===== Process ===== */
.process{background:var(--paper);}
.process-list{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
@media(max-width:900px){.process-list{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.process-list{grid-template-columns:1fr;}}
.step{
  background:var(--white);
  border:1px solid var(--paper-dim);
  border-top:4px solid var(--compliant);
  padding:26px 22px;
  border-radius:var(--radius);
}
.step .stage{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;
  color:var(--steel);
  text-transform:uppercase;
  letter-spacing:0.06em;
}
.step h3{font-size:1.25rem;margin:8px 0 8px;}
.step p{color:var(--steel);font-size:0.9rem;}

/* ===== Legislation strip ===== */
.legislation{
  background:var(--ink);
  color:var(--paper-dim);
}
.legislation .section-head p{color:var(--steel-light);}
.legislation .kicker{color:var(--hazard);}
.legislation h2{color:var(--white);}
.leg-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.1);
}
@media(max-width:820px){.leg-grid{grid-template-columns:1fr;}}
.leg-card{
  background:#22272C;
  padding:26px;
}
.leg-card .code{
  font-family:'IBM Plex Mono',monospace;
  color:var(--hazard);
  font-size:0.82rem;
  display:block;
  margin-bottom:10px;
}
.leg-card p{color:var(--steel-light);font-size:0.9rem;margin:0;}

/* ===== CTA / Contact ===== */
.contact{background:var(--compliant-deep);color:var(--white);}
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact h2{color:var(--white);}
.contact .section-head p{color:#CFE3D8;}
.contact .kicker{color:var(--hazard);}
.contact-details{margin-top:26px;display:flex;flex-direction:column;gap:14px;}
.contact-details div{
  display:flex;gap:12px;font-size:0.95rem;
}
.contact-details .k{
  font-family:'IBM Plex Mono',monospace;
  color:var(--hazard);
  font-size:0.78rem;
  text-transform:uppercase;
  min-width:90px;
  padding-top:2px;
}
form{
  background:var(--white);color:var(--ink);
  padding:32px;border-radius:var(--radius);
}
form label{
  display:block;font-size:0.8rem;font-weight:600;
  text-transform:uppercase;letter-spacing:0.03em;
  margin-bottom:6px;color:var(--steel);
}
form .field{margin-bottom:18px;}
form input,form textarea,form select{
  width:100%;padding:12px 14px;
  border:1px solid var(--paper-dim);
  background:var(--paper);
  border-radius:var(--radius);
  font-family:'Inter',sans-serif;
  font-size:0.95rem;
  color:var(--ink);
}
form textarea{min-height:100px;resize:vertical;}
.submit-btn{
  background:var(--ink);color:var(--white);
  border:none;padding:15px 24px;
  font-weight:700;text-transform:uppercase;
  letter-spacing:0.03em;font-size:0.9rem;
  border-radius:var(--radius);width:100%;
  cursor:pointer;
}
.submit-btn:hover{background:#000;}
.form-note{font-size:0.82rem;color:var(--steel);margin-top:12px;}

/* ===== Shop category tiles ===== */
.category-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
@media(max-width:700px){.category-grid{grid-template-columns:1fr;}}
.category-card{
  background:var(--white);
  border:1px solid var(--paper-dim);
  border-top:4px solid var(--compliant);
  border-radius:var(--radius);
  padding:36px 30px;
  text-decoration:none;
  display:block;
}
.category-card h3{font-size:1.6rem;margin-bottom:10px;}
.category-card p{color:var(--steel);font-size:0.96rem;margin:0 0 18px;}
.category-card .cat-link{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.8rem;color:var(--compliant-deep);
  text-transform:uppercase;letter-spacing:0.04em;
}

/* ===== Shop ===== */
.shop{background:var(--white);}
.product-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
@media(max-width:900px){.product-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.product-grid{grid-template-columns:1fr;}}
.product-card{
  background:var(--white);
  border:1px solid var(--paper-dim);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;flex-direction:column;
}
.product-media{
  aspect-ratio:4/3;
  background:var(--paper);
  border-bottom:1px solid var(--paper-dim);
  display:flex;align-items:center;justify-content:center;
  color:var(--steel-light);
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;
  text-align:center;
  padding:16px;
}
.product-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.product-body h3{font-size:1.2rem;}
.product-body p{color:var(--steel);font-size:0.92rem;margin:0;flex:1;}
.product-price{
  font-family:'IBM Plex Mono',monospace;
  font-weight:600;
  font-size:1.05rem;
  color:var(--compliant-deep);
}
.product-price .unit{
  font-size:0.72rem;color:var(--steel);font-weight:500;
}
.product-enquire{
  display:inline-block;text-align:center;
  background:var(--ink);color:var(--white);
  padding:12px 18px;font-weight:700;font-size:0.85rem;
  text-transform:uppercase;letter-spacing:0.03em;
  text-decoration:none;border-radius:var(--radius);
  margin-top:6px;
}
.product-enquire:hover{background:#000;}
.invoice-note{
  display:flex;align-items:center;gap:10px;
  background:rgba(31,111,74,0.08);
  border:1px solid rgba(31,111,74,0.25);
  color:var(--compliant-deep);
  padding:12px 16px;
  font-size:0.85rem;
  border-radius:var(--radius);
  margin-bottom:40px;
}

/* ===== CTA banner (used on inner pages) ===== */
.cta-banner{
  background:var(--white);
  border-top:1px solid var(--paper-dim);
  border-bottom:1px solid var(--paper-dim);
  padding:56px 0;
  text-align:center;
}
.cta-banner h2{font-size:clamp(1.6rem,3vw,2.1rem);}
.cta-banner p{color:var(--steel);margin:14px 0 26px;}

footer{
  background:var(--ink);color:var(--steel-light);
  padding:32px 0;font-size:0.82rem;
}
.foot-grid{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
}
.foot-grid .brand{font-size:1rem;}
.foot-links{display:flex;gap:20px;list-style:none;padding:0;margin:0;}
.foot-links a{text-decoration:none;color:var(--steel-light);}
.foot-links a:hover{color:var(--hazard);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
