/* ============================================================
   ALB Electric — fonts (Geist, vendored locally)
   ============================================================ */
@font-face{font-family:"Geist";src:url("../fonts/geist/Geist-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/geist/Geist-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/geist/Geist-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/geist/Geist-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/geist/Geist-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}

/* ============================================================
   ALB Electric — design tokens
   ============================================================ */
:root{
/* Brand green ramp */
--green-50:#F1F8EC;--green-100:#DEEFD0;--green-200:#C3E3AC;--green-300:#A0D179;
--green-400:#8ECB63;--green-500:#7EC151;--green-600:#5FA23A;--green-700:#4A7E2D;--green-800:#375F22;
/* Accent gold ramp */
--gold-50:#FFFBEF;--gold-100:#FFF3CE;--gold-200:#FFE9A3;--gold-300:#FEDE79;
--gold-400:#FED866;--gold-500:#FED24F;--gold-600:#E7B62E;--gold-700:#BC9019;
/* Neutrals */
--n-0:#FFFFFF;--n-25:#FAFAFA;--n-50:#F3F3F4;--n-100:#E6E6E7;--n-200:#D2D3D4;--n-300:#B5B6B8;
--n-400:#929497;--n-500:#76787B;--n-600:#5A5C5E;--n-700:#3F4042;--n-800:#252627;
/* Ink */
--ink:#161718;--ink-soft:#2A2C2E;
/* Status (utility only — not part of the brand palette) */
--danger:#B3261E;--danger-tint:#FBEAE8;

/* Semantic: text */
--text-strong:var(--ink);
--text-body:var(--n-700);
--text-muted:var(--n-500);
--text-faint:var(--n-400);
--text-inverse:var(--n-0);
--text-inverse-muted:rgba(255,255,255,.66);
--text-brand:var(--green-700);
--text-on-brand:var(--ink);
--text-on-accent:var(--ink);
/* Semantic: brand (green) */
--brand:var(--green-500);
--brand-hover:var(--green-600);
--brand-press:var(--green-700);
--brand-tint:var(--green-50);
--brand-tint-strong:var(--green-100);
--brand-on-dark:var(--green-400);
/* Semantic: accent (gold) */
--accent:var(--gold-500);
--accent-hover:var(--gold-600);
--accent-press:var(--gold-700);
--accent-tint:var(--gold-50);
--accent-tint-strong:var(--gold-100);
--accent-on-dark:var(--gold-500);
/* Semantic: surfaces */
--surface-page:var(--n-25);
--surface-card:var(--n-0);
--surface-sunken:var(--n-50);
--surface-dark:var(--ink);
--surface-dark-raised:var(--ink-soft);
--surface-brand:var(--green-500);
--surface-brand-quiet:var(--green-50);
--overlay-scrim:rgba(22,23,24,.58);
/* Semantic: lines */
--border-subtle:var(--n-200);
--border-strong:var(--n-300);
--border-inverse:rgba(255,255,255,.16);
--border-brand:var(--green-500);
--rule-hairline:var(--n-100);
/* Semantic: state */
--focus-ring:rgba(74,126,45,.30);
--success:var(--green-700);--success-tint:var(--green-50);
--warning:var(--gold-700);--warning-tint:var(--gold-50);
--info:var(--n-600);--info-tint:var(--n-50);

/* Typography */
--font-display:"Geist","Helvetica Neue",Arial,sans-serif;
--font-body:"Geist","Helvetica Neue",Arial,sans-serif;
--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
--fs-eyebrow:12px;--fs-xs:13px;--fs-sm:15px;--fs-base:17px;--fs-lg:19px;--fs-xl:22px;
--fs-2xl:28px;--fs-3xl:36px;--fs-4xl:48px;--fs-5xl:64px;
--fs-hero:clamp(30px,3.6vw,46px);
--fs-section:clamp(28px,3.4vw,44px);
--lh-tight:1.04;--lh-snug:1.18;--lh-title:1.28;--lh-normal:1.55;--lh-relaxed:1.72;
--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;
--tracking-tight:-0.022em;--tracking-snug:-0.01em;--tracking-normal:0;--tracking-eyebrow:0.09em;--tracking-caps:0.045em;
--type-hero:var(--fw-extrabold) var(--fs-hero)/var(--lh-tight) var(--font-display);
--type-section:var(--fw-bold) var(--fs-section)/var(--lh-snug) var(--font-display);
--type-h3:var(--fw-semibold) var(--fs-xl)/var(--lh-title) var(--font-display);
--type-h4:var(--fw-semibold) var(--fs-lg)/var(--lh-title) var(--font-display);
--type-lead:var(--fw-regular) var(--fs-lg)/var(--lh-relaxed) var(--font-body);
--type-body:var(--fw-regular) var(--fs-base)/var(--lh-normal) var(--font-body);
--type-small:var(--fw-regular) var(--fs-sm)/var(--lh-normal) var(--font-body);
--type-label:var(--fw-semibold) var(--fs-sm)/1.3 var(--font-body);
--type-eyebrow:var(--fw-semibold) var(--fs-eyebrow)/1.2 var(--font-body);
--type-button:var(--fw-semibold) var(--fs-sm)/1 var(--font-body);

/* Spacing / layout */
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;
--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-14:56px;--space-16:64px;
--space-20:80px;--space-24:96px;--space-32:128px;
--container-max:1200px;
--container-narrow:820px;
--gutter:clamp(20px,5vw,64px);
--section-y:clamp(64px,7.5vw,120px);
--section-y-tight:clamp(44px,5vw,72px);
--grid-gap:clamp(16px,2vw,28px);
--measure:66ch;
--header-h:76px;
--control-h-sm:36px;--control-h-md:44px;--control-h-lg:54px;
--control-pad-x-sm:14px;--control-pad-x-md:20px;--control-pad-x-lg:28px;
--card-pad:clamp(22px,2.4vw,32px);
--tap-min:44px;

/* Shape */
--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:22px;--radius-pill:999px;
--radius-card:var(--radius-md);
--radius-control:var(--radius-sm);
--border-hairline:1px;--border-thick:2px;--border-accent:3px;
--border-card:var(--border-hairline) solid var(--border-subtle);
--shadow-xs:0 1px 2px rgba(22,23,24,.06);
--shadow-sm:0 1px 3px rgba(22,23,24,.07),0 1px 2px -1px rgba(22,23,24,.05);
--shadow-md:0 6px 16px -6px rgba(22,23,24,.14),0 2px 5px -2px rgba(22,23,24,.07);
--shadow-lg:0 18px 40px -18px rgba(22,23,24,.22),0 4px 10px -4px rgba(22,23,24,.08);
--shadow-brand:0 10px 24px -12px rgba(126,193,81,.45);
--shadow-inset-line:inset 0 -1px 0 rgba(22,23,24,.06);
--ring-focus:0 0 0 3px var(--focus-ring);

/* Motion */
--dur-instant:80ms;--dur-fast:120ms;--dur-base:180ms;--dur-slow:320ms;--dur-slower:520ms;
--ease-standard:cubic-bezier(.2,.6,.2,1);
--ease-out:cubic-bezier(.16,.84,.44,1);
--ease-in-out:cubic-bezier(.6,0,.4,1);
--transition-control:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard);
--transition-surface:box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);
--lift-hover:translateY(-2px);
--press-scale:.985;
}

