/* ==========================================================================
   Alderstone Services - design system
   Display: Archivo (variable)   Text: Libre Franklin (variable)   Both self-hosted.

   Token model: brand primitives are fixed values. Everything the page paints
   with reads a semantic token, so light and dark mode swap one block.

   Radius rule (applied everywhere, no exceptions):
     controls + inputs .. --r1   8px
     chips + icon tiles . --r2  12px
     cards + panels ..... --r2  12px
     media + wide bands . --r3  16px
     city pills ......... --pill
     circular marks ..... 50% (the single success mark only)
   ========================================================================== */

@font-face{font-family:Archivo;src:url(fonts/archivo-latin.woff2) format('woff2');font-weight:400 900;font-style:normal;font-display:swap;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:Archivo;src:url(fonts/archivo-latin-ext.woff2) format('woff2');font-weight:400 900;font-style:normal;font-display:swap;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:'Libre Franklin';src:url(fonts/librefranklin-latin.woff2) format('woff2');font-weight:400 800;font-style:normal;font-display:swap;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:'Libre Franklin';src:url(fonts/librefranklin-latin-ext.woff2) format('woff2');font-weight:400 800;font-style:normal;font-display:swap;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}

/* ---------- Brand primitives (unchanged) ---------- */
:root{
  --navy:#0b1f3a; --navy-deep:#07172d; --navy-mid:#153f78;
  --blue:#0a68df; --blue-dark:#0653b6; --blue-bright:#2d8cff;
  --sky:#eaf4ff; --stone:#f4f6f8;
  --ink:#172033; --ink-2:#3d4759; --muted:#5c6678;
  --line:#dfe5ec; --line-strong:#ccd6e2;

  --font-display:Archivo,'Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-text:'Libre Franklin','Helvetica Neue',Helvetica,Arial,sans-serif;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px;

  --r1:8px; --r2:12px; --r3:16px; --pill:999px;
  --ease:cubic-bezier(.2,.8,.25,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ---------- Semantic tokens: light ---------- */
:root{
  color-scheme:light;
  --surface:#fff;
  --surface-2:var(--stone);
  --surface-3:#eef2f6;
  --surface-invert:var(--navy-deep);
  --surface-invert-2:var(--navy);

  --text:var(--ink);
  --text-2:var(--ink-2);
  --text-3:var(--muted);
  --heading:var(--navy);

  --border:var(--line);
  --border-strong:var(--line-strong);
  --rule:rgba(11,31,58,.12);

  --accent:var(--blue);
  --accent-hover:var(--blue-dark);
  --accent-quiet:var(--sky);
  --accent-on-quiet:var(--blue);
  --on-accent:#fff;

  --on-invert:#fff;
  --on-invert-2:#c6d6ea;
  --on-invert-3:#93a7c0;
  --invert-rule:rgba(255,255,255,.14);
  --accent-invert:var(--blue-bright);

  --danger:#b42318; --danger-bg:#fef4f2; --danger-line:#e8a49c;
  --notice-bg:#fff8e7; --notice-line:#e6cf90; --notice-text:#5f4a17;

  --shadow-1:0 1px 2px rgba(11,31,58,.05),0 2px 6px rgba(11,31,58,.05);
  --shadow-2:0 2px 6px rgba(11,31,58,.06),0 10px 24px rgba(11,31,58,.08);
  --shadow-3:0 6px 16px rgba(11,31,58,.08),0 24px 52px rgba(11,31,58,.10);

  --scrim:linear-gradient(100deg,rgba(7,23,45,.95) 0%,rgba(9,32,64,.9) 46%,rgba(10,38,78,.82) 100%);

  /* Type scale. Display step is real, H1 is sized to land in two lines. */
  --fs-display:clamp(2.05rem,1.35rem + 2.95vw,3.9rem);
  --fs-h1:clamp(2.05rem,1.5rem + 1.9vw,3.05rem);
  --fs-h2:clamp(1.65rem,1.3rem + 1.25vw,2.35rem);
  --fs-h3:clamp(1.12rem,1.04rem + .3vw,1.3rem);
  --fs-lead:clamp(1.06rem,1.01rem + .28vw,1.2rem);
  --fs-body:1.0625rem; --fs-sm:.9375rem; --fs-xs:.8125rem;
  --track-display:-.026em; --track-tight:-.015em;

  --section-y:clamp(64px,7.4vw,116px);
  --section-y-sm:clamp(48px,5vw,76px);
}

/* ---------- Semantic tokens: dark ----------
   Brand accent stays recognisable: the dark accent is the existing
   --blue-bright family lifted just enough to clear WCAG AA on a navy
   off-black. Bright accent surfaces take a dark label, never white. */
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --surface:#0a1626;
    --surface-2:#0e1d31;
    --surface-3:#14263f;
    --surface-invert:#060f1c;
    --surface-invert-2:#0b1c33;

    --text:#e9eff8;
    --text-2:#c0cfe1;
    --text-3:#97a9c0;
    --heading:#eaf1fa;

    --border:#1e3049;
    --border-strong:#2b4363;
    --rule:rgba(255,255,255,.13);

    --accent:#4d9bff;
    --accent-hover:#7ab4ff;
    --accent-quiet:#10243d;
    --accent-on-quiet:#7ab4ff;
    --on-accent:#04101f;

    --on-invert:#fff;
    --on-invert-2:#c0cfe1;
    --on-invert-3:#8fa5bf;
    --invert-rule:rgba(255,255,255,.12);
    --accent-invert:#6fb0ff;

    --danger:#ff9d92; --danger-bg:#2a1210; --danger-line:#5e2820;
    --notice-bg:#241d0d; --notice-line:#5c4a1c; --notice-text:#f0dfb4;

    --shadow-1:0 1px 2px rgba(0,0,0,.4);
    --shadow-2:0 2px 8px rgba(0,0,0,.45),0 12px 28px rgba(0,0,0,.35);
    --shadow-3:0 8px 20px rgba(0,0,0,.5),0 28px 56px rgba(0,0,0,.42);

    --scrim:linear-gradient(100deg,rgba(4,10,20,.96) 0%,rgba(6,20,40,.93) 46%,rgba(8,28,58,.86) 100%);
  }
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;font-family:var(--font-text);font-size:var(--fs-body);line-height:1.62;
  color:var(--text);background:var(--surface);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%}
