/* ==========================================================================
   BOWLSSURE — DESIGN LAYER
   Deep green + gold, Manrope / Instrument Sans.
   Rebuilt for accessibility, performance and a calmer premium finish.
   Loaded by the Bowls Sure Frontend mu-plugin. Fonts are preloaded there too.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root{
  /* Brand — unchanged */
  --bs-deep:#0F5132;
  --bs-green:#17703F;
  --bs-green-deep:#0B3E26;
  --bs-gold:#D4AF37;
  --bs-gold-deep:#A8862A;
  /* Accessible gold for TEXT on light grounds. #D4AF37 on white is 2.1:1. */
  --bs-gold-ink:#856612;

  --bs-ink:#22282A;
  --bs-muted:#5C6660;
  --bs-line:#DDE1DC;
  --bs-hairline:#E4E8E3;
  --bs-surface:#F5F6F3;
  --bs-surface-2:#EDF0EA;
  --bs-white:#FFFFFF;

  /* Ink on dark grounds */
  --bs-on-deep:#FFFFFF;
  --bs-on-deep-soft:#D9E2DA;
  --bs-on-deep-mute:#DCE4DA; /* contrast fix: was #B5C4B8 (~3.4:1 on the lightest green gradient stop, failing AA); now ~4.7:1+ everywhere it's used */

  /* Radii */
  --bs-r-xs:6px;
  --bs-r-sm:10px;
  --bs-r-md:18px;
  --bs-r-lg:26px;
  --bs-r-pill:999px;

  /* Type */
  --bs-head:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --bs-body:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  /* Space scale */
  --bs-s1:8px; --bs-s2:14px; --bs-s3:22px; --bs-s4:34px;
  --bs-s5:52px; --bs-s6:76px; --bs-s7:110px;
  --bs-section:clamp(48px,7.2vw,116px); /* was 68px min: locked mobile section padding above the 32-56px target */
  --bs-section-lg:clamp(56px,9vw,148px); /* was 84px min: same issue on major sections */
  --bs-gutter:clamp(20px,4vw,56px);
  --bs-measure:1280px;

  /* Elevation */
  --bs-sh-1:0 1px 2px rgba(15,81,50,.06),0 6px 16px rgba(15,81,50,.06);
  --bs-sh-2:0 2px 4px rgba(15,81,50,.07),0 14px 34px rgba(15,81,50,.10);
  --bs-sh-3:0 4px 10px rgba(15,81,50,.08),0 28px 60px rgba(15,81,50,.16);

  --bs-ease:cubic-bezier(0.2,0.8,0.24,1);

  /* Hero frame: WebP, sized per breakpoint. The source photograph is small,
     so it is re-sampled once at build time rather than upscaled by the browser. */
  --bs-hero-img:url('/wp-content/uploads/2026/08/bowls-green-hero-1400.webp');
}

/* --------------------------------------------------------------------------
   2. BASE
   -------------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }
html,body{ overflow-x:clip; }
body{
  font-family:var(--bs-body);
  font-size:17px;
  line-height:1.62;
  color:var(--bs-ink);
  background:var(--bs-white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{
  font-family:var(--bs-head);
  font-weight:800;
  color:var(--bs-deep);
  letter-spacing:-0.028em;
  line-height:1.06;
  text-wrap:balance;
}
h1{ font-size:clamp(2.4rem,5.4vw,4.4rem); }
h2{ font-size:clamp(1.85rem,3.6vw,3rem); line-height:1.08; }
h3{ font-size:clamp(1.15rem,1.7vw,1.4rem); line-height:1.2; letter-spacing:-0.018em; }
p{ max-width:66ch; }
a{ color:var(--bs-green); text-underline-offset:3px; }
a:hover{ color:var(--bs-deep); }
strong{ font-weight:600; }

.bs-lead{
  font-size:clamp(1.05rem,1.3vw,1.22rem);
  color:var(--bs-muted);
  line-height:1.56;
  max-width:60ch;
}
.bs-accent{ color:var(--bs-gold-ink); }
.bs-deep-ground .bs-accent,
.bs-stage .bs-accent{ color:var(--bs-gold); }
.bs-footnote{ font-size:.92rem; color:var(--bs-muted); max-width:76ch; }
.bs-eyebrow{
  font-family:var(--bs-head);
  font-weight:700;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--bs-gold-ink);
  margin:0 0 var(--bs-s2);
}
.bs-deep-ground .bs-eyebrow,
.bs-stage .bs-eyebrow{ color:var(--bs-gold); }

/* Grounds */
.bs-section{ padding-block:var(--bs-section); }
.bs-section--lg{ padding-block:var(--bs-section-lg); }
.bs-surface{ background:var(--bs-surface); }
.bs-deep-ground{
  background:linear-gradient(162deg,var(--bs-green) 0%,var(--bs-deep) 46%,var(--bs-green-deep) 100%);
  position:relative;
  isolation:isolate;
}
.bs-deep-ground h1,.bs-deep-ground h2,.bs-deep-ground h3,.bs-deep-ground h4{ color:var(--bs-on-deep); }
.bs-deep-ground p{ color:var(--bs-on-deep-soft); }
.bs-deep-ground .bs-lead{ color:var(--bs-on-deep-soft); }
.bs-deep-ground .bs-footnote{ color:var(--bs-on-deep-mute); }
.bs-deep-ground a{ color:var(--bs-gold); }

/* Full-bleed sections with a held reading column */
.site .content-container,
.site #primary,
.site .content-area,
.entry-content-wrap,
.entry-content{
  max-width:none !important;
  padding-inline:0 !important;
  margin-inline:0 !important;
  width:100% !important;
}
.entry-content > .alignfull,
.wp-block-group.alignfull{
  width:100% !important;
  max-width:100% !important;
  margin-inline:0 !important;
}
.wp-block-group.alignfull > .wp-block-group__inner-container{
  max-width:var(--bs-measure);
  margin-inline:auto;
  padding-inline:var(--bs-gutter);
  box-sizing:border-box;
}

/* Skip link */
.bs-skip{
  position:absolute; left:-9999px; top:0; z-index:9999;
  background:var(--bs-deep); color:#fff; padding:14px 22px;
  font-family:var(--bs-head); font-weight:700; border-radius:0 0 var(--bs-r-sm) 0;
}
.bs-skip:focus{ left:0; color:#fff; }

/* Focus: visible on both light and dark grounds */
:where(a,button,input,select,textarea,summary,details,.wp-block-button__link):focus-visible{
  outline:3px solid var(--bs-gold);
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(15,81,50,.30);
  border-radius:var(--bs-r-xs);
}

/* --------------------------------------------------------------------------
   3. BUTTONS
   -------------------------------------------------------------------------- */
.wp-block-button__link,
.bs-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--bs-head); font-weight:700; font-size:1rem; line-height:1.15;
  border-radius:var(--bs-r-pill);
  padding:16px 32px;
  border:1.5px solid transparent;
  text-decoration:none;
  position:relative; isolation:isolate;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
/* Primary: gold with ink text — 7.1:1 */
.is-style-fill .wp-block-button__link,
.bs-btn--primary,
.wp-block-button:not(.bs-ghost):not(.is-style-outline) > .wp-block-button__link{
  background:var(--bs-gold);
  color:var(--bs-ink);
  box-shadow:0 6px 18px rgba(168,134,42,.28);
}
.is-style-fill .wp-block-button__link:hover,
.bs-btn--primary:hover,
.wp-block-button:not(.bs-ghost):not(.is-style-outline) > .wp-block-button__link:hover{
  background:var(--bs-gold-deep); color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(168,134,42,.34);
}
/* Ghost on light */
.bs-btn-ghost,
.bs-btn--ghost{
  background:transparent !important;
  border-color:var(--bs-deep) !important;
  color:var(--bs-deep) !important;
  box-shadow:none !important;
}
.bs-btn-ghost:hover,
.bs-btn--ghost:hover{
  background:var(--bs-deep) !important;
  color:#fff !important;
  transform:translateY(-2px);
}
/* Ghost on dark grounds */
.bs-stage .bs-btn-ghost,
.bs-deep-ground .bs-btn-ghost{
  border-color:rgba(255,255,255,.66) !important;
  color:#fff !important;
}
.bs-stage .bs-btn-ghost:hover,
.bs-deep-ground .bs-btn-ghost:hover{
  background:#fff !important;
  color:var(--bs-deep) !important;
}
/* Sheen paints BEHIND the label. Text nodes cannot be z-indexed, so the
   overlay must sit below the content box, not above it. */
.wp-block-button__link::after{
  content:''; position:absolute; inset:0; z-index:-1;
  border-radius:inherit;
  background:rgba(255,255,255,.18);
  transform:scaleX(0); transform-origin:left;
  transition:transform .42s var(--bs-ease);
}
.wp-block-button__link:hover::after{ transform:scaleX(1); }
.wp-block-buttons{ gap:14px; }

/* --------------------------------------------------------------------------
   4. HERO
   -------------------------------------------------------------------------- */
.bs-stage{
  position:relative; isolation:isolate;
  background:var(--bs-deep);
  min-height:min(88vh,860px);
  display:flex; align-items:flex-end;
  padding-block:clamp(92px,14vh,168px) clamp(40px,6vh,68px);
  overflow:hidden;
}
.bs-stage::before{
  content:''; position:absolute; inset:-2%; z-index:-2;
  background:var(--bs-hero-img) center 54%/cover no-repeat;
  filter:saturate(.72) contrast(1.06) brightness(.80);
  transform:scale(1.04);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.35) 80%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.35) 80%,transparent 100%);
}
.bs-stage::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(115% 88% at 76% 16%, rgba(15,81,50,.10) 0%, rgba(15,81,50,.72) 60%, var(--bs-deep) 100%),
    linear-gradient(6deg, var(--bs-deep) 14%, rgba(15,81,50,.80) 54%, rgba(15,81,50,.34) 100%);
}
.bs-stage > .wp-block-group__inner-container{ width:100%; max-width:var(--bs-measure); }
@media (min-width:1000px){
  :root{ --bs-hero-img:url('/wp-content/uploads/2026/08/bowls-green-hero-2400.webp'); }
}

.bs-stage__head{
  color:#fff; max-width:17ch; margin:0;
  font-size:clamp(2.4rem,5.2vw,4.5rem);
  line-height:1.02; letter-spacing:-0.034em;
  text-shadow:0 2px 26px rgba(11,62,38,.45);
}
.bs-stage__lead{
  color:var(--bs-on-deep-soft);
  margin-top:var(--bs-s3);
  max-width:46ch;
  font-size:clamp(1.05rem,1.35vw,1.24rem);
}
.bs-stage__rail{
  margin-top:var(--bs-s4); max-width:none;
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px;
}
.bs-rail__fig{
  font-family:var(--bs-head); font-weight:800; letter-spacing:-0.03em;
  font-size:clamp(1.7rem,3vw,2.5rem);
  color:var(--bs-gold);
  line-height:1.12;
}
.bs-rail__unit{
  font-family:var(--bs-head); font-weight:600; font-size:.95rem;
  color:#fff; letter-spacing:.01em;
}
.bs-rail__sep{
  width:1px; height:24px; background:rgba(255,255,255,.34);
  margin-inline:8px; align-self:center;
}
.bs-stage__actions{ margin-top:var(--bs-s4); }

/* Underwriter / FSP reassurance directly under the hero CTAs */
.bs-stage__trust{
  margin-top:var(--bs-s3);
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px;
  font-size:.92rem; color:var(--bs-on-deep-soft); max-width:none;
}
.bs-stage__trust span{ display:inline-flex; align-items:center; gap:8px; }
.bs-stage__trust span::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--bs-gold); flex:none;
}

/* Hero cards — the only glass on the site, always over dark photography */
.bs-glassrow{ margin-top:clamp(40px,5.6vh,68px); gap:14px; }
.bs-glass{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.24);
  border-radius:var(--bs-r-md);
  padding:20px 22px 22px;
  backdrop-filter:blur(10px) saturate(1.06);
  -webkit-backdrop-filter:blur(10px) saturate(1.06);
  box-shadow:0 18px 40px rgba(11,62,38,.34);
  transition:transform .32s var(--bs-ease),border-color .25s ease,background-color .25s ease;
}
.bs-glass:hover{
  transform:translateY(-5px);
  border-color:var(--bs-gold);
  background:rgba(255,255,255,.14);
}
.bs-glass__t{
  font-family:var(--bs-head); font-weight:700; font-size:1.02rem;
  color:#fff; margin:0 0 6px; letter-spacing:-0.01em;
}
.bs-glass__s{ margin:0; font-size:.9rem; color:var(--bs-on-deep-soft); }

@media (max-width:900px){
  .bs-glassrow{ flex-wrap:wrap !important; gap:12px; }
  .bs-glass{ flex-basis:calc(50% - 6px) !important; }
}
@media (max-width:781px){
  .bs-stage{ min-height:0; padding-block:56px 44px; align-items:flex-start; }
  .bs-stage::before{ background-position:center 50%; }
  .bs-stage__head{ max-width:none; }
  .bs-stage__actions .wp-block-button{ width:100%; }
  .bs-stage__actions .wp-block-button__link{ width:100%; }
  .bs-glassrow{ margin-top:32px; }
  .bs-glass{ flex-basis:calc(50% - 6px) !important; padding:14px 16px; }
  .bs-glass__t{ font-size:.95rem; }
  .bs-glass__s{ font-size:.84rem; }
  .bs-rail__sep{ display:none; }
}

/* --------------------------------------------------------------------------
   5. TRUST BAR — credentials, not decoration
   -------------------------------------------------------------------------- */
.bs-trustbar{ background:var(--bs-surface); border-bottom:1px solid var(--bs-hairline); }
.bs-trustbar > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2.4vw,34px);
  padding-block:clamp(28px,3.4vw,44px);
}
.bs-trust{ margin:0; }
.bs-trust__k{
  display:block; font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  color:var(--bs-deep); letter-spacing:-0.02em; margin-bottom:4px;
}
.bs-trust__v{ display:block; font-size:.92rem; color:var(--bs-muted); line-height:1.5; }
@media (max-width:781px){
  .bs-trustbar > .wp-block-group__inner-container{ grid-template-columns:1fr 1fr; }
}

/* --------------------------------------------------------------------------
   6. STATEMENT
   -------------------------------------------------------------------------- */
.bs-statement{ padding-block:clamp(72px,8.4vw,132px); }
.bs-statement > .wp-block-group__inner-container{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);
  gap:clamp(28px,5vw,80px);
  align-items:end;
}
.bs-statement > .wp-block-group__inner-container > *{ max-width:none; }
.bs-statement__head{
  font-size:clamp(1.8rem,3.6vw,3.1rem);
  max-width:20ch; line-height:1.1; margin:0;
}
.bs-statement__sub{
  margin:0; color:var(--bs-muted); font-size:1.06rem; max-width:40ch;
  border-left:2px solid var(--bs-gold); padding-left:20px;
}
@media (max-width:900px){
  .bs-statement > .wp-block-group__inner-container{ grid-template-columns:1fr; align-items:start; }
  .bs-statement__head{ max-width:none; }
  .bs-statement__sub{ margin-top:var(--bs-s3); }
}

/* --------------------------------------------------------------------------
   7. FIGURE PANELS
   Solid tinted panels. No backdrop-filter, no infinite motion.
   -------------------------------------------------------------------------- */
.bs-ctrs{ gap:14px; align-items:stretch; margin-top:0; }
.bs-ctr{
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(24px,2.6vw,38px);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--bs-r-md);
  transition:border-color .25s ease,background-color .25s ease;
}
.bs-ctr:hover{ border-color:rgba(212,175,55,.8); background:rgba(255,255,255,.10); }
.bs-ctr__fig{
  font-family:var(--bs-head); font-weight:800; letter-spacing:-0.035em;
  line-height:1.14; margin:0 0 10px;
  color:var(--bs-gold);
  font-size:clamp(2.1rem,4.2vw,3.4rem);
}
.bs-ctr.is-lead .bs-ctr__fig{ font-size:clamp(2.8rem,6.4vw,5rem); }
.bs-ctr__lbl{ margin:0; font-size:.98rem; color:var(--bs-on-deep-soft); }
.bs-ctr.is-lead .bs-ctr__lbl{ font-size:1.06rem; max-width:34ch; }
@media (max-width:900px){
  .bs-ctrs{ flex-wrap:wrap !important; }
  .bs-ctr{ flex-basis:100% !important; }
}

/* Gradient ink is reserved for dark grounds, where it stays legible.
   Extra block padding stops tall figures being clipped by the text box. */
.bs-deep-ground .bs-ctr__fig,
.bs-stage .bs-rail__fig,
.bs-fullhouse .bs-figure__num{
  background:linear-gradient(96deg,#EFD98A 0%,var(--bs-gold) 46%,#C39C2E 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  padding-block:.06em;
}
/* Never let a scroll-driven reveal be the only thing making a number visible */
.bs-reveal-fig{ display:inline-block; opacity:1; }

/* Figure panels and the kit list share one deep ground, so the seam between
   two gradients disappears. Space them properly instead. */
.bs-figures .bs-ctrs{ margin-bottom:clamp(56px,7vw,100px); }
.bs-figures > .wp-block-group__inner-container > h2{ margin-top:0; }

/* --------------------------------------------------------------------------
   8. KIT LIST
   -------------------------------------------------------------------------- */
.bs-kit__list{ margin-top:clamp(30px,3.6vw,50px); }
.bs-kit__list .bs-kit__row{
  margin-block:0; gap:clamp(10px,3vw,40px);
  padding-block:clamp(16px,2vw,26px);
  border-top:1px solid rgba(255,255,255,.18);
  align-items:baseline;
  transition:padding-left .26s var(--bs-ease);
}
.bs-kit__list .bs-kit__row:last-child{ border-bottom:1px solid rgba(255,255,255,.18); }
.bs-kit__list .bs-kit__row:hover{ padding-left:12px; }
.bs-kit__list .bs-kit__row h3{
  margin:0; font-size:clamp(1.3rem,2.4vw,2rem);
  color:#fff; letter-spacing:-0.028em; transition:color .2s ease;
}
.bs-kit__list .bs-kit__row:hover h3{ color:var(--bs-gold); }
.bs-kit__list .bs-kit__row p{ margin:0; color:var(--bs-on-deep-soft); font-size:1rem; }
.bs-kit .bs-footnote{ margin-top:var(--bs-s4); }
.bs-i{
  width:clamp(24px,2.2vw,30px); height:auto;
  color:var(--bs-gold); flex:none;
  transition:transform .38s var(--bs-ease);
}
.bs-kit__name{ display:flex; align-items:center; gap:clamp(12px,1.6vw,20px); }
.bs-kit__name h3{ margin:0; }
.bs-kit__row:hover .bs-i{ transform:rotate(-10deg) scale(1.06); }
.bs-section:not(.bs-deep-ground):not(.bs-stage) .bs-i{ color:var(--bs-gold-ink); }
.bs-deep-ground .bs-i{ color:var(--bs-gold); }

/* --------------------------------------------------------------------------
   9. CLAIMS TIMELINE
   -------------------------------------------------------------------------- */
.bs-claims__intro{ max-width:52ch; }
.bs-tl{
  list-style:none; margin:clamp(28px,3.4vw,44px) 0 clamp(40px,4.6vw,64px);
  padding:0 0 0 34px; position:relative;
}
.bs-tl::before{
  content:''; position:absolute; left:7px; top:10px; bottom:10px; width:2px;
  background:linear-gradient(var(--bs-gold),rgba(212,175,55,.12));
}
.bs-tl__item{ position:relative; padding:0 0 28px; max-width:62ch; }
.bs-tl__item:last-child{ padding-bottom:0; }
.bs-tl__dot{
  position:absolute; left:-34px; top:6px; width:16px; height:16px;
  border-radius:50%; background:var(--bs-white); border:3px solid var(--bs-gold);
}
.bs-surface .bs-tl__dot{ background:var(--bs-surface); }
.bs-tl__h{ margin:0 0 6px; font-size:clamp(1.12rem,1.6vw,1.36rem); }
.bs-tl__p{ margin:0; color:var(--bs-muted); }

/* Settlement split */
.bs-split{ gap:clamp(28px,5vw,72px); }
.bs-paths2 .bs-path__h{
  margin-top:0; padding-top:18px;
  border-top:2px solid var(--bs-deep);
}
.bs-paths2 .bs-path__h + p{ margin-top:8px; color:var(--bs-muted); }
.bs-paths2 > *:nth-child(3){ margin-top:var(--bs-s4); }

/* --------------------------------------------------------------------------
   10. THE GAP + COMPARISON TABLE
   -------------------------------------------------------------------------- */
.bs-gap .bs-split{ gap:clamp(30px,5vw,72px); align-items:center; }
.bs-gap h2{ max-width:16ch; margin-bottom:var(--bs-s3); }
.bs-gap .wp-block-buttons{ margin-top:var(--bs-s4); }
.bs-gap__art{ position:relative; }
.bs-rings{
  width:min(112%,520px); height:auto;
  color:var(--bs-deep); opacity:.20; max-width:none;
}
.bs-rings__spin{ transform-origin:50% 50%; animation:bs-turn 120s linear infinite; }

.bs-compare{ margin:clamp(34px,4vw,56px) 0 0; overflow-x:auto; }
.bs-compare table{
  width:100%; border-collapse:separate; border-spacing:0; font-size:1rem;
  background:var(--bs-white); border-radius:var(--bs-r-md);
  box-shadow:var(--bs-sh-1); overflow:hidden;
}
.bs-compare th,.bs-compare td{
  text-align:left; padding:18px 22px; vertical-align:top;
  border-bottom:1px solid var(--bs-hairline);
}
.bs-compare thead th{
  font-family:var(--bs-head); font-weight:800; font-size:.98rem;
  color:var(--bs-deep); background:var(--bs-surface-2);
  border-bottom:2px solid var(--bs-deep); white-space:nowrap;
}
.bs-compare thead th:last-child{ color:var(--bs-gold-ink); }
.bs-compare tbody th{
  font-family:var(--bs-head); font-weight:700; color:var(--bs-ink); width:26%;
}
.bs-compare td{ color:var(--bs-muted); }
.bs-compare td.bs-yes{
  color:var(--bs-ink); font-weight:500;
  background:rgba(212,175,55,.07);
  box-shadow:inset 3px 0 0 var(--bs-gold);
}
.bs-compare tbody tr:last-child th,
.bs-compare tbody tr:last-child td{ border-bottom:0; }
.bs-compare tbody tr:hover th,
.bs-compare tbody tr:hover td{ background:var(--bs-surface); }
.bs-compare tbody tr:hover td.bs-yes{ background:rgba(212,175,55,.12); }
.bs-compare figcaption{ margin-top:14px; font-size:.88rem; color:var(--bs-muted); }
@media (max-width:700px){
  .bs-compare table{ min-width:620px; }
  .bs-compare th,.bs-compare td{ padding:13px 15px; font-size:.93rem; }
}

/* --------------------------------------------------------------------------
   11. FULLHOUSE
   -------------------------------------------------------------------------- */
.bs-fullhouse{ padding-block:clamp(72px,8.4vw,124px); text-align:center; overflow:hidden; }
.bs-fullhouse__lead{ font-size:clamp(1.45rem,2.8vw,2.4rem); max-width:none; margin:0; }
.bs-figure{ margin:clamp(8px,1.4vw,18px) 0 0; line-height:1; padding-bottom:.06em; }
.bs-figure__num{
  display:inline-block; font-family:var(--bs-head); font-weight:800;
  letter-spacing:-0.045em;
  font-size:clamp(3.2rem,15vw,11rem);
  color:var(--bs-gold);
}
.bs-fullhouse__note{
  margin:clamp(20px,3vw,34px) auto 0;
  color:var(--bs-on-deep-soft); max-width:58ch;
}
.bs-fullhouse .wp-block-buttons{ justify-content:center; margin-top:var(--bs-s4); }

/* --------------------------------------------------------------------------
   12. FAQ
   -------------------------------------------------------------------------- */
.bs-faq > .wp-block-group__inner-container{
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);
  column-gap:clamp(26px,4vw,68px); row-gap:0; align-items:start;
}
.bs-faq > .wp-block-group__inner-container > *{ max-width:none; margin-inline:0; }
.bs-faq .bs-footnote{ grid-column:2; margin-top:var(--bs-s4); }
.bs-faq h2{ grid-column:1; margin:0; position:sticky; top:120px; max-width:13ch; }
.bs-faq__aside{ grid-column:1; margin:var(--bs-s3) 0 0; color:var(--bs-muted); font-size:.98rem; }
.bs-faq .bs-qa{
  grid-column:2; margin:0;
  border-bottom:1px solid var(--bs-line);
  padding:4px 0;
}
.bs-faq .bs-qa:first-of-type{ border-top:1px solid var(--bs-line); }
.bs-faq .bs-qa summary{
  font-family:var(--bs-head); font-weight:700;
  font-size:clamp(1.02rem,1.4vw,1.18rem);
  color:var(--bs-deep); cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; gap:20px; align-items:center;
  padding:18px 0; min-height:44px;
}
.bs-faq .bs-qa summary::-webkit-details-marker{ display:none; }
.bs-faq .bs-qa summary::after{
  content:''; flex:none; width:14px; height:14px;
  background:
    linear-gradient(var(--bs-gold-ink),var(--bs-gold-ink)) center/100% 2px no-repeat,
    linear-gradient(var(--bs-gold-ink),var(--bs-gold-ink)) center/2px 100% no-repeat;
  transition:transform .25s var(--bs-ease);
}
.bs-faq .bs-qa[open] summary::after{ transform:rotate(90deg); background-size:100% 2px,0 100%; }
.bs-faq .bs-qa p{ margin:0 0 20px; color:var(--bs-muted); max-width:64ch; }
@media (max-width:900px){
  .bs-faq > .wp-block-group__inner-container{ grid-template-columns:1fr; }
  .bs-faq h2{ position:static; max-width:none; margin-bottom:var(--bs-s1); }
  .bs-faq__aside{ margin-bottom:var(--bs-s2); }
  .bs-faq .bs-qa{ grid-column:1; }
  .bs-faq .bs-footnote{ grid-column:1; }
}

