
  :root{
    --ink:      #0B1B36;
    --ink-soft: #16294c;
    --blue:     #1B5FD8;
    --blue-dk:  #123f96;
    --aqua:     #4FB3D9;
    --fog:      #F5F7FA;
    --fog-dim:  #EBEFF5;
    --stone:    #67728A;
    --stone-lt: #9AA4B6;
    --amber:    #E8A33D;
    --white:    #FFFFFF;
    --line:     rgba(11,27,54,0.10);
    --shadow:   0 20px 50px -25px rgba(11,27,54,0.35);
  }

  *{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }
  body{
    margin:0;
    background: var(--fog);
    color: var(--ink);
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  ul{ margin:0; padding:0; list-style:none; }

  h1,h2,h3,h4{
    font-family:'Barlow Condensed', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    margin: 0;
    color: var(--ink);
  }

  .mono{
    font-family:'JetBrains Mono', monospace;
    letter-spacing: 0.04em;
  }

  .wrap{
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 28px;
  }

  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size: 12.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 600;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px; height:2px;
    background: var(--amber);
    display:inline-block;
  }

  /* reveal on scroll */
  .reveal{
    opacity:0;
    transform: translateY(22px);
    transition: opacity .7s ease, transform .7s ease;
  }
  .reveal.in{
    opacity:1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    *{ animation: none !important; }
  }

  /* ============ HEADER ============ */
  header{
    position: sticky;
    top:0;
    z-index: 100;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(11,27,54,0.08);
    box-shadow: 0 2px 16px rgba(11,27,54,0.06);
  }
  .nav{
    display:flex;
    align-items:center;
    justify-content: space-between;
    padding: 12px 28px;
    max-width: 1180px;
    margin: 0 auto;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .brand img{
    height: 52px;
    width:auto;
  }
  .brand-text{
    display:flex;
    flex-direction:column;
    line-height: 1;
  }
  .brand-text .name{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size: 21px;
    color: var(--ink);
    letter-spacing: 0.02em;
  }
  .brand-text .name span{ color: var(--blue); }
  .brand-text .tagline{
    font-family:'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    color: var(--stone);
    text-transform: uppercase;
    margin-top: 3px;
  }
  .nav-links{
    display:flex;
    gap: 30px;
    align-items:center;
  }
  .nav-links a{
    font-size: 14.5px;
    font-weight: 500;
    color: var(--ink-soft);
    transition: color .2s;
  }
  .nav-links a:hover{ color: var(--blue); }
  .nav-call{
    display:flex;
    align-items:center;
    gap: 8px;
    background: var(--blue);
    color: var(--white) !important;
    font-family:'JetBrains Mono', monospace;
    font-weight: 600;
    font-size: 14px;
    padding: 10px 16px;
    border-radius: 3px;
    transition: background .2s, transform .2s;
  }
  .nav-call:hover{ background: var(--blue-dk); transform: translateY(-1px); }
  .nav-toggle{ display:none; }

  @media (max-width: 860px){
    .nav-links{
      display:none;
    }
    .nav-toggle{
      display:flex;
      background: var(--blue);
      color:#fff;
      border:none;
      font-family:'JetBrains Mono', monospace;
      font-size: 13px;
      padding: 10px 14px;
      border-radius: 3px;
      align-items:center;
      gap:8px;
    }
  }

  /* ============ HERO ============ */
  .hero{
    position: relative;
    background: radial-gradient(1100px 620px at 82% -10%, #123a7a 0%, var(--ink) 55%), var(--ink);
    color: var(--white);
    padding: 92px 0 0;
    overflow: hidden;
  }
  .hero-grid{
    display:grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px;
    align-items:center;
    position: relative;
    z-index: 2;
  }
  .hero h1{
    color: var(--white);
    font-size: clamp(40px, 5.4vw, 68px);
    font-weight: 800;
    line-height: 0.98;
    margin: 18px 0 22px;
  }
  .hero h1 em{
    font-style: normal;
    color: var(--aqua);
  }
  .hero p.lede{
    font-family:'Inter', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    color: rgba(255,255,255,0.78);
    max-width: 520px;
    margin: 0 0 32px;
  }
  .hero-ctas{
    display:flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 46px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding: 15px 26px;
    border-radius: 3px;
    transition: all .2s ease;
    border: 1px solid transparent;
  }
  .btn-primary{
    background: var(--blue);
    color: var(--white);
  }
  .btn-primary:hover{ background: var(--blue-dk); transform: translateY(-2px); box-shadow: 0 12px 24px -8px rgba(27,95,216,0.6); }
  .btn-ghost{
    border-color: rgba(255,255,255,0.35);
    color: var(--white);
  }
  .btn-ghost:hover{ border-color: var(--aqua); color: var(--aqua); }

  .hero-strip{
    display:flex;
    gap: 34px;
    flex-wrap: wrap;
    padding: 22px 0 30px;
    border-top: 1px solid rgba(255,255,255,0.12);
  }
  .hero-strip .stat b{
    display:block;
    font-family:'Barlow Condensed', sans-serif;
    font-size: 30px;
    font-weight: 800;
    color: var(--white);
  }
  .hero-strip .stat span{
    font-family:'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--stone-lt);
  }

  /* hardness gauge — signature element */
  .gauge-card{
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 10px;
    padding: 26px 26px 22px;
    backdrop-filter: blur(6px);
  }
  .gauge-card .gauge-label{
    font-family:'JetBrains Mono', monospace;
    font-size: 11.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aqua);
    margin-bottom: 14px;
    display:block;
  }
  .gauge-svg{ width:100%; height:auto; }
  .gauge-reading{
    display:flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 8px;
  }
  .gauge-reading .val{
    font-family:'Barlow Condensed', sans-serif;
    font-size: 44px;
    font-weight: 800;
    color: var(--white);
    line-height: 1;
  }
  .gauge-reading .unit{
    font-family:'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--stone-lt);
  }
  .gauge-reading .tag{
    font-family:'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--amber);
    background: rgba(232,163,61,0.12);
    border: 1px solid rgba(232,163,61,0.4);
    padding: 5px 10px;
    border-radius: 3px;
  }
  .gauge-note{
    font-size: 13px;
    color: var(--stone-lt);
    margin-top: 14px;
    line-height: 1.55;
  }

  .wave-divider{
    display:block;
    width: 100%;
    height: 90px;
    margin-top: 40px;
  }

  /* ============ SERVICE AREA TICKER ============ */
  .area-band{
    background: var(--fog-dim);
    border-bottom: 1px solid var(--line);
    padding: 16px 0;
    overflow: hidden;
  }
  .area-band .wrap{
    display:flex;
    align-items:center;
    gap: 22px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .area-band .label{
    font-family:'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--stone);
    font-weight: 600;
  }
  .county-tag{
    font-family:'JetBrains Mono', monospace;
    font-size: 12.5px;
    letter-spacing: 0.04em;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--line);
    padding: 6px 12px;
    border-radius: 20px;
  }
  .county-tag::before{
    content:"● ";
    color: var(--blue);
  }

  /* ============ SECTION generic ============ */
  section{ padding: 96px 0; }
  .section-head{
    max-width: 640px;
    margin-bottom: 52px;
  }
  .section-head h2{
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    margin-top: 12px;
    line-height: 1.02;
  }
  .section-head p{
    font-size: 16.5px;
    color: var(--stone);
    line-height: 1.6;
    margin-top: 14px;
  }
  .center{ text-align:center; margin-left:auto; margin-right:auto; }

  /* ============ SERVICES ============ */
  .services{ background: var(--white); }
  .service-grid{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
  }
  .service-card{
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 34px 28px 30px;
    background: var(--fog);
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .service-card:hover{
    transform: translateY(-6px);
    box-shadow: var(--shadow);
    border-color: transparent;
  }
  .service-card .num{
    font-family:'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--blue);
    letter-spacing: 0.1em;
  }
  .service-card .icon{
    width: 52px; height:52px;
    margin: 18px 0 20px;
  }
  .service-card h3{
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 10px;
  }
  .service-card p{
    font-size: 15px;
    color: var(--stone);
    line-height: 1.65;
    margin: 0 0 18px;
  }
  .service-card ul{
    display:flex;
    flex-direction: column;
    gap: 8px;
  }
  .service-card li{
    font-size: 13.5px;
    color: var(--ink-soft);
    display:flex;
    gap: 8px;
    align-items:flex-start;
  }
  .service-card li::before{
    content:"—";
    color: var(--amber);
    flex-shrink:0;
  }

  /* ============ SIGNS / HARD WATER ============ */
  .signs{
    background: linear-gradient(180deg, var(--ink) 0%, var(--ink-soft) 100%);
    color: var(--white);
  }
  .signs .section-head p{ color: var(--stone-lt); }
  .signs .eyebrow{ color: var(--aqua); }
  .signs-grid{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 10px;
    overflow: hidden;
  }
  .sign-item{
    background: rgba(255,255,255,0.03);
    padding: 28px 22px;
    display:flex;
    flex-direction: column;
    gap: 12px;
  }
  .sign-item .sign-mark{
    font-family:'Barlow Condensed', sans-serif;
    font-size: 30px;
    font-weight: 800;
    color: var(--amber);
    line-height: 1;
  }
  .sign-item p{
    font-size: 14.5px;
    color: rgba(255,255,255,0.75);
    line-height: 1.55;
    margin: 0;
  }
  @media (max-width: 900px){
    .signs-grid{ grid-template-columns: repeat(2,1fr); }
  }

  /* ============ PROCESS ============ */
  .process{ background: var(--fog); }
  .process-row{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    position: relative;
  }
  .process-row::before{
    content:"";
    position:absolute;
    top: 30px; left: 8%; right: 8%;
    height: 1px;
    background: repeating-linear-gradient(to right, var(--line) 0 8px, transparent 8px 16px);
    z-index:0;
  }
  .process-step{
    position: relative;
    z-index: 1;
  }
  .process-step .step-num{
    width: 60px; height: 60px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--blue);
    color: var(--blue);
    display:flex; align-items:center; justify-content:center;
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 800;
    font-size: 24px;
    margin-bottom: 22px;
  }
  .process-step h3{
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 10px;
  }
  .process-step p{
    font-size: 15px;
    color: var(--stone);
    line-height: 1.6;
  }

  /* ============ COVERAGE MAP ============ */
  .coverage{
    background: var(--white);
  }
  .coverage-grid{
    display:grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 60px;
    align-items:center;
  }
  .county-list{
    display:flex;
    flex-direction: column;
    gap: 0;
    margin-top: 28px;
    border-top: 1px solid var(--line);
  }
  .county-list li{
    display:flex;
    justify-content: space-between;
    align-items:center;
    padding: 16px 4px;
    border-bottom: 1px solid var(--line);
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: 20px;
  }
  .county-list li span{
    font-family:'JetBrains Mono', monospace;
    font-size: 11.5px;
    color: var(--stone-lt);
    text-transform: uppercase;
  }
  .map-frame{
    background: var(--fog);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 20px;
  }

  /* ============ CTA BAND ============ */
  .cta-band{
    background: var(--blue);
    color: var(--white);
    padding: 64px 0;
  }
  .cta-inner{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
  }
  .cta-inner h2{
    color: var(--white);
    font-size: clamp(28px, 3.6vw, 40px);
    max-width: 560px;
    line-height: 1.05;
  }
  .cta-inner .btn-primary{
    background: var(--ink);
  }
  .cta-inner .btn-primary:hover{ background: #000; }
  .cta-phone{
    font-family:'JetBrains Mono', monospace;
    font-size: 15px;
    color: rgba(255,255,255,0.85);
    margin-top: 8px;
    display:block;
  }

  /* ============ FOOTER ============ */
  footer{
    background: var(--ink);
    color: rgba(255,255,255,0.6);
    padding: 56px 0 26px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .footer-brand{
    display:flex;
    gap: 12px;
    align-items:center;
    margin-bottom: 16px;
  }
  .footer-brand img{ height: 46px; }
  .footer-brand .name{
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 800;
    font-size: 20px;
    color: var(--white);
  }
  footer p{ font-size: 14px; line-height: 1.65; max-width: 320px; }
  footer h3{
    color: var(--white);
    font-size: 14px;
    letter-spacing: 0.1em;
    font-family:'JetBrains Mono', monospace;
    text-transform: uppercase;
    margin-bottom: 16px;
  }
  footer ul{ display:flex; flex-direction:column; gap: 10px; }
  footer ul li a{ font-size: 14.5px; color: rgba(255,255,255,0.65); transition: color .2s; }
  footer ul li a:hover{ color: var(--aqua); }
  .footer-bottom{
    display:flex;
    justify-content: space-between;
    padding-top: 24px;
    font-size: 12.5px;
    color: rgba(255,255,255,0.4);
    flex-wrap: wrap;
    gap: 10px;
  }

  /* ============ TRUST BAR ============ */
  .trust-bar{
    background: var(--white);
    border-bottom: 1px solid var(--line);
    padding: 30px 0;
  }
  .trust-row{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
  .trust-item{
    display:flex;
    align-items:center;
    gap: 12px;
  }
  .trust-item .mark{
    width: 38px; height: 38px;
    flex-shrink:0;
    border-radius: 50%;
    background: var(--fog-dim);
    color: var(--blue);
    display:flex; align-items:center; justify-content:center;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size: 16px;
  }
  .trust-item p{
    margin:0;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink-soft);
    line-height: 1.3;
  }
  @media (max-width: 860px){
    .trust-row{ grid-template-columns: repeat(2,1fr); }
  }

  /* ============ FAQ ============ */
  .faq{ background: var(--white); }
  .faq-list{
    max-width: 780px;
  }
  .faq-item{
    border-bottom: 1px solid var(--line);
  }
  .faq-q{
    width: 100%;
    background: none;
    border: none;
    text-align: left;
    padding: 22px 0;
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 20px;
    cursor: pointer;
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: var(--ink);
  }
  .faq-q .plus{
    font-family:'JetBrains Mono', monospace;
    font-size: 20px;
    color: var(--blue);
    flex-shrink:0;
    transition: transform .25s ease;
  }
  .faq-item.open .faq-q .plus{ transform: rotate(45deg); }
  .faq-a{
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
  }
  .faq-a p{
    font-size: 15px;
    color: var(--stone);
    line-height: 1.65;
    padding: 0 0 22px;
    max-width: 640px;
  }

  /* ============ REVIEWS CALLOUT ============ */
  .reviews-band{
    background: var(--fog-dim);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 44px 0;
  }
  .reviews-inner{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
  }
  .reviews-inner .stars{
    color: var(--amber);
    font-size: 20px;
    letter-spacing: 2px;
  }
  .reviews-inner h3{
    font-size: 24px;
    font-weight: 700;
    margin-top: 6px;
  }
  .reviews-inner p{
    color: var(--stone);
    font-size: 14.5px;
    margin: 4px 0 0;
  }
  .btn-outline{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    padding: 13px 22px;
    border-radius: 3px;
    border: 1.5px solid var(--blue);
    color: var(--blue);
    transition: all .2s;
  }
  .btn-outline:hover{ background: var(--blue); color: var(--white); }

  /* ============ CONTACT ============ */
  .contact{ background: var(--ink); color: var(--white); }
  .contact .eyebrow{ color: var(--aqua); }
  .contact .section-head p{ color: var(--stone-lt); }
  .contact-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }
  .contact-info{
    display:flex;
    flex-direction: column;
    gap: 22px;
  }
  .contact-info .item{
    display:flex;
    gap: 16px;
    align-items:flex-start;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .contact-info .item .ic{
    width: 40px; height:40px;
    border-radius: 50%;
    background: rgba(79,179,217,0.14);
    color: var(--aqua);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
    font-size: 17px;
  }
  .contact-info .item h3{
    font-family:'Barlow Condensed', sans-serif;
    text-transform: none;
    font-size: 18px;
    font-weight: 700;
    color: var(--white);
    margin-bottom: 4px;
  }
  .contact-info .item p, .contact-info .item a{
    font-size: 14.5px;
    color: var(--stone-lt);
    line-height: 1.5;
  }
  .contact-info .item a:hover{ color: var(--aqua); }

  .form-field{
    margin-bottom: 16px;
  }
  .form-field label{
    display:block;
    font-family:'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--stone-lt);
    margin-bottom: 7px;
  }
  .form-field input,
  .form-field select,
  .form-field textarea{
    width: 100%;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 4px;
    padding: 12px 14px;
    color: var(--white);
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
  }
  .form-field select option{ color: var(--ink); }
  .form-field input:focus,
  .form-field select:focus,
  .form-field textarea:focus{
    outline: none;
    border-color: var(--aqua);
  }
  .form-field textarea{ resize: vertical; min-height: 90px; }
  .form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .form-note{
    font-size: 12.5px;
    color: var(--stone-lt);
    margin-top: 12px;
    line-height: 1.5;
  }

  /* ============ STICKY MOBILE CALL BAR ============ */
  .sticky-call{
    display:none;
    position: fixed;
    bottom: 0; left:0; right:0;
    z-index: 200;
    background: var(--blue);
    padding: 12px 16px;
    box-shadow: 0 -8px 24px rgba(0,0,0,0.18);
  }
  .sticky-call a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap: 10px;
    color: var(--white);
    font-family:'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  @media (max-width: 640px){
    .sticky-call{ display:block; }
    body{ padding-bottom: 58px; }
  }

  /* ============ responsive ============ */
  @media (max-width: 980px){
    .hero-grid{ grid-template-columns: 1fr; }
    .service-grid{ grid-template-columns: 1fr; }
    .process-row{ grid-template-columns: 1fr; }
    .process-row::before{ display:none; }
    .coverage-grid{ grid-template-columns: 1fr; }
    .footer-grid{ grid-template-columns: 1fr; gap: 30px; }
  }
  @media (max-width: 560px){
    section{ padding: 64px 0; }
    .hero{ padding-top: 76px; }
    .hero-strip{ gap: 22px; }
    .cta-inner{ flex-direction: column; align-items:flex-start; }
  }

  /* ============ SUBPAGES ============ */
  .page-hero{ background: radial-gradient(1100px 620px at 82% -10%, #123a7a 0%, var(--ink) 55%), var(--ink); color: var(--white); padding: 70px 0 64px; }
  .page-hero h1{ color: var(--white); font-size: clamp(36px, 5vw, 60px); font-weight: 800; line-height: 1; margin: 14px 0 18px; }
  .page-hero h1 em{ font-style: normal; color: var(--aqua); }
  .page-hero .lede{ color: rgba(255,255,255,0.8); font-size: 18px; line-height: 1.6; max-width: 660px; margin: 0 0 28px; }
  .page-hero .hero-ctas{ margin-bottom: 0; }
  .crumbs{ font-family:'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.06em; color: var(--stone-lt); margin: 0 0 14px; }
  .crumbs a:hover{ color: var(--aqua); }
  .content{ background: var(--white); }
  .content-grid{ display:grid; grid-template-columns: minmax(0,1fr) 300px; gap: 56px; align-items: start; }
  .prose{ max-width: 760px; }
  .prose h2{ font-size: clamp(26px, 3.4vw, 36px); font-weight: 800; line-height: 1.05; margin: 46px 0 14px; }
  .prose h2:first-child{ margin-top: 0; }
  .prose p{ font-size: 16.5px; line-height: 1.75; color: var(--ink-soft); margin: 0 0 16px; }
  .prose ul{ display:flex; flex-direction:column; gap: 10px; margin: 0 0 18px; }
  .prose li{ font-size: 16px; line-height: 1.6; color: var(--ink-soft); display:flex; gap: 10px; }
  .prose li::before{ content:"—"; color: var(--amber); flex-shrink:0; }
  .prose a{ color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
  .prose strong{ color: var(--ink); }
  .compare{ width:100%; border-collapse: collapse; margin: 8px 0 22px; font-size: 15px; }
  .compare th, .compare td{ text-align:left; padding: 12px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
  .compare th{ font-family:'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--stone); }
  .side-card{ position: sticky; top: 100px; background: var(--fog); border: 1px solid var(--line); border-radius: 10px; padding: 26px 24px; }
  .side-card h2{ font-size: 24px; font-weight: 800; margin: 0 0 10px; }
  .side-card p{ font-size: 14.5px; color: var(--stone); line-height: 1.6; margin: 0 0 18px; }
  .side-card .btn{ width:100%; justify-content:center; margin-bottom: 10px; }
  .side-card .btn-outline{ width:100%; justify-content:center; }
  .side-card ul{ margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); display:flex; flex-direction:column; gap: 8px; }
  .side-card li{ font-size: 13.5px; color: var(--ink-soft); display:flex; gap: 8px; }
  .side-card li::before{ content:"✓"; color: var(--blue); font-weight: 700; }
  .related{ background: var(--fog); }
  .link-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .link-card{ display:flex; justify-content: space-between; align-items:center; gap: 12px; background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: 18px 20px; font-family:'Barlow Condensed', sans-serif; font-weight: 700; font-size: 19px; text-transform: uppercase; transition: border-color .2s, transform .2s; }
  .link-card::after{ content:"→"; color: var(--blue); }
  .link-card:hover{ border-color: var(--blue); transform: translateY(-2px); }
  .link-group + .link-group{ margin-top: 34px; }
  .link-group h2{ font-size: 22px; font-weight: 800; margin-bottom: 14px; }
  .service-card .more{ display:inline-block; margin-top: 20px; font-weight: 600; font-size: 14.5px; color: var(--blue); }
  .service-card .more:hover{ text-decoration: underline; }
  .county-list li span a:hover{ color: var(--blue); text-decoration: underline; }
  .area-links{ margin-top: 22px; font-size: 14.5px; color: var(--stone); line-height: 1.7; }
  .area-links a{ color: var(--blue); font-weight: 600; }
  .contact-info .item .btn{ color: var(--white); font-size: 17px; }
  @media (max-width: 980px){
    .content-grid{ grid-template-columns: 1fr; gap: 36px; }
    .side-card{ position: static; }
    .link-grid{ grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 560px){ .link-grid{ grid-template-columns: 1fr; } }
  .footer-grid{ grid-template-columns: 1.3fr 1fr 1fr 1fr; }
  @media (max-width: 980px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px){ .footer-grid{ grid-template-columns: 1fr; } }

  .contact .section-head h2{ color: var(--white); }
  @media (max-width: 860px){ .contact-grid{ grid-template-columns: 1fr; gap: 36px; } }
  @media (max-width: 560px){ .form-row{ grid-template-columns: 1fr; gap: 0; } }
