/* ===========================================================
   Totally Guttered — design system
   White / dark blue / forest green.
   Photography is real work from the business, not stock.
=========================================================== */

:root{
  --navy: #0F2C4A;
  --navy-deep: #08192B;
  --navy-soft: #37546F;
  --green: #1D6B4F;
  --green-dark: #134E39;
  --green-light: #E4F0EA;
  --paper: #ffffff;
  --paper-dim: #F2F6F8;
  --paper-tint: #E8EEF2;
  --card: #ffffff;
  --line: #D9E2E9;
  --text: #1B2A36;
  --text-dim: #56697A;
  --radius: 4px;
  --radius-lg: 10px;
  --shadow: 0 14px 30px -20px rgba(15,44,74,0.45);
  --shadow-lift: 0 20px 40px -24px rgba(15,44,74,0.5);
  --maxw: 1180px;
  font-size: 17px;
}

*, *::before, *::after{ box-sizing: border-box; }
/* author display rules (e.g. .form-row{display:grid}) otherwise beat the UA [hidden] default */
[hidden]{ display: none !important; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
:focus-visible{
  outline: 2px solid var(--green);
  outline-offset: 3px;
}
body{
  margin:0;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{
  font-family: "Archivo", "Inter", sans-serif;
  color: var(--navy);
  line-height: 1.1;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
}
h1{ font-weight: 800; }
h2{ font-weight: 800; font-size: clamp(1.55rem, 1.2rem + 1.4vw, 2.35rem); }
h3{ font-weight: 700; font-size: 1.25rem; }
p{ margin: 0 0 1em; }
a{ color: var(--green-dark); text-decoration-thickness: 1.5px; }
a:hover{ color: var(--navy); }
img{ max-width:100%; display:block; }
ul{ padding-left: 1.2em; }
.container{ max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
section{ padding: clamp(32px, 4vw, 56px) 0; }
.section-tight{ padding: clamp(20px, 3vw, 36px) 0; }
.section-cta{ padding: clamp(28px, 3.5vw, 48px) 0; }
.section-head{ margin-bottom: 12px; }
.section-follow{ padding-top: 0; }
.section-lead-out{ padding-bottom: clamp(4px, 0.8vw, 10px); }
.section-tight.section-lead-out{ padding-bottom: clamp(4px, 0.8vw, 10px); }
/* Collapse stacked section padding when one block follows another tightly */
.section-lead-out + .section-follow{
  padding-top: 0;
}
.section-alt.section-lead-out + .section-alt.section-follow{
  padding-top: 0;
  padding-bottom: clamp(12px, 2vw, 22px);
}
.section-alt.section-lead-out + .section-follow:not(.section-alt){
  padding-top: clamp(8px, 1.2vw, 14px);
}

.eyebrow{
  display:inline-block; font-family:"Archivo",sans-serif; font-weight:700;
  font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--green-dark); margin-bottom: 0.6em;
}
.lede{ font-size: 1.15rem; color: var(--text-dim); max-width: 62ch; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.narrow{ max-width: 72ch; }
.readable{ max-width: 78ch; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }

/* ---------- Wordmark (the "logo") ---------- */
.wordmark{
  display:inline-flex; flex-direction:column; line-height: 0.86;
  font-family:"Archivo",sans-serif; text-decoration:none; user-select:none;
}
.wordmark span{ display:block; }
.wordmark .w1{
  font-weight: 500; font-size: 0.62em; letter-spacing: 0.24em;
  color: var(--navy-soft); text-transform: uppercase;
}
.wordmark .w2{
  font-weight: 900; font-size: 1.5em; letter-spacing: -0.01em;
  color: var(--navy); position:relative; padding-bottom: 0.22em;
}
.wordmark .w2::after{
  content:""; position:absolute; left:0; bottom:0.06em; height: 4px; width: 100%;
  background: linear-gradient(90deg, var(--green), #4E9B7C 70%, transparent);
  border-radius: 2px;
}
.wordmark .w2::before{
  content:""; position:absolute; right: -2px; bottom:-4px; width:7px; height:7px;
  border-radius: 0 60% 60% 60%; background: var(--green); transform: rotate(45deg);
}
.wordmark.on-dark .w1{ color: #A9C0D2; }
.wordmark.on-dark .w2{ color: #fff; }

/* ---------- Header / nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 40; background: rgba(255,255,255,0.95);
  backdrop-filter: blur(8px); border-bottom: 1px solid var(--line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap: 18px; }
.wordmark{ overflow: hidden; }
@media (max-width: 380px){
  .container{ padding-left: 12px; padding-right: 12px; }
  .site-header .container{ gap: 6px; }
  .wordmark .w2{ font-size: 1.18em; }
  .phone-link{ font-size: 0.86rem; gap: 0; }
  .phone-link svg{ display: none; }
  .nav-toggle{ padding: 8px; margin-right: -4px; }
}
.skip-link{
  position:absolute; left:12px; top:-48px; z-index:80; background:var(--green); color:#fff;
  padding:8px 14px; font-weight:700; text-decoration:none; border-radius: var(--radius);
}
.skip-link:focus{ top:12px; color:#fff; }
.main-nav{ display:flex; align-items:center; gap: 14px; }
.main-nav a{
  color: var(--navy-soft); text-decoration:none; font-weight:600; font-size:0.88rem;
  position:relative; padding: 4px 0; white-space:nowrap;
}
.main-nav a:hover{ color: var(--green-dark); }
.main-nav a.current{ color: var(--green-dark); }
.main-nav a.nav-cta{
  background: var(--green); color:#fff; padding: 8px 14px; border-radius: var(--radius);
  white-space: nowrap;
}
.main-nav a.nav-cta:hover{ background: var(--green-dark); color:#fff; }
.main-nav a.nav-cta.current{ color:#fff; }
.main-nav a.nav-cta.current::after{ display:none; }
.main-nav a.nav-cta-secondary{
  border: 2px solid var(--green); color: var(--green-dark); background: transparent;
  padding: 6px 12px; border-radius: var(--radius); white-space: nowrap;
}
.main-nav a.nav-cta-secondary:hover{ background: var(--green-tint, rgba(46,125,50,.08)); color: var(--green-dark); }
.main-nav a.nav-cta-secondary.current{ color: var(--green-dark); }
.main-nav a.nav-cta-secondary.current::after{ display:none; }
.header-cta{ display:flex; align-items:center; gap:14px; }
.phone-link{
  display:flex; align-items:center; gap:8px; font-family:"Archivo",sans-serif;
  font-weight:800; color: var(--navy); text-decoration:none; font-size:1.02rem; white-space:nowrap;
}
.phone-link svg{ flex:none; color: var(--green); }
.nav-toggle{ display:none; background:none; border:0; padding:12px; cursor:pointer; }
.nav-toggle span{ display:block; width:24px; height:2.5px; background:var(--navy); margin:5px 0; border-radius:2px; }

@media (max-width: 1180px){
  .main-nav{
    position:absolute; top:100%; left:0; right:0; background: var(--paper);
    flex-direction:column; align-items:flex-start; gap:0; border-bottom:1px solid var(--line);
    max-height:0; overflow:hidden; transition: max-height .25s ease;
    z-index: 60; box-shadow: none;
  }
  .main-nav.open{
    max-height:min(90vh, 720px); overflow-y:auto;
    box-shadow: 0 18px 40px rgba(8,25,43,0.22);
  }
  .main-nav a{ width:100%; padding: 14px 24px; border-top:1px solid var(--line); }
  .main-nav a.current::after{ display:none; }
  .main-nav a.nav-cta{ margin: 12px 24px 8px; width: calc(100% - 48px); text-align:center; }
  .main-nav a.nav-cta-secondary{ margin: 0 24px 16px; width: calc(100% - 48px); text-align:center; box-sizing: border-box; }
  .nav-toggle{ display:block; }
  .nav-overlay{
    position:fixed; inset:0; z-index:45;
    background: rgba(8,25,43,0.72);
  }
  .nav-overlay[hidden]{ display:none !important; }
  body.nav-open{ overflow:hidden; }
  body.nav-open .site-header{ z-index: 55; position: relative; }
  body.nav-open #main{
    visibility: hidden;
    pointer-events: none;
  }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:"Archivo",sans-serif; font-weight:700; font-size:0.98rem;
  padding: 14px 26px; border-radius: var(--radius); text-decoration:none;
  border: 2px solid transparent; cursor:pointer; transition: transform .12s ease, background .15s ease;
}
.btn:active{ transform: translateY(1px); }
.btn-primary{ background: var(--green); color:#fff; box-shadow: var(--shadow); }
.btn-primary:hover{ background: var(--green-dark); color:#fff; }
.btn-navy{ background: var(--navy); color:#fff; }
.btn-navy:hover{ background: var(--navy-deep); color:#fff; }
.btn-ghost{ background:transparent; border-color: var(--navy); color: var(--navy); }
.btn-ghost:hover{ background: var(--navy); color:#fff; }
.btn-ghost.on-dark{ border-color:rgba(255,255,255,0.8); color:#fff; }
.btn-ghost.on-dark:hover{ background:#fff; color: var(--navy); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }

/* ---------- Hero (real photo + navy wash) ---------- */
.hero{
  position:relative; background: var(--navy-deep); color:#fff; overflow:hidden;
  padding: clamp(72px, 10vw, 128px) 0;
  min-height: min(68vh, 620px);
  display:flex; align-items:center;
}
.hero-bg{
  position:absolute; inset:0; background-size:cover; background-position:center 38%;
  opacity:0.68;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(105deg, rgba(8,25,43,0.94) 0%, rgba(8,25,43,0.74) 38%, rgba(8,25,43,0.28) 72%, rgba(8,25,43,0.16) 100%);
}
.hero .container{ position:relative; z-index:2; width:100%; }
.hero-copy{ max-width: 36rem; }
.hero h1{ color:#fff; font-size: clamp(2.15rem, 1.55rem + 2.4vw, 3.35rem); }
.hero .lede{ color:#D5E0E9; max-width: 30rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top: 28px; }
.hero-phone-cta{ font-weight:700; }
@media (max-width: 720px){
  /* Phone already in sticky header — avoid stacking a second Call CTA on small screens. */
  .hero-phone-cta{ display:none; }
}
@media (max-width: 640px){
  .hero{ min-height:0; padding: 56px 0 52px; }
  .hero-actions{ width:100%; }
  .hero-actions .btn{ flex:1 1 100%; }
}

/* ---------- Page header with photo ---------- */
.page-header{
  position:relative; background: var(--navy); color:#fff; overflow:hidden;
  padding: clamp(36px,4.5vw,56px) 0;
}
.page-header .hero-bg{ opacity:0.5; }
.page-header::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(95deg, rgba(15,44,74,0.95) 14%, rgba(15,44,74,0.62) 100%);
}
.page-header .container{ position:relative; z-index:2; }
.page-header h1{ color:#fff; max-width: 36rem; }
.page-header .lede{ color:#D5E0E9; max-width: 46rem; }
.page-header .eyebrow{ color:#8FD3B4; }
.page-header .breadcrumb, .page-header .breadcrumb a{ color:#A9C0D2; }
.page-header .breadcrumb a:hover{ color:#fff; }
.page-header .lede a{ color:#fff; }
.phone-nowrap{ white-space: nowrap; }
@media (max-width: 720px){
  .page-header{ padding: 28px 0 26px; }
  .page-header--short{ padding: 20px 0 18px; }
  .page-header--short h1{ font-size: clamp(1.5rem, 6.2vw, 1.85rem); margin-bottom: 6px; }
  .page-header--short .lede{ font-size: 1rem; margin-bottom: 0; line-height: 1.45; }
  .page-header--short .breadcrumb{ margin-bottom: 6px; }
}

/* ---------- Sections / cards ---------- */
.section-alt{ background: var(--paper-dim); }
.section-navy{ background: var(--navy); color:#fff; }
.section-navy h2, .section-navy h3{ color:#fff; }
.section-navy .lede, .section-navy p{ color:#C6D5E0; }
.section-navy .eyebrow{ color:#8FD3B4; }

.grid{ display:grid; gap: 22px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px){ .grid-3{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 640px){ .grid-3, .grid-2{ grid-template-columns: 1fr; } }

.card{
  background: var(--card); border-radius: var(--radius-lg); padding: 26px;
  border: 1px solid var(--line); height:100%;
}
.card h3{ margin-bottom:8px; }
.card p{ color: var(--text-dim); font-size:0.95rem; margin-bottom:10px; }
.card .card-link{ font-weight:700; font-size:0.92rem; }
.icon-badge{
  width:44px; height:44px; border-radius:10px; background: var(--green-light);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
  color: var(--green-dark); font-family:"Archivo",sans-serif; font-weight:800;
}

.split{ display:grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items:center; }
@media (max-width: 880px){ .split{ grid-template-columns:1fr; } }

.figure{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow); }
.figure img{ width:100%; height:auto; }
.figure figcaption{ font-size:0.82rem; color:var(--text-dim); padding:10px 2px 0; }

/* ---------- Work gallery ---------- */
.work-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
@media (max-width: 880px){ .work-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .work-grid{ grid-template-columns: 1fr; } }
.work-item{
  border-radius: var(--radius-lg); overflow:hidden; position:relative;
  aspect-ratio: 4/3; background: var(--paper-tint);
}
.work-item img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.work-item:hover img{ transform: scale(1.04); }

/* ---------- Process steps ---------- */
.steps{ counter-reset: step; display:grid; gap:18px; }
.step{ display:grid; grid-template-columns: 44px 1fr; gap:16px; }
.step .num{
  counter-increment: step; width:44px; height:44px; border-radius:50%;
  background: var(--navy); color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:"Archivo",sans-serif; font-weight:800;
}
.step .num::before{ content: counter(step); }
.step h4{ margin:0 0 4px; font-family:"Archivo",sans-serif; font-weight:800; font-size:1.02rem; color:var(--navy); }
.step p{ margin:0; color:var(--text-dim); font-size:0.94rem; }

/* ---------- Reviews ---------- */
.review-card{ background: var(--card); border-radius: var(--radius-lg); padding:22px; border:1px solid var(--line); }
.review-stars{ color: var(--green); letter-spacing:2px; margin-bottom:8px; font-size:0.95rem; }
.review-quote{ font-size:1.02rem; color: var(--navy); margin-bottom:12px; }
.review-meta{ font-size:0.85rem; color: var(--text-dim); font-weight:600; }
.review-source{ font-size:0.78rem; color:var(--text-dim); }

/* ---------- Contact card ---------- */
.contact-card, .guarantee-badge{
  display:flex; align-items:center; gap:16px; background: var(--card); border:1px solid var(--line);
  border-radius: var(--radius-lg); padding: 20px 24px; min-width:0; max-width:100%;
}
.contact-card .ring, .guarantee-badge .ring{
  flex:none; width:64px; height:64px; border-radius:50%; border:3px solid var(--green);
  display:flex; align-items:center; justify-content:center; font-family:"Archivo",sans-serif;
  font-weight:900; color: var(--green-dark); font-size:1.3rem; text-align:center; line-height:1;
}
.contact-card .ring small, .guarantee-badge .ring small{ display:block; font-size:0.5rem; letter-spacing:0.08em; font-weight:700; color:var(--text-dim); }
.contact-compact{
  margin-top:28px; padding-top:20px; border-top:1px solid var(--line);
  color: var(--text-dim); font-size:0.95rem;
}
.contact-compact p{ margin:0 0 8px; }
.contact-compact strong{ color: var(--navy); }

/* ---------- CTA banner ---------- */
.cta-banner{
  background: linear-gradient(135deg, var(--navy) 0%, var(--green-dark) 130%);
  color:#fff; border-radius: var(--radius-lg); padding: 40px; text-align:center;
}
.cta-banner h2{ color:#fff; }
.cta-banner p{ color: #CFE0D8; max-width:60ch; margin-left:auto; margin-right:auto; }

/* ---------- Forms & wizard ---------- */
.contact-value{ margin:0; font-weight:700; color:var(--navy); font-size:1.05rem; }
.contact-value a{ color:var(--navy); text-decoration:none; }
.contact-value a:hover{ color:var(--green-dark); }
.form-card{
  background: var(--card); border-radius: var(--radius-lg); border:1px solid var(--line);
  padding: clamp(14px, 2.4vw, 24px); box-shadow: var(--shadow); min-width:0; max-width:100%;
}
.form-card fieldset{ margin: 0 0 14px; padding: 0; border: 0; min-width: 0; }
.form-card legend.field-label{ margin-bottom: 8px; }
.form-row{ display:grid; gap: 4px; margin-bottom: 10px; }
.form-row label.field-label, .form-row legend.field-label{ font-weight:700; font-size:0.88rem; color: var(--navy); }
.form-row .hint{ font-size:0.78rem; color: var(--text-dim); margin:0; }
.field-error{
  margin: 2px 0 0; color:#A8342A; font-size:0.8rem; font-weight:600;
}
[aria-invalid="true"]{
  border-color:#A8342A !important;
  outline-color:#A8342A;
}
.form-row input[type=text], .form-row input[type=tel], .form-row input[type=email],
.form-row input[type=date], .form-row input[type=file],
.form-row select, .form-row textarea{
  font: inherit; padding: 9px 12px; border:1px solid var(--line); border-radius: var(--radius);
  background: var(--paper); color:var(--text); width:100%; max-width:100%; box-sizing:border-box;
  min-height: 44px;
}
.form-row textarea{ min-height: 96px; padding-top: 10px; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ outline:2px solid var(--green); outline-offset:1px; }
.form-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
@media (max-width:640px){ .form-grid-2{ grid-template-columns:1fr; } }

.chip-group{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{
  position:relative;
  border:1px solid var(--line); background:var(--paper); border-radius:999px; padding:9px 16px;
  font-size:0.88rem; font-weight:600; cursor:pointer; color:var(--navy); transition: all .15s ease;
}
.chip input{ position:absolute; opacity:0; pointer-events:none; }
.chip:hover{ border-color: var(--green); }
.chip:has(input:checked){ background: var(--green); border-color:var(--green); color:#fff; }
.chip:focus-within{ outline: 2px solid var(--green); outline-offset: 3px; }

.option-stack{ display:grid; gap:8px; }
.option-stack--compact{ gap:6px; }
.option{
  display:flex; gap:10px; align-items:center; border:1px solid var(--line); border-radius: var(--radius);
  padding:10px 12px; cursor:pointer; background:var(--paper); transition: all .15s ease;
  min-height:44px;
}
.option:hover{ border-color: var(--green); }
.option:has(input:checked){ border-color: var(--green); background: var(--green-light); }
.option input{ margin-top:0; accent-color: var(--green); flex:none; }
.option .opt-title{ font-weight:700; font-size:0.92rem; color:var(--navy); display:block; }
.option .opt-sub{ font-size:0.84rem; color:var(--text-dim); }

/* wizard chrome */
.wizard-progress{ display:flex; gap:6px; margin-bottom:22px; }
.wizard-progress .seg{ height:4px; flex:1; background: var(--paper-tint); border-radius:2px; }
.wizard-progress .seg.done{ background: var(--green); }
.wizard-stepno{ font-size:0.8rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-dim); margin-bottom:6px; }
.wizard-step{ display:none; }
.wizard-step.active{ display:block; animation: fade .22s ease; }
@keyframes fade{ from{ opacity:0; transform: translateY(4px);} to{ opacity:1; transform:none; } }
.wizard-nav{ display:flex; gap:12px; margin-top:16px; }
.wizard-nav .btn{ flex:1; }
.wizard-nav--fit{ justify-content: flex-start; }
.wizard-nav--fit .btn{ flex: 0 0 auto; width: auto; }
.wizard-error{ color:#A8342A; font-size:0.86rem; margin-top:10px; display:none; }
.wizard-error.show{ display:block; }
.summary-list{ list-style:none; padding:0; margin:0 0 18px; }
.summary-list li{ display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid var(--line); font-size:0.92rem; }
.summary-list .k{ color:var(--text-dim); }
.summary-list .v{ font-weight:600; color:var(--navy); text-align:right; overflow-wrap:anywhere; }

.file-drop{
  border:2px dashed var(--line); border-radius: var(--radius); padding: 20px; text-align:center;
  font-size:0.88rem; color: var(--text-dim); background: var(--paper-dim);
}
.form-note{ font-size:0.82rem; color: var(--text-dim); margin-top:10px; }
.honeypot{
  position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;
}
.req{ font-weight:500; color:var(--text-dim); }
.opt{ font-weight:500; color:var(--text-dim); }
.check-line{
  display:flex; gap:10px; align-items:flex-start; margin: 0 0 8px;
  font-size:0.92rem; color: var(--text);
}
.check-line input{ margin-top:2px; flex:none; accent-color: var(--green); width:24px; height:24px; min-width:24px; min-height:24px; }
.form-errors{
  border:1px solid #A8342A; background:#FDF2F1; border-radius: var(--radius);
  padding: 12px 14px; margin-bottom: 14px;
}
.form-errors-title{ font-size:1.05rem; color:#A8342A; margin:0 0 8px; }
.form-errors ul{ margin:0; }
.form-errors a{ font-weight:700; }
.step-list{
  list-style:none; padding:0; margin:0 0 22px; display:flex; flex-wrap:wrap; gap:8px;
  font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  color: var(--text-dim);
}
.step-list li{
  padding: 6px 10px; border-radius:999px; background: var(--paper-tint);
}
.step-list li.current, .step-list li[aria-current="step"]{ background: var(--green); color:#fff; }
.step-list li.done{ background: var(--green-light); color: var(--green-dark); }
.person-block{ border:1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; margin: 16px 0; }
.person-block legend{ padding:0 6px; }
.review-block{ margin: 8px 0 18px; }
.review-row{
  display:flex; justify-content:space-between; gap:16px; align-items:flex-start;
  padding:10px 0; border-bottom:1px solid var(--line); font-size:0.92rem;
}
.review-row .k{ color:var(--text-dim); display:block; }
.review-row .v{ font-weight:600; color:var(--navy); overflow-wrap:anywhere; }
.text-btn{
  background:none; border:0; color:var(--green-dark); font: inherit; font-weight:700;
  cursor:pointer; padding: 8px 4px; min-width:44px; min-height:44px;
}
.quote-layout{ display:grid; grid-template-columns: minmax(0,1.4fr) minmax(16rem,0.8fr); gap: 40px; align-items:start; }
.quote-layout--stretch{ align-items: stretch; }
.quote-layout--stretch > .form-card{
  height: 100%;
  display: flex;
  flex-direction: column;
}
.quote-layout--stretch > .form-card .wizard-nav{ margin-top: auto; }
@media (max-width: 900px){ .quote-layout{ grid-template-columns:1fr; } }
@media (max-width: 640px){
  .step-list{ gap:6px; }
  .step-list li{
    flex:1 1 0; min-width:0; height:6px; padding:0; text-indent:-999px; overflow:hidden;
  }
}

/* ---------- Breadcrumb ---------- */
.breadcrumb{ font-size:0.82rem; color: var(--text-dim); margin-bottom:10px; }
.breadcrumb a{ color: var(--text-dim); text-decoration:none; }
.breadcrumb a:hover{ color: var(--green-dark); }

/* ---------- Footer ---------- */
.site-footer{ background: var(--navy-deep); color:#B8C9D7; padding: 52px 0 26px; }
.footer-grid{
  display:grid;
  grid-template-columns: minmax(11rem,1.2fr) repeat(5, minmax(8.5rem,1fr));
  gap: 24px 28px;
  margin-bottom: 36px;
}
.footer-brand .footer-blurb{
  margin-top:14px; max-width:40ch; color:#93A8B9; font-size:0.92rem;
}
.footer-hours{ color:#93A8B9; font-size:0.85rem; margin:6px 0 10px; }
.footer-grid h4{ color:#fff; font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:12px; }
.footer-grid a{
  color:#B8C9D7; text-decoration:none; display:block; margin-bottom:8px; font-size:0.92rem;
  white-space: nowrap;
}
.footer-grid a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,0.12); padding-top:20px; font-size:0.8rem; color:#7F94A6; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-bottom a{ color:#7F94A6; text-decoration:none; }
.footer-bottom a:hover{ color:#fff; }
@media (max-width: 1100px) and (min-width: 721px){
  .footer-grid{
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px 32px;
  }
  .footer-grid a{ white-space: normal; }
}
@media (max-width: 720px){
  .site-footer{ padding: 36px 0 22px; }
  .footer-grid{
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 22px;
  }
  .footer-grid > div{ min-width: 0; }
  .footer-grid h4{ margin-bottom: 8px; }
  .footer-grid a{
    display:flex; align-items:center;
    min-height: 40px;
    margin-bottom: 0;
    padding: 4px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
  }
  .footer-grid a:last-child{ border-bottom: 0; }
  .footer-grid p{ margin: 8px 0; }
  .footer-bottom{ gap: 8px; }
}

/* ---------- Sticky mobile call bar ---------- */
.call-bar{ display:none !important; }

/* ---------- CTA banner on navy ---------- */
.cta-banner .cta-banner-primary{ background:#fff; color:var(--navy); }
.cta-banner .cta-banner-primary:hover{ background: var(--paper-tint); color: var(--navy); }
.cta-banner .btn-ghost.on-dark{ border-color: rgba(255,255,255,0.75); }

/* ---------- Misc ---------- */
.tag{
  display:inline-block; font-size:0.78rem; font-weight:700; letter-spacing:0.03em;
  padding: 5px 12px; border-radius:999px; background: var(--green-light); color: var(--green-dark); margin: 0 6px 6px 0;
}
.tag-quiet{ background: var(--paper-tint); color: var(--navy-soft); }
.divider{ height:1px; background:var(--line); border:0; margin: 40px 0; }
.list-check{ list-style:none; padding:0; margin:0; }
.list-check li{ position:relative; padding-left:28px; margin-bottom:10px; color: var(--text-dim); }
.list-check li::before{ content:"✓"; position:absolute; left:0; top:0; color: var(--green); font-weight:800; }
.loc-services-h{ margin-top: 2.4rem; }

/* ---------- Advice / article ---------- */
.prose{ max-width: 72ch; }
.prose h2{ margin-top: 1.4em; }
.prose h3{ margin-top: 1.15em; }
.prose p, .prose li{ color: var(--text); font-size: 1.02rem; }
.prose .lede{ color: var(--text-dim); }
.prose a{ font-weight: 600; }
.source-list{ font-size: 0.88rem; color: var(--text-dim); padding-left: 1.2em; }
.source-list a{ font-weight: 600; }

/* ---------- Location hub ---------- */
.loc-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 640px){ .loc-grid{ grid-template-columns: 1fr; } }
.loc-card .eyebrow{ margin-bottom: 0.35em; }
.loc-card h3{ font-size: 1.15rem; }
.loc-note{
  font-size: 0.9rem; color: var(--text-dim); background: var(--paper-dim);
  border-left: 3px solid var(--green); padding: 12px 14px; border-radius: 0 var(--radius) var(--radius) 0;
}
