/* ============================================================= Stevenson Mechanical — Page Templates v2.0 External, browser-cacheable stylesheet. Units:rem (1rem = 16px base), em, vh, vw, clamp(). WCAG 2.1 AA contrast ratios enforced throughout. ============================================================= *//* ── CSS Custom Properties ───────────────────────────────── */:root{ --wm-red:#E0314E; --wm-red-dark:#b82840; --wm-coal:#1c1c1c; --wm-charcoal:#2d2d2d; --wm-pale:#f6f6f6; --wm-border:#e2e2e2; --wm-text:#1c1c1c; --wm-text-muted:#555; --wm-text-light:rgba(255, 255, 255, 0.85); --wm-text-light-muted:rgba(255, 255, 255, 0.78);/* WCAG AA on dark bg */ --wm-focus:#4A90D9; --wm-radius:0.1875rem; --wm-radius-lg:0.375rem;}/* ============================================================= THEME INTEGRATION Our plugin uses template_include to load a custom single template that calls get_header() → template → get_footer(), bypassing Divi's .container / #left-area / #sidebar hierarchy entirely. The template renders directly inside #page-container. ============================================================= *//* ── Template wrapper ───────────────────────────────────── */.wm-tmpl{ font-family:inherit; line-height:1.65; color:var(--wm-text); width:100%;}.wm-tmpl *,.wm-tmpl *::before,.wm-tmpl *::after{ box-sizing:border-box; margin:0; padding:0;}.wm-tmpl h1,.wm-tmpl h2,.wm-tmpl h3,.wm-tmpl h4{ font-family:inherit; font-weight:600; line-height:1.2; color:#111;}.wm-tmpl h1{font-size:clamp(2.125rem, 5vw, 3.625rem)}.wm-tmpl h2{font-size:clamp(1.5rem, 3.5vw, 2.375rem)}.wm-tmpl h3{font-size:clamp(1rem, 2vw, 1.25rem)}.wm-tmpl h4{font-size:0.9375rem}.wm-tmpl p{ color:var(--wm-text-muted); line-height:1.75;}.wm-tmpl a{ text-decoration:none; color:inherit;}/* SVG sprite icon sizing */.wm-icon{ width:1rem; height:1rem; flex-shrink:0; vertical-align:middle;}.wm-tmpl img{ display:block; height:100%; object-fit:cover;}/* ── Screen Reader Only ──────────────────────────────────── */.screen-reader-text{ position:absolute; width:0.0625rem; height:0.0625rem; padding:0; margin:-0.0625rem; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0;}/* ── Skip Navigation ─────────────────────────────────────── */.wm-skip-link{ position:absolute; top:-100%; left:1rem; z-index:9999; padding:0.75rem 1.5rem; background:var(--wm-red); color:#fff; font-weight:600; font-size:0.875rem; border-radius:var(--wm-radius); transition:top 0.15s;}.wm-skip-link:focus{ top:0.5rem;}/* ── Layout ──────────────────────────────────────────────── */.wm-container{ max-width:75rem; margin:0 auto; padding:0 1.5rem;}.wm-section-pad{ padding:5rem 1.5rem;}.wm-section-pad-sm{ padding:3.5rem 1.5rem;}.wm-max-760{ max-width:50rem; margin:0 auto;}/* ── Typography helpers ──────────────────────────────────── */.wm-eyebrow{ display:inline-block; font-size:0.6875rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--wm-red); margin-bottom:0.625rem;}.wm-eyebrow-light{ color:rgba(255, 255, 255, 0.78);/* WCAG AA:~6.5:1 on #1c1c1c */}.wm-heading-light{ color:#fff !important;}.wm-text-light{ color:var(--wm-text-light-muted) !important;}.wm-sec-head{ margin-bottom:2.5rem;}.wm-centered{ text-align:center;}.wm-centered p{ max-width:36.25rem; margin:0.75rem auto 0;}/* ── Decorative line ─────────────────────────────────────── */.wm-redline{ width:2.75rem; height:0.1875rem; background:var(--wm-red); margin-top:0.75rem; border-radius:0.125rem;}.wm-rl-center{ margin-left:auto; margin-right:auto;}.wm-redline-light{ background:rgba(255, 255, 255, 0.25);}/* ── Backgrounds ─────────────────────────────────────────── */.wm-bg-pale{background:var(--wm-pale)}.wm-bg-dark{background:var(--wm-coal)}.wm-bg-coal{background:var(--wm-charcoal)}.wm-bg-white{background:#fff}.wm-bg-red{background:var(--wm-red)}/* ============================================================= BUTTONS — WCAG AA contrast on all backgrounds ============================================================= */.wm-btn{ display:inline-flex; align-items:center; gap:0.5rem; font-family:inherit; font-weight:600; font-size:0.875rem; letter-spacing:0.02em; border:none; cursor:pointer; border-radius:var(--wm-radius); transition:background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; padding:0.8125rem 1.625rem; text-decoration:none; line-height:1.3;}/* Primary red button — white on red */.wm-btn-red{ background:var(--wm-red); color:#fff !important; box-shadow:0 0.25rem 1rem rgba(224, 49, 78, 0.28);}.wm-btn-red .wm-icon,.wm-btn-red svg{ color:#fff !important; stroke:#fff !important;}.wm-btn-red:hover{ background:var(--wm-red-dark); transform:translateY(-0.125rem); box-shadow:0 0.4375rem 1.375rem rgba(224, 49, 78, 0.36); color:#fff !important;}/* * SECONDARY BUTTON — the contrast fix. * Was:rgba(255,255,255,.1) bg with white text = invisible. * Now:solid white with dark text = 15.4:1 contrast ratio. */.wm-btn-secondary{ background:#fff; color:var(--wm-coal); border:0.125rem solid #fff; font-weight:700;}.wm-btn-secondary:hover{ background:transparent; color:#fff; border-color:#fff; transform:translateY(-0.125rem);}/* Secondary on red backgrounds — dark button */.wm-btn-secondary-light{ background:#fff; color:var(--wm-red); border:0.125rem solid #fff; font-weight:700;}.wm-btn-secondary-light:hover{ background:rgba(255, 255, 255, 0.9); transform:translateY(-0.125rem);}/* Outline button for light backgrounds */.wm-btn-outline{ background:transparent; color:var(--wm-red); border:0.125rem solid var(--wm-red);}.wm-btn-outline:hover{ background:var(--wm-red); color:#fff;}/* Black button (Template 3 CTA) */.wm-btn-blk{ background:#111; color:#fff;}.wm-btn-blk:hover{ background:#000; transform:translateY(-0.125rem); color:#fff;}/* ============================================================= FOCUS STYLES — visible for keyboard, hidden for mouse ============================================================= */.wm-tmpl *:focus-visible{ outline:0.1875rem solid var(--wm-focus); outline-offset:0.125rem;}.wm-tmpl a:focus-visible,.wm-tmpl button:focus-visible{ outline:0.1875rem solid var(--wm-focus); outline-offset:0.125rem;}/* High contrast focus ring on dark backgrounds */.wm-bg-dark *:focus-visible,.wm-bg-coal *:focus-visible,.wm-proc-dark *:focus-visible,.wm-proc-red *:focus-visible,.wm-cta2-dark *:focus-visible,.wm-t3-cta *:focus-visible{ outline-color:#fff;}/* ============================================================= TRUST BAR ============================================================= */.wm-trust-bar{ background:var(--wm-pale); border-bottom:0.0625rem solid var(--wm-border); padding:0 1.5rem;}.wm-trust-inner{ max-width:68.75rem; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:1.25rem; flex-wrap:wrap; padding:1rem 0;}.wm-ti{ display:flex; align-items:center; gap:0.5rem; font-size:0.8125rem; font-weight:600; color:#111; white-space:nowrap;}.wm-ti svg,.wm-ti .wm-icon{color:var(--wm-red);stroke:var(--wm-red)}/* ============================================================= CHECKLIST ============================================================= */.wm-checklist{ list-style:none; margin:1.125rem 0;}.wm-checklist li{ display:flex; align-items:flex-start; gap:0.5625rem; font-size:0.9375rem; color:var(--wm-text-muted); margin-bottom:0.5625rem;}.wm-checklist li::before{ content:""; display:block; flex-shrink:0; width:1.0625rem; height:1.0625rem; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0314E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center/contain; margin-top:0.1875rem;}/* ============================================================= HERO SHARED ============================================================= */.wm-hero-btns{ display:flex; gap:0.75rem; flex-wrap:wrap; margin-top:1.5rem;}.wm-hero-btns-center{ justify-content:center;}.wm-hero-badge{ display:inline-flex; align-items:center; gap:0.4375rem; font-size:0.75rem; font-weight:600; color:rgba(255, 255, 255, 0.82);/* WCAG AA */ margin-bottom:0.875rem;}.wm-hero-badge svg{stroke:var(--wm-red)}/* ============================================================= GMB BOX ============================================================= *//* Default:inherit alignment from parent. Centered variant used in T3 hero. */.wm-gmb-box{background:transparent;border:none;padding:1rem 0;text-align:inherit;}.wm-t1-hero-text .wm-gmb-box,.wm-t2-hero-text .wm-gmb-box{padding:0;margin:0.5rem 0 1.125rem;}.wm-gmb-center{ text-align:center;}/* GMB Review Badge — Google G + rating + stars + count */a.wm-gmb-badge,div.wm-gmb-badge{ display:inline-flex; align-items:center; gap:0.5rem; padding:0.625rem 1.25rem; background:rgba(255, 255, 255, 0.1); border:0.0625rem solid rgba(255, 255, 255, 0.2); border-radius:2rem; text-decoration:none; color:inherit; transition:background 0.2s, border-color 0.2s; margin-bottom:0.75rem;}a.wm-gmb-badge:hover{ background:rgba(255, 255, 255, 0.18); border-color:rgba(255, 255, 255, 0.35);}.wm-google-g{ width:1.25rem; height:1.25rem; flex-shrink:0;}.wm-gmb-rating{ font-size:1rem; font-weight:700; color:#fff;}.wm-gmb-stars-row{ display:inline-flex; align-items:center; gap:0.0625rem;}.wm-gmb-stars-row .wm-icon{ width:0.875rem; height:0.875rem; color:#fbbf24; fill:#fbbf24;}.wm-gmb-count{ font-size:0.75rem; font-weight:600; color:rgba(255, 255, 255, 0.78); letter-spacing:0.02em;}a.wm-gmb-badge-dark,div.wm-gmb-badge-dark{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.12);}a.wm-gmb-badge-dark:hover{background:rgba(0,0,0,0.08);border-color:rgba(0,0,0,0.22);}.wm-gmb-badge-dark .wm-gmb-rating{color:#111;}.wm-gmb-badge-dark .wm-gmb-count{color:#555;}/* ============================================================= FEATURED REVIEWS SECTION ============================================================= */.wm-reviews-section{ background:var(--wm-pale);}.wm-reviews-summary{ display:flex; align-items:center; justify-content:center; gap:0.5rem; margin-top:1rem; flex-wrap:wrap;}.wm-reviews-summary .wm-google-g{ width:1.5rem; height:1.5rem;}.wm-reviews-summary-rating{ font-size:1.25rem; font-weight:700; color:var(--wm-text);}.wm-reviews-summary-stars{ display:inline-flex; align-items:center; gap:0.0625rem;}.wm-reviews-summary-stars .wm-icon{ width:1rem; height:1rem; color:#fbbf24; fill:#fbbf24;}.wm-reviews-summary-count{ font-size:0.8125rem; color:var(--wm-text-muted);}/* Review cards grid */.wm-reviews-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.25rem; margin-top:2rem;}.wm-review-card{ width:calc(33.333% - 0.875rem);}.wm-review-card{ background:#fff; border:0.0625rem solid var(--wm-border); border-radius:var(--wm-radius-lg); padding:1.5rem; transition:box-shadow 0.2s;}.wm-review-card:hover{ box-shadow:0 0.25rem 1.25rem rgba(0, 0, 0, 0.08);}/* Card header:stacked — avatar, stars, name, Google G top-right */.wm-review-header{ display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:1rem;}.wm-review-avatar{ width:2rem; height:2rem; border-radius:50%; object-fit:cover; flex-shrink:0;}.wm-review-avatar-initials{ display:flex; align-items:center; justify-content:center; background:var(--wm-red); color:#fff; font-size:0.75rem; font-weight:700;}.wm-review-meta{ flex:1; min-width:0; display:flex; flex-direction:column; gap:0.125rem;}.wm-review-name{ display:block; font-size:0.8125rem; color:var(--wm-text); line-height:1.3;}.wm-review-stars{ display:flex; gap:0.0625rem;}.wm-review-stars .wm-icon{ width:0.75rem; height:0.75rem; color:#fbbf24; fill:#fbbf24;}/* Google G floated top-right of card */.wm-review-header .wm-google-g{ width:1.125rem; height:1.125rem; flex-shrink:0; margin-left:auto;}.wm-review-text{ font-size:0.875rem; line-height:1.7; color:var(--wm-text-muted); margin:0;}/* CTA to see all on Google */.wm-reviews-cta{ text-align:center; margin-top:2rem;}.wm-reviews-cta .wm-btn{ gap:0.5rem;}.wm-reviews-cta .wm-google-g{ width:1rem; height:1rem;}/* Responsive:2 columns on tablet, 1 on mobile */@media (max-width:53.75em){ .wm-review-card{width:calc(50% - 0.625rem)}}@media (max-width:36.25em){ .wm-review-card{width:100%}}.wm-gmb-label{ font-size:0.625rem; font-weight:700; color:rgba(255, 255, 255, 0.7);/* WCAG AA */ letter-spacing:0.125em; text-transform:uppercase; margin-bottom:0.625rem;}.wm-gmb-center{ max-width:22.5rem; margin-left:auto; margin-right:auto;}/* ============================================================= INTERNAL LINKS ============================================================= */.wm-slink{ display:flex; align-items:center; justify-content:space-between; padding:0.9375rem 1.125rem; background:#fff; border:0.0625rem solid var(--wm-border); border-left:0.1875rem solid transparent; font-size:0.875rem; font-weight:600; color:var(--wm-text); transition:border-color 0.2s, background 0.2s, color 0.2s;}.wm-slink:hover{ border-left-color:var(--wm-red); background:#fceaed; color:var(--wm-red);}.wm-slink svg{ stroke:#888; transition:stroke 0.2s, transform 0.2s; flex-shrink:0;}.wm-slink:hover svg{ stroke:var(--wm-red); transform:translateX(0.1875rem);}.wm-links-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0.625rem;}/* ============================================================= REVIEWS ============================================================= */.wm-rev-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem;}.wm-rc{ padding:1.5rem; border:0.0625rem solid var(--wm-border); border-top:0.1875rem solid var(--wm-red); border-radius:0.25rem; background:#fff;}.wm-stars{ color:var(--wm-red); font-size:0.8125rem; letter-spacing:0.125em; margin-bottom:0.625rem;}.wm-rc-txt{ font-size:0.875rem; color:var(--wm-text-muted); font-style:italic; line-height:1.7; margin-bottom:0.75rem;}.wm-rc-auth{ font-size:0.8125rem; font-weight:600; color:#111;}/* ============================================================= PROCESS STEPS (shared) ============================================================= */.wm-proc-steps{ display:grid; grid-template-columns:repeat(5, 1fr); gap:1rem; position:relative; list-style:none;}.wm-proc-red{background:var(--wm-red);padding:5rem 1.5rem}.wm-proc-dark{background:var(--wm-coal);padding:5rem 1.5rem}.wm-pstep{text-align:center}.wm-pnum{ width:3.25rem; height:3.25rem; background:rgba(255, 255, 255, 0.12); border:0.125rem solid rgba(255, 255, 255, 0.3); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.125rem; font-weight:600; color:#fff; margin:0 auto 1rem;}.wm-proc-red .wm-pnum{ background:#fff; color:var(--wm-red); border:none;}.wm-pstep h3{ color:#fff; font-size:0.8125rem; margin-bottom:0.375rem;}.wm-pstep p{ color:rgba(255, 255, 255, 0.92);/* WCAG AA:~5.0:1 on red bg */ font-size:0.75rem;}/* ============================================================= FAQ ============================================================= */.wm-faq-item{ border:0.0625rem solid var(--wm-border); border-radius:var(--wm-radius); margin-bottom:0.5rem; overflow:hidden; background:#fff;}.wm-faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:0.75rem; padding:1rem 1.25rem; background:none; border:none; cursor:pointer; text-align:left; font-size:0.9375rem; font-weight:600; color:#111; font-family:inherit;}.wm-faq-q:hover{color:var(--wm-red)}.wm-faq-q svg,.wm-faq-q .wm-icon{ flex-shrink:0; color:var(--wm-red); stroke:var(--wm-red); transition:transform 0.25s;}.wm-faq-item.wm-open .wm-faq-q svg{ transform:rotate(45deg);}/* FAQ answers:hidden by default, shown when opened */.wm-faq-a{ padding:0 1.25rem 1rem; font-size:0.90625rem; color:var(--wm-text-muted); line-height:1.75; display:none;}.wm-faq-item.wm-open .wm-faq-a{ display:block;}.wm-faq-grid{ max-width:47.5rem; margin:0 auto;}.wm-faq-cols-2{ max-width:68.75rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start;}/* ============================================================= CTA 2 (shared) ============================================================= */.wm-cta2{ text-align:center; overflow:hidden; position:relative;}.wm-cta2-dark{background:var(--wm-coal)}.wm-cta2-red{background:var(--wm-red)}.wm-cta2-inner{ max-width:43.75rem; margin:0 auto; padding:5rem 1.5rem 0; position:relative; z-index:1;}.wm-cta2-inner h2{margin-bottom:0.75rem}.wm-cta2-inner p{margin-bottom:1.75rem}.wm-cta2-btns{ display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap;}.wm-cta2-meta{ margin-top:1.125rem; font-size:0.75rem; color:rgba(255, 255, 255, 0.78);/* WCAG AA */ letter-spacing:0.02em; padding-bottom:5rem;}.wm-cta2-meta strong{ color:rgba(255, 255, 255, 0.88);/* WCAG AA */}/* ============================================================= TEMPLATE 1 — Bold Editorial (Service Page) ============================================================= *//* Hero — uses 100vh minus a small offset so no scrolling needed *//* Hero image as <img> for LCP, SEO, srcset support */.wm-hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; z-index:0;}.wm-t1-hero{ position:relative; min-height:max(37.5rem, 85vh); display:flex; align-items:center; background:var(--wm-coal); overflow:hidden;}.wm-t1-hero-overlay{ position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(17, 17, 17, 0.94) 42%, rgba(17, 17, 17, 0.45) 100%);}.wm-t1-hero-inner{position:relative;z-index:2;max-width:75rem;margin:0 auto;padding:6.25rem 1.5rem 5rem;display:block;width:100%;}.wm-t1-hero-text{max-width:48rem;border-left:0.25rem solid var(--wm-red);padding-left:1.625rem;}.wm-t1-hero-text h1{ color:#fff; margin-bottom:1rem;}.wm-t1-hero-text h1 em{ color:var(--wm-red); font-style:normal;}.wm-t1-hero-text p{ color:var(--wm-text-light-muted); font-size:1.0625rem; max-width:32.5rem;}/* Intro */.wm-t1-intro .wm-container{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:3rem;min-height:28.75rem;}.wm-t1-intro-img{position:relative;overflow:hidden;min-height:23.75rem;border-radius:0.5rem;}.wm-t1-intro-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;}.wm-t1-intro-txt{padding:1.5rem 0;align-self:center;}/* Service cards */.wm-t1-cards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0.0625rem; background:var(--wm-border); max-width:75rem; margin:0 auto; width:100%;}.wm-t1-card{ background:#fff; padding:1.875rem 1.625rem; border-bottom:0.1875rem solid transparent; transition:border-color 0.25s, box-shadow 0.25s;}.wm-t1-card:hover{ border-bottom-color:var(--wm-red); box-shadow:0 -0.25rem 1.25rem rgba(0, 0, 0, 0.06);}.wm-t1-card-num{ font-size:2.5rem; font-weight:600; color:#f8d4d9; line-height:1; margin-bottom:0.75rem;}.wm-t1-card h3{ font-size:0.9375rem; margin-bottom:0.4375rem;}.wm-t1-card p{ font-size:0.8125rem; color:#888;}/* Why grid */.wm-t1-why-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.25rem;}.wm-t1-wcard{ background:rgba(255, 255, 255, 0.06); border:0.0625rem solid rgba(255, 255, 255, 0.1); padding:1.625rem 1.25rem; border-top:0.125rem solid var(--wm-red);}.wm-t1-wcard svg,.wm-t1-wcard .wm-icon{ width:1.625rem; height:1.625rem; color:#fff; stroke:#fff; margin-bottom:0.75rem; display:block;}.wm-t1-wcard h3{ color:#fff; font-size:0.875rem; margin-bottom:0.4375rem;}.wm-t1-wcard p{ color:rgba(255, 255, 255, 0.78);/* WCAG AA */ font-size:0.8125rem;}/* ============================================================= TEMPLATE 2 — Split + Community (Location Page) ============================================================= *//* Hero split */.wm-t2-hero{ display:grid; grid-template-columns:1fr 1fr; min-height:max(37.5rem, 85vh);}.wm-t2-hero-left{ background:var(--wm-coal); display:flex; align-items:center; padding:5rem 3.5rem;}.wm-t2-hero-right{ position:relative; overflow:hidden; min-height:17.5rem;}.wm-t2-hero-text h1{ color:#fff; margin:0.625rem 0 1rem;}.wm-t2-hero-text h1 em{ color:var(--wm-red); font-style:normal;}.wm-t2-hero-text p{ color:var(--wm-text-light-muted); font-size:1rem; max-width:26.25rem;}.wm-t2-loc{ display:flex; align-items:center; gap:0.4375rem; font-size:0.75rem; font-weight:600; color:rgba(255, 255, 255, 0.78);/* WCAG AA */}.wm-t2-loc svg{stroke:var(--wm-red)}/* Stats bar */.wm-t2-stats{ background:var(--wm-charcoal); padding:0 1.5rem;}.wm-t2-stats-inner{ max-width:75rem; margin:0 auto; display:grid; grid-template-columns:repeat(4, 1fr);}.wm-t2-stat{ padding:1.75rem 1.25rem; border-right:0.0625rem solid rgba(255, 255, 255, 0.08); text-align:center;}.wm-t2-stat:last-child{border-right:none}.wm-t2-snum{ font-size:2.25rem; font-weight:600; color:var(--wm-red); line-height:1; margin-bottom:0.3125rem;}.wm-t2-slbl{ font-size:0.8125rem; color:rgba(255, 255, 255, 0.78);/* WCAG AA */}/* Intro row */.wm-t2-row{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:26.25rem;}.wm-t2-row-img{ background-size:cover; background-position:center; min-height:20rem; opacity:0.4;}.wm-t2-row-txt{ padding:3.5rem 3.25rem; background:#fff; display:flex; flex-direction:column; justify-content:center;}/* Service cards */.wm-t2-scards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem;}.wm-t2-scard{ background:#fff; border:0.0625rem solid var(--wm-border); border-left:0.25rem solid var(--wm-red); padding:1.5rem 1.25rem; transition:box-shadow 0.2s, transform 0.2s;}.wm-t2-scard:hover{ box-shadow:0 0.25rem 1.375rem rgba(0, 0, 0, 0.08); transform:translateX(0.1875rem);}.wm-t2-scard h3{ font-size:0.9375rem; margin-bottom:0.4375rem;}.wm-t2-scard p{ font-size:0.8125rem; color:#888;}/* Timeline */.wm-t2-timeline{ max-width:38.75rem; margin:0 auto; position:relative;}.wm-t2-timeline::before{ content:""; position:absolute; left:1.6875rem; top:0; bottom:0; width:0.125rem; background:rgba(255, 255, 255, 0.1);}.wm-t2-tstep{ display:flex; gap:1.5rem; align-items:flex-start; margin-bottom:2rem; position:relative; z-index:1;}.wm-t2-tstep:last-child{margin-bottom:0}.wm-t2-tnum{ width:3.375rem; height:3.375rem; flex-shrink:0; background:var(--wm-red); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.0625rem; font-weight:600;}.wm-t2-tcontent{padding-top:0.625rem}.wm-t2-tcontent h3,.wm-t2-tcontent h4{ color:#fff; font-size:0.875rem; margin-bottom:0.375rem;}.wm-t2-tcontent p{ color:rgba(255, 255, 255, 0.78);/* WCAG AA */ font-size:0.8125rem;}/* Why grid */.wm-t2-why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; max-width:53.75rem; margin:0 auto;}.wm-t2-wrow{ display:flex; gap:1.125rem; align-items:flex-start; background:#fff; padding:1.5rem; border:0.0625rem solid var(--wm-border); border-radius:0.25rem;}.wm-t2-wicon{ width:2.75rem; height:2.75rem; flex-shrink:0; background:#fceaed; border-radius:50%; display:flex; align-items:center; justify-content:center;}.wm-t2-wicon svg,.wm-t2-wicon .wm-icon{ width:1.25rem; height:1.25rem; color:var(--wm-red); stroke:var(--wm-red);}.wm-t2-wrow h3{ font-size:0.875rem; margin-bottom:0.375rem;}.wm-t2-wrow p{ font-size:0.8125rem; color:#888;}/* Community tags */.wm-comm-tags{ display:flex; flex-wrap:wrap; gap:0.5625rem; margin-top:0.5rem;}.wm-ctag{ background:#fff; border:0.0625rem solid var(--wm-border); border-radius:var(--wm-radius); padding:0.4375rem 0.875rem; font-size:0.8125rem; font-weight:600; color:var(--wm-text);}.wm-ctag-main{ background:#fceaed; border-color:rgba(224, 49, 78, 0.25); color:var(--wm-red);}/* CTA 2 split */.wm-t2-cta-section{ position:relative; overflow:hidden; background:var(--wm-coal); background-size:cover; background-position:center;}.wm-t2-cta-overlay{ position:absolute; inset:0; background:rgba(17, 17, 17, 0.87); z-index:0;}.wm-t2-cta-inner{ position:relative; z-index:1; max-width:75rem; margin:0 auto; padding:5rem 1.5rem; display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center;}.wm-t2-cta-inner h2{margin-bottom:0.75rem}.wm-t2-cta-inner p{margin-bottom:1.5rem}.wm-t2-cta-right{text-align:right}.wm-t2-phone{ font-size:clamp(1.625rem, 4vw, 2.5rem); font-weight:600; color:#fff; margin-bottom:0.375rem;}.wm-t2-hours{ font-size:0.8125rem; color:rgba(255, 255, 255, 0.78);/* WCAG AA */}/* ============================================================= TEMPLATE 3 — Precision Conversion (Service + Location) ============================================================= *//* Hero centered */.wm-t3-hero{ position:relative; min-height:max(42.5rem, 90vh); display:flex; align-items:center; justify-content:center; text-align:center; background:var(--wm-coal); overflow:hidden;}.wm-t3-hero-grad{ position:absolute; inset:0; z-index:1; background:linear-gradient(to bottom, rgba(17, 17, 17, 0.82) 0%, rgba(17, 17, 17, 0.6) 55%, rgba(17, 17, 17, 0.92) 100%);}.wm-t3-hero-inner{ position:relative; z-index:2; max-width:48.75rem; padding:6.25rem 1.5rem 5rem; margin:0 auto;}.wm-t3-hero-inner h1{ color:#fff; margin:0.25rem 0 1rem;}.wm-t3-hero-inner h1 em{ color:var(--wm-red); font-style:normal;}.wm-t3-hero-inner p{ color:var(--wm-text-light-muted); font-size:1.125rem; max-width:37.5rem; margin:0 auto;}/* Trust pills */.wm-t3-pills{ display:flex; gap:0.625rem; justify-content:center; flex-wrap:wrap; margin-top:1.75rem; list-style:none;}.wm-t3-pill{ background:rgba(255, 255, 255, 0.08); border:0.0625rem solid rgba(255, 255, 255, 0.15); border-radius:1.25rem; padding:0.4375rem 0.875rem; font-size:0.75rem; font-weight:600; color:rgba(255, 255, 255, 0.7); display:inline-flex; align-items:center; gap:0.3125rem;}.wm-t3-pill svg{ stroke:var(--wm-red); flex-shrink:0; width:0.75rem; height:0.75rem;}/* Intro */.wm-t3-intro{ background:#fff; padding:5rem 1.5rem;}.wm-t3-intro-grid{ max-width:75rem; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center;}.wm-t3-intro-img{ height:31.25rem; background-size:cover; background-position:center; border-radius:0.25rem; opacity:0.4;}.wm-t3-intro-badge{ position:absolute; bottom:1.25rem; left:1.25rem; background:var(--wm-red); color:#fff; padding:0.875rem 1.125rem; border-radius:var(--wm-radius);}.wm-t3-badge-num{ font-size:1.75rem; font-weight:600; line-height:1;}.wm-t3-badge-lbl{ font-size:0.75rem; opacity:0.85; margin-top:0.125rem;}.wm-t3-intro-txt h2{margin-bottom:0.625rem}.wm-t3-intro-txt p{margin-bottom:0.875rem}/* Service list */.wm-t3-svc-list{ max-width:75rem; margin:0 auto; padding:0 1.5rem; display:grid; grid-template-columns:1fr 1fr; gap:0.125rem; background:var(--wm-border); border:0.0625rem solid var(--wm-border); list-style:none;}.wm-t3-svc{ background:#fff; padding:2.125rem 1.875rem; display:flex; gap:1.25rem; align-items:flex-start; transition:background 0.2s;}.wm-t3-svc:hover{background:#fceaed}.wm-t3-svc-n{ font-size:2.75rem; font-weight:600; color:#f8d4d9; line-height:1; flex-shrink:0; min-width:3.375rem; transition:color 0.2s;}.wm-t3-svc:hover .wm-t3-svc-n{ color:rgba(224, 49, 78, 0.25);}.wm-t3-svc h3{ font-size:1rem; margin-bottom:0.4375rem;}.wm-t3-svc p{ font-size:0.8125rem; color:#888;}/* Why grid */.wm-t3-why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0.1875rem; background:var(--wm-border); border:0.0625rem solid var(--wm-border);}.wm-t3-wblk{ background:#fff; padding:2.25rem 2rem; transition:background 0.2s;}.wm-t3-wblk:hover{background:var(--wm-pale)}.wm-t3-wblk-hd{ display:flex; align-items:center; gap:0.875rem; margin-bottom:0.75rem;}.wm-t3-wicon{ width:2.75rem; height:2.75rem; flex-shrink:0; background:var(--wm-red); border-radius:var(--wm-radius); display:flex; align-items:center; justify-content:center;}.wm-t3-wicon svg,.wm-t3-wicon .wm-icon{ width:1.375rem; height:1.375rem; color:#fff; stroke:#fff;}.wm-t3-wblk h3{font-size:1rem}.wm-t3-wblk p{font-size:0.875rem;color:var(--wm-text-muted)}/* Links 2-column */.wm-t3-links-cols{ display:grid; grid-template-columns:1fr 1fr; gap:2.75rem; max-width:75rem; margin:0 auto;}.wm-t3-links-h{ font-size:1rem; font-weight:600; margin-bottom:1rem; padding-bottom:0.75rem; border-bottom:0.125rem solid var(--wm-red); display:block; width:fit-content;}/* Reviews (T3 dark variant) */.wm-t3-rc{ padding:1.5rem; border:0.0625rem solid rgba(255, 255, 255, 0.1); border-top:0.1875rem solid var(--wm-red); border-radius:0.25rem;}.wm-t3-rc-txt{ font-size:0.875rem; color:rgba(255, 255, 255, 0.78);/* WCAG AA */ font-style:italic; line-height:1.7; margin-bottom:0.75rem;}.wm-t3-rc-auth{ font-size:0.8125rem; font-weight:600; color:rgba(255, 255, 255, 0.85);}/* CTA red */.wm-t3-cta{ background:var(--wm-red); padding:5rem 1.5rem; text-align:center; position:relative; overflow:hidden;}.wm-t3-cta-inner{ max-width:43.75rem; margin:0 auto; position:relative; z-index:1;}.wm-t3-cta-inner h2{margin-bottom:0.625rem}.wm-t3-cta-inner p{margin-bottom:1.5rem}.wm-t3-cta-phone{ font-size:clamp(2rem, 5vw, 3.25rem); font-weight:600; color:#fff; margin-bottom:0.75rem; letter-spacing:-0.0625rem;}.wm-t3-cta .wm-cta2-meta{ padding-bottom:0; margin-top:1.125rem;}/* ============================================================= COMMUNITY CARDS ============================================================= */.wm-community-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.25rem; margin-top:2rem;}.wm-community-card{ display:flex; align-items:stretch; background:#fff; border:0.0625rem solid var(--wm-border); border-radius:var(--wm-radius-lg); overflow:hidden; text-decoration:none; color:inherit; position:relative; min-height:10rem; transition:box-shadow 0.25s, transform 0.25s;}.wm-community-card:hover{ box-shadow:0 0.5rem 2rem rgba(0, 0, 0, 0.1); transform:translateY(-0.125rem);}/* Text side (left) */.wm-cc-text{ flex:1; padding:1.5rem 1.75rem; display:flex; flex-direction:column; justify-content:center; z-index:1;}.wm-cc-title{ font-size:1.25rem; font-weight:700; color:var(--wm-text); margin-bottom:0.375rem; line-height:1.3;}.wm-cc-tagline{ font-size:0.875rem; color:var(--wm-text-muted); line-height:1.5; margin-bottom:0.5rem;}.wm-cc-count{ display:inline-block; font-size:0.75rem; font-weight:600; color:var(--wm-red); letter-spacing:0.02em; margin-top:auto;}/* Image side (right) with fade to white */.wm-cc-image{ width:45%; flex-shrink:0; position:relative; overflow:hidden;}.wm-cc-image::before{ content:""; position:absolute; inset:0; background:linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 40%); z-index:1;}.wm-cc-image img{ width:100%; height:100%; object-fit:cover; display:block;}/* Hover overlay with "Visit" button */.wm-cc-hover{ position:absolute; top:0; right:0; width:45%; height:100%; display:flex; align-items:center; justify-content:center; background:rgba(0, 0, 0, 0.55); opacity:0; transition:opacity 0.25s; z-index:2;}.wm-community-card:hover .wm-cc-hover{ opacity:1;}.wm-cc-hover .wm-btn{ pointer-events:none; font-size:0.8125rem; padding:0.625rem 1.25rem;}/* Cards without images — hide the image/hover areas */.wm-community-card:not(:has(.wm-cc-image)) .wm-cc-hover{ display:none;}.wm-community-card:not(:has(.wm-cc-image)) .wm-cc-text{ width:100%;}/* ============================================================= RESPONSIVE ============================================================= */@media (max-width:53.75em){ /* ~860px */ .wm-t1-hero-inner, .wm-t2-hero, .wm-t2-row, .wm-t3-intro-grid{ grid-template-columns:1fr;} .wm-t1-intro .wm-container, .wm-t2-cta-inner{ grid-template-columns:1fr; gap:2rem;} .wm-t1-cards, .wm-t2-scards, .wm-rev-grid, .wm-t1-why-grid, .wm-t2-stats-inner{ grid-template-columns:repeat(2, 1fr);} .wm-proc-steps, .wm-t3-svc-list{ grid-template-columns:1fr 1fr;} .wm-t2-hero-left{ padding:3.75rem 1.75rem;} .wm-t2-cta-right{ text-align:left;} .wm-links-grid, .wm-faq-cols-2, .wm-t3-links-cols, .wm-t3-why-grid{ grid-template-columns:1fr;} .wm-t1-intro-txt{ padding:1rem 0 0;} .wm-t2-row-txt{ padding:2.5rem 1.5rem;}}@media (max-width:36.25em){ /* ~580px */ .wm-t1-cards, .wm-t2-scards, .wm-rev-grid, .wm-t1-why-grid, .wm-t2-stats-inner, .wm-t2-why-grid{ grid-template-columns:1fr;} .wm-proc-steps, .wm-t3-svc-list{ grid-template-columns:1fr;} .wm-section-pad{ padding:3.5rem 1.25rem;} .wm-community-grid{ grid-template-columns:1fr;} .wm-community-card{ flex-direction:column;} .wm-cc-image{ width:100%; height:10rem;} .wm-cc-image::before{ background:linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0) 40%);} .wm-cc-hover{ width:100%; height:10rem; top:auto; bottom:0;} .wm-links-grid{ grid-template-columns:1fr;} .wm-hero-btns{ flex-direction:column; align-items:stretch;} .wm-hero-btns .wm-btn{ justify-content:center; text-align:center;} /* Stack CTA buttons on mobile */ .wm-cta2-btns{ flex-direction:column; align-items:center;} .wm-cta2-btns .wm-btn{ width:100%; max-width:20rem; justify-content:center;}}/* ============================================================= REDUCED MOTION ============================================================= */@media (prefers-reduced-motion:reduce){ .wm-btn, .wm-t1-card, .wm-t2-scard, .wm-t3-svc, .wm-slink, .wm-t3-wblk, .wm-faq-q svg{ transition:none;}}/* ============================================================= HIGH CONTRAST MODE ============================================================= */@media (forced-colors:active){ .wm-btn{ border:0.125rem solid ButtonText;} .wm-redline{ background:CanvasText;} .wm-faq-q svg{ stroke:CanvasText;}}/* ============================================================= PRINT ============================================================= */@media print{ .wm-tmpl{ color:#000;} .wm-btn{ border:0.0625rem solid #000; box-shadow:none;} .wm-t1-hero, .wm-t2-hero, .wm-t3-hero{ min-height:auto; background:#eee !important;} .wm-t1-hero-overlay, .wm-t3-hero-grad, .wm-t2-cta-overlay{ display:none;}}.wm-breadcrumbs{padding:12px 0;background:#fafafa;border-bottom:1px solid #e5e7eb;font-size:13px}.wm-breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 0}.wm-breadcrumbs li{display:inline-flex;align-items:center}.wm-breadcrumbs a{color:var(--wm-red,#E0314E);text-decoration:none}.wm-breadcrumbs a:hover{text-decoration:underline}.wm-breadcrumbs [aria-current="page"] span{color:#555}.wm-bc-sep{margin:0 10px;color:#bbb}.wm-tmpl-directory .wm-dir-hero{padding:60px 0 32px;text-align:center}.wm-tmpl-directory .wm-dir-hero h1{font-size:clamp(28px,4vw,44px);margin:6px 0 10px}.wm-tmpl-directory .wm-dir-intro{max-width:680px;margin:14px auto 0;color:#555;font-size:16px;line-height:1.55}.wm-dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.wm-dir-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}.wm-dir-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.wm-dir-card-img{width:100%;aspect-ratio:16/9;background-size:cover;background-position:center;background-color:#f3f4f6}.wm-dir-card-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.wm-dir-card-title{font-size:20px;margin:0}.wm-dir-card-excerpt{color:#555;font-size:14px;line-height:1.55;margin:0;flex:1}.wm-dir-card-cta{color:var(--wm-red,#E0314E);font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:4px;margin-top:4px}.wm-scards-auto{display:flex !important;flex-wrap:wrap;justify-content:center;gap:1rem}.wm-scards-auto>.wm-t2-scard{flex:0 1 calc((100% - 2rem)/3);min-width:260px;max-width:100%}@media(max-width:900px){.wm-scards-auto>.wm-t2-scard{flex-basis:calc((100% - 1rem)/2)}}@media(max-width:600px){.wm-scards-auto>.wm-t2-scard{flex-basis:100%}}.wm-t2-scard-link{display:block;text-decoration:none;color:inherit;cursor:pointer}.wm-t2-scard-link:hover{text-decoration:none}.wm-t2-scard-link h3{color:#111}.wm-t2-scard-cta{display:inline-flex;align-items:center;gap:.25rem;margin-top:.75rem;color:var(--wm-red,#E0314E);font-weight:600;font-size:.8125rem}.wm-t2-scard-cta .wm-icon{width:.875rem;height:.875rem}