
/* === Site CSS (merged final) === */
:root{--accent:#2f4f9f;--ink:#1e2230;--bg:#f5f7fb}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial}
h1,h2,h3{margin:.2rem 0 .6rem 0}
h1{font-size:1.9rem} h2{font-size:1.4rem} h3{font-size:1.05rem}
.small{font-size:.95rem;color:#5b6475}

.container{max-width:1160px;margin:0 auto;padding:0 16px}

/* Header / Nav */
.header{background:#394066;color:#fff}
.header .header-inner{max-width:1160px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:56px}
.brand{display:flex;gap:10px;align-items:center;font-weight:700}
.header .nav{display:flex;gap:14px;align-items:center;flex-wrap:nowrap}
.header .nav a{color:#fff;text-decoration:none;padding:6px 4px;line-height:1;display:inline-block}
.header .nav a.active{position:relative}
.header .nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:#fff;border-radius:2px}
.header .nav .nav-quote{white-space:nowrap;padding:.45rem .8rem;border-radius:999px;background:#fff;color:#1e2a55 !important;border:1px solid #fff;font-weight:600}
@media(max-width:1100px){.header .nav{gap:10px}.header .nav a{padding:6px 2px}.brand strong{font-size:.975rem}}
@media(max-width:960px){.header .nav{gap:8px}.header .nav a{font-size:.95rem}.header .nav .nav-quote{padding:.4rem .7rem}}

/* Hero */
.hero{position:relative;border-radius:16px;overflow:hidden;margin:18px auto}
.hero-media img{width:100%;height:420px;object-fit:cover;display:block}
@media(max-width:900px){.hero-media img{height:320px}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.36),rgba(0,0,0,.15))}
.hero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding:0 16px}
.hero h1{font-weight:800;line-height:1.1;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.hero .lead{max-width:980px;margin:.5rem auto 1rem;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.cta-group{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}
.btn{display:inline-block;padding:.5rem .9rem;border-radius:10px;border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn-accent{background:var(--accent);border:1px solid var(--accent);color:#fff}
.btn-outline-brand{background:transparent;border:1.5px solid var(--accent);color:var(--accent)}
.btn-outline-brand:hover{background:var(--accent);color:#fff}
.circle{border-radius:999px}

/* Grids & Cards */
.grid-3,.grid-4,.services-grid,.packages,.blog-grid{display:grid;gap:24px}
.grid-3,.packages,.services-grid,.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.grid-3,.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-3,.grid-4,.blog-grid{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;overflow:hidden}
.grid-3>.card,.grid-4>.card,.blog-grid>.card{display:flex;flex-direction:column;height:100%}
.card .thumb{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#e9eef7}
.card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.card .body,.card>div[style*="padding"]{padding:12px !important;flex:1 1 auto}

.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:#eef1fb;color:#303a64;margin:.2rem .25rem 0 0;font-size:.85rem}

/* Footer */
.footer{background:#1e2230;color:#cfd5e1;padding:18px 0;margin-top:28px}
.footer a{color:#cfd5e1;text-decoration:none}

/* Forms */
form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:640px){form .row{grid-template-columns:1fr}}
label{display:block;font-weight:600;margin:.4rem 0 .25rem}
input,textarea{width:100%;padding:.6rem .7rem;border:1px solid #cfd6ea;border-radius:8px;background:#fff;color:#1b2437}
textarea{min-height:120px;resize:vertical}
.form-help{font-size:.9rem;color:#6a7389;margin-top:.2rem}
.submit-row{margin-top:.8rem}

.hero-media{position:relative;overflow:hidden;border-radius:18px;}
.hero-media picture,
.hero-media img{display:block;width:100%;}


/* Interactive service area map for WA & OR */
.service-map-card{margin-top:1.5rem;margin-bottom:1.5rem;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-shadow:0 8px 24px rgba(0,0,0,.06);}
.service-map-wrapper{background:linear-gradient(135deg,#0f172a,#1e293b);padding:18px;}
.service-map-title{color:#e5e7eb;font-weight:600;margin-bottom:10px;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;}
.service-map-title span{font-size:.8rem;color:#9ca3af;}
.service-map{width:100%;max-width:720px;margin:0 auto;display:block;}
.service-map text{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.service-map .state{cursor:pointer;transition:transform .18s ease,filter .18s ease;}
.service-map .state:hover{transform:translateY(-4px);filter:brightness(1.1);}
.service-map .state-label{pointer-events:none;font-weight:600;font-size:.8rem;fill:#e5e7eb;}
.service-map .state-outline{stroke:#0f172a;stroke-width:1.5;fill:#1d4ed8;opacity:.95;}
.service-map .state-outline.or{fill:#22c55e;}
.service-map-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:.8rem;color:#e5e7eb;}
.service-map-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:rgba(15,23,42,.8);}
.service-map-pill span{width:9px;height:9px;border-radius:999px;display:inline-block;}
.service-map-pill .wa-dot{background:#1d4ed8;}
.service-map-pill .or-dot{background:#22c55e;}

@media (max-width:640px){
  .service-map-wrapper{padding:14px;}
}

/* FIXED: Unified logo sizing */
header .brand img,
header .logo img {
  max-height: 42px;
  height: auto;
  width: auto;
}

@media (max-width: 640px) {
  header .brand img,
  header .logo img {
    max-height: 34px;
  }
}
