:root{
    --ink:#12161B;
    --steel:#1E2731;
    --steel-2:#28323D;
    --fog:#EEF0F2;
    --fog-2:#E2E5E9;
    --paper:#FAFAF9;
    --amber:#F2A93B;
    --amber-dim:#C98A2C;
    --amber-dim-on-light:#996921; /* AA-compliant (4.57:1) on --paper, original --amber-dim was 2.81:1 */
    --signal:#4C86A8;
    --slate:#8A94A0;
    --slate-dark:#4E5762;
    --line:rgba(255,255,255,0.12);
    --line-dark:rgba(18,22,27,0.12);
    --radius:2px;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Oswald',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    margin:0;
    color:inherit;
  }
  .mono{ font-family:'IBM Plex Mono',monospace; }
  a{ color:inherit; text-decoration:none; }
  img,svg{ display:block; max-width:100%; height:auto; }
  ul{ margin:0; padding:0; list-style:none; }
  section{ position:relative; }
  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--amber);
  }
  .eyebrow.on-light{ color:var(--amber-dim-on-light); }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 26px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    border-radius:var(--radius);
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .15s ease, border-color .15s ease;
  }
  .btn:hover{ transform:translateY(-1px); }
  .btn-solid{ background:var(--amber); color:var(--ink); }
  .btn-solid:hover{ background:#ffb84d; }
  .btn-outline{ border-color:rgba(255,255,255,0.35); color:var(--fog); }
  .btn-outline:hover{ border-color:var(--fog); }
  .btn-outline.on-light{ border-color:rgba(18,22,27,0.3); color:var(--ink); }
  .btn-outline.on-light:hover{ border-color:var(--ink); }

  /* skip link */
  .skip-link{
    position:absolute; left:-999px; top:0; background:var(--amber); color:var(--ink);
    padding:10px 16px; z-index:1000; font-family:'IBM Plex Mono',monospace; font-size:13px;
  }
  .skip-link:focus{ left:16px; top:16px; }

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

  /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(18,22,27,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center; gap:10px;
    font-family:'Oswald',sans-serif; font-size:19px; font-weight:600;
    color:var(--fog); letter-spacing:0.02em; text-transform:uppercase;
  }
  .logo svg{ width:26px; height:26px; }
  nav.primary-nav{ display:flex; gap:34px; }
  nav.primary-nav a{
    color:var(--slate); font-size:14px; font-weight:500;
    transition:color .15s ease;
  }
  nav.primary-nav a:hover{ color:var(--fog); }
  .header-actions{ display:flex; align-items:center; gap:20px; }
  .emergency-pill{
    display:flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--fog);
    border:1px solid var(--slate-dark); border-radius:999px; padding:7px 14px;
  }
  .emergency-pill .dot{
    width:7px; height:7px; border-radius:50%; background:var(--amber);
    animation:pulse 2s ease-in-out infinite;
  }
  @keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:0.35;} }
  .nav-toggle{ display:none; background:none; border:none; color:var(--fog); cursor:pointer; }

  @media (max-width:860px){
    nav.primary-nav{
      position:absolute; top:76px; left:0; right:0;
      background:var(--ink); border-bottom:1px solid var(--line);
      flex-direction:column; gap:0; padding:8px 32px 18px;
      display:none;
    }
    nav.primary-nav.open{ display:flex; }
    nav.primary-nav a{ padding:12px 0; border-bottom:1px solid var(--line); }
    .nav-toggle{ display:block; }
  }

  /* ---------- HERO ---------- */
  .hero{
    background:linear-gradient(180deg, var(--ink) 0%, #171D24 100%);
    color:var(--fog);
    padding:168px 0 96px;
    overflow:hidden;
  }
  .hero .wrap{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:56px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(34px, 4.6vw, 58px);
    line-height:1.04;
    margin:18px 0 22px;
    color:var(--fog);
  }
  .hero h1 em{
    font-style:normal;
    color:var(--amber);
  }
  .hero p.lede{
    font-size:17px;
    color:var(--slate);
    max-width:46ch;
    margin-bottom:34px;
  }
  .hero .actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:52px; }
  .clients-row{
    border-top:1px solid var(--line); padding-top:24px;
  }
  .clients-label{
    display:block; font-family:'IBM Plex Mono',monospace; font-size:12px;
    color:var(--slate); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:16px;
  }
  .clients-list{ display:flex; flex-wrap:wrap; gap:10px 30px; }
  .clients-list li{
    font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:0.02em;
    color:var(--fog); text-transform:uppercase;
  }

  .structure-photos{ display:flex; flex-direction:column; gap:14px; }

  @media (max-width:960px){
    .hero .wrap{ grid-template-columns:1fr; }
    .structure-photos{ order:-1; max-width:460px; margin:0 auto 8px; }
  }

  /* ---------- SECTION HEADERS ---------- */
  .section-head{ max-width:640px; margin-bottom:52px; }
  .section-head h2{ font-size:clamp(26px,3vw,36px); margin-top:14px; }
  .section-head p{ color:var(--slate-dark); margin-top:14px; font-size:15.5px; }
  .on-dark .section-head p{ color:var(--slate); }

  /* ---------- SERVICES ---------- */
  .services{ background:var(--fog); padding:104px 0; }
  .service-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line-dark);
    border:1px solid var(--line-dark);
  }
  .service-card{
    background:var(--paper);
    padding:34px 28px;
    display:flex; flex-direction:column; gap:14px;
  }
  .service-card .idx{
    font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--amber-dim);
  }
  .service-card h3{ font-size:19px; letter-spacing:0.005em; }
  .service-card p{ font-size:14.5px; color:var(--slate-dark); margin:0; }

  @media (max-width:960px){
    .service-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:560px){
    .service-grid{ grid-template-columns:1fr; }
  }

  /* ---------- PROCESS ---------- */
  .process{ background:var(--steel); color:var(--fog); padding:104px 0; }
  .process-track{
    display:grid; grid-template-columns:repeat(4,1fr); gap:0;
    position:relative;
  }
  .process-track::before{
    content:""; position:absolute; top:17px; left:0; right:0; height:1px;
    background:var(--line);
  }
  .process-step{ padding:0 24px 0 0; position:relative; }
  .process-step .marker{
    width:34px; height:34px; border-radius:50%;
    background:var(--steel); border:1px solid var(--amber);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--amber);
    margin-bottom:22px; position:relative; z-index:2;
  }
  .process-step h3{ font-size:16.5px; margin-bottom:10px; letter-spacing:0.01em; }
  .process-step p{ font-size:14px; color:var(--slate); margin:0; max-width:32ch; }

  @media (max-width:860px){
    .process-track{ grid-template-columns:1fr; gap:38px; }
    .process-track::before{ display:none; }
  }

  /* ---------- COVERAGE ---------- */
  .coverage{ background:var(--paper); padding:104px 0; }
  .coverage-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:64px;
    align-items:start;
  }
  .region-table{ font-family:'IBM Plex Mono',monospace; font-size:13.5px; }
  .region-table .col-title{
    font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--amber-dim);
    margin-bottom:14px; display:block;
  }
  .region-table ul li{
    display:flex; justify-content:space-between;
    padding:9px 0; border-bottom:1px solid var(--fog-2); color:var(--slate-dark);
  }
  .region-table ul li span:last-child{ color:var(--ink); }
  .coverage-cols{ display:grid; grid-template-columns:1fr 1fr; gap:36px; }
  .coverage-note{ margin-top:28px; font-size:14.5px; color:var(--slate-dark); }

  @media (max-width:860px){
    .coverage-grid{ grid-template-columns:1fr; gap:40px; }
  }
  @media (max-width:560px){
    .coverage-cols{ grid-template-columns:1fr; }
  }

  /* ---------- SAFETY / COMPLIANCE ---------- */
  .safety{ background:var(--ink); color:var(--fog); padding:104px 0; }
  .safety-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .safety-item{ background:var(--ink); padding:30px 32px; display:flex; gap:18px; }
  .safety-item svg{ flex-shrink:0; width:26px; height:26px; margin-top:2px; }
  .safety-item h3{ font-size:16px; margin-bottom:8px; letter-spacing:0.01em; }
  .safety-item p{ font-size:14px; color:var(--slate); margin:0; }

  @media (max-width:760px){ .safety-grid{ grid-template-columns:1fr; } }

  /* ---------- CONTACT ---------- */
  .contact{ background:var(--steel-2); color:var(--fog); padding:96px 0 64px; }
  .contact-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px;
  }
  .contact h2{ font-size:clamp(26px,3vw,38px); margin:14px 0 20px; }
  .contact p.lede{ color:var(--slate); max-width:44ch; margin-bottom:30px; font-size:15.5px; }
  .contact-line{
    display:flex; align-items:baseline; gap:14px; margin-bottom:16px;
    font-family:'IBM Plex Mono',monospace;
  }
  .contact-line .k{ font-size:12px; color:var(--slate); text-transform:uppercase; letter-spacing:0.08em; width:110px; flex-shrink:0; }
  .contact-line .v{ font-size:15px; color:var(--fog); }
  .contact-line a.v:hover{ color:var(--amber); }
  .emergency-box{
    border:1px solid var(--amber-dim); border-radius:var(--radius);
    padding:26px 28px; background:rgba(242,169,59,0.06);
  }
  .emergency-box .eyebrow{ margin-bottom:10px; display:block; }
  .emergency-box .phone{ font-family:'IBM Plex Mono',monospace; font-size:30px; color:var(--amber); display:block; margin-bottom:8px; }
  .emergency-box p{ font-size:13.5px; color:var(--slate); margin:0; }

  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }

  footer{
    background:var(--ink); color:var(--slate);
    padding:26px 0; border-top:1px solid var(--line);
    font-family:'IBM Plex Mono',monospace; font-size:12.5px;
  }
  footer .wrap{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
    html{ scroll-behavior:auto; }
  }