/* --------------------------------------------------------------------------
   13. CLOSING CTA
   -------------------------------------------------------------------------- */
.bs-close{ text-align:center; padding-block:clamp(76px,9vw,132px); }
.bs-close h2{ font-size:clamp(2.1rem,4.6vw,3.7rem); max-width:18ch; margin-inline:auto; }
.bs-close p{ margin-inline:auto; margin-top:var(--bs-s3); }
.bs-close .bs-lead{ font-size:clamp(1.05rem,1.4vw,1.28rem); max-width:52ch; }
.bs-close .wp-block-buttons{ justify-content:center; margin-top:var(--bs-s4); }
.bs-close .wp-block-button__link{ padding:19px 44px; font-size:1.06rem; }
.bs-close__reassure{
  margin-top:var(--bs-s3); font-size:.92rem; color:var(--bs-on-deep-mute);
}

/* --------------------------------------------------------------------------
   14. INTERIOR PAGES
   -------------------------------------------------------------------------- */
.bs-pagehead{
  background:linear-gradient(162deg,var(--bs-green) 0%,var(--bs-deep) 52%,var(--bs-green-deep) 100%);
  padding-block:clamp(60px,7.4vw,104px);
}
.bs-pagehead h1{ color:#fff; max-width:18ch; font-size:clamp(2.1rem,4.4vw,3.5rem); }
.bs-pagehead .bs-lead{ color:var(--bs-on-deep-soft); margin-top:var(--bs-s3); max-width:54ch; }
.bs-crumbs{
  margin:0 0 var(--bs-s2); font-size:.86rem; color:var(--bs-on-deep-mute);
  font-family:var(--bs-head); font-weight:600; letter-spacing:.02em;
}
.bs-crumbs a{ color:var(--bs-on-deep-soft); text-decoration:none; }
.bs-crumbs a:hover{ color:#fff; text-decoration:underline; }
/* Contrast fix: ".entry-content a:not(.wp-block-button__link):not(.bs-btn-ghost)"
   (0,3,1) outranks the two rules above (0,1,1), repainting the breadcrumb
   link as --bs-deep (dark green) on the dark green pagehead gradient —
   effectively invisible. Real ancestor classes give this enough specificity
   to win without !important. */
.wp-block-group.alignfull.bs-pagehead .bs-crumbs a{ color:var(--bs-on-deep-soft); }
.wp-block-group.alignfull.bs-pagehead .bs-crumbs a:hover{ color:#fff; }

.bs-spec{ margin-top:clamp(30px,3.6vw,48px); }
.bs-spec .bs-spec__row{
  margin-block:0; gap:clamp(12px,4vw,52px);
  padding-block:22px; border-top:1px solid var(--bs-line); align-items:baseline;
}
.bs-spec .bs-spec__row:last-child{ border-bottom:1px solid var(--bs-line); }
.bs-spec .bs-spec__row h3{ margin:0; }
.bs-spec .bs-spec__row p{ margin:0; color:var(--bs-muted); max-width:56ch; }

.bs-where{
  background:linear-gradient(162deg,var(--bs-green) 0%,var(--bs-deep) 58%,var(--bs-green-deep) 100%);
  border-radius:var(--bs-r-lg);
  padding:clamp(26px,3vw,38px); align-self:start;
}
.bs-where__item{
  font-family:var(--bs-head); font-weight:700;
  font-size:clamp(1.05rem,1.6vw,1.35rem);
  color:#fff; margin:0; padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; gap:14px;
}
.bs-where__icon{
  flex:none; width:26px; height:26px; color:var(--bs-gold);
}
.bs-where__item:first-child{ padding-top:0; }
.bs-where__item:last-child{ border-bottom:0; padding-bottom:0; }
/* Contrast fix: when this panel sits inside a .bs-surface/.bs-mist wrapper
   (as on What We Cover), ".bs-surface p" (0,1,1) outranks ".bs-where__item"
   (0,1,0) and repaints the white text as muted grey-on-green. Scope the
   white explicitly to the dark panel so it always wins. */
.bs-where .bs-where__item{ color:#fff; }

.bs-fineprint{ border-top:1px solid var(--bs-line); }
.bs-fineprint h2{ font-size:clamp(1.2rem,1.8vw,1.5rem); }
.bs-fineprint p{ color:var(--bs-muted); max-width:72ch; }

.bs-cta{ text-align:center; border-top:1px solid var(--bs-line); }
.bs-cta h2{ max-width:22ch; margin-inline:auto; }
.bs-cta p{ margin-inline:auto; margin-top:var(--bs-s2); }
.bs-cta .wp-block-buttons{ justify-content:center; margin-top:var(--bs-s4); }
.bs-deep-ground .bs-bignum{ color:var(--bs-gold); font-size:1.24em; }

/* Contact cards */
.bs-contact__grid > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,2vw,24px);
}
.bs-contact__card{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); padding:clamp(22px,2.6vw,32px);
  box-shadow:var(--bs-sh-1); margin:0;
}
.bs-contact__card h3{ margin:0 0 8px; font-size:1.08rem; }
.bs-contact__card p{ margin:0; color:var(--bs-muted); font-size:1rem; }
.bs-contact__card a{ font-family:var(--bs-head); font-weight:700; color:var(--bs-deep); text-decoration:none; }
.bs-contact__card a:hover{ text-decoration:underline; }
@media (max-width:781px){
  .bs-contact__grid > .wp-block-group__inner-container{ grid-template-columns:1fr; }
}

/* --------------------------------------------------------------------------
   15. HEADER
   -------------------------------------------------------------------------- */
.site-branding img,
#main-header .site-branding img{ max-height:64px; width:auto; }
#main-header .header-navigation .menu-item > a{
  font-family:var(--bs-head); font-weight:700; font-size:.98rem; color:var(--bs-ink);
}
#main-header .header-navigation .menu-item > a:hover{ color:var(--bs-green); }
#main-header .header-navigation .menu-item.current-menu-item > a{ color:var(--bs-deep); }
#main-header .header-navigation .menu-item:last-child > a{
  background:var(--bs-gold); color:var(--bs-ink);
  border-radius:var(--bs-r-pill); padding:11px 24px;
  transition:background-color .2s ease,color .2s ease;
}
#main-header .header-navigation .menu-item:last-child > a:hover{
  background:var(--bs-gold-deep); color:#fff;
}
.bs-headcall{
  font-family:var(--bs-head); font-weight:700; font-size:.95rem;
  color:var(--bs-deep); text-decoration:none; white-space:nowrap;
  display:inline-flex; align-items:center; gap:8px;
}
.bs-headcall:hover{ color:var(--bs-green); text-decoration:underline; }
.bs-headcall svg{ width:16px; height:16px; flex:none; }
#main-header{ box-shadow:0 1px 0 var(--bs-hairline); }

/* Sticky masthead. The quote CTA stays reachable the whole way down. */
@media (min-width:782px){
  #masthead,.site-header{
    position:sticky; top:0; z-index:100;
    background:#fff;
    transition:box-shadow .2s ease;
  }
  body.bs-scrolled #masthead,
  body.bs-scrolled .site-header{ box-shadow:0 6px 24px rgba(15,81,50,.10); }
  .admin-bar #masthead,.admin-bar .site-header{ top:32px; }
}
@media (max-width:781px){
  #masthead,.site-header{ position:sticky; top:0; z-index:100; background:#fff; }
}
.bs-menu-call{ margin-right:6px; }
@media (max-width:1080px){ .bs-menu-call{ display:none; } }
.mobile-navigation .bs-menu-call{ display:block; }

/* Sticky mobile action bar */
.bs-mobilebar{
  position:fixed; left:0; right:0; bottom:0; z-index:120;
  display:none; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--bs-hairline);
  box-shadow:0 -6px 24px rgba(15,81,50,.10);
}
.bs-mobilebar a{
  flex:1 1 0; text-align:center; justify-content:center;
  font-family:var(--bs-head); font-weight:700; font-size:.98rem;
  padding:14px 10px; border-radius:var(--bs-r-pill); text-decoration:none;
  display:inline-flex; align-items:center; gap:8px; min-height:48px;
}
.bs-mobilebar .bs-mb-call{ background:var(--bs-surface-2); color:var(--bs-deep); border:1px solid var(--bs-line); }
.bs-mobilebar .bs-mb-quote{ background:var(--bs-gold); color:var(--bs-ink); }
.bs-mobilebar .bs-mb-quote:hover{ background:var(--bs-gold-deep); color:#fff; }
@media (max-width:781px){
  .bs-mobilebar{ display:flex; }
  body{ padding-bottom:78px; }
}

/* --------------------------------------------------------------------------
   16. FOOTER
   -------------------------------------------------------------------------- */
#colophon,.site-footer{ background:var(--bs-green-deep); }
.site-footer .footer-navigation .menu-item > a,
#colophon .menu-item > a{
  color:var(--bs-on-deep-soft) !important;
  font-family:var(--bs-head); font-weight:600; font-size:.96rem;
  text-decoration:none;
}
.site-footer .footer-navigation .menu-item > a:hover,
#colophon .menu-item > a:hover{ color:#fff !important; text-decoration:underline; }
.bs-footer-legal{ color:var(--bs-on-deep-soft); padding-block:var(--bs-s3); }
.bs-footer-legal p{ max-width:84ch; margin:0 0 12px; font-size:.96rem; }
.bs-footer-legal strong{ color:#fff; }
.bs-footer-legal a{ color:var(--bs-gold); text-decoration:none; }
.bs-footer-legal a:hover{ text-decoration:underline; color:#EFD98A; }
.bs-footer-contact{ font-family:var(--bs-head); font-weight:700; }
.bs-footer-small{ font-size:.86rem; color:var(--bs-on-deep-mute); }
.bs-footer-badges{
  display:flex; flex-wrap:wrap; gap:10px 12px; margin:0 0 16px; padding:0; list-style:none;
}
.bs-footer-badges li{
  font-family:var(--bs-head); font-weight:700; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.08em;
  color:var(--bs-on-deep-soft);
  border:1px solid rgba(255,255,255,.22); border-radius:var(--bs-r-pill);
  padding:7px 14px;
}
@media (max-width:900px){
  /* Kadence's footer-widget column offset (#colophon .footer-html, set via the
     Customizer) is a fixed 300px left margin with no responsive variant; it
     leaves ~40px for content on narrow viewports. Neutralise it below 900px. */
  #colophon .footer-html{ margin-left:0; }
}

/* --------------------------------------------------------------------------
   17. FORMS (Fluent Forms)
   -------------------------------------------------------------------------- */
.bs-quoteform .bs-split{ gap:clamp(28px,4vw,60px); align-items:flex-start; }
.bs-formwrap{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg); padding:clamp(24px,3vw,42px);
  box-shadow:var(--bs-sh-2);
}
.frm-fluent-form .ff-el-group{ margin-bottom:20px; }
.frm-fluent-form .ff-el-input--label label{
  font-family:var(--bs-head); font-weight:700; font-size:1rem;
  color:var(--bs-ink); margin-bottom:8px;
}
.frm-fluent-form input[type=text],
.frm-fluent-form input[type=email],
.frm-fluent-form input[type=tel],
.frm-fluent-form input[type=number],
.frm-fluent-form select,
.frm-fluent-form textarea{
  min-height:52px; width:100%; border-radius:var(--bs-r-sm);
  border:1px solid #C7CFC8; background:var(--bs-white);
  font-family:var(--bs-body); font-size:1.02rem; padding:12px 16px; color:var(--bs-ink);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.frm-fluent-form input::placeholder,
.frm-fluent-form textarea::placeholder{ color:#7B857E; }
.frm-fluent-form input:focus,
.frm-fluent-form select:focus,
.frm-fluent-form textarea:focus{
  border-color:var(--bs-green);
  box-shadow:0 0 0 4px rgba(23,112,63,.18);
  outline:none;
}
.frm-fluent-form .ff-el-form-check{ margin-bottom:10px; }
.frm-fluent-form .ff-el-form-check label{ font-size:1rem; color:var(--bs-ink); cursor:pointer; }
.frm-fluent-form input[type=radio],
.frm-fluent-form input[type=checkbox]{
  width:22px; height:22px; accent-color:var(--bs-deep); margin-right:10px;
}
.frm-fluent-form .ff-el-section-break{
  border-top:2px solid var(--bs-deep); padding-top:16px; margin:34px 0 20px;
}
.frm-fluent-form .ff-el-section-break:first-child{ margin-top:0; }
.frm-fluent-form .ff-section-break-title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.15rem,1.8vw,1.42rem); color:var(--bs-deep);
  margin:0 0 6px; letter-spacing:-0.02em;
}
.frm-fluent-form .ff-section-break-desc{ color:var(--bs-muted); font-size:.98rem; margin:0; }
.frm-fluent-form .ff-btn-submit{
  background:var(--bs-gold) !important; color:var(--bs-ink) !important;
  font-family:var(--bs-head); font-weight:700; font-size:1.06rem;
  border-radius:var(--bs-r-pill) !important; padding:17px 40px !important;
  border:none; min-height:54px;
  transition:transform .18s ease,background-color .18s ease,color .18s ease;
}
.frm-fluent-form .ff-btn-submit:hover{
  background:var(--bs-gold-deep) !important; color:#fff !important; transform:translateY(-2px);
}
.frm-fluent-form .error,
.frm-fluent-form .text-danger{ color:#9B2C1F; font-size:.94rem; }
.ff-message-success{
  background:rgba(23,112,63,.08); border:1px solid var(--bs-green);
  border-radius:var(--bs-r-md); padding:22px 24px; color:var(--bs-deep);
  font-family:var(--bs-head); font-weight:600;
}
.bs-formnote{ font-size:.92rem; color:var(--bs-muted); max-width:62ch; }

/* Compact inline capture used on the homepage */
.bs-capture{ background:var(--bs-surface); }
.bs-capture > .wp-block-group__inner-container{
  display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(28px,4vw,64px); align-items:center;
}
.bs-capture > .wp-block-group__inner-container > *{ max-width:none; }
.bs-capture h2{ max-width:15ch; margin:0 0 var(--bs-s3); }
.bs-capture__points{ list-style:none; margin:var(--bs-s3) 0 0; padding:0; }
.bs-capture__points li{
  position:relative; padding:12px 0 12px 32px;
  border-top:1px solid var(--bs-line); color:var(--bs-ink); font-size:1rem;
}
.bs-capture__points li:last-child{ border-bottom:1px solid var(--bs-line); }
.bs-capture__points li::before{
  content:''; position:absolute; left:2px; top:19px;
  width:9px; height:9px; border-radius:50%; background:var(--bs-gold);
}
@media (max-width:900px){
  .bs-capture > .wp-block-group__inner-container{ grid-template-columns:1fr; }
  .bs-capture h2{ max-width:none; }
}

/* Reassurance panel beside the full quote form */
.bs-aside__box{
  background:linear-gradient(162deg,var(--bs-green) 0%,var(--bs-deep) 54%,var(--bs-green-deep) 100%);
  border-radius:var(--bs-r-lg); padding:clamp(26px,3vw,38px);
  position:sticky; top:120px;
}
.bs-aside__fig{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(2.4rem,4.6vw,3.4rem); color:var(--bs-gold);
  margin:0; line-height:1.12; letter-spacing:-0.04em;
}
.bs-aside__lbl{ color:var(--bs-on-deep-soft); margin:8px 0 22px; font-size:1rem; }
.bs-aside__list{ list-style:none; margin:0; padding:0; }
.bs-aside__list li{
  color:#fff; font-size:1rem; padding:14px 0 14px 28px;
  position:relative; border-top:1px solid rgba(255,255,255,.18);
}
.bs-aside__list li::before{
  content:''; position:absolute; left:0; top:20px;
  width:9px; height:9px; border-radius:50%; background:var(--bs-gold);
}
@media (max-width:900px){
  .bs-aside__box{ position:static; }
  .bs-quoteform .wp-block-column{ flex-basis:100% !important; }
}

/* --------------------------------------------------------------------------
   18. MOTION — restrained, never the only thing making content visible
   -------------------------------------------------------------------------- */
@keyframes bs-turn{ to{ transform:rotate(360deg); } }
@keyframes bs-rise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@keyframes bs-slidein{ from{ opacity:0; transform:translateX(-16px); } to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .bs-statement__head,.bs-statement__sub,.bs-kit__row,.bs-path__h,
    .bs-where,.bs-spec__row,.bs-trust,.bs-ctr{
      animation:bs-rise linear both;
      animation-timeline:view();
      animation-range:entry 2% cover 18%;
    }
    .bs-tl__item{
      animation:bs-slidein linear both;
      animation-timeline:view();
      animation-range:entry 4% cover 22%;
    }
  }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

.wp-block-image{ overflow:hidden; border-radius:var(--bs-r-md); }
.wp-block-image img{ transition:transform .6s var(--bs-ease); }
.wp-block-image:hover img{ transform:scale(1.03); }

/* --------------------------------------------------------------------------
   19. PRINT
   -------------------------------------------------------------------------- */
@media print{
  .bs-mobilebar,#main-header,.site-footer{ display:none !important; }
  .bs-deep-ground,.bs-stage,.bs-pagehead{ background:#fff !important; }
  .bs-deep-ground *,.bs-stage *,.bs-pagehead *{ color:#000 !important; -webkit-text-fill-color:#000 !important; }
}

/* Footer navigation: single tidy row, left aligned with the legal block */
.site-footer .footer-navigation ul,
#colophon .footer-navigation ul{ display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:flex-start; margin:0; padding:0; }
.site-footer .footer-navigation li,#colophon .footer-navigation li{ margin:0; }
.site-footer .footer-navigation,#colophon .footer-navigation{ padding-block:var(--bs-s3); }

/* --------------------------------------------------------------------------
   20. NOT FOUND
   A 404 on an insurance site is a lost lead, not a dead end.
   -------------------------------------------------------------------------- */
.error404 .content-container,
.error404 #primary{ background:var(--bs-surface); }
.error404 section.error,
.error404 .page-content{ max-width:var(--bs-measure); margin-inline:auto; padding-inline:var(--bs-gutter); }
.error404 .entry-content-wrap{ padding-block:clamp(72px,9vw,132px); }
.error404 .page-title,
.error404 h1{ font-size:clamp(2rem,4.4vw,3.4rem); max-width:18ch; margin:0 0 var(--bs-s3); }
.error404 .page-content > p{ color:var(--bs-muted); font-size:clamp(1.02rem,1.3vw,1.18rem); max-width:52ch; }
.error404 .search-form{ margin-top:var(--bs-s3); max-width:520px; }
.error404 .search-field{
  min-height:52px; border-radius:var(--bs-r-sm); border:1px solid #C7CFC8;
  padding:12px 16px; font-family:var(--bs-body); font-size:1.02rem; width:100%;
}
.bs-404{ margin-top:var(--bs-s5); }
.bs-404__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,2vw,22px); margin-top:var(--bs-s3); }
.bs-404__card{
  display:block; background:#fff; border:1px solid var(--bs-hairline); border-radius:var(--bs-r-md);
  padding:22px 24px; text-decoration:none; box-shadow:var(--bs-sh-1);
  transition:transform .25s var(--bs-ease),border-color .25s ease,box-shadow .25s ease;
}
.bs-404__card:hover{ transform:translateY(-4px); border-color:var(--bs-gold); box-shadow:var(--bs-sh-2); }
.bs-404__card strong{
  display:block; font-family:var(--bs-head); font-weight:800; font-size:1.06rem;
  color:var(--bs-deep); margin-bottom:6px; letter-spacing:-0.02em;
}
.bs-404__card span{ display:block; font-size:.94rem; color:var(--bs-muted); line-height:1.5; }
.bs-404__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:var(--bs-s4); }
@media (max-width:781px){ .bs-404__grid{ grid-template-columns:1fr; } }


/* ==========================================================
   AUDIT PASS 1
   ========================================================== */

/* Readability. 17px was a regression for a 60+ audience. */
body{font-size:18px;line-height:1.62;}

/* Two consecutive white grounds produced an invisible seam
   between the quote capture and the FAQ. */
.bs-faq{background:var(--bs-surface);}

/* The ring artwork rotated forever. Continuous compositing costs
   battery and violates the no-perpetual-motion rule. Now scroll linked. */
.bs-rings__spin{animation:none;}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .bs-rings__spin{animation:bs-turn linear both;animation-timeline:view();animation-range:cover 0% cover 100%;transform-origin:50% 50%;}
  }
}


/* ==========================================================
   AUDIT PASS 2. Hero photograph is now a real element.
   ========================================================== */

/* Retire the decorative background layer. The image is markup now,
   so it carries alt text, a source set and an LCP priority hint. */
.bs-stage::before{content:none !important;background:none !important;}

.bs-stage{position:relative;isolation:isolate;overflow:hidden;}
.bs-stage__media{position:absolute;inset:0;z-index:-2;display:block;line-height:0;}
.bs-stage__img{
  width:100%;height:100%;object-fit:cover;object-position:center 50%;
  display:block;
  filter:saturate(.66) sepia(.30) hue-rotate(-8deg) contrast(1.10) brightness(.84);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,.34) 84%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,.34) 84%,transparent 100%);
  transform:scale(1.04);
}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .bs-stage__img{animation:bs-heropar linear both;animation-timeline:view();animation-range:cover 0% cover 100%;}
  }
}
@keyframes bs-heropar{from{transform:scale(1.08) translateY(-2.5%);}to{transform:scale(1.08) translateY(4%);}}
@media (prefers-reduced-motion:reduce){
  .bs-stage__img{animation:none;transform:scale(1.04);}
}
@media print{
  .bs-stage__media{display:none;}
}