/* ============================================================
   Base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);text-wrap:pretty;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{margin:0;color:var(--text-strong);font-family:var(--font-display);letter-spacing:var(--tracking-tight);text-wrap:balance}
h1{font:var(--type-hero)}h2{font:var(--type-section)}h3{font:var(--type-h3)}h4{font:var(--type-h4)}
p{margin:0}
a{color:var(--text-brand);text-decoration-color:color-mix(in oklab,var(--text-brand) 35%,transparent);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-standard),text-decoration-color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--brand-hover);text-decoration-color:currentColor}
a:active{color:var(--brand-press)}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
::selection{background:var(--brand-tint-strong);color:var(--text-strong)}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
hr{border:0;border-top:var(--border-hairline) solid var(--rule-hairline);margin:0}
strong{font-weight:var(--fw-semibold);color:var(--text-strong)}
small{font:var(--type-small);color:var(--text-muted)}

.alb-container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}
.alb-section{padding-block:var(--section-y)}
.alb-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-brand)}
.alb-lead{font:var(--type-lead);color:var(--text-muted);max-width:var(--measure)}
.alb-rule{height:var(--border-accent);width:44px;background:var(--brand);border-radius:var(--radius-pill)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

a{text-decoration:none}
body{overflow-x:hidden}

/* ============================================================
   Icon (Lucide, masked to currentColor)
   ============================================================ */
