:root{
    --bg:#F0F7FA;
    --surface:#FFFFFF;
    --ink:#1E293B;
    --muted:#64748B;
    --slate:#334155;
    --terracotta:#C2410C;
    --terracotta-dk:#9A3412;
    --sky:#BAE6FD;
    --line:#D6E4EC;
    --radius:20px;
    --radius-sm:12px;
    --shadow-sm:0 1px 2px rgba(30,41,59,.06), 0 2px 8px rgba(30,41,59,.05);
    --shadow-md:0 8px 30px rgba(30,41,59,.09), 0 2px 8px rgba(30,41,59,.05);
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.6;
    font-size:17px;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3{
    font-family:"Fraunces",Georgia,serif;
    font-weight:600;
    line-height:1.1;
    color:var(--ink);
    margin:0 0 .5em;
    font-optical-sizing:auto;
  }
  a{color:var(--terracotta-dk);text-decoration:none;}
  a:hover{text-decoration:underline;}
  img{max-width:100%;display:block;}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px;}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

  /* ---------- Skip link ---------- */
  .skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;z-index:200;}
  .skip:focus{left:0;}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    font-family:"DM Sans",sans-serif;font-weight:600;font-size:16px;
    min-height:48px;padding:12px 22px;border-radius:999px;
    border:1.5px solid transparent;cursor:pointer;text-align:center;
    transition:transform .12s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn:hover{text-decoration:none;}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--terracotta);color:#fff;box-shadow:0 4px 14px rgba(194,65,12,.28);}
  .btn-primary:hover{background:var(--terracotta-dk);box-shadow:0 6px 20px rgba(194,65,12,.34);}
  .btn-ghost{background:#fff;color:var(--slate);border-color:var(--line);}
  .btn-ghost:hover{border-color:#B9D2DF;background:#FAFDFF;}
  .btn-call{background:var(--ink);color:#fff;}
  .btn-call:hover{background:#0F1A2B;}
  :focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;border-radius:6px;}

  /* ---------- Header ---------- */
  .topbar{
    background:rgba(240,247,250,.86);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;
  }
  .topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;max-width:var(--maxw);margin:0 auto;}
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);}
  .brand:hover{text-decoration:none;}
  .brand-mark{flex:none;width:44px;height:44px;}
  .brand-text{display:flex;flex-direction:column;line-height:1.05;}
  .brand-name{font-family:"Fraunces",serif;font-weight:600;font-size:17px;letter-spacing:-.01em;}
  .brand-sub{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;}
  .topbar-cta{display:flex;align-items:center;gap:10px;}
  .topnav{display:none;gap:26px;align-items:center;}
  .topnav a{color:var(--slate);font-weight:500;font-size:15px;}
  .topphone{display:none;}

  /* ---------- Hero ---------- */
  .hero{position:relative;padding:40px 0 20px;}
  .hero-grid{display:grid;gap:26px;}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--terracotta-dk);background:#FFF2EC;border:1px solid #FBD9C9;padding:6px 13px;border-radius:999px;}
  .hero h1{font-size:clamp(34px,8.5vw,58px);letter-spacing:-.015em;margin-top:18px;}
  .hero h1 em{font-style:italic;color:var(--terracotta-dk);font-weight:500;}
  .hero-lead{font-size:18px;color:var(--slate);max-width:46ch;margin:0 0 6px;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
  .hero-trustline{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px;font-size:14px;color:var(--muted);}
  .hero-trustline span{display:inline-flex;align-items:center;gap:7px;}
  .tick{color:#0E7490;}

  /* hero visual: creek/bridge SVG + map note */
  .hero-visual{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--line);background:#fff;}
  .hero-art{display:block;width:100%;height:auto;}
  .photo-note{
    position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);
    border:1px solid var(--line);border-radius:10px;padding:7px 12px;font-size:12.5px;color:var(--muted);
    backdrop-filter:blur(4px);
  }
  .mapnote{
    display:flex;align-items:center;gap:14px;margin-top:16px;
    background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);
    padding:14px 16px;box-shadow:var(--shadow-sm);
  }
  .mapnote-ico{flex:none;width:42px;height:42px;border-radius:10px;background:#EAF6FC;display:grid;place-items:center;}
  .mapnote strong{display:block;font-family:"Fraunces",serif;font-size:16px;}
  .mapnote small{color:var(--muted);font-size:13.5px;}

  /* ---------- Town chips ---------- */
  .towns{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px;}
  .chip{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);color:var(--slate);font-size:13.5px;font-weight:500;padding:7px 13px;border-radius:999px;}
  .chip svg{color:#0E7490;}

  /* ---------- Section scaffolding ---------- */
  section{scroll-margin-top:84px;}
  .band{padding:46px 0;}
  .band-alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .sec-head{max-width:60ch;margin-bottom:26px;}
  .sec-head .kicker{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--terracotta-dk);}
  .sec-head h2{font-size:clamp(26px,5.4vw,38px);margin-top:10px;letter-spacing:-.01em;}
  .sec-head p{color:var(--slate);font-size:17px;margin:0;}

  /* ---------- Story card stack ---------- */
  .stack{display:grid;gap:18px;}
  .story-card{
    position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    padding:24px 22px 22px;box-shadow:var(--shadow-sm);
  }
  .story-step{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
  .story-num{width:28px;height:28px;border-radius:999px;background:#EAF6FC;color:#0E6B8A;display:grid;place-items:center;font-family:"Fraunces",serif;font-weight:600;font-size:14px;}
  .story-card h3{font-size:22px;}
  .story-card p{margin:0;color:var(--slate);font-size:15.5px;}
  .story-card .icon-lg{width:46px;height:46px;margin-bottom:6px;}

  /* ---------- Trust band ---------- */
  .trust{display:grid;gap:16px;}
  .trust-item{display:flex;gap:14px;align-items:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px;}
  .trust-ico{flex:none;width:44px;height:44px;border-radius:11px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;}
  .trust-item h3{font-size:17px;margin:0 0 3px;}
  .trust-item p{margin:0;font-size:14.5px;color:var(--muted);}

  /* ---------- Services ---------- */
  .svc-grid{display:grid;gap:14px;}
  .svc{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;}
  .svc:hover{text-decoration:none;border-color:#B9D2DF;transform:translateY(-2px);box-shadow:var(--shadow-sm);}
  .svc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .svc h3{font-size:19px;margin:12px 0 6px;}
  .svc p{margin:0;font-size:14.5px;color:var(--muted);}
  .svc .arw{color:var(--terracotta-dk);transition:transform .15s ease;}
  .svc:hover .arw{transform:translateX(3px);}
  .svc-ico{width:40px;height:40px;}

  /* ---------- Local angle ---------- */
  .local-grid{display:grid;gap:16px;}
  .local-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--sky);border-radius:var(--radius-sm);padding:20px;}
  .local-card h3{font-size:18px;display:flex;align-items:center;gap:10px;}
  .local-card p{margin:0;font-size:15px;color:var(--slate);}

  /* ---------- Insurance ---------- */
  .ins{background:linear-gradient(180deg,#fff, #FAFDFF);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;}
  .ins h2{font-size:clamp(24px,5vw,32px);}
  .ins p{color:var(--slate);max-width:60ch;}
  .ins-logos{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px;}
  .ins-pill{font-size:13.5px;font-weight:600;color:var(--slate);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:7px 14px;}
  .ins-note{font-size:13.5px;color:var(--muted);margin-top:14px;}

  /* ---------- Quote form ---------- */
  .quote{display:grid;gap:26px;}
  .quote-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:26px 22px;}
  .quote-card h2{font-size:clamp(24px,5vw,32px);}
  .quote-card .sub{color:var(--muted);margin:-4px 0 18px;font-size:15px;}
  form .row{display:grid;gap:14px;}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field label{font-size:14px;font-weight:600;color:var(--slate);}
  .field .req{color:var(--terracotta);}
  .field input,.field textarea{
    font-family:inherit;font-size:16px;color:var(--ink);
    background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:12px 13px;min-height:48px;
    transition:border-color .15s ease, background .15s ease;
  }
  .field textarea{min-height:92px;resize:vertical;}
  .field input:focus,.field textarea:focus{outline:none;border-color:#7FB8CE;background:#fff;}
  .field input:invalid:not(:placeholder-shown){border-color:#DC6B3C;}
  .field .hint{font-size:12.5px;color:var(--muted);}
  .form-foot{display:flex;flex-direction:column;gap:12px;margin-top:18px;}
  .form-legal{font-size:12.5px;color:var(--muted);}
  .aside-note{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px;}
  .aside-note h3{font-size:17px;}
  .aside-note ul{margin:8px 0 0;padding-left:0;list-style:none;display:grid;gap:10px;}
  .aside-note li{display:flex;gap:10px;font-size:14.5px;color:var(--slate);}
  .aside-note li svg{flex:none;color:#0E7490;margin-top:3px;}

  /* ---------- Sticky mobile call ---------- */
  .sticky-call{
    position:fixed;left:0;right:0;bottom:0;z-index:120;
    background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    display:flex;gap:10px;box-shadow:0 -4px 18px rgba(30,41,59,.08);
  }
  .sticky-call .btn{flex:1;}
  .sticky-spacer{height:76px;}

  /* ---------- Footer ---------- */
  footer{background:var(--ink);color:#CBD5E1;padding:46px 0 36px;}
  footer a{color:#E2E8F0;}
  footer .f-grid{display:grid;gap:30px;}
  .f-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .f-brand .brand-name{color:#fff;}
  .f-brand .brand-sub{color:#94A3B8;}
  footer h4{font-family:"DM Sans",sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#94A3B8;margin:0 0 12px;font-weight:700;}
  .f-nap p{margin:0 0 4px;font-size:14.5px;}
  .f-nap .phone{font-family:"Fraunces",serif;font-size:21px;color:#fff;}
  footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;}
  .f-legal{border-top:1px solid #334155;margin-top:30px;padding-top:20px;font-size:12.5px;color:#94A3B8;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;}
  .f-legal a{color:#94A3B8;}

  /* ---------- Responsive ---------- */
  @media (min-width:720px){
    .stack{grid-template-columns:1fr 1fr;}
    .trust{grid-template-columns:repeat(3,1fr);}
    .svc-grid{grid-template-columns:1fr 1fr;}
    .local-grid{grid-template-columns:1fr 1fr;}
    .ins-logos{max-width:none;}
    form .two{grid-template-columns:1fr 1fr;}
  }
  @media (min-width:960px){
    .topnav{display:flex;}
    .topphone{display:inline-flex;}
    .sticky-call{display:none;}
    .sticky-spacer{display:none;}
    .hero{padding:58px 0 30px;}
    .hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:46px;}
    .svc-grid{grid-template-columns:repeat(4,1fr);}
    .quote{grid-template-columns:1.3fr .7fr;align-items:start;}
    .f-grid{grid-template-columns:1.4fr 1fr 1fr;}
    .band{padding:64px 0;}
  }
  @media (prefers-reduced-motion:reduce){
    *{transition:none !important;scroll-behavior:auto !important;}
  }


/* ---- Inner pages (Brookside tokens) ---- */
.page-hero{padding:36px 0 10px;}
.page-hero h1{font-size:clamp(30px,7vw,46px);letter-spacing:-.015em;margin:14px 0 10px;}
.page-hero .lede{font-size:18px;color:var(--slate);max-width:58ch;margin:0;}
.crumb{font-size:13.5px;color:var(--muted);margin:0 0 6px;}
.crumb a{color:var(--muted);}
.prose{max-width:68ch;}
.prose h2{font-size:clamp(22px,4.5vw,30px);margin:1.6em 0 .5em;}
.prose h3{font-size:20px;margin:1.3em 0 .4em;}
.prose p,.prose li{color:var(--slate);font-size:16.5px;}
.prose ul,.prose ol{padding-left:1.2em;}
.prose li{margin:.4em 0;}
.prose a{font-weight:500;}
.cta-band{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow-sm);margin:28px 0;}
.cta-band h2{font-size:clamp(22px,4vw,28px);margin:0 0 8px;}
.cta-band p{color:var(--slate);margin:0 0 16px;}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;}
.link-list{display:grid;gap:10px;margin:18px 0;}
.link-list a{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;color:var(--ink);font-weight:600;}
.link-list a:hover{text-decoration:none;border-color:#B9D2DF;}
.link-list a span{color:var(--muted);font-weight:500;font-size:14px;}
.nap-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm);}
.nap-card h2{font-size:22px;margin:0 0 10px;}
.nap-card p{margin:0 0 6px;color:var(--slate);}
.nap-card .phone{font-family:"Fraunces",serif;font-size:26px;color:var(--ink);}
.two-col-page{display:grid;gap:24px;}
@media(min-width:900px){.two-col-page{grid-template-columns:1.4fr .8fr;align-items:start;}}
.preview-banner{background:#1E293B;color:#E2E8F0;font-size:12.5px;text-align:center;padding:8px 12px;}
.preview-banner strong{color:#fff;}

