:root{
    --black:#0c0c0c;
    --panel:#131611;
    --cream:#faf8f2;
    --cream-2:#efe9dc;
    --ink:#151714;
    --ink-soft:#565f57;
    --green:#009933;
    --green-deep:#04331b;
    --green-line:#1c4a2c;
    --yellow:#ffcc00;
    --white:#ffffff;
    --gray:#b3b3b3;
    --gray-dim:#7c8079;
    --medium:#d9d2bd;
    --medium-2:#cbc3aa;
    --medium-line:rgba(21,23,20,0.18);
    --max:1240px;
    --display:'Big Shoulders Display', sans-serif;
    --body:'Inter', sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--black);
    color:var(--white);
    font-family:var(--body);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  h1,h2,h3,h4{
    font-family:var(--display);
    font-weight:800;
    letter-spacing:0.2px;
    margin:0;
    line-height:1.03;
  }
  p{margin:0;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
  .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
    outline:2px solid var(--yellow);
    outline-offset:3px;
  }
  @media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }

  /* section tone helpers */
  .tone-dark{background:var(--black); color:var(--white); position:relative;}
  .tone-panel{background:var(--panel); color:var(--white); position:relative;}
  .tone-light{background:var(--cream); color:var(--ink); position:relative;}
  .tone-medium{background:var(--medium); color:var(--ink); position:relative;}
  .tone-medium::before{
    content:''; position:absolute; top:0; left:0; right:0; height:3px; z-index:1;
    background:linear-gradient(90deg, var(--green), var(--yellow), var(--green));
    background-size:200% 100%;
    animation:gradientFlow 6s linear infinite;
  }
  .tone-deep{background:var(--green-deep); color:var(--white); position:relative;}
  .tone-light .muted, .tone-medium .muted{color:var(--ink-soft);}
  .tone-dark .muted, .tone-panel .muted, .tone-deep .muted{color:var(--gray);}

  /* texture/depth layer: subtle dot-grid + vignette, sits behind content on every toned section */
  .tone-dark::after, .tone-panel::after, .tone-deep::after{
    content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background-image:
      radial-gradient(circle, rgba(255,255,255,0.055) 1px, transparent 1px),
      radial-gradient(ellipse at 50% 0%, transparent 45%, rgba(0,0,0,0.35) 100%);
    background-size:26px 26px, 100% 100%;
  }
  .tone-light::after, .tone-medium::after{
    content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background-image:
      radial-gradient(circle, rgba(12,12,12,0.06) 1px, transparent 1px),
      radial-gradient(ellipse at 50% 100%, transparent 55%, rgba(12,12,12,0.05) 100%);
    background-size:26px 26px, 100% 100%;
  }
  .tone-dark > *, .tone-panel > *, .tone-light > *, .tone-medium > *, .tone-deep > *{ position:relative; z-index:1; }

  /* ---------- NAV ---------- */
  header{
    position:-webkit-sticky; position:sticky; top:0; z-index:50;
    background:rgba(12,12,12,0.9);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(179,179,179,0.14);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:13px 28px;
    max-width:var(--max); margin:0 auto;
  }
  .brand{
    display:flex; align-items:center; text-decoration:none;
    transition:transform .15s ease;
  }
  .brand:hover{ transform:translateY(-1px); }
  .brand img{height:77px; width:auto; display:block;}
  .nav-links{display:flex; align-items:center; gap:22px; list-style:none; margin:0; padding:0;}
  .nav-links a{
    text-decoration:none; color:var(--gray); font-size:14px; font-weight:500;
    padding-bottom:3px; border-bottom:1px solid transparent;
    transition:color .18s ease, border-color .18s ease;
  }
  .nav-links a:hover{color:var(--white); border-color:var(--green);}
  .nav-cta{display:flex; align-items:center; gap:16px;}
  .phone-link{
    display:flex; align-items:center; gap:8px;
    font-family:var(--display); font-weight:700; font-size:16px; color:var(--white);
    text-decoration:none; white-space:nowrap;
  }
  .phone-link svg{width:19px; height:19px; fill:var(--yellow);}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--body); font-weight:600; font-size:14.5px;
    padding:12px 22px; border-radius:3px; text-decoration:none;
    white-space:nowrap; cursor:pointer; border:1px solid transparent;
    transition:transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--green); color:var(--white); font-weight:700;}
  .btn-primary:hover{background:#00b23b;}
  .btn-dark{background:var(--black); color:var(--white); font-weight:700;}
  .btn-dark:hover{background:#232323;}
  .btn-outline{background:transparent; color:var(--white); border-color:rgba(179,179,179,0.45);}
  .btn-outline:hover{border-color:var(--white);}
  .btn-outline-dark{background:transparent; color:var(--ink); border-color:rgba(12,12,12,0.45);}
  .btn-outline-dark:hover{border-color:var(--ink);}
  .menu-toggle{display:none; background:none; border:0; color:var(--white); font-size:22px;}

  /* ---------- IMAGE PLACEHOLDER (reliable, no external dependency) ---------- */
  .img-placeholder{
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, #1a1d17 0%, #0c0c0c 100%);
    position:relative; overflow:hidden;
    transition:transform .7s cubic-bezier(.16,.84,.44,1);
  }
  .img-placeholder::before{
    content:'';
    position:absolute; inset:0;
    background-image:radial-gradient(circle, rgba(255,255,255,0.07) 1px, transparent 1px);
    background-size:18px 18px;
  }
  .img-placeholder svg{
    width:32%; height:32%; max-width:56px; max-height:56px;
    fill:rgba(0,204,68,0.65);
    position:relative; z-index:1;
    filter:drop-shadow(0 0 12px rgba(0,153,51,0.25));
  }
  .thumb:hover .img-placeholder, .gen-photo:hover .img-placeholder,
  .why-photo:hover .img-placeholder{ transform:scale(1.06); }
  .county-map{
    width:100%; height:100%;
    background:var(--cream-2);
    transition:transform .7s cubic-bezier(.16,.84,.44,1);
  }
  .county-map svg{ width:100%; height:100%; display:block; }
  .area-map-feature:hover .county-map{ transform:scale(1.04); }

  /* ---------- HERO (photo) ---------- */
  .hero{
    position:relative;
    min-height:calc(100vh - 104px);
    min-height:calc(100dvh - 104px);
    display:flex; align-items:center;
    background:#000;
    overflow:hidden;
  }
  .hero-bg-img{
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%;
    object-fit:cover; object-position:center 30%;
  }
  .hero::before{
    content:''; position:absolute; inset:0; z-index:1;
    background:
      linear-gradient(180deg, rgba(6,7,6,0.55) 0%, rgba(6,7,6,0.35) 35%, rgba(8,9,7,0.92) 100%),
      linear-gradient(90deg, rgba(6,7,6,0.85) 0%, rgba(6,7,6,0.35) 55%, rgba(6,7,6,0.15) 100%);
  }
  .hero-inner{ position:relative; z-index:2; width:100%; padding:40px 28px; max-width:var(--max); margin:0 auto; }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; font-weight:600; color:var(--yellow);
    margin-bottom:16px;
  }
  .eyebrow::before{content:''; width:7px; height:7px; background:var(--yellow); border-radius:50%; display:inline-block;}
  .hero h1{ font-size:clamp(36px, 5vw, 62px); color:var(--white); max-width:16ch; }
  .hero h1 em{ font-style:normal; color:var(--green); }
  .hero-sub{ margin-top:20px; max-width:44ch; font-size:17px; color:#dedcd3; line-height:1.6; }
  .hero-actions{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
  .hero-actions .btn{padding:15px 26px; font-size:15px;}

  /* ---------- QUICK QUOTE BAND (color) ---------- */
  .quote-band{padding:clamp(56px,7vw,88px) 0;background:linear-gradient(135deg,var(--green-deep),#04170d 70%);}
  .mini-form{
    background:transparent; border-radius:0; padding:0;
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
  }
  .mini-form .field-full{grid-column:1 / -1;}
  .mini-form label{display:block; font-size:11.5px; color:var(--ink-soft); margin-bottom:6px; font-weight:600; letter-spacing:0.3px;}
  .mini-form input, .mini-form select, .mini-form textarea{
    width:100%; background:#fff; border:1px solid var(--medium-line); color:var(--ink);
    padding:12px 13px; border-radius:3px; font-family:var(--body); font-size:16px;
  }
  .mini-form input::placeholder, .mini-form textarea::placeholder{color:var(--gray-dim);}
  .mini-form button{grid-column:1 / -1; margin-top:4px;}
  .form-note{grid-column:1/-1; font-size:11.5px; color:var(--ink-soft); margin-top:-2px;}
  .form-error{grid-column:1/-1; font-size:12.5px; font-weight:600; color:#c0392b; margin-top:2px;}
  .form-success{display:none; text-align:center; padding:20px 4px; font-size:15px;}
  .form-success strong{display:block; font-family:var(--display); font-size:20px; margin-bottom:6px; color:var(--green);}

  /* ---------- SECTION SHELL ---------- */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head .tag{font-size:13px; font-weight:600; color:var(--green); margin-bottom:12px; display:block;}
  .tone-deep .section-head .tag{color:var(--yellow);}
  .section-head h2{font-size:clamp(28px,3.4vw,42px);}
  .section-head p{margin-top:16px; font-size:16px; max-width:52ch;}

  /* ---------- GENERATOR FEATURE (light, photo) ---------- */
  .gen-intro{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
  .gen-photo{position:relative; border-radius:6px; overflow:hidden; aspect-ratio:4/5;}
  .gen-photo img{width:100%; height:100%; object-fit:cover;}
  .gen-badge{
    position:absolute; top:18px; left:18px;
    background:var(--yellow); color:var(--black);
    font-weight:700; font-size:12.5px; padding:7px 14px; border-radius:2px; letter-spacing:0.2px;
  }
  .gen-copy h2{font-size:clamp(28px,3.8vw,44px); margin-bottom:18px;}
  .gen-copy > p{color:var(--ink-soft); font-size:16.5px; margin-bottom:22px; max-width:54ch;}
  .tone-medium .gen-copy > p{color:var(--ink-soft);}
  .brand-badges{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 26px; }
  .brand-badge{
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 16px; border-radius:999px;
    background:var(--white); border:1px solid rgba(21,23,20,0.12);
    font-size:12.5px; font-weight:700; color:var(--ink);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .brand-badge:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(21,23,20,0.1); border-color:rgba(0,153,51,0.35); }
  .brand-badge svg{ width:16px; height:16px; fill:var(--green); flex-shrink:0; }
  .gen-cta{display:flex; gap:14px; flex-wrap:wrap;}

  /* full-width stat bar (was cramped inside the copy column) */
  .gen-stats{ margin-top:52px; }
  .spec-strip{
    display:grid; grid-template-columns:repeat(6, 1fr);
    border-top:1px solid #ddd6c4; border-bottom:1px solid #ddd6c4;
  }
  .spec-strip div{ padding:20px 12px; text-align:center; border-right:1px solid #ddd6c4; }
  .spec-strip div:last-child{ border-right:none; }
  .spec-strip .k{display:block; font-size:10.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.4px; margin-bottom:6px;}
  .spec-strip .v{font-weight:700; font-size:14px;}
  .tone-medium .spec-strip{border-color:var(--medium-line);}
  .tone-medium .spec-strip div{border-right-color:var(--medium-line);}
  .tone-medium .spec-strip .k{color:var(--ink-soft);}

  /* horizontal process strip (was a vertical list crammed in the copy column) */
  .gen-process{ margin-top:56px; }
  .gen-process-title{ font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:24px; }
  .process-strip{
    list-style:none; margin:0; padding:0; counter-reset:stepnum;
    display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;
  }
  .process-strip li{
    counter-increment:stepnum;
    display:flex; flex-direction:column; gap:8px;
    padding-top:18px; border-top:3px solid var(--green);
  }
  .process-strip .dot{
    width:28px; height:28px; border-radius:50%; margin-bottom:2px;
    display:flex; align-items:center; justify-content:center;
    background:var(--green); color:var(--white);
    font-family:var(--display); font-weight:800; font-size:12px;
  }
  .process-strip .dot::before{ content:counter(stepnum); }
  .process-strip strong{ font-size:14.5px; color:var(--ink); }
  .process-strip .step-desc{ color:var(--ink-soft); font-size:13px; margin-top:2px; }
  .tone-medium .process-strip .step-desc{color:var(--ink-soft);}

  /* ---------- SERVICES (light, photo cards) ---------- */
  .services-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:rgba(21,23,20,0.1); border:1px solid rgba(21,23,20,0.1);}
  .services-grid .service-card:last-child{ grid-column:1 / -1; }
  .services-grid .service-card:last-child .thumb{ height:180px; }
  .service-card{background:var(--white); display:flex; flex-direction:column;}
  .service-card .thumb{height:150px; overflow:hidden;}
  .service-card .thumb img{width:100%; height:100%; object-fit:cover; filter:saturate(0.92);}
  .service-card .body{padding:26px 26px 30px; display:flex; flex-direction:column; gap:12px; flex:1;}
  .service-card h3{font-size:20px; color:var(--ink); font-weight:700;}
  .service-card p{font-size:14px; color:var(--ink-soft);}
  .service-card a{margin-top:auto; font-size:13.5px; font-weight:600; color:var(--green); text-decoration:none; display:inline-flex; align-items:center; gap:6px;}

  /* ---------- WHY US (color band, photo) ---------- */
  .why-head{ max-width:640px; margin-bottom:44px; }
  .why-story{
    display:grid; grid-template-columns:260px 1fr; gap:48px; align-items:center;
    margin-bottom:52px; padding-bottom:52px; border-bottom:1px solid rgba(21,23,20,0.1);
  }
  .why-photo{border-radius:10px; overflow:hidden; aspect-ratio:4/5;}
  .why-quote{
    font-family:var(--display); font-weight:600; font-size:clamp(19px,2.2vw,25px);
    line-height:1.45; color:var(--black); max-width:56ch;
  }
  .why-row{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;}
  .why-row li h4{font-size:16px; margin-bottom:6px; color:var(--black);}
  .why-row li p{font-size:13.5px; color:#0a2f13;}
  .why-row li .n{font-family:var(--display); font-weight:800; font-size:14px; color:var(--black); display:block; margin-bottom:8px;}
  .why-cta{margin-top:40px; display:flex; gap:14px; flex-wrap:wrap;}

  /* ---------- SERVICE AREA (light, photo) ---------- */
  .area-map-feature{position:relative; border-radius:10px; overflow:hidden; aspect-ratio:16/9; margin-bottom:36px;}
  .area-map-feature .caption{
    position:absolute; bottom:0; left:0; right:0;
    background:linear-gradient(0deg, rgba(0,0,0,0.72), transparent);
    color:#fff; padding:20px 24px 16px; font-size:14px; font-weight:600;
  }
  .city-tags{display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0;}
  .city-tags li{
    padding:10px 18px; border-radius:999px;
    background:var(--white); border:1px solid rgba(21,23,20,0.12);
    font-size:13.5px; font-weight:600; color:var(--ink);
    transition:transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
  }
  .city-tags li:hover{ transform:translateY(-2px); border-color:rgba(0,153,51,0.4); background:rgba(0,153,51,0.07); color:var(--green); }

  /* ---------- TESTIMONIALS (medium) ---------- */
  .testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .testi-card{border:1px solid rgba(21,23,20,0.12); border-radius:5px; padding:28px; background:var(--white); display:flex; flex-direction:column; gap:16px;}
  .stars{display:flex; gap:3px;}
  .stars svg{width:14px; height:14px; fill:#d9a300;}
  .testi-card p.quote{font-size:15px; color:var(--ink); line-height:1.65;}
  .testi-who{font-size:13px; color:var(--ink-soft);}

  /* ---------- FAQ (light) ---------- */
  .faq-layout{display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:start;}
  .faq{max-width:none;}
  .faq-callout{
    background:var(--green); color:var(--black);
    border-radius:16px; padding:36px 30px;
    position:sticky; top:110px;
  }
  .faq-callout-icon{
    width:46px; height:46px; border-radius:50%;
    background:rgba(12,12,12,0.1); display:flex; align-items:center; justify-content:center;
    margin-bottom:20px;
  }
  .faq-callout-icon svg{ width:20px; height:20px; fill:var(--black); }
  .faq-callout h3{ font-family:var(--display); font-weight:800; font-size:22px; margin-bottom:10px; }
  .faq-callout p{ font-size:14px; color:#04331b; margin-bottom:24px; }
  .faq-callout-phone{
    display:flex; align-items:center; gap:10px; margin-bottom:20px;
    font-family:var(--display); font-weight:800; font-size:22px; color:var(--black); text-decoration:none;
  }
  .faq-callout-phone svg{ width:20px; height:20px; fill:var(--black); flex-shrink:0; }
  .faq-callout .btn-dark{ width:100%; justify-content:center; }
  .faq-item{border-bottom:1px solid #ddd6c4;}
  .faq-item summary{cursor:pointer; padding:22px 0; font-size:17px; font-weight:600; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:'+'; font-size:22px; color:var(--green); flex-shrink:0; font-weight:400;}
  .faq-item[open] summary::after{content:'\2212';}
  .faq-item p{padding-bottom:22px; color:var(--ink-soft); font-size:15px; max-width:68ch;}

  /* ---------- FINAL CTA (color, form) ---------- */
  .final-head{text-align:center; max-width:640px; margin:0 auto 44px;}
  .final-head h2{font-size:clamp(28px,3.6vw,42px); color:var(--black);}
  .final-head p{margin-top:14px; font-size:16px; color:var(--ink-soft);}
  .final-phone{margin-top:26px; display:inline-flex; align-items:center; gap:12px; font-family:var(--display); font-weight:800; font-size:34px; color:var(--black); text-decoration:none;}
  .final-phone svg{width:28px; height:28px; fill:var(--black);}
  .final-form{max-width:560px; margin:0 auto;}

  /* ---------- FOOTER ---------- */
  footer{background:
      radial-gradient(ellipse 900px 420px at 50% 100%, rgba(0,204,68,.38), transparent 70%),
      linear-gradient(0deg, rgba(0,153,51,.28) 0%, rgba(4,23,13,.85) 30%, var(--black) 60%);
    padding:64px 0 0; border-top:none; position:relative;}
  footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),var(--yellow));}
  .foot-grid{display:grid; grid-template-columns:1.5fr 1fr 0.9fr 1.1fr; gap:32px; margin-bottom:40px;}
  .foot-brand img{height:52px; width:auto; margin-bottom:16px;}
  .foot-brand p{color:var(--gray-dim); font-size:13.5px; max-width:32ch; line-height:1.6;}
  .foot-brand-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
  .foot-brand-badge{font-size:.68rem; font-weight:700; letter-spacing:.02em; padding:6px 11px;
    border-radius:999px; border:1px solid var(--green-line); color:var(--gray);}
  .foot-col h4, .foot-cities h4{font-size:13px; letter-spacing:1px; color:var(--gray); margin:0 0 18px; font-weight:600;
    position:relative; padding-bottom:12px;}
  .foot-col h4::after, .foot-cities h4::after{content:""; position:absolute; left:0; bottom:0; width:26px; height:2px; background:var(--green);}
  .foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
  .foot-col a, .foot-cities-list a{font-size:14px; color:var(--gray-dim); text-decoration:none; transition:color .2s ease, padding-left .2s ease;}
  .foot-col a:hover, .foot-cities-list a:hover{color:var(--white); padding-left:3px;}
  .foot-col li{font-size:14px; color:var(--gray-dim);}
  .foot-cities{padding-top:32px; margin-bottom:40px; border-top:1px solid rgba(179,179,179,0.12);}
  .foot-cities-list{list-style:none; margin:0; padding:0; column-count:5; column-gap:24px;}
  .foot-cities-list li{break-inside:avoid; font-size:13.5px; margin-bottom:10px;}
  .foot-bottom{border-top:1px solid rgba(179,179,179,0.12); padding:26px 0; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:12px; font-size:12.5px; color:var(--gray-dim);}
  .foot-legal-links a{color:var(--gray-dim); text-decoration:none; transition:color .2s ease;}
  .foot-legal-links a:hover{color:var(--white);}

  /* ---------- STICKY MOBILE CTA: side-by-side 50/50 bar ---------- */
  .sticky-cta{
    position:fixed; bottom:0; left:0; right:0; z-index:60;
    display:none; flex-direction:row;
    transform:translateY(100%);
    transition:transform .45s cubic-bezier(.16,.84,.44,1);
    box-shadow:0 -8px 28px rgba(0,0,0,0.35);
  }
  .sticky-cta.visible{ transform:translateY(0); }
  body.menu-open .sticky-cta{ transform:translateY(110%); }
  .sticky-cta::before{
    content:''; position:absolute; top:-3px; left:0; right:0; height:3px; z-index:2;
    background:linear-gradient(90deg, var(--green), var(--yellow), var(--green));
    background-size:200% 100%;
    animation:gradientFlow 6s linear infinite;
  }
  .sticky-cta a{
    position:relative; overflow:hidden;
    flex:1 1 50%; min-width:0;
    min-height:49px; padding:12px 9px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    display:flex; align-items:center; justify-content:center; gap:8px;
    text-decoration:none; font-family:var(--display); font-weight:700;
    font-size:19px; letter-spacing:0.3px; text-transform:uppercase;
    color:var(--white); transition:filter .15s ease;
    white-space:nowrap;
  }
  .sticky-cta a:active{ filter:brightness(0.88); }
  .sticky-cta a::after{
    content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
    background:linear-gradient(115deg, transparent, rgba(255,255,255,0.25), transparent);
    transform:skewX(-20deg); transition:left .6s ease; pointer-events:none;
  }
  .sticky-cta a:active::after{ left:130%; }
  .sticky-cta a svg{ width:24px; height:24px; fill:var(--yellow); flex-shrink:0; }
  .sticky-cta-estimate{
    background:var(--black);
    border-right:1px solid rgba(255,255,255,0.14);
  }
  .sticky-cta a.sticky-cta-call{
    background:var(--green);
  }

  /* ================= PREMIUM MOTION & INTERACTION LAYER ================= */

  /* scroll progress bar */
  #scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:0%; z-index:100;
    background:linear-gradient(90deg, var(--green), var(--yellow));
    transition:width .1s linear;
  }

  /* header state on scroll */
  header{ transition:background .3s ease, box-shadow .3s ease, padding .3s ease; }
  header.scrolled{ box-shadow:0 8px 24px rgba(0,0,0,0.35); background:rgba(9,10,8,0.96); }

  /* generic reveal-on-scroll */
  [data-reveal]{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1);
    transition-delay:calc(var(--d, 0) * 90ms);
  }
  [data-reveal].in-view{ opacity:1; transform:none; }
  [data-reveal-scale]{
    opacity:0; transform:scale(0.96);
    transition:opacity .7s ease, transform .7s cubic-bezier(.16,.84,.44,1);
    transition-delay:calc(var(--d, 0) * 90ms);
  }
  [data-reveal-scale].in-view{ opacity:1; transform:none; }

  /* bolt icon on CTAs */
  .btn .bolt{ width:19px; height:19px; fill:var(--yellow); flex-shrink:0; transition:transform .35s cubic-bezier(.34,1.56,.64,1), filter .35s ease; filter:drop-shadow(0 0 0 rgba(255,204,0,0)); }
  .btn:hover .bolt{ transform:scale(1.3) rotate(-10deg); filter:drop-shadow(0 0 7px rgba(255,204,0,0.85)); }

  /* animated green→yellow gradient ring around primary CTAs on hover/focus */
  .btn-primary, .btn-dark{ position:relative; }
  .btn-primary::after, .btn-dark::after{
    content:''; position:absolute; inset:-3px; border-radius:6px; padding:2px;
    background:linear-gradient(90deg, var(--green), var(--yellow), var(--green));
    background-size:220% 100%;
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    opacity:0; transition:opacity .3s ease;
    animation:gradientFlow 2.4s linear infinite; animation-play-state:paused;
    pointer-events:none;
  }
  .btn-primary:hover::after, .btn-dark:hover::after,
  .btn-primary:focus-visible::after, .btn-dark:focus-visible::after{
    opacity:1; animation-play-state:running;
  }
  @keyframes gradientFlow{
    0%{ background-position:0% 50%; }
    100%{ background-position:220% 50%; }
  }

  /* button shine sweep + lift */
  .btn{ position:relative; overflow:hidden; will-change:transform; }
  .btn::before{
    content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
    background:linear-gradient(115deg, transparent, rgba(255,255,255,0.35), transparent);
    transform:skewX(-20deg); transition:left .6s ease;
    pointer-events:none;
  }
  .btn:hover::before{ left:130%; }
  .btn-primary, .btn-dark{ transition:transform .25s cubic-bezier(.34,1.56,.64,1), background .2s ease, box-shadow .25s ease; }
  .btn-primary:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,153,51,0.35); }
  .btn-dark:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,0.45); }
  .btn-outline:hover, .btn-outline-dark:hover{ transform:translateY(-3px); }

  /* pulsing glow on the hero's primary CTA to draw the eye */
  .hero-actions .btn-primary{ animation:ctaGlow 2.8s ease-in-out infinite; }
  @keyframes ctaGlow{
    0%, 100%{ box-shadow:0 0 0 0 rgba(0,153,51,0.45); }
    50%{ box-shadow:0 0 0 10px rgba(0,153,51,0); }
  }

  /* eyebrow pulsing dot */
  .eyebrow::before{ animation:dotPulse 1.8s ease-in-out infinite; }
  @keyframes dotPulse{
    0%, 100%{ box-shadow:0 0 0 0 rgba(255,204,0,0.6); }
    50%{ box-shadow:0 0 0 6px rgba(255,204,0,0); }
  }

  /* hero background slow ken-burns drift */
  .hero-bg-img{ animation:kenBurns 22s ease-in-out infinite alternate; will-change:transform; }
  @keyframes kenBurns{
    0%{ transform:scale(1.0); object-position:center 28%; }
    100%{ transform:scale(1.09); object-position:center 34%; }
  }

  /* mini-form input focus glow */
  .mini-form input, .mini-form select, .mini-form textarea{ transition:border-color .2s ease, box-shadow .2s ease, background .2s ease; }
  .mini-form input:focus, .mini-form select:focus, .mini-form textarea:focus{
    border-color:var(--green); box-shadow:0 0 0 3px rgba(0,153,51,0.18); background:#fff; outline:none;
  }
  .mini-form button{ transition:transform .25s cubic-bezier(.34,1.56,.64,1), background .2s ease, box-shadow .25s ease; }
  .mini-form button:hover{ transform:translateY(-2px) scale(1.01); box-shadow:0 8px 20px rgba(0,0,0,0.35); }

  /* gen badge pulse ring */
  .gen-badge{ position:absolute; top:18px; left:18px; z-index:2; }
  .gen-badge::after{
    content:''; position:absolute; inset:-4px; border:1.5px solid var(--yellow); border-radius:2px;
    animation:badgeRing 2.4s ease-out infinite; opacity:0;
  }
  @keyframes badgeRing{
    0%{ opacity:.9; inset:-4px; }
    100%{ opacity:0; inset:-10px; }
  }

  /* photo hover zoom (generator / why-us / area photos) */
  .gen-photo, .why-photo{ overflow:hidden; }
  .gen-photo img, .why-photo img{ transition:transform .8s cubic-bezier(.16,.84,.44,1); }
  .gen-photo:hover img, .why-photo:hover img{ transform:scale(1.06); }

  /* spec-strip row hover */
  .spec-strip div{ transition:background .2s ease; }
  .spec-strip div:hover{ background:rgba(0,153,51,0.08); }
  .tone-medium .spec-strip div:hover{ background:rgba(0,153,51,0.08); }

  /* process-strip hover nudge */
  .process-strip li{ transition:transform .25s ease; }
  .process-strip li:hover{ transform:translateY(-3px); }
  .process-strip li:hover .dot{ box-shadow:0 0 0 4px rgba(0,153,51,0.25); }
  .process-strip .dot{ transition:box-shadow .25s ease; }

  /* service cards */
  .service-card{ transition:transform .35s cubic-bezier(.16,.84,.44,1), box-shadow .35s ease; position:relative; z-index:1; }
  .service-card:hover{ transform:translateY(-8px); box-shadow:0 18px 40px rgba(0,0,0,0.45); z-index:2; }
  .service-card .thumb{ position:relative; }
  .service-card .thumb::after{
    content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.55) 100%);
    opacity:0; transition:opacity .3s ease;
  }
  .service-card:hover .thumb::after{ opacity:1; }
  .service-card .thumb img{ transition:transform .7s cubic-bezier(.16,.84,.44,1); }
  .service-card:hover .thumb img{ transform:scale(1.1); }
  .service-card a{ transition:gap .25s ease, color .2s ease; }
  .service-card:hover a{ gap:10px; color:var(--yellow); }

  /* why-row items */
  .why-row li{ transition:transform .25s ease; }
  .why-row li:hover{ transform:translateY(-3px); }
  .why-row li:hover .n{ color:var(--green); text-shadow:none; }

  /* city-tags hover already defined above */

  /* testimonial cards */
  .testi-card{ transition:transform .35s cubic-bezier(.16,.84,.44,1), box-shadow .35s ease, border-color .3s ease; }
  .testi-card:hover{ transform:translateY(-6px); box-shadow:0 16px 34px rgba(0,0,0,0.4); border-color:rgba(0,153,51,0.5); }
  .stars svg{ transition:transform .2s ease; }
  .testi-card:hover .stars svg{ transform:scale(1.12); }
  .testi-card:hover .stars svg:nth-child(1){ transition-delay:.02s; }
  .testi-card:hover .stars svg:nth-child(2){ transition-delay:.06s; }
  .testi-card:hover .stars svg:nth-child(3){ transition-delay:.1s; }
  .testi-card:hover .stars svg:nth-child(4){ transition-delay:.14s; }
  .testi-card:hover .stars svg:nth-child(5){ transition-delay:.18s; }

  /* nav link underline sweep (top-level only, not dropdown items) */
  .nav-links > li > a{ position:relative; }
  .nav-links > li > a::after{
    content:''; position:absolute; left:0; bottom:-4px; width:0; height:2px;
    background:linear-gradient(90deg, var(--green), var(--yellow));
    transition:width .3s ease;
  }
  .nav-links > li > a:hover::after{ width:100%; }

  /* Services dropdown */
  .nav-links li.has-dropdown{ position:relative; }
  .nav-links li.has-dropdown > a{ display:inline-flex; align-items:center; gap:5px; }
  .nav-links .chev{ transition:transform .25s ease; }
  .nav-links li.has-dropdown:hover .chev,
  .nav-links li.has-dropdown:focus-within .chev{ transform:rotate(180deg); }
  .dropdown{
    position:absolute; top:100%; left:-14px; margin-top:16px; z-index:10;
    min-width:230px; list-style:none; margin:16px 0 0; padding:8px;
    background:rgba(9,10,8,0.98); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border:1px solid rgba(179,179,179,0.16); border-radius:6px;
    box-shadow:0 18px 36px rgba(0,0,0,0.45);
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .22s ease, transform .22s cubic-bezier(.16,.84,.44,1), visibility .22s ease;
  }
  .nav-links li.has-dropdown:hover .dropdown,
  .nav-links li.has-dropdown:focus-within .dropdown{
    opacity:1; visibility:visible; transform:translateY(0);
  }
  .dropdown a{
    display:block; padding:10px 12px; font-size:13.5px; color:var(--gray);
    border-radius:4px; transition:background .18s ease, color .18s ease;
  }
  .dropdown a:hover{ background:rgba(0,153,51,0.14); color:var(--white); }
  .dropdown-cities{
    min-width:380px; column-count:2; column-gap:4px;
  }
  .dropdown-cities li{ break-inside:avoid; }

  /* phone-link hover */
  .phone-link, .phone-big{ transition:color .2s ease, transform .2s ease; }
  .phone-link:hover, .phone-big:hover{ color:var(--yellow); }
  .final-phone{ transition:color .2s ease; }
  .final-phone:hover{ color:var(--green); }
  .faq-callout-phone{ transition:opacity .2s ease; }
  .faq-callout-phone:hover{ opacity:0.75; }
  .phone-link:hover svg, .phone-big:hover svg{ animation:ring 0.5s ease; }
  @keyframes ring{
    0%, 100%{ transform:rotate(0); }
    20%{ transform:rotate(-15deg); }
    40%{ transform:rotate(12deg); }
    60%{ transform:rotate(-8deg); }
    80%{ transform:rotate(5deg); }
  }

  /* custom FAQ accordion */
  .faq-item{ border-bottom:1px solid #ddd6c4; }
  .faq-q{
    width:100%; background:none; border:none; cursor:pointer; text-align:left;
    padding:22px 0; font-size:17px; font-weight:600; font-family:var(--body); color:var(--ink);
    display:flex; justify-content:space-between; align-items:center; gap:20px;
  }
  .faq-q .plus{
    position:relative; width:18px; height:18px; flex-shrink:0;
  }
  .faq-q .plus::before, .faq-q .plus::after{
    content:''; position:absolute; background:var(--green); transition:transform .3s ease;
  }
  .faq-q .plus::before{ left:0; top:50%; width:100%; height:2px; transform:translateY(-50%); }
  .faq-q .plus::after{ top:0; left:50%; width:2px; height:100%; transform:translateX(-50%); }
  .faq-item.open .faq-q .plus::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.16,.84,.44,1); }
  .faq-a p{ padding-bottom:22px; color:var(--ink-soft); font-size:15px; max-width:68ch; }
  .faq-q:hover{ color:var(--green); }

  /* back to top */
  #back-to-top{
    position:fixed; right:24px; bottom:24px; z-index:55;
    width:46px; height:46px; border-radius:50%; background:var(--green); color:var(--black);
    display:flex; align-items:center; justify-content:center; border:none; cursor:pointer;
    opacity:0; pointer-events:none; transform:translateY(10px) scale(0.9);
    transition:opacity .3s ease, transform .3s ease, background .2s ease;
    box-shadow:0 8px 20px rgba(0,0,0,0.35);
  }
  #back-to-top.visible{ opacity:1; pointer-events:auto; transform:none; }
  #back-to-top:hover{ background:#00b23b; transform:translateY(-3px); }
  #back-to-top svg{ width:18px; height:18px; fill:currentColor; }
  @media (max-width:980px){ #back-to-top{ display:none; } }

  /* sticky mobile bar attention pulse */
  /* sticky mobile CTA icon sizing already handled by .sticky-cta a svg */

  @media (prefers-reduced-motion: reduce){
    .hero-bg-img{ animation:none; }
    [data-reveal], [data-reveal-scale]{ opacity:1; transform:none; }
  }

  /* ---------- MOBILE NAV: FULL-SCREEN GRADIENT TAKEOVER ---------- */
  .mobile-nav{ display:none; }
  @media (max-width:980px){
    .mobile-nav{
      display:flex; flex-direction:column;
      justify-content:space-between;
      position:fixed; inset:0; z-index:40;
      background:linear-gradient(150deg, var(--green) 0%, var(--yellow) 100%);
      padding:99px 24px calc(30px + env(safe-area-inset-bottom, 0px));
      overflow-y:auto;
      opacity:0; visibility:hidden; pointer-events:none;
      transform:translateY(-14px);
      transition:opacity .45s ease, transform .45s cubic-bezier(.16,.84,.44,1), visibility .45s ease;
    }
    .mobile-nav-links-group{ display:flex; flex-direction:column; }
    .mobile-nav.open{ opacity:1; visibility:visible; pointer-events:auto; transform:none; }
    body.menu-open{ overflow:hidden; }

    .mobile-nav-links-group > a,
    .mobile-nav-group{
      opacity:0; transform:translateY(10px);
      transition:opacity .4s ease, transform .4s ease;
      transition-delay:.05s;
    }
    .mobile-nav.open .mobile-nav-links-group > a,
    .mobile-nav.open .mobile-nav-group{ opacity:1; transform:none; }
    .mobile-nav.open .mobile-nav-group:nth-of-type(2){ transition-delay:.09s; }
    .mobile-nav.open .mobile-nav-group:nth-of-type(3){ transition-delay:.13s; }
    .mobile-nav.open .mobile-nav-group:nth-of-type(4){ transition-delay:.17s; }

    .mobile-nav a{
      padding:12px 1.5px; color:var(--black); text-decoration:none;
      font-family:var(--display); font-weight:700; font-size:18px;
      border-bottom:1px solid rgba(12,12,12,0.18);
    }
    .mobile-nav-links-group > a{ display:block; }
    .mobile-nav a:hover{ opacity:0.7; }
    .mobile-nav-group{ border-bottom:1px solid rgba(12,12,12,0.18); }
    .mobile-nav-toggle{
      width:100%; display:flex; justify-content:space-between; align-items:center;
      background:none; border:none; padding:12px 1.5px; margin:0;
      color:var(--black); font-family:var(--display); font-weight:700; font-size:18px;
      cursor:pointer;
    }
    .mobile-nav-toggle .plus{ position:relative; width:12px; height:12px; flex-shrink:0; }
    .mobile-nav-toggle .plus::before, .mobile-nav-toggle .plus::after{
      content:''; position:absolute; background:var(--black); transition:transform .3s ease;
    }
    .mobile-nav-toggle .plus::before{ left:0; top:50%; width:100%; height:2px; transform:translateY(-50%); }
    .mobile-nav-toggle .plus::after{ top:0; left:50%; width:2px; height:100%; transform:translateX(-50%); }
    .mobile-nav-group.open .mobile-nav-toggle .plus::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }

    .mobile-nav-sub{
      max-height:0; overflow:hidden;
      transition:max-height .4s cubic-bezier(.16,.84,.44,1), margin .4s ease;
      display:grid; grid-template-columns:1fr 1fr; gap:6px;
    }
    .mobile-nav-group.open .mobile-nav-sub{
      max-height:420px; margin:0 0 10px;
      background:rgba(12,12,12,0.07); border-radius:12px; padding:10px;
    }
    .mobile-nav-group.open .mobile-nav-sub-cities{ max-height:68vh; overflow-y:auto; }
    .mobile-nav-sub a{
      display:flex; align-items:center; justify-content:center; text-align:center;
      min-height:35px; padding:8px 6px; line-height:1.2;
      font-size:10px; font-family:var(--body); font-weight:600;
      background:rgba(12,12,12,0.78); color:var(--white);
      border-radius:8px; border-bottom:none;
      transition:background .2s ease, color .2s ease, transform .15s ease;
    }
    .mobile-nav-sub a:hover{ background:var(--black); color:var(--yellow); transform:translateY(-1px); }
    .mobile-nav-sub a:active{ background:var(--black); color:var(--yellow); transform:translateY(0); }

    .mobile-nav .mobile-nav-actions{ display:flex; flex-direction:column; gap:10px; margin-top:18px; }
    .mobile-nav .phone-link{
      padding:0; border-bottom:none; color:var(--black); font-size:17px; justify-content:center;
    }
    .mobile-nav .phone-link svg{ fill:var(--black); }
    .mobile-nav .btn-dark{ justify-content:center; padding:14px 20px; font-size:12px; color:var(--white); border-bottom:none; }

    .mobile-nav-bottom{ display:flex; flex-direction:column; }
    .mobile-nav-social{
      margin-top:24px; padding-top:18px; border-top:1px solid rgba(12,12,12,0.18);
      opacity:0; transform:translateY(10px);
      transition:opacity .4s ease .21s, transform .4s ease .21s;
    }
    .mobile-nav.open .mobile-nav-social{ opacity:1; transform:none; }
    .mobile-nav-social-label{
      display:block; text-align:center; font-size:9.5px; font-weight:700;
      letter-spacing:1.5px; text-transform:uppercase; color:rgba(12,12,12,0.65);
      margin-bottom:12px;
    }
    .mobile-nav-social-icons{ display:flex; justify-content:center; gap:12px; }
    .mobile-nav-social-icons a{
      display:flex; align-items:center; justify-content:center;
      width:35px; height:35px; border-radius:50%;
      background:rgba(12,12,12,0.1); border-bottom:none; padding:0;
      transition:background .2s ease, transform .2s ease;
    }
    .mobile-nav-social-icons a:hover{ background:rgba(12,12,12,0.85); transform:translateY(-2px); }
    .mobile-nav-social-icons svg{ width:15px; height:15px; fill:var(--black); transition:fill .2s ease; }
    .mobile-nav-social-icons a:hover svg{ fill:var(--white); }

    .menu-toggle{ position:relative; width:44px; height:44px; }
    .menu-toggle .bar{
      position:absolute; left:50%; margin-left:-14px; width:28px; height:2px; background:var(--white); border-radius:2px;
      transition:transform .3s ease, opacity .2s ease, top .3s ease;
    }
    .menu-toggle .bar:nth-child(1){ top:15px; }
    .menu-toggle .bar:nth-child(2){ top:21px; }
    .menu-toggle .bar:nth-child(3){ top:27px; }
    .menu-toggle.open .bar:nth-child(1){ top:21px; transform:rotate(45deg); }
    .menu-toggle.open .bar:nth-child(2){ opacity:0; }
    .menu-toggle.open .bar:nth-child(3){ top:21px; transform:rotate(-45deg); }
  }

  /* ================= AWWARDS-TIER LAYER ================= */

  /* film grain, applied over the whole viewport */
  body::after{
    content:'';
    position:fixed; inset:0; z-index:9990; pointer-events:none;
    opacity:0.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ---- preloader ---- */
  #preloader{
    position:fixed; inset:0; z-index:10000;
    background:var(--black);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
    transition:opacity .6s ease, visibility .6s ease;
  }
  #preloader.done{ opacity:0; visibility:hidden; pointer-events:none; }
  html.no-preloader #preloader{ display:none; }
  .preloader-mark img{ width:56px; height:auto; animation:preloaderPulse 1.4s ease-in-out infinite; }
  @keyframes preloaderPulse{ 0%,100%{ opacity:.55; transform:scale(.96); } 50%{ opacity:1; transform:scale(1); } }
  .preloader-bar{ width:180px; height:2px; background:rgba(179,179,179,0.25); border-radius:2px; overflow:hidden; }
  .preloader-bar span{
    display:block; height:100%; width:0%;
    background:linear-gradient(90deg, var(--green), var(--yellow));
  }
  .preloader-pct{ font-family:var(--display); font-size:13px; letter-spacing:2px; color:var(--gray); }

  /* ---- split-text word-mask reveal ---- */
  [data-split] .word{ display:inline-block; overflow:hidden; vertical-align:top; }
  [data-split] .word-inner{
    display:inline-block;
    transform:translateY(112%);
    transition:transform .85s cubic-bezier(.16,.84,.44,1);
    transition-delay:calc(var(--wi, 0) * 40ms);
  }
  [data-split].split-in .word-inner{ transform:none; }

  /* ---- clip-path image wipe reveal ---- */
  [data-reveal-clip]{
    clip-path:inset(0 0 100% 0);
    transition:clip-path 1.1s cubic-bezier(.16,.84,.44,1);
  }
  [data-reveal-clip].in-view{ clip-path:inset(0 0 0% 0); }

  /* ---- 3D tilt on the generator photo (signature moment) ---- */
  .gen-photo{
    transform-style:preserve-3d; will-change:transform;
    transition:transform .3s ease, clip-path 1.1s cubic-bezier(.16,.84,.44,1);
  }

  /* ---- section progress dots (desktop wayfinding) ---- */
  .section-dots{
    position:fixed; right:22px; top:50%; transform:translateY(-50%); z-index:55;
    display:flex; flex-direction:column; gap:16px;
  }
  .section-dots a{
    position:relative; width:8px; height:8px; border-radius:50%;
    background:rgba(179,179,179,0.35); border:1px solid rgba(179,179,179,0.35);
    transition:background .25s ease, border-color .25s ease, transform .25s ease;
  }
  .section-dots a::after{
    content:attr(data-label);
    position:absolute; right:18px; top:50%; transform:translateY(-50%);
    font-size:11px; font-weight:600; letter-spacing:0.3px; color:var(--white);
    background:rgba(12,12,12,0.85); padding:5px 9px; border-radius:3px;
    white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s ease;
  }
  .section-dots a:hover::after{ opacity:1; }
  .section-dots a:hover{ transform:scale(1.3); }
  .section-dots a.active{ background:var(--green); border-color:var(--yellow); transform:scale(1.35); }
  @media (max-width:1180px){ .section-dots{ display:none; } }

  @media (prefers-reduced-motion: reduce){
    body::after{ display:none; }
    #preloader{ display:none !important; }
    [data-split] .word-inner{ transform:none; transition:none; }
    [data-reveal-clip]{ clip-path:none; }
    .gen-photo{ transition:none; }
  }

  /* ---------- MOBILE HERO LAYOUT ---------- */
  @media (max-width:640px){
    .hero-inner{ padding:28px; }
  }

  /* ---------- MOBILE ---------- */
  @media (max-width: 980px){
    .nav-links{display:none;}
    .menu-toggle{display:block;}
    .quote-grid{grid-template-columns:1fr;}
    .gen-intro{grid-template-columns:1fr;}
    .gen-photo{aspect-ratio:16/9;}
    .spec-strip{grid-template-columns:repeat(3, 1fr);}
    .spec-strip div{border-bottom:1px solid #ddd6c4;}
    .spec-strip div:nth-child(3n){border-right:none;}
    .spec-strip div:nth-child(-n+3){border-top:none;}
    .tone-medium .spec-strip div{border-bottom-color:var(--medium-line);}
    .process-strip{grid-template-columns:1fr 1fr; gap:24px 20px;}
    .services-grid{grid-template-columns:1fr 1fr;}
    .why-story{grid-template-columns:1fr; text-align:center; justify-items:center;}
    .why-photo{width:100%; max-width:280px; aspect-ratio:4/5;}
    .faq-layout{grid-template-columns:1fr;}
    .faq-callout{position:static;}
    .testi-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
    .foot-cities-list{column-count:3;}
    .sticky-cta{display:flex;}
    body{padding-bottom:calc(11vh + env(safe-area-inset-bottom, 0px));}
  }
  @media (max-width: 620px){
    .services-grid{grid-template-columns:1fr;}
    .why-row{grid-template-columns:1fr 1fr; gap:20px;}
    .foot-grid{grid-template-columns:1fr;}
    .foot-cities-list{column-count:2;}
    .phone-link .num-text{display:none;}
    .nav-cta .btn-primary{display:none;}
    section{padding:64px 0;}
    .spec-strip{grid-template-columns:1fr 1fr;}
    .spec-strip div:nth-child(3n){border-right:1px solid #ddd6c4;}
    .spec-strip div:nth-child(even){border-right:none;}
    .tone-medium .spec-strip div:nth-child(3n){border-right-color:var(--medium-line);}
    .process-strip{grid-template-columns:1fr;}
  }


  /* ================= PREMIUM SECTIONS ================= */
  .px-sec{padding:clamp(74px,9vw,132px) 0;}
  .px-head{max-width:760px;margin-bottom:clamp(34px,4.5vw,56px);}
  .px-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:700;
    font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green);margin-bottom:18px;}
  .px-kicker::before{content:"";width:26px;height:2px;background:linear-gradient(90deg,var(--green),var(--yellow));display:inline-block;}
  .tone-dark .px-kicker,.tone-panel .px-kicker{color:var(--yellow);}
  .px-h2{font-family:var(--display);font-weight:800;line-height:1.02;letter-spacing:.3px;
    font-size:clamp(2rem,4.6vw,3.5rem);}
  .px-lead{margin-top:18px;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.65;max-width:60ch;color:var(--ink-soft);}
  .tone-dark .px-lead,.tone-panel .px-lead{color:var(--gray);}
  .px-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}

  /* trust strip */
  .px-trust{padding:0;}
  .px-trust-in{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0;}
  .px-t{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:38px 20px;
    border-right:1px solid var(--green-line);position:relative;}
  .px-t:last-child{border-right:0;}
  .px-t svg{width:26px;height:26px;fill:var(--green);}
  .px-t-n{font-family:var(--display);font-weight:800;font-size:clamp(1.6rem,3.2vw,2.2rem);color:var(--yellow);line-height:1;}
  .px-t-l{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);}
  @media(max-width:760px){.px-trust-in{grid-template-columns:repeat(2,1fr);}.px-t:nth-child(2){border-right:0;}
    .px-t:nth-child(1),.px-t:nth-child(2){border-bottom:1px solid var(--green-line);}}

  /* quick-quote bar beneath the trust stats */
  .px-quickform{border-top:1px solid var(--green-line);padding:28px 0;
    display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap;}
  .px-quickform-label{flex-shrink:0;text-align:left;}
  .px-quickform-label h3{font-family:var(--display);font-weight:800;font-size:1.15rem;color:#fff;margin:0;}
  .px-quickform-label p{margin:2px 0 0;font-size:.82rem;color:var(--gray);}
  .px-quickform-fields{flex:0 1 auto;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}
  .px-quickform-field{flex:0 1 190px;min-width:150px;}
  .px-quickform-field input,.px-quickform-field select{
    width:100%;background:rgba(255,255,255,.06);border:1px solid var(--green-line);color:#fff;
    padding:12px 14px;border-radius:3px;font-family:var(--body);font-size:15px;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;}
  .px-quickform-field input::placeholder{color:var(--gray-dim);}
  .px-quickform-field select{color:var(--gray);}
  .px-quickform-field select:valid{color:#fff;}
  .px-quickform-field input:focus,.px-quickform-field select:focus{
    border-color:var(--green);box-shadow:0 0 0 3px rgba(0,153,51,.25);background:rgba(255,255,255,.1);outline:none;}
  .px-quickform-fields .btn{flex-shrink:0;white-space:nowrap;}
  .px-quickform-note{margin:10px 0 0;font-size:.72rem;color:var(--gray-dim);text-align:center;}
  .px-quickform .form-success{display:none;text-align:center;padding:0;font-size:.9rem;color:#fff;width:100%;}
  .px-quickform .form-success strong{color:var(--green);}
  @media(max-width:860px){.px-quickform{flex-direction:column;align-items:stretch;gap:16px;}
    .px-quickform-label{text-align:left;}
    .px-quickform-fields{flex-direction:column;align-items:stretch;}
    .px-quickform-field{flex:1 1 auto;width:100%;}
    .px-quickform-fields .btn{width:100%;justify-content:center;}
    .px-quickform-note{text-align:left;}}

  /* generators feature */
  .px-gen{padding-bottom:0;}
  .px-gen-grid{display:grid;grid-template-columns:.9fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:center;}
  .px-gen-visual-wrap{position:relative;}
  .px-gen-visual{position:relative;border-radius:3px;overflow:hidden;aspect-ratio:4/3;
    box-shadow:0 34px 60px -30px rgba(0,0,0,.45);}
  .px-gen-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  @media(max-width:860px){.px-gen-grid{grid-template-columns:1fr;}.px-gen-copy{order:2;}.px-gen-visual-wrap{order:1;}
    .px-gen-visual{aspect-ratio:16/10;}}
  /* benefits strip */
  .px-benefits-strip{margin-top:clamp(44px,6vw,68px);padding-top:clamp(32px,5vw,44px);border-top:1px solid var(--medium-line);
    display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .px-benefit{padding:26px 24px;background:var(--cream);border:1px solid var(--medium-line);border-radius:14px;
    transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}
  .px-benefit:hover{transform:translateY(-5px);box-shadow:0 24px 44px -28px rgba(0,0,0,.3);border-color:transparent;}
  .px-benefit-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px;
    background:linear-gradient(150deg,var(--green),#00b33c);box-shadow:0 12px 24px -10px rgba(0,153,51,.55);}
  .px-benefit-ico svg{width:23px;height:23px;fill:#fff;}
  .px-benefit h4{font-family:var(--display);font-weight:800;font-size:1.06rem;margin:0 0 8px;color:var(--ink);line-height:1.15;}
  .px-benefit p{margin:0;font-size:.86rem;color:var(--ink-soft);line-height:1.5;}
  .px-benefit-body{display:block;}
  @media(max-width:860px){.px-benefits-strip{display:flex;flex-direction:column;gap:0;}
    .px-benefit{display:flex;align-items:flex-start;gap:16px;padding:18px 2px;background:none;border:none;
      border-radius:0;box-shadow:none;border-bottom:1px solid var(--medium-line);}
    .px-benefit:hover{transform:none;box-shadow:none;border-bottom-color:var(--medium-line);}
    .px-benefit:first-child{padding-top:2px;}
    .px-benefit:last-child{border-bottom:none;padding-bottom:2px;}
    .px-benefit-ico{width:44px;height:44px;border-radius:10px;margin-bottom:0;flex-shrink:0;}
    .px-benefit-ico svg{width:22px;height:22px;}
    .px-benefit-body{flex:1;min-width:0;}}
  @media(max-width:560px){.px-benefit{gap:12px;padding:16px 2px;}.px-benefit h4{font-size:.98rem;margin-bottom:4px;}
    .px-benefit p{font-size:.84rem;}}
  /* certified dealer trust bar — full bleed */
  .px-cert-strip{margin-top:clamp(44px,6vw,68px);position:relative;
    background:linear-gradient(120deg,var(--green-deep),#062a17 75%);}
  .px-cert-strip::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),var(--yellow));}
  .px-cert-strip-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
    gap:18px;padding:28px;}
  .px-cert-strip-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:rgba(255,255,255,.6);}
  .px-cert-logos{display:flex;align-items:center;flex-wrap:wrap;}
  .px-cert-item{display:flex;align-items:center;gap:14px;padding:0 30px;}
  .px-cert-item:first-child{padding-left:0;}
  .px-cert-item+.px-cert-item{border-left:1px solid rgba(255,255,255,.18);}
  .px-cert-item-logo{height:26px;width:auto;display:block;flex-shrink:0;}
  .px-cert-item-sub{font-size:.68rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.07em;
    padding-left:14px;border-left:1px solid rgba(255,255,255,.18);}
  @media(max-width:640px){.px-cert-strip-inner{flex-direction:column;align-items:flex-start;padding:26px 24px;}
    .px-cert-logos{flex-direction:column;align-items:flex-start;gap:16px;width:100%;}
    .px-cert-item{padding:0;}
    .px-cert-item+.px-cert-item{border-left:none;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);width:100%;}}

  /* services — photo + list */
  .px-serv-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(32px,5vw,64px);align-items:stretch;}
  .px-serv-photo{position:relative;margin:0;border-radius:3px;overflow:hidden;min-height:360px;
    box-shadow:0 34px 60px -30px rgba(0,0,0,.45);}
  .px-serv-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .px-serv-list{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);
    grid-auto-flow:column;column-gap:44px;align-content:center;}
  .px-serv-row{display:flex;align-items:flex-start;gap:16px;padding:18px 6px;text-decoration:none;
    border-bottom:1px solid var(--medium-line);transition:background-color .25s ease;}
  .px-serv-row:first-child{padding-top:2px;}
  .px-serv-row:last-child{border-bottom:none;padding-bottom:2px;}
  .px-serv-row:hover{background:rgba(0,153,51,.05);}
  .px-serv-row-ico{flex-shrink:0;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;
    background:linear-gradient(150deg,var(--green),#00b33c);box-shadow:0 10px 20px -8px rgba(0,153,51,.5);}
  .px-serv-row-ico svg{width:22px;height:22px;fill:#fff;}
  .px-serv-row-body{flex:1;min-width:0;}
  .px-serv-row-body h3{font-family:var(--display);font-weight:800;font-size:1.05rem;margin:0 0 4px;color:var(--ink);}
  .px-serv-row-body p{margin:0;font-size:.87rem;color:var(--ink-soft);line-height:1.5;}
  .px-serv-row-arrow{flex-shrink:0;align-self:center;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    border:1px solid var(--medium-line);transition:background-color .25s ease,border-color .25s ease,transform .25s ease;}
  .px-serv-row-arrow svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .px-serv-row:hover .px-serv-row-arrow{background:var(--green);border-color:var(--green);transform:translateX(3px);}
  .px-serv-row:hover .px-serv-row-arrow svg{stroke:#fff;}
  @media(max-width:900px){.px-serv-layout{grid-template-columns:1fr;}.px-serv-photo{min-height:0;aspect-ratio:16/9;}
    .px-serv-list{display:flex;flex-direction:column;}}
  @media(max-width:560px){.px-serv-row{gap:12px;padding:16px 2px;}.px-serv-row-body h3{font-size:.98rem;}
    .px-serv-row-body p{font-size:.84rem;}.px-serv-row-arrow{display:none;}}
  .px-serv-cta{margin-top:clamp(40px,6vw,64px);padding-top:clamp(32px,5vw,44px);border-top:1px solid var(--medium-line);
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:22px;}
  .px-serv-cta p{margin:0;font-family:var(--display);font-weight:800;font-size:1.15rem;color:var(--ink);max-width:440px;line-height:1.25;}
  .px-serv-cta .px-actions{margin-top:0;}
  @media(max-width:640px){.px-serv-cta{align-items:flex-start;}.px-serv-cta p{max-width:none;}}

  /* why — premium hero number + framed photo, two-column */
  .px-why-grid{display:grid;grid-template-columns:.82fr 1.5fr;gap:clamp(32px,5vw,64px);align-items:center;}
  .px-why-num{font-family:var(--display);font-weight:800;font-size:clamp(4.2rem,8vw,6.2rem);line-height:.85;
    background:linear-gradient(120deg,var(--green) 15%,var(--yellow) 100%);-webkit-background-clip:text;
    background-clip:text;color:transparent;margin-top:12px;
    filter:drop-shadow(0 0 26px rgba(0,153,51,.4)) drop-shadow(0 0 60px rgba(0,153,51,.18));}
  .px-why-numlbl{color:var(--gray);letter-spacing:.13em;text-transform:uppercase;font-size:.78rem;margin-top:8px;}
  .px-why-content .px-h2{margin-top:28px;}
  .px-why-media{display:flex;flex-direction:column;gap:22px;}
  .px-why-photo{position:relative;margin:0;border-radius:3px;overflow:hidden;aspect-ratio:1717/916;
    box-shadow:0 30px 60px -28px rgba(0,0,0,.6);}
  .px-why-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
  .px-quote{margin:0;padding:24px 26px 24px 30px;border-left:3px solid var(--green);background:var(--panel);
    border-radius:0 14px 14px 0;position:relative;}
  .px-quote blockquote{margin:0;font-family:var(--display);font-weight:700;font-size:1.2rem;line-height:1.4;color:#fff;}
  .px-qmark{position:absolute;top:-6px;left:14px;font-family:var(--display);font-size:3rem;color:var(--green);opacity:.5;}
  .px-quote-attr{margin:14px 0 0;font-size:.82rem;font-weight:600;color:var(--gray);}
  .px-why-quad{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;margin-top:30px;
    padding-top:26px;border-top:1px solid var(--green-line);}
  .px-why-quad-item{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600;color:var(--white);}
  .px-why-quad-item svg{width:18px;height:18px;fill:var(--green);flex-shrink:0;}
  @media(max-width:860px){.px-why-grid{grid-template-columns:1fr;}}
  @media(max-width:480px){.px-why-quad{grid-template-columns:1fr;}}

  /* process connected stepper — premium */
  .px-proc-track{list-style:none;margin:clamp(40px,6vw,56px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
  .px-proc-track::before{content:"";position:absolute;top:27px;left:8%;right:8%;height:3px;background:linear-gradient(90deg,var(--green),var(--yellow));opacity:.85;}
  .px-step{padding:0 20px;text-align:center;position:relative;}
  .px-step-node{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 22px;border-radius:50%;
    background:linear-gradient(150deg,var(--green),#00b33c);color:#fff;font-family:var(--display);font-weight:800;font-size:1.4rem;
    box-shadow:0 0 0 6px var(--cream),0 14px 26px -10px rgba(0,153,51,.6);}
  .px-step h3{font-size:1.14rem;margin-bottom:9px;}
  .px-step p{color:var(--ink-soft);font-size:.92rem;line-height:1.55;}
  @media(max-width:820px){.px-proc-track{grid-template-columns:1fr;gap:8px;text-align:left;}
    .px-proc-track::before{left:27px;right:auto;top:0;bottom:0;width:3px;height:auto;}
    .px-step{display:grid;grid-template-columns:56px 1fr;gap:0 20px;padding:14px 0;align-items:start;}
    .px-step-node{margin:0;}.px-step h3,.px-step p{grid-column:2;}}
  .px-proc-cta{margin-top:clamp(44px,6vw,60px);padding-top:clamp(32px,5vw,44px);border-top:1px solid var(--medium-line);
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:22px;}
  .px-proc-cta p{margin:0;font-family:var(--display);font-weight:800;font-size:1.15rem;color:var(--ink);max-width:420px;line-height:1.25;}
  .px-proc-cta .px-actions{margin-top:0;}
  @media(max-width:640px){.px-proc-cta{align-items:flex-start;}.px-proc-cta p{max-width:none;}}
  /* reviews */
  .px-rev-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:36px;}
  .px-rev-rating{color:var(--gray);font-size:.95rem;display:inline-flex;align-items:center;gap:10px;
    text-decoration:none;transition:color .2s ease;}
  .px-rev-rating:hover{color:#fff;}
  .px-rev-rating b{color:#fff;font-size:1.1rem;}
  .px-stars{display:inline-flex;gap:2px;}
  .px-stars svg{width:18px;height:18px;fill:var(--yellow);}
  /* premium testimonial carousel */
  .px-rev-carousel-wrap{position:relative;max-width:var(--max);margin:0 auto;padding:0 clamp(20px,4vw,56px);}
  .px-rev-track{display:flex;gap:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding:4px 0 10px;
    scrollbar-width:none;-ms-overflow-style:none;}
  .px-rev-track::-webkit-scrollbar{display:none;}
  .px-testi{flex:0 0 clamp(260px,32vw,360px);scroll-snap-align:start;background:var(--black);
    border:1px solid var(--green-line);border-radius:18px;padding:28px 26px;margin:0;}
  .px-testi-top{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
  .px-testi-avatar{flex-shrink:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
    background:linear-gradient(150deg,var(--green),#00b33c);color:#fff;font-family:var(--display);font-weight:800;
    font-size:.92rem;letter-spacing:.02em;box-shadow:0 10px 20px -8px rgba(0,153,51,.55);}
  .px-testi-id{display:flex;flex-direction:column;line-height:1.25;}
  .px-testi-name{font-weight:700;color:#fff;font-size:.95rem;}
  .px-testi-loc{color:var(--gray);font-size:.78rem;}
  .px-testi blockquote{margin:14px 0 0;color:#fff;font-size:1rem;line-height:1.6;}
  .px-rev-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;
    display:grid;place-items:center;background:var(--panel);border:1px solid var(--green-line);color:#fff;cursor:pointer;
    transition:background-color .25s ease,border-color .25s ease,transform .2s ease;}
  .px-rev-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;}
  .px-rev-arrow:hover{background:var(--green);border-color:var(--green);}
  .px-rev-arrow-prev{left:0;}
  .px-rev-arrow-next{right:0;}
  .px-rev-dots{display:flex;justify-content:center;gap:8px;margin-top:26px;}
  .px-rev-dot{width:8px;height:8px;border-radius:50%;background:var(--green-line);border:none;padding:0;cursor:pointer;
    transition:background-color .25s ease,transform .25s ease;}
  .px-rev-dot.is-active{background:var(--green);transform:scale(1.3);}
  .px-rev-more{display:block;text-align:center;margin-top:18px;font-size:.88rem;font-weight:600;color:var(--gray);
    text-decoration:none;transition:color .2s ease;}
  .px-rev-more:hover{color:#fff;}
  .px-rev-more span{display:inline-block;transition:transform .2s ease;}
  .px-rev-more:hover span{transform:translateX(3px);}
  @media(max-width:700px){.px-rev-carousel-wrap{padding:0 8px;}.px-rev-arrow{display:none;}
    .px-testi{flex-basis:82vw;}}


  /* faq two-col (reuses .faq-item behaviour) */
  .px-faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,4vw,64px);align-items:start;}
  .px-faq-aside{position:-webkit-sticky;position:sticky;top:120px;}
  .px-faq-call{margin-top:24px;padding:24px;border-radius:16px;background:var(--panel);color:#fff;}
  .px-faq-call p{margin-bottom:14px;color:var(--gray);}
  .px-acc{border-top:1px solid var(--medium-line);}
  @media(max-width:860px){.px-faq-grid{grid-template-columns:1fr;}.px-faq-aside{position:static;}}

  /* service area */
  .px-area-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(34px,5vw,72px);align-items:center;}
  .px-area-map{position:relative;margin:0;border-radius:3px;overflow:hidden;
    border:1px solid var(--medium-line);box-shadow:0 30px 60px -28px rgba(0,0,0,.3);}
  .px-area-map img{width:100%;height:auto;display:block;}
  .px-area-counties{margin-top:clamp(32px,5vw,44px);padding-top:24px;border-top:1px solid var(--medium-line);
    display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);}
  .px-area-counties-intro{grid-column:1/-1;margin:0 0 4px;font-size:.85rem;color:var(--ink-soft);max-width:60ch;}
  .px-area-county h3{font-size:.9rem;margin:0 0 10px;color:var(--ink);}
  .px-area-county p{margin:0;font-size:.85rem;color:var(--ink-soft);line-height:1.9;}
  .px-area-county a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent;}
  .px-area-county a:hover{color:var(--ink);border-bottom-color:var(--ink);}
  @media(max-width:860px){.px-area-grid{grid-template-columns:1fr;}}
  @media(max-width:600px){.px-area-counties{grid-template-columns:1fr;gap:24px;}}

  /* final CTA band */
  .px-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:stretch;}
  .px-cta-copy{display:flex;flex-direction:column;}
  .px-cta-points{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px;}
  .px-cta-points li{position:relative;padding-left:30px;color:var(--gray);}
  .px-cta-points li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:var(--green);
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z" fill="white"/></svg>');background-size:12px;background-position:center;background-repeat:no-repeat;}
  .px-cta-phone{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-family:var(--display);font-weight:800;font-size:1.5rem;color:#fff;}
  .px-cta-phone svg{width:24px;height:24px;fill:var(--yellow);}
  .px-cta-map{margin:26px 0 0;border-radius:3px;overflow:hidden;flex:1;min-height:180px;
    border:1px solid var(--green-line);box-shadow:0 24px 50px -28px rgba(0,0,0,.5);}
  .px-cta-map iframe{width:100%;height:100%;border:0;display:block;}
  .px-cta-card{background:var(--cream);color:var(--ink);border-radius:22px;padding:clamp(26px,3vw,40px);box-shadow:0 40px 90px -50px rgba(0,0,0,.7);}
  .px-cta-card-head{margin-bottom:22px;}
  .px-cta-card-head h3{font-family:var(--display);font-weight:800;font-size:1.3rem;margin:0 0 6px;color:var(--ink);}
  .px-cta-card-head p{margin:0;font-size:.88rem;color:var(--ink-soft);}
  @media(max-width:860px){.px-cta-grid{grid-template-columns:1fr;}.px-cta-map{flex:none;aspect-ratio:16/10;min-height:0;}}

  /* ===== interior page chrome (service pages, about page) ===== */
  .page-hero{padding-top:calc(140px + env(safe-area-inset-top,0px));padding-bottom:clamp(56px,7vw,84px);}
  .breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px;
    font-size:.8rem;color:var(--gray);}
  .breadcrumb a{color:var(--gray);text-decoration:none;transition:color .2s ease;}
  .breadcrumb a:hover{color:#fff;}
  .breadcrumb span{color:var(--gray-dim);}
  .breadcrumb b{color:var(--white);font-weight:600;}
  .page-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center;}
  .page-hero .px-actions{margin-top:30px;}
  @media(max-width:860px){.page-hero-grid{grid-template-columns:1fr;}.page-hero-grid .img-placeholder{order:-1;}}

  /* image placeholder — dashed box standing in for a real photo */
  .img-placeholder{
    position:relative;border-radius:3px;overflow:hidden;
    background:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 12px,rgba(255,255,255,.06) 12px 24px);
    border:2px dashed var(--green-line);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    text-align:center;padding:24px;min-height:220px;
  }
  .tone-light .img-placeholder,.tone-medium .img-placeholder{
    background:repeating-linear-gradient(135deg,rgba(21,23,20,.03) 0 12px,rgba(21,23,20,.05) 12px 24px);
    border-color:var(--medium-line);
  }
  .img-placeholder svg{width:34px;height:34px;stroke:var(--gray);fill:none;stroke-width:1.5;flex-shrink:0;}
  .tone-light .img-placeholder svg,.tone-medium .img-placeholder svg{stroke:var(--ink-soft);}
  .img-placeholder-label{font-family:var(--display);font-weight:700;font-size:.85rem;color:var(--gray);
    text-transform:uppercase;letter-spacing:.05em;}
  .tone-light .img-placeholder-label,.tone-medium .img-placeholder-label{color:var(--ink-soft);}
  .img-placeholder-note{font-size:.76rem;color:var(--gray-dim);max-width:26ch;}
  .img-placeholder.ph-16x9{aspect-ratio:16/9;}
  .img-placeholder.ph-4x3{aspect-ratio:4/3;}
  .img-placeholder.ph-1x1{aspect-ratio:1/1;}
  .img-placeholder.ph-3x2{aspect-ratio:3/2;}

  /* included-items checklist (service pages) */
  .included-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
  .included-list li{display:flex;align-items:flex-start;gap:12px;font-size:.94rem;color:var(--ink-soft);line-height:1.5;}
  .included-list .ico{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
    background:var(--green);margin-top:1px;}
  .included-list .ico svg{width:12px;height:12px;fill:#fff;}
  .included-list b{color:var(--ink);}
  @media(max-width:640px){.included-list{grid-template-columns:1fr;}}

  /* simple related-services strip */
  .related-services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .related-card{display:block;padding:22px;border-radius:14px;background:var(--cream);
    border:1px solid var(--medium-line);text-decoration:none;color:inherit;
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
  .related-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -28px rgba(0,0,0,.3);border-color:transparent;}
  .related-card h3{font-size:1.02rem;margin:0 0 6px;color:var(--ink);}
  .related-card p{margin:0;font-size:.84rem;color:var(--ink-soft);}
  .related-card span{display:inline-block;margin-top:12px;font-size:.82rem;font-weight:700;color:var(--green);}
  @media(max-width:760px){.related-services{grid-template-columns:1fr;}}

  /* ===== universal quote modal — opens from any CTA, anywhere on the site ===== */
  .quote-modal-overlay{
    position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
    padding:20px;padding-top:calc(20px + env(safe-area-inset-top,0px));
    padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));
    background:rgba(6,8,6,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
    opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;
  }
  .quote-modal-overlay.open{opacity:1;visibility:visible;}
  .quote-modal{
    position:relative;width:100%;max-width:480px;max-height:88vh;overflow-y:auto;
    background:var(--cream);color:var(--ink);border-radius:22px;
    padding:clamp(28px,4vw,40px);box-shadow:0 50px 120px -30px rgba(0,0,0,.6);
    transform:translateY(16px) scale(.97);transition:transform .3s cubic-bezier(.16,.84,.44,1);
  }
  .quote-modal-overlay.open .quote-modal{transform:translateY(0) scale(1);}
  .quote-modal-close{
    position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;border:none;
    background:rgba(21,23,20,.06);color:var(--ink);display:grid;place-items:center;cursor:pointer;
    transition:background-color .2s ease,transform .2s ease;
  }
  .quote-modal-close:hover{background:rgba(21,23,20,.12);transform:rotate(90deg);}
  .quote-modal-close svg{width:16px;height:16px;}
  body.modal-open{overflow:hidden;}
  @media(max-width:480px){.quote-modal{padding:26px 22px;border-radius:18px;}}
