:root{
    --ink:#16202B;
    --ink-soft:#243342;
    --paper:#F5F6F4;
    --panel:#FFFFFF;
    --slate:#5B6A78;
    --line:#D5DAD8;
    --line-strong:#B9C2C0;
    --signal:#C4602A;      /* over-limit — used ONLY where something exceeds a limit */
    --marine:#2E5E52;      /* the legal limit / links / compliant reference */
    --marine-soft:#EAF1EE;
    --signal-soft:#F7EBE2;

    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --serif:Georgia,"Times New Roman",serif;
    --mono:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--serif);
    font-size:18px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:940px;margin:0 auto;padding:0 24px;}

  /* ---------- confidential bar ---------- */
  .confidential{
    background:var(--ink);
    color:#E7ECEA;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-align:center;
    padding:9px 16px;
    position:sticky;
    top:0;
    z-index:50;
  }
  .confidential b{color:#fff;}

  /* ---------- hero ---------- */
  .hero{
    background:var(--ink);
    color:#F2F5F4;
    padding:44px 0 34px;
    border-bottom:1px solid #0c141c;
  }
  .eyebrow{
    font-family:var(--mono);
    font-size:12.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:#8FA6A0;
    margin:0 0 20px;
  }
  .hero h1{
    font-family:var(--sans);
    font-weight:800;
    letter-spacing:-.02em;
    line-height:1.04;
    font-size:clamp(34px,6vw,58px);
    margin:0 0 18px;
    max-width:16ch;
  }
  .hero h1 .over{color:var(--signal);}
  .hero .lede{
    font-size:clamp(17px,2.3vw,20px);
    color:#C6D2CE;
    max-width:60ch;
    margin:0 0 40px;
  }

  /* ---------- limit meter (signature element) ---------- */
  .meter-label{
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#8FA6A0;
    margin:0 0 14px;
  }
  .meter{
    position:relative;
    height:64px;
    margin:0 0 8px;
    border-radius:2px;
    background:linear-gradient(90deg,
      rgba(46,94,82,.35) 0%,
      rgba(46,94,82,.35) 22.2%,
      rgba(196,96,42,.14) 22.2%,
      rgba(196,96,42,.30) 100%);
    border:1px solid #2c3a45;
  }
  .meter .limit{
    position:absolute;top:-6px;bottom:-6px;left:22.2%;
    width:2px;background:var(--marine);
  }
  .meter .limit::after{
    content:"LIMIT 50 dBA";
    position:absolute;top:-20px;left:6px;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
    color:#7FBAA9;white-space:nowrap;
  }
  .meter .band{
    position:absolute;top:0;bottom:0;
    left:41.1%;width:2.9%;
    background:var(--signal);
    opacity:.9;
  }
  .meter .measured{
    position:absolute;bottom:-22px;left:41.1%;
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;
    color:#E4A17A;white-space:nowrap;
  }
  .meter .peak{
    position:absolute;top:0;bottom:0;left:90%;
    width:2px;background:#E4A17A;
  }
  .meter .peak::after{
    content:"PEAK 80.5";
    position:absolute;top:-20px;left:-8px;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
    color:#E4A17A;white-space:nowrap;
  }
  .meter-scale{
    display:flex;justify-content:space-between;
    font-family:var(--mono);font-size:10.5px;color:#6C7F79;
    letter-spacing:.08em;margin-top:26px;
  }
  .meter-plain{
    font-size:16px;color:#B7C4BF;max-width:56ch;margin:22px 0 0;
  }
  .hero-cta{margin:8px 0 46px;}

  /* ---------- section framing ---------- */
  section{padding:34px 0;}
  .rule{
    border:0;height:1px;background:var(--line);
    max-width:940px;margin:0 auto;
  }
  .rule-code{
    max-width:940px;margin:0 auto;
    display:flex;align-items:center;gap:14px;
    padding:0 24px;
  }
  .rule-code::before,.rule-code::after{
    content:"";flex:1;height:1px;background:var(--line-strong);
  }
  .rule-code span{
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--slate);white-space:nowrap;
  }

  h2{
    font-family:var(--sans);
    font-weight:750;
    letter-spacing:-.01em;
    font-size:clamp(24px,3.4vw,32px);
    line-height:1.12;
    margin:0 0 14px;
  }
  h3{
    font-family:var(--sans);
    font-weight:700;
    font-size:15px;
    letter-spacing:.02em;
    text-transform:uppercase;
    color:var(--slate);
    margin:0 0 10px;
  }
  p{margin:0 0 18px;}
  .muted{color:var(--slate);}

  /* ---------- intro / one-owner logic ---------- */
  .intro p{font-size:19px;}
  .owner-logic{
    background:var(--panel);
    border:1px solid var(--line);
    border-left:3px solid var(--marine);
    border-radius:3px;
    padding:24px 26px;
    margin-top:28px;
  }
  .owner-logic strong{font-family:var(--sans);}

  .why-list{list-style:none;margin:6px 0 0;padding:0;}
  .why-list li{
    position:relative;padding:0 0 16px 30px;font-size:19px;line-height:1.5;
  }
  .why-list li:last-child{padding-bottom:0;}
  .why-list li::before{
    content:"";position:absolute;left:2px;top:11px;
    width:9px;height:9px;background:var(--marine);border-radius:2px;
  }

  /* ---------- category cards ---------- */
  .cat{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:4px;
    overflow:hidden;
    margin-bottom:8px;
  }
  .cat-head{
    display:flex;
    gap:20px;
    align-items:flex-start;
    padding:26px 28px 4px;
  }
  .cat-num{
    font-family:var(--mono);
    font-size:13px;
    font-weight:600;
    color:#fff;
    background:var(--ink);
    width:38px;height:38px;flex:0 0 38px;
    border-radius:3px;
    display:flex;align-items:center;justify-content:center;
    margin-top:4px;
  }
  .cat-title-block{flex:1;}
  .cat-source{
    font-family:var(--mono);
    font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
    color:var(--slate);margin:0 0 4px;
  }
  .cat h2{font-size:clamp(22px,3vw,28px);margin:0 0 12px;}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px;}
  .chip{
    font-family:var(--mono);
    font-size:12px;letter-spacing:.02em;
    background:var(--signal-soft);
    color:#8a3d16;
    border:1px solid #E3C3AE;
    border-radius:100px;
    padding:4px 12px;
  }
  .chip.ref{background:var(--marine-soft);color:#204a41;border-color:#BFD6CE;}
  .cat-body{padding:8px 28px 28px;}
  .cat-body .label{
    font-family:var(--mono);font-size:11px;letter-spacing:.13em;
    text-transform:uppercase;color:var(--slate);
    margin:20px 0 6px;
  }
  .cat-body .issue{font-size:18px;margin:0 0 4px;}
  .cat-body .code{font-size:16px;color:var(--ink-soft);margin:0;}

  /* ---------- data table ---------- */
  .data-note{font-family:var(--mono);font-size:12.5px;color:var(--slate);margin:22px 0 10px;letter-spacing:.03em;}
  .chart-wrap{margin:16px 0 6px;}
  table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:13.5px;}
  th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;}
  th{
    font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--slate);font-weight:600;border-bottom:1px solid var(--line-strong);
  }
  td.over{color:var(--signal);font-weight:600;}
  td.limit{color:var(--marine);}
  tr:last-child td{border-bottom:0;}
  .fn{font-family:var(--serif);font-size:14px;color:var(--slate);margin:12px 0 0;}

  /* ---------- media slots ---------- */
  .gallery{display:grid;gap:14px;margin-top:8px;}
  .gallery.v{grid-template-columns:1fr;}
  .gallery.p2{grid-template-columns:repeat(2,1fr);}
  .video-slot{position:relative;aspect-ratio:16/9;}
  .video-slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:4px;}
  .vid{margin:0;}
  .vid-cap{font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.4;color:var(--ink-soft);padding:9px 2px 0;}
  .vid-link{font-family:Arial,Helvetica,sans-serif;color:var(--marine);white-space:nowrap;}
  .slot{
    background:repeating-linear-gradient(45deg,#EFF1EF,#EFF1EF 12px,#EAEDEA 12px,#EAEDEA 24px);
    border:1px dashed var(--line-strong);
    border-radius:4px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:18px;color:var(--slate);
  }
  .slot .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;color:var(--ink-soft);}
  .slot .c{font-family:var(--serif);font-size:14px;}
  .photo-slot{aspect-ratio:4/3;}

  /* ---------- timeline ---------- */
  .timeline{list-style:none;margin:0;padding:0;}
  .timeline li{
    display:grid;grid-template-columns:150px 1fr;gap:20px;
    padding:16px 0;border-top:1px solid var(--line);
  }
  .timeline li:first-child{border-top:0;}
  .timeline .when{font-family:var(--mono);font-size:13px;color:var(--marine);letter-spacing:.02em;padding-top:2px;}
  .timeline .what{font-size:17px;}
  .timeline .now .when{color:var(--signal);font-weight:600;}

  /* ---------- intake ---------- */
  .intake{background:var(--ink);color:#F2F5F4;}
  .intake h2{color:#fff;}
  .intake .lede{color:#C6D2CE;max-width:60ch;font-size:19px;}
  .form-frame{
    margin-top:26px;
  }
  .btn{
    display:inline-block;
    font-family:var(--sans);font-weight:700;font-size:16px;
    letter-spacing:.01em;
    background:var(--signal);color:#fff;text-decoration:none;
    padding:15px 30px;border-radius:4px;
  }
  .assure{
    font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;
    color:#8FA6A0;margin-top:20px;line-height:1.7;
  }
  .assure b{color:#C6D2CE;}

  /* ---------- footer ---------- */
  footer{
    background:var(--ink);color:#8FA6A0;
    font-family:var(--mono);font-size:12px;line-height:1.8;
    letter-spacing:.03em;
    padding:34px 0;text-align:center;
  }
  footer .wrap{max-width:640px;}

  /* ---------- motion ---------- */
  .reveal{opacity:1;transform:none;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ---------- responsive ---------- */
  @media (max-width:640px){
    body{font-size:17px;}
    .cat-head{flex-wrap:wrap;gap:14px;padding:22px 20px 4px;}
    .cat-body{padding:8px 20px 24px;}
    .gallery.p2{grid-template-columns:1fr;}
    .timeline li{grid-template-columns:1fr;gap:4px;}
    .timeline .when{padding-top:0;}
    table{font-size:12px;}
    th,td{padding:9px 8px;}
    .meter .measured{font-size:10px;}
  }

  /* ---------- trash photo grid + lightbox ---------- */
  .photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:8px;}
  .ph{padding:0;border:1px solid var(--line);background:var(--panel);cursor:pointer;
      display:flex;flex-direction:column;border-radius:4px;overflow:hidden;text-align:left;font:inherit;}
  .ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .35s ease;}
  .ph:hover img{transform:scale(1.05);}
  .ph:focus-visible{outline:2px solid var(--marine);outline-offset:2px;}
  .ph-cap{font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.4;color:var(--ink-soft);padding:9px 11px 11px;}
  .lightbox{position:fixed;inset:0;background:rgba(11,17,23,.94);z-index:100;
      display:none;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:28px;}
  .lightbox.open{display:flex;}
  .lightbox img{max-width:92vw;max-height:78vh;object-fit:contain;border-radius:4px;}
  .lightbox .lb-cap{color:#E7ECEA;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5;
      max-width:64ch;text-align:center;}
  .lightbox .lb-x{position:absolute;top:16px;right:22px;color:#fff;font-size:34px;line-height:1;
      background:none;border:0;cursor:pointer;font-family:var(--sans);}
  .lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;
      font-size:44px;line-height:1;background:rgba(0,0,0,.28);border:0;cursor:pointer;
      width:56px;height:72px;border-radius:6px;display:flex;align-items:center;justify-content:center;
      font-family:var(--sans);transition:background .2s ease;-webkit-tap-highlight-color:transparent;}
  .lightbox .lb-nav:hover{background:rgba(0,0,0,.5);}
  .lightbox .lb-prev{left:14px;}
  .lightbox .lb-next{right:14px;}
  .lightbox.solo .lb-nav{display:none;}
  @media (max-width:640px){
    .lightbox .lb-nav{width:44px;height:60px;font-size:34px;}
    .lightbox .lb-prev{left:6px;}
    .lightbox .lb-next{right:6px;}
  }
  @media (max-width:900px) and (min-width:641px){
    .photo-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width:640px){
    .photo-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  }

  /* ---------- business logos in section headers ---------- */
  .cat-logos{margin-left:auto;display:flex;align-items:center;gap:18px;align-self:center;}
  .cat-logo{height:auto;max-height:52px;max-width:172px;width:auto;display:block;}
  @media (max-width:640px){
    .cat-logos{gap:14px;}
    .cat-logo{max-height:40px;max-width:130px;}
  }

  /* ================= MULTI-PAGE: NAV ================= */
  .nav{position:sticky;top:0;z-index:60;background:var(--ink);border-bottom:1px solid #0c141c;}
  .nav-inner{display:flex;align-items:center;gap:18px;min-height:56px;flex-wrap:wrap;}
  .nav-brand{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-decoration:none;font-weight:600;white-space:nowrap;}
  .nav-links{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
  .nav-links a{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.01em;color:#E7ECEA;text-decoration:none;white-space:nowrap;padding:9px 14px;border-radius:5px;border:1px solid rgba(255,255,255,.18);transition:background .15s ease,border-color .15s ease;}
  .nav-links a:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.34);}
  .nav-links a[aria-current="page"]{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42);color:#fff;}
  .nav-cta{background:var(--signal)!important;color:#fff!important;border-color:var(--signal)!important;font-weight:700;padding:9px 18px;}
  .nav-cta:hover{filter:brightness(1.07);}
  .nav-toggle-cb{display:none;}
  .nav-burger{display:none;}
  @media (max-width:880px){
    .nav-burger{display:inline-flex;flex-direction:column;gap:5px;margin-left:auto;cursor:pointer;padding:8px;}
    .nav-burger span{display:block;width:22px;height:2px;background:#E7ECEA;}
    .nav-links{order:3;display:none;flex-basis:100%;width:100%;flex-direction:column;align-items:flex-start;gap:16px;margin-left:0;padding:4px 0 16px;}
    .nav-toggle-cb:checked ~ .nav-links{display:flex;}
    .nav-cta{align-self:stretch;text-align:center;}
  }

  /* ================= MULTI-PAGE: SUMMARY CARDS ================= */
  .home-intro{font-size:clamp(17px,2.2vw,20px);color:var(--ink-soft);max-width:60ch;margin:0 0 6px;}
  .section-label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 14px;}
  .issues{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  .issue-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:5px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease;}
  .issue-card:hover{border-color:var(--line-strong);box-shadow:0 3px 16px rgba(22,32,43,.08);}
  .issue-thumb{aspect-ratio:16/9;background:var(--ink-soft);overflow:hidden;}
  .issue-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .issue-thumb.soon{display:flex;align-items:center;justify-content:center;background:var(--marine-soft);color:var(--marine);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
  .issue-body{padding:17px 20px 19px;display:flex;flex-direction:column;gap:7px;flex:1;}
  .issue-num{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--slate);letter-spacing:.08em;}
  .issue-card h3{font-family:var(--sans);font-weight:700;font-size:19px;line-height:1.24;margin:0;color:var(--ink);}
  .issue-card p{font-size:15px;line-height:1.5;color:var(--ink-soft);margin:0;}
  .issue-more{margin-top:auto;padding-top:4px;font-family:var(--sans);font-weight:700;font-size:14px;color:var(--signal);}
  @media (max-width:640px){.issues{grid-template-columns:1fr;}}

  /* ================= MULTI-PAGE: DEEP-DIVE HERO ================= */
  .crumb{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#8FA6A0;text-decoration:none;display:inline-block;margin:0 0 16px;}
  .crumb:hover{color:#fff;}
  .hero-issue{padding:32px 0 28px;}
  .hero-issue h1{font-size:clamp(28px,4.4vw,42px);max-width:22ch;}
  .hero-issue .lede{max-width:62ch;}
  .hero-issue .chips{margin-top:20px;}
  .hero-issue .chip{background:rgba(255,255,255,.08);color:#C6D2CE;border-color:rgba(255,255,255,.14);}
  .hero-issue .chip.ref{color:#8FA6A0;}

  /* ================= HOME HERO (headline first, 3 lines) ================= */
  .hero-home h1{max-width:none;font-size:clamp(32px,5.2vw,50px);line-height:1.06;margin:0 0 0;}
  .hero-home .eyebrow{margin:18px 0 22px;}
  .hero-home h1 .over{font-size:1.14em;}

  /* ================= LOGO STRIP ================= */
  .logostrip{background:var(--panel);border-bottom:1px solid var(--line);}
  .logostrip .wrap{display:flex;align-items:center;justify-content:center;gap:64px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px;}
  .logostrip .ls-label{width:100%;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 2px;}
  .logostrip img{height:58px;width:auto;display:block;}
  @media (max-width:640px){.logostrip .wrap{gap:40px;}.logostrip img{height:46px;}}

  /* ================= CARDS CUE ================= */
  .cards-cue{font-family:var(--sans);font-weight:800;font-size:clamp(22px,3vw,28px);letter-spacing:-.015em;color:var(--ink);margin:0 0 18px;}
  .cards-cue span{color:var(--signal);}

  /* ================= MEDIA PLACEHOLDER ================= */
  .media-soon{aspect-ratio:16/9;background:var(--marine-soft);color:var(--marine);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;border-radius:4px;text-align:center;padding:10px;}

  /* ================= DARK CARDS SECTION ================= */
  .issues-dark{background:var(--ink);}
  .issues-dark .cards-cue{color:#F2F5F4;}
  .issues-dark .issue-card{border-color:transparent;}
  .issues-dark .issue-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.42);}