.icon{display:inline-block;flex:0 0 auto;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}

/* ============================================================
   Button
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:var(--control-h-md);padding:0 var(--control-pad-x-md);font:var(--type-button);font-size:var(--fs-sm);letter-spacing:var(--tracking-snug);border-radius:var(--radius-control);cursor:pointer;text-decoration:none;white-space:nowrap;border:var(--border-hairline) solid transparent;transition:var(--transition-control),transform var(--dur-instant) var(--ease-standard)}
.btn:active{transform:scale(var(--press-scale))}
.btn-lg{height:var(--control-h-lg);padding:0 var(--control-pad-x-lg);font-size:var(--fs-base);gap:10px}
.btn-primary{background:var(--brand);color:var(--text-on-brand);box-shadow:var(--shadow-xs)}
.btn-primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-brand);color:var(--text-on-brand)}
.btn-primary:active{background:var(--brand-press);box-shadow:var(--shadow-xs)}
.btn-secondary{background:var(--surface-card);color:var(--text-strong);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}
.btn-secondary:hover{background:var(--surface-sunken);border-color:var(--text-strong);color:var(--text-strong)}
.btn-secondary:active{box-shadow:none}
.btn-onDark{background:transparent;color:var(--text-inverse);border-color:var(--border-inverse)}
.btn-onDark:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.55);color:var(--text-inverse)}

/* ============================================================
   Badge
   ============================================================ */
.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--radius-xs);font:var(--type-eyebrow);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap;border:var(--border-hairline) solid transparent}
.badge-brand{background:var(--surface-brand-quiet);color:var(--brand-press);border-color:var(--green-100)}
.badge-accent{background:var(--accent-tint);color:var(--gold-700);border-color:var(--gold-200)}
.badge-neutral{background:var(--surface-sunken);color:var(--text-body);border-color:var(--border-subtle)}
.badge-onDark{background:rgba(255,255,255,.10);color:var(--text-inverse);border-color:rgba(255,255,255,.18)}
.badge-onDark--accent{background:rgba(254,210,79,.16);color:var(--gold-400);border-color:rgba(254,210,79,.30)}

/* ============================================================
   Section heading
   ============================================================ */
.section-heading{display:flex;flex-direction:column;gap:14px;align-items:flex-start;text-align:left}
.section-heading p{max-width:var(--measure)}

/* ============================================================
   Service card
   ============================================================ */
.service-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;background:var(--surface-card);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--card-pad);text-decoration:none;box-shadow:var(--shadow-sm);transition:var(--transition-surface)}
.service-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:var(--lift-hover)}
.service-card__icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--radius-sm);background:var(--brand-tint);color:var(--text-brand);transition:background-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}
.service-card:hover .service-card__icon{background:var(--brand);color:var(--text-on-brand)}
.service-card h3{font:var(--type-h4);color:var(--text-strong);letter-spacing:var(--tracking-snug)}
.service-card p{font:var(--type-body);color:var(--text-muted)}
.service-card__link{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:6px;font:var(--type-label);color:var(--text-brand)}
.service-card__link .icon{transition:transform var(--dur-base) var(--ease-out)}
.service-card:hover .service-card__link .icon{transform:translateX(3px)}

/* ============================================================
   Stat
   ============================================================ */
.stat{display:flex;flex-direction:column;gap:6px}
.stat__value{font:var(--fw-bold) var(--fs-4xl)/var(--lh-tight) var(--font-display);letter-spacing:var(--tracking-tight);color:var(--text-brand)}
.stat__label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}

/* ============================================================
   Accordion
   ============================================================ */
