/* =========================================================================
   Bright Ridge Construction — brand design system (2026 static rebuild)
   One standardized system: tokens, type scale, buttons, header, footer,
   sections, cards, forms, gallery. Replaces the old Squarespace styling.
   ========================================================================= */

/* ---- Tokens ------------------------------------------------------------ */
:root{
  /* brand palette (from the original site's accent hues, refined) */
  --green:        hsl(143, 17%, 29%);
  --green-dark:   hsl(143, 22%, 21%);
  --green-soft:   hsl(143, 16%, 40%);
  --ink:          hsl(140, 16%, 11%);   /* dark sections / footer */
  --ink-2:        hsl(140, 12%, 16%);
  --cream:        hsl(44, 34%, 97%);     /* default page bg */
  --sand:         hsl(44, 20%, 92%);     /* alt section bg */
  --line:         hsl(44, 14%, 85%);
  --text:         hsl(150, 10%, 17%);
  --muted:        hsl(150,  6%, 40%);
  --muted-on-dark:hsla(0,0%,100%,.72);
  --white:        #fff;

  --radius:       14px;
  --radius-lg:    22px;
  --radius-pill:  999px;
  --shadow-sm:    0 4px 14px rgba(30,40,25,.06);
  --shadow:       0 12px 34px rgba(30,40,25,.10);
  --shadow-lg:    0 26px 60px rgba(20,30,18,.16);

  --container:    1160px;
  --gutter:       clamp(1.25rem, 5vw, 2.25rem);
  --section-y:    clamp(3.5rem, 8vw, 6.25rem);

  --font-head: "Manrope", system-ui, sans-serif;
  --font-body: "Poppins", system-ui, sans-serif;

  /* fluid type scale */
  --fs-eyebrow: .8rem;
  --fs-h1:  clamp(2.3rem, 1.4rem + 3.6vw, 3.9rem);
  --fs-h2:  clamp(1.75rem, 1.2rem + 2vw, 2.6rem);
  --fs-h3:  clamp(1.25rem, 1.05rem + .7vw, 1.55rem);
  --fs-h4:  1.15rem;
  --fs-lead:clamp(1.08rem, 1rem + .4vw, 1.28rem);
  --fs-body: 1.0625rem;
  --fs-small: .92rem;
}

/* ---- Reset ------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
body{ overflow-x:clip; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.7;
  color:var(--text);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--green); text-decoration:none; }
a:hover{ color:var(--green-dark); }
h1,h2,h3,h4{ font-family:var(--font-head); color:var(--ink); line-height:1.12;
  letter-spacing:-.015em; margin:0 0 .5em; font-weight:800; }
h1{ font-size:var(--fs-h1); letter-spacing:-.025em; }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); font-weight:700; }
h4{ font-size:var(--fs-h4); font-weight:700; }
p{ margin:0 0 1.1rem; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0 0 1.1rem; padding-left:1.2rem; }
:focus-visible{ outline:2px solid var(--green); outline-offset:3px; border-radius:4px; }
.visually-hidden{ position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }

/* ---- Layout primitives ------------------------------------------------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.container--narrow{ max-width:820px; }
.section{ padding-block:var(--section-y); }
.section--sand{ background:var(--sand); }
.section--dark{ background:var(--ink); color:var(--white); }
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{ color:var(--white); }
.section--green{ background:var(--green); color:var(--white); }
.section--green h2,.section--green h3{ color:var(--white); }
.section--tight{ padding-block:clamp(2.5rem,5vw,3.5rem); }

.eyebrow{ display:inline-block; font-family:var(--font-body); font-weight:700;
  font-size:var(--fs-eyebrow); letter-spacing:.16em; text-transform:uppercase;
  color:var(--green-soft); margin:0 0 .9rem; }
.section--dark .eyebrow,.section--green .eyebrow{ color:hsl(143,28%,66%); }
.lead{ font-size:var(--fs-lead); line-height:1.6; color:var(--muted); }
.section--dark .lead{ color:var(--muted-on-dark); }
.section-head{ max-width:760px; margin-bottom:clamp(2rem,4vw,3rem); }
.center{ text-align:center; }
.section-head.center{ margin-inline:auto; text-align:center; }
.text-block > *{ max-width:70ch; }

/* accent rule under headings */
.rule{ width:56px; height:4px; border-radius:2px; background:var(--green); margin:0 0 1.4rem; }
.center .rule{ margin-inline:auto; }