/* ==========================================================
   AUDIT PASS 3a. Hero depth, typography, CTA hierarchy.
   ========================================================== */
.bs-stage::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(52% 46% at 16% 26%, rgba(212,175,55,.15) 0%, rgba(212,175,55,0) 62%),
    radial-gradient(120% 92% at 78% 12%, rgba(15,81,50,.06) 0%, rgba(15,81,50,.74) 58%, var(--bs-deep) 100%),
    linear-gradient(4deg, var(--bs-deep) 10%, rgba(15,81,50,.86) 50%, rgba(15,81,50,.30) 100%);
}
.bs-stage{border-bottom:1px solid rgba(212,175,55,.34);padding-block:clamp(72px,11vh,132px) clamp(40px,6vh,64px);}
.bs-stage__head{
  font-size:clamp(2.5rem,6vw,4.9rem);line-height:.98;letter-spacing:-0.038em;
  max-width:15ch;margin:0;text-shadow:0 3px 34px rgba(15,81,50,.55);
}
.bs-stage__lead{
  margin-top:clamp(18px,2.4vh,28px);max-width:40ch;
  font-size:clamp(1.08rem,1.42vw,1.3rem);line-height:1.5;
}
.bs-stage__rail{margin-top:clamp(22px,3vh,34px);}
.bs-stage__actions{margin-top:clamp(26px,3.4vh,38px);gap:12px 16px;}
.bs-stage__trust{margin-top:clamp(22px,3vh,32px);font-size:.9rem;}
.bs-stage__actions .is-style-fill .wp-block-button__link{
  padding:19px 40px;font-size:1.06rem;
  box-shadow:0 10px 26px rgba(15,81,50,.44), 0 2px 0 rgba(0,0,0,.06);
}
.bs-stage__actions .is-style-fill .wp-block-button__link:hover{box-shadow:0 16px 34px rgba(15,81,50,.52);}
.bs-stage__actions .bs-btn-ghost{
  padding:19px 30px;font-size:1rem;
  border-color:rgba(255,255,255,.42) !important;
  background:rgba(255,255,255,.06);
}
.bs-stage .bs-glassrow{margin-top:clamp(34px,5vh,60px);}
.bs-stage .bs-glass{box-shadow:0 26px 56px rgba(6,38,23,.44), inset 0 1px 0 rgba(255,255,255,.16);}
/* ---- AUDIT PASS 3b. Soft staggered entrance. ---- */
@media (prefers-reduced-motion:no-preference){
  .bs-stage__head,.bs-stage__lead,.bs-stage__rail,
  .bs-stage__actions,.bs-stage__trust,.bs-stage .bs-glassrow{
    animation:bs-enter .82s cubic-bezier(.16,.84,.28,1) both;
  }
  .bs-stage__head{animation-delay:.08s;}
  .bs-stage__lead{animation-delay:.20s;}
  .bs-stage__rail{animation-delay:.30s;}
  .bs-stage__actions{animation-delay:.40s;}
  .bs-stage__trust{animation-delay:.50s;}
  .bs-stage .bs-glassrow{animation-delay:.58s;}
  .bs-stage__media{animation:bs-mediain 1.4s cubic-bezier(.16,.84,.28,1) both;}
}
@keyframes bs-enter{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
@keyframes bs-mediain{from{opacity:0;}to{opacity:1;}}
@media (prefers-reduced-motion:reduce){
  .bs-stage__head,.bs-stage__lead,.bs-stage__rail,
  .bs-stage__actions,.bs-stage__trust,
  .bs-stage .bs-glassrow,.bs-stage__media{animation:none !important;opacity:1;transform:none;}
}
@media (max-width:781px){
  .bs-stage{padding-block:48px 40px;}
  .bs-stage__head{font-size:clamp(2.1rem,9vw,2.9rem);max-width:none;}
  .bs-stage__lead{max-width:none;}
  .bs-stage__actions .bs-btn-ghost{background:transparent;}
}

/* ==========================================================
   AUDIT PASS 4a. Navigation: logo, spacing, sticky, states.
   ========================================================== */

/* The mark is a portrait lockup, so it needs real height to stay legible. */
.site-branding img,#main-header .site-branding img{
  max-height:82px;width:auto;
  transition:max-height .32s cubic-bezier(.16,.84,.28,1);
}
#main-header .site-header-row{padding-block:10px;}

/* Sticky masthead: translucent, blurred, shrinking. */
#masthead,.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease;
}
body.bs-scrolled #masthead,body.bs-scrolled .site-header{
  background:rgba(255,255,255,.95);
  border-bottom-color:rgba(212,175,55,.34);
  box-shadow:0 8px 30px rgba(15,81,50,.10);
}
body.bs-scrolled .site-branding img,
body.bs-scrolled #main-header .site-branding img{max-height:60px;}

/* Nav items: generous target, animated gold underline. */
#main-header .header-navigation .menu-item > a{
  font-family:var(--bs-head);font-weight:700;font-size:1rem;
  color:var(--bs-ink);letter-spacing:-0.01em;
  padding-inline:14px;position:relative;
}
#main-header .header-navigation .menu-item > a::after{
  content:'';position:absolute;left:14px;right:14px;bottom:6px;height:2px;
  background:var(--bs-gold);border-radius:2px;
  transform:scaleX(0);transform-origin:left;
  transition:transform .32s cubic-bezier(.16,.84,.28,1);
}
#main-header .header-navigation .menu-item > a:hover{color:var(--bs-deep);}
#main-header .header-navigation .menu-item > a:hover::after{transform:scaleX(1);}

/* Active page: persistent underline, not a colour that reads as body text. */
#main-header .header-navigation .menu-item.current-menu-item > a,
#main-header .header-navigation .menu-item.current-menu-ancestor > a{color:var(--bs-deep);}
#main-header .header-navigation .menu-item.current-menu-item > a::after,
#main-header .header-navigation .menu-item.current-menu-ancestor > a::after{transform:scaleX(1);}

/* The CTA is now keyed to a class, not :last-child, so the menu can grow. */
#main-header .header-navigation .menu-item:last-child > a{
  background:none;color:var(--bs-ink);border-radius:0;padding:inherit;
}
#main-header .header-navigation .menu-item.bs-nav-cta > a{
  background:var(--bs-gold);color:var(--bs-ink);
  border-radius:var(--bs-r-pill);padding:12px 26px;margin-left:10px;
  box-shadow:0 6px 18px rgba(15,81,50,.16);
  transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
#main-header .header-navigation .menu-item.bs-nav-cta > a::after{display:none;}
#main-header .header-navigation .menu-item.bs-nav-cta > a:hover{
  background:var(--bs-gold-deep);color:var(--bs-ink);
  transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,81,50,.22);
}
#main-header .header-navigation .menu-item > a:focus-visible{
  outline:3px solid var(--bs-green);outline-offset:4px;border-radius:6px;
}
/* ---- AUDIT PASS 4b. Mobile menu. ---- */
.mobile-toggle-open-container .menu-toggle-open,
#mobile-toggle,.menu-toggle{color:var(--bs-deep);}
.mobile-toggle-open-container .menu-toggle-open:focus-visible{outline:3px solid var(--bs-green);outline-offset:3px;}

#mobile-drawer .drawer-inner,
.popup-drawer .drawer-inner{
  background:linear-gradient(168deg,var(--bs-green) 0%,var(--bs-deep) 46%,#0A3A24 100%);
}
#mobile-drawer .drawer-header,
.popup-drawer .drawer-header{padding:18px 22px;}
#mobile-drawer .drawer-toggle,
.popup-drawer .drawer-toggle{color:#fff;}
#mobile-drawer .drawer-content,
.popup-drawer .drawer-content{padding:8px 22px 34px;}

#mobile-drawer .mobile-navigation ul,
.popup-drawer .mobile-navigation ul{margin:0;padding:0;list-style:none;}
#mobile-drawer .mobile-navigation .menu-item > a,
.popup-drawer .mobile-navigation .menu-item > a{
  display:block;
  font-family:var(--bs-head);font-weight:800;
  font-size:clamp(1.35rem,6vw,1.75rem);letter-spacing:-0.025em;
  color:#fff;text-decoration:none;
  padding:20px 0;min-height:60px;
  border-bottom:1px solid rgba(255,255,255,.16);
  transition:color .22s ease,padding-left .28s cubic-bezier(.16,.84,.28,1);
}
#mobile-drawer .mobile-navigation .menu-item > a:hover,
#mobile-drawer .mobile-navigation .menu-item > a:focus-visible,
.popup-drawer .mobile-navigation .menu-item > a:hover{color:var(--bs-gold);padding-left:10px;}
#mobile-drawer .mobile-navigation .menu-item.current-menu-item > a,
.popup-drawer .mobile-navigation .menu-item.current-menu-item > a{color:var(--bs-gold);}
#mobile-drawer .mobile-navigation .menu-item.current-menu-item > a::before,
.popup-drawer .mobile-navigation .menu-item.current-menu-item > a::before{
  content:'';display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--bs-gold);margin-right:12px;vertical-align:middle;
}

/* The quote item becomes a real button inside the drawer. */
#mobile-drawer .mobile-navigation .menu-item.bs-nav-cta > a,
.popup-drawer .mobile-navigation .menu-item.bs-nav-cta > a{
  background:var(--bs-gold);color:var(--bs-ink);
  border-radius:var(--bs-r-pill);border-bottom:0;
  text-align:center;margin-top:26px;padding:19px 28px;
  font-size:1.1rem;box-shadow:0 14px 30px rgba(6,38,23,.4);
}
#mobile-drawer .mobile-navigation .menu-item.bs-nav-cta > a:hover{padding-left:28px;color:var(--bs-ink);}

/* Staggered entrance for drawer items. */
@media (prefers-reduced-motion:no-preference){
  #mobile-drawer.show-drawer .mobile-navigation .menu-item,
  .popup-drawer.show-drawer .mobile-navigation .menu-item{
    animation:bs-enter .5s cubic-bezier(.16,.84,.28,1) both;
  }
  #mobile-drawer.show-drawer .mobile-navigation .menu-item:nth-child(1){animation-delay:.06s;}
  #mobile-drawer.show-drawer .mobile-navigation .menu-item:nth-child(2){animation-delay:.12s;}
  #mobile-drawer.show-drawer .mobile-navigation .menu-item:nth-child(3){animation-delay:.18s;}
  #mobile-drawer.show-drawer .mobile-navigation .menu-item:nth-child(4){animation-delay:.24s;}
  #mobile-drawer.show-drawer .mobile-navigation .menu-item:nth-child(5){animation-delay:.30s;}
}

@media (max-width:781px){
  .site-branding img,#main-header .site-branding img{max-height:58px;}
  body.bs-scrolled .site-branding img,
  body.bs-scrolled #main-header .site-branding img{max-height:48px;}
  #main-header .site-header-row{padding-block:6px;}
}
/* Drawer stagger keyed to Kadence's own open-state body class. */
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item{animation:bs-enter .5s cubic-bezier(.16,.84,.28,1) both;}
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item:nth-child(1){animation-delay:.06s;}
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item:nth-child(2){animation-delay:.12s;}
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item:nth-child(3){animation-delay:.18s;}
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item:nth-child(4){animation-delay:.24s;}
body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item:nth-child(5){animation-delay:.30s;}
@media (prefers-reduced-motion:reduce){body[class*='showing-popup-drawer'] #mobile-drawer .mobile-navigation .menu-item{animation:none;}}


/* ======================================================
   AUDIT PASS 5a. One type scale.
   ====================================================== */
:root{
  --t-xs:.875rem;
  --t-sm:.9375rem;
  --t-base:1.125rem;
  --t-md:clamp(1.15rem,1.05vw,1.3rem);
  --t-lg:clamp(1.25rem,1.5vw,1.5rem);
  --t-xl:clamp(1.55rem,2.4vw,2.1rem);
  --t-2xl:clamp(2rem,3.6vw,3rem);
  --t-3xl:clamp(2.35rem,4.8vw,3.8rem);
  --t-4xl:clamp(2.6rem,6vw,4.9rem);
  --t-display:clamp(3.2rem,15vw,11rem);
  --lh-display:.98;
  --lh-head:1.06;
  --lh-sub:1.18;
  --lh-body:1.68;
  --lh-small:1.55;
  --ls-display:-0.038em;
  --ls-head:-0.028em;
  --ls-sub:-0.015em;
  --ls-body:0;
  --ls-caps:.12em;
  --m-narrow:46ch;
  --m-body:62ch;
  --m-wide:72ch;
  --m-head:18ch;
  --m-head-tight:14ch;
  --rh-head:clamp(16px,1.7vw,26px);
  --rh-para:1.05em;
}
body{font-size:var(--t-base);line-height:var(--lh-body);letter-spacing:var(--ls-body);}
h1,h2,h3,h4{line-height:var(--lh-head);letter-spacing:var(--ls-head);text-wrap:balance;}
h1{font-size:var(--t-4xl);line-height:var(--lh-display);letter-spacing:var(--ls-display);max-width:var(--m-head);}
h2{font-size:var(--t-2xl);max-width:var(--m-head);margin-block:0 var(--rh-head);}
h3{font-size:var(--t-lg);line-height:var(--lh-sub);letter-spacing:var(--ls-sub);margin-block:0 10px;}
p{max-width:var(--m-body);text-wrap:pretty;}
p + p{margin-top:var(--rh-para);}
.bs-lead{font-size:var(--t-md);line-height:1.55;max-width:var(--m-narrow);}
.bs-footnote,.bs-close__reassure,.bs-crumbs,.bs-compare figcaption{font-size:var(--t-xs);line-height:var(--lh-small);}
.bs-eyebrow{font-size:var(--t-xs);letter-spacing:var(--ls-caps);}
* + h2{margin-top:clamp(30px,3.4vw,52px);}
* + h3{margin-top:clamp(20px,2.2vw,32px);}
h2 + p,h2 + .bs-lead,h3 + p{margin-top:0;}
/* ---- AUDIT PASS 5b. Components re-pointed to the scale. ---- */

/* Display and hero */
.bs-stage__head{font-size:var(--t-4xl);line-height:var(--lh-display);letter-spacing:var(--ls-display);max-width:var(--m-head-tight);}
.bs-stage__lead{font-size:var(--t-md);line-height:1.55;max-width:var(--m-narrow);}
.bs-rail__fig{font-size:var(--t-xl);line-height:1.1;letter-spacing:var(--ls-head);}
.bs-rail__unit{font-size:var(--t-sm);letter-spacing:0;}
.bs-glass__t{font-size:var(--t-sm);letter-spacing:var(--ls-sub);line-height:1.3;}
.bs-glass__s{font-size:var(--t-xs);line-height:var(--lh-small);}
.bs-trust__k{font-size:var(--t-sm);letter-spacing:var(--ls-sub);}
.bs-trust__v{font-size:var(--t-xs);line-height:var(--lh-small);}

/* Emphatic headings share one size, not three */
.bs-statement__head,.bs-close h2{font-size:var(--t-3xl);line-height:1.08;max-width:20ch;}
.bs-statement__sub{font-size:var(--t-md);line-height:1.6;max-width:var(--m-narrow);}
.bs-close .bs-lead{font-size:var(--t-md);max-width:var(--m-narrow);}
.bs-fullhouse__lead{font-size:var(--t-3xl);line-height:1.08;max-width:none;}
.bs-figure__num{font-size:var(--t-display);letter-spacing:-0.045em;line-height:.9;}
.bs-fullhouse__note{font-size:var(--t-base);line-height:var(--lh-body);max-width:var(--m-narrow);}

/* Statistics */
.bs-ctr__fig{font-size:var(--t-xl);line-height:1.08;letter-spacing:var(--ls-head);}
.bs-ctr.is-lead .bs-ctr__fig{font-size:var(--t-3xl);}
.bs-ctr__lbl,.bs-ctr.is-lead .bs-ctr__lbl{font-size:var(--t-sm);line-height:var(--lh-small);max-width:34ch;}

/* Kit list */
.bs-kit__list .bs-kit__row h3{font-size:var(--t-xl);letter-spacing:var(--ls-head);line-height:1.14;}
.bs-kit__list .bs-kit__row p{font-size:var(--t-sm);line-height:var(--lh-small);}

/* Timeline, table, FAQ */
.bs-tl__h{font-size:var(--t-lg);}
.bs-tl__item{max-width:var(--m-body);}
.bs-tl__p{font-size:var(--t-base);line-height:var(--lh-body);}
.bs-compare table,.bs-compare th,.bs-compare td{font-size:var(--t-sm);line-height:var(--lh-small);}
.bs-compare thead th{font-size:var(--t-sm);letter-spacing:var(--ls-sub);}
.bs-faq .bs-qa summary{font-size:var(--t-lg);line-height:var(--lh-sub);letter-spacing:var(--ls-sub);}
.bs-faq .bs-qa p{font-size:var(--t-base);line-height:var(--lh-body);max-width:var(--m-body);}
.bs-faq__aside{font-size:var(--t-sm);line-height:var(--lh-small);}
.bs-faq h2{max-width:var(--m-head-tight);}

/* Interior pages */
.bs-pagehead h1{font-size:var(--t-3xl);max-width:var(--m-head);}
.bs-pagehead .bs-lead{max-width:var(--m-narrow);}
.bs-spec .bs-spec__row p{font-size:var(--t-base);max-width:var(--m-body);}
.bs-where__item{font-size:var(--t-lg);}
.bs-fineprint h2{font-size:var(--t-lg);}
.bs-fineprint p{font-size:var(--t-base);max-width:var(--m-wide);}
.bs-cta h2{max-width:20ch;}
.bs-contact__card h3{font-size:var(--t-lg);}
.bs-contact__card p{font-size:var(--t-base);}
.bs-gap h2{max-width:var(--m-head-tight);}

/* Chrome */
#main-header .header-navigation .menu-item > a{font-size:var(--t-sm);}
.bs-headcall,.bs-mobilebar a{font-size:var(--t-sm);}

/* Nothing should feel cramped: give every section head room to breathe. */
.bs-section > .wp-block-group__inner-container > h2:first-child{margin-top:0;}
.bs-lead + *{margin-top:clamp(24px,2.6vw,40px);}

/* ---- AUDIT PASS 6a. Ground variation and depth. ---- */
:root{
  --bs-mist:color-mix(in srgb, var(--bs-surface) 62%, var(--bs-line));
}
.bs-mist{background:var(--bs-mist);}
.bs-deep-ground{
  background:
    radial-gradient(64% 54% at 18% 8%, rgba(23,112,63,.55) 0%, rgba(23,112,63,0) 62%),
    linear-gradient(162deg, var(--bs-green) 0%, var(--bs-deep) 46%, #0A3A24 100%);
}
.bs-deep-ground::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(90% 70% at 50% 118%, rgba(212,175,55,.10) 0%, rgba(212,175,55,0) 60%);
}
.bs-deep-ground > *{position:relative;z-index:1;}
.bs-mist,.bs-surface{border-block:1px solid rgba(15,81,50,.07);}
.bs-deep-ground{border-top:1px solid rgba(212,175,55,.26);}
.bs-kit.bs-mist .bs-kit__row{border-top-color:rgba(15,81,50,.14);}
.bs-kit.bs-mist .bs-kit__row:last-child{border-bottom-color:rgba(15,81,50,.14);}
.bs-kit.bs-mist .bs-kit__row h3{color:var(--bs-deep);}
.bs-kit.bs-mist .bs-kit__row p{color:var(--bs-muted);}
.bs-kit.bs-mist .bs-i{color:var(--bs-gold-ink);}
.bs-kit.bs-mist .bs-footnote{color:var(--bs-muted);}
.bs-kit.bs-mist h2{color:var(--bs-deep);}
.bs-kit.bs-mist .bs-lead{color:var(--bs-muted);}
.bs-kit.bs-mist .bs-kit__row:hover{background:rgba(255,255,255,.62);}
.bs-kit.bs-mist .bs-kit__row:hover h3{color:var(--bs-gold-ink);}
/* ---- AUDIT PASS 6b. Buttons and hover, one system. ---- */
.is-style-fill .wp-block-button__link,
.frm-fluent-form .ff-btn-submit{
  background:linear-gradient(178deg, color-mix(in srgb,var(--bs-gold) 88%,#FFFFFF) 0%, var(--bs-gold) 54%, var(--bs-gold-deep) 100%) !important;
  color:var(--bs-ink) !important;
  box-shadow:0 8px 22px rgba(15,81,50,.22), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .2s ease, box-shadow .25s ease, filter .2s ease;
}
.is-style-fill .wp-block-button__link:hover,
.frm-fluent-form .ff-btn-submit:hover{
  filter:saturate(1.08) brightness(1.03);
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(15,81,50,.30), inset 0 1px 0 rgba(255,255,255,.5);
}
.is-style-fill .wp-block-button__link:active,
.frm-fluent-form .ff-btn-submit:active{transform:translateY(0);box-shadow:0 5px 14px rgba(15,81,50,.24);}
.bs-section:not(.bs-deep-ground) .bs-btn-ghost{
  background:transparent;border:1.5px solid var(--bs-deep);color:var(--bs-deep);
  transition:background-color .22s ease,color .22s ease,transform .2s ease,box-shadow .25s ease;
}
.bs-section:not(.bs-deep-ground) .bs-btn-ghost:hover{
  background:var(--bs-deep);color:#fff;transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(15,81,50,.24);
}
.bs-deep-ground .bs-btn-ghost,.bs-stage .bs-btn-ghost{
  border:1.5px solid rgba(255,255,255,.44);color:#fff;background:rgba(255,255,255,.06);
}
.bs-deep-ground .bs-btn-ghost:hover,.bs-stage .bs-btn-ghost:hover{
  background:#fff;color:var(--bs-deep);border-color:#fff;transform:translateY(-2px);
}
.bs-card,.bs-cell,.bs-contact__card,.bs-tile{
  transition:transform .28s cubic-bezier(.16,.84,.28,1),border-color .25s ease,box-shadow .28s ease;
}
.bs-card:hover,.bs-cell:hover,.bs-contact__card:hover{
  transform:translateY(-5px);border-color:var(--bs-gold);
  box-shadow:0 18px 40px rgba(15,81,50,.13);
}
.entry-content a:not(.wp-block-button__link):not(.bs-btn-ghost){
  color:var(--bs-deep);text-decoration-color:rgba(212,175,55,.6);
  text-decoration-thickness:2px;text-underline-offset:4px;
  transition:color .2s ease,text-decoration-color .2s ease;
}
.entry-content a:not(.wp-block-button__link):not(.bs-btn-ghost):hover{
  color:var(--bs-gold-ink);text-decoration-color:var(--bs-gold);
}
.bs-deep-ground a:not(.wp-block-button__link):not(.bs-btn-ghost){color:#fff;}
.bs-deep-ground a:not(.wp-block-button__link):not(.bs-btn-ghost):hover{color:var(--bs-gold);}
@media (prefers-reduced-motion:reduce){
  .is-style-fill .wp-block-button__link:hover,.bs-btn-ghost:hover,
  .bs-card:hover,.bs-cell:hover,.bs-contact__card:hover{transform:none;}
}
/* AUDIT PASS 6c */
:root{--bs-muted-on-tint:color-mix(in srgb, var(--bs-muted) 80%, var(--bs-ink));}
.bs-mist p,.bs-mist .bs-lead,.bs-mist .bs-footnote,.bs-surface p,.bs-surface .bs-lead,.bs-surface .bs-footnote{color:var(--bs-muted-on-tint);}


/* ======================================================
   AUDIT PASS 7. Buttons, final layer.
   ====================================================== */
:root{
  --dur-press:120ms;
  --dur:220ms;
  --dur-slow:420ms;
  --ease-out:cubic-bezier(.16,.84,.28,1);
}

/* Geometry: one padding scale, guaranteed touch height. */
.wp-block-button__link,.bs-btn,
.frm-fluent-form .ff-btn-submit{
  padding:17px 34px !important;
  min-height:56px;
  border-radius:var(--bs-r-pill) !important;
  font-size:1.02rem;
  letter-spacing:-0.005em;
  transition:transform var(--dur) var(--ease-out),
             box-shadow var(--dur) var(--ease-out),
             background-color var(--dur) ease,
             border-color var(--dur) ease,
             color var(--dur) ease,
             filter var(--dur) ease !important;
}

/* Prominence: the page's two primary asks are larger than everything else. */
.bs-stage__actions .is-style-fill .wp-block-button__link,
.bs-close .is-style-fill .wp-block-button__link,
.bs-close .wp-block-button__link{
  padding:21px 46px !important;min-height:64px;font-size:1.1rem;
}

/* Micro interaction: an arrow that travels on hover.
   ::after already carries the sheen, so the arrow uses ::before
   and is re-ordered to sit after the label in the flex row. */
.is-style-fill .wp-block-button__link::before,
.frm-fluent-form .ff-btn-submit::before{
  content:'\2192';
  order:1;
  font-weight:700;
  transform:translateX(-2px);
  transition:transform var(--dur) var(--ease-out);
}
.is-style-fill .wp-block-button__link:hover::before,
.frm-fluent-form .ff-btn-submit:hover::before{transform:translateX(4px);}

/* Shadow: contact layer plus ambient layer, both green tinted. */
.is-style-fill .wp-block-button__link,
.frm-fluent-form .ff-btn-submit{
  box-shadow:0 2px 4px rgba(15,81,50,.16),
             0 10px 26px rgba(15,81,50,.22),
             inset 0 1px 0 rgba(255,255,255,.42) !important;
}
.is-style-fill .wp-block-button__link:hover,
.frm-fluent-form .ff-btn-submit:hover{
  transform:translateY(-3px);
  box-shadow:0 4px 8px rgba(15,81,50,.18),
             0 18px 38px rgba(15,81,50,.30),
             inset 0 1px 0 rgba(255,255,255,.52) !important;
}
.is-style-fill .wp-block-button__link:active,
.frm-fluent-form .ff-btn-submit:active{
  transform:translateY(0) scale(.985);
  transition-duration:var(--dur-press) !important;
  box-shadow:0 1px 3px rgba(15,81,50,.20) !important;
}

/* Contrast fix: the label must stay ink on gold in every state.
   The submit button was flipping to white on gold on hover, about 2.4:1. */
.is-style-fill .wp-block-button__link,
.is-style-fill .wp-block-button__link:hover,
.is-style-fill .wp-block-button__link:focus,
.frm-fluent-form .ff-btn-submit,
.frm-fluent-form .ff-btn-submit:hover,
.frm-fluent-form .ff-btn-submit:focus,
#main-header .menu-item.bs-nav-cta > a,
#main-header .menu-item.bs-nav-cta > a:hover{color:var(--bs-ink) !important;}

/* Secondary: the earlier ghost rules carry !important, so match it. */
.bs-section:not(.bs-deep-ground) .bs-btn-ghost{
  background:transparent !important;
  border:1.5px solid var(--bs-deep) !important;
  color:var(--bs-deep) !important;
}
.bs-section:not(.bs-deep-ground) .bs-btn-ghost:hover{
  background:var(--bs-deep) !important;color:#fff !important;
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(15,81,50,.26) !important;
}
.bs-stage .bs-btn-ghost,.bs-deep-ground .bs-btn-ghost{
  background:rgba(255,255,255,.08) !important;
  border:1.5px solid rgba(255,255,255,.46) !important;color:#fff !important;
}
.bs-stage .bs-btn-ghost:hover,.bs-deep-ground .bs-btn-ghost:hover{
  background:#fff !important;color:var(--bs-deep) !important;
  border-color:#fff !important;transform:translateY(-3px);
}

/* Sheen timing aligned to the system. */
.wp-block-button__link::after{transition:transform var(--dur-slow) var(--ease-out) !important;}

/* Header CTA scaled down but same language. */
#main-header .menu-item.bs-nav-cta > a{
  padding:12px 26px !important;min-height:0;
  box-shadow:0 2px 4px rgba(15,81,50,.14),0 8px 20px rgba(15,81,50,.16);
}
#main-header .menu-item.bs-nav-cta > a:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 8px rgba(15,81,50,.16),0 12px 26px rgba(15,81,50,.22);
}

@media (prefers-reduced-motion:reduce){
  .wp-block-button__link,.frm-fluent-form .ff-btn-submit,
  #main-header .menu-item.bs-nav-cta > a{transition:none !important;}
  .wp-block-button__link:hover,.frm-fluent-form .ff-btn-submit:hover,
  #main-header .menu-item.bs-nav-cta > a:hover{transform:none !important;}
  .is-style-fill .wp-block-button__link:hover::before{transform:translateX(-2px);}
}

@media (max-width:781px){
  .wp-block-button__link,.frm-fluent-form .ff-btn-submit{padding:16px 28px !important;min-height:54px;}
  .bs-stage__actions .is-style-fill .wp-block-button__link,
  .bs-close .wp-block-button__link{padding:18px 32px !important;min-height:58px;}
}

/* ======================================================
   AUDIT PASS 8. Statistics cards.
   ====================================================== */
.bs-stats h2{max-width:var(--m-head-tight);}
.bs-stats__grid{
  gap:clamp(16px,1.8vw,24px);
  margin-top:clamp(34px,4vw,56px);
  align-items:stretch;
}
.bs-stat{
  display:flex;flex-direction:column;
  background:#fff;
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r-lg);
  padding:clamp(26px,2.6vw,38px);
  box-shadow:0 1px 2px rgba(15,81,50,.05), 0 10px 26px rgba(15,81,50,.06);
  transition:transform var(--dur) var(--ease-out),
             box-shadow var(--dur) var(--ease-out),
             border-color var(--dur) ease;
  position:relative;overflow:hidden;
}
/* A gold rule that draws itself across the top edge on hover. */
.bs-stat::before{
  content:'';position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--bs-gold),var(--bs-gold-deep));
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-slow) var(--ease-out);
}
.bs-stat:hover{
  transform:translateY(-6px);
  border-color:color-mix(in srgb,var(--bs-gold) 52%,transparent);
  box-shadow:0 4px 8px rgba(15,81,50,.08), 0 24px 50px rgba(15,81,50,.12);
}
.bs-stat:hover::before{transform:scaleX(1);}