.accordion{display:flex;flex-direction:column;border-top:var(--border-hairline) solid var(--border-subtle)}
.accordion-item{border-bottom:var(--border-hairline) solid var(--border-subtle)}
.accordion-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:var(--tap-min);padding:18px 2px;background:none;border:0;cursor:pointer;text-align:left;font:var(--type-h4);font-size:var(--fs-base);color:var(--text-strong);transition:color var(--dur-fast) var(--ease-standard)}
.accordion-trigger .icon{transition:transform var(--dur-base) var(--ease-standard)}
.accordion-item[data-open="true"] .accordion-trigger{color:var(--text-brand)}
.accordion-item[data-open="true"] .accordion-trigger .icon{transform:rotate(45deg)}
.accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow) var(--ease-standard)}
.accordion-item[data-open="true"] .accordion-panel{grid-template-rows:1fr}
.accordion-panel-inner{overflow:hidden}
.accordion-panel p{font:var(--type-body);color:var(--text-muted);max-width:var(--measure);padding:0 2px 20px}

/* ============================================================
   Form fields
   ============================================================ */
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font:var(--type-label);color:var(--text-strong)}
.field label .req{color:var(--text-brand)}
.field-control-wrap{position:relative;display:flex;align-items:center}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select{width:100%;height:var(--control-h-md);padding:0 14px;background:var(--surface-card);color:var(--text-strong);font:var(--type-body);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-control);outline:none;transition:var(--transition-control)}
.field input.has-icon{padding-left:42px}
.field select{padding-right:40px;appearance:none;-webkit-appearance:none;cursor:pointer}
.field textarea{width:100%;padding:12px 14px;background:var(--surface-card);color:var(--text-strong);font:var(--type-body);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-control);outline:none;resize:vertical;transition:var(--transition-control)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:var(--ring-focus)}
.field-icon{position:absolute;left:14px;pointer-events:none;color:var(--text-faint)}
.field input:focus ~ .field-icon{color:var(--text-brand)}
.field-select-icon{position:absolute;right:14px;pointer-events:none;color:var(--text-muted)}
.field-hint{font:var(--type-small);font-size:var(--fs-xs);color:var(--text-muted)}

/* ============================================================
   Header
   ============================================================ */
.emergency-strip{background:var(--ink);color:var(--text-inverse);font:var(--type-small);font-size:13px;text-align:center;padding:7px 20px}
.emergency-strip strong{color:var(--gold-500)}
.emergency-strip a{color:inherit;text-decoration:none}

.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:var(--border-hairline) solid var(--border-subtle)}
.site-header__inner{height:var(--header-h);display:flex;align-items:center;gap:24px}
.logo{display:flex;align-items:center;gap:10px}
.logo__mark{height:36px;width:auto;flex:0 0 auto}
.logo__text{font:var(--fw-bold) 22px/1 var(--font-display);letter-spacing:-.02em;color:var(--text-strong)}
.logo__text--brand{color:var(--text-brand)}
.site-footer .logo__mark{filter:brightness(0) invert(1)}
.site-footer .logo__text{color:var(--text-inverse)}
.site-footer .logo__text--brand{color:var(--gold-500)}

.site-nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.site-nav__link{position:relative;font:var(--type-label);font-weight:var(--fw-medium);color:var(--text-body);padding-bottom:4px}
.site-nav__link--active{color:var(--text-strong)}
.site-nav__link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-standard)}
.site-nav__link:hover::after,.site-nav__link--active::after{transform:scaleX(1)}
.site-nav__link:hover{color:var(--text-strong)}

.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 auto;margin-left:auto;background:none;border:0;border-radius:var(--radius-control);cursor:pointer;color:var(--text-strong)}
.nav-toggle:hover{background:var(--surface-sunken)}
.nav-toggle .icon{width:24px;height:24px}
.nav-toggle .icon-close{display:none}
.nav-toggle[aria-expanded="true"] .icon-open{display:none}
.nav-toggle[aria-expanded="true"] .icon-close{display:inline-block}

.mobile-nav{display:none;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--surface-card);border-bottom:var(--border-hairline) solid var(--border-subtle);box-shadow:var(--shadow-md)}
.mobile-nav.is-open{display:flex}
.mobile-nav__link{padding:16px var(--gutter);font:var(--type-label);color:var(--text-body);border-bottom:var(--border-hairline) solid var(--rule-hairline)}
.mobile-nav__link--active{color:var(--text-brand)}
.mobile-nav__cta{margin:20px var(--gutter) 24px}

