/* ═══════════════════════════════════════════════════════════════
   SAXTON EARTHWORKS — "Meridian" design system
   Brand palette taken from the truck badge: red, black, silver.

   CONTRAST (verified):
     brand red #C8202A on white ....... 5.68:1  AA body ✓
     white on brand red ............... 5.68:1  AA body ✓
     --ac-d on white .................. 7.99:1  AAA body ✓

   Every selector below is class-based and prefixed so nothing
   collides with the theme, Gutenberg, or Elementor's own CSS.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --dk:#16181B; --dk-2:#212428; --dk-3:#2E3238; --dk-4:#4A5058;
  --ac:#C8202A; --ac-d:#A0161F; --ac-l:#FBEAEB;
  --lt:#F5F6F7; --lt-2:#E9EBED;
  --ink:#15171A; --ink-2:#4A5058; --ink-3:#7D848C;
  --line:#E0E3E6; --line-2:#C6CBD0;
  --on-dk:#D5D9DD; --on-dk-2:#9AA1A8; --on-dk-3:#858C94;
  --scrim:18,20,23;
  --f:'Chivo',-apple-system,'Segoe UI',Roboto,sans-serif;
  --m:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --wrap:1260px;
  --hdr-h:84px;
}

/* ── base ───────────────────────────────────────────────────── */
body.sew{background:#fff;color:var(--ink);font-family:var(--f);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
.sew *,.sew *::before,.sew *::after{box-sizing:border-box}
.sew a{color:inherit;text-decoration:none}
.sew img{max-width:100%;height:auto}
.sew h1,.sew h2,.sew h3,.sew h4{font-family:var(--f);font-weight:800;line-height:1.06;letter-spacing:-.032em;margin:0}
.sew h1{font-size:clamp(42px,5.6vw,76px);font-weight:900;line-height:1.0}
.sew h2{font-size:clamp(28px,3.3vw,43px)}
.sew h3{font-size:clamp(18px,1.6vw,22px);font-weight:700;letter-spacing:-.026em}
.sew p{margin:0}
.sew ul{margin:0;padding:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 36px;width:100%}
.lbl{display:block;font-family:var(--m);font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;font-weight:600;color:var(--ac-d)}
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--dk);background:var(--lt-2);padding:6px 11px;border-radius:100px}

/* skip link */
.sew .skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ac);color:#fff;padding:12px 18px;font-weight:700}
.sew .skip:focus{left:0}
.sew a:focus-visible,.sew button:focus-visible,.sew summary:focus-visible{outline:3px solid var(--ac);outline-offset:3px}