/* Icon in a soft gold well */
.bs-stat__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:16px;
  background:color-mix(in srgb,var(--bs-gold) 15%,transparent);
  color:var(--bs-gold-ink);
  margin-bottom:clamp(20px,2.2vw,30px);
  transition:transform var(--dur) var(--ease-out),background-color var(--dur) ease;
}
.bs-stat__icon .bs-si{width:26px;height:26px;}
.bs-stat:hover .bs-stat__icon{
  transform:translateY(-2px) rotate(-6deg);
  background:color-mix(in srgb,var(--bs-gold) 26%,transparent);
}
.bs-stat.is-lead .bs-stat__icon{width:64px;height:64px;border-radius:18px;}
.bs-stat.is-lead .bs-stat__icon .bs-si{width:30px;height:30px;}

/* Typography */
.bs-stat__fig{
  margin:0;font-family:var(--bs-head);font-weight:800;
  font-size:var(--t-xl);line-height:1;letter-spacing:var(--ls-display);
  color:var(--bs-deep);max-width:none;
}
.bs-stat.is-lead .bs-stat__fig{font-size:var(--t-3xl);}
.bs-stat__k{
  margin:12px 0 0;font-family:var(--bs-head);font-weight:700;
  font-size:var(--t-sm);letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--bs-gold-ink);max-width:none;
}
.bs-stat__v{
  margin:14px 0 0;font-size:var(--t-sm);line-height:var(--lh-small);
  color:var(--bs-muted-on-tint);max-width:38ch;
}
.bs-stat.is-lead .bs-stat__v{font-size:var(--t-base);max-width:42ch;}

/* Scroll entrance, staggered */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .bs-stat{animation:bs-rise linear both;animation-timeline:view();animation-range:entry 3% cover 24%;}
  }
}
@media (prefers-reduced-motion:reduce){
  .bs-stat,.bs-stat:hover{transform:none;}
  .bs-stat:hover .bs-stat__icon{transform:none;}
}

@media (max-width:900px){
  .bs-stats__grid{flex-wrap:wrap !important;}
  .bs-stat{flex-basis:100% !important;}
  .bs-stat.is-lead{order:-1;}
}

/* --------------------------------------------------------------------------
   17. WHAT WE COVER — RESPONSIVE EQUIPMENT CARDS
   Real HTML cards (individual product photo + heading + copied-verbatim
   caption) are the primary, always-visible presentation at every breakpoint,
   so coverage information is never locked inside an image. The original
   composite graphic is still available via a small "View full graphic"
   lightbox trigger for anyone who wants the single official summary image.
   Desktop: 3 columns. Tablet: 2 columns. Mobile: 1 column.
   -------------------------------------------------------------------------- */
.bs-cover-visual{ padding-block:var(--bs-s4) var(--bs-s3); }
.bs-coverviz{ max-width:1400px; margin-inline:auto; }

.bs-coverviz__cards{
  display:grid; grid-template-columns:1fr; gap:var(--bs-s3);
}
@media (min-width:768px){
  .bs-coverviz__cards{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .bs-coverviz__cards{ grid-template-columns:repeat(3,1fr); }
}
.bs-coverviz__card{
  background:var(--bs-white); border:1px solid var(--bs-line);
  border-radius:var(--bs-r-md); overflow:hidden; box-shadow:var(--bs-sh-1);
  transition:transform .2s ease, box-shadow .25s ease;
}
.bs-coverviz__card:hover{
  transform:translateY(-3px); box-shadow:0 10px 26px rgba(15,81,50,.16);
}
.bs-coverviz__card picture{ display:block; background:var(--bs-surface); }
.bs-coverviz__card img{ display:block; width:100%; height:auto; }
.bs-coverviz__card h3{
  font-family:var(--bs-head); font-weight:800; font-size:var(--t-lg);
  color:var(--bs-deep); margin:var(--bs-s2) var(--bs-s2) 4px;
}
.bs-coverviz__card p{
  color:var(--bs-muted); margin:0 var(--bs-s2) var(--bs-s2);
  font-size:var(--t-base); line-height:var(--lh-body);
}

/* Secondary "view full graphic" trigger: a small text link, not a hero image */
.bs-coverviz__viewfull{
  display:flex; align-items:center; gap:8px; margin:var(--bs-s3) auto 0;
  padding:10px 4px; border:0; background:none; cursor:zoom-in;
  font-family:var(--bs-head); font-weight:700; font-size:.94rem;
  color:var(--bs-deep); width:fit-content;
}
.bs-coverviz__viewfull:hover{ color:var(--bs-green); text-decoration:underline; }
.bs-coverviz__viewfull picture{ display:none; }
.bs-coverviz__viewfull span::before{ content:'\1F5BC\FE0E  '; }

/* Lightbox (desktop/tablet "tap to enlarge") */
.bs-lightbox{
  position:fixed; inset:0; z-index:9998; display:none;
  align-items:center; justify-content:center; padding:var(--bs-s3);
  background:rgba(15,24,20,.86);
}
.bs-lightbox.is-open{ display:flex; }
.bs-lightbox__img{
  max-width:min(96vw,1600px); max-height:92vh; width:auto; height:auto;
  border-radius:var(--bs-r-md); box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.bs-lightbox__close{
  position:absolute; top:var(--bs-s3); right:var(--bs-s3);
  width:44px; height:44px; border-radius:50%; border:0;
  background:rgba(255,255,255,.14); color:#fff; font-size:24px; line-height:1;
  cursor:pointer;
}
.bs-lightbox__close:hover{ background:rgba(255,255,255,.24); }

/* --------------------------------------------------------------------------
   18. HOW CLAIMS WORK — NUMBERED STEPS
   Same three approved steps (Tell us / Assessment / Settlement), presented
   as a scannable numbered sequence instead of a label/description list.
   -------------------------------------------------------------------------- */
.bs-steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--bs-s3);
  margin-top:var(--bs-s3);
}
.bs-steps__item{
  position:relative; padding:var(--bs-s3) var(--bs-s3) var(--bs-s2);
  background:var(--bs-white); border:1px solid var(--bs-line);
  border-radius:var(--bs-r-md); box-shadow:var(--bs-sh-1);
}
.bs-steps__num{
  display:block; font-family:var(--bs-head); font-weight:800;
  font-size:2.4rem; line-height:1; color:var(--bs-gold);
  margin-bottom:var(--bs-s2);
}
.bs-steps__item h3{
  font-family:var(--bs-head); font-weight:800; color:var(--bs-deep);
  margin:0 0 8px; font-size:var(--t-lg);
}
.bs-steps__item p{
  margin:0; color:var(--bs-muted); font-size:var(--t-base); line-height:var(--lh-body);
}
@media (max-width:767px){
  .bs-steps{ grid-template-columns:1fr; }
}

/* --------------------------------------------------------------------------
   19. TEMPORARY STOCK PHOTOGRAPHY
   Restrained forest-green wash + consistent radius, so third-party photos
   read as "part of Bowls Sure" rather than generic stock. See the completion
   report for source/licence/replacement-inventory per image.
   -------------------------------------------------------------------------- */
.bs-photo-band{ padding-block:var(--bs-s3); }
.bs-photo{
  position:relative; max-width:1200px; margin:0 auto;
  border-radius:var(--bs-r-lg); overflow:hidden;
  box-shadow:var(--bs-sh-1);
}
.bs-photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,81,50,0) 55%, rgba(11,62,38,.28) 100%);
  pointer-events:none;
}
.bs-photo__img{ display:block; width:100%; height:auto; }

.bs-gap__photo{
  margin:0; border-radius:var(--bs-r-lg); overflow:hidden;
  box-shadow:var(--bs-sh-1); position:relative;
}
.bs-gap__photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(23,112,63,.16) 0%, rgba(11,62,38,.3) 100%);
  pointer-events:none;
}
.bs-gap__photo img{ display:block; width:100%; height:auto; }
/* ===================================================================
   20. PRIVACY & POPIA NOTICE
   =================================================================== */
.bs-legal{
  max-width:820px;
  margin-inline:auto;
  padding-inline:var(--bs-s3,22px);
}
.bs-legal h2{
  font-family:var(--bs-head);
  color:var(--bs-deep);
  font-size:clamp(1.32rem,2vw,1.65rem);
  margin:clamp(38px,5vw,56px) 0 .6em;
  padding-top:clamp(28px,4vw,40px);
  border-top:1px solid var(--bs-line);
}
.bs-legal h2:first-of-type{ border-top:0; padding-top:0; margin-top:0; }
.bs-legal h3{
  font-family:var(--bs-head);
  color:var(--bs-ink);
  font-size:clamp(1.02rem,1.2vw,1.15rem);
  margin:1.6em 0 .5em;
}
.bs-legal p,
.bs-legal li{
  font-size:1.04rem;
  line-height:1.72;
  color:var(--bs-ink);
}
.bs-legal p{ margin:0 0 1.1em; }
.bs-legal ul{ margin:0 0 1.1em; padding-left:1.25em; display:grid; gap:.55em; }
.bs-legal li{ margin:0; }
.bs-legal strong{ color:var(--bs-deep); }
.bs-legal a{ word-break:break-word; }

.bs-legal__intro{
  background:var(--bs-surface);
  border-left:4px solid var(--bs-gold);
  border-radius:var(--bs-r-lg,26px);
  padding:clamp(24px,3vw,34px);
}
.bs-legal__intro .bs-legal__kicker{
  display:block;
  font-family:var(--bs-head); font-weight:700;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bs-green); margin:0 0 .6em;
}
.bs-legal__intro p{ margin:0; color:var(--bs-ink); font-size:1.02rem; line-height:1.6; }

.bs-legal__contact{
  background:linear-gradient(162deg,var(--bs-green) 0%,var(--bs-deep) 58%,var(--bs-green-deep) 100%);
  border-radius:var(--bs-r-lg,26px);
  padding:clamp(28px,3.6vw,42px);
  margin-top:clamp(24px,3vw,36px);
}
.bs-legal__contact .bs-legal__kicker{
  display:block;
  font-family:var(--bs-head); font-weight:700;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bs-gold); margin:0 0 1.1em;
}
.bs-legal__contact-grid{
  display:grid; gap:4px 28px;
  grid-template-columns:1fr;
}
@media(min-width:600px){
  .bs-legal__contact-grid{ grid-template-columns:1fr 1fr; }
}
.bs-legal__contact-item{
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.bs-legal__contact-item:last-child,
.bs-legal__contact-item:nth-last-child(2){ border-bottom:0; }
.bs-legal__contact-label{
  display:block; font-family:var(--bs-head); font-weight:700;
  font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--bs-on-deep-mute); margin-bottom:6px;
}
.bs-legal__contact-value,
.bs-legal__contact-value a{
  font-family:var(--bs-head); font-weight:700;
  font-size:clamp(1rem,1.3vw,1.15rem);
  color:#fff; text-decoration:none;
}
.bs-legal__contact-value a:hover{ text-decoration:underline; }

.bs-legal__updated{
  margin-top:clamp(28px,3.4vw,40px);
  padding-top:20px;
  border-top:1px solid var(--bs-line);
  font-size:.92rem;
  color:var(--bs-muted);
}
/* ===================================================================
   21. HEADER CONTACT CLUSTER (phone / whatsapp / email)
   =================================================================== */
.bs-menu-contact{
  display:flex; align-items:center; gap:12px;
  margin:0 14px; padding:0 14px;
  border-left:1px solid var(--bs-line);
  border-right:1px solid var(--bs-line);
}
@media (max-width:1080px){ .bs-menu-contact{ display:none; } }
.mobile-navigation .bs-menu-contact{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px;
  margin:10px 0; padding:12px 0;
  border-left:0; border-right:0;
  border-top:1px solid var(--bs-line);
  border-bottom:1px solid var(--bs-line);
}
.bs-headcall--icon{ padding:2px; }
.bs-headcall--icon svg{ width:18px; height:18px; }
/* ===================================================================
   22. HEADER — CENTRE CONTACT CLUSTER + NAV REFINEMENTS
   =================================================================== */
.header-html .bs-headicons{
  display:flex; align-items:center; gap:10px;
  margin:0; padding:0; list-style:none;
}
.header-html .bs-headicons li{ margin:0; padding:0; }
.header-html .bs-headicons a{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  background:var(--bs-surface); border:1px solid var(--bs-line);
  color:var(--bs-green); text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.header-html .bs-headicons a svg{ width:19px; height:19px; flex:none; }
.header-html .bs-headicons a:hover,
.header-html .bs-headicons a:focus-visible{
  background:var(--bs-green); border-color:var(--bs-green); color:#fff;
  transform:translateY(-1px);
}
.header-html .bs-headicons a:focus-visible{ outline:3px solid var(--bs-gold); outline-offset:3px; }

/* Balance the 3-zone header row so the centre cluster is genuinely centred,
   not pushed around by unequal left/right widths. */
.site-main-header-inner-wrap.site-header-row-center-column{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
}
.site-main-header-inner-wrap.site-header-row-center-column .site-header-main-section-left{ justify-self:start; }
.site-main-header-inner-wrap.site-header-row-center-column .site-header-main-section-center{ justify-self:center; }
.site-main-header-inner-wrap.site-header-row-center-column .site-header-main-section-right{ justify-self:end; }

/* Active-page indicator: forest green text + restrained gold underline. */
#main-header .header-navigation .menu-item > a{ position:relative; transition:color .2s ease; }
#main-header .header-navigation .menu-item.current-menu-item > a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background:var(--bs-gold); border-radius:2px;
}
#main-header .header-navigation .menu-item.bs-nav-cta.current-menu-item > a::after{ display:none; }

