/* ==========================================================================
   Badger-format experiment — homepage only.
   Loads after style.css; body.badger scopes every override.
   Grammar: full-bleed media, borderless sections, huge centred statements,
   small-caps labels, monochrome + green reserved for brand moments.
   ========================================================================== */

body.badger { background: #FFFFFF; }

/* ---- Header: slim dark bar, small-caps nav ------------------------------ */
body.badger .header {
  position: fixed; top: 0; left: 0; right: 0;
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 0;
  transition: background 0.35s, box-shadow 0.35s, -webkit-backdrop-filter 0.35s, backdrop-filter 0.35s;
}
body.badger .header.is-scrolled {
  background: rgba(10, 14, 11, 0.82);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-color: transparent; box-shadow: none;
}
body.badger .header__in { min-height: 0; padding-block: 0.55rem; gap: 1rem; }
body.badger .header__logo img { height: 106px; }
@media (max-width: 640px) { body.badger .header__logo img { height: 78px; } }
body.badger .nav a.nav__link, body.badger .nav button.nav__link {
  color: var(--text-inv);
  font-family: var(--font-mono);
  font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  padding: 0.5rem 0.7rem;
}
body.badger .nav a.nav__link:hover, body.badger .nav button.nav__link:hover { background: rgba(255, 255, 255, 0.08); }
body.badger .nav a[aria-current="page"] { background: transparent; color: var(--lime); }
body.badger .nav .btn {
  background: var(--green); color: var(--ink);
  font-size: 0.78rem; font-family: var(--font-mono); font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 0.7rem 1.25rem; min-height: 0;
}
body.badger .nav__menu { background: #101511; border-color: rgba(255,255,255,0.1); }
body.badger .nav__menu a { color: var(--text-inv); }
body.badger .nav__menu a span { color: var(--text-inv-2); }
body.badger .nav__menu a:hover { background: rgba(255,255,255,0.06); }

/* ---- Hero: full viewport, centred statement ----------------------------- */
body.badger .b-hero {
  position: relative; isolation: isolate; overflow: clip;
  min-height: 100svh;
  display: grid; place-items: center;
  text-align: center;
  color: var(--text-inv);
  padding: 7rem var(--gutter) 5.5rem;
}
body.badger .b-hero .hero__video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
body.badger .b-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(7, 10, 8, 0.62), rgba(7, 10, 8, 0.38) 45%, rgba(7, 10, 8, 0.66));
}
body.badger .b-hero__kicker {
  font-family: var(--font-mono); font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--lime);
  margin-bottom: 1.4rem;
}
body.badger .b-hero h1 {
  font-size: clamp(3rem, 7.4vw, 5.9rem);
  font-weight: 750; line-height: 1.02; letter-spacing: -0.025em;
  max-width: 17ch; margin-inline: auto;
}
body.badger .b-hero h1 em { font-style: normal; color: var(--lime); }
body.badger .b-hero__sub {
  max-width: 56ch; margin: 1.5rem auto 2.2rem;
  color: rgba(239, 244, 236, 0.85);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
}
body.badger .b-hero .hero__ctas { justify-content: center; display: flex; gap: 0.8rem; flex-wrap: wrap; }
body.badger .b-hero .rating { margin-top: 2.4rem; justify-content: center; }