img{display:block;height:auto}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:var(--track-display);text-wrap:balance;margin:0;color:var(--heading)}
p{text-wrap:pretty}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--r1)}
.on-dark :focus-visible{outline-color:#fff}

.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--surface);color:var(--accent);padding:12px 18px;font-weight:700;border-radius:0 0 var(--r1) 0}
.skip-link:focus{left:0}

/* ---------- Icons (Phosphor, masked so colour follows currentColor) ---------- */
.ico{
  display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;
  background-color:currentColor;
  -webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;
}

/* ---------- Top bar ---------- */
.topbar{background:var(--surface-invert);color:var(--on-invert-2);font-size:var(--fs-xs)}
.topbar .container{display:flex;justify-content:space-between;gap:var(--s5);align-items:center;min-height:42px;flex-wrap:wrap}
.topbar-contact{display:flex;align-items:center;gap:var(--s5)}
.topbar a{color:#fff;font-weight:600;display:inline-flex;align-items:center;gap:7px;overflow-wrap:anywhere}
.topbar a:hover{color:var(--accent-invert)}
.topbar .ico{font-size:1.05em;color:var(--accent-invert)}

/* ---------- Header ---------- */
.site-header{
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);
}
.header-row{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}
.brand{display:flex;align-items:center;border-radius:var(--r1)}
.brand img{height:40px;width:auto}
@media (prefers-color-scheme:dark){.brand img,.footer-logo{filter:brightness(0) invert(1)}}
.nav{display:flex;align-items:center;gap:var(--s6);font-size:var(--fs-sm);font-weight:600}
.nav>a,.dropdown>a{
  display:inline-flex;align-items:center;gap:6px;padding:25px 0;
  border-bottom:2px solid transparent;color:var(--text-2);
  transition:color .18s var(--ease),border-color .18s var(--ease);
}
.nav>a:hover,.dropdown>a:hover,.nav>a.active,.dropdown>a.active{color:var(--accent);border-bottom-color:var(--accent)}
.dropdown{position:relative}
.dropdown>a .ico{font-size:.8em;transition:transform .2s var(--ease)}
.dropdown:hover>a .ico,.dropdown:focus-within>a .ico{transform:rotate(180deg)}
.dropdown-panel{
  position:absolute;top:calc(100% - 4px);left:-16px;width:min(560px,calc(100vw - 48px));
  background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-3);border-radius:var(--r2);
  padding:var(--s3);display:none;grid-template-columns:repeat(2,1fr);gap:2px;
}
.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel{display:grid}
.dropdown-panel a{
  padding:10px 12px;border-radius:var(--r1);color:var(--text-2);font-weight:500;
  display:flex;align-items:center;gap:10px;
  transition:background .15s var(--ease),color .15s var(--ease);
}
.dropdown-panel a .ico{font-size:1.05em;color:var(--accent)}
.dropdown-panel a:hover{background:var(--accent-quiet);color:var(--accent-on-quiet)}
.header-actions{display:flex;align-items:center;gap:var(--s2)}
.mobile-toggle{
  display:none;align-items:center;justify-content:center;width:46px;height:46px;
  background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r1);
  color:var(--heading);cursor:pointer;font-size:20px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;
  min-height:46px;padding:12px 20px;
  background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);
  font-family:var(--font-text);font-size:var(--fs-sm);font-weight:700;
  border-radius:var(--r1);cursor:pointer;text-align:center;
  transition:background .18s var(--ease),transform .12s var(--ease),border-color .18s var(--ease),color .18s var(--ease);
}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;pointer-events:none}
.btn-outline{background:transparent;color:var(--heading);border-color:var(--border-strong)}
.btn-outline:hover{background:var(--surface-2);color:var(--heading);border-color:var(--accent)}
.btn-block{width:100%}
/* On inverted surfaces the label flips with the fill, never white-on-white. */
.on-dark .btn{background:#fff;color:var(--navy);border-color:#fff}
.on-dark .btn:hover{background:var(--sky);color:var(--navy);border-color:var(--sky)}
.on-dark .btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.on-dark .btn-outline:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-weight:700;font-size:var(--fs-sm);overflow-wrap:anywhere}
.text-link .ico{transition:transform .22s var(--ease)}
a:hover .text-link .ico,.text-link:hover .ico{transform:translateX(3px)}
.on-dark .text-link{color:var(--accent-invert)}