/* Mobile: persistent WhatsApp icon beside the hamburger toggle. */
.mobile-html .bs-mob-wa{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:var(--bs-surface); border:1px solid var(--bs-line);
  color:var(--bs-green); text-decoration:none; margin-right:8px;
}
.mobile-html .bs-mob-wa svg{ width:20px; height:20px; }
.mobile-html .bs-mob-wa:active{ background:var(--bs-green); color:#fff; }

/* Mobile drawer: separated CALL / WHATSAPP / EMAIL section beneath the nav links. */
.bs-drawer-contact{
  margin-top:16px !important; padding-top:16px;
  border-top:1px solid var(--bs-line);
}
.bs-drawer-contact__label{
  display:block; font-family:var(--bs-head); font-weight:700; font-size:.8rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--bs-muted);
  margin-bottom:10px;
}
.bs-drawer-contact__row{ display:flex; gap:12px; }
.bs-drawer-contact__row a{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  flex:1; min-height:44px; padding:10px 6px;
  border-radius:12px; background:var(--bs-surface); border:1px solid var(--bs-line);
  color:var(--bs-green); text-decoration:none; font-size:.78rem; font-weight:600;
}
.bs-drawer-contact__row a svg{ width:20px; height:20px; }
.bs-drawer-contact__row a:active{ background:var(--bs-green); color:#fff; }
#main-header .site-main-header-inner-wrap.site-header-row-center-column{ padding-block:4px; }


/* ==========================================================================
   LAUNCH PASS - 2026-09-20
   Homepage polish, launch navigation, centred footer.
   Additive: this block overrides earlier passes and can be removed whole.
   ========================================================================== */

/* -- L0. Tokens ---------------------------------------------------------- */
:root{
  --bs-section:clamp(56px,6vw,96px);
  --bs-section-lg:clamp(64px,7vw,112px);
  --bs-muted-on-tint:#55605A;
}

/* -- L1. Section rhythm -------------------------------------------------- */
.bs-statement{padding-block:clamp(60px,6.4vw,100px);}
.bs-fullhouse{padding-block:clamp(60px,6.6vw,104px);}
.bs-close{padding-block:clamp(64px,7vw,108px);}
.bs-trustbar > .wp-block-group__inner-container{padding-block:clamp(26px,3vw,40px);}
.bs-faq{background:var(--bs-white);border-top:1px solid rgba(15,81,50,.08);}

/* -- L2. Hero ------------------------------------------------------------ */
.bs-stage{
  min-height:min(86vh,840px);
  padding-block:clamp(104px,15vh,180px) clamp(52px,7vh,80px);
}
.bs-stage__head{max-width:19ch;font-size:clamp(2.6rem,6.2vw,5.1rem);line-height:.99;}
.bs-stage__lead{max-width:52ch;margin-top:clamp(18px,2.2vh,28px);}
.bs-stage__rail{margin-top:clamp(24px,3vh,38px);gap:8px 22px;}
.bs-stage__actions{margin-top:clamp(26px,3.2vh,40px);}
.bs-stage__more{margin:16px 0 0;max-width:none;}
.bs-stage__more a{
  font-family:var(--bs-head);font-weight:700;font-size:var(--t-sm);
  color:#fff;text-decoration:underline;
  text-decoration-color:rgba(212,175,55,.85);
  text-decoration-thickness:2px;text-underline-offset:5px;
}
.bs-stage__more a:hover{color:var(--bs-gold);}
/* Contrast fix: ".entry-content a:not(.wp-block-button__link):not(.bs-btn-ghost)"
   (0,3,1) outranks ".bs-stage__more a" (0,2,0) and repaints this link as
   --bs-deep on the dark hero. Real ancestor classes win it back. */
.wp-block-group.alignfull.bs-stage .bs-stage__more a{color:#fff;}
.wp-block-group.alignfull.bs-stage .bs-stage__more a:hover{color:var(--bs-gold);}
.bs-stage__trust{margin-top:clamp(18px,2.4vh,28px);}
.bs-glassrow{margin-top:clamp(36px,5vh,60px);}
@media (max-width:781px){
  .bs-stage{padding-block:52px 40px;}
  .bs-stage__head{font-size:clamp(2.1rem,8.6vw,2.9rem);}
  .bs-stage__more{text-align:center;}
}

/* -- L3. Statement ------------------------------------------------------- */
@media (min-width:901px){
  .bs-statement > .wp-block-group__inner-container{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);}
}
.bs-statement > .wp-block-group__inner-container{align-items:start;gap:clamp(26px,4.2vw,68px);}
.bs-statement__head{max-width:20ch;}
.bs-statement__sub{
  border-left:0;padding-left:0;
  border-top:2px solid var(--bs-gold);padding-top:18px;
  color:var(--bs-ink);font-size:var(--t-md);max-width:38ch;margin-top:10px;
}
@media (max-width:900px){
  .bs-statement__sub{margin-top:var(--bs-s3);}
}

/* -- L4. The policy in three numbers ------------------------------------- */
.bs-stats__grid{gap:clamp(14px,1.6vw,22px);align-items:stretch;}
.bs-stat{padding:clamp(24px,2.4vw,34px);}
.bs-stat__icon,.bs-stat.is-lead .bs-stat__icon{
  width:54px;height:54px;border-radius:15px;margin-bottom:clamp(18px,2vw,26px);
}
.bs-stat__icon .bs-si,.bs-stat.is-lead .bs-stat__icon .bs-si{width:25px;height:25px;}
.bs-stat__fig,.bs-stat.is-lead .bs-stat__fig{font-size:clamp(2rem,3vw,2.6rem);line-height:1.04;}
.bs-stat.is-lead .bs-stat__fig{color:var(--bs-gold-ink);}
.bs-stat.is-lead::before{transform:scaleX(1);}
.bs-stat__k{margin-top:10px;}
.bs-stat__v,.bs-stat.is-lead .bs-stat__v{
  font-size:var(--t-sm);color:var(--bs-muted);max-width:36ch;margin-top:12px;
}
@media (max-width:900px){
  .bs-stat.is-lead{order:0;}
}

/* -- L5. Kit list -------------------------------------------------------- */
.bs-kit__list .bs-kit__row{padding-block:clamp(14px,1.5vw,20px);align-items:center;}
.bs-kit__list .bs-kit__row h3{font-size:clamp(1.15rem,1.7vw,1.5rem);}
.bs-kit__list .bs-kit__row p{text-align:right;}
@media (max-width:781px){
  .bs-kit__list .bs-kit__row p{text-align:left;margin-top:4px;}
  .bs-kit__list .bs-kit__row{padding-block:14px;}
}

/* -- L6. Claims: three steps read across on desktop ---------------------- */
@media (min-width:782px){
  .bs-claims .bs-tl{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:clamp(22px,2.6vw,40px);
    padding:0;margin:clamp(28px,3.2vw,44px) 0 clamp(38px,4.2vw,58px);
  }
  .bs-claims .bs-tl::before{
    left:8px;right:8px;top:10px;bottom:auto;width:auto;height:2px;
    background:linear-gradient(90deg,var(--bs-gold),rgba(212,175,55,.22));
  }
  .bs-claims .bs-tl__item{padding:0;max-width:none;}
  .bs-claims .bs-tl__dot{position:static;display:block;margin:0 0 20px;}
}
.bs-claims .bs-split{align-items:start;}

/* -- L7. Household comparison: real cards on small screens --------------- */
.bs-compare{margin-top:clamp(30px,3.4vw,48px);}
@media (max-width:700px){
  .bs-compare{overflow:visible;}
  .bs-compare table{min-width:0;display:block;background:transparent;box-shadow:none;border-radius:0;}
  .bs-compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
  .bs-compare tbody{display:block;}
  .bs-compare tbody tr{
    display:block;background:var(--bs-white);
    border:1px solid var(--bs-hairline);border-radius:var(--bs-r-md);
    box-shadow:var(--bs-sh-1);margin-bottom:14px;overflow:hidden;
  }
  .bs-compare tbody tr:last-child{margin-bottom:0;}
  .bs-compare tbody th{
    display:block;width:auto;background:var(--bs-surface-2);
    border-bottom:1px solid var(--bs-hairline);
    padding:13px 16px;color:var(--bs-deep);
  }
  .bs-compare tbody td{display:block;padding:12px 16px 14px;border-bottom:1px solid var(--bs-hairline);}
  .bs-compare tbody tr td:last-child{border-bottom:0;}
  .bs-compare tbody td::before{
    content:attr(data-label);display:block;
    font-family:var(--bs-head);font-weight:700;font-size:.74rem;
    text-transform:uppercase;letter-spacing:.09em;
    color:var(--bs-muted);margin-bottom:5px;
  }
  .bs-compare tbody td.bs-yes::before{color:var(--bs-gold-ink);}
  .bs-compare tbody tr:hover th{background:var(--bs-surface-2);}
  .bs-compare tbody tr:hover td{background:transparent;}
  .bs-compare tbody tr:hover td.bs-yes{background:rgba(212,175,55,.07);}
}

/* -- L8. Quote capture --------------------------------------------------- */
@media (min-width:901px){
  .bs-capture > .wp-block-group__inner-container{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);}
  .bs-capture h2{max-width:16ch;}
}
.bs-capture > .wp-block-group__inner-container{gap:clamp(26px,3.6vw,58px);align-items:start;}
.bs-formwrap{padding:clamp(22px,2.6vw,36px);}
.bs-formnote{margin-top:16px;}
@media (max-width:560px){
  .bs-formwrap .ff-btn-submit{width:100%;}
}

/* -- L9. FAQ ------------------------------------------------------------- */
@media (min-width:901px){
  .bs-faq > .wp-block-group__inner-container{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);}
}
.bs-faq > .wp-block-group__inner-container{column-gap:clamp(28px,4.4vw,72px);}
.bs-faq h2{top:112px;}
.bs-faq .bs-qa summary{padding:19px 0;}
.bs-faq .bs-qa p{max-width:68ch;}

/* -- L10. Header: seven items, one row, no collision --------------------- */
/* The symmetric 1fr/auto/1fr grid starved the navigation and wrapped it onto
   three rows. The centre cluster now centres inside the space that is
   genuinely free between the logo and the navigation. */
.site-main-header-inner-wrap.site-header-row-center-column{
  grid-template-columns:auto minmax(0,1fr) auto;
  column-gap:clamp(14px,1.8vw,32px);
}
.site-main-header-inner-wrap.site-header-row-center-column .site-header-main-section-center{justify-self:center;}
#main-header .header-navigation ul.menu{flex-wrap:nowrap;}
#main-header .header-navigation .menu-item > a{padding-inline:10px;}
#main-header .menu-item.bs-nav-cta > a{padding:11px 20px !important;margin-left:6px;}
#main-header .menu-item.bs-nav-quote > a{
  border:1.5px solid var(--bs-deep);border-radius:var(--bs-r-pill);
  padding:9px 17px !important;margin-left:6px;color:var(--bs-deep);
}
#main-header .menu-item.bs-nav-quote > a:hover{background:var(--bs-deep);color:#fff;}
#main-header .menu-item.bs-nav-quote > a::after{display:none !important;}
/* Below this the row gets tight, so hand the whole menu to the drawer. */
@media (max-width:1150px){
  #main-header{display:none !important;}
  #mobile-header{display:block !important;}
}

/* -- L11. Drawer: Get covered is the primary action ---------------------- */
#mobile-drawer .mobile-navigation .menu-item.bs-nav-quote > a,
.popup-drawer .mobile-navigation .menu-item.bs-nav-quote > a{
  /* The drawer is a dark green ground, so the secondary action is a light
     outline, not the ink outline used in the light header. */
  border:1.5px solid rgba(255,255,255,.62);border-radius:var(--bs-r-pill);
  text-align:center;margin-top:22px;padding:16px 26px;color:#fff;
}
#mobile-drawer .mobile-navigation .menu-item.bs-nav-quote > a:hover,
.popup-drawer .mobile-navigation .menu-item.bs-nav-quote > a:hover{
  background:#fff;color:var(--bs-deep);border-color:#fff;
}
#mobile-drawer .mobile-navigation .menu-item.bs-nav-cta > a,
.popup-drawer .mobile-navigation .menu-item.bs-nav-cta > a{margin-top:12px;}

/* -- L12. Sticky mobile bar: quote secondary, get covered primary -------- */
.bs-mobilebar .bs-mb-quote{
  background:var(--bs-white);color:var(--bs-deep);
  border:1.5px solid var(--bs-deep);
}
.bs-mobilebar .bs-mb-quote:hover{background:var(--bs-surface-2);color:var(--bs-deep);}
.bs-mobilebar .bs-mb-covered{
  flex:1.18 1 0;background:var(--bs-gold);color:var(--bs-ink);
  border:1.5px solid transparent;box-shadow:0 4px 14px rgba(168,134,42,.30);
}
.bs-mobilebar .bs-mb-covered:hover{background:var(--bs-gold-deep);color:#fff;}

/* -- L13. Footer: centred ------------------------------------------------ */
#colophon .footer-html{margin-left:0 !important;}
#colophon .site-middle-footer-wrap{border-bottom:1px solid rgba(255,255,255,.12);}
.site-footer .footer-navigation ul,
#colophon .footer-navigation ul{justify-content:center;gap:10px clamp(18px,2.4vw,34px);}
/* Kadence shrink-wraps the menu container inside a full-width nav, which
   left-anchored the row. Centre the container, then the items. */
.site-footer .footer-navigation,#colophon .footer-navigation{justify-content:center;}
.site-footer .footer-menu-container,#colophon .footer-menu-container{width:100%;justify-content:center;}
.site-footer .footer-navigation,#colophon .footer-navigation{padding-block:clamp(20px,2.6vw,30px);}
.bs-footer-legal{
  max-width:880px;margin-inline:auto;text-align:center;
  padding-block:clamp(24px,3vw,36px);
}
.bs-footer-legal p{max-width:none;margin-inline:auto;}
.bs-footer-contact{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:8px 14px;margin:0 0 20px;font-size:1rem;
}
.bs-footer-contact a{color:#fff;text-decoration:none;}
.bs-footer-contact a:hover{color:var(--bs-gold);text-decoration:underline;}
.bs-footer-addr{color:var(--bs-on-deep-soft);font-weight:600;}
.bs-footer-sep{
  display:inline-block;width:4px;height:4px;border-radius:50%;
  background:var(--bs-gold);opacity:.85;
}
.bs-footer-badges{justify-content:center;margin:0 0 22px;}
.bs-footer-statement{max-width:74ch;margin:0 auto 14px;font-size:.98rem;color:var(--bs-on-deep-soft);}
.bs-footer-small{max-width:92ch;margin:0 auto;font-size:.88rem;line-height:1.62;color:var(--bs-on-deep-mute);}
@media (max-width:781px){
  .bs-footer-contact{flex-direction:column;gap:10px;margin-bottom:18px;}
  .bs-footer-sep{display:none;}
  .bs-footer-legal{padding-block:26px;}
  .bs-footer-badges{gap:8px 10px;margin-bottom:18px;}
  .site-footer .footer-navigation ul,#colophon .footer-navigation ul{gap:6px 16px;}
  #colophon .footer-navigation .menu-item > a{display:inline-block;padding:11px 8px;}
  .bs-footer-statement{font-size:.94rem;}
  .bs-footer-small{font-size:.84rem;}
}
/* =========================================================================
   BOWLSSURE COMMUNITY  --  appended 2026-09-21
   Community archive, single entry, homepage feature and event components.
   Reuses the existing token set only; defines no new colours or type ramps.
   Everything is namespaced .bs-cm-* and cannot affect existing pages.
   ====================================================================== */

/* Layout: PHP templates have no Gutenberg inner-container, so the section
   pads itself and its direct children carry the measure. Backgrounds stay
   full-bleed exactly like the block-built pages. */
.bs-cm-main > section,
.bs-cm-main .bs-cm-entry > section,
.bs-cm-main .bs-cm-entry > header,
.bs-cm-main .bs-cm-entry > nav{
  padding-inline:var(--bs-gutter);
}
.bs-cm-main > section > *,
.bs-cm-main .bs-cm-entry > section > *,
.bs-cm-main .bs-cm-entry > header > *,
.bs-cm-main .bs-cm-entry > nav > *{
  max-width:var(--bs-measure);
  margin-inline:auto;
}
.bs-cm-main{ display:block; }
.bs-cm-main img{ max-width:100%; height:auto; }

/* ---- Archive hero ---------------------------------------------------- */
.bs-cm-hero__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.08;
  margin:0 0 var(--bs-s3);
}
.bs-cm-hero__lede{
  font-size:clamp(1rem,1.25vw,1.16rem); line-height:1.65;
  max-width:68ch; margin:0 0 var(--bs-s2);
}

/* ---- Blocks ---------------------------------------------------------- */
.bs-cm-block__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.4rem,2.4vw,2rem); line-height:1.15;
  margin:0 0 var(--bs-s4);
}

/* ---- Card grid ------------------------------------------------------- */
.bs-cm-grid{
  display:grid; gap:var(--bs-s3);
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
}
.bs-cm-card{
  background:var(--bs-white);
  border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md);
  box-shadow:var(--bs-sh-1);
  overflow:hidden;
  transition:transform .3s var(--bs-ease), box-shadow .3s var(--bs-ease);
}
.bs-cm-card:hover{ transform:translateY(-3px); box-shadow:var(--bs-sh-2); }
.bs-cm-card__link{ display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; }
.bs-cm-card__media{
  position:relative; display:block; aspect-ratio:3/2;
  background:var(--bs-surface-2); overflow:hidden;
}
.bs-cm-card__media img,
.bs-cm-card__img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Branded placeholder when no featured image is set yet. */
.bs-cm-card__ph{
  display:block; width:100%; height:100%;
  background:linear-gradient(135deg,var(--bs-deep) 0%,var(--bs-green) 60%,var(--bs-green-deep) 100%);
}
.bs-cm-card__body{ display:flex; flex-direction:column; gap:8px; padding:var(--bs-s3); flex:1; }
.bs-cm-card__type{
  font-family:var(--bs-head); font-weight:700; font-size:.7rem;
  text-transform:uppercase; letter-spacing:.13em; color:var(--bs-gold-ink);
}
.bs-cm-card__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:1.16rem; line-height:1.25; color:var(--bs-ink);
}
.bs-cm-card__meta{ font-size:.9rem; color:var(--bs-muted); }
.bs-cm-card__excerpt{ font-size:.94rem; line-height:1.55; color:var(--bs-muted); }
.bs-cm-card__cta{
  margin-top:auto; padding-top:6px;
  font-family:var(--bs-head); font-weight:700; font-size:.92rem; color:var(--bs-deep);
}
.bs-cm-card__link:hover .bs-cm-card__cta{ text-decoration:underline; }

/* ---- Status badge ---------------------------------------------------- */
.bs-cm-badge{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--bs-head); font-weight:700; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.1em;
  padding:6px 12px; border-radius:var(--bs-r-pill);
  background:var(--bs-white); color:var(--bs-ink);
  box-shadow:var(--bs-sh-1);
}
.bs-cm-badge--upcoming{ background:var(--bs-gold); color:#3A2E05; }
.bs-cm-badge--now{ background:var(--bs-green); color:#fff; }
.bs-cm-badge--past{ background:var(--bs-surface-2); color:var(--bs-muted); }

/* ---- Pagination ------------------------------------------------------ */
.bs-cm-pagination{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  margin-top:var(--bs-s4);
}
.bs-cm-pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px; padding:0 14px;
  border:1px solid var(--bs-line); border-radius:var(--bs-r-pill);
  font-family:var(--bs-head); font-weight:700; font-size:.95rem;
  color:var(--bs-ink); text-decoration:none; background:var(--bs-white);
}
.bs-cm-pagination .page-numbers:hover{ border-color:var(--bs-deep); }
.bs-cm-pagination .page-numbers.current{ background:var(--bs-deep); border-color:var(--bs-deep); color:#fff; }
.bs-cm-empty{ color:var(--bs-muted); }

/* ---- Single entry ---------------------------------------------------- */
.bs-cm-entryhero__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(2rem,4.8vw,3.5rem); line-height:1.06;
  margin:0 0 var(--bs-s2);
}
.bs-cm-entryhero__tags{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 var(--bs-s3); }
.bs-cm-entryhero__tags .bs-cm-badge{ position:static; box-shadow:none; }
.bs-cm-type{
  display:inline-block; text-decoration:none;
  font-family:var(--bs-head); font-weight:700; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.1em;
  padding:6px 12px; border-radius:var(--bs-r-pill);
  border:1px solid rgba(255,255,255,.34); color:var(--bs-on-deep);
}
.bs-cm-type:hover{ border-color:var(--bs-gold); color:var(--bs-gold); }
.bs-cm-entryhero__lede{
  font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.6;
  max-width:66ch; margin:0 0 var(--bs-s4); color:var(--bs-on-deep-soft);
}
.bs-cm-facts{
  display:grid; gap:var(--bs-s2); margin:0;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
.bs-cm-facts__item{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--bs-r-md); padding:var(--bs-s3);
}
.bs-cm-facts dt{
  font-family:var(--bs-head); font-weight:700; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.12em;
  color:var(--bs-gold); margin:0 0 6px;
}
.bs-cm-facts dd{
  margin:0; font-family:var(--bs-head); font-weight:800;
  font-size:1.05rem; line-height:1.3; color:var(--bs-on-deep);
}

.bs-cm-entry__feature{ margin:0; }
.bs-cm-entry__feature img{ width:100%; height:auto; display:block; }
.bs-cm-entry__content{ padding-block:var(--bs-section); }
.bs-cm-entry__content > *{ max-width:var(--bs-measure); margin-inline:auto; }
.bs-cm-entry__content h2{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.4rem,2.6vw,2.1rem); line-height:1.15;
  margin:var(--bs-s5) 0 var(--bs-s3);
}
.bs-cm-entry__content p{ line-height:1.7; }
.bs-cm-entry__content .bs-lead{ font-size:clamp(1.05rem,1.5vw,1.25rem); line-height:1.6; }

.bs-cm-entrycta__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.35rem,2.6vw,2.1rem); line-height:1.18; margin:0 0 var(--bs-s2);
}
.bs-cm-entrycta__copy{ color:var(--bs-on-deep-soft); margin:0 0 var(--bs-s3); }
.bs-cm-entrycta__actions{ display:flex; flex-wrap:wrap; gap:var(--bs-s2); margin:0; }
.bs-cm-back{ padding-block:var(--bs-s4); }
.bs-cm-back a{ font-family:var(--bs-head); font-weight:700; color:var(--bs-deep); text-decoration:none; }
.bs-cm-back a:hover{ text-decoration:underline; }

/* ---- Posters: never distorted, never upscaled ------------------------ */
.bs-cm-poster img{
  width:100%; height:auto; display:block;
  border-radius:var(--bs-r-md); box-shadow:var(--bs-sh-2);
}
.bs-cm-poster{ margin-inline:0; }
.bs-cm-poster figcaption{
  font-size:.86rem; color:var(--bs-muted); margin-top:10px; text-align:left;
}

/* ---- Prize cards ----------------------------------------------------- */
.bs-cm-prizes{
  display:grid; gap:var(--bs-s3);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.bs-cm-prize{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); padding:var(--bs-s4) var(--bs-s3);
  box-shadow:var(--bs-sh-1); text-align:center;
}
.bs-cm-prize__amt{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1;
  color:var(--bs-deep); margin:0 0 10px;
}
.bs-cm-prize__k{
  font-family:var(--bs-head); font-weight:700; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.13em;
  color:var(--bs-gold-ink); margin:0 0 6px;
}
.bs-cm-prize__v{ margin:0; color:var(--bs-muted); font-size:.95rem; line-height:1.5; }

/* ---- Auction allocation ---------------------------------------------- */
.bs-cm-auction{ gap:var(--bs-s4); align-items:flex-start; }
.bs-cm-alloc{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); padding:var(--bs-s4) var(--bs-s3);
  box-shadow:var(--bs-sh-1);
}
.bs-cm-alloc__head{
  font-family:var(--bs-head); font-weight:800; font-size:1rem;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--bs-deep); margin:0 0 var(--bs-s2);
}
.bs-cm-alloc__head + .bs-cm-alloc__list{ margin-bottom:var(--bs-s3); }
.bs-cm-alloc__list{ list-style:none; margin:0 0 var(--bs-s3); padding:0; }
.bs-cm-alloc__list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:var(--bs-s2);
  padding:11px 0; border-bottom:1px solid var(--bs-hairline);
  font-size:1rem; line-height:1.35;
}
.bs-cm-alloc__list li:last-child{ border-bottom:0; }
.bs-cm-alloc__pct{
  font-family:var(--bs-head); font-weight:800; font-size:1.2rem;
  color:var(--bs-gold-ink); font-variant-numeric:tabular-nums; white-space:nowrap;
}
.bs-cm-alloc__note{
  margin:0; padding-top:var(--bs-s2); border-top:1px solid var(--bs-hairline);
  font-size:.88rem; line-height:1.55; color:var(--bs-muted);
}
.bs-cm-wa{ margin:var(--bs-s4) 0 0; }

/* ---- Homepage feature band ------------------------------------------- */
.bs-cm-featureband{ padding-inline:var(--bs-gutter); }
.bs-cm-feature{
  max-width:var(--bs-measure); margin-inline:auto;
  display:grid; gap:var(--bs-s4); align-items:center;
  grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr);
}
.bs-cm-feature__media{
  position:relative; border-radius:var(--bs-r-lg); overflow:hidden;
  box-shadow:var(--bs-sh-2); aspect-ratio:3/2; background:var(--bs-surface-2);
}
.bs-cm-feature__media img,
.bs-cm-feature__img{ width:100%; height:100%; object-fit:cover; display:block; }
.bs-cm-feature__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.5rem,2.8vw,2.3rem); line-height:1.14; margin:0 0 var(--bs-s2);
}
.bs-cm-feature__copy{ line-height:1.65; color:var(--bs-muted); margin:0 0 var(--bs-s2); max-width:58ch; }
.bs-cm-feature__meta{
  font-family:var(--bs-head); font-weight:700; font-size:.95rem;
  color:var(--bs-deep); margin:0 0 var(--bs-s3);
}
.bs-cm-feature__actions{ display:flex; flex-wrap:wrap; gap:var(--bs-s2); margin:0; }

/* ---- Kadence Advanced Gallery, aligned to the BowlsSure surface ------ */
.bs-cm-entry__content .kb-gallery-wrap img,
.bs-cm-entry__content .wp-block-gallery img{
  border-radius:var(--bs-r-sm);
}
.bs-cm-entry__content .wp-block-gallery{ margin-block:var(--bs-s4); }

/* =========================== RESPONSIVE =============================== */

@media (max-width:900px){
  .bs-cm-feature{ grid-template-columns:1fr; }
  .bs-cm-feature__media{ aspect-ratio:16/9; }
  .bs-cm-auction{ gap:var(--bs-s3); }
}

@media (max-width:781px){
  /* Gutenberg columns stack natively at this width; keep the poster from
     sitting flush against the allocation card. */
  .bs-cm-auction > .wp-block-column{ flex-basis:100% !important; }
  .bs-cm-auction > .wp-block-column + .wp-block-column{ margin-top:var(--bs-s3); }
}