/* ---- Brand marquee: quiet grey on white --------------------------------- */
body.badger .brands { background: #FFFFFF; border: 0; padding-block: 2.2rem; }
body.badger .brands li img { opacity: 0.45; filter: grayscale(1); height: 26px; }
body.badger .brands li img[alt="Tesla"] { height: 34px; }
body.badger .brands li::after { background: #D6DBD2; }
body.badger .brands__txt { color: #9AA69B; }

/* ---- Section scaffolding ------------------------------------------------- */
body.badger .b-label {
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: #8A968B;
  margin-bottom: 0.9rem;
}
body.badger .b-statement {
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 700; letter-spacing: -0.015em; line-height: 1.15;
  max-width: 30ch;
}
body.badger .b-section { padding-block: clamp(4.5rem, 8vw, 7rem); }
body.badger .b-section--tight { padding-block: clamp(3rem, 5vw, 4.5rem); }

/* ---- Why row: three quiet icon columns ---------------------------------- */
body.badger .b-why { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; margin-top: 3.2rem; }
@media (max-width: 860px) { body.badger .b-why { grid-template-columns: 1fr; gap: 2.2rem; } }
body.badger .b-why__icon {
  width: 62px; height: 62px; border-radius: 50%;
  background: #F4F6F2;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.3rem;
}
body.badger .b-why__icon svg { width: 24px; height: 24px; stroke: var(--ink); }
body.badger .b-why h3 { font-size: 1.06rem; font-weight: 700; margin-bottom: 0.5rem; }
body.badger .b-why p { color: #5E6A5F; font-size: 0.95rem; max-width: 38ch; }
body.badger .b-accred {
  display: flex; align-items: center; gap: 2.6rem; flex-wrap: wrap;
  margin-top: 3.6rem; padding-top: 2rem;
  border-top: 1px solid #EDEFEA;
}
body.badger .b-accred img { height: 36px; width: auto; opacity: 0.8; }
body.badger .b-accred span {
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #8A968B;
}

/* ---- Full-bleed splits --------------------------------------------------- */
body.badger .b-split { display: grid; grid-template-columns: 1fr 1fr; min-height: min(88vh, 780px); }
@media (max-width: 900px) { body.badger .b-split { grid-template-columns: 1fr; min-height: 0; } }
body.badger .b-split__media { position: relative; overflow: hidden; min-height: 380px; }
body.badger .b-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.badger .b-split__panel {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(3rem, 6vw, 5.5rem);
}
body.badger .b-split__panel--dark { background: #0C110D; color: var(--text-inv); }
body.badger .b-split__panel--dark .b-label { color: var(--lime); }
body.badger .b-split__panel--dark p { color: rgba(239, 244, 236, 0.78); }
body.badger .b-split__panel h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -0.02em; line-height: 1.1; margin-bottom: 1.2rem; max-width: 20ch; }
body.badger .b-split__panel p { max-width: 52ch; }
body.badger .b-split__panel p + p { margin-top: 0.9rem; }
body.badger .b-split__panel .btn { align-self: flex-start; margin-top: 1.8rem; }
body.badger .b-stat { display: flex; gap: 2.6rem; margin-top: 2.2rem; }
body.badger .b-stat b { display: block; font-family: var(--font-display); font-size: 2.4rem; font-weight: 750; line-height: 1; color: var(--lime); }
body.badger .b-stat span {
  font-family: var(--font-mono); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: rgba(239, 244, 236, 0.6);
}
body.badger .b-stat b span { font: inherit; color: inherit; letter-spacing: inherit; text-transform: none; }
body.badger .b-stat b { font-size: 2.1rem; }

/* ---- Offers list ---------------------------------------------------------- */
body.badger .b-offers { margin-top: 2.6rem; }
body.badger .b-offers__group {
  font-family: var(--font-mono); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: #8A968B;
  margin: 2.8rem 0 0.4rem;
}
body.badger .b-offer {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto auto;
  align-items: center; gap: 1.5rem;
  padding: 1.35rem 0.2rem;
  border-bottom: 1px solid #EDEFEA;
  text-decoration: none; color: inherit;
  transition: padding 0.25s var(--ease-out);
}
body.badger .b-offer:first-of-type { border-top: 1px solid #EDEFEA; }
body.badger .b-offer h3 { font-size: clamp(1.3rem, 2.2vw, 1.8rem); font-weight: 700; letter-spacing: -0.015em; transition: color 0.2s; }
body.badger .b-offer p { color: #5E6A5F; font-size: 0.95rem; }
body.badger .b-offer__meta {
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #8A968B;
  text-align: right; white-space: nowrap;
}
body.badger .b-offer svg { width: 1.5rem; height: 1.5rem; stroke: var(--ink); transition: translate 0.2s, stroke 0.2s; flex: none; }
body.badger .b-offer:hover h3 { color: var(--green-text); }
body.badger .b-offer:hover svg { translate: 6px 0; stroke: var(--green); }
@media (max-width: 760px) {
  body.badger .b-offer { grid-template-columns: 1fr auto; }
  body.badger .b-offer p { display: none; }
  body.badger .b-offer__meta { display: none; }
}

/* ---- Kit: borderless product columns ------------------------------------- */
body.badger .b-kit { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 3rem; }
@media (max-width: 860px) { body.badger .b-kit { grid-template-columns: 1fr; } }
body.badger .b-kit .product { background: transparent; border: 0; border-left: 1px solid #EDEFEA; border-radius: 0; padding: 0.6rem 2rem; }
body.badger .b-kit .product:first-child { border-left: 0; padding-left: 0.2rem; }
@media (max-width: 860px) { body.badger .b-kit .product { border-left: 0; border-top: 1px solid #EDEFEA; padding: 1.6rem 0.2rem; } }
body.badger .b-kit .product__img { height: 300px; }
body.badger .b-kit .product__img img { max-height: 285px; }
body.badger .b-kit .product__tag { background: #F4F6F2; color: #5E6A5F; }
body.badger .b-kit .product__tag--new { background: var(--ink); color: var(--lime); }
body.badger .b-kit .specs, body.badger .b-kit .specs div { border-color: #EDEFEA; }

/* ---- Full-bleed photo bands ---------------------------------------------- */
body.badger .imgband { border-radius: 0; }
body.badger .imgband--quad { gap: 3px; }
body.badger .imgband--quad img { border-radius: 0; }
body.badger .imgband figcaption { border-radius: 0; }
body.badger .b-band-caption {
  display: flex; gap: 1.4rem; align-items: baseline; flex-wrap: wrap;
  padding: 1.2rem var(--gutter) 0;
  max-width: var(--container); margin-inline: auto;
}
body.badger .b-band-caption b { font-size: 1rem; }
body.badger .b-band-caption span { color: #5E6A5F; font-size: 0.92rem; }

/* ---- Steps: stripped to numerals ----------------------------------------- */
body.badger .b-steps-wrap { background: #0C110D; color: var(--text-inv); }
body.badger .b-steps-wrap .b-label { color: var(--lime); }
body.badger .b-steps-wrap .b-statement { color: var(--text-inv); }
body.badger .b-steps-wrap .steps { margin-top: 3rem; gap: 1.4rem; }
body.badger .b-steps-wrap .step {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  padding: 1.6rem 1.6rem 1.7rem;
  transition: transform 0.25s var(--ease-out), border-color 0.25s, background 0.25s;
}
body.badger .b-steps-wrap .step:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 233, 164, 0.45);
  background: rgba(255, 255, 255, 0.055);
  box-shadow: none;
}
body.badger .b-steps-wrap .step::before {
  color: transparent; -webkit-text-stroke: 1.6px var(--lime);
  font-size: 2.9rem;
  opacity: 0.9;
}
body.badger .b-steps-wrap .step:hover::before { color: var(--lime); -webkit-text-stroke: 1.6px var(--lime); }
body.badger .b-steps-wrap .step:not(:last-child)::after {
  display: block;
  content: ''; position: absolute; top: 2.4rem; right: -1.15rem;
  width: 1.4rem; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--green), transparent);
  opacity: 0.8;
}
@media (max-width: 980px) { body.badger .b-steps-wrap .step:not(:last-child)::after { display: none; } }
body.badger .b-steps-wrap .step h3 { color: var(--text-inv); font-size: 1.2rem; }
body.badger .b-steps-wrap .step p { color: rgba(239, 244, 236, 0.72); }

/* ---- Reviews: quiet columns ---------------------------------------------- */
body.badger .b-reviews { background: #FFFFFF; }
body.badger .b-reviews .review { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
body.badger .b-reviews .review p { font-size: 1.02rem; color: #303A31; }
body.badger .b-reviews .review footer { color: #8A968B; }
body.badger .b-reviews .rating__stars svg { width: 15px; height: 15px; }
body.badger .b-reviews .grid--3 { gap: 3rem; margin-top: 2.8rem; }
body.badger .b-reviews .btn { margin-top: 2.6rem; }

/* ---- FAQ: hairlines ------------------------------------------------------- */
body.badger .faq details { background: transparent; border: 0; border-bottom: 1px solid #EDEFEA; border-radius: 0; }
body.badger .faq details:first-child { border-top: 1px solid #EDEFEA; }
body.badger .faq summary { padding-inline: 0.2rem; font-weight: 650; }
body.badger .faq details div { padding-inline: 0.2rem; }

/* ---- Areas: inline mono links --------------------------------------------- */
body.badger .b-areas { display: flex; flex-wrap: wrap; gap: 0.4rem 0; align-items: center; margin-top: 1.8rem; }
body.badger .b-areas a {
  font-family: var(--font-mono); font-size: 0.8rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: #303A31; text-decoration: none;
  transition: color 0.2s;
}
body.badger .b-areas a:hover { color: var(--green-text); }
body.badger .b-areas .sep { width: 5px; height: 5px; border-radius: 50%; background: var(--green); opacity: 0.5; margin: 0 1.2rem; flex: none; }

/* ---- CTA band: keep swooshes, square the form ----------------------------- */
body.badger .cta-band { background: radial-gradient(1100px 640px at 78% -12%, rgba(111, 178, 68, 0.15), transparent 62%), #0A0E0B; }
body.badger .cta-band h2 { font-size: clamp(2.2rem, 4.8vw, 3.6rem); }
body.badger .leadform input, body.badger .leadform select { border-radius: 10px; }
body.badger .leadform .btn { border-radius: 10px; }

/* ---- Footer: quiet -------------------------------------------------------- */
body.badger .footer { border-top: 1px solid #EDEFEA; }

/* ---- Kit on dark: restores light/dark rhythm ----------------------------- */
body.badger .b-kit-wrap { background: #0C110D; color: var(--text-inv); padding-block: clamp(2.8rem, 4.5vw, 4.2rem); }
body.badger .b-kit-wrap .b-label { color: var(--lime); }
body.badger .b-kit-wrap .b-statement { color: var(--text-inv); }
body.badger .b-kit-wrap > .container > p.reveal { color: rgba(239, 244, 236, 0.66) !important; }
body.badger .b-kit-wrap .b-kit .product { border-color: rgba(255, 255, 255, 0.12); }
body.badger .b-kit-wrap .b-kit .product h3 { color: var(--text-inv); }
body.badger .b-kit-wrap .b-kit .product p { color: rgba(239, 244, 236, 0.68); }
body.badger .b-kit-wrap .b-kit .specs { border-color: rgba(255, 255, 255, 0.12); }
body.badger .b-kit-wrap .b-kit .specs div { border-color: rgba(255, 255, 255, 0.09); }
body.badger .b-kit-wrap .b-kit .specs span { color: rgba(239, 244, 236, 0.55); }
body.badger .b-kit-wrap .b-kit .specs b { color: var(--lime); }
body.badger .b-kit-wrap .b-kit .product__tag { background: rgba(255, 255, 255, 0.08); color: rgba(239, 244, 236, 0.75); }
body.badger .b-kit-wrap .b-kit .product__tag--new { background: var(--lime); color: var(--ink); }
body.badger .b-kit-wrap .b-kit .product__go { color: var(--lime); }
@media (max-width: 860px) { body.badger .b-kit-wrap .b-kit .product { border-top-color: rgba(255, 255, 255, 0.12); } }

/* ---- Whole-house system flow --------------------------------------------- */
body.badger .b-statement--xl { font-size: clamp(2rem, 3.8vw, 3.1rem); max-width: 24ch; }
body.badger .b-flow {
  display: flex; align-items: stretch; justify-content: space-between; gap: 0.6rem;
  margin-top: 3.4rem;
}
body.badger .b-flow__node {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 0.25rem; text-decoration: none; color: inherit;
  flex: 1;
}
body.badger .b-flow__icon {
  width: 76px; height: 76px; border-radius: 50%;
  background: #F4F6F2; border: 1.5px solid transparent;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 0.8rem;
  transition: border-color 0.25s, background 0.25s, transform 0.25s var(--ease-out);
}
body.badger .b-flow__icon svg { width: 30px; height: 30px; stroke: var(--ink); transition: stroke 0.25s; }
body.badger .b-flow__node b { font-family: var(--font-display); font-size: 1.15rem; font-weight: 750; letter-spacing: -0.01em; }
body.badger .b-flow__sub {
  font-family: var(--font-mono); font-size: 0.68rem; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase; color: #8A968B;
}
body.badger .b-flow__node:hover .b-flow__icon { border-color: var(--green); background: var(--lime); transform: translateY(-4px); }
body.badger .b-flow__node:hover .b-flow__sub { color: var(--green-text); }
body.badger .b-flow__link {
  flex: 0 1 90px; align-self: flex-start; margin-top: 38px;
  height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, rgba(111, 178, 68, 0.15), var(--green), rgba(111, 178, 68, 0.15));
  position: relative;
}
body.badger .b-flow__link::after {
  content: ''; position: absolute; right: -1px; top: -3px;
  border: 4px solid transparent; border-left-color: var(--green);
}
@media (max-width: 820px) {
  body.badger .b-flow { flex-wrap: wrap; gap: 1.6rem 0; }
  body.badger .b-flow__node { flex: 1 1 40%; }
  body.badger .b-flow__link { display: none; }
}
body.badger .b-why-cols {
  display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
  margin-top: 3.6rem;
}
@media (max-width: 760px) { body.badger .b-why-cols { grid-template-columns: 1fr; gap: 1.8rem; } }
body.badger .b-why-cols h3 { font-size: 1.12rem; font-weight: 700; margin-bottom: 0.5rem; }
body.badger .b-why-cols p { color: #5E6A5F; font-size: 0.97rem; max-width: 52ch; }
body.badger .b-cred {
  display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; flex-wrap: wrap;
  margin-top: 3.4rem;
  background: #F4F6F2;
  border-radius: var(--radius);
  padding: 1.3rem 2rem;
}
body.badger .b-cred img { height: 38px; width: auto; }
body.badger .b-cred span {
  font-family: var(--font-mono); font-size: 0.74rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #5E6A5F;
}

/* ---- Unified system panel ------------------------------------------------ */
body.badger .b-sys {
  background: #F4F6F2;
  border-radius: 26px;
  padding: clamp(2.2rem, 4.5vw, 4rem);
}
body.badger .b-sys__head { max-width: 640px; }
body.badger .b-sys__lead { color: #5E6A5F; margin-top: 1rem; max-width: 56ch; }
body.badger .b-sys__flow {
  position: relative;
  display: flex; justify-content: space-between; gap: 1rem;
  margin: 3.4rem 0 0;
  padding: 0 1rem;
}
body.badger .b-sys__flow::before {
  content: ''; position: absolute; left: 2%; right: 2%; top: 39px;
  height: 2px;
  background: repeating-linear-gradient(90deg, var(--green) 0 10px, transparent 10px 20px);
  opacity: 0.45;
  animation: b-flowdash 1.1s linear infinite;
}
@keyframes b-flowdash { to { background-position: 20px 0; } }
@media (prefers-reduced-motion: reduce) { body.badger .b-sys__flow::before { animation: none; } }
body.badger .b-sys__node {
  position: relative;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 0.2rem; text-decoration: none; color: inherit;
}
body.badger .b-sys__icon {
  width: 78px; height: 78px; border-radius: 50%;
  background: #FFFFFF;
  border: 1.5px solid #E3E8DE;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 0.85rem;
  transition: border-color 0.25s, background 0.25s, transform 0.25s var(--ease-out);
}
body.badger .b-sys__icon svg { width: 30px; height: 30px; stroke: var(--ink); }
body.badger .b-sys__node b { font-family: var(--font-display); font-size: 1.12rem; font-weight: 750; }
body.badger .b-sys__sub {
  font-family: var(--font-mono); font-size: 0.66rem; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase; color: #8A968B;
}
body.badger .b-sys__node:hover .b-sys__icon { border-color: var(--green); background: var(--lime); transform: translateY(-4px); }
body.badger .b-sys__node:hover .b-sys__sub { color: var(--green-text); }
@media (max-width: 820px) {
  body.badger .b-sys__flow { flex-wrap: wrap; gap: 1.8rem 0; padding: 0; }
  body.badger .b-sys__flow::before { display: none; }
  body.badger .b-sys__node { flex: 1 1 40%; }
}
body.badger .b-sys__cols {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2.6rem;
  margin-top: 3.2rem;
}
@media (max-width: 760px) { body.badger .b-sys__cols { grid-template-columns: 1fr; gap: 1.6rem; } }
body.badger .b-sys__cols h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.45rem; }
body.badger .b-sys__cols p { color: #5E6A5F; font-size: 0.96rem; max-width: 54ch; }
body.badger .b-sys__rail {
  display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; flex-wrap: wrap;
  margin-top: 3rem; padding-top: 2rem;
  border-top: 1px solid #E3E8DE;
}
body.badger .b-sys__rail img { height: 36px; width: auto; }
body.badger .b-sys__rail span {
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #5E6A5F;
}

/* caption laid into the photo */
body.badger .b-photofig { position: relative; }
body.badger .b-photofig .b-photocap {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 2.6rem var(--gutter) 1.4rem;
  background: linear-gradient(180deg, transparent, rgba(9, 14, 11, 0.72));
  color: var(--text-inv);
  display: flex; gap: 1.2rem; align-items: baseline; flex-wrap: wrap;
}
body.badger .b-photofig .b-photocap b { font-size: 1.02rem; }
body.badger .b-photofig .b-photocap span { color: rgba(239, 244, 236, 0.82); font-size: 0.92rem; }

/* ---- The house diagram --------------------------------------------------- */
body.badger .b-home__head {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 2.5rem; align-items: end;
}
@media (max-width: 860px) { body.badger .b-home__head { grid-template-columns: 1fr; gap: 1rem; } }
body.badger .b-home__lead { color: #5E6A5F; max-width: 44ch; padding-bottom: 0.4rem; }
body.badger .b-home { margin-top: 2.2rem; }
body.badger .b-home svg { width: 100%; height: auto; display: block; }
body.badger .b-home__dev { cursor: pointer; }
body.badger .b-home__dev:hover path,
body.badger .b-home__dev:hover rect,
body.badger .b-home__dev:hover circle,
body.badger .b-home__dev:hover line { stroke: var(--green); transition: stroke 0.2s; }
body.badger .b-flowline {
  stroke: var(--green); stroke-width: 2.4; stroke-linecap: round;
  stroke-dasharray: 5 9;
  animation: b-dashflow 1.15s linear infinite;
  opacity: 0.85;
}
@keyframes b-dashflow { to { stroke-dashoffset: -14; } }
body.badger .b-nodes circle { fill: var(--green); }
body.badger .b-nodes .ring {
  fill: none; stroke: var(--green); stroke-width: 1.5;
  transform-box: fill-box; transform-origin: center;
  animation: b-pulse 2.2s ease-out infinite;
}
@keyframes b-pulse {
  0% { transform: scale(1); opacity: 0.9; }
  70% { transform: scale(3); opacity: 0; }
  100% { transform: scale(3); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.badger .b-flowline { animation: none; }
  body.badger .b-nodes .ring { animation: none; opacity: 0; }
}
body.badger .b-home__legend {
  display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between;
  gap: 1rem 2rem; margin-top: 1.6rem;
  padding: 0 2%;
}
@media (max-width: 700px) { body.badger .b-home__legend { grid-template-columns: 1fr 1fr; justify-items: start; } }
body.badger .b-home__legend a { display: flex; flex-direction: column; gap: 0.1rem; text-decoration: none; color: inherit; }
body.badger .b-home__legend b { font-family: var(--font-display); font-size: 1.08rem; font-weight: 750; transition: color 0.2s; }
body.badger .b-home__legend span {
  font-family: var(--font-mono); font-size: 0.66rem; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase; color: #8A968B;
}
body.badger .b-home__legend a:hover b { color: var(--green-text); }
body.badger .b-home__cols {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2.6rem;
  margin-top: 3.4rem;
}
@media (max-width: 760px) { body.badger .b-home__cols { grid-template-columns: 1fr; gap: 1.6rem; } }
body.badger .b-home__cols h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.45rem; }
body.badger .b-home__cols p { color: #5E6A5F; font-size: 0.96rem; max-width: 54ch; }
body.badger .b-home__cred {
  margin-top: 2.8rem; padding-top: 1.6rem;
  border-top: 1px solid #EDEFEA;
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #8A968B;
}

/* ghost buttons inside custom dark panels */
body.badger .b-split__panel--dark .btn--ghost,
body.badger .b-steps-wrap .btn--ghost,
body.badger .b-kit-wrap .btn--ghost {
  color: var(--text-inv);
  border-color: rgba(255, 255, 255, 0.3);
}
body.badger .b-split__panel--dark .btn--ghost:hover,
body.badger .b-steps-wrap .btn--ghost:hover,
body.badger .b-kit-wrap .btn--ghost:hover {
  border-color: var(--lime);
  color: var(--lime);
}

/* ---- Glow button: glass gradient + conic halo (dark sections) ------------ */
body.badger .btn--glow {
  padding: 1rem 1.9rem;
  border: none;
  font-size: 1rem;
  font-weight: 650;
  cursor: pointer;
  position: relative;
  isolation: auto;
  background: linear-gradient(90deg, #C9E9A4, #6FB244, #F5B72F);
  border-radius: 14px;
  color: #FFFFFF;
  transition: all 0.3s ease;
  box-shadow:
    inset 0px 0px 5px #ffffffa9,
    inset 0px 35px 30px #0A0E0B,
    0px 5px 10px #000000cc;
  text-shadow: 1px 1px 1px #000;
}
body.badger .btn--glow::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  border-radius: 14px;
  filter: blur(0);
  z-index: -1;
  box-shadow: none;
  background: conic-gradient(
    #00000000 80deg,
    #6FB244,
    #F5B72F,
    #C9E9A4,
    #00000000 280deg
  );
  transition: all 0.3s ease;
}
body.badger .btn--glow:hover::before { filter: blur(16px); }
body.badger .btn--glow:active::before { filter: blur(5px); transform: translateY(1px); }
body.badger .btn--glow:active {
  box-shadow:
    inset 0px 0px 5px #ffffffa9,
    inset 0px 35px 30px #0A0E0B;
  margin-top: 3px;
}
body.badger .btn--glow:hover { transform: none; background: linear-gradient(90deg, #C9E9A4, #6FB244, #F5B72F); }

/* ---- Flow as expanding photo columns ------------------------------------- */
body.badger .b-flowcols {
  display: flex; gap: 10px;
  height: clamp(340px, 44vw, 520px);
  margin-top: 2.6rem;
}
body.badger .b-flowcols a {
  position: relative; flex: 1; overflow: hidden;
  border-radius: 18px;
  background-image: linear-gradient(180deg, rgba(9, 14, 11, 0.05) 40%, rgba(9, 14, 11, 0.82)), var(--fc-img);
  background-size: cover; background-position: var(--fc-pos, center);
  text-decoration: none; color: var(--text-inv);
  transition: flex 0.55s var(--ease-out);
  display: flex; align-items: flex-end;
}
body.badger .b-flowcols a:hover { flex: 2.1; }
body.badger .b-flowcols__body { padding: 1.5rem 1.6rem; display: block; min-width: 240px; }
body.badger .b-flowcols b {
  display: block;
  font-family: var(--font-display); font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  font-weight: 750; letter-spacing: -0.015em; line-height: 1;
}
body.badger .b-flowcols__sub {
  display: block; margin-top: 0.35rem;
  font-family: var(--font-mono); font-size: 0.68rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lime);
}
body.badger .b-flowcols p {
  margin-top: 0.6rem; max-width: 30ch;
  color: rgba(239, 244, 236, 0.85); font-size: 0.94rem;
  opacity: 0; translate: 0 6px;
  transition: opacity 0.4s ease 0.12s, translate 0.4s var(--ease-out) 0.12s;
}
body.badger .b-flowcols a:hover p { opacity: 1; translate: 0 0; }
@media (max-width: 820px) {
  body.badger .b-flowcols { flex-wrap: wrap; height: auto; }
  body.badger .b-flowcols a { flex: 1 1 46%; height: 240px; }
  body.badger .b-flowcols a:hover { flex: 1 1 46%; }
  body.badger .b-flowcols p { opacity: 1; translate: 0 0; }
  body.badger .b-flowcols__body { min-width: 0; }
}

/* ---- Yang: hollow glass twin of the glow button --------------------------- */
body.badger .btn--glow-ghost {
  padding: 1rem 1.9rem;
  border: none;
  font-size: 1rem;
  font-weight: 650;
  cursor: pointer;
  position: relative;
  isolation: auto;
  background: rgba(10, 14, 11, 0.35);
  border-radius: 14px;
  color: #EFF4EC;
  transition: all 0.3s ease;
  box-shadow:
    inset 0px 0px 5px #ffffff2e,
    inset 0px 18px 26px rgba(0, 0, 0, 0.55),
    0px 5px 10px #00000088;
  text-shadow: 1px 1px 1px #000;
}
body.badger .btn--glow-ghost::after {
  content: "";
  position: absolute; inset: 0;
  border-radius: 14px;
  padding: 1.5px;
  background: linear-gradient(90deg, #C9E9A4, #6FB244, #F5B72F);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
body.badger .btn--glow-ghost::before {
  content: "";
  position: absolute; inset: 0; margin: auto;
  border-radius: 14px;
  filter: blur(0);
  z-index: -1;
  background: conic-gradient(
    #00000000 80deg,
    #6FB244,
    #F5B72F,
    #C9E9A4,
    #00000000 280deg
  );
  opacity: 0.75;
  transition: all 0.3s ease;
}
body.badger .btn--glow-ghost:hover::before { filter: blur(14px); }
body.badger .btn--glow-ghost:hover { color: #FFFFFF; transform: none; border-color: transparent; }
body.badger .btn--glow-ghost:active::before { filter: blur(5px); transform: translateY(1px); }
body.badger .btn--glow-ghost:active {
  box-shadow:
    inset 0px 0px 5px #ffffff2e,
    inset 0px 18px 26px rgba(0, 0, 0, 0.55);
  margin-top: 3px;
}

/* ---- The Glow ethos: typographic manifesto ------------------------------- */
body.badger .b-ethos { margin-top: 3rem; }
body.badger .b-ethos__row {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 2.5rem; align-items: start;
  padding: 2.6rem 0.2rem;
  border-top: 1px solid #EDEFEA;
}
body.badger .b-ethos__row:last-child { border-bottom: 1px solid #EDEFEA; }
@media (max-width: 760px) {
  body.badger .b-ethos__row { grid-template-columns: 1fr; gap: 1rem; padding: 2rem 0.2rem; }
}
body.badger .b-ethos__num {
  display: block;
  font-family: var(--font-display); font-size: 4.2rem; font-weight: 750; line-height: 0.9;
  letter-spacing: -0.02em;
  color: transparent; -webkit-text-stroke: 1.1px #CFD6C9;
  transition: -webkit-text-stroke-color 0.3s, color 0.3s;
}
body.badger .b-ethos__row:hover .b-ethos__num { -webkit-text-stroke: 1.1px var(--green); }
body.badger .b-ethos__key {
  display: block; margin-top: 0.7rem;
  font-family: var(--font-mono); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: #8A968B;
}
body.badger .b-ethos__body h3 {
  font-size: clamp(1.35rem, 2.3vw, 1.9rem);
  font-weight: 700; letter-spacing: -0.015em; line-height: 1.22;
  max-width: 30ch;
}
body.badger .b-ethos__body h3 em { font-style: normal; color: var(--green-text); }
body.badger .b-ethos__body p {
  margin-top: 0.8rem;
  color: #5E6A5F; font-size: 0.97rem; max-width: 58ch;
}

/* ---- The ecosystem rail --------------------------------------------------- */
body.badger .b-rail { margin-top: 3rem; }
body.badger .b-rail svg { width: 100%; height: auto; display: block; overflow: visible; }
body.badger .b-rail__line {
  stroke: #6FB244; stroke-width: 2; stroke-linecap: round;
  stroke-dasharray: 1 7;
  opacity: 0.5;
}
body.badger .b-rail__label {
  font-family: 'Spline Sans Mono', monospace; font-size: 12px; font-weight: 600;
  letter-spacing: 2px; fill: #8A968B;
}
body.badger .b-rail__chip {
  font-family: 'Spline Sans Mono', monospace; font-size: 12.5px; font-weight: 600;
  letter-spacing: 1.6px; fill: #20261F;
}
body.badger .b-rail__dev { cursor: pointer; }
body.badger .b-rail__dev:hover rect { stroke: var(--green); }
body.badger .b-rail__dev:hover text { fill: var(--green-text); }
body.badger .b-rail__dot {
  fill: var(--green);
  offset-rotate: 0deg;
  animation-name: b-railflow;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@keyframes b-railflow {
  0% { offset-distance: 0%; opacity: 0; }
  6% { opacity: 1; }
  92% { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { body.badger .b-rail__dot { display: none; } }
body.badger .b-rail-mobile { display: none; }
@media (max-width: 700px) {
  body.badger .b-rail { display: none; }
  body.badger .b-rail-mobile { display: grid; gap: 0; margin-top: 2rem; }
  body.badger .b-rail-mobile a {
    display: flex; flex-direction: column; gap: 0.15rem;
    padding: 1.1rem 0 1.1rem 1.4rem;
    border-left: 2px dashed rgba(111, 178, 68, 0.55);
    text-decoration: none; color: inherit;
  }
  body.badger .b-rail-mobile b { font-family: var(--font-display); font-weight: 750; font-size: 1.15rem; }
  body.badger .b-rail-mobile span { color: #5E6A5F; font-size: 0.92rem; }
}

/* ---- Ecosystem panel: dark glass power-flow ------------------------------- */
body.badger .b-eco {
  display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.75fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  margin-top: 2.8rem;
  background:
    radial-gradient(720px 420px at 12% 0%, rgba(111, 178, 68, 0.16), transparent 60%),
    #0C110D;
  border-radius: 26px;
  padding: clamp(1.8rem, 3.5vw, 3rem);
  color: var(--text-inv);
}
@media (max-width: 900px) { body.badger .b-eco { grid-template-columns: 1fr; } }
body.badger .b-eco__copy { display: flex; flex-direction: column; justify-content: center; }
body.badger .b-eco__copy .b-label { color: var(--lime); }
body.badger .b-eco__copy h3 {
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 750; letter-spacing: -0.015em; line-height: 1.12;
  max-width: 15ch;
}
body.badger .b-eco__copy p:not(.b-label) {
  margin-top: 0.9rem;
  color: rgba(239, 244, 236, 0.72); font-size: 0.98rem; max-width: 38ch;
}
body.badger .b-eco__link {
  display: inline-flex; align-items: center; gap: 0.45rem;
  margin-top: 1.6rem;
  color: var(--lime); font-weight: 650; font-size: 0.95rem;
  text-decoration: none;
}
body.badger .b-eco__link svg { width: 1em; height: 1em; transition: translate 0.2s; }
body.badger .b-eco__link:hover svg { translate: 4px 0; }
body.badger .b-eco__diagram svg { width: 100%; height: auto; display: block; }
body.badger .b-eco__wire { stroke: url(#ecoLine); stroke-width: 1.6; }
body.badger .b-eco__tile rect:first-of-type,
body.badger .b-eco__hub rect {
  fill: rgba(255, 255, 255, 0.045);
  stroke: rgba(255, 255, 255, 0.13);
  stroke-width: 1.2;
  transition: stroke 0.25s, fill 0.25s;
}
body.badger .b-eco__hub rect { fill: rgba(255, 255, 255, 0.07); stroke: rgba(201, 233, 164, 0.35); }
body.badger .b-eco__tile:hover rect:first-of-type { stroke: var(--green); fill: rgba(111, 178, 68, 0.12); }
body.badger .b-eco__name {
  font-family: 'Figtree', sans-serif; font-size: 16.5px; font-weight: 600;
  fill: #EFF4EC; letter-spacing: 0.2px;
}
body.badger .b-eco__name--hub {
  font-family: 'Spline Sans Mono', monospace; font-size: 13px; font-weight: 600;
  letter-spacing: 2.4px; fill: rgba(239, 244, 236, 0.75);
}
body.badger .b-eco__pulse {
  fill: #C9E9A4;
  filter: drop-shadow(0 0 5px rgba(201, 233, 164, 0.9));
  offset-rotate: 0deg;
  animation-name: b-railflow;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) { body.badger .b-eco__pulse { display: none; } }
@media (max-width: 700px) {
  body.badger .b-eco__diagram { display: none; }
  body.badger .b-eco { padding-bottom: 1.2rem; }
}

/* ---- Orbital ecosystem ---------------------------------------------------- */
body.badger .b-orbit {
  position: relative;
  margin-top: 2.8rem;
  margin-inline: calc(50% - 50vw);
  background:
    radial-gradient(760px 480px at 50% 10%, rgba(111, 178, 68, 0.15), transparent 62%),
    #0C110D;
  border-radius: 0;
  padding: clamp(2.2rem, 4vw, 3.6rem) var(--gutter);
  color: var(--text-inv);
}
body.badger .b-orbit svg { width: min(760px, 100%); height: auto; display: block; margin-inline: auto; }
body.badger .b-orbit__ring {
  stroke: #6FB244; stroke-width: 2; stroke-dasharray: 1 8; stroke-linecap: round;
  opacity: 0.45;
}
body.badger .b-orbit__disc {
  fill: rgba(255, 255, 255, 0.05);
  stroke: rgba(255, 255, 255, 0.14);
  stroke-width: 1.2;
  transition: stroke 0.25s, fill 0.25s;
}
body.badger .b-orbit__node:hover .b-orbit__disc { stroke: var(--green); fill: rgba(111, 178, 68, 0.13); }
body.badger .b-orbit__node:hover .b-orbit__label { fill: #C9E9A4; }
body.badger .b-orbit__label {
  font-family: 'Figtree', sans-serif; font-size: 17px; font-weight: 600;
  fill: #EFF4EC; letter-spacing: 0.2px;
  transition: fill 0.25s;
}
body.badger .b-orbit__pulse {
  fill: #C9E9A4;
  filter: drop-shadow(0 0 6px rgba(201, 233, 164, 0.95));
  offset-rotate: 0deg;
  animation-name: b-orbitflow;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@keyframes b-orbitflow { to { offset-distance: 100%; } }
@media (prefers-reduced-motion: reduce) { body.badger .b-orbit__pulse { display: none; } }
body.badger .b-orbit__centre {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  pointer-events: none;
  padding: 2rem;
}
body.badger .b-orbit__centre > * { pointer-events: auto; max-width: 300px; }
body.badger .b-orbit__centre .b-label { color: var(--lime); margin-bottom: 0.55rem; font-size: 0.68rem; }
body.badger .b-orbit__centre h3 {
  font-size: clamp(1.3rem, 2.1vw, 1.8rem);
  font-weight: 750; letter-spacing: -0.015em; line-height: 1.08;
}
body.badger .b-orbit__centre p:not(.b-label) {
  margin-top: 0.75rem;
  color: rgba(239, 244, 236, 0.7); font-size: 0.88rem; max-width: 30ch;
}
body.badger .b-orbit__centre .b-eco__link { margin-top: 1rem; font-size: 0.9rem; }
@media (max-width: 700px) {
  body.badger .b-orbit svg { display: none; }
  body.badger .b-orbit__centre { position: static; padding: 1rem 0.5rem; }
}

body.badger .b-orbit__ring--outer { opacity: 0.2; stroke-dasharray: 1 10; }
body.badger .b-orbit__badge rect { opacity: 0.96; }

/* ---- Atom refinements ----------------------------------------------------- */
body.badger .b-orbit__stage { position: relative; }
body.badger .b-orbit__stage svg { width: min(720px, 100%); }
body.badger .b-atom__orbital {
  stroke: #6FB244; stroke-width: 1.6; stroke-dasharray: 1 8; stroke-linecap: round;
  opacity: 0.4;
}
body.badger .b-atom__electron {
  fill: #C9E9A4;
  filter: drop-shadow(0 0 6px rgba(201, 233, 164, 0.95));
  offset-rotate: 0deg;
  animation-name: b-orbitflow;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) { body.badger .b-atom__electron { display: none; } }
body.badger .b-orbit__creds {
  display: flex; justify-content: center; align-items: stretch; gap: 1rem; flex-wrap: wrap;
  margin-top: 2.4rem;
}
body.badger .b-orbit__creds span {
  display: flex; align-items: center; justify-content: center;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 0.85rem 1.6rem;
  min-height: 64px;
}
body.badger .b-orbit__creds img { height: 42px; width: auto; }

/* ---- Atom on white: copy left, atom right --------------------------------- */
body.badger .b-atomw {
  display: grid; grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: center;
}
@media (max-width: 860px) { body.badger .b-atomw { grid-template-columns: 1fr; } }
body.badger .b-atomw__copy p:not(.b-label):not(.b-atomw__facts) {
  margin-top: 1rem;
  color: #5E6A5F; font-size: 1rem; max-width: 54ch;
}
body.badger .b-eco__link--light { color: var(--green-text); }
body.badger .b-atomw__copy .b-eco__link { margin-top: 1.5rem; }
body.badger .b-atomw__creds {
  display: flex; align-items: center; gap: 2.2rem; flex-wrap: wrap;
  margin-top: 2.2rem; padding-top: 1.8rem;
  border-top: 1px solid #EDEFEA;
}
body.badger .b-atomw__creds img { height: 40px; width: auto; }
body.badger .b-atomw__creds img[src*="niceic"] { height: 46px; }
body.badger .b-atomw__facts {
  margin-top: 1.1rem;
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #8A968B;
}
body.badger .b-atomw__atom svg { width: 100%; height: auto; display: block; }
body.badger .b-atoml__orbital {
  fill: none;
  stroke: #6FB244; stroke-width: 2; stroke-dasharray: 2 7; stroke-linecap: round;
  opacity: 0.6;
}
body.badger .b-atoml__electron {
  fill: var(--green);
  filter: drop-shadow(0 0 5px rgba(111, 178, 68, 0.85));
  offset-rotate: 0deg;
  animation-name: b-orbitflow;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) { body.badger .b-atoml__electron { display: none; } }

body.badger .b-atoml__core { filter: drop-shadow(0 14px 26px rgba(18, 28, 19, 0.22)) drop-shadow(0 3px 6px rgba(18, 28, 19, 0.12)); }
body.badger .b-atoml__corelabel {
  font-family: 'Spline Sans Mono', monospace; font-size: 11.5px; font-weight: 600;
  letter-spacing: 2px; fill: #8A968B;
}
body.badger .b-atoml__puck {
  filter: drop-shadow(0 10px 18px rgba(24, 36, 25, 0.16)) drop-shadow(0 2px 4px rgba(24, 36, 25, 0.08));
  transition: filter 0.3s;
}
body.badger .b-atoml__bloom { opacity: 0; transition: opacity 0.35s; }
body.badger .b-atoml__node:hover .b-atoml__bloom { opacity: 1; }
body.badger .b-atoml__node:hover .b-atoml__puck {
  filter: drop-shadow(0 12px 22px rgba(24, 36, 25, 0.2)) drop-shadow(0 0 14px rgba(111, 178, 68, 0.35));
}
body.badger .b-atoml__node:hover .b-atoml__label { fill: var(--green-text); }
body.badger .b-atoml__label {
  font-family: 'Figtree', sans-serif; font-size: 17px; font-weight: 600;
  fill: #20261F; letter-spacing: 0.2px;
  transition: fill 0.25s;
}
@media (max-width: 860px) {
  body.badger .b-atomw__atom { display: block; width: 100%; max-width: 440px; margin: 1.6rem auto 0; justify-self: center; }
}
@media (min-width: 861px) {
  body.badger .b-atomw ~ .b-rail-mobile, body.badger .b-atomw + .b-rail-mobile { display: none; }
}

/* ---- Atom: awesome pass --------------------------------------------------- */
body.badger .b-statement em { font-style: normal; color: var(--green-text); }
@media (min-width: 861px) { body.badger .b-atomw__atom { margin-right: calc(-1 * clamp(0rem, 2vw, 2rem)); } }
body.badger .b-atoml__orbital.o0 { opacity: 0.65; stroke-width: 2.2; }
body.badger .b-atoml__orbital.o60 { opacity: 0.5; stroke-width: 2; }
body.badger .b-atoml__orbital.o120 { opacity: 0.38; stroke-width: 1.8; }
body.badger .b-atomw__atom:has(.n-o0:hover) .o0,
body.badger .b-atomw__atom:has(.n-o60:hover) .o60,
body.badger .b-atomw__atom:has(.n-o120:hover) .o120 { opacity: 0.95; }
body.badger .b-atoml__orbital { transition: opacity 0.3s; }
body.badger .b-atoml__electron--sun {
  fill: var(--sun);
  filter: drop-shadow(0 0 6px rgba(245, 183, 47, 0.9));
}
body.badger .b-nucleus__pulse {
  transform-box: fill-box; transform-origin: center;
  animation: b-breath 3.2s ease-in-out infinite alternate;
}
@keyframes b-breath {
  from { transform: scale(1); opacity: 0.85; }
  to { transform: scale(1.14); opacity: 0.45; }
}
@media (prefers-reduced-motion: reduce) { body.badger .b-nucleus__pulse { animation: none; } }
body.badger .b-atomw.is-in .b-atoml__node > g {
  animation: b-nodepop 0.6s ease both;
}
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(1) > g { animation-delay: 0.1s; }
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(2) > g { animation-delay: 0.18s; }
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(3) > g { animation-delay: 0.26s; }
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(4) > g { animation-delay: 0.34s; }
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(5) > g { animation-delay: 0.42s; }
body.badger .b-atomw.is-in .b-atoml__node:nth-of-type(6) > g { animation-delay: 0.5s; }
@keyframes b-nodepop {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { body.badger .b-atomw.is-in .b-atoml__node > g { animation: none; } }
body.badger .b-atoml__label { font-size: 18px; font-weight: 650; }

/* ---- Review carousel ------------------------------------------------------ */
body.badger .b-revcar { margin-top: 2.6rem; }
body.badger .b-revcar__viewport { overflow: hidden; }
body.badger .b-revcar__track {
  display: flex;
  transition: transform 0.6s var(--ease-out);
}
body.badger .b-revcar .review {
  flex: 0 0 33.333%;
  padding-right: 3rem;
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
@media (max-width: 980px) { body.badger .b-revcar .review { flex-basis: 50%; } }
@media (max-width: 640px) { body.badger .b-revcar .review { flex-basis: 100%; padding-right: 0.5rem; } }
body.badger .b-revcar__nav {
  display: flex; align-items: center; gap: 1.2rem;
  margin-top: 2rem;
}
body.badger .b-revcar__btn {
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid #DFE5D7; background: #FFFFFF; color: var(--text);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.2s var(--ease-out);
}
body.badger .b-revcar__btn:hover { border-color: var(--green); background: var(--lime); transform: translateY(-2px); }
body.badger .b-revcar__dots { display: flex; gap: 0.5rem; }
body.badger .b-revcar__dots button {
  width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0;
  background: #D6DBD2; cursor: pointer;
  transition: background 0.2s, scale 0.2s;
}
body.badger .b-revcar__dots button[aria-current="true"] { background: var(--green); scale: 1.35; }

/* ---- Light glass button (white sections) ---------------------------------- */
body.badger .btn--glow-light {
  position: relative;
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.95rem 1.7rem;
  border: none; border-radius: 14px;
  background: #FFFFFF;
  color: var(--text);
  font-weight: 650; font-size: 0.98rem;
  cursor: pointer; text-decoration: none;
  box-shadow:
    inset 0 1px 0 #FFFFFF,
    0 1px 2px rgba(18, 28, 19, 0.08),
    0 8px 20px rgba(18, 28, 19, 0.1);
  transition: box-shadow 0.3s, transform 0.25s var(--ease-out);
}
body.badger .btn--glow-light::after {
  content: "";
  position: absolute; inset: 0;
  border-radius: 14px;
  padding: 1.5px;
  background: linear-gradient(90deg, #C9E9A4, #6FB244, #F5B72F);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
body.badger .btn--glow-light::before {
  content: "";
  position: absolute; inset: -4px;
  border-radius: 18px;
  z-index: -1;
  background: radial-gradient(60% 100% at 50% 100%, rgba(111, 178, 68, 0.45), transparent 70%);
  filter: blur(10px);
  opacity: 0;
  transition: opacity 0.3s;
}
body.badger .btn--glow-light:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 #FFFFFF, 0 2px 4px rgba(18, 28, 19, 0.08), 0 12px 26px rgba(18, 28, 19, 0.14); }
body.badger .btn--glow-light:hover::before { opacity: 1; }
body.badger .btn--glow-light:active { transform: translateY(0); }

body.badger .b-nucleus__shadow { filter: blur(5px); }

/* ---- Line-drawn nucleus: the electron draws the house ---------------------- */
body.badger .b-hdraw { stroke-dasharray: 1; stroke-dashoffset: 0; }
body.badger .b-pen { opacity: 0; offset-rotate: 0deg; }
body.badger .b-atomw.is-in .b-hdraw {
  stroke-dashoffset: 1;
  animation: b-draw 2.2s linear 0.2s forwards;
}
body.badger .b-atomw.is-in .b-pen--draw {
  animation: b-penride 2.2s linear 0.2s forwards, b-penshow 0.01s linear 0.2s forwards, b-penhide 0.15s linear 2.38s forwards;
}
@keyframes b-penride { from { offset-distance: 0%; } to { offset-distance: 100%; } }
@keyframes b-penshow { to { opacity: 1; } }
@keyframes b-penhide { to { opacity: 0; } }
body.badger .b-atomw.is-in .b-pen--launch {
  animation: b-penride 0.5s ease-in 2.35s forwards, b-penshow 0.01s linear 2.35s forwards, b-penhide 0.18s linear 2.72s forwards;
}
@keyframes b-draw { to { stroke-dashoffset: 0; } }
body.badger .b-atomw.is-in .b-hacc {
  opacity: 0;
  animation: b-accfade 0.6s ease 2.3s forwards;
}
@keyframes b-accfade { to { opacity: 1; } }
body.badger .b-atoml__electron--join { opacity: 0; animation-name: b-railflow, b-penshow; animation-timing-function: linear, linear; animation-iteration-count: infinite, 1; animation-fill-mode: none, forwards; }
@media (prefers-reduced-motion: reduce) {
  body.badger .b-atomw.is-in .b-hdraw { animation: none; stroke-dashoffset: 0; }
  body.badger .b-atomw.is-in .b-hacc { animation: none; opacity: 1; }
  body.badger .b-pen { display: none; }
  body.badger .b-atoml__electron--join { animation: none; opacity: 1; offset-distance: 30%; }
}


/* ---- FAQ: split editorial layout ---- */
body.badger .b-faqw {
  display: grid; grid-template-columns: 0.88fr 1.12fr;
  gap: 4.5rem; align-items: start;
}
body.badger .b-faqw__side { position: sticky; top: 110px; }
body.badger .b-faqw .b-statement { margin-bottom: 1.1rem; }
body.badger .b-faqw__note { color: #5E6A5F; max-width: 36ch; margin: 0 0 1.5rem; }
body.badger .b-faqw__ask { color: #5E6A5F; font-size: 0.97rem; max-width: 34ch; margin: 0; }
body.badger .b-faqw__ask a { color: var(--green-text); font-weight: 650; text-decoration: none; }
body.badger .b-faqw__ask a:hover { text-decoration: underline; }

body.badger .b-faqw .faq { max-width: none; }
body.badger .faq details { position: relative; transition: background 0.3s; }
body.badger .faq details::after {
  content: "";
  position: absolute; left: -1.15rem; top: 16px; bottom: 16px;
  width: 2.5px; border-radius: 2px;
  background: linear-gradient(180deg, #C9E9A4, #6FB244, #F5B72F);
  opacity: 0; transform: scaleY(0.35); transform-origin: top;
  transition: opacity 0.35s, transform 0.5s var(--ease-out);
}
body.badger .faq details[open]::after { opacity: 1; transform: none; }
body.badger .faq summary { padding: 1.3rem 0.2rem; font-size: 1.07rem; transition: color 0.25s; }
body.badger .faq summary:hover, body.badger .faq details[open] summary { color: var(--green-text); }
body.badger .faq details > div { max-width: 58ch; }

/* ---- Areas: mist band + NI coverage map radiating from Belfast ---- */
body.badger .b-areasband {
  background: var(--mist);
  border-top: 1px solid rgba(31, 42, 31, 0.07);
  border-bottom: 1px solid rgba(31, 42, 31, 0.07);
}
body.badger .b-areasw {
  display: grid; grid-template-columns: 0.82fr 1.4fr;
  gap: 3.6rem; align-items: center;
}
body.badger .b-areasw .b-statement { margin-bottom: 1rem; }
body.badger .b-areasw__note { color: #5E6A5F; max-width: 40ch; margin: 0 0 1.8rem; }
body.badger .b-areasw__chips { display: flex; flex-wrap: wrap; gap: 0.6rem; max-width: 460px; }
body.badger .b-areasw__chips a {
  padding: 0.5rem 1.05rem;
  border-radius: 999px;
  background: #FFFFFF;
  border: 1px solid rgba(31, 42, 31, 0.12);
  font-weight: 600; font-size: 0.93rem;
  color: var(--text); text-decoration: none;
  box-shadow: 0 1px 2px rgba(18, 28, 19, 0.05);
  transition: border-color 0.25s, color 0.25s, transform 0.25s var(--ease-out), box-shadow 0.3s;
}
body.badger .b-areasw__chips a:hover {
  border-color: #6FB244; color: var(--green-text);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(111, 178, 68, 0.25);
}
body.badger .b-areasw__more { color: #5E6A5F; margin: 1.6rem 0 0; }
body.badger .b-areasw__more a { color: var(--green-text); font-weight: 650; }
body.badger .b-areasw__cap {
  font-family: "Spline Sans Mono", ui-monospace, monospace;
  font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: #79856F; text-align: center;
  margin: 0.9rem 0 0;
}

body.badger .b-nimap { display: block; width: 100%; height: auto; }
body.badger .b-nimap__coast {
  fill: #FFFFFF; fill-opacity: 0.9;
  stroke: #20261F; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round;
  filter: drop-shadow(0 18px 38px rgba(111, 178, 68, 0.24));
}
body.badger .b-nimap__lakes path {
  fill: var(--mist); fill-opacity: 0.95;
  stroke: #20261F; stroke-width: 1.3; stroke-linejoin: round;
  opacity: 0.85;
}
body.badger .b-nimap__town circle {
  fill: #6FB244;
  stroke: #FFFFFF; stroke-width: 1.2;
  filter: drop-shadow(0 0 5px rgba(111, 178, 68, 0.5));
  transition: r 0.25s var(--ease-out);
}
body.badger .b-nimap__town--minor circle { fill-opacity: 0.75; stroke-width: 1; }
body.badger .b-nimap__town text {
  font-family: "Spline Sans Mono", ui-monospace, monospace;
  font-size: 10.5px; letter-spacing: 0.02em;
  fill: #44503F; fill-opacity: 0.92;
  transition: fill 0.25s;
}
body.badger .b-nimap__town.is-hot circle { r: 5; }
body.badger .b-nimap__town.is-hot text { fill: #2F5B1D; font-weight: 700; }
body.badger .b-nimap__pinhalo { fill: rgba(245, 183, 47, 0.22); animation: b-breath 3.4s ease-in-out infinite; }
body.badger .b-nimap__pincore {
  fill: url(#niPin);
  filter: drop-shadow(0 0 8px rgba(245, 183, 47, 0.6));
  transition: r 0.25s var(--ease-out);
}
body.badger .b-nimap__pin.is-hot .b-nimap__pincore { r: 7.5; }
body.badger .b-nimap__pin text {
  font-family: "Spline Sans Mono", ui-monospace, monospace;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase;
  fill: #8A6612;
}

/* map draws in, then coverage radiates out from Belfast */
body.badger .b-areasw__map .b-nimap__coast { stroke-dasharray: 1; stroke-dashoffset: 0; }
body.badger .b-areasw__map.is-in .b-nimap__coast {
  stroke-dashoffset: 1; fill-opacity: 0;
  animation: b-draw 1.9s cubic-bezier(0.4, 0, 0.25, 1) 0.15s forwards,
             b-nifill 0.9s ease 1.6s forwards;
}
@keyframes b-nifill { to { fill-opacity: 0.9; } }
body.badger .b-areasw__map.is-in .b-nimap__lakes { opacity: 0; animation: b-nifade 0.7s ease 1.7s forwards; }
body.badger .b-areasw__map.is-in .b-nimap__radiance { opacity: 0; animation: b-nifade 1.1s ease 1.85s forwards; }
body.badger .b-areasw__map.is-in .b-nimap__pin,
body.badger .b-areasw__map.is-in .b-nimap__town { opacity: 0; animation: b-nifade 0.5s ease forwards; }
@keyframes b-nifade { to { opacity: 1; } }

@media (max-width: 900px) {
  body.badger .b-faqw { grid-template-columns: 1fr; gap: 2.2rem; }
  body.badger .b-faqw__side { position: static; }
  body.badger .faq details::after { left: -0.55rem; }
  body.badger .b-areasw { grid-template-columns: 1fr; gap: 2.4rem; }
  body.badger .b-areasw__map { max-width: 560px; margin: 0 auto; }
  body.badger .b-nimap__town text { font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
  body.badger .b-areasw__map.is-in .b-nimap__coast,
  body.badger .b-areasw__map.is-in .b-nimap__lakes,
  body.badger .b-areasw__map.is-in .b-nimap__radiance,
  body.badger .b-areasw__map.is-in .b-nimap__pin,
  body.badger .b-areasw__map.is-in .b-nimap__town { animation: none; opacity: 1; stroke-dashoffset: 0; fill-opacity: 0.9; }
  body.badger .b-nimap__pinhalo { animation: none; }
}

/* ==== mobile pass (Aug 2026) ==== */
body.badger .b-label { color: #6F7B70; }
body.badger .b-revcar__dots button { width: 28px; height: 28px; padding: 9px; background-clip: content-box; }
@media (max-width: 860px) {
  body.badger .b-atoml__label { font-size: 30px; }
  body.badger .b-atomw__creds { justify-content: center; }
  body.badger .b-hero h1 { font-size: clamp(2.55rem, 9vw, 3.4rem); }
}
@media (max-width: 640px) {
  body.badger .b-nimap__town text { font-size: 18.5px; }
  body.badger .b-nimap__pin text { font-size: 19px; }
  body.badger .b-areasw__chips { max-width: none; }
  body.badger .b-revcar { touch-action: pan-y; }
}

/* mobile alignment pass 2 (Aug 2026) */
@media (max-width: 700px) {
  body.badger .b-split__panel { padding: 2.8rem 20px 3rem; }
  body.badger .b-split__panel h2 { max-width: none; }
}
@media (max-width: 640px) {
  body.badger .b-hero__kicker { font-size: 0.68rem; letter-spacing: 0.16em; }
  body.badger .b-hero .rating { flex-direction: column; align-items: center; gap: 0.45rem; text-align: center; margin-top: 2rem; }
  body.badger .b-hero .rating > span:last-child { max-width: 30ch; line-height: 1.35; }
}

/* mobile map legibility (Aug 2026) */
@media (max-width: 640px) {
  body.badger .b-areasw__map { width: 100%; max-width: none; }
  body.badger .b-nimap { overflow: hidden; }
  body.badger .b-areasw__map { padding-inline: 6px; }
  body.badger .b-nimap__town text { font-size: 13px; }
  body.badger .b-nimap__town--minor text { display: none; }
  body.badger .b-nimap__pin text { font-size: 14.5px; }
}

@media (max-width: 400px) {
  body.badger .b-revcar__dots { flex-wrap: wrap; justify-content: center; row-gap: 0.2rem; max-width: 100%; }
}

/* review carousel nav must never be wider than the phone (Aug 2026) */
@media (max-width: 640px) {
  body.badger .b-revcar__nav { flex-wrap: wrap; justify-content: center; gap: 0.6rem 0.9rem; max-width: 100%; }
  body.badger .b-revcar__dots { order: -1; flex-basis: 100%; justify-content: center; flex-wrap: wrap; row-gap: 0.15rem; }
  body.badger .b-revcar__dots button { width: 24px; height: 24px; padding: 8px; }
}