@media (max-width:760px){
  .site-nav{display:none}
  .site-header__cta{display:none}
  .nav-toggle{display:inline-flex}
}

/* ============================================================
   Hero
   ============================================================ */
.hero{padding:clamp(14px,2vw,26px) 0 20px}
.hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,32px);align-items:start}
@media (min-width:760px){.hero__grid{grid-template-columns:minmax(320px,1.15fr) minmax(300px,1fr);gap:clamp(16px,2.4vw,36px)}}
.hero__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.hero__title{margin:0 0 10px;font:var(--type-hero);letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.hero__lead{margin:0;font:var(--type-lead);color:var(--text-muted);max-width:var(--measure)}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;font:var(--type-small);color:var(--text-muted)}

.dispatch-card{background:var(--surface-dark);border-radius:var(--radius-lg);padding:clamp(16px,1.6vw,22px);box-shadow:var(--shadow-lg)}
.dispatch-card__title{margin:12px 0 0;font:var(--type-h3);color:var(--text-inverse)}
.dispatch-card__row{margin-top:10px;padding-top:10px;border-top:var(--border-hairline) solid var(--border-inverse)}
.dispatch-card__row--first{margin-top:12px}
.dispatch-card__label{font:var(--type-label);color:var(--text-inverse)}
.dispatch-card__label a{color:inherit;text-decoration:none}
.dispatch-card__hint{margin-top:3px;font:var(--type-small);color:var(--text-inverse-muted)}

.hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 24px;background:var(--surface-card);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px 22px;margin-top:clamp(14px,1.8vw,20px)}
@media (max-width:900px){.hero__stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.hero__stats{grid-template-columns:1fr}}
.trust-item{display:flex;align-items:center;gap:12px}
.trust-item__icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--brand-tint);color:var(--text-brand);flex:0 0 auto}
.trust-item__label{font:var(--type-label);color:var(--text-strong)}

/* ============================================================
   Page header (interior pages)
   ============================================================ */
.page-header{background:var(--surface-dark);padding:clamp(56px,7vw,88px) 0 clamp(44px,5vw,64px)}
.page-header .alb-eyebrow{color:var(--gold-500)}
.page-header h1{color:var(--text-inverse);font:var(--type-section)}
.page-header p{margin-top:14px;max-width:var(--measure);font:var(--type-lead);color:var(--text-inverse-muted)}

/* ============================================================
   Sections
   ============================================================ */
.section{padding-block:var(--section-y)}
.section--card{background:var(--surface-card);border-top:var(--border-hairline) solid var(--border-subtle);border-bottom:var(--border-hairline) solid var(--border-subtle)}
.section--sunken{background:var(--surface-sunken);border-top:var(--border-hairline) solid var(--border-subtle)}

.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,2vw,28px);margin-top:48px}
.services-grid--2col{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.services-grid--2col{grid-template-columns:1fr}}

/* ============================================================
   Service detail (services page)
   ============================================================ */
.service-detail-list{margin-top:8px}
.service-detail{display:grid;grid-template-columns:104px 1fr;gap:clamp(20px,3.5vw,40px);align-items:start;padding-block:clamp(32px,4.5vw,48px)}
.service-detail:not(:last-child){border-bottom:var(--border-hairline) solid var(--border-subtle)}
.service-detail__icon{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:var(--radius-lg);background:var(--brand-tint);color:var(--text-brand)}
.service-detail__icon .icon{width:38px;height:38px}
.service-detail__body h2{font:var(--type-h3);color:var(--text-strong)}
.service-detail__lead{margin-top:10px;font:var(--type-lead);color:var(--text-muted);max-width:var(--measure)}
.service-detail__list{margin:20px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px}
.service-detail__list li{display:flex;align-items:flex-start;gap:10px;font:var(--type-small);color:var(--text-body)}
.service-detail__list li .icon{margin-top:3px;color:var(--text-brand);width:16px;height:16px;flex:0 0 auto}
.service-detail__cta{margin-top:24px}
@media (max-width:600px){
  .service-detail{grid-template-columns:1fr}
  .service-detail__icon{width:60px;height:60px}
  .service-detail__icon .icon{width:28px;height:28px}
}