/* ── util bar ───────────────────────────────────────────────── */
.sew-util{background:var(--dk);color:var(--on-dk-2);font-size:12.5px;position:relative;z-index:80}
.sew-util .wrap{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:18px;flex-wrap:wrap}
.sew-util b{color:#fff;font-weight:600}
.sew-util .s{opacity:.3;margin:0 9px}

/* ── header ─────────────────────────────────────────────────── */
.sew-hdr{position:sticky;top:0;z-index:70;transition:background .28s,box-shadow .28s,border-color .28s;background:transparent;border-bottom:1px solid rgba(255,255,255,.14)}
.sew-hdr .wrap{display:flex;align-items:center;gap:32px;height:var(--hdr-h)}
.sew-brand{display:flex;align-items:center;gap:11px;margin-right:auto}
.sew-brand svg{width:40px;height:40px;flex:none}
.sew-brand-t{font-size:20px;font-weight:900;letter-spacing:-.045em;line-height:1;color:#fff;transition:color .28s}
.sew-brand-t span{display:block;font-family:var(--m);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:400;margin-top:4px;transition:color .28s}
.sew-brand .bg-plate{fill:rgba(255,255,255,.14);transition:fill .28s}
.sew-brand .mark{fill:#fff;transition:fill .28s}
.sew-brand .rule{fill:var(--ac)}
.sew-nav{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.sew-nav li{list-style:none;margin:0}
.sew-nav a{font-size:15.5px;font-weight:600;color:rgba(255,255,255,.86);transition:.15s;letter-spacing:-.015em}
.sew-nav a:hover,.sew-nav .current-menu-item>a{color:var(--ac)}
.sew-hdr.stuck{background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--line);box-shadow:0 2px 18px -8px rgba(15,29,40,.28)}
.sew-hdr.stuck .sew-brand-t{color:var(--dk)}
.sew-hdr.stuck .sew-brand-t span{color:var(--ink-3)}
.sew-hdr.stuck .sew-brand .bg-plate{fill:var(--dk)}
.sew-hdr.stuck .sew-nav a{color:var(--ink-2)}
.sew-hdr.stuck .sew-nav a:hover{color:var(--ac)}
.sew-hdr.stuck .sew-nav .current-menu-item>a,.sew.no-hero .sew-nav .current-menu-item>a{color:var(--ac-d)}
/* pages without a dark hero get the solid header immediately */
.sew.no-hero .sew-hdr{background:#fff;border-bottom-color:var(--line)}
.sew.no-hero .sew-brand-t{color:var(--dk)}
.sew.no-hero .sew-brand-t span{color:var(--ink-3)}
.sew.no-hero .sew-brand .bg-plate{fill:var(--dk)}
.sew.no-hero .sew-nav a{color:var(--ink-2)}

/* mobile nav */
.sew-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.4);border-radius:4px;cursor:pointer;padding:0;flex:none}
.sew-burger span{display:block;width:20px;height:2px;background:#fff;position:relative;transition:.2s}
.sew-burger span::before,.sew-burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:#fff;transition:.2s}
.sew-burger span::before{top:-6px} .sew-burger span::after{top:6px}
.sew-hdr.stuck .sew-burger,.sew.no-hero .sew-burger{background:var(--lt-2);border-color:var(--line-2)}
.sew-hdr.stuck .sew-burger span,.sew-hdr.stuck .sew-burger span::before,.sew-hdr.stuck .sew-burger span::after,
.sew.no-hero .sew-burger span,.sew.no-hero .sew-burger span::before,.sew.no-hero .sew-burger span::after{background:var(--dk)}
.sew-drawer{position:fixed;inset:0;z-index:90;background:var(--dk);display:none;flex-direction:column;padding:26px 24px 40px;overflow-y:auto}
.sew-drawer.open{display:flex}
.sew-drawer-top{display:flex;justify-content:flex-end;margin-bottom:22px}
.sew-close{width:44px;height:44px;background:none;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.sew-drawer a{color:#fff;font-size:24px;font-weight:800;letter-spacing:-.03em;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);display:block}
.sew-drawer .btn{margin-top:26px;font-size:17px;padding:16px 22px;border-bottom:0}
.sew-drawer .dphone{margin-top:22px;font-family:var(--m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dk-2);border:0;padding:0}
body.nav-open{overflow:hidden}

/* ── buttons ────────────────────────────────────────────────── */
.sew .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--f);font-size:15.5px;font-weight:700;padding:13px 22px;border-radius:4px;background:var(--ac);color:#fff;border:1.5px solid var(--ac);transition:.15s;white-space:nowrap;letter-spacing:-.015em;cursor:pointer}
.sew .btn:hover{background:var(--ac-d);border-color:var(--ac-d);color:#fff}
.sew .btn-s{background:var(--dk);border-color:var(--dk)}
.sew .btn-s:hover{background:var(--dk-2);border-color:var(--dk-2)}
.sew .btn-o{background:transparent;color:var(--dk);border-color:var(--line-2)}
.sew .btn-o:hover{border-color:var(--dk);background:transparent;color:var(--dk)}
.sew .btn-w{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.46);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.sew .btn-w:hover{background:rgba(255,255,255,.2);border-color:#fff;color:#fff}

/* ── HERO ───────────────────────────────────────────────────── */
.hero{position:relative;margin-top:calc(var(--hdr-h) * -1);min-height:820px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--dk);width:100%}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none}
.hero-scrim{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(var(--scrim),.93) 0%,rgba(var(--scrim),.80) 34%,rgba(var(--scrim),.34) 66%,rgba(var(--scrim),.50) 100%),
  linear-gradient(180deg,rgba(var(--scrim),.72) 0%,rgba(var(--scrim),.10) 26%,rgba(var(--scrim),.06) 52%,rgba(var(--scrim),.88) 100%)}
.hero-tint{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 78% 46%,rgba(255,255,255,.05),transparent 58%)}
.hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:6px;background:var(--ac);z-index:6}
.hero-body{position:relative;z-index:5;padding:170px 0 0;width:100%}
.hero-in{max-width:830px}
.hero h1{color:#fff;margin:22px 0 0;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero h1 em{font-style:normal;color:var(--ac)}
.hero .lede{font-size:20px;color:rgba(255,255,255,.9);max-width:52ch;margin:26px 0 34px;text-shadow:0 1px 18px rgba(0,0,0,.45)}
.hero .chip{background:rgba(255,255,255,.14);color:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hcta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.sew .hphone{font-size:23px;font-weight:800;letter-spacing:-.045em;color:#fff;margin-left:8px;line-height:1.1}
.sew .hphone small{display:block;font-family:var(--m);font-size:9.5px;letter-spacing:.15em;color:rgba(255,255,255,.6);font-weight:400;text-transform:uppercase;margin-top:3px}
.rail{position:relative;z-index:5;margin-top:76px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.2);background:rgba(var(--scrim),.42);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);width:100%}
.rl{padding:26px 26px 30px;border-right:1px solid rgba(255,255,255,.16)}
.rl:last-child{border-right:0}
.rl b{display:block;font-size:38px;font-weight:900;line-height:.95;letter-spacing:-.05em;color:#fff}
.rl b i{font-style:normal;color:var(--ac)}
.rl span{display:block;font-family:var(--m);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.68);margin-top:10px;line-height:1.6}

/* ── credential strip ───────────────────────────────────────── */
.creds{background:var(--lt);border-bottom:1px solid var(--line);width:100%}
.creds .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.cr{padding:26px 24px 26px 0;border-right:1px solid var(--line);display:flex;gap:13px;align-items:flex-start}
.cr:not(:first-child){padding-left:24px}
.cr:last-child{border-right:0}
.cr svg{width:23px;height:23px;flex:none;stroke:var(--ac);fill:none;stroke-width:2.1;margin-top:3px}
.cr b{display:block;font-size:16.5px;font-weight:800;letter-spacing:-.028em;margin-bottom:3px;color:var(--dk)}
.cr span{font-size:14px;line-height:1.5;color:var(--ink-2);display:block}

/* ── sections ───────────────────────────────────────────────── */
.sec{padding:92px 0;width:100%}
.sec.alt{background:var(--lt)}
.sec.dark{background:var(--dk);color:var(--on-dk)}
.sec.dark h2,.sec.dark h3{color:#fff}
.sh{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:46px}
.sh h2{margin-top:14px}
.sh p{font-size:18px;color:var(--ink-2);max-width:54ch}
.dark .sh p{color:var(--on-dk-2)}

/* ── services ───────────────────────────────────────────────── */
.svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.svc{background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px 26px 30px;transition:.17s;display:flex;flex-direction:column;position:relative;overflow:hidden}
.svc::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--ac);transform:translateY(4px);transition:.2s}
.svc:hover{border-color:var(--dk-4);box-shadow:0 16px 34px -22px rgba(0,0,0,.4);transform:translateY(-3px)}
.svc:hover::after{transform:translateY(0)}
.svc .ic{width:42px;height:42px;border-radius:6px;background:var(--ac-l);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.svc .ic svg{width:21px;height:21px;stroke:var(--ac);fill:none;stroke-width:2}
.svc h3{margin-bottom:9px;color:var(--dk)}
.svc p{font-size:15px;color:var(--ink-2);line-height:1.55}

/* ── process ────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.st{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);border-radius:6px;padding:28px 24px 30px}
.st .n{font-family:var(--m);font-size:11px;letter-spacing:.15em;color:var(--ac);font-weight:500;margin-bottom:16px}
.st h3{margin-bottom:10px;font-size:19px}
.st p{font-size:15px;color:var(--on-dk-2);line-height:1.6}

/* ── compare ────────────────────────────────────────────────── */
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cm{background:#fff;border:1px solid var(--line);border-radius:6px;padding:34px 30px 36px;position:relative}
.cm.on{border-color:var(--ac);box-shadow:0 16px 40px -26px rgba(0,0,0,.35)}
.cm .tag{position:absolute;top:-12px;left:30px;background:var(--ac);color:#fff;font-family:var(--m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:100px;font-weight:500}
.cm h3{font-size:25px;margin-bottom:7px;color:var(--dk)}
.cm .sub{font-family:var(--m);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ac-d);margin-bottom:22px;font-weight:600}
.cm ul{list-style:none}
.cm li{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--ink-2);line-height:1.5}
.cm li:last-child{border-bottom:0}
.cm li svg{width:17px;height:17px;flex:none;margin-top:4px;stroke-width:2.6;fill:none}
.cm .yes svg{stroke:var(--ac)}
.cm .no svg{stroke:var(--line-2)}
.cm .verdict{margin-top:24px;padding:16px 18px;background:var(--lt);border-radius:4px;font-size:16px;font-weight:700;letter-spacing:-.022em;color:var(--dk)}

/* ── pricing ────────────────────────────────────────────────── */
.pg{display:grid;grid-template-columns:1.42fr 1fr;gap:44px;align-items:start}
.sew table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;margin:0;font-size:inherit}
.sew th{background:var(--dk);color:#fff;font-size:12px;font-weight:700;text-align:left;padding:15px 20px;letter-spacing:.05em;text-transform:uppercase;border:0}
.sew th:last-child,.sew td:last-child{text-align:right}
.sew td{padding:18px 20px;border-bottom:1px solid var(--line);vertical-align:top;border-left:0;border-right:0;border-top:0}
.sew tbody tr:last-child td{border-bottom:0}
.sew tbody tr{background:#fff}
.pt{font-size:16.5px;font-weight:800;letter-spacing:-.028em;color:var(--dk)}
.ps{font-size:13.5px;color:var(--ink-3);margin-top:3px}
.pv{font-family:var(--m);font-size:14.5px;color:var(--ac-d);font-weight:600;white-space:nowrap}
.note{background:#fff;border:1px solid var(--line);border-left:5px solid var(--ac);border-radius:6px;padding:28px 26px}
.note h3{margin-bottom:14px;font-size:20px;color:var(--dk)}
.note p{font-size:15.5px;color:var(--ink-2);margin-bottom:14px;line-height:1.6}
.note p:last-child{margin-bottom:0}
.note b{color:var(--ac-d);font-weight:700}

/* ── coverage ───────────────────────────────────────────────── */
.cov{display:grid;grid-template-columns:repeat(5,1fr);gap:28px}
.cc h3{font-size:16.5px;color:var(--dk);margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid var(--ac)}
.cc ul{list-style:none}
.cc li a{display:block;padding:7px 0;font-size:15px;color:var(--ink-2);border-bottom:1px solid var(--line);transition:.15s}
.cc li a:hover{color:var(--ac-d);padding-left:7px}

/* ── equipment ──────────────────────────────────────────────── */
.fleet{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.eq{font-family:var(--m);font-size:13.5px;border-top:2px solid var(--ac)}
.eq div{display:flex;justify-content:space-between;gap:22px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.eq b{font-weight:500;color:#fff}
.eq span{color:var(--on-dk-3);text-align:right}
.fleet-fig{border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.13)}
.fleet-fig img{display:block;width:100%;height:auto}
.fleet-fig figcaption{font-family:var(--m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dk-3);padding:14px 18px;background:rgba(255,255,255,.05);border-top:1px solid rgba(255,255,255,.13)}

/* ── faq ────────────────────────────────────────────────────── */
.faq{max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:23px 0;display:flex;justify-content:space-between;gap:26px;align-items:baseline;font-size:20px;font-weight:800;letter-spacing:-.03em;line-height:1.3;transition:.15s;color:var(--dk)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--ac-d)}
.faq summary::after{content:"+";font-family:var(--m);font-size:21px;color:var(--ac);flex:none;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 23px;color:var(--ink-2);font-size:16.5px;max-width:76ch;line-height:1.7}

/* ── CTA band ───────────────────────────────────────────────── */
.band{background:var(--ac);color:#fff;padding:74px 0;width:100%}
.band h2{color:#fff;margin-bottom:13px}
.band p{font-size:18.5px;color:rgba(255,255,255,.9);max-width:52ch}
.band .wrap{display:grid;grid-template-columns:1.4fr auto;gap:40px;align-items:center}
.band .btn{background:var(--dk);color:#fff;border-color:var(--dk);font-size:16.5px;padding:18px 30px}
.band .btn:hover{background:var(--ink);border-color:var(--ink)}

/* ── footer ─────────────────────────────────────────────────── */
.sew-ft{background:var(--dk);color:var(--on-dk-2);padding:68px 0 0;font-size:14.5px}
.ft{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:42px;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,.14)}
.ft h4{font-family:var(--m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac);margin-bottom:16px;font-weight:500}
.ft ul{list-style:none}
.ft li{margin-bottom:8px}
.ft a:hover{color:#fff}
.fnap{margin-top:18px;line-height:1.85}
.fnap b{color:#fff;font-weight:700}
.fcity{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:13.5px;line-height:2.05}
.fcity b{font-family:var(--m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac);display:block;margin-bottom:10px;font-weight:500}
.fcity a:hover{color:#fff}
.fb{padding:24px 0 36px;display:flex;justify-content:space-between;gap:22px;font-size:13px;flex-wrap:wrap;color:var(--on-dk-3)}

/* ── Elementor container neutralisation ─────────────────────── */
.sew .elementor-widget-container,.sew .elementor-widget{margin:0}
.sew .e-con>.e-con-inner{padding:0;max-width:none}
.sew .e-con,.sew .e-child{--padding-block-start:0;--padding-block-end:0;--padding-inline-start:0;--padding-inline-end:0}

/* ── responsive ─────────────────────────────────────────────── */
@media(max-width:1080px){
  .pg,.fleet,.band .wrap,.ft,.sh,.cmp{grid-template-columns:1fr;gap:36px}
  .svcs,.steps{grid-template-columns:1fr 1fr}
  .cov{grid-template-columns:repeat(3,1fr)}
  .rail,.creds .wrap{grid-template-columns:1fr 1fr}
  .rl{border-bottom:1px solid rgba(255,255,255,.16)}
  .rl:nth-child(2n){border-right:0}
  .sew-nav{display:none}
  .sew-burger{display:flex}
  .hero{min-height:700px}
  .hero-body{padding-top:140px}
}
@media(max-width:680px){
  .wrap{padding:0 20px}
  .sew-hdr .btn{display:none}
  .svcs,.steps,.cov,.rail,.creds .wrap{grid-template-columns:1fr}
  .cr{padding-left:0!important;border-right:0;border-bottom:1px solid var(--line)}
  .cr:last-child{border-bottom:0}
  .rl{border-right:0}
  .sec{padding:60px 0}
  .sew-util .wrap{padding:9px 0;justify-content:center;text-align:center}
  .hero{min-height:640px}
  .hero-body{padding-top:120px}
  .hero-scrim{background:linear-gradient(180deg,rgba(var(--scrim),.78) 0%,rgba(var(--scrim),.55) 40%,rgba(var(--scrim),.92) 100%)}
  .hphone{margin-left:0}
  .band .wrap{grid-template-columns:1fr}
  .sew table,.sew thead,.sew tbody,.sew tr,.sew td{display:block;width:100%}
  .sew thead{display:none}
  .sew td{border-bottom:0;padding:6px 18px}
  .sew tbody tr{border-bottom:1px solid var(--line);padding:14px 0}
  .sew td:last-child,.sew td:nth-child(2){text-align:left}
  .sew td:nth-child(2)::before{content:"Mulching / acre — ";font-family:var(--f);font-size:13px;color:var(--ink-3)}
  .sew td:nth-child(3)::before{content:"Clearing / acre — ";font-family:var(--f);font-size:13px;color:var(--ink-3)}
  .sew td:nth-child(3){padding-bottom:16px}
}
@media(prefers-reduced-motion:reduce){
  .sew *{transition:none!important;animation:none!important}
}

/* ═══════════════════════════════════════════════════════════════
   MERIDIAN — core-page components
   Everything below is shared by the non-homepage templates:
   service pages, service hub, about, contact, pricing, FAQ,
   equipment, county hubs and city pages.
   ═══════════════════════════════════════════════════════════════ */

/* ── compact page hero ──────────────────────────────────────── */
.phero{position:relative;margin-top:calc(var(--hdr-h) * -1);background:var(--dk);overflow:hidden;padding:150px 0 62px;width:100%}
.phero::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:56px 56px}
.phero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:6px;background:var(--ac)}
.phero .wrap{position:relative;z-index:3}
.phero h1{color:#fff;margin:18px 0 0;max-width:20ch}
.phero h1 em{font-style:normal;color:var(--ac)}
.phero .lede{font-size:19.5px;color:rgba(255,255,255,.86);max-width:58ch;margin:22px 0 0}
.phero .hcta{margin-top:30px}
.phero .chip{background:rgba(255,255,255,.14);color:rgba(255,255,255,.9)}

/* ── breadcrumb ─────────────────────────────────────────────── */
.crumb{position:relative;z-index:6}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:9px;align-items:center;
  font-family:var(--m);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;margin:0;padding:0}
.crumb li{display:flex;align-items:center}
.crumb a{color:rgba(255,255,255,.62);transition:.15s}
.crumb a:hover{color:var(--ac)}
.crumb li::after{content:"/";margin-left:9px;color:rgba(255,255,255,.28)}
.crumb li:last-child::after{display:none}
.crumb [aria-current]{color:var(--ac)}

/* ── section-head variants ──────────────────────────────────── */
.sh.solo{grid-template-columns:1fr;max-width:760px;gap:0}
.dark .lbl{color:var(--ac)}

/* ── richer service card (hub) ──────────────────────────────── */
.svc .meta{margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}
.svc p{margin-bottom:18px}
.svc .pr{display:block;font-family:var(--m);font-size:12.5px;color:var(--ac-d);font-weight:600}
.svc .rf{display:block;font-size:13.5px;color:var(--ink-3);line-height:1.5;margin-top:7px}
.svc .go{display:block;margin-top:15px;font-family:var(--m);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--dk-4);font-weight:600;transition:.15s}
.svc:hover .go{color:var(--ac-d)}

/* ── decision cards ─────────────────────────────────────────── */
.rel{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.rc{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px 24px 28px;
  position:relative;overflow:hidden;transition:.17s;display:flex;flex-direction:column}
.dark .rc{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13)}
.rc::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--ac);
  transform:translateY(4px);transition:.2s}
.rc:hover{border-color:var(--dk-4);transform:translateY(-3px);box-shadow:0 16px 34px -22px rgba(26,32,40,.4)}
.rc:hover::after{transform:translateY(0)}
.rc .q{font-family:var(--m);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ac-d);font-weight:600;margin-bottom:12px;display:block}
.dark .rc .q{color:var(--ac)}
.rc h3{font-size:19px;margin-bottom:8px;color:var(--dk)}
.dark .rc h3{color:#fff}
.rc p{font-size:14.5px;color:var(--ink-2);line-height:1.55;margin:0}
.dark .rc p{color:var(--on-dk-2)}
.rc .then{display:block;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);
  font-size:14.5px;font-weight:700;color:var(--ac-d);letter-spacing:-.015em}
.dark .rc .then{border-top-color:rgba(255,255,255,.13);color:var(--ac)}

/* ── photo strip ────────────────────────────────────────────── */
.shots{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.shot{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;margin:0}
.dark .shot{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.04)}
.shot img{display:block;width:100%;height:230px;object-fit:cover}
.shot-low img{object-position:50% 70%}
.shot figcaption{font-family:var(--m);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);padding:14px 16px;line-height:1.7;border-top:1px solid var(--line)}
.dark .shot figcaption{color:var(--on-dk-3);border-top-color:rgba(255,255,255,.13)}

/* ── right-for / wrong-for ──────────────────────────────────── */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.fc{background:#fff;border:1px solid var(--line);border-radius:6px;padding:30px 28px 32px}
.fc.yes{border-color:var(--ac);border-width:2px}
.fc h3{margin-bottom:16px;color:var(--dk)}
.fc ul{list-style:none}
.fc li{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);
  font-size:16px;color:var(--ink-2);line-height:1.5}
.fc li:last-child{border-bottom:0}
.fc li svg{width:17px;height:17px;flex:none;margin-top:4px;stroke-width:2.6;fill:none}
.fc.yes li svg{stroke:var(--ac)}
.fc.no li svg{stroke:var(--line-2)}

/* ── tick list ──────────────────────────────────────────────── */
.tick{list-style:none}
.tick li{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);
  font-size:16px;color:var(--ink-2);line-height:1.55}
.tick li:last-child{border-bottom:0}
.tick li svg{width:17px;height:17px;flex:none;margin-top:4px;stroke:var(--ac);fill:none;stroke-width:2.6}
.dark .tick li{border-bottom-color:rgba(255,255,255,.13);color:var(--on-dk-2)}

/* ── numbered step list ─────────────────────────────────────── */
.slist{list-style:none;counter-reset:sl}
.slist li{counter-increment:sl;display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.slist li:last-child{border-bottom:0}
.slist li::before{content:counter(sl);flex:none;width:30px;height:30px;border-radius:50%;
  background:var(--dk);color:#fff;font-family:var(--m);font-size:12px;font-weight:600;
  display:flex;align-items:center;justify-content:center;margin-top:1px}
.slist b{display:block;font-size:16.5px;color:var(--dk);margin-bottom:3px}
.slist span{font-size:15.5px;color:var(--ink-2);line-height:1.55}
.dark .slist li{border-bottom-color:rgba(255,255,255,.13)}
.dark .slist li::before{background:var(--ac);color:#fff}
.dark .slist b{color:#fff}
.dark .slist span{color:var(--on-dk-2)}

/* ── prose + aside ──────────────────────────────────────────── */
.two{display:grid;grid-template-columns:1.5fr 1fr;gap:52px;align-items:start}
.two-e{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.prose p{font-size:17.5px;color:var(--ink-2);line-height:1.72;margin-bottom:18px}
.prose p:last-child{margin-bottom:0}
.prose p strong{color:var(--ink);font-weight:700}
.prose .first{font-size:20px;color:var(--ink)}
.prose h3{color:var(--dk);margin:32px 0 14px}
.dark .prose p{color:var(--on-dk-2)}
.dark .prose .first{color:var(--on-dk)}
.callout{background:var(--ac-l);border-left:4px solid var(--ac);padding:20px 22px;margin:24px 0;border-radius:0 4px 4px 0}
.callout p{font-size:16.5px;color:var(--ink);margin:0}
.aside-card{background:var(--lt);border:1px solid var(--line);border-radius:6px;padding:26px 24px;position:sticky;top:104px}
.aside-card h4{color:var(--dk);margin-bottom:16px;font-size:17px;font-weight:800;letter-spacing:-.026em}
.aside-card dl{font-size:15px;margin:0}
.aside-card dt{font-family:var(--m);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-top:15px;font-weight:600}
.aside-card dt:first-of-type{margin-top:0}
.aside-card dd{color:var(--ink-2);margin:3px 0 0;line-height:1.5}
.aside-card dd b{color:var(--ink);font-weight:700}
.aside-card .cta{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}

/* ── capability table ───────────────────────────────────────── */
.sew table.cap td:first-child{font-weight:700;color:var(--ink);width:24%}
.sew table.cap td:last-child,.sew table.cap th:last-child{text-align:left}
.sew table.cap td em{font-style:italic;color:var(--ink-3);display:block;font-size:13.5px;margin-top:2px}
.pill{display:inline-block;font-family:var(--m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 9px;border-radius:100px;font-weight:600;white-space:nowrap}
.pill.a{background:var(--ac-l);color:var(--ac-d)}
.pill.b{background:var(--lt-2);color:var(--dk-3)}

/* ── light stat rail (on white) ─────────────────────────────── */
.stat4{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat4 div{padding:26px 24px 30px 0;border-right:1px solid var(--line)}
.stat4 div:not(:first-child){padding-left:24px}
.stat4 div:last-child{border-right:0}
.stat4 b{display:block;font-size:34px;font-weight:900;letter-spacing:-.05em;line-height:.98;color:var(--dk)}
.stat4 b i{font-style:normal;color:var(--ac-d)}
.stat4 span{display:block;font-family:var(--m);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-top:10px;line-height:1.6}

/* ── county blocks / city grid ──────────────────────────────── */
.cities{display:grid;grid-template-columns:repeat(5,1fr);gap:26px}
.counties{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.county{background:#fff;border:1px solid var(--line);border-radius:6px;padding:30px 28px;border-top:4px solid var(--ac)}
.county h3{color:var(--dk);margin-bottom:6px;font-size:23px}
.county .cmeta{font-family:var(--m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}
.county p{font-size:15.5px;color:var(--ink-2);line-height:1.6;margin-bottom:18px}
.county ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.county li a{display:block;padding:7px 0;font-size:15px;color:var(--ink-2);border-bottom:1px solid var(--line);transition:.15s}
.county li a:hover{color:var(--ac-d);padding-left:6px}

/* ── FAQ groups ─────────────────────────────────────────────── */
.fgrp{margin-bottom:44px}
.fgrp:last-child{margin-bottom:0}
.fgrp>h3{color:var(--dk);padding-bottom:12px;border-bottom:2px solid var(--ac);margin-bottom:6px;font-size:22px}

/* ── responsive ─────────────────────────────────────────────── */
@media(max-width:1080px){
  .rel,.shots{grid-template-columns:1fr 1fr}
  .fit,.two,.two-e,.counties{grid-template-columns:1fr;gap:34px}
  .cities{grid-template-columns:repeat(3,1fr)}
  .stat4{grid-template-columns:1fr 1fr}
  .stat4 div:nth-child(2n){border-right:0}
  .stat4 div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .aside-card{position:static}
  .phero{padding:130px 0 54px}
}
@media(max-width:680px){
  .rel,.shots,.cities,.stat4{grid-template-columns:1fr}
  .stat4 div{border-right:0;padding-left:0!important;border-bottom:1px solid var(--line)}
  .stat4 div:last-child{border-bottom:0}
  .county ul{grid-template-columns:1fr}
  .shot img{height:200px}
  .phero{padding:112px 0 46px}
  .phero .lede{font-size:17.5px}
  .sew table.cap,.sew table.cap tbody,.sew table.cap tr,.sew table.cap td{display:block;width:100%}
  .sew table.cap thead{display:none}
  .sew table.cap td:first-child{width:auto}
  .sew table.cap td::before{content:none}
}

/* ═══════════════════════════════════════════════════════════════
   MERIDIAN — forms
   Styles the Elementor Pro form widget to match the design system.
   The widget carries class "frm"; everything else is Elementor's
   own markup, targeted by its stable class names.
   ═══════════════════════════════════════════════════════════════ */

#sew-quote-form,.frm{background:#fff;border:1px solid var(--line);border-radius:6px;padding:34px 32px 30px}
#sew-quote-form .frm{background:none;border:0;border-radius:0;padding:0}
.frm .frm-head{margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.frm .frm-head h2{font-size:clamp(24px,2.4vw,31px);color:var(--dk);margin-bottom:9px}
.frm .frm-head p{font-size:16px;color:var(--ink-2);line-height:1.6}

.sew .elementor-form-fields-wrapper{margin:0 -9px}
.sew .elementor-field-group{padding:0 9px 18px;margin:0}
.sew .elementor-field-group > label,
.sew .elementor-field-label{display:block;font-family:var(--f);font-size:13.5px;font-weight:700;
  color:var(--dk);margin-bottom:7px;letter-spacing:-.01em;line-height:1.35;padding:0}
.sew .elementor-mark-required,
.sew .elementor-field-required > label:after{color:var(--ac-d)}

.sew .elementor-field-textual{width:100%;font-family:var(--f);font-size:16px;padding:13px 14px;
  border:1.5px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);
  line-height:1.4;box-shadow:none;height:auto;-webkit-appearance:none;appearance:none}
/* Elementor renders its own caret SVG in .select-caret-down-wrapper.
   Left unstyled it inherits no size and balloons to fill the field. */
.sew .elementor-select-wrapper{position:relative;display:block}
.sew select.elementor-field-textual{padding-right:38px}
.sew .select-caret-down-wrapper{position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:11px;height:11px;pointer-events:none;display:flex;align-items:center;justify-content:center;margin:0}
.sew .select-caret-down-wrapper svg{width:11px;height:11px;display:block;fill:var(--ink-2)}
.sew .elementor-field-textual::placeholder{color:var(--ink-3);opacity:1}
.sew .elementor-field-textual:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-l)}
.sew textarea.elementor-field-textual{min-height:132px;resize:vertical}

.sew .elementor-field-type-upload input[type="file"]{width:100%;font-family:var(--f);font-size:15px;
  color:var(--ink-2);padding:20px 18px;border:1.5px dashed var(--line-2);border-radius:4px;
  background:var(--lt);cursor:pointer;transition:.15s}
.sew .elementor-field-type-upload input[type="file"]:hover{border-color:var(--ac);background:var(--ac-l)}
.sew .elementor-field-type-upload input[type="file"]::file-selector-button{
  font-family:var(--f);font-size:14px;font-weight:700;color:#fff;background:var(--dk);
  border:0;border-radius:4px;padding:9px 14px;margin-right:14px;cursor:pointer}

.sew .elementor-field-type-html{font-size:14.5px;color:var(--ink-3);line-height:1.6}
.sew .elementor-field-type-html b{color:var(--dk)}

.sew .elementor-field-type-submit{padding-top:6px}
.sew .elementor-form .elementor-button,
.sew .elementor-form button[type="submit"]{font-family:var(--f);font-size:16.5px;font-weight:700;
  background:var(--ac);color:#fff;border:1.5px solid var(--ac);border-radius:4px;padding:16px 28px;
  transition:.15s;letter-spacing:-.015em;cursor:pointer;min-height:0}
.sew .elementor-form .elementor-button:hover,
.sew .elementor-form button[type="submit"]:hover{background:var(--ac-d);border-color:var(--ac-d);color:#fff}
.sew .elementor-form .elementor-button .elementor-button-content-wrapper{gap:8px}

.sew .elementor-message{font-family:var(--f);font-size:15.5px;line-height:1.6;margin-top:16px}
.sew .elementor-message.elementor-message-success{color:var(--ac-d);font-weight:700}
.sew .elementor-message.elementor-message-danger{color:var(--ac-d)}
.sew .elementor-field-group.elementor-error .elementor-field-textual{border-color:var(--ac)}

/* ── /estimate/ two-column shell (containers can't take CSS classes
      in this Elementor build, so the layout hangs off IDs) ─────── */
#sew-quote{padding:92px 0;width:100%;background:var(--lt)}
#sew-quote-grid{max-width:var(--wrap);margin:0 auto;padding:0 36px;width:100%;
  display:grid;grid-template-columns:1.45fr 1fr;gap:48px;align-items:start}
@media(max-width:1080px){
  #sew-quote-grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:680px){
  #sew-quote{padding:60px 0}
  #sew-quote-grid{padding:0 20px}
  #sew-quote-form,.frm{padding:26px 20px 22px}
  #sew-quote-form .frm{padding:0}
  .sew .elementor-field-group{padding-bottom:16px}
}