@media (max-width:600px){
  .bs-cm-grid{ grid-template-columns:1fr; }
  .bs-cm-prizes{ grid-template-columns:1fr; }
  .bs-cm-facts{ grid-template-columns:1fr; }
  .bs-cm-alloc__list li{ font-size:.96rem; }
  .bs-cm-alloc__pct{ font-size:1.1rem; }
  .bs-cm-feature__actions .bs-btn,
  .bs-cm-entrycta__actions .bs-btn{ width:100%; }
  .bs-cm-pagination .page-numbers{ min-width:42px; padding:0 10px; }
}

/* Long club names and titles must never punch out of a card. */
.bs-cm-card__title,
.bs-cm-card__meta,
.bs-cm-feature__title,
.bs-cm-hero__title,
.bs-cm-entryhero__title,
.bs-cm-alloc__list li span{
  overflow-wrap:anywhere;
}

/* Until an entry has a featured image the band must not reserve an empty image
   column: collapse to one column and let the copy use the full measure. */
.bs-cm-feature--noimg{ grid-template-columns:1fr; max-width:min(var(--bs-measure),860px); }
.bs-cm-feature__status{ margin:0 0 var(--bs-s2); }
.bs-cm-feature__status .bs-cm-badge{ position:static; box-shadow:none; }

/* --- Filled-button contrast on the Community dark ground ----------------
   ".bs-deep-ground a:not(.wp-block-button__link):not(.bs-btn-ghost)" resolves
   to (0,3,1) because each :not() argument carries its own class weight, and it
   paints the filled CTA white -> white-on-gold at ~2.1:1. This selector is
   (0,4,1), so it restores the design system's intended gold/ink pairing
   (7.1:1) without resorting to !important.
   Ghost buttons use the existing .bs-btn-ghost component and need no override. */
.bs-deep-ground.bs-cm-entrycta a.bs-btn.bs-btn--primary{ color:var(--bs-ink); }
.bs-deep-ground.bs-cm-entrycta a.bs-btn.bs-btn--primary:hover{ color:#fff; }

/* =========================================================================
   BOWLSSURE GET COVERED  --  appended 2026-09-21
   Step 1 (application) and Step 2 (payment summary + handoff).
   Reuses the existing token set only. Namespaced .bs-gc*.
   ====================================================================== */

.bs-gc{
  max-width:var(--bs-measure);
  margin-inline:auto;
  padding-inline:var(--bs-gutter);
  padding-block:var(--bs-section);
}
.bs-gc *{ box-sizing:border-box; }
.bs-gc__title{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.9rem,4.2vw,3rem); line-height:1.08;
  margin:0 0 var(--bs-s2); color:var(--bs-ink);
  overflow-wrap:anywhere;
}
.bs-gc__lede{
  font-size:clamp(1rem,1.3vw,1.16rem); line-height:1.65;
  color:var(--bs-muted); max-width:62ch; margin:0 0 var(--bs-s4);
}

/* ---- Proposition tiles ------------------------------------------------ */
.bs-gc__props{
  display:grid; gap:var(--bs-s3);
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  margin:0 0 var(--bs-s5);
}
.bs-gc__prop{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); padding:var(--bs-s4) var(--bs-s3);
  box-shadow:var(--bs-sh-1);
}
.bs-gc__prop-k{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.25rem,2.2vw,1.6rem); line-height:1.15;
  color:var(--bs-deep); margin:0 0 6px;
}
.bs-gc__prop-v{ margin:0; color:var(--bs-muted); font-size:.96rem; line-height:1.5; }

/* ---- Step heading + form --------------------------------------------- */
.bs-gc__step{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.1rem,1.9vw,1.4rem); line-height:1.2;
  margin:0 0 var(--bs-s3); color:var(--bs-ink);
}
.bs-gc__formwrap{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg); padding:clamp(20px,3vw,40px);
  box-shadow:var(--bs-sh-2);
}
.bs-gc__formwrap .ff-el-input--label label{
  font-family:var(--bs-head); font-weight:700; color:var(--bs-ink);
}
.bs-gc__formwrap .ff-el-form-control{
  border-radius:var(--bs-r-sm); border:1px solid var(--bs-line);
  padding:13px 14px; font-size:1rem; width:100%; max-width:100%;
  font-family:var(--bs-body); color:var(--bs-ink); background:var(--bs-white);
}
.bs-gc__formwrap .ff-el-form-control:focus{
  outline:2px solid var(--bs-deep); outline-offset:1px; border-color:var(--bs-deep);
}
.bs-gc__formwrap .ff-el-group{ margin-bottom:var(--bs-s3); }
.bs-gc__formwrap .ff-btn-submit{
  border-radius:var(--bs-r-pill) !important;
  font-family:var(--bs-head) !important; font-weight:700 !important;
  padding:16px 34px !important; font-size:1rem !important;
  min-height:52px; cursor:pointer;
}
.bs-gc__formwrap .ff-el-form-check label{ line-height:1.55; }

/* ---- Step 2 card ------------------------------------------------------ */
.bs-gc__card{
  background:var(--bs-white); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg); padding:clamp(20px,3vw,44px);
  box-shadow:var(--bs-sh-2); max-width:720px; margin-inline:auto;
}
.bs-gc__summary{ margin:var(--bs-s4) 0; display:block; }
.bs-gc__summary > div{
  display:flex; flex-wrap:wrap; gap:8px var(--bs-s2);
  align-items:baseline; justify-content:space-between;
  padding:13px 0; border-bottom:1px solid var(--bs-hairline);
}
.bs-gc__summary dt{
  font-family:var(--bs-head); font-weight:700; font-size:.76rem;
  text-transform:uppercase; letter-spacing:.11em; color:var(--bs-gold-ink);
  margin:0;
}
.bs-gc__summary dd{
  margin:0; font-family:var(--bs-head); font-weight:700;
  font-size:1.04rem; color:var(--bs-ink); text-align:right;
  overflow-wrap:anywhere;
}
.bs-gc__ref{ font-variant-numeric:tabular-nums; letter-spacing:.03em; }
.bs-gc__summary-total{ border-bottom:0 !important; padding-top:var(--bs-s3) !important; }
.bs-gc__summary-total dt{ color:var(--bs-ink); font-size:.82rem; }
.bs-gc__summary-total dd{
  font-size:clamp(1.3rem,2.4vw,1.8rem); font-weight:800; color:var(--bs-deep);
}

/* ---- Acknowledgement + CTA ------------------------------------------- */
.bs-gc__ack{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--bs-surface); border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); padding:var(--bs-s3);
  margin:var(--bs-s3) 0;
}
.bs-gc__ack input[type=checkbox]{
  width:22px; height:22px; min-width:22px; margin:2px 0 0; accent-color:var(--bs-deep); cursor:pointer;
}
.bs-gc__ack label{ font-size:.95rem; line-height:1.6; color:var(--bs-ink); cursor:pointer; }
.bs-gc__cta{ width:100%; margin-top:var(--bs-s2); min-height:56px; }
.bs-gc__secure{
  margin:var(--bs-s2) 0 0; font-size:.88rem; color:var(--bs-muted); text-align:center;
}
.bs-gc__fineprint{
  margin:var(--bs-s4) 0 0; font-size:.84rem; line-height:1.6;
  color:var(--bs-muted); max-width:70ch;
}
.bs-gc__error{
  background:#FDECEC; border:1px solid #F3C4C4; color:#7A1F1F;
  border-radius:var(--bs-r-sm); padding:14px 16px; margin:0 0 var(--bs-s3);
  font-size:.95rem; line-height:1.55;
}

/* ---- Cover figure used on marketing pages ----------------------------- */
.bs-coverfig{
  display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline;
}
.bs-coverfig__amt{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.5rem,3vw,2.2rem); line-height:1; color:var(--bs-deep);
}
.bs-coverfig__lbl{ color:var(--bs-muted); font-size:.95rem; }

@media (max-width:600px){
  .bs-gc__props{ grid-template-columns:1fr; }
  .bs-gc__summary > div{ flex-direction:column; align-items:flex-start; gap:4px; }
  .bs-gc__summary dd{ text-align:left; }
  .bs-gc__formwrap,.bs-gc__card{ padding:20px 16px; }
}

/* Get Covered pages sit on the default page template, whose article bleeds
   -16px each side on mobile. Neutralised here for these pages only so the
   journey keeps a proper gutter; every other page is untouched. */
body.bs-gc-page .entry.content-bg.single-entry{
  margin-inline:0;
}
body.bs-gc-page .bs-gc{ max-width:100%; }

/* Benefit breakdown on Get Covered Step 1, sourced from the membership
   document template (never hard-coded in CSS or markup). */
.bs-gc__breakdown{
  list-style:none; margin:var(--bs-s3) 0 0; padding:var(--bs-s3) 0 0;
  border-top:1px solid var(--bs-hairline);
}
.bs-gc__breakdown li{
  display:flex; justify-content:space-between; gap:var(--bs-s2);
  padding:7px 0; font-size:.95rem; color:var(--bs-muted);
}
.bs-gc__breakdown li span:last-child{
  font-variant-numeric:tabular-nums; color:var(--bs-ink); font-weight:600; white-space:nowrap;
}
.bs-gc__breakdown-total{
  border-top:1px solid var(--bs-line); margin-top:6px; padding-top:11px !important;
}
.bs-gc__breakdown-total span{
  font-family:var(--bs-head); font-weight:800; color:var(--bs-deep) !important; font-size:1.02rem;
}

/* =========================================================================
   LIVE EVENT POPUP  --  shown only while a Community event is Happening now
   ====================================================================== */