/* ---------- Inverted surfaces ---------- */
.on-dark{background:var(--surface-invert-2);color:var(--on-invert-2)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.on-dark strong,.on-dark b{color:var(--on-invert)}

/* ---------- Hero (media split, asymmetric) ---------- */
.hero{position:relative;overflow:hidden;background:var(--surface-invert-2)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero-media:after{content:"";position:absolute;inset:0;background:var(--scrim)}
.hero .container{position:relative;z-index:1}
/* The headline takes the full container width so it lands in two lines at every
   desktop size. The asymmetry lives in the row beneath it, not in the headline. */
.hero-grid{
  display:grid;align-content:center;gap:clamp(28px,3.4vw,48px);
  padding:clamp(52px,6.5vw,88px) 0 clamp(44px,5vw,64px);
  min-height:min(70dvh,570px);
}
.hero h1{font-size:var(--fs-display);line-height:1.05;color:#fff;margin:0}
.hero-row{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,64px);align-items:end}
.hero-sub{font-size:var(--fs-lead);color:#dbe9fb;max-width:40ch;margin:0}
.hero-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.hero-aside{
  border-top:1px solid var(--invert-rule);padding-top:var(--s5);
  display:grid;gap:var(--s4);align-content:end;
}
.hero-aside p{margin:0;color:#dbe9fb;font-size:var(--fs-sm);max-width:34ch}
.hero-aside .text-link{color:#fff}

/* ---------- Sections ---------- */
.section{padding:var(--section-y) 0}
.section-sm{padding:var(--section-y-sm) 0}
.section.alt{background:var(--surface-2)}
.section-head{max-width:60ch;margin-bottom:var(--s10)}
.section h2{font-size:var(--fs-h2);line-height:1.12;margin:0 0 var(--s4)}
.section-head p{font-size:var(--fs-lead);color:var(--text-3);margin:0}

/* ---------- Route panels (urgent vs planned) ---------- */
.routes{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden}
.route{background:var(--surface);padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:var(--s3)}
.route h3{font-size:var(--fs-h3);margin:0}
.route p{margin:0;color:var(--text-3);font-size:var(--fs-sm);max-width:44ch}
.route .btn,.route .text-link{margin-top:auto;align-self:flex-start;padding-top:var(--s3)}
.route .btn{padding:12px 20px}
.route-mark{font-size:26px;color:var(--accent);line-height:1}

/* ---------- Trade index (grouped, varied column counts) ---------- */
.trade-group+.trade-group{margin-top:var(--s12)}
.trade-head{display:flex;align-items:baseline;gap:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--rule);margin-bottom:var(--s6)}
.trade-head h3{font-size:var(--fs-h3);margin:0;letter-spacing:var(--track-tight)}
.trade-head span{color:var(--text-3);font-size:var(--fs-sm)}
.trade-grid{display:grid;gap:var(--s4)}
.trade-grid[data-cols="4"]{grid-template-columns:repeat(4,1fr)}
.trade-grid[data-cols="3"]{grid-template-columns:repeat(3,1fr)}
.trade-grid[data-cols="1"]{grid-template-columns:minmax(0,1fr)}
.trade{
  display:flex;flex-direction:column;gap:var(--s3);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);
  padding:var(--s6);
  transition:border-color .22s var(--ease),transform .22s var(--ease),background .22s var(--ease);
}
.trade:hover{border-color:var(--accent);transform:translateY(-3px)}
.trade-icon{
  width:44px;height:44px;border-radius:var(--r2);background:var(--accent-quiet);color:var(--accent-on-quiet);
  display:grid;place-items:center;font-size:24px;
  transition:background .22s var(--ease),color .22s var(--ease);
}
.trade:hover .trade-icon{background:var(--accent);color:var(--on-accent)}
.trade h4{font-size:var(--fs-h3);margin:var(--s2) 0 0;letter-spacing:var(--track-tight)}
.trade p{color:var(--text-3);font-size:var(--fs-sm);margin:0}
.trade .text-link{margin-top:auto;padding-top:var(--s3)}
/* the single whole-property cell is the rhythm break: wide, horizontal */
.trade-grid[data-cols="1"] .trade{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;
  gap:var(--s5);padding:var(--s6) clamp(24px,3vw,36px);
}
.trade-grid[data-cols="1"] .trade h4{margin:0}
.trade-grid[data-cols="1"] .trade .text-link{margin:0;padding:0}
.trade-wide-body{display:grid;gap:4px}

/* ---------- Process (sticky heading + editorial rows, no step numbers) ---------- */
.process{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:start}
.process-intro{position:sticky;top:100px}
.process-intro p{color:var(--text-3);margin:var(--s4) 0 0;max-width:34ch}
.process-list{display:grid}
.process-item{display:grid;gap:var(--s2);padding:var(--s6) 0;border-top:1px solid var(--rule)}
.process-item:last-child{border-bottom:1px solid var(--rule)}
.process-item b{font-family:var(--font-display);font-weight:800;font-size:1.18rem;color:var(--heading);letter-spacing:var(--track-tight)}
.process-item span{color:var(--text-3);font-size:var(--fs-sm);max-width:52ch}

/* ---------- Statement band ---------- */
.statement{background:var(--surface-invert-2);color:var(--on-invert-2);padding:var(--section-y) 0}
.statement-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:start}
.statement h2{font-size:var(--fs-h2);line-height:1.14;margin:0}
.statement-body{display:grid;gap:var(--s4);padding-top:6px}
.statement-body p{margin:0;color:var(--on-invert-2)}

/* ---------- Coverage band ---------- */
.coverage-banner{position:relative;border-radius:var(--r3);overflow:hidden;margin-bottom:var(--s8);aspect-ratio:21/7;background:var(--surface-3)}
.coverage-banner img{width:100%;height:100%;object-fit:cover}
.coverage-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4.5vw,64px);align-items:start}
.city-cloud{display:flex;flex-wrap:wrap;gap:var(--s2)}
.city-cloud li{
  list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--pill);
  padding:7px 15px;color:var(--text-2);font-weight:600;font-size:var(--fs-sm);
}
.section.alt .city-cloud li{background:var(--surface)}
.coverage-note{color:var(--text-3);font-size:var(--fs-sm);margin:var(--s5) 0 0;max-width:56ch}

