/* Self-hosted webfonts — Fraunces (display) + Inter (UI), latin subsets only.
   Generated from the Google Fonts API, served from our own origin so the page
   does not block on a third-party connection. Variable fonts: one file covers
   the whole weight range. */
@font-face{
  font-family:'Fraunces';
  font-style:italic;
  font-weight:400 700;
  font-display:swap;
  src:url('/assets/fonts/fraunces-italic-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Fraunces';
  font-style:italic;
  font-weight:400 700;
  font-display:swap;
  src:url('/assets/fonts/fraunces-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('/assets/fonts/fraunces-normal-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('/assets/fonts/fraunces-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 750;
  font-display:swap;
  src:url('/assets/fonts/inter-normal-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 750;
  font-display:swap;
  src:url('/assets/fonts/inter-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===========================================================================
   Extra Mile Lawn Care — Design System
   Navy + Extra Mile yellow + turf green.
   Palette pulled from the real trucks and crew uniforms.
   =========================================================================== */

/* --- TOKENS ------------------------------------------------------------- */
:root{
  /* Brand */
  --navy-900:#07121F;
  --navy-800:#0B1B2D;
  --navy-700:#102539;
  --navy-600:#16334C;
  --navy-500:#1E4368;
  --navy-line:rgba(255,255,255,.09);

  --yellow:#FFC81E;
  --yellow-lt:#FFD955;
  --yellow-dk:#E0A800;

  --turf:#5BB13A;
  /* --turf-dk is the green used for TEXT on light backgrounds (eyebrows, inline
     links, pills). Dark enough to clear WCAG AA 4.5:1 on --bone, the darkest
     light surface we use. */
  --turf-dk:#2F6B1D;
  --turf-lt:#8FD46B;

  /* Neutrals */
  --ivory:#FAF8F3;
  --bone:#F1EDE3;
  --sand:#E3DCCC;
  --ink:#111C27;
  --body:#48555F;
  --muted:#5F6B76;

  /* System */
  --radius:14px;
  --radius-lg:22px;
  --radius-sm:8px;
  --shadow-sm:0 2px 8px rgba(11,27,45,.06);
  --shadow:0 14px 40px -12px rgba(11,27,45,.20);
  --shadow-lg:0 34px 80px -24px rgba(11,27,45,.34);
  --gut:clamp(20px,5vw,64px);
  --maxw:1240px;
  --ease:cubic-bezier(.22,1,.36,1);

  --ff-display:"Fraunces","Georgia",serif;
  --ff-ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/* --- RESET -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{
  font-family:var(--ff-ui);
  font-size:17px;line-height:1.65;
  color:var(--body);background:var(--ivory);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul,ol{list-style:none}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:4px}
::selection{background:var(--yellow);color:var(--navy-900)}

/* --- TYPE --------------------------------------------------------------- */
h1,h2,h3,h4{
  font-family:var(--ff-display);
  color:var(--ink);font-weight:600;line-height:1.06;letter-spacing:-.022em;
}
h1{font-size:clamp(38px,6.2vw,74px)}
h2{font-size:clamp(30px,4.4vw,52px)}
h3{font-size:clamp(21px,2.3vw,29px);line-height:1.18;letter-spacing:-.015em}
h4{font-size:19px;line-height:1.3;letter-spacing:-.01em}
p{text-wrap:pretty}
.lead{font-size:clamp(18px,1.75vw,21px);line-height:1.62;color:var(--body)}

.eyebrow{
  font-family:var(--ff-ui);font-size:11.5px;font-weight:650;
  letter-spacing:.16em;text-transform:uppercase;color:var(--turf-dk);
  display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--yellow);border-radius:2px;flex:none}
.on-dark .eyebrow,.dark .eyebrow,.hero .eyebrow,.cta .eyebrow,.phead .eyebrow{color:var(--yellow)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
.on-dark p,.dark p{color:rgba(255,255,255,.74)}

.hl{color:var(--turf-dk)}
.on-dark .hl,.dark .hl{color:var(--yellow)}

/* --- LAYOUT ------------------------------------------------------------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.wrap-nar{max-width:860px}
section{position:relative}
.sec{padding-block:clamp(64px,8.5vw,124px)}
.sec-sm{padding-block:clamp(48px,6vw,84px)}
/* NOTE: deliberately no `content-visibility:auto` here. It buys very little on a
   page this light, and it interferes with in-page anchor jumps and adds
   avoidable risk on a site whose whole purpose is being indexed cleanly. */
.dark{background:var(--navy-900);color:rgba(255,255,255,.74)}
.bone{background:var(--bone)}
.grid{display:grid;gap:clamp(20px,2.6vw,34px)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
/* Article + sticky sidebar (guides) and form + contact rail. Declared as
   classes rather than inline styles so the media queries below can collapse
   them — an inline grid-template-columns cannot be overridden. */
.g-side{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(30px,4vw,56px);align-items:start}
.g-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,4.5vw,60px);align-items:start}
.g-side > *,.g-form > *{min-width:0}
.sec-head{max-width:720px;margin-bottom:clamp(34px,4.5vw,60px)}
.sec-head .eyebrow{margin-bottom:18px}
.sec-head h2{margin-bottom:18px}
.center{text-align:center}
.center .sec-head{margin-inline:auto}
.center .eyebrow::before{display:none}

/* --- BUTTONS ------------------------------------------------------------ */
.btn{
  --bg:var(--yellow);--fg:var(--navy-900);
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--ff-ui);font-size:14.5px;font-weight:650;letter-spacing:.005em;
  padding:15px 28px;border-radius:100px;border:2px solid transparent;
  background:var(--bg);color:var(--fg);cursor:pointer;white-space:nowrap;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .25s,color .25s,border-color .25s;
  box-shadow:0 6px 18px -6px rgba(224,168,0,.55);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(224,168,0,.6)}
.btn:active{transform:translateY(0)}
.btn svg{width:17px;height:17px;flex:none}
.btn-lg{padding:18px 34px;font-size:15.5px}
.btn-ghost{--bg:transparent;--fg:var(--ink);border-color:rgba(17,28,39,.18);box-shadow:none}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:none}
.on-dark .btn-ghost,.dark .btn-ghost,.hero .btn-ghost,.cta .btn-ghost,.phead .btn-ghost,.mob .btn-ghost{--fg:#fff;border-color:rgba(255,255,255,.26)}
.on-dark .btn-ghost:hover,.dark .btn-ghost:hover,.hero .btn-ghost:hover,.cta .btn-ghost:hover,.phead .btn-ghost:hover,.mob .btn-ghost:hover{background:#fff;color:var(--navy-900);border-color:#fff}
.btn-navy{--bg:var(--navy-800);--fg:#fff;box-shadow:0 8px 22px -10px rgba(7,18,31,.6)}
.btn-navy:hover{--bg:var(--navy-600);box-shadow:0 16px 34px -12px rgba(7,18,31,.55)}
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;
  color:var(--turf-dk);transition:gap .25s var(--ease),color .25s;
}
.link-arrow svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.link-arrow:hover{gap:12px}
.link-arrow:hover svg{transform:translateX(2px)}
.on-dark .link-arrow,.dark .link-arrow{color:var(--yellow)}

/* --- STRIPE MOTIF (the signature: mower stripes) ------------------------ */
.stripes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.stripes::before{
  content:"";position:absolute;inset:-30% -10%;
  background:repeating-linear-gradient(
    100deg,
    rgba(91,177,58,.055) 0px, rgba(91,177,58,.055) 52px,
    transparent 52px, transparent 116px
  );
  transform:skewY(-4deg);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 30%,#000 20%,transparent 78%);
  mask-image:radial-gradient(ellipse 90% 70% at 50% 30%,#000 20%,transparent 78%);
}
.stripes-y::before{
  background:repeating-linear-gradient(
    100deg,
    rgba(255,200,30,.04) 0px, rgba(255,200,30,.04) 46px,
    transparent 46px, transparent 106px
  );
}
.stripe-rule{height:5px;border-radius:5px;background:repeating-linear-gradient(90deg,var(--turf) 0 14px,var(--yellow) 14px 28px);opacity:.9}

/* --- NAV ---------------------------------------------------------------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  transition:background .4s var(--ease),box-shadow .4s,padding .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:16px}
.nav.scrolled{background:rgba(250,248,243,.93);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-color:rgba(17,28,39,.08);box-shadow:0 2px 20px -8px rgba(11,27,45,.18)}
.nav.scrolled .nav-in{padding-block:10px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{height:52px;width:auto;transition:height .4s var(--ease)}
.nav.scrolled .brand img{height:42px}
.brand-txt{display:flex;flex-direction:column;line-height:1.05}
.brand-txt b{font-family:var(--ff-display);font-size:18px;font-weight:600;color:#fff;letter-spacing:-.02em;transition:color .4s}
.brand-txt span{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--yellow);transition:color .4s}
.nav.scrolled .brand-txt b{color:var(--ink)}
.nav.scrolled .brand-txt span{color:var(--turf-dk)}

.nav-links{display:flex;align-items:center;gap:4px}
.nav-links > li > a,.nav-links > li > button{
  display:flex;align-items:center;gap:5px;background:none;border:0;cursor:pointer;
  font-size:14.5px;font-weight:550;color:rgba(255,255,255,.86);white-space:nowrap;
  padding:9px 13px;border-radius:9px;transition:color .25s,background .25s;
}
.nav.scrolled .nav-links > li > a,.nav.scrolled .nav-links > li > button{color:var(--ink)}
.nav-links > li > a:hover,.nav-links > li > button:hover{background:rgba(255,255,255,.12)}
.nav.scrolled .nav-links > li > a:hover,.nav.scrolled .nav-links > li > button:hover{background:rgba(17,28,39,.06);color:var(--turf-dk)}
.nav-links a[aria-current="page"]{color:var(--yellow)}
.nav.scrolled .nav-links a[aria-current="page"]{color:var(--turf-dk)}
.chev{width:11px;height:11px;transition:transform .25s var(--ease);opacity:.6}
.has-menu[aria-expanded="true"] .chev{transform:rotate(180deg)}

.drop{
  position:absolute;top:calc(100% - 4px);left:0;min-width:288px;
  background:#fff;border:1px solid rgba(17,28,39,.09);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:9px;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
}
.nav-item{position:relative}
.nav-item.open .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:block;padding:11px 14px;border-radius:9px;transition:background .2s}
.drop a:hover{background:var(--bone)}
.drop b{display:block;font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:2px}
.drop small{display:block;font-size:12.5px;color:var(--muted);line-height:1.45}

.nav-cta{display:flex;align-items:center;gap:14px;flex:none}
.nav-tel{display:flex;flex-direction:column;line-height:1.1;text-align:right}
.nav-tel small{font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--yellow);transition:color .4s}
.nav-tel b{font-size:16.5px;font-weight:700;color:#fff;transition:color .4s;letter-spacing:-.01em}
.nav.scrolled .nav-tel small{color:var(--turf-dk)}
.nav.scrolled .nav-tel b{color:var(--ink)}

.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;border-radius:9px}
.burger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .25s,background .4s}
.burger span + span{margin-top:6px}
.nav.scrolled .burger span{background:var(--ink)}
body.mob-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.mob-open .burger span:nth-child(2){opacity:0}
body.mob-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Mobile sheet */
.mob{
  position:fixed;inset:0;z-index:880;background:var(--navy-900);
  padding:100px var(--gut) 40px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
}
body.mob-open .mob{opacity:1;visibility:visible;transform:translateY(0)}
body.mob-open{overflow:hidden}
.mob a{display:block;color:#fff;font-family:var(--ff-display);font-size:26px;font-weight:600;padding:13px 0;border-bottom:1px solid var(--navy-line)}
.mob .sub a{font-family:var(--ff-ui);font-size:15px;font-weight:500;color:rgba(255,255,255,.6);padding:9px 0 9px 18px;border:0}
.mob-foot{margin-top:32px;display:flex;flex-direction:column;gap:12px}

/* --- HERO --------------------------------------------------------------- */
.hero{
  position:relative;background:var(--navy-900);color:#fff;overflow:hidden;
  padding-top:clamp(120px,15vw,168px);padding-bottom:clamp(64px,8vw,104px);
}
.hero::after{
  content:"";position:absolute;left:50%;top:-10%;width:120%;height:70%;transform:translateX(-50%);
  background:radial-gradient(ellipse at 50% 0%,rgba(91,177,58,.20),transparent 62%);pointer-events:none;
}
.hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);
  border:1px solid var(--navy-line);border-radius:100px;padding:7px 16px 7px 8px;margin-bottom:26px;
  font-size:13px;font-weight:550;color:rgba(255,255,255,.8);
}
.hero-badge .stars{display:flex;gap:1.5px}
.hero-badge .stars svg{width:14px;height:14px;fill:var(--yellow)}
.hero-badge b{color:#fff;font-weight:700}
.hero h1{color:#fff;margin-bottom:22px}
.hero h1 em{font-style:italic;color:var(--yellow)}
.hero-sub{font-size:clamp(17px,1.75vw,20px);line-height:1.62;color:rgba(255,255,255,.72);max-width:540px;margin-bottom:32px}
.hero-acts{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:36px}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 26px;padding-top:26px;border-top:1px solid var(--navy-line)}
.hero-trust li{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.66)}
.hero-trust svg{width:16px;height:16px;stroke:var(--turf-lt);fill:none;stroke-width:2.2;flex:none}

/* Hero visual — animated mow-stripe panel */
.hero-vis{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3.35;background:var(--navy-700)}
.hero-vis img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero-vis::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(7,18,31,.82) 0%,rgba(7,18,31,.12) 46%,transparent 70%)}
.hero-cap{position:absolute;left:20px;right:20px;bottom:20px;z-index:2}
.hero-cap b{display:block;font-family:var(--ff-display);font-size:19px;font-weight:600;color:#fff;margin-bottom:3px}
.hero-cap span{font-size:13px;color:rgba(255,255,255,.66)}
.hero-chip{
  position:absolute;z-index:3;background:rgba(250,248,243,.96);backdrop-filter:blur(8px);
  border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:13px;
}
.hero-chip--tr{top:18px;right:18px}
.hero-chip .num{font-family:var(--ff-display);font-size:30px;font-weight:600;color:var(--navy-900);line-height:1;letter-spacing:-.03em}
.hero-chip .lbl{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);line-height:1.35;border-left:1px solid rgba(17,28,39,.14);padding-left:13px}

/* --- TRUST BAR ---------------------------------------------------------- */
.tbar{background:var(--navy-800);border-top:1px solid var(--navy-line);padding-block:22px}
.tbar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 34px}
.tbar-item{display:flex;align-items:center;gap:11px;font-size:13.5px;font-weight:550;color:rgba(255,255,255,.62)}
.tbar-item b{color:#fff;font-weight:650}
.tbar-item svg{width:19px;height:19px;stroke:var(--yellow);fill:none;stroke-width:2;flex:none}

/* --- CARDS -------------------------------------------------------------- */
.card{
  background:#fff;border:1px solid rgba(17,28,39,.08);border-radius:var(--radius-lg);
  padding:clamp(24px,2.6vw,32px);position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(91,177,58,.3)}
.card > *{position:relative;z-index:1}
.card-ico{
  width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:20px;
  background:linear-gradient(145deg,var(--navy-700),var(--navy-900));
}
.card-ico svg{width:26px;height:26px;stroke:var(--yellow);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card h3{margin-bottom:10px}
.card p{font-size:15.5px;line-height:1.62;margin-bottom:18px}
.card ul{margin-bottom:20px}
.card ul li{position:relative;padding-left:24px;font-size:14.5px;line-height:1.55;margin-bottom:9px;color:var(--body)}
.card ul li::before{
  content:"";position:absolute;left:0;top:8px;width:13px;height:8px;
  border-left:2.2px solid var(--turf);border-bottom:2.2px solid var(--turf);
  transform:rotate(-45deg);border-radius:1px;
}
/* A light .card sitting inside a dark section must not inherit the section's
   white type colours — otherwise it renders white-on-white. */
.dark .card:not(.card-dark):not(.card-feat) h2,
.dark .card:not(.card-dark):not(.card-feat) h3,
.dark .card:not(.card-dark):not(.card-feat) h4,
.cta .card:not(.card-dark):not(.card-feat) h3,
.hero .card:not(.card-dark):not(.card-feat) h3{color:var(--ink)}
.dark .card:not(.card-dark):not(.card-feat) p,
.dark .card:not(.card-dark):not(.card-feat) li,
.cta .card:not(.card-dark):not(.card-feat) p,
.hero .card:not(.card-dark):not(.card-feat) p{color:var(--body)}
.dark .card:not(.card-dark):not(.card-feat) .link-arrow{color:var(--turf-dk)}

.card-dark{background:var(--navy-800);border-color:var(--navy-line)}
.card-dark h3{color:#fff}
.card-dark p{color:rgba(255,255,255,.7)}
.card-dark ul li{color:rgba(255,255,255,.72)}
/* A dark card can sit inside a light section, so it needs its own link colour —
   the default --turf-dk is a dark green and fails contrast on navy. */
.card-dark .link-arrow,.card-feat .link-arrow{color:var(--yellow)}
.card-dark:hover{border-color:rgba(255,200,30,.35)}
.card-feat{background:linear-gradient(160deg,var(--navy-800),var(--navy-900));border-color:rgba(255,200,30,.28)}
.card-feat h3{color:#fff}
.card-feat > p,.card-feat p{color:rgba(255,255,255,.72)}
.card-feat ul li{color:rgba(255,255,255,.78)}

/* Featured service card — two-up */
.feat{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(26px,3.6vw,54px);align-items:center;padding:clamp(28px,3.4vw,46px)}
.feat h3{font-size:clamp(24px,2.8vw,34px);margin-bottom:14px}
.feat-l p{font-size:16.5px;margin-bottom:26px;max-width:44ch}
.feat-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px;margin:0!important}
.feat-list li{font-size:14.5px!important;line-height:1.55;padding:11px 0 11px 26px!important;border-top:1px solid var(--navy-line)}
.feat-list li::before{top:19px!important}
@media (max-width:900px){
  .feat{grid-template-columns:1fr;gap:26px}
  .feat-list{grid-template-columns:1fr;gap:0}
}
.card-tag{
  position:absolute;top:18px;right:18px;z-index:2;font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--navy-900);background:var(--yellow);
  padding:5px 11px;border-radius:100px;
}

/* --- SEASONAL SYSTEM (bespoke) ------------------------------------------ */
.season{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,4.5vw,64px);align-items:start}
.season-dial{position:sticky;top:112px}
.dial-wrap{position:relative;aspect-ratio:1;max-width:400px;margin-inline:auto}
.dial-wrap svg{width:100%;height:100%;overflow:visible}
.dial-seg{cursor:pointer}
.dial-seg .arc{fill:none;stroke-width:24;transition:stroke-width .35s var(--ease),opacity .35s}
.dial-seg:hover .arc{stroke-width:30}
.dial-seg.on .arc{stroke-width:34}
.dial-seg:not(.on) .arc{opacity:.34}
.dial-lbl{
  font-family:var(--ff-ui);font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;fill:rgba(255,255,255,.45);pointer-events:none;
  transition:fill .3s;
}
.dial-seg.on .dial-lbl{fill:#fff}
.dial-mid{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;padding:22%}
.dial-mid .sn{font-family:var(--ff-display);font-size:clamp(26px,3.4vw,38px);font-weight:600;color:#fff;line-height:1;margin-bottom:6px}
.dial-mid .mo{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow)}
.season-panels{position:relative}
.spanel{display:none;animation:fadeUp .5s var(--ease) both}
.spanel.on{display:block}
.spanel h3{color:#fff;margin-bottom:12px}
.spanel > p{color:rgba(255,255,255,.72);font-size:16.5px;margin-bottom:26px}
.stask{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--navy-line)}
.stask-n{
  font-family:var(--ff-display);font-size:14px;font-weight:600;color:var(--yellow);
  width:30px;flex:none;padding-top:2px;
}
.stask b{display:block;color:#fff;font-size:15.5px;font-weight:600;margin-bottom:4px}
.stask span{display:block;color:rgba(255,255,255,.62);font-size:14.5px;line-height:1.6}
.season-tabs{display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}
.season-tabs button{
  background:rgba(255,255,255,.06);border:1px solid var(--navy-line);color:rgba(255,255,255,.7);
  padding:9px 18px;border-radius:100px;font-size:13.5px;font-weight:600;cursor:pointer;
  transition:background .25s,color .25s,border-color .25s;
}
.season-tabs button.on{background:var(--yellow);color:var(--navy-900);border-color:var(--yellow)}

/* --- SATURDAY MATH ------------------------------------------------------ */
.math{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(17,28,39,.1);border-radius:var(--radius-lg);overflow:hidden}
.math-cell{background:var(--ivory);padding:clamp(26px,3.4vw,40px) clamp(20px,2.6vw,32px);text-align:center}
.math-cell .n{font-family:var(--ff-display);font-size:clamp(42px,6vw,68px);font-weight:600;color:var(--navy-900);line-height:1;letter-spacing:-.03em;display:block;margin-bottom:10px}
.math-cell .n sup{font-size:.42em;vertical-align:super;color:var(--turf-dk);margin-left:2px}
.math-cell .k{display:block;font-size:15px;font-weight:650;color:var(--ink);margin-bottom:7px;letter-spacing:-.005em}
.math-cell .d{display:block;font-size:13.5px;color:var(--muted);line-height:1.6;max-width:34ch;margin-inline:auto}

/* --- REVIEWS ------------------------------------------------------------ */
.rev-head{display:flex;flex-wrap:wrap;align-items:center;gap:20px 34px;margin-bottom:36px}
.rev-score{display:flex;align-items:center;gap:16px}
.rev-score .big{font-family:var(--ff-display);font-size:56px;font-weight:600;color:var(--ink);line-height:1}
.rev-score .stars{display:flex;gap:2px;margin-bottom:5px}
.rev-score .stars svg{width:19px;height:19px;fill:var(--yellow)}
.rev-score small{font-size:13.5px;color:var(--muted);display:block}
.rev{background:#fff;border:1px solid rgba(17,28,39,.08);border-radius:var(--radius-lg);padding:26px;display:flex;flex-direction:column;height:100%}
.rev .stars{display:flex;gap:2px;margin-bottom:14px}
.rev .stars svg{width:15px;height:15px;fill:var(--yellow)}
.rev blockquote{font-size:15.5px;line-height:1.68;color:var(--ink);margin-bottom:18px;flex:1}
.rev cite{display:flex;align-items:center;gap:11px;font-style:normal;padding-top:16px;border-top:1px solid rgba(17,28,39,.07)}
.rev cite .rev-av{
  width:38px;height:38px;border-radius:50%;flex:none;
  background:linear-gradient(145deg,var(--turf),var(--turf-dk));
  display:grid;place-items:center;color:#fff;font-weight:750;font-size:15px;line-height:1;
}
.rev cite b{display:block;font-size:14px;font-weight:650;color:var(--ink)}
.rev cite .rev-meta{display:block;font-size:12px;color:var(--muted)}

/* --- SERVICE AREA CARDS ------------------------------------------------- */
.area-card{display:flex;flex-direction:column}
.area-card h3{margin-bottom:12px;font-size:clamp(22px,2.2vw,27px)}
.area-card > p{font-size:15px;line-height:1.62;margin-bottom:18px}
.area-tag{
  display:inline-block;align-self:flex-start;margin-bottom:16px;
  font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--turf-dk);background:rgba(91,177,58,.13);padding:6px 12px;border-radius:100px;
}
.area-hoods{
  font-size:13px!important;line-height:1.65;color:var(--muted);
  padding-top:14px;border-top:1px solid rgba(17,28,39,.09);margin-top:auto;margin-bottom:18px!important;
}
.area-hoods span{
  display:block;font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink);margin-bottom:6px;
}
.area-card--ask .area-tag{color:var(--yellow);background:rgba(255,200,30,.14)}
.area-card--ask .btn{align-self:flex-start;margin-top:auto}

/* --- MAP / COVERAGE ----------------------------------------------------- */
.cover{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,4.5vw,64px);align-items:center}
.cover-map{position:relative;background:var(--navy-800);border:1px solid var(--navy-line);border-radius:var(--radius-lg);padding:clamp(20px,3vw,34px);overflow:hidden}
.cover-map svg{width:100%;height:auto;position:relative;z-index:1}
.city-dot{cursor:pointer}
.city-dot circle.pulse{fill:rgba(255,200,30,.22);transform-origin:center;animation:pulse 3s ease-out infinite}
.city-dot:hover circle.core{r:8}
.city-dot text{font-family:var(--ff-ui);font-size:12px;font-weight:600;fill:#fff}
.city-list{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
.city-list a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:15px 4px;border-bottom:1px solid rgba(17,28,39,.08);
  font-size:15.5px;font-weight:600;color:var(--ink);transition:color .25s,padding-left .25s var(--ease);
}
.city-list a:hover{color:var(--turf-dk);padding-left:9px}
.city-list a svg{width:15px;height:15px;opacity:.35;transition:opacity .25s,transform .25s var(--ease)}
.city-list a:hover svg{opacity:1;transform:translateX(2px)}

/* --- FAQ ---------------------------------------------------------------- */
.faq{border-top:1px solid rgba(17,28,39,.1)}
.faq-i{border-bottom:1px solid rgba(17,28,39,.1)}
.faq-q{
  width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  background:none;border:0;cursor:pointer;text-align:left;padding:24px 0;
  font-family:var(--ff-display);font-size:clamp(18px,1.9vw,22px);font-weight:600;color:var(--ink);
  line-height:1.32;letter-spacing:-.012em;transition:color .25s;
}
.faq-q:hover{color:var(--turf-dk)}
.faq-ic{width:26px;height:26px;flex:none;border-radius:50%;border:2px solid rgba(17,28,39,.16);position:relative;margin-top:2px;transition:background .3s,border-color .3s,transform .35s var(--ease)}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;inset:50% 6px auto;height:2px;background:var(--ink);border-radius:2px;transform:translateY(-50%);transition:opacity .3s,background .3s}
.faq-ic::after{transform:translateY(-50%) rotate(90deg)}
.faq-i.on .faq-ic{background:var(--turf);border-color:var(--turf);transform:rotate(180deg)}
.faq-i.on .faq-ic::before,.faq-i.on .faq-ic::after{background:#fff}
.faq-i.on .faq-ic::after{opacity:0}
.faq-a{overflow:hidden;height:0;transition:height .4s var(--ease)}
.faq-a-in{padding:0 60px 26px 0;font-size:16px;line-height:1.7;color:var(--body)}
.faq-a-in p + p{margin-top:14px}
.dark .faq,.dark .faq-i{border-color:var(--navy-line)}
.dark .faq-q{color:#fff}
.dark .faq-q:hover{color:var(--yellow)}
.dark .faq-ic{border-color:rgba(255,255,255,.22)}
.dark .faq-ic::before,.dark .faq-ic::after{background:#fff}
.dark .faq-a-in{color:rgba(255,255,255,.7)}

/* --- STEPS -------------------------------------------------------------- */
.steps{counter-reset:s;display:grid;gap:0}
.step{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:clamp(24px,3vw,34px) 0;border-top:1px solid rgba(17,28,39,.1)}
.step:last-child{border-bottom:1px solid rgba(17,28,39,.1)}
.step-n{
  counter-increment:s;font-family:var(--ff-display);font-size:clamp(30px,3.6vw,44px);
  font-weight:600;color:#A2957A;line-height:.9;letter-spacing:-.03em;
}
.step-n::before{content:"0" counter(s)}
.step h3{margin-bottom:9px}
.step p{font-size:15.5px;line-height:1.65;max-width:640px}
.dark .step,.dark .step:last-child{border-color:var(--navy-line)}
.dark .step-n{color:rgba(255,255,255,.34)}

/* --- FORM --------------------------------------------------------------- */
.form-shell{background:#fff;border:1px solid rgba(17,28,39,.09);border-radius:var(--radius-lg);padding:clamp(26px,3.4vw,42px);box-shadow:var(--shadow)}
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:650;letter-spacing:.03em;color:var(--ink);margin-bottom:7px}
.field label .req{color:var(--turf-dk)}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border:1.5px solid rgba(17,28,39,.14);border-radius:11px;
  background:var(--ivory);font-size:15.5px;color:var(--ink);
  transition:border-color .25s,background .25s,box-shadow .25s;
}
.field textarea{min-height:118px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--turf);background:#fff;box-shadow:0 0 0 4px rgba(91,177,58,.13);
}
.field input::placeholder,.field textarea::placeholder{color:#A9B3BD}
.field.err input,.field.err select,.field.err textarea{border-color:#D64545;box-shadow:0 0 0 4px rgba(214,69,69,.1)}
.field .msg{display:none;font-size:12.5px;color:#D64545;margin-top:6px;font-weight:550}
.field.err .msg{display:block}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.chipset{display:flex;flex-wrap:wrap;gap:9px}
.chipset input{position:absolute;opacity:0;width:0;height:0}
.chipset label{
  display:inline-flex;align-items:center;gap:8px;padding:10px 17px;border-radius:100px;margin:0;
  border:1.5px solid rgba(17,28,39,.14);background:var(--ivory);cursor:pointer;
  font-size:14px;font-weight:600;color:var(--body);transition:all .22s;
}
.chipset input:checked + label{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.chipset input:focus-visible + label{outline:3px solid var(--yellow);outline-offset:2px}
.form-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:16px}
/* Honeypot: off-screen rather than display:none, because some bots skip
   display:none fields. Hidden from assistive tech and the tab order. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-ok{display:none;text-align:center;padding:32px 8px}
.form-ok svg{width:56px;height:56px;margin:0 auto 20px;stroke:var(--turf);fill:none;stroke-width:2}
.form-ok h3{margin-bottom:10px}
.form-shell.done .form-body{display:none}
.form-shell.done .form-ok{display:block}

/* --- CTA BAND ----------------------------------------------------------- */
.cta{position:relative;background:var(--navy-900);overflow:hidden;padding-block:clamp(56px,7vw,96px)}
.cta-in{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,4vw,56px);align-items:center}
.cta h2{color:#fff;margin-bottom:14px}
.cta p{color:rgba(255,255,255,.72);font-size:17.5px;max-width:560px}
.cta-acts{display:flex;flex-direction:column;gap:12px}

/* --- FOOTER ------------------------------------------------------------- */
.foot{background:var(--navy-900);color:rgba(255,255,255,.6);padding-top:clamp(52px,6.5vw,80px);border-top:1px solid var(--navy-line)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(28px,3.5vw,48px);padding-bottom:44px}
.foot-brand img{height:66px;width:auto;margin-bottom:20px}
.foot-brand p{font-size:14.5px;line-height:1.68;color:rgba(255,255,255,.6);margin-bottom:20px;max-width:330px}
.foot h4{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);margin-bottom:18px;font-family:var(--ff-ui)}
.foot ul li{margin-bottom:11px}
.foot ul a{font-size:14.5px;color:rgba(255,255,255,.6);transition:color .22s}
.foot ul a:hover{color:var(--yellow)}
.foot-nap{font-style:normal;font-size:14.5px;line-height:1.75}
.foot-nap a{color:#fff;font-weight:600}
.foot-nap a:hover{color:var(--yellow)}
.foot-nap .lbl{display:block;font-size:11px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);margin:16px 0 3px}
.foot-hrs{font-size:13.5px;line-height:1.85}
.foot-hrs b{color:#fff;font-weight:600}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 28px;padding:22px 0;border-top:1px solid var(--navy-line);font-size:13px}
.foot-bot a:hover{color:var(--yellow)}
.foot-bot ul{display:flex;flex-wrap:wrap;gap:8px 20px}
/* Agency credit. Deliberately quiet — it sits with the copyright line, not as a
   third competing element, and the anchor is the plain brand name. */
.foot-credit{color:rgba(255,255,255,.58);order:3;width:100%;padding-top:14px;border-top:1px solid var(--navy-line)}
.foot-credit a{color:rgba(255,255,255,.62);font-weight:600}
.foot-credit a:hover{color:var(--yellow)}
@media (min-width:721px){.foot-credit{order:0;width:auto;padding-top:0;border-top:0}}
.social{display:flex;gap:10px}
.social a{width:38px;height:38px;border-radius:10px;border:1px solid var(--navy-line);display:grid;place-items:center;transition:background .25s,border-color .25s}
.social a:hover{background:var(--yellow);border-color:var(--yellow)}
.social svg{width:17px;height:17px;fill:rgba(255,255,255,.7);transition:fill .25s}
.social a:hover svg{fill:var(--navy-900)}

/* --- STICKY MOBILE CALL BAR --------------------------------------------- */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:850;display:none;gap:1px;
  background:rgba(17,28,39,.1);box-shadow:0 -6px 24px -8px rgba(11,27,45,.3);
  padding-bottom:env(safe-area-inset-bottom);
}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 8px;font-size:14.5px;font-weight:650}
.callbar a:first-child{background:var(--navy-900);color:#fff}
.callbar a:last-child{background:var(--yellow);color:var(--navy-900)}
.callbar svg{width:17px;height:17px;flex:none}

/* --- PAGE HEADER (interior) --------------------------------------------- */
.phead{position:relative;background:var(--navy-900);color:#fff;overflow:hidden;padding:clamp(120px,14vw,168px) 0 clamp(48px,6vw,76px)}
.phead::after{content:"";position:absolute;left:50%;top:-20%;width:110%;height:80%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 0%,rgba(91,177,58,.16),transparent 62%);pointer-events:none}
.phead-in{position:relative;z-index:2;max-width:860px}
.phead h1{color:#fff;margin-bottom:18px}
.phead p{font-size:clamp(17px,1.8vw,20px);line-height:1.62;color:rgba(255,255,255,.72);max-width:640px}
.crumb{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:12.5px;color:rgba(255,255,255,.48);margin-bottom:20px}
.crumb a:hover{color:var(--yellow)}
.crumb span{opacity:.4}

/* --- PROSE (guides/legal) ----------------------------------------------- */
.prose{font-size:17px;line-height:1.78;color:var(--body);max-width:760px}
.prose > * + *{margin-top:22px}
.prose h2{font-size:clamp(26px,3.2vw,36px);margin-top:52px;margin-bottom:-4px;scroll-margin-top:110px}
.prose h3{font-size:clamp(19px,2.1vw,24px);margin-top:36px;margin-bottom:-6px;scroll-margin-top:110px}
.prose ul,.prose ol{padding-left:0}
.prose li{position:relative;padding-left:26px;margin-bottom:10px}
.prose ul li::before{content:"";position:absolute;left:2px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--turf)}
.prose ol{counter-reset:p}
.prose ol li{counter-increment:p}
.prose ol li::before{content:counter(p) ".";position:absolute;left:0;top:0;font-weight:700;color:var(--turf-dk);font-size:15px}
.prose strong{color:var(--ink);font-weight:650}
.prose a:not(.btn){color:var(--turf-dk);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;font-weight:550}
.prose a:not(.btn):hover{color:var(--navy-800)}
.prose blockquote{border-left:4px solid var(--yellow);padding:6px 0 6px 22px;font-family:var(--ff-display);font-size:20px;line-height:1.5;color:var(--ink);font-weight:500}
.prose table{width:100%;border-collapse:collapse;font-size:15px}
.prose table th,.prose table td{padding:13px 14px;text-align:left;border-bottom:1px solid rgba(17,28,39,.1);vertical-align:top}
.prose table th{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--bone)}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid rgba(17,28,39,.1)}
.tbl-scroll table th:first-child,.tbl-scroll table td:first-child{padding-left:18px}
.callout{background:var(--bone);border-radius:var(--radius);padding:22px 24px;border-left:4px solid var(--turf);font-size:15.5px;line-height:1.68}
.callout b{color:var(--ink)}

/* Table of contents */
.toc{background:var(--bone);border-radius:var(--radius);padding:24px 26px;font-size:15px}
.toc h2{font-family:var(--ff-ui);font-size:12px!important;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--body);margin:0 0 14px!important}
.toc li{padding-left:0;margin-bottom:9px}
.toc li::before{display:none!important}
.toc a{color:var(--ink);font-weight:550;text-decoration:none!important}
.toc a:hover{color:var(--turf-dk)}

/* --- MISC --------------------------------------------------------------- */
.pill{display:inline-flex;align-items:center;gap:8px;background:rgba(91,177,58,.12);color:var(--turf-dk);border-radius:100px;padding:6px 14px;font-size:12.5px;font-weight:650;letter-spacing:.02em}
.dark .pill,.on-dark .pill{background:rgba(255,200,30,.14);color:var(--yellow)}
.skip{position:absolute;left:-9999px;z-index:999;padding:14px 22px;background:var(--yellow);color:var(--navy-900);font-weight:650;border-radius:0 0 10px 0}
.skip:focus{left:0;top:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* --- ANIMATION ---------------------------------------------------------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}.rv-d4{transition-delay:.32s}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}

/* --- RESPONSIVE --------------------------------------------------------- */
@media (max-width:1080px){
  .hero-in{grid-template-columns:1fr;gap:40px}
  .hero-vis{max-width:620px}
  .season{grid-template-columns:1fr}
  .season-dial{position:static}
  .cover{grid-template-columns:1fr}
  .cta-in{grid-template-columns:1fr;gap:28px}
  .cta-acts{flex-direction:row;flex-wrap:wrap}
  .foot-grid{grid-template-columns:1fr 1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:960px){
  .g-side,.g-form{grid-template-columns:1fr}
  .g-side aside{position:static!important;top:auto!important}
}
@media (max-width:900px){
  .nav-links,.nav-tel{display:none}
  .burger{display:block}
  .g3{grid-template-columns:repeat(2,1fr)}
  .nav-cta .btn{display:none}
}
@media (max-width:720px){
  body{font-size:16px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .math{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .city-list{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:34px}
  .step{grid-template-columns:1fr;gap:8px}
  .callbar{display:flex}
  body{padding-bottom:56px}
  .faq-a-in{padding-right:0}
  .rev-head{gap:16px}
  .hero-chip--tr{top:12px;right:12px;padding:10px 13px}
  .hero-chip .num{font-size:21px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
@media print{
  .nav,.callbar,.cta,.mob{display:none!important}
  body{background:#fff;color:#000}
}
/* Guide byline */
.byline{font-family:var(--ff-ui);font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 30px!important;padding-bottom:18px;border-bottom:1px solid rgba(17,28,39,.1)}
.byline a{color:var(--turf-dk);font-weight:650}
.byline span{display:block;margin-top:4px;font-size:13px;opacity:.85}
/* GoHighLevel embedded quote form.
   GHL's own auto-resizer is broken for this embed -- its iframe reports
   [iFrameSizer]...:0:0:init and never sends a height update -- so the height is
   set here instead, measured from the form's real document height at the widths
   the iframe actually gets (1509px at 640 wide, 1737px at 333 wide). Overshoot
   is deliberate: the form's background is white on a white card, so spare space
   is invisible, whereas coming up short puts a scrollbar inside the frame.
   min-height floors it in case anything tries to collapse the frame to zero. */
.ghl-embed{display:block;width:100%;border:0;border-radius:8px;height:1600px;min-height:1600px}
@media (max-width:699px){.ghl-embed{height:1820px;min-height:1820px}}