.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px 32px;margin-top:48px}
.why-grid__title{font:var(--type-h4);color:var(--text-strong)}
.why-grid__body{margin:8px 0 0;font:var(--type-small);color:var(--text-muted)}

.faq-wrap{max-width:820px;margin-top:clamp(56px,7vw,104px)}
.faq-wrap .accordion{margin-top:32px}

.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(16px,2vw,28px);align-items:start;margin-top:48px}
.contact-form{background:var(--surface-card);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:clamp(24px,2.6vw,36px);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.contact-form__actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px}
.contact-form__note{font:var(--type-small);font-size:13px;color:var(--text-muted)}
.contact-form__success{grid-column:1/-1;display:none;align-items:center;gap:10px;padding:14px 16px;background:var(--success-tint);border:var(--border-hairline) solid var(--green-100);border-radius:var(--radius-control);color:var(--success);font:var(--type-label)}
.contact-form__success.is-visible{display:flex}
.contact-form.is-submitted .field,.contact-form.is-submitted .contact-form__actions{display:none}

.contact-info{background:var(--surface-dark);border-radius:var(--radius-md);padding:clamp(24px,2.6vw,32px);display:flex;flex-direction:column;gap:24px}
.contact-info__row{padding-top:24px;border-top:var(--border-hairline) solid var(--border-inverse)}
.contact-info__row--first{padding-top:0;border-top:0}
.contact-info__label{font:var(--type-label);color:var(--text-inverse)}
.contact-info__label a{color:inherit;text-decoration:none}
.contact-info__hint{margin-top:3px;font:var(--type-small);color:var(--text-inverse-muted)}
.contact-info__badges{padding-top:24px;border-top:var(--border-hairline) solid var(--border-inverse);display:flex;flex-wrap:wrap;gap:8px}

/* ============================================================
   Projects
   ============================================================ */
.project-list{border-top:var(--border-hairline) solid var(--border-subtle)}
.project-row{display:grid;grid-template-columns:64px 1fr;gap:24px;align-items:start;padding-block:clamp(28px,3.4vw,40px);border-bottom:var(--border-hairline) solid var(--border-subtle)}
.project-row__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-lg);background:var(--brand-tint);color:var(--text-brand);flex:0 0 auto}
.project-row__icon .icon{width:28px;height:28px}
.project-row__tag{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-brand)}
.project-row__title{margin-top:6px;font:var(--type-h3);color:var(--text-strong)}
.project-row__meta{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 28px}
.project-row__meta-item{display:flex;flex-direction:column;padding-left:24px;border-left:var(--border-hairline) solid var(--border-subtle)}
.project-row__meta-item:first-child{padding-left:0;border-left:0}
.project-row__meta-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-faint)}
.project-row__meta-value{margin-top:5px;font:var(--type-small);color:var(--text-body)}
@media (max-width:640px){
  .project-row{grid-template-columns:1fr}
  .project-row__meta{display:flex;flex-direction:column;gap:0}
  .project-row__meta-item{padding:12px 0 0;border-left:0;border-top:var(--border-hairline) solid var(--border-subtle)}
  .project-row__meta-item:first-child{padding-top:0;border-top:0}
}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{background:var(--surface-dark);color:var(--text-inverse-muted);padding:64px 0 32px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px}
.footer-brand__logo{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.footer-brand p{margin:0;font:var(--type-small);max-width:34ch}
.footer-brand__lic{margin:16px 0 0;font:var(--type-small);font-size:13px}
.footer-col__title{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-inverse);margin-bottom:16px}
.footer-col__links{display:flex;flex-direction:column;gap:12px;font:var(--type-small)}
.footer-col__links a{color:var(--text-inverse-muted)}
.footer-col__links a:hover{color:var(--text-inverse)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:56px;padding-top:24px;border-top:var(--border-hairline) solid var(--border-inverse);font:var(--type-small);font-size:13px}
.footer-bottom__links{display:flex;gap:20px}
.footer-bottom__links a{color:var(--text-inverse-muted)}
.footer-bottom__links a:hover{color:var(--text-inverse)}