/* ---------- CTA band ---------- */
.cta{
  background:var(--surface-invert-2);color:var(--on-invert-2);border-radius:var(--r3);
  padding:clamp(28px,3.6vw,52px);display:flex;justify-content:space-between;gap:var(--s8);
  align-items:center;flex-wrap:wrap;
}
.cta h2{margin:0 0 var(--s2);font-size:clamp(1.45rem,1.1rem + 1.4vw,2rem);color:#fff}
.cta p{margin:0;color:#dbe9fb;max-width:52ch}
.cta-actions{display:flex;gap:var(--s3);flex-wrap:wrap}

/* ---------- Page hero (interior) ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--surface-invert-2);padding:clamp(44px,5vw,76px) 0 clamp(40px,4.6vw,68px)}
.page-hero .container{position:relative;z-index:1}
.page-hero-media{position:absolute;inset:0;z-index:0}
.page-hero-media img{width:100%;height:100%;object-fit:cover}
.page-hero-media:after{content:"";position:absolute;inset:0;background:var(--scrim)}
.page-hero h1{font-size:var(--fs-h1);margin:0 0 var(--s4);line-height:1.06;color:#fff;max-width:22ch}
.page-hero-sub{font-size:var(--fs-lead);color:#dbe9fb;max-width:58ch;margin:0}
.page-hero .hero-actions{margin-top:var(--s6)}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:var(--fs-sm);color:var(--on-invert-3);margin-bottom:var(--s5)}
.breadcrumbs a{color:#fff;font-weight:600}
.breadcrumbs a:hover{color:var(--accent-invert)}

/* ---------- Prose / content ---------- */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,4.5vw,64px);align-items:start}
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,1.2rem + 1.3vw,2.05rem);line-height:1.16;margin:0 0 var(--s4)}
.prose h3{font-size:var(--fs-h3);margin:var(--s10) 0 var(--s4)}
.prose p{color:var(--text-2);margin:0 0 var(--s4)}
.prose>p:last-child{margin-bottom:0}

/* Requests list: grouped chunks, one hairline per group, not per row. */
.request-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3) var(--s8);padding:0;margin:0;list-style:none}
.request-list li{display:grid;grid-template-columns:20px 1fr;gap:var(--s3);align-items:start;color:var(--text-2);font-size:var(--fs-sm)}
.request-list .ico{font-size:18px;color:var(--accent);margin-top:3px}

.sidebar-card{
  background:var(--surface-2);border:1px solid var(--border);padding:var(--s6);
  border-radius:var(--r2);position:sticky;top:100px;
}
.sidebar-card h3{margin:0 0 var(--s3);font-size:var(--fs-h3)}
.sidebar-card p{color:var(--text-3);font-size:var(--fs-sm);margin:0 0 var(--s5)}
.sidebar-card .btn+.btn{margin-top:var(--s2)}
.sidebar-card hr{border:0;border-top:1px solid var(--border);margin:var(--s6) 0}
.sidebar-card>strong{display:block;color:var(--heading);font-size:var(--fs-sm);margin-bottom:var(--s3)}
.related-links{display:grid;gap:var(--s3)}

/* ---------- FAQ ---------- */
.faq{display:grid;max-width:80ch;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  font-family:var(--font-display);font-weight:700;color:var(--heading);cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--s4);
  padding:var(--s5) 0;font-size:1.02rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ico{color:var(--accent);font-size:18px;transition:transform .22s var(--ease)}