.bs-pop[hidden]{ display:none !important; }
.bs-pop{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(14px,4vw,40px);
}
.bs-pop__backdrop{
  position:absolute; inset:0; background:rgba(11,62,38,.72);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.bs-pop__panel{
  position:relative; z-index:1;
  width:auto; max-width:min(92vw,520px); max-height:88vh;
  display:flex; align-items:center; justify-content:center;
  animation:bsPopIn .28s var(--bs-ease,ease) both;
}
@keyframes bsPopIn{ from{ opacity:0; transform:translateY(10px) scale(.985); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .bs-pop__panel{ animation:none; } }

.bs-pop__link{ display:block; line-height:0; max-width:100%; max-height:88vh; }
/* The poster carries its own ceiling rather than inheriting the panel's. The
   panel is sized by its content, so capping the image here keeps a very large
   poster inside the design width on every screen, and `width:auto` means a
   small poster is still never upscaled past its own pixels. */
.bs-pop__img{
  display:block;
  max-width:min(92vw,520px); max-height:88vh;
  width:auto; height:auto;
  object-fit:contain;                 /* never crop the poster */
  border-radius:var(--bs-r-md,14px);
  box-shadow:0 18px 50px rgba(0,0,0,.45);
  background:#fff;
}
.bs-pop__close{
  position:absolute; top:-14px; right:-14px; z-index:2;
  width:44px; height:44px; min-width:44px;
  border:0; border-radius:999px; cursor:pointer;
  background:#fff; color:#22282A;
  font-size:26px; line-height:1; font-family:inherit;
  box-shadow:0 4px 14px rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center;
}
.bs-pop__close:hover{ background:var(--bs-gold,#D4AF37); }
.bs-pop__close:focus-visible{ outline:3px solid var(--bs-gold,#D4AF37); outline-offset:2px; }

@media (max-width:600px){
  .bs-pop{ padding:16px; }
  .bs-pop__panel{ max-width:94vw; }
  .bs-pop__img{ max-width:min(94vw,520px); }
  .bs-pop__close{ top:-10px; right:-10px; width:42px; height:42px; min-width:42px; }
}

/* =========================================================================
   CLAIMS  --  Phase 2. Mobile first, built from the existing tokens only.
   ====================================================================== */
/* 20px side gutter matches .bs-gc, the existing shortcode-page convention. */
.bs-claim{ max-width:840px; margin:0 auto; padding:0 20px 48px; }
.bs-claim__head{ margin:0 0 28px; }
.bs-claim__title{ font-size:clamp(28px,6vw,42px); line-height:1.15; margin:6px 0 10px; color:var(--bs-green-deep,#0B3E26); }
.bs-claim__lede{ font-size:clamp(16px,2.4vw,18px); line-height:1.6; color:var(--bs-ink-soft,#3F4A44); margin:0; }

/* --- chooser --- */
.bs-claim__choices{ display:grid; grid-template-columns:1fr; gap:18px; margin:0 0 28px; }
.bs-claim__choice{
  display:block; text-decoration:none; color:inherit;
  border:1px solid rgba(11,62,38,.14); border-left:4px solid var(--bs-gold,#D4AF37);
  border-radius:var(--bs-r-md,14px); padding:22px 20px; background:#fff;
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.bs-claim__choice:hover,
.bs-claim__choice:focus-visible{ box-shadow:0 10px 30px rgba(11,62,38,.12); transform:translateY(-2px); border-left-color:var(--bs-green,#17703F); }
.bs-claim__choice-t{ margin:0 0 6px; font-size:20px; color:var(--bs-green-deep,#0B3E26); }
.bs-claim__choice-d{ margin:0 0 12px; color:var(--bs-ink-soft,#3F4A44); }
.bs-claim__choice-l{ margin:0 0 16px; padding:0 0 0 18px; color:var(--bs-ink-soft,#3F4A44); font-size:15px; }
.bs-claim__choice-l li{ margin:0 0 5px; }
.bs-claim__choice-go{ font-weight:700; color:var(--bs-green,#17703F); }
.bs-claim__choice-go::after{ content:" \2192"; }
.bs-claim__back{ font-weight:600; }

/* --- form --- */
.bs-claim__set{ border:1px solid rgba(11,62,38,.14); border-radius:var(--bs-r-md,14px); padding:18px 16px 6px; margin:0 0 20px; background:#fff; }
.bs-claim__set legend{ font-weight:700; padding:0 8px; color:var(--bs-green-deep,#0B3E26); font-size:17px; }
.bs-claim__grid{ display:grid; grid-template-columns:1fr; gap:4px 18px; }
.bs-claim__f{ margin:0 0 16px; }
.bs-claim__f label{ display:block; font-weight:600; margin:0 0 5px; }
.bs-claim__f input[type=text],
.bs-claim__f input[type=email],
.bs-claim__f input[type=tel],
.bs-claim__f input[type=date],
.bs-claim__f select,
.bs-claim__f textarea{
  width:100%; padding:11px 12px; font:inherit; color:inherit;
  border:1px solid rgba(11,62,38,.28); border-radius:var(--bs-r-sm,8px); background:#fff;
}
.bs-claim__f input:focus-visible,
.bs-claim__f select:focus-visible,
.bs-claim__f textarea:focus-visible{ outline:3px solid var(--bs-gold,#D4AF37); outline-offset:1px; border-color:var(--bs-green,#17703F); }
.bs-claim__f input[type=file]{ width:100%; padding:10px; border:1px dashed rgba(11,62,38,.35); border-radius:var(--bs-r-sm,8px); background:#FAFBFA; font:inherit; }
.bs-claim__f textarea{ resize:vertical; min-height:96px; }
.bs-claim__help{ display:block; margin:5px 0 0; font-size:13.5px; color:var(--bs-ink-soft,#3F4A44); line-height:1.45; }
.bs-claim__help--block{ margin:0 0 14px; }
.bs-claim__check{ margin:0 0 14px; }
.bs-claim__check label{ display:flex; gap:10px; align-items:flex-start; line-height:1.5; }
.bs-claim__check input{ margin-top:4px; flex:0 0 auto; width:18px; height:18px; }
.bs-claim__fineprint{ font-size:13.5px; color:var(--bs-ink-soft,#3F4A44); line-height:1.55; margin:10px 0 0; }
.bs-claim__submit{ margin:24px 0 0; }
.bs-claim__submit .bs-btn{ width:100%; }
/* honeypot: off-screen rather than display:none, which some bots skip */
.bs-claim__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.bs-claim__errors{
  border:1px solid #B42318; border-left:4px solid #B42318; background:#FEF3F2;
  border-radius:var(--bs-r-sm,8px); padding:14px 16px; margin:0 0 22px;
}
.bs-claim__errors ul{ margin:8px 0 0; padding:0 0 0 18px; }
.bs-claim__errors li{ margin:0 0 4px; }

/* --- confirmation --- */
.bs-claim__done{ border:1px solid rgba(11,62,38,.14); border-top:4px solid var(--bs-gold,#D4AF37); border-radius:var(--bs-r-md,14px); padding:28px 22px; background:#fff; }
.bs-claim__reference-label{ margin:18px 0 2px; font-weight:600; color:var(--bs-ink-soft,#3F4A44); }
.bs-claim__reference{
  margin:0 0 18px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:clamp(22px,5vw,30px); font-weight:700; letter-spacing:1px;
  color:var(--bs-green-deep,#0B3E26); word-break:break-all;
}
.bs-claim__notice{ background:#FBF4DC; border-radius:var(--bs-r-sm,8px); padding:12px 14px; margin:0 0 16px; font-size:14.5px; }
.bs-claim__notice ul{ margin:6px 0; padding:0 0 0 18px; }

@media (min-width:720px){
  .bs-claim{ padding:0 0 56px; }
  .bs-claim__choices{ grid-template-columns:1fr 1fr; gap:22px; }
  .bs-claim__grid{ grid-template-columns:1fr 1fr; }
  .bs-claim__f--wide{ grid-column:1 / -1; }
  .bs-claim__set{ padding:22px 22px 8px; }
  .bs-claim__submit .bs-btn{ width:auto; min-width:240px; }
}

/* =========================================================================
   HEADER DROPDOWN  --  Claims is the site's first multi-level menu item.
   The existing rule `#main-header .header-navigation .menu-item > a` was
   written for top-level items but also matches sub-menu items, so it forced
   near-black ink onto Kadence's dark default panel: 1.09:1, unreadable.
   Scoped one level deeper (id + .header-navigation + .sub-menu + .menu-item)
   so it wins on specificity alone - no !important - and the panel is brought
   into the BowlsSure palette rather than left on the theme default.
   ====================================================================== */
#main-header .header-navigation .header-menu-container ul ul.sub-menu{
  background:var(--bs-green-deep,#0B3E26);
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--bs-r-sm,8px);
  padding:6px;
  box-shadow:0 16px 38px rgba(11,62,38,.30);
  overflow:hidden;
}
#main-header .header-navigation ul.sub-menu .menu-item > a{
  color:#FFFFFF;                      /* 12.4:1 on --bs-green-deep */
  font-size:.95rem;
  padding-top:.72em;
  padding-bottom:.72em;
  border-radius:6px;
  transition:background-color .18s ease, color .18s ease;
}
#main-header .header-navigation ul.sub-menu .menu-item > a:hover,
#main-header .header-navigation ul.sub-menu .menu-item > a:focus-visible{
  background:rgba(212,175,55,.20);
  color:var(--bs-gold,#D4AF37);       /* 6.9:1 on --bs-green-deep */
}
#main-header .header-navigation ul.sub-menu .menu-item.current-menu-item > a{
  color:var(--bs-gold,#D4AF37);
}
#main-header .header-navigation ul.sub-menu .menu-item > a:focus-visible{
  outline:2px solid var(--bs-gold,#D4AF37);
  outline-offset:-2px;
}

/* The off-canvas drawer is left entirely to the theme: it already renders the
   sub-items white on the green panel (21:1). An override here was removed
   after testing - it never won on specificity, and had it done so it would
   have put near-black ink on that green. */
.mobile-navigation ul.sub-menu .menu-item > a{ padding-left:26px; }

/* -------------------------------------------------------------------------
   Mobile drawer, items that have a sub-menu.
   The existing rule targets `.menu-item > a`, but Kadence wraps the link of a
   parent item in `.drawer-nav-drop-wrap`, so that child combinator stops
   matching and the item falls back to 14px/400 beside its 22.5px/800
   siblings. Claims is simply the first menu item to have children, which is
   why this only appears now. Same declarations, same scope, one level deeper.
   ---------------------------------------------------------------------- */
#mobile-drawer .mobile-navigation .menu-item > .drawer-nav-drop-wrap > a,
.popup-drawer .mobile-navigation .menu-item > .drawer-nav-drop-wrap > a{
  display:block;
  font-family:var(--bs-head);
  font-weight:800;
  font-size:clamp(1.35rem,6vw,1.75rem);
  letter-spacing:-0.01em;
}
/* Sub-items sit one level down, so they read as subordinate but stay legible
   (white on the drawer's green panel). */
#mobile-drawer .mobile-navigation ul.sub-menu .menu-item > a,
.popup-drawer .mobile-navigation ul.sub-menu .menu-item > a{
  font-family:var(--bs-head);
  font-weight:600;
  font-size:1.02rem;
  letter-spacing:0;
  opacity:.92;
}

/* =========================================================================
   HOMEPAGE V2
   Built on the existing tokens and section primitives (.bs-section,
   .bs-surface, .bs-mist, .bs-deep-ground, .bs-stage). Only the new
   homepage families are defined here; nothing existing is redefined.
   ====================================================================== */

/* --- hero: the V2 asset is a real <picture>, so the CSS layer only tints ---
   .bs-stage already supplies the geometry and the scrim. The V2 modifier
   lifts the image slightly because the new photograph's subject sits lower
   in frame than the one it replaces. */
.bs-stage--v2 .bs-stage__img{ object-position:center 62%; }
.bs-stage--v2 .bs-stage__head{ max-width:15ch; }

/* Proposition rail: "Up to R20,000 cover • R89/month" */
.bs-stage--v2 .bs-rail__fig{ font-weight:800; }

/* Hero reassurance row */
.bs-stage--v2 .bs-stage__trust span{ position:relative; }
.bs-stage--v2 .bs-stage__trust span + span{ padding-left:18px; }
.bs-stage--v2 .bs-stage__trust span + span::before{
  content:'\2022'; position:absolute; left:0; top:50%; transform:translateY(-50%);
  color:var(--bs-gold); opacity:.85;
}

/* --- shared section furniture --- */
.bs-hpsec__head{ max-width:20ch; }
.bs-hpsec .bs-lead{ max-width:52ch; }
.bs-hpsec__note{
  margin-top:var(--bs-s3); font-size:.92rem; color:var(--bs-muted); max-width:62ch;
}
.bs-hpsec__more{ margin-top:var(--bs-s3); font-weight:600; }
.bs-hpsec .wp-block-buttons{ margin-top:var(--bs-s4); }

/* --- 1. benefit cards --- */
.bs-hpben__grid{
  display:grid; grid-template-columns:1fr; gap:16px; margin-top:var(--bs-s4);
}
.bs-hpben__card{
  background:#fff; border:1px solid var(--bs-hairline);
  border-top:3px solid var(--bs-gold);
  border-radius:var(--bs-r-md); padding:26px 22px;
  box-shadow:var(--bs-sh-1);
  transition:transform .22s var(--bs-ease), box-shadow .25s var(--bs-ease);
}
.bs-hpben__card:hover{ transform:translateY(-3px); box-shadow:var(--bs-sh-2); }
.bs-hpben__fig{
  margin:0 0 6px; font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.35rem,3.4vw,1.7rem); letter-spacing:-0.02em;
  color:var(--bs-deep); line-height:1.1;
}
.bs-hpben__card:nth-child(n+3) .bs-hpben__fig{
  font-size:1rem; color:var(--bs-gold); line-height:1;
}
.bs-hpben__t{
  margin:0 0 8px; font-size:1.12rem; font-weight:700; color:var(--bs-ink);
}
.bs-hpben__d{ margin:0; color:var(--bs-muted); line-height:1.6; }

/* --- 2. cover breakdown --- */
.bs-hpcover__list{
  list-style:none; margin:var(--bs-s4) 0 0; padding:0;
  max-width:620px;
  background:#fff; border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); overflow:hidden; box-shadow:var(--bs-sh-1);
}
.bs-hpcover__row{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:16px 20px; border-bottom:1px solid var(--bs-hairline);
}
.bs-hpcover__row:last-child{ border-bottom:0; }
.bs-hpcover__item{ font-weight:600; color:var(--bs-ink); }
.bs-hpcover__amt{
  font-family:var(--bs-head); font-weight:700; color:var(--bs-deep);
  white-space:nowrap;
}
.bs-hpcover__row--total{
  background:var(--bs-surface-2); border-top:2px solid var(--bs-deep);
}
.bs-hpcover__row--total .bs-hpcover__item,
.bs-hpcover__row--total .bs-hpcover__amt{
  font-size:1.14rem; font-weight:800; color:var(--bs-deep);
}

/* --- 3. Full House band --- */
.bs-hpfh .bs-hpsec__head{ max-width:22ch; }
.bs-hpfh .bs-hpsec__more a{ color:#fff; }
.bs-hpfh .bs-hpsec__more a:hover{ color:var(--bs-gold); }

/* --- 4. how it works --- */
.bs-hpsteps__list{
  list-style:none; margin:var(--bs-s4) 0 0; padding:0;
  display:grid; grid-template-columns:1fr; gap:18px; counter-reset:none;
}
.bs-hpsteps__step{
  position:relative; padding:24px 22px 24px 22px;
  background:#fff; border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-md); box-shadow:var(--bs-sh-1);
}
.bs-hpsteps__num{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; height:44px; padding:0 10px; margin:0 0 12px;
  border-radius:var(--bs-r-pill);
  background:var(--bs-deep); color:#fff;
  font-family:var(--bs-head); font-weight:800; font-size:.95rem;
  letter-spacing:.02em;
}
.bs-hpsteps__t{ margin:0 0 6px; font-size:1.14rem; font-weight:700; color:var(--bs-ink); }
.bs-hpsteps__d{ margin:0; color:var(--bs-muted); line-height:1.6; }

/* --- 5. community CTA strip (sits under the dynamic feature) --- */
.bs-hpcommcta{ padding-block:0 var(--bs-section); text-align:center; }
.bs-hpcommcta .wp-block-buttons{ justify-content:center; margin-top:0; }

/* --- 6. claims chooser --- */
.bs-hpclaims__grid{
  display:grid; grid-template-columns:1fr; gap:16px; margin-top:var(--bs-s4);
}
.bs-hpclaims__card{
  display:block; text-decoration:none; color:inherit;
  background:#fff; border:1px solid var(--bs-hairline);
  border-left:4px solid var(--bs-gold);
  border-radius:var(--bs-r-md); padding:24px 22px;
  box-shadow:var(--bs-sh-1);
  transition:transform .22s var(--bs-ease), box-shadow .25s var(--bs-ease), border-left-color .22s var(--bs-ease);
}
.bs-hpclaims__card:hover,
.bs-hpclaims__card:focus-visible{
  transform:translateY(-3px); box-shadow:var(--bs-sh-2);
  border-left-color:var(--bs-deep);
}
.bs-hpclaims__t{
  margin:0 0 8px; font-size:1.02rem; font-weight:800; letter-spacing:.01em;
  color:var(--bs-deep);
}
.bs-hpclaims__d{ margin:0 0 14px; color:var(--bs-muted); line-height:1.6; }
.bs-hpclaims__go{ font-weight:700; color:var(--bs-deep); }
.bs-hpclaims__go::after{ content:' \2192'; }

/* --- 7. trust --- */
.bs-hptrust__grid{
  display:grid; grid-template-columns:1fr; gap:18px; margin-top:var(--bs-s4);
}
.bs-hptrust__item{
  padding:20px 0 0; border-top:2px solid var(--bs-gold);
}
.bs-hptrust__t{ margin:0 0 6px; font-size:1.06rem; font-weight:700; color:var(--bs-ink); }
.bs-hptrust__d{ margin:0; color:var(--bs-muted); line-height:1.6; }
.bs-hptrust__reg{
  margin-top:var(--bs-s4); padding:14px 18px;
  background:var(--bs-surface); border-radius:var(--bs-r-sm);
  font-size:.94rem; font-weight:600; color:var(--bs-deep);
  display:inline-block;
}

/* --- 8. closing CTA --- */
.bs-hpclose__fig{
  margin-top:var(--bs-s3);
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.2rem,3.2vw,1.55rem); letter-spacing:-0.015em;
  color:var(--bs-gold);
}
.bs-hpclose__sub{ margin-top:var(--bs-s3); color:var(--bs-on-deep-soft); font-size:.95rem; }
.bs-hpclose__contact{ margin-top:var(--bs-s2); font-weight:600; }

/* --- responsive --- */
@media (min-width:640px){
  .bs-hpben__grid{ grid-template-columns:repeat(2,1fr); gap:18px; }
  .bs-hpclaims__grid{ grid-template-columns:repeat(2,1fr); gap:20px; }
  .bs-hpsteps__list{ grid-template-columns:repeat(3,1fr); }
  .bs-hptrust__grid{ grid-template-columns:repeat(3,1fr); gap:24px; }
}
@media (min-width:1024px){
  .bs-hpben__grid{ grid-template-columns:repeat(4,1fr); gap:20px; }
  .bs-hpben__card{ padding:30px 26px; }
}
@media (prefers-reduced-motion:reduce){
  .bs-hpben__card:hover,
  .bs-hpclaims__card:hover,
  .bs-hpclaims__card:focus-visible{ transform:none; }
}

/* -------------------------------------------------------------------------
   HERO V2 TREATMENT
   The inherited .bs-stage treatment was tuned for a flat, low-contrast
   photograph: the image carries sepia(.3) + hue-rotate + saturate(.66), and
   the scrim is an almost solid green wash. Applied to the new golden-hour
   asset it erased the subject entirely.

   The gradients below are not eyeballed. The composite (photograph + CSS
   filter + both gradient layers) was reconstructed offline and the brightest
   backdrop pixel behind every hero text block measured against WCAG:

     desktop 1280   H1 5.45:1 (needs 3.0, large)   lead 7.43   rail 8.26
                    link 8.79   reassurance 9.66
     mobile 375     H1 4.74:1                       lead 6.33   rail 7.03
                    link 9.23   reassurance 9.98

   These are the lightest stops that clear AA everywhere, so the photograph
   stays as visible as the text safely allows.
   Scoped to .bs-stage--v2 so every other hero on the site is untouched.
   ---------------------------------------------------------------------- */

/* Let the photograph read: keep a gentle lift, drop the green cast. */
.bs-stage--v2 .bs-stage__img{
  filter:saturate(.94) contrast(1.05) brightness(.90);
  object-position:center 58%;
}

/* Directional scrim: dense under the left-aligned copy, opening toward the
   bowl and the green on the right, with a soft lift off the bottom edge. */
.bs-stage--v2::after{
  background:
    linear-gradient(98deg,
      rgba(11,62,38,.94) 0%,
      rgba(11,62,38,.90) 40%,
      rgba(11,62,38,.74) 62%,
      rgba(11,62,38,.44) 82%,
      rgba(11,62,38,.22) 100%),
    linear-gradient(to top, rgba(11,62,38,.72) 0%, rgba(11,62,38,0) 44%);
}

/* The rail, link and reassurance rows inherit max-width:none and would
   otherwise run into the bright right-hand side of the frame. */
.bs-stage--v2 .bs-stage__rail,
.bs-stage--v2 .bs-stage__more,
.bs-stage--v2 .bs-stage__trust{ max-width:760px; }

/* Full white rather than the muted on-dark tint: at 18.4px these sit below
   the large-text threshold and need the full 4.5:1 over a photograph. */
.bs-stage--v2 .bs-stage__lead,
.bs-stage--v2 .bs-stage__trust{ color:#fff; }

/* Below ~700px the copy spans the full width, so a left-weighted gradient no
   longer protects it. Switch to a vertical veil that keeps the top of the
   frame open and darkens behind the text. */
@media (max-width:700px){
  .bs-stage--v2::after{
    background:
      linear-gradient(to top,
        rgba(11,62,38,.94) 0%,
        rgba(11,62,38,.88) 38%,
        rgba(11,62,38,.72) 68%,
        rgba(11,62,38,.52) 100%);
  }
  .bs-stage--v2 .bs-stage__img{ object-position:center 46%; }
}

/* Cards 3 and 4 carry no figure. A short gold rule drawn on the title holds
   the same vertical rhythm as the R-value on cards 1 and 2 when all four sit
   in a row - no invented number and no stray glyph.
   The rule is positioned rather than flowed: the theme applies its own
   margins to headings and paragraphs, which made a flowed spacer unreliable.
   62px is the measured distance from card top to title top on cards 1 and 2. */
.bs-hpben__card:nth-child(n+3) .bs-hpben__t{
  position:relative;
  padding-top:62px;
}
.bs-hpben__card:nth-child(n+3) .bs-hpben__t::before{
  content:''; position:absolute; top:30px; left:0;
  width:34px; height:4px; border-radius:2px;
  background:var(--bs-gold);
}
/* Stacked, the reserved space is unnecessary - the rule sits just above. */
@media (max-width:1023px){
  .bs-hpben__card:nth-child(n+3) .bs-hpben__t{ padding-top:26px; }
  .bs-hpben__card:nth-child(n+3) .bs-hpben__t::before{ top:0; }
}

/* =========================================================================
   HOMEPAGE V2 — VISUAL REFINEMENT PASS
   Same copy, same CTAs, same markup semantics. This pass changes scale,
   depth and rhythm: bigger components, a cinematic hero, photographic
   equipment tiles and an editorial Full House feature.
   ====================================================================== */

/* --- wider useful canvas on large screens ------------------------------- */
@media (min-width:1200px){
  .bs-hpsec > .wp-block-group__inner-container{
    max-width:1320px;
    padding-inline:40px;          /* 1240px of usable canvas */
  }
}

/* Alternating grounds instead of repeating white/grey bands. */
.bs-hpsec{ position:relative; }
.bs-hpben{ background:var(--bs-white); }
.bs-hpcover{
  background:
    radial-gradient(120% 90% at 12% 0%, rgba(212,175,55,.08) 0%, rgba(212,175,55,0) 58%),
    var(--bs-surface);
}
.bs-hpsteps{ background:var(--bs-white); }
.bs-hpclaims{
  background:
    radial-gradient(100% 80% at 88% 0%, rgba(15,81,50,.07) 0%, rgba(15,81,50,0) 60%),
    var(--bs-surface);
}
.bs-hptrust{ background:var(--bs-white); }

/* Section heads carry more weight. */
.bs-hpsec__head{
  font-size:clamp(1.9rem,3.6vw,3.1rem);
  line-height:1.08;
  letter-spacing:-0.028em;
  max-width:22ch;
}
.bs-hpsec .bs-eyebrow{ margin-bottom:10px; }

/* =======================================================================
   HERO — cinematic
   ==================================================================== */
@media (min-width:1024px){
  .bs-stage--v2{
    min-height:clamp(620px,72vh,700px);
    padding-block:clamp(120px,15vh,170px) clamp(56px,7vh,84px);
  }
}
.bs-stage--v2 .bs-stage__head{
  font-size:clamp(2.7rem,6.4vw,5.4rem);
  line-height:.98;
  letter-spacing:-0.042em;
  max-width:14ch;
  text-shadow:0 3px 34px rgba(11,62,38,.5);
}
.bs-stage--v2 .bs-stage__lead{
  font-size:clamp(1.1rem,1.55vw,1.36rem);
  line-height:1.55;
  max-width:44ch;
  margin-top:var(--bs-s3);
}

/* Proposition becomes a glass plate rather than loose text. */
.bs-stage--v2 .bs-stage__rail{
  display:inline-flex; align-items:baseline; flex-wrap:wrap;
  gap:6px 14px;
  margin-top:var(--bs-s4);
  padding:14px 22px;
  border-radius:var(--bs-r-pill);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.bs-stage--v2 .bs-rail__fig{
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.15rem,1.9vw,1.5rem);
  letter-spacing:-0.02em; color:var(--bs-gold);
}
.bs-stage--v2 .bs-rail__unit{ color:#fff; opacity:.92; font-size:.95rem; }
.bs-stage--v2 .bs-rail__sep{
  width:1px; height:20px; background:rgba(255,255,255,.3); display:inline-block;
}

/* Dominant primary CTA. */
.bs-stage--v2 .bs-stage__actions .wp-block-button__link{
  padding:22px 46px !important;
  font-size:1.12rem;
  letter-spacing:.02em;
  box-shadow:0 12px 34px rgba(168,134,42,.42);
}
.bs-stage--v2 .bs-stage__more{ margin-top:var(--bs-s3); }
.bs-stage--v2 .bs-stage__trust{ margin-top:var(--bs-s4); font-size:.95rem; }

/* =======================================================================
   BENEFIT CARDS — substantial
   ==================================================================== */
.bs-hpben__grid{ gap:20px; margin-top:var(--bs-s5); }
.bs-hpben__card{
  padding:34px 30px 32px;
  border:1px solid var(--bs-hairline);
  border-top:0;
  border-radius:var(--bs-r-lg);
  box-shadow:var(--bs-sh-1);
  position:relative; overflow:hidden;
  background:
    linear-gradient(180deg, rgba(245,246,243,.7) 0%, #fff 34%);
}
/* Gold cap replaces the thin top border. */
.bs-hpben__card::after{
  content:''; position:absolute; inset:0 0 auto 0; height:5px;
  background:linear-gradient(90deg,var(--bs-gold) 0%,var(--bs-gold-deep) 100%);
}
.bs-hpben__card:hover{ transform:translateY(-5px); box-shadow:var(--bs-sh-3); }
.bs-hpben__fig{
  font-size:clamp(1.7rem,2.6vw,2.15rem);
  line-height:1.05; margin:0 0 10px;
}
/* Cards 3 and 4: the gold rule marker, scaled up with the card. */
.bs-hpben__card:nth-child(n+3) .bs-hpben__t{ padding-top:70px; }
.bs-hpben__card:nth-child(n+3) .bs-hpben__t::before{
  top:34px; width:44px; height:5px;
}
.bs-hpben__t{ font-size:1.22rem; margin-bottom:10px; }
.bs-hpben__d{ font-size:1rem; line-height:1.65; }

/* =======================================================================
   COVER BREAKDOWN — photographic tiles
   ==================================================================== */
.bs-hpcover__grid{
  display:grid; grid-template-columns:1fr; gap:18px;
  margin-top:var(--bs-s5);
}
.bs-hpcover__tile{
  background:#fff;
  border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg);
  padding:22px 20px 26px;
  text-align:center;
  box-shadow:var(--bs-sh-1);
  transition:transform .24s var(--bs-ease), box-shadow .26s var(--bs-ease);
}
.bs-hpcover__tile:hover{ transform:translateY(-5px); box-shadow:var(--bs-sh-2); }
.bs-hpcover__media{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1/1;
  margin:0 0 16px;
  border-radius:var(--bs-r-md);
  background:linear-gradient(180deg,var(--bs-surface) 0%,#fff 70%);
  overflow:hidden;
}
.bs-hpcover__media img{
  width:86%; height:86%; object-fit:contain; display:block;
  mix-blend-mode:multiply;          /* drops the white box onto the tint */
}
.bs-hpcover__t{
  margin:0 0 4px;
  font-family:var(--bs-head); font-weight:700;
  font-size:.92rem; letter-spacing:.11em; text-transform:uppercase;
  color:var(--bs-muted);
}
.bs-hpcover__amt{
  margin:0;
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(1.2rem,2vw,1.42rem); letter-spacing:-0.02em;
  color:var(--bs-deep);
}

/* Total: the payoff line. */
.bs-hpcover__total{
  margin-top:26px;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:30px 26px;
  border-radius:var(--bs-r-lg);
  background:linear-gradient(120deg,var(--bs-green-deep) 0%,var(--bs-deep) 62%,#14603a 100%);
  box-shadow:var(--bs-sh-2);
  text-align:center;
}
.bs-hpcover__total-k{
  margin:0; color:var(--bs-gold);
  font-family:var(--bs-head); font-weight:700;
  font-size:.86rem; letter-spacing:.14em; text-transform:uppercase;
}
.bs-hpcover__total-v{
  margin:0; color:#fff;
  font-family:var(--bs-head); font-weight:800;
  font-size:clamp(2rem,4.4vw,3rem); letter-spacing:-0.03em; line-height:1.05;
}
.bs-hpcover .bs-hpsec__note{ margin-top:var(--bs-s3); }

/* =======================================================================
   FULL HOUSE — editorial split
   ==================================================================== */
.bs-hpfh{ overflow:hidden; }
.bs-hpfh__split{
  display:grid; grid-template-columns:1fr; gap:28px; align-items:center;
}
.bs-hpfh__media{
  position:relative; border-radius:var(--bs-r-lg); overflow:hidden;
  box-shadow:0 26px 60px rgba(0,0,0,.34);
}
.bs-hpfh__media img{ display:block; width:100%; height:100%; object-fit:cover; }
.bs-hpfh__badge{
  position:absolute; left:18px; bottom:18px; margin:0;
  display:flex; flex-direction:column; gap:2px;
  padding:14px 20px; border-radius:var(--bs-r-md);
  background:rgba(11,62,38,.88);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(212,175,55,.42);
}
.bs-hpfh__badge-k{
  color:var(--bs-gold); font-family:var(--bs-head); font-weight:700;
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
}
.bs-hpfh__badge-v{
  color:#fff; font-family:var(--bs-head); font-weight:800;
  font-size:1.7rem; letter-spacing:-0.02em; line-height:1;
}
.bs-hpfh__body .bs-hpsec__head{ margin-top:6px; max-width:18ch; }
.bs-hpfh__body .bs-lead{ max-width:46ch; }
.bs-hpfh__actions{ margin:var(--bs-s4) 0 0; }
.bs-hpfh__actions .bs-btn{
  padding:20px 40px !important; font-size:1.06rem;
  background:var(--bs-gold); color:var(--bs-ink);
  box-shadow:0 10px 28px rgba(168,134,42,.34);
}
.bs-hpfh__actions .bs-btn:hover{ background:var(--bs-gold-deep); color:#fff; }
.bs-hpfh .bs-hpsec__more{ margin-top:var(--bs-s3); }
.bs-hpfh .bs-hpsec__more a{ color:#fff; }
.bs-hpfh .bs-hpsec__more a:hover{ color:var(--bs-gold); }

/* =======================================================================
   HOW IT WORKS — large numbered devices
   ==================================================================== */
.bs-hpsteps__list{ gap:22px; margin-top:var(--bs-s5); }
.bs-hpsteps__step{
  padding:34px 28px 30px;
  border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg);
  box-shadow:var(--bs-sh-1);
  position:relative;
}
.bs-hpsteps__num{
  min-width:64px; height:64px; margin-bottom:18px;
  font-size:1.34rem; letter-spacing:.01em;
  background:linear-gradient(140deg,var(--bs-deep) 0%,var(--bs-green-deep) 100%);
  box-shadow:0 8px 20px rgba(15,81,50,.26);
}
.bs-hpsteps__t{ font-size:1.24rem; margin-bottom:8px; }
.bs-hpsteps__d{ font-size:1rem; line-height:1.65; }
/* Connecting rhythm between the three steps on wide screens. */
@media (min-width:640px){
  .bs-hpsteps__step:not(:last-child)::after{
    content:''; position:absolute; top:66px; right:-13px;
    width:22px; height:2px; background:var(--bs-hairline);
  }
}

/* =======================================================================
   COMMUNITY — the dynamic feature becomes editorial
   Styling only: the shortcode, its markup and its lifecycle are untouched.
   ==================================================================== */
.bs-cm-featureband{
  background:
    radial-gradient(90% 80% at 10% 0%, rgba(212,175,55,.07) 0%, rgba(212,175,55,0) 60%),
    var(--bs-white) !important;
}
.bs-cm-featureband .bs-cm-feature{
  gap:clamp(22px,3vw,44px);
  align-items:center;
}
.bs-cm-featureband .bs-cm-feature__media{
  border-radius:var(--bs-r-lg);
  overflow:hidden;
  box-shadow:var(--bs-sh-3);
}
.bs-cm-featureband .bs-cm-feature__img{
  width:100%; height:auto; display:block;
  transition:transform .5s var(--bs-ease);
}
.bs-cm-featureband .bs-cm-feature:hover .bs-cm-feature__img{ transform:scale(1.03); }
.bs-cm-featureband .bs-cm-feature__title{
  font-size:clamp(1.6rem,3vw,2.5rem);
  line-height:1.1; letter-spacing:-0.025em;
}
@media (min-width:900px){
  .bs-cm-featureband .bs-cm-feature{
    display:grid; grid-template-columns:1.15fr 1fr;
  }
}
.bs-hpcommcta{ padding-block:0 var(--bs-section); }
.bs-hpcommcta .wp-block-button__link{ padding:19px 38px !important; }

/* =======================================================================
   CLAIMS — larger, clearer actions
   ==================================================================== */
.bs-hpclaims__grid{ gap:20px; margin-top:var(--bs-s5); }
.bs-hpclaims__card{
  padding:34px 30px;
  border:1px solid var(--bs-hairline);
  border-left:5px solid var(--bs-gold);
  border-radius:var(--bs-r-lg);
  box-shadow:var(--bs-sh-1);
  background:linear-gradient(180deg,#fff 0%,rgba(245,246,243,.55) 100%);
}
.bs-hpclaims__card:hover,
.bs-hpclaims__card:focus-visible{
  transform:translateY(-5px); box-shadow:var(--bs-sh-3);
  border-left-color:var(--bs-deep);
}
.bs-hpclaims__t{ font-size:1.14rem; letter-spacing:.02em; margin-bottom:10px; }
.bs-hpclaims__d{ font-size:1rem; line-height:1.65; margin-bottom:20px; }
.bs-hpclaims__go{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:var(--bs-r-pill);
  background:var(--bs-deep); color:#fff; font-size:.98rem;
  transition:background-color .2s ease;
}
.bs-hpclaims__go::after{ content:'\2192'; }
.bs-hpclaims__card:hover .bs-hpclaims__go{ background:var(--bs-green-deep); }

/* =======================================================================
   TRUST — proper indicator cards
   ==================================================================== */
.bs-hptrust__grid{ gap:20px; margin-top:var(--bs-s5); }
.bs-hptrust__item{
  padding:30px 26px;
  border:1px solid var(--bs-hairline);
  border-top:0;
  border-radius:var(--bs-r-lg);
  background:#fff;
  box-shadow:var(--bs-sh-1);
  position:relative; overflow:hidden;
}
.bs-hptrust__item::after{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:var(--bs-deep);
}
.bs-hptrust__t{ font-size:1.12rem; margin-bottom:8px; }
.bs-hptrust__d{ font-size:1rem; line-height:1.65; }
.bs-hptrust__reg{
  margin-top:var(--bs-s5);
  padding:20px 28px;
  background:linear-gradient(120deg,var(--bs-green-deep) 0%,var(--bs-deep) 100%);
  color:#fff; border-radius:var(--bs-r-md);
  font-size:1rem; font-weight:600; letter-spacing:.005em;
  box-shadow:var(--bs-sh-2);
  display:block; text-align:center;
}

/* =======================================================================
   FINAL CTA — the conclusion, not another band
   ==================================================================== */
.bs-hpclose{
  position:relative; overflow:hidden;
  background:
    radial-gradient(90% 120% at 50% 0%, #14603a 0%, var(--bs-deep) 46%, var(--bs-green-deep) 100%);
}
.bs-hpclose::before{
  content:''; position:absolute; inset:auto -10% -55% -10%; height:70%;
  background:radial-gradient(60% 100% at 50% 0%, rgba(212,175,55,.18) 0%, rgba(212,175,55,0) 70%);
  pointer-events:none;
}
.bs-hpclose > .wp-block-group__inner-container{ position:relative; text-align:center; }
.bs-hpclose h2{
  font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.06; letter-spacing:-0.03em;
}
.bs-hpclose .bs-lead{ margin-inline:auto; max-width:48ch; }
.bs-hpclose__fig{
  display:inline-block; margin-top:var(--bs-s4);
  padding:14px 28px; border-radius:var(--bs-r-pill);
  background:rgba(255,255,255,.08); border:1px solid rgba(212,175,55,.4);
  font-size:clamp(1.05rem,2.2vw,1.3rem);
}
.bs-hpclose .wp-block-buttons{ justify-content:center; }
.bs-hpclose .wp-block-button__link{
  padding:22px 52px !important; font-size:1.12rem; letter-spacing:.02em;
  box-shadow:0 14px 38px rgba(168,134,42,.4);
}
.bs-hpclose__contact a{ color:var(--bs-gold); }

/* =======================================================================
   RESPONSIVE — the richer desktop treatment simplifies cleanly
   ==================================================================== */
@media (min-width:640px){
  .bs-hpcover__grid{ grid-template-columns:repeat(2,1fr); gap:20px; }
}
@media (min-width:900px){
  .bs-hpfh__split{ grid-template-columns:1fr 1fr; gap:clamp(34px,4vw,64px); }
  .bs-hpfh__media{ aspect-ratio:4/3; }
}
@media (min-width:1024px){
  .bs-hpcover__grid{ grid-template-columns:repeat(4,1fr); gap:22px; }
  .bs-hpcover__total{
    flex-direction:row; justify-content:center; align-items:baseline; gap:18px;
    padding:34px 30px;
  }
  .bs-hpben__grid{ gap:22px; }
  .bs-hpclaims__grid{ gap:24px; }
  .bs-hptrust__grid{ gap:24px; }
}
@media (max-width:639px){
  /* Stacked: keep the 20px gutter and avoid oversized vertical runs. */
  .bs-hpcover__tile{ padding:18px 16px 20px; }
  .bs-hpcover__media{ aspect-ratio:16/10; }
  .bs-hpcover__media img{ width:70%; height:88%; }
  .bs-hpben__card{ padding:28px 22px 26px; }
  .bs-hpben__card:nth-child(n+3) .bs-hpben__t{ padding-top:30px; }
  .bs-hpben__card:nth-child(n+3) .bs-hpben__t::before{ top:0; }
  .bs-hpsteps__step{ padding:26px 22px; }
  .bs-hpclaims__card{ padding:26px 22px; }
  .bs-hptrust__item{ padding:24px 20px; }
  .bs-hpfh__badge{ left:12px; bottom:12px; padding:11px 16px; }
  .bs-hpfh__badge-v{ font-size:1.4rem; }
  .bs-hptrust__reg{ padding:18px 20px; font-size:.95rem; }
  .bs-stage--v2 .bs-stage__rail{ padding:12px 18px; }
}
@media (prefers-reduced-motion:reduce){
  .bs-hpcover__tile:hover,
  .bs-hpben__card:hover,
  .bs-hpclaims__card:hover{ transform:none; }
  .bs-cm-featureband .bs-cm-feature:hover .bs-cm-feature__img{ transform:none; }
}

/* -------------------------------------------------------------------------
   REFINEMENT CORRECTIONS
   1. The canvas rule lost on specificity: the theme-wide
      `.wp-block-group.alignfull > .wp-block-group__inner-container` is (0,3,0)
      and mine was (0,2,0). Matching the real ancestor classes wins it back
      without !important.
   2. The hero's min-height was being satisfied, but its own content plus the
      inherited vertical padding pushed the rendered height to 956px. The
      padding and internal rhythm are tightened so the section lands in the
      620-700px band it was asked for.
   ---------------------------------------------------------------------- */

@media (min-width:1200px){
  .wp-block-group.alignfull.bs-hpsec > .wp-block-group__inner-container{
    max-width:1320px;
    padding-inline:40px;          /* 1240px of usable canvas */
  }
}

@media (min-width:1024px){
  .bs-stage.bs-stage--v2{
    padding-block:clamp(78px,9.5vh,104px) clamp(44px,5.5vh,60px);
  }
  .bs-stage--v2 .bs-stage__lead{ margin-top:18px; }
  .bs-stage--v2 .bs-stage__rail{ margin-top:22px; }
  .bs-stage--v2 .bs-stage__actions{ margin-top:24px; }
  .bs-stage--v2 .bs-stage__more{ margin-top:16px; }
  .bs-stage--v2 .bs-stage__trust{ margin-top:22px; }
  .bs-stage--v2 .bs-stage__actions .wp-block-button__link{
    padding:20px 44px !important;
  }
}

/* -------------------------------------------------------------------------
   HERO RHYTHM
   The hero was rendering 900px against a 620-700px target. min-height was
   never the problem: the H1 carried an inherited 129.6px top margin and every
   child an inherited 32px bottom margin, so each gap was roughly double what
   the refinement set. Zeroing the inherited margins lets the explicit rhythm
   above actually govern, and the section lands in band.
   ---------------------------------------------------------------------- */
@media (min-width:1024px){
  .bs-stage.bs-stage--v2 > .wp-block-group__inner-container > *{ margin-bottom:0; }
  .bs-stage.bs-stage--v2 .bs-stage__head{ margin-top:0; margin-bottom:0; }
}

/* =========================================================================
   TARGETED VISUAL PASS  --  2026-09-23
   Presentation only. Hero composition, steps journey, community feature,
   claims actions, trust panel, adaptive community archive.
   Backup: design.css.bak-20260923-visualpass
   ====================================================================== */

/* ---------- 1. HERO: campaign composition -------------------------------- */
.bs-stage--v2 .bs-stage__img{ filter:saturate(1) contrast(1.06) brightness(.93); }
@media (min-width:1024px){
  .bs-stage.bs-stage--v2{
    min-height:680px;
    display:flex; align-items:center;
    padding-block:72px 56px;
  }
  .bs-stage.bs-stage--v2 > .wp-block-group__inner-container{ width:100%; }
  /* Dense behind the copy column, opening to near-clear over the bowl. */
  .bs-stage--v2::after{
    background:
      linear-gradient(90deg,
        rgba(11,62,38,.93) 0%,
        rgba(11,62,38,.88) 34%,
        rgba(11,62,38,.74) 50%,
        rgba(11,62,38,.40) 66%,
        rgba(11,62,38,.12) 84%,
        rgba(11,62,38,.04) 100%),
      linear-gradient(to top, rgba(11,62,38,.50) 0%, rgba(11,62,38,0) 30%);
  }
  .bs-stage--v2 .bs-stage__head{
    font-size:clamp(4.4rem,5.9vw,5.5rem);
    line-height:.96; letter-spacing:-0.045em;
    max-width:12.5ch;
  }
  .bs-stage--v2 .bs-stage__head::before{
    content:''; display:block; width:64px; height:4px; border-radius:2px;
    margin-bottom:28px;
    background:linear-gradient(90deg,var(--bs-gold) 0%,var(--bs-gold-deep) 100%);
  }
  .bs-stage--v2 .bs-stage__lead{ margin-top:24px; max-width:40ch; }
  .bs-stage--v2 .bs-stage__rail{ margin-top:30px; }
  .bs-stage--v2 .bs-stage__actions{ margin-top:30px; }
  .bs-stage--v2 .bs-stage__actions .wp-block-button__link{
    padding:22px 54px !important; font-size:1.14rem; min-width:250px;
  }
}
/* Proposition device: a gold-edged plate, figures lead. */
.bs-stage--v2 .bs-stage__rail{
  border-radius:14px;
  background:linear-gradient(120deg,rgba(11,62,38,.72) 0%,rgba(11,62,38,.52) 100%);
  border:1px solid rgba(212,175,55,.55);
  box-shadow:inset 3px 0 0 var(--bs-gold), 0 10px 30px rgba(0,0,0,.18);
  padding:14px 24px 14px 26px;
  gap:4px 12px;
}
.bs-stage--v2 .bs-rail__fig{ font-size:clamp(1.3rem,2.1vw,1.75rem); }
.bs-stage--v2 .bs-rail__unit{
  font-family:var(--bs-head); font-weight:600; font-size:.82rem;
  letter-spacing:.12em; text-transform:uppercase; opacity:.95;
}
.bs-stage--v2 .bs-rail__sep{ height:26px; margin-inline:8px; background:rgba(212,175,55,.5); align-self:center; }
.bs-stage--v2 .bs-stage__more a{
  color:#fff; font-weight:600; text-decoration:underline;
  text-decoration-color:rgba(212,175,55,.8); text-underline-offset:5px; text-decoration-thickness:2px;
}
.bs-stage--v2 .bs-stage__more a:hover{ color:var(--bs-gold); }
@media (max-width:700px){
  /* Keep the bowl and jack in frame on narrow crops. */
  .bs-stage--v2 .bs-stage__img{ object-position:64% 46%; }
  .bs-stage--v2 .bs-stage__rail{ padding:12px 16px 12px 18px; gap:4px 8px; }
  .bs-stage--v2 .bs-rail__fig{ font-size:1.22rem; }
  .bs-stage--v2 .bs-rail__unit{ font-size:.7rem; letter-spacing:.08em; }
  .bs-stage--v2 .bs-rail__sep{ margin-inline:2px; height:22px; }
}

/* ---------- 2. GETTING COVERED: a journey -------------------------------- */
.bs-hpsteps > .wp-block-group__inner-container > .bs-hpsec__head{ margin-inline:auto; text-align:center; }
.bs-hpsteps .wp-block-buttons{ justify-content:center; margin-top:40px; }
.bs-hpsteps .wp-block-buttons .wp-block-button__link{
  padding:21px 48px !important; font-size:1.08rem; letter-spacing:.02em;
  box-shadow:0 12px 32px rgba(168,134,42,.34);
}
.bs-hpsteps__step{ text-align:left; }
.bs-hpsteps__num{
  min-width:76px; height:76px; font-size:1.5rem;
  background:linear-gradient(140deg,var(--bs-deep) 0%,var(--bs-green-deep) 100%);
  box-shadow:0 0 0 4px #fff, 0 0 0 6px rgba(212,175,55,.35), 0 10px 22px rgba(15,81,50,.24);
}
.bs-hpsteps__step:nth-child(2) .bs-hpsteps__num{
  box-shadow:0 0 0 4px #fff, 0 0 0 6px rgba(212,175,55,.7), 0 10px 22px rgba(15,81,50,.24);
}
.bs-hpsteps__step:nth-child(3) .bs-hpsteps__num{
  background:linear-gradient(140deg,var(--bs-gold) 0%,var(--bs-gold-deep) 100%);
  color:var(--bs-green-deep);
  box-shadow:0 0 0 4px #fff, 0 0 0 6px var(--bs-gold), 0 10px 22px rgba(168,134,42,.3);
}
.bs-hpsteps__step:nth-child(3){ border-color:rgba(212,175,55,.55); }
.bs-hpsteps__t{ font-size:1.36rem; }
/* The inherited short hairline connector is replaced below. */
.bs-hpsteps__step:not(:last-child)::after{ display:none; }
@media (max-width:899px){
  .bs-hpsteps__list{ grid-template-columns:1fr; max-width:620px; margin-inline:auto; }
}
@media (min-width:900px){
  .bs-hpsteps__list{ grid-template-columns:repeat(3,1fr); gap:32px; position:relative; }
  .bs-hpsteps__step{ padding:40px 34px 36px; min-height:100%; }
  /* Gold progression line through the number devices. */
  .bs-hpsteps__step:not(:last-child)::after{
    display:block; content:''; position:absolute;
    top:78px; left:calc(34px + 76px + 14px); right:-26px; width:auto;
    height:2px; border-radius:2px; z-index:0;
    background:linear-gradient(90deg,rgba(212,175,55,.25) 0%,var(--bs-gold) 100%);
  }
  .bs-hpsteps__step:nth-child(2)::after{
    background:linear-gradient(90deg,rgba(212,175,55,.6) 0%,var(--bs-gold) 100%);
  }
  .bs-hpsteps__step:not(:last-child)::before{
    content:''; position:absolute; top:74px; right:-36px;
    width:10px; height:10px; border-radius:50%;
    background:var(--bs-gold); z-index:1;
  }
}

/* ---------- 3. HOMEPAGE COMMUNITY: editorial feature --------------------- */
.bs-hpcomm{ padding-bottom:0; }
.bs-hpcomm .bs-lead{ max-width:60ch; }
.bs-cm-featureband{
  background:var(--bs-mist) !important;
  padding-block:clamp(32px,4vw,56px) clamp(32px,4vw,48px);
}
.bs-cm-featureband + .bs-hpcommcta,
.bs-hpcommcta{ background:var(--bs-mist); }
.bs-cm-featureband .bs-cm-feature{
  max-width:1240px;
  background:#fff;
  border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg);
  box-shadow:var(--bs-sh-2);
  overflow:hidden;
  gap:0;
  align-items:stretch;
}
.bs-cm-featureband .bs-cm-feature__media{
  border-radius:0; box-shadow:none; aspect-ratio:16/10;
}
.bs-cm-featureband .bs-cm-feature__img{ height:100%; object-fit:cover; }
.bs-cm-featureband .bs-cm-feature__body{ padding:28px 22px 30px; }
.bs-cm-featureband .bs-cm-feature__title{
  font-size:clamp(1.9rem,3.4vw,3.1rem); line-height:1.04; letter-spacing:-0.03em;
  margin:6px 0 18px;
}
.bs-cm-featureband .bs-cm-feature__copy{ font-size:1.06rem; line-height:1.7; max-width:52ch; }
.bs-cm-featureband .bs-cm-feature__meta{
  display:inline-block; margin:6px 0 26px;
  padding:12px 0 0; border-top:3px solid var(--bs-gold);
  font-size:1rem; letter-spacing:.01em; color:var(--bs-green-deep);
}
.bs-cm-featureband .bs-cm-feature__actions .bs-btn--primary{ padding:18px 36px !important; }
@media (min-width:900px){
  .bs-cm-featureband .bs-cm-feature{ grid-template-columns:minmax(0,45fr) minmax(0,55fr); }
  .bs-cm-featureband .bs-cm-feature__media{ aspect-ratio:auto; min-height:440px; }
  .bs-cm-featureband .bs-cm-feature__body{
    padding:clamp(40px,4.4vw,64px) clamp(36px,4.6vw,72px);
    display:flex; flex-direction:column; justify-content:center;
  }
}
.bs-hpcommcta{ padding-block:0 var(--bs-section); }

/* ---------- 4. CLAIMS: two real actions ----------------------------------- */
.bs-hpclaims__grid{ max-width:1100px; }
.bs-hpclaims__card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  padding:40px 36px 36px;
  border:1px solid var(--bs-hairline);
  border-left:1px solid var(--bs-hairline);
  background:#fff;
}
.bs-hpclaims__card::after{
  content:''; position:absolute; inset:0 0 auto 0; height:5px; background:var(--bs-deep);
}
.bs-hpclaims__card::before{
  content:''; display:block; width:60px; height:60px; margin-bottom:22px;
  border-radius:16px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v5.6c0 4.3 3.1 8.2 7.5 9.4 4.4-1.2 7.5-5.1 7.5-9.4V6L12 3Z'/%3E%3Cpath d='m8.8 12.2 2.2 2.2 4.3-4.4'/%3E%3C/svg%3E") center/30px no-repeat,
    linear-gradient(140deg,var(--bs-deep) 0%,var(--bs-green-deep) 100%);
  box-shadow:0 8px 20px rgba(15,81,50,.22);
}
.bs-hpclaims__card:nth-child(2)::after{
  background:linear-gradient(90deg,var(--bs-gold) 0%,var(--bs-gold-deep) 100%);
}
.bs-hpclaims__card:nth-child(2){
  border-color:rgba(212,175,55,.5);
  background:linear-gradient(180deg,rgba(212,175,55,.08) 0%,#fff 46%);
}
.bs-hpclaims__card:nth-child(2)::before{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3E26' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1.2' fill='%230B3E26'/%3E%3C/svg%3E") center/30px no-repeat,
    linear-gradient(140deg,var(--bs-gold) 0%,var(--bs-gold-deep) 100%);
  box-shadow:0 8px 20px rgba(168,134,42,.28);
}
.bs-hpclaims__card:hover,
.bs-hpclaims__card:focus-visible{ border-left-color:var(--bs-hairline); }
.bs-hpclaims__card:nth-child(2):hover{ border-left-color:rgba(212,175,55,.5); }
.bs-hpclaims__t{ font-size:clamp(1.3rem,1.8vw,1.55rem); line-height:1.2; letter-spacing:.01em; color:var(--bs-green-deep); }
.bs-hpclaims__d{ font-size:1.04rem; margin-bottom:28px; max-width:40ch; }
.bs-hpclaims__go{ margin-top:auto; align-self:flex-start; padding:15px 28px; font-size:1rem; }
.bs-hpclaims__card:nth-child(2) .bs-hpclaims__go{ background:var(--bs-gold); color:var(--bs-green-deep); }
.bs-hpclaims__card:nth-child(2):hover .bs-hpclaims__go{ background:var(--bs-gold-deep); color:#fff; }
@media (max-width:639px){
  .bs-hpclaims__card{ padding:30px 22px 26px; }
  .bs-hpclaims__card::before{ width:52px; height:52px; margin-bottom:18px; }
  .bs-hpclaims__go{ align-self:stretch; justify-content:center; }
}

/* ---------- 5. TRUST: one panel ------------------------------------------ */
.bs-hptrust{ padding-block:clamp(48px,5vw,80px); }
.bs-hptrust__grid{
  gap:0; margin-top:var(--bs-s4);
  background:#fff;
  border:1px solid var(--bs-hairline);
  border-radius:var(--bs-r-lg);
  box-shadow:var(--bs-sh-1);
  overflow:hidden;
  position:relative;
}
.bs-hptrust__grid::before{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg,var(--bs-deep) 0%,var(--bs-gold) 100%);
}
.bs-hptrust__item{
  border:0; border-radius:0; box-shadow:none; background:transparent;
  padding:30px 28px 28px 28px;
  display:grid; grid-template-columns:44px 1fr; column-gap:16px; align-items:start;
}
.bs-hptrust__item::after{ display:none; }
.bs-hptrust__item + .bs-hptrust__item{ border-top:1px solid var(--bs-hairline); }
.bs-hptrust__item::before{
  content:''; grid-row:span 2; width:44px; height:44px; border-radius:12px;
  background-color:var(--bs-surface);
  background-position:center; background-repeat:no-repeat; background-size:22px;
  border:1px solid rgba(212,175,55,.45);
}
.bs-hptrust__item:nth-child(1)::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F5132' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
}
.bs-hptrust__item:nth-child(2)::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F5132' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v5.6c0 4.3 3.1 8.2 7.5 9.4 4.4-1.2 7.5-5.1 7.5-9.4V6L12 3Z'/%3E%3Ccircle cx='12' cy='10.5' r='2.3'/%3E%3Cpath d='M8.6 16.2c.8-1.5 2-2.2 3.4-2.2s2.6.7 3.4 2.2'/%3E%3C/svg%3E");
}
.bs-hptrust__item:nth-child(3)::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F5132' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16.4v2.8a1.9 1.9 0 0 1-2 1.9 18.6 18.6 0 0 1-8.1-2.9 18.3 18.3 0 0 1-5.6-5.6A18.6 18.6 0 0 1 2.4 4.5 1.9 1.9 0 0 1 4.3 2.5h2.8a1.9 1.9 0 0 1 1.9 1.6c.1.9.4 1.8.7 2.6a1.9 1.9 0 0 1-.4 2L8 9.9a15 15 0 0 0 5.6 5.6l1.2-1.2a1.9 1.9 0 0 1 2-.4c.8.3 1.7.6 2.6.7a1.9 1.9 0 0 1 1.6 1.8Z'/%3E%3C/svg%3E");
}
.bs-hptrust__t{ margin:0 0 6px; font-size:1.1rem; }
.bs-hptrust__d{ margin:0; font-size:.98rem; }
.bs-hptrust__reg{
  display:block; margin:22px auto 0; padding:0;
  background:none; box-shadow:none; border-radius:0;
  color:var(--bs-green-deep); text-align:center;
  font-size:.95rem; font-weight:600; letter-spacing:.01em;
}
.bs-hptrust .bs-hpsec__more,
.bs-hptrust .bs-hptrust__reg{ max-width:none; margin-inline:auto; }
.bs-hptrust .bs-hpsec__more{ margin-top:10px; text-align:center; }
@media (min-width:900px){
  .bs-hptrust__grid{ grid-template-columns:repeat(3,1fr); }
  .bs-hptrust__item{ padding:34px 32px 32px; }
  .bs-hptrust__item + .bs-hptrust__item{ border-top:0; border-left:1px solid var(--bs-hairline); }
}
@media (min-width:640px) and (max-width:899px){
  .bs-hptrust__grid{ grid-template-columns:1fr; }
}

/* ---------- 6. COMMUNITY ARCHIVE: adaptive by count ---------------------- */
/* One entry: a featured editorial card across the canvas. */
.bs-cm-grid:has(> .bs-cm-card:only-child){ grid-template-columns:1fr; }
.bs-cm-grid > .bs-cm-card:only-child{
  border-radius:var(--bs-r-lg); box-shadow:var(--bs-sh-2);
}
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__body{ padding:26px 22px 28px; gap:12px; }
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__title{
  font-size:clamp(1.7rem,3vw,2.7rem); line-height:1.06; letter-spacing:-0.03em;
}
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__meta{
  font-family:var(--bs-head); font-weight:700; font-size:1rem; color:var(--bs-green-deep);
  padding-top:10px; border-top:3px solid var(--bs-gold); align-self:flex-start;
}
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__excerpt{ font-size:1.06rem; line-height:1.7; max-width:54ch; }
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__cta{
  align-self:flex-start; margin-top:14px;
  padding:15px 30px; border-radius:var(--bs-r-pill);
  background:var(--bs-gold); color:var(--bs-green-deep);
}
.bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__link:hover .bs-cm-card__cta{
  text-decoration:none; background:var(--bs-gold-deep); color:#fff;
}
@media (min-width:900px){
  .bs-cm-grid > .bs-cm-card:only-child:hover{ transform:none; }
  .bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__link{
    display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr);
  }
  .bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__media{ aspect-ratio:auto; min-height:420px; }
  .bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__media img{ position:absolute; inset:0; height:100%; }
  .bs-cm-grid > .bs-cm-card:only-child .bs-cm-card__body{
    padding:clamp(40px,4.4vw,64px) clamp(36px,4.6vw,72px); justify-content:center;
  }
}
/* Two entries: two columns. Three or more: responsive three-column grid. */
@media (min-width:640px){
  .bs-cm-grid:has(> .bs-cm-card:nth-child(2)){ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1024px){
  .bs-cm-grid:has(> .bs-cm-card:nth-child(3)){ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
/* No past events yet: a compact note instead of a large empty band. */
.bs-cm-block:is(:has(> .bs-cm-empty),:has(> .bs-cm-grid > .bs-cm-empty:only-child)){
  padding-block:0 clamp(40px,5vw,72px);
}
.bs-cm-block:is(:has(> .bs-cm-empty),:has(> .bs-cm-grid > .bs-cm-empty:only-child)) > *{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px;
}
.bs-cm-block:is(:has(> .bs-cm-empty),:has(> .bs-cm-grid > .bs-cm-empty:only-child)) > .bs-cm-block__title{
  margin:0 auto; padding:22px 0 0; border-top:1px solid var(--bs-hairline);
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bs-muted);
}
.bs-cm-block:is(:has(> .bs-cm-empty),:has(> .bs-cm-grid > .bs-cm-empty:only-child)) > .bs-cm-grid{ margin-top:8px; }
.bs-cm-block:is(:has(> .bs-cm-empty),:has(> .bs-cm-grid > .bs-cm-empty:only-child)) .bs-cm-empty{ margin:0 auto; font-size:.95rem; }