/* ---- Buttons (one standardized system) --------------------------------- */
.btn{
  --btn-bg:var(--green); --btn-fg:#fff; --btn-bd:var(--green);
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font-body); font-weight:600; font-size:1rem; line-height:1;
  padding:.95rem 1.75rem; border-radius:var(--radius-pill);
  border:1.5px solid var(--btn-bd); background:var(--btn-bg); color:var(--btn-fg);
  cursor:pointer; text-align:center; transition:transform .18s ease, background .18s ease,
    border-color .18s ease, color .18s ease, box-shadow .18s ease; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(30,50,30,.20); color:var(--btn-fg); }
.btn:active{ transform:translateY(0); }
.btn--primary{ --btn-bg:var(--green); --btn-fg:#fff; --btn-bd:var(--green); }
.btn--primary:hover{ --btn-bg:var(--green-dark); --btn-bd:var(--green-dark); }
.btn--outline{ --btn-bg:transparent; --btn-fg:var(--green); --btn-bd:var(--green); }
.btn--outline:hover{ --btn-bg:var(--green); --btn-fg:#fff; }
.btn--light{ --btn-bg:var(--cream); --btn-fg:var(--ink); --btn-bd:var(--cream); }
.btn--light:hover{ --btn-bg:#fff; --btn-fg:var(--ink); --btn-bd:#fff; }
.btn--ghost-light{ --btn-bg:transparent; --btn-fg:#fff; --btn-bd:hsla(0,0%,100%,.5); }
.btn--ghost-light:hover{ --btn-bg:#fff; --btn-fg:var(--ink); --btn-bd:#fff; }
.btn--lg{ padding:1.1rem 2.2rem; font-size:1.05rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.6rem; }
.center .btn-row{ justify-content:center; }

/* ---- Header ------------------------------------------------------------ */
.site-header{
  position:sticky; top:0; z-index:1000;
  background:hsla(44,34%,97%,.86); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent; transition:box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.site-header.scrolled{ box-shadow:0 6px 22px rgba(30,40,25,.09); border-bottom-color:var(--line);
  background:hsla(44,36%,98%,.94); }
.site-header .container{ display:flex; align-items:center; gap:1.1rem; min-height:76px; }
.brand-logo{ display:flex; align-items:center; flex:0 0 auto; }
.brand-logo img{ height:46px; width:auto; }
.main-nav{ margin-left:auto; }
.nav-list{ list-style:none; display:flex; align-items:center; gap:.15rem; margin:0; padding:0; }
.nav-list > li{ position:relative; }
.nav-list > li > a{
  display:inline-flex; align-items:center; gap:.35em; padding:.55rem .7rem; white-space:nowrap;
  font-family:var(--font-body); font-weight:600; font-size:.98rem; color:var(--ink);
  border-radius:8px; transition:color .15s ease, background .15s ease;
}
.nav-list > li > a:hover,.nav-list > li.current > a,.nav-list > li > a.current{ color:var(--green); }
.nav-list .caret{ width:9px; height:9px; transition:transform .2s ease; }
.has-sub:hover .caret,.has-sub:focus-within .caret{ transform:rotate(180deg); }
/* dropdown */
.subnav{
  position:absolute; top:calc(100% + 2px); left:0; min-width:214px; list-style:none;
  margin:0; padding:.4rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.has-sub:hover .subnav,.has-sub:focus-within .subnav{ opacity:1; visibility:visible; transform:translateY(0); }
.subnav a{ display:block; padding:.6rem .8rem; border-radius:9px; font-weight:600;
  font-size:.95rem; color:var(--ink); }
.subnav a:hover,.subnav a.current{ background:var(--sand); color:var(--green); }
.header-cta{ display:flex; align-items:center; gap:1rem; flex:0 0 auto; }
.header-phone{ font-family:var(--font-head); font-weight:700; color:var(--ink); white-space:nowrap; }
.header-phone:hover{ color:var(--green); }
.burger{ display:none; }

/* mobile menu */
.burger{ appearance:none; border:0; background:transparent; padding:.4rem; cursor:pointer;
  width:44px; height:44px; margin-left:auto; }
.burger span{ display:block; width:24px; height:2px; margin:5px auto; background:var(--ink);
  border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
body.nav-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.nav-open .burger span:nth-child(2){ opacity:0; }
body.nav-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:1080px){
  .header-cta .btn,.header-phone{ display:none; }
  .burger{ display:block; }
  .main-nav{
    /* height uses dvh (viewport-relative) so the header's backdrop-filter
       containing block does not collapse the panel — see QA blocker fix */
    position:fixed; top:76px; left:0; right:0; height:calc(100vh - 76px);
    height:calc(100dvh - 76px); background:var(--cream); margin:0;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .25s ease, transform .25s ease, visibility .25s; overflow-y:auto;
    border-top:1px solid var(--line);
  }
  body.nav-open{ overflow:hidden; }
  body.nav-open .main-nav{ opacity:1; visibility:visible; transform:translateY(0); }
  .nav-list{ flex-direction:column; align-items:stretch; gap:0; padding:1rem var(--gutter) 2rem; }
  .nav-list > li{ border-bottom:1px solid var(--line); }
  .nav-list > li > a{ font-size:1.15rem; padding:1rem .25rem; justify-content:space-between; }
  .subnav{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    border:0; padding:0 0 .6rem 1rem; background:transparent; min-width:0; }
  .subnav a{ padding:.75rem .25rem; }
  .has-sub .caret{ display:none; }
  .mobile-cta{ display:block; padding:1.4rem var(--gutter) 0; }
  .mobile-cta .btn{ width:100%; }
}
@media (min-width:1081px){ .mobile-cta{ display:none; } }

/* ---- Hero -------------------------------------------------------------- */
.hero{ position:relative; color:#fff; isolation:isolate; }
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(11,18,11,.66) 0%, rgba(11,18,11,.34) 55%, rgba(11,18,11,.18) 100%),
             linear-gradient(180deg, rgba(13,20,13,.34) 0%, rgba(11,17,11,.64) 100%); }
.hero .container{ padding-block:clamp(4.5rem,14vh,9rem); }
.hero__inner{ max-width:640px; }
.hero h1{ color:#fff; text-shadow:0 2px 26px rgba(0,0,0,.35); margin-bottom:.55rem; }
.hero p{ font-size:var(--fs-lead); line-height:1.55; color:hsla(0,0%,100%,.94);
  text-shadow:0 1px 16px rgba(0,0,0,.4); max-width:36rem; margin-bottom:1.7rem; }
.hero__services{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem .75rem; margin:0 0 1.4rem; padding:0; }
.hero__services li{ position:relative; }
.hero__services li:not(:last-child)::after{ content:"·"; position:absolute; right:-.5rem; color:hsla(0,0%,100%,.55); }
.hero__services a{ font-family:var(--font-head); font-weight:700; font-size:1.02rem; color:#fff;
  text-shadow:0 1px 14px rgba(0,0,0,.45); border-bottom:1px solid hsla(143,32%,76%,.55); padding-bottom:1px; }
.hero__services a:hover{ color:hsl(143,32%,82%); border-bottom-color:hsl(143,32%,76%); }
.hero__phone{ margin-top:1.4rem; font-family:var(--font-head); font-weight:700; font-size:1.1rem; }
.hero__phone a{ color:#fff; } .hero__phone a:hover{ color:hsl(143,30%,80%); }

/* page hero (inner pages) */
.page-hero{ position:relative; color:#fff; isolation:isolate; }
.page-hero__bg{ position:absolute; inset:0; z-index:-2; }
.page-hero__bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(11,18,11,.62) 0%, rgba(11,18,11,.36) 60%, rgba(11,18,11,.24) 100%),
             linear-gradient(180deg, rgba(13,20,13,.34), rgba(11,17,11,.6)); }
.page-hero .container{ padding-block:clamp(3.5rem,10vh,6rem); }
.page-hero h1{ color:#fff; max-width:20ch; text-shadow:0 2px 22px rgba(0,0,0,.35); }
.page-hero p{ color:hsla(0,0%,100%,.92); font-size:var(--fs-lead); max-width:52ch; }
.page-hero .eyebrow{ color:hsl(143,30%,74%); }
/* plain (no image) page header */
.page-head{ background:var(--ink); color:#fff; }
.page-head .container{ padding-block:clamp(3rem,8vh,5rem); }
.page-head h1{ color:#fff; }
.page-head p{ color:var(--muted-on-dark); font-size:var(--fs-lead); max-width:56ch; }

/* ---- Grid helpers ------------------------------------------------------ */
.grid{ display:grid; gap:1.5rem; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.split--reverse .split__media{ order:-1; }
.split__media img{ width:100%; aspect-ratio:4/3; border-radius:var(--radius-lg); box-shadow:var(--shadow); object-fit:cover; }
/* full/natural aspect (uncropped) — e.g. Sam's portrait on the About page */
.split__media--full img{ aspect-ratio:auto; }
@media (max-width:820px){
  .grid-3,.grid-2{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
}

/* ---- Cards ------------------------------------------------------------- */
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; }
.card__media{ aspect-ratio:4/3; overflow:hidden; }
.card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.card:hover .card__media img{ transform:scale(1.05); }
.card__body{ padding:1.5rem 1.5rem 1.7rem; }
.card__body h3,.card__body h4{ margin-bottom:.45rem; }
.card__body p{ color:var(--muted); font-size:var(--fs-small); margin:0; }
.card--pad{ padding:1.7rem 1.6rem; }

/* service card w/ numbered/icon marker */
.feature{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.8rem 1.6rem; box-shadow:var(--shadow-sm); }
.feature h3{ margin-bottom:.5rem; }
.feature p{ color:var(--muted); margin:0; }
.feature__num{ font-family:var(--font-head); font-weight:800; font-size:1rem; color:#fff;
  background:var(--green); width:42px; height:42px; border-radius:12px; display:grid;
  place-items:center; margin-bottom:1.1rem; }

/* check list */
.checklist{ list-style:none; padding:0; margin:0; }
.checklist li{ position:relative; padding:.55rem 0 .55rem 2rem; border-top:1px solid var(--line); }
.checklist li:first-child{ border-top:0; }
.checklist li::before{ content:""; position:absolute; left:0; top:.95rem; width:16px; height:9px;
  border-left:2.5px solid var(--green); border-bottom:2.5px solid var(--green);
  transform:rotate(-45deg); }
.section--dark .checklist li{ border-color:hsla(0,0%,100%,.12); }
.section--dark .checklist li::before{ border-color:hsl(143,32%,64%); }

/* ---- Good-fit two columns --------------------------------------------- */
.fit-cols{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin-top:2.4rem; text-align:left; }
.fit-col{ border-radius:var(--radius-lg); padding:1.9rem 1.7rem; border:1px solid hsla(0,0%,100%,.1);
  background:hsla(0,0%,100%,.04); }
.fit-col--yes{ background:hsla(143,20%,32%,.28); border-color:hsla(143,26%,54%,.4); }
.fit-col h3{ margin-bottom:1.1rem; }
.fit-list{ list-style:none; margin:0; padding:0; }
.fit-list li{ position:relative; padding:.5rem 0 .5rem 1.9rem; border-top:1px solid hsla(0,0%,100%,.08);
  line-height:1.45; }
.fit-list li:first-child{ border-top:0; }
.fit-col--yes .fit-list li::before{ content:"\2713"; position:absolute; left:0; top:.5rem;
  color:hsl(143,34%,64%); font-weight:800; }
.fit-col--no .fit-list li::before{ content:"\2013"; position:absolute; left:.15rem; top:.5rem;
  color:hsla(0,0%,100%,.42); font-weight:800; }
@media (max-width:720px){ .fit-cols{ grid-template-columns:1fr; } }

/* ---- Testimonials ------------------------------------------------------ */
.reviews{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.review{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.8rem 1.6rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.review__stars{ color:#d8a441; letter-spacing:2px; margin-bottom:.8rem; font-size:1rem; }
.review__text{ font-size:.98rem; line-height:1.6; margin:0 0 1.1rem; }
.review__who{ font-family:var(--font-head); font-weight:700; color:var(--ink);
  margin-top:auto; font-size:.95rem; }
@media (max-width:900px){ .reviews{ grid-template-columns:1fr; } }

/* ---- Fences band cards ------------------------------------------------- */
.mini-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin:2.2rem 0 1.4rem; }
.mini-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.4rem; box-shadow:var(--shadow-sm); text-align:left; }
.mini-card h3{ color:var(--green-dark); font-size:1.12rem; margin-bottom:.4rem; }
.mini-card p{ color:var(--muted); font-size:.95rem; margin:0; }
.fine{ font-size:.86rem; color:var(--muted); }
@media (max-width:820px){ .mini-cards{ grid-template-columns:1fr; } }

/* ---- Process steps ----------------------------------------------------- */
.steps{ display:grid; gap:1.1rem; counter-reset:step; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.5rem 1.6rem; box-shadow:var(--shadow-sm); }
.step__n{ counter-increment:step; font-family:var(--font-head); font-weight:800; color:#fff;
  background:var(--green); width:48px; height:48px; border-radius:14px; display:grid;
  place-items:center; font-size:1.1rem; }
.step__n::before{ content:counter(step); }
.step h3{ margin:.1rem 0 .35rem; }
.step p{ color:var(--muted); margin:0; }

/* ---- Trust strip ------------------------------------------------------- */
.trust{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.trust__item .num{ font-family:var(--font-head); font-weight:800; font-size:1.9rem; color:var(--green);
  display:block; line-height:1.1; }
.section--dark .trust__item .num{ color:hsl(143,30%,66%); }
.trust__item .lbl{ font-size:.9rem; color:var(--muted); }
.section--dark .trust__item .lbl{ color:var(--muted-on-dark); }
@media (max-width:720px){ .trust{ grid-template-columns:repeat(2,1fr); gap:1.8rem 1rem; } }

/* ---- Gallery ----------------------------------------------------------- */
.gallery{ columns:3; column-gap:1rem; }
.gallery a{ display:block; margin:0 0 1rem; border-radius:var(--radius); overflow:hidden;
  break-inside:avoid; box-shadow:var(--shadow-sm); background:var(--sand); }
.gallery img{ width:100%; transition:transform .5s ease, filter .3s ease; }
.gallery a:hover img{ transform:scale(1.04); filter:brightness(1.03); }
@media (max-width:900px){ .gallery{ columns:2; } }
@media (max-width:560px){ .gallery{ columns:1; } }

/* lightbox */
.lb{ position:fixed; inset:0; z-index:2000; background:rgba(12,16,12,.92); display:none;
  align-items:center; justify-content:center; padding:2rem; }
.lb.open{ display:flex; }
.lb img{ max-width:92vw; max-height:88vh; border-radius:8px; box-shadow:var(--shadow-lg); }
.lb__close{ position:absolute; top:1.1rem; right:1.4rem; font-size:2rem; color:#fff;
  background:none; border:0; cursor:pointer; line-height:1; }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); font-size:2.4rem; color:#fff;
  background:none; border:0; cursor:pointer; padding:.5rem 1rem; opacity:.8; }
.lb__nav:hover{ opacity:1; } .lb__prev{ left:.5rem; } .lb__next{ right:.5rem; }

/* ---- Contact form ------------------------------------------------------ */
.contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,5vw,3.5rem); align-items:start; }
.contact-grid > *{ min-width:0; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info .lead{ margin-bottom:1.5rem; }
.contact-line{ display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; font-weight:600; flex-wrap:wrap; }
.contact-line a,.footer-contact a{ overflow-wrap:anywhere; }
.grid > *,.split > *,.reviews > *,.mini-cards > *,.trust > *,.steps > *{ min-width:0; }
.contact-line .ic{ width:42px; height:42px; border-radius:12px; background:var(--green);
  color:#fff; display:grid; place-items:center; flex:0 0 auto; }
.contact-line a{ color:var(--ink); } .contact-line a:hover{ color:var(--green); }
.section--dark .contact-line a{ color:#fff; }

.brc-form{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.2rem); box-shadow:var(--shadow); }
.section--dark .brc-form{ color:var(--text); }
.field-list{ display:grid; gap:1.05rem; }
.brc-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.05rem; }
@media (max-width:520px){ .brc-row{ grid-template-columns:1fr; } }
.brc-field{ display:flex; flex-direction:column; gap:.4rem; }
.brc-field label{ font-weight:600; font-size:.9rem; color:var(--ink); }
.brc-field .required{ color:var(--green); }
.brc-field input,.brc-field textarea{ font:inherit; font-size:1rem; color:var(--text);
  padding:.8rem .95rem; border:1.5px solid var(--line); border-radius:11px; background:var(--cream);
  width:100%; transition:border-color .15s ease, box-shadow .15s ease; }
.brc-field input:focus,.brc-field textarea:focus{ outline:0; border-color:var(--green);
  box-shadow:0 0 0 3px hsla(143,20%,40%,.14); }
.brc-field textarea{ resize:vertical; min-height:120px; }
.form-button-wrapper{ margin-top:1.3rem; }
.form-submit-button{ width:100%; }
.brc-form-message{ margin-top:1rem; font-weight:600; font-size:.95rem; }
.brc-form-message--ok{ color:var(--green); }
.brc-form-message--err{ color:#b5432f; }

/* ---- CTA band ---------------------------------------------------------- */
.cta-band{ text-align:center; }
.cta-band h2{ margin-bottom:.6rem; }
.cta-band p{ max-width:52ch; margin-inline:auto; }

/* ---- Footer ------------------------------------------------------------ */
.site-footer{ background:var(--ink); color:var(--muted-on-dark); }
.site-footer .container{ padding-block:clamp(3rem,6vw,4.5rem); }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:2.5rem; }
.footer-brand h2{ color:#fff; font-size:1.5rem; margin-bottom:.9rem; }
.footer-brand p{ color:var(--muted-on-dark); max-width:34ch; margin-bottom:1.2rem; }
.footer-contact a{ color:#fff; font-weight:600; }
.footer-contact a:hover{ color:hsl(143,30%,72%); }
.footer-col h4{ color:#fff; font-size:.95rem; letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:1rem; }
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-col li{ margin-bottom:.55rem; }
.footer-col a{ color:var(--muted-on-dark); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid hsla(0,0%,100%,.1); margin-top:2.6rem; padding-top:1.5rem;
  display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:space-between;
  font-size:.86rem; color:hsla(0,0%,100%,.55); }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr; gap:2rem; } }

/* ---- Misc content ------------------------------------------------------ */
.prose h2{ margin-top:2.4rem; }
.prose h2:first-child{ margin-top:0; }
.prose p,.prose li{ color:var(--text); }
.prose .lead{ color:var(--muted); }
.inline-link{ color:var(--green); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

/* ===== Location pages (deck-builder) ===== */
.loc-services{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.2rem; margin-top:2rem; }
.loc-services__item{ background:var(--white); border:1px solid var(--line); border-radius:14px; padding:1.4rem 1.5rem; }
.loc-services__item h3{ font-family:'Manrope',sans-serif; font-size:1.15rem; margin:0 0 .5rem; color:var(--ink); }
.loc-services__item p{ margin:0; color:var(--text); line-height:1.6; }
.loc-areas-list{ list-style:none; padding:0; margin:1.4rem 0 0; display:flex; flex-wrap:wrap; gap:.6rem; }
.loc-areas-list a{ display:inline-block; padding:.5rem 1rem; border:1px solid var(--line); border-radius:999px; color:var(--green); font-weight:600; text-decoration:none; background:var(--white); }
.loc-areas-list a:hover{ border-color:var(--green); }
.loc-map{ border:0; width:100%; min-height:360px; height:100%; border-radius:16px; display:block; }
.brc-faq details{ border:1px solid var(--line); border-radius:12px; background:var(--white); margin-bottom:.8rem; overflow:hidden; }
.brc-faq summary{ cursor:pointer; list-style:none; padding:1.1rem 1.3rem; font-family:'Manrope',sans-serif; font-weight:700; color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.brc-faq summary::-webkit-details-marker{ display:none; }
.brc-faq summary::after{ content:"+"; font-size:1.5rem; color:var(--green-soft); font-weight:400; line-height:1; flex:none; transition:transform .2s ease; }
.brc-faq details[open] summary{ color:var(--green); }
.brc-faq details[open] summary::after{ transform:rotate(45deg); }
.brc-faq__a{ padding:0 1.3rem 1.2rem; color:var(--text); line-height:1.65; }
.brc-faq__a p{ margin:0; }