.faq details[open] summary .ico{transform:rotate(180deg)}
.faq p{margin:0 0 var(--s5);color:var(--text-3);font-size:var(--fs-sm);max-width:70ch}

/* ---------- Forms ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,4vw,56px);align-items:start}
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:clamp(24px,2.8vw,36px);box-shadow:var(--shadow-2)}
.form-card h2{margin:0;font-size:clamp(1.4rem,1.2rem + .9vw,1.8rem)}
.form-intro{margin:var(--s3) 0 var(--s6);color:var(--text-3);font-size:var(--fs-sm)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.field{margin-bottom:var(--s5)}
.field label{display:block;font-weight:700;color:var(--heading);margin-bottom:7px;font-size:var(--fs-sm)}
.field .optional{color:var(--text-3);font-weight:500}
.field input,.field select,.field textarea{
  width:100%;min-width:0;min-height:46px;padding:12px 14px;border:1px solid var(--border-strong);
  border-radius:var(--r1);font:inherit;font-size:var(--fs-sm);color:var(--text);background:var(--surface);
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--accent)}
.field textarea{min-height:132px;resize:vertical;line-height:1.55}
.field select{appearance:none;background-image:var(--sel-chev);background-repeat:no-repeat;background-position:right 13px center;background-size:16px;padding-right:38px;cursor:pointer}
:root{--sel-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%235c6678'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root{--sel-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%2397a9c0'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E")}}
.field-hint{margin:7px 0 0;font-size:var(--fs-xs);color:var(--text-3)}
.field-error{margin:7px 0 0;font-size:var(--fs-xs);font-weight:700;color:var(--danger)}
.field .is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}
.form-errors{background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:var(--r1);padding:var(--s4) var(--s5);margin-bottom:var(--s6)}
.form-errors:focus{outline:3px solid var(--danger);outline-offset:2px}
.form-errors-title{display:block;font-family:var(--font-display);color:var(--danger);margin-bottom:var(--s2);font-size:var(--fs-sm)}
.form-errors ul{margin:0;padding-left:20px}
.form-errors li{margin:4px 0;font-size:var(--fs-sm);color:var(--text-2)}
.form-errors a{color:var(--danger);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.form-note{font-size:var(--fs-xs);color:var(--text-3);margin:var(--s4) 0 0}
.form-success:focus{outline:none}
.form-success-mark{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;margin-bottom:var(--s5);font-size:26px}
.form-success h2{margin:0 0 var(--s3)}
.form-success p{color:var(--text-3);margin:0 0 var(--s3)}
.form-step{border:0;padding:0;margin:0;min-width:0}
.form-step legend{font-family:var(--font-display);font-weight:800;color:var(--heading);font-size:1.1rem;padding:0;margin-bottom:var(--s5);letter-spacing:var(--track-tight)}
.form-step legend:focus{outline:none}
.form-progress{margin-bottom:var(--s6)}
.form-progress-track{height:4px;border-radius:var(--pill);background:var(--border);overflow:hidden}
.form-progress-fill{display:block;height:100%;width:100%;border-radius:var(--pill);background:var(--accent);transform:scaleX(.3333);transform-origin:left center;transition:transform .35s var(--ease)}
.form-progress-label{margin:9px 0 0;font-size:var(--fs-xs);color:var(--text-3);font-weight:600}
.form-nav{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s5)}
.form-nav .btn{flex:1 1 auto;min-width:150px}
.form-urgent{margin:var(--s3) 0 0;padding:12px 15px;border-radius:var(--r1);background:var(--accent-quiet);color:var(--text-2);font-size:var(--fs-sm);font-weight:600}
.form-urgent a{color:var(--accent-on-quiet);text-decoration:underline;text-underline-offset:2px}
.notice{background:var(--notice-bg);border:1px solid var(--notice-line);color:var(--notice-text);padding:14px 16px;border-radius:var(--r1);font-size:var(--fs-sm);margin:0 0 var(--s5)}
.notice a{font-weight:700;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.notice:focus{outline:3px solid var(--notice-line);outline-offset:2px}

.contact-list{display:grid;gap:var(--s5)}
.contact-item{display:grid;grid-template-columns:44px 1fr;gap:var(--s4);align-items:start}
.contact-item .trade-icon{width:44px;height:44px}
.contact-item strong{color:var(--heading);font-size:var(--fs-sm);display:block;margin-bottom:2px}
.contact-item span,.contact-item address{color:var(--text-3);font-size:var(--fs-sm);font-style:normal}

/* ---------- Legal ---------- */
.legal{max-width:72ch}
.legal h2{margin-top:var(--s12);font-size:clamp(1.3rem,1.1rem + .8vw,1.6rem)}
.legal p,.legal li{color:var(--text-2)}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-invert);color:var(--on-invert-2);padding:var(--s20) 0 var(--s6);font-size:var(--fs-sm)}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:var(--s10)}
.footer-logo{height:38px;width:auto;margin-bottom:var(--s5);filter:brightness(0) invert(1)}
.site-footer h4{color:#fff;margin:0 0 var(--s4);font-size:var(--fs-sm);letter-spacing:.02em}
.site-footer p{margin:0 0 var(--s4);max-width:44ch}
.site-footer a{display:block;overflow-wrap:anywhere;color:var(--on-invert-2);margin:8px 0;transition:color .16s var(--ease)}
.site-footer a:hover{color:#fff}
.site-footer strong{color:#fff}
.site-footer address{font-style:normal}
.footer-bottom{border-top:1px solid var(--invert-rule);margin-top:var(--s12);padding-top:var(--s5);display:flex;justify-content:space-between;gap:var(--s5);font-size:var(--fs-xs);color:var(--on-invert-3);flex-wrap:wrap}

/* ---------- Sticky mobile action bar ---------- */
.action-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:var(--s2);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  border-top:1px solid var(--border);
}
.action-bar .btn{width:100%;min-height:50px}

/* ---------- Motion. Level 4: arrival and scroll reveal, nothing perpetual. ----------
   Hero rise    -> hierarchy: the value proposition lands before the rest.
   Scroll reveal-> storytelling: sections arrive in reading order as they enter.
   Both collapse to static under reduced motion. */
@media (prefers-reduced-motion:no-preference){
  .hero-grid>*{animation:rise .8s var(--ease-out) both}
  .hero-grid>*:nth-child(2){animation-delay:.1s}
  @keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
  [data-reveal].is-visible{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media(max-width:1180px){
  .nav{gap:var(--s5)}
  .content-grid{grid-template-columns:minmax(0,1fr) 310px}
  .trade-grid[data-cols="4"]{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1050px){
  .nav,.header-actions .btn-outline{display:none}
  .mobile-toggle{display:inline-flex}
  .header-actions{margin-left:auto}
  .mobile-open .nav{
    position:absolute;display:flex;flex-direction:column;align-items:stretch;gap:0;
    top:100%;left:0;right:0;background:var(--surface);padding:var(--s2) 24px var(--s6);
    border-bottom:1px solid var(--border);box-shadow:var(--shadow-3);max-height:calc(100dvh - 74px);overflow-y:auto;
  }
  .mobile-open .nav>a,.mobile-open .dropdown>a{padding:13px 0;border-bottom:1px solid var(--border);justify-content:space-between}
  .dropdown-panel{position:static;width:auto;box-shadow:none;border:0;padding:2px 0 var(--s3) var(--s4);grid-template-columns:1fr;display:none}
  .mobile-open .dropdown.open .dropdown-panel{display:grid}
  .hero-row{grid-template-columns:minmax(0,1fr);gap:var(--s6);align-items:start}
  .hero-grid{min-height:0}
  .hero-aside{border-top:1px solid var(--invert-rule)}
  .process{grid-template-columns:minmax(0,1fr);gap:var(--s8)}
  .process-intro{position:static}
  .statement-grid,.coverage-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
  .content-grid{grid-template-columns:minmax(0,1fr)}
  .sidebar-card{position:static;max-width:640px}
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--s8)}
}
@media(max-width:900px){
  .header-actions{display:none}
  .action-bar{display:grid;grid-template-columns:1fr 1fr}
  .action-bar[data-single]{grid-template-columns:1fr}
  body{padding-bottom:86px}
  body.keyboard-open .action-bar{display:none}
  body.keyboard-open{padding-bottom:0}
}
@media(max-width:820px){
  .trade-grid[data-cols="3"]{grid-template-columns:repeat(2,1fr)}
  .routes{grid-template-columns:minmax(0,1fr)}
  .request-list{grid-template-columns:minmax(0,1fr)}
  .coverage-banner{aspect-ratio:16/9}
}
@media(max-width:640px){
  .container{width:min(100% - 32px,1180px)}
  .topbar .container{justify-content:center;text-align:center;padding:8px 0}
  .topbar-tagline{display:none}
  .topbar-contact{gap:var(--s4);flex-wrap:wrap;justify-content:center}
  .header-row{min-height:66px}
  .brand img{height:34px}
  .trade-grid[data-cols="4"],.trade-grid[data-cols="3"]{grid-template-columns:minmax(0,1fr)}
  .trade-grid[data-cols="1"] .trade{grid-template-columns:44px 1fr;gap:var(--s4)}
  .trade-grid[data-cols="1"] .trade .text-link{grid-column:2}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8)}
  .cta{flex-direction:column;align-items:flex-start}
  .hero-actions .btn,.cta-actions .btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}

/* ---------- Icon glyphs: Phosphor Icons (MIT), regular weight, inlined as masks ---------- */
.i-roofing{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM48,120l80-80,80,80v88H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48Zm96,88H112V160h32Z'/%3E%3C/svg%3E")}
.i-heating-cooling{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M136,153V88a8,8,0,0,0-16,0v65a32,32,0,1,0,16,0Zm-8,47a16,16,0,1,1,16-16A16,16,0,0,1,128,200Zm40-66V48a40,40,0,0,0-80,0v86a64,64,0,1,0,80,0Zm-40,98a48,48,0,0,1-27.42-87.4A8,8,0,0,0,104,138V48a24,24,0,0,1,48,0v90a8,8,0,0,0,3.42,6.56A48,48,0,0,1,128,232Z'/%3E%3C/svg%3E")}
.i-plumbing{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M232,104H208V56h24a8,8,0,0,0,0-16H205.83A16,16,0,0,0,192,32H176a16,16,0,0,0-13.83,8H144A104.11,104.11,0,0,0,40,144v18.16A16,16,0,0,0,32,176v16a16,16,0,0,0,8,13.84V232a8,8,0,0,0,16,0V208h48v24a8,8,0,0,0,16,0V205.84A16,16,0,0,0,128,192V176a16,16,0,0,0-8-13.84V144a24,24,0,0,1,24-24h18.17A16,16,0,0,0,176,128h16a16,16,0,0,0,13.83-8H232a8,8,0,0,0,0-16ZM112,176v16H48V176Zm-8-32v16H56V144a88.1,88.1,0,0,1,88-88h16v48H144A40,40,0,0,0,104,144Zm72-32V48h16v63.8c0,.07,0,.13,0,.2Z'/%3E%3C/svg%3E")}
.i-electrical{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M215.79,118.17a8,8,0,0,0-5-5.66L153.18,90.9l14.66-73.33a8,8,0,0,0-13.69-7l-112,120a8,8,0,0,0,3,13l57.63,21.61L88.16,238.43a8,8,0,0,0,13.69,7l112-120A8,8,0,0,0,215.79,118.17ZM109.37,214l10.47-52.38a8,8,0,0,0-5-9.06L62,132.71l84.62-90.66L136.16,94.43a8,8,0,0,0,5,9.06l52.8,19.8Z'/%3E%3C/svg%3E")}
.i-gutters{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M174,47.75a254.19,254.19,0,0,0-41.45-38.3,8,8,0,0,0-9.18,0A254.19,254.19,0,0,0,82,47.75C54.51,79.32,40,112.6,40,144a88,88,0,0,0,176,0C216,112.6,201.49,79.32,174,47.75ZM187.83,184H68.17a72,72,0,0,1-8-16H195.87A72,72,0,0,1,187.83,184ZM200,144a70.57,70.57,0,0,1-.46,8H56.46a70.57,70.57,0,0,1-.46-8q0-4,.36-8H199.64Q200,140,200,144ZM128,26c14.16,11.1,56.86,47.74,68.84,94H59.16C71.14,73.76,113.84,37.12,128,26ZM82.81,200h90.38a71.82,71.82,0,0,1-90.38,0Z'/%3E%3C/svg%3E")}
.i-siding-windows{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H40V56H216V200ZM80,84A12,12,0,1,1,68,72,12,12,0,0,1,80,84Zm40,0a12,12,0,1,1-12-12A12,12,0,0,1,120,84Z'/%3E%3C/svg%3E")}
.i-insulation{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222.16,177.25a8,8,0,0,1-1,11.25c-17.36,14.39-32.86,19.5-47,19.5-18.58,0-34.82-8.82-49.93-17-25.35-13.76-47.24-25.64-79.07.74a8,8,0,1,1-10.22-12.31c40.17-33.28,70.32-16.92,96.93-2.48,25.35,13.75,47.24,25.63,79.07-.74A8,8,0,0,1,222.16,177.25Zm-11.27-57c-31.83,26.38-53.72,14.5-79.07.74-26.61-14.43-56.76-30.79-96.93,2.49a8,8,0,0,0,10.22,12.31c31.83-26.38,53.72-14.5,79.07-.74,15.11,8.19,31.35,17,49.93,17,14.14,0,29.64-5.11,47-19.5a8,8,0,1,0-10.22-12.31ZM45.11,79.8c31.83-26.37,53.72-14.49,79.07-.74,15.11,8.2,31.35,17,49.93,17,14.14,0,29.64-5.12,47-19.5a8,8,0,1,0-10.22-12.31c-31.83,26.38-53.72,14.5-79.07.74C105.21,50.58,75.06,34.22,34.89,67.5A8,8,0,1,0,45.11,79.8Z'/%3E%3C/svg%3E")}
.i-water-heaters{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,153V48a8,8,0,0,0-16,0V153a32,32,0,1,0,16,0Zm-8,47a16,16,0,1,1,16-16A16,16,0,0,1,120,200Zm40-66V48a40,40,0,0,0-80,0v86a64,64,0,1,0,80,0Zm-40,98a48,48,0,0,1-27.42-87.4A8,8,0,0,0,96,138V48a24,24,0,0,1,48,0v90a8,8,0,0,0,3.42,6.56A48,48,0,0,1,120,232ZM177.3,80.77a8,8,0,0,1,2.33-11.07c15-9.79,26.87-4.75,35.51-1.06C223,72,227.76,74,235.63,68.89a8,8,0,0,1,8.74,13.41C237.88,86.53,232,88,226.69,88c-7,0-12.92-2.54-17.83-4.63C201,80,196.24,78,188.37,83.11A8,8,0,0,1,177.3,80.77Zm69.4,22.46a8,8,0,0,1-2.33,11.07C237.88,118.53,232,120,226.69,120c-7,0-12.92-2.54-17.83-4.63-7.87-3.36-12.62-5.38-20.49-.25a8,8,0,0,1-8.74-13.41c15-9.79,26.87-4.75,35.51-1.06,7.87,3.36,12.62,5.39,20.49.25A8,8,0,0,1,246.7,103.23Z'/%3E%3C/svg%3E")}
.i-drain-sewer{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M230.6,49.53A15.81,15.81,0,0,0,216,40H40A16,16,0,0,0,28.19,66.76l.08.09L96,139.17V216a16,16,0,0,0,24.87,13.32l32-21.34A16,16,0,0,0,160,194.66V139.17l67.74-72.32.08-.09A15.8,15.8,0,0,0,230.6,49.53ZM40,56h0Zm106.18,74.58A8,8,0,0,0,144,136v58.66L112,216V136a8,8,0,0,0-2.16-5.47L40,56H216Z'/%3E%3C/svg%3E")}
.i-indoor-air-quality{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M184,184a32,32,0,0,1-32,32c-13.7,0-26.95-8.93-31.5-21.22a8,8,0,0,1,15-5.56C137.74,195.27,145,200,152,200a16,16,0,0,0,0-32H40a8,8,0,0,1,0-16H152A32,32,0,0,1,184,184Zm-64-80a32,32,0,0,0,0-64c-13.7,0-26.95,8.93-31.5,21.22a8,8,0,0,0,15,5.56C105.74,60.73,113,56,120,56a16,16,0,0,1,0,32H24a8,8,0,0,0,0,16Zm88-32c-13.7,0-26.95,8.93-31.5,21.22a8,8,0,0,0,15,5.56C193.74,92.73,201,88,208,88a16,16,0,0,1,0,32H32a8,8,0,0,0,0,16H208a32,32,0,0,0,0-64Z'/%3E%3C/svg%3E")}
.i-generators{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M240,104H227.31L192,68.69A15.86,15.86,0,0,0,180.69,64H140V40h24a8,8,0,0,0,0-16H100a8,8,0,0,0,0,16h24V64H64A16,16,0,0,0,48,80v52H24V108a8,8,0,0,0-16,0v64a8,8,0,0,0,16,0V148H48v20.69A15.86,15.86,0,0,0,52.69,180L92,219.31A15.86,15.86,0,0,0,103.31,224h77.38A15.86,15.86,0,0,0,192,219.31L227.31,184H240a16,16,0,0,0,16-16V120A16,16,0,0,0,240,104Zm0,64H224a8,8,0,0,0-5.66,2.34L180.69,208H103.31L64,168.69V80H180.69l37.65,37.66A8,8,0,0,0,224,120h16Z'/%3E%3C/svg%3E")}
.i-commercial-services{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M240,208H224V96a16,16,0,0,0-16-16H144V32a16,16,0,0,0-24.88-13.32L39.12,72A16,16,0,0,0,32,85.34V208H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM208,96V208H144V96ZM48,85.34,128,32V208H48ZM112,112v16a8,8,0,0,1-16,0V112a8,8,0,1,1,16,0Zm-32,0v16a8,8,0,0,1-16,0V112a8,8,0,1,1,16,0Zm0,56v16a8,8,0,0,1-16,0V168a8,8,0,0,1,16,0Zm32,0v16a8,8,0,0,1-16,0V168a8,8,0,0,1,16,0Z'/%3E%3C/svg%3E")}
.i-phone{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222.37,158.46l-47.11-21.11-.13-.06a16,16,0,0,0-15.17,1.4,8.12,8.12,0,0,0-.75.56L134.87,160c-15.42-7.49-31.34-23.29-38.83-38.51l20.78-24.71c.2-.25.39-.5.57-.77a16,16,0,0,0,1.32-15.06l0-.12L97.54,33.64a16,16,0,0,0-16.62-9.52A56.26,56.26,0,0,0,32,80c0,79.4,64.6,144,144,144a56.26,56.26,0,0,0,55.88-48.92A16,16,0,0,0,222.37,158.46ZM176,208A128.14,128.14,0,0,1,48,80,40.2,40.2,0,0,1,82.87,40a.61.61,0,0,0,0,.12l21,47L83.2,111.86a6.13,6.13,0,0,0-.57.77,16,16,0,0,0-1,15.7c9.06,18.53,27.73,37.06,46.46,46.11a16,16,0,0,0,15.75-1.14,8.44,8.44,0,0,0,.74-.56L168.89,152l47,21.05h0s.08,0,.11,0A40.21,40.21,0,0,1,176,208Z'/%3E%3C/svg%3E")}
.i-email{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM203.43,64,128,133.15,52.57,64ZM216,192H40V74.19l82.59,75.71a8,8,0,0,0,10.82,0L216,74.19V192Z'/%3E%3C/svg%3E")}
.i-location{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z'/%3E%3C/svg%3E")}
.i-check{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E")}
.i-arrow-right{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E")}
.i-chevron-down{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E")}
.i-menu{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z'/%3E%3C/svg%3E")}
.i-close{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z'/%3E%3C/svg%3E")}
.i-warning{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z'/%3E%3C/svg%3E")}
.i-clock{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'/%3E%3C/svg%3E")}
