:root {
  --color-blue-glow: rgba(29, 107, 255, 0.15);
  --font-size-base: 1rem;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --header-height: 64px;
}

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  -webkit-font-smoothing: antialiased;
}

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

@keyframes heroFadeSlide {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes heroConsoleEnter {
  from { opacity: 0; transform: scale(0.95) translateY(40px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes spineGrow {
  from { height: 0; }
  to { height: 100%; }
}
@keyframes phaseFade {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}

.animate-on-scroll { opacity: 1; transform: translateY(0); }
.js .animate-on-scroll:not(.is-visible) { opacity: 0; transform: translateY(28px); }
.js .animate-on-scroll { transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1), transform 0.65s cubic-bezier(0.16, 1, 0.3, 1); }
.js .animate-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
.js .animate-on-scroll:nth-child(2) { transition-delay: 0.08s; }
.js .animate-on-scroll:nth-child(3) { transition-delay: 0.16s; }
.js .animate-on-scroll:nth-child(4) { transition-delay: 0.24s; }
.js .animate-on-scroll:nth-child(5) { transition-delay: 0.32s; }
.js .animate-on-scroll:nth-child(6) { transition-delay: 0.4s; }
.js .animate-on-scroll:nth-child(7) { transition-delay: 0.48s; }
.js .animate-on-scroll:nth-child(8) { transition-delay: 0.56s; }

/* Ollie sets b/strong to its semi-bold (600); BCB relies on the browser's
   relative `bolder`, which reaches 900 inside heavy headings. */
b,
strong {
  font-weight: bolder;
}

/* Root gutters
   --------------------------------------------------------------------------
   BCB landing pages (front page, Page No Title) are full-bleed sections that
   set their own gutters, so root padding stays 0 there. Everything else
   (Ollie's blog, archive, search, and standard page templates) needs the
   root-padding-aware gutter or its content runs to the screen edge. */
body:not(.home):not(.page-template-page-no-title) {
  --wp--style--root--padding-left: var(--gutter);
  --wp--style--root--padding-right: var(--gutter);
}

/* theme.json zeroes post-content padding for the landing-page model;
   give posts and standard pages their gutter back. */
body:not(.home):not(.page-template-page-no-title) .wp-block-post-content.has-global-padding {
  padding-left: var(--wp--style--root--padding-left);
  padding-right: var(--wp--style--root--padding-right);
}

/* Navigation — Parent-level rules (can't scope to nav block)
   -------------------------------------------------------------------------- */
.wp-block-template-part:has(.wp-block-navigation .is-menu-open),
header:has(.wp-block-navigation .is-menu-open) {
  z-index: 100001;
  position: relative;
}

/* Keep the header CTA at its natural width; the nowrap cluster otherwise
   squeezes the buttons wrapper and the label spills past its border. */
.site-header-nav-cluster > .wp-block-buttons {
  flex-shrink: 0;
}

/* Mobile flyout menu
   --------------------------------------------------------------------------
   Full-screen navy overlay, big centered condensed links, short
   magenta-to-blue separators, and "Book a Call" as the closing CTA. */
.site-header-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .nav-cta {
  display: none;
}

/* backdrop-filter makes the header the containing block for position:fixed
   children, which would shrink the overlay to the header's box. */
.site-header:has(.is-menu-open) {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.site-header-nav .wp-block-navigation__responsive-container.is-menu-open {
  --mobile-nav-font-size: clamp(1.75rem, 8vw, 2.25rem);
  padding: var(--wp--preset--spacing--40) var(--gutter);
  background:
    radial-gradient(ellipse at 50% 0%, rgb(255 0 170 / 0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 90%, rgb(29 107 255 / 0.12) 0%, transparent 45%),
    var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
}

.site-header-nav .wp-block-navigation__responsive-container.is-menu-open::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--wp--preset--color--accent-12), var(--wp--preset--color--accent-5), transparent);
}

.site-header-nav .is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: var(--wp--preset--spacing--50);
}

.site-header-nav .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
  align-items: center;
  gap: var(--wp--preset--spacing--30);
  width: 100%;
}

.site-header-nav .is-menu-open .wp-block-navigation-item {
  position: relative;
  align-items: center;
  padding-bottom: var(--wp--preset--spacing--30);
}

/* Separator under each link; widens on hover/focus. */
.site-header-nav .is-menu-open .wp-block-navigation-item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 50px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--wp--preset--color--accent-12), var(--wp--preset--color--accent-5));
  opacity: 0.7;
  transform: translateX(-50%);
  transition: width 0.3s ease, opacity 0.3s ease;
}

.site-header-nav .is-menu-open .wp-block-navigation-item:hover::after,
.site-header-nav .is-menu-open .wp-block-navigation-item:has(> .wp-block-navigation-item__content:focus-visible)::after {
  width: 80px;
  opacity: 1;
}

.site-header-nav .is-menu-open .wp-block-navigation-item.nav-cta::after {
  display: none;
}

.site-header-nav .is-menu-open .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: normal;
  color: var(--wp--preset--color--base);
  transition: color 0.2s ease, text-shadow 0.2s ease;
}

/* Hover stays legible: magenta on navy (~5.4:1), plus a soft glow. */
.site-header-nav .is-menu-open .wp-block-navigation-item__content:hover,
.site-header-nav .is-menu-open .wp-block-navigation-item__content:focus-visible {
  color: var(--wp--preset--color--accent-12);
  text-shadow: 0 0 14px rgb(255 0 170 / 0.45);
}

.site-header-nav .is-menu-open .wp-block-navigation-item__content:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-6);
  outline-offset: 4px;
}

.site-header-nav .is-menu-open .nav-cta {
  margin-top: var(--wp--preset--spacing--30);
  padding-bottom: 0;
}

.site-header-nav .is-menu-open .nav-cta .wp-block-navigation-item__content {
  padding: 0.6rem 1.75rem;
  border: 2px solid var(--wp--preset--color--accent-12);
  border-radius: 4px;
  --mobile-nav-font-size: clamp(1.25rem, 6vw, 1.5rem);
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--accent-12);
  box-shadow: 0 0 12px rgb(255 0 170 / 0.25), 0 0 30px rgb(255 0 170 / 0.08);
  transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.site-header-nav .is-menu-open .nav-cta .wp-block-navigation-item__content:hover,
.site-header-nav .is-menu-open .nav-cta .wp-block-navigation-item__content:focus-visible {
  background-color: var(--wp--preset--color--accent-12);
  color: var(--wp--preset--color--contrast);
  text-shadow: none;
  box-shadow: 0 0 20px rgb(255 0 170 / 0.5), 0 0 45px rgb(255 0 170 / 0.2);
}

.site-header-nav .is-menu-open .wp-block-navigation__responsive-container-close {
  color: var(--wp--preset--color--base);
  transition: color 0.2s ease;
}

.site-header-nav .is-menu-open .wp-block-navigation__responsive-container-close:hover {
  color: var(--wp--preset--color--accent-12);
}

footer.wp-block-template-part,
footer.wp-block-template-part > .wp-block-group {
  position: relative;
  z-index: 1;
}

[class*="site-footer"],
[class*="footer-section"] {
  margin-block-start: 0 !important;
}

:where(.wp-site-blocks, .wp-block-post-content) :where(
  .wp-block-group,
  .wp-block-cover,
  .wp-block-columns,
  .wp-block-column,
  .wp-block-media-text,
  .wp-block-buttons,
  .wp-block-button,
  .wp-block-image,
  .wp-block-heading,
  p,
  ul,
  ol,
  li
) {
  min-width: 0;
  box-sizing: border-box;
}

:where(.wp-site-blocks, .wp-block-post-content) > :where(.alignfull, section) {
  max-width: 100vw;
  box-sizing: border-box;
}

/* Static conversion scroll reveal visibility guard */
.animate-on-scroll,
.animate-from-left,
.animate-from-right,
.animate-scale,
html.js .animate-on-scroll:not(.is-visible),
.js .animate-on-scroll:not(.is-visible),
.editor-styles-wrapper .animate-on-scroll,
.editor-styles-wrapper .animate-from-left,
.editor-styles-wrapper .animate-from-right,
.editor-styles-wrapper .animate-scale {
  opacity: 1 !important;
  transform: none !important;
}
/* Homepage hero stack map
   Plays once on load: vendors start tangled around the owner ("YOU"), then
   untangle and connect to Blue Collar Bodyguard. Small pulses keep running
   along the spokes afterward. Paths use pathLength="1", so the dash math
   works in 0..1 units whatever the real line length is. */
.bcb-stack-map { width: 100%; }
.bcb-stack-map__svg { display: block; width: 100%; height: auto; overflow: visible; }
.bcb-stack-map text {
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.bcb-sm-tangle path {
  fill: none;
  stroke: var(--wp--preset--color--accent-14);
  stroke-opacity: 0.55;
  stroke-width: 1.5;
  stroke-dasharray: 1;
  animation: bcbSmDraw 0.9s cubic-bezier(0.65, 0, 0.35, 1) calc(0.4s + var(--i) * 0.05s) both;
}
.bcb-sm-tangle,
.bcb-sm-owner { animation: bcbSmOut 0.6s ease 2.6s both; }

.bcb-sm-owner circle {
  fill: var(--wp--preset--color--accent-1);
  stroke: var(--wp--preset--color--accent-14);
  stroke-width: 1.5;
}
.bcb-sm-owner text { fill: var(--wp--preset--color--accent-14); font-size: 15px; }
.bcb-sm-owner > * { animation: bcbSmIn 0.5s ease 0.5s both; }

.bcb-sm-spokes path {
  fill: none;
  stroke: var(--wp--preset--color--accent-5);
  stroke-width: 2;
  stroke-dasharray: 1;
  animation: bcbSmDraw 0.5s ease-out calc(3s + var(--i) * 0.08s) both;
}

.bcb-sm-pulses path {
  fill: none;
  stroke: var(--wp--preset--color--accent-7);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 0.05 1;
  stroke-dashoffset: 0.05;
  animation: bcbSmPulse 2.4s linear calc(4.2s + var(--i) * 0.3s) infinite;
}

.bcb-sm-node { animation: bcbSmIn 0.5s ease calc(0.1s + var(--i) * 0.06s) both; }
.bcb-sm-node rect {
  fill: var(--wp--preset--color--accent-1);
  stroke: var(--wp--preset--color--accent-3);
  stroke-width: 1.5;
}
.bcb-sm-node circle {
  fill: var(--wp--preset--color--accent-14);
  animation: bcbSmHealthy 0.4s ease calc(3.3s + var(--i) * 0.08s) both;
}
.bcb-sm-node text { fill: var(--wp--preset--color--accent-7); font-size: 13px; }

.bcb-sm-guard {
  transform-box: fill-box;
  transform-origin: center;
  animation: bcbSmGuardIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) 2.9s both;
}
.bcb-sm-guard rect { fill: var(--wp--preset--color--accent-5); }
.bcb-sm-guard text { fill: var(--wp--preset--color--base); font-size: 17px; letter-spacing: 0.06em; }

.bcb-sm-caption text { fill: var(--wp--preset--color--accent-7); font-size: 14px; letter-spacing: 0.1em; }
.bcb-sm-caption .bcb-sm-caption--before {
  fill: var(--wp--preset--color--accent-14);
  animation: bcbSmIn 0.4s ease 0.8s both, bcbSmOut 0.5s ease 2.6s forwards;
}
.bcb-sm-caption--after { animation: bcbSmIn 0.5s ease 3.4s both; }

@keyframes bcbSmDraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes bcbSmIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bcbSmOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes bcbSmPulse { from { stroke-dashoffset: 0.05; } to { stroke-dashoffset: -1; } }
@keyframes bcbSmHealthy { to { fill: var(--wp--preset--color--accent-13); } }
@keyframes bcbSmGuardIn {
  from { opacity: 0; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1); }
}

/* Reduced motion: skip the story and show the finished map. */
@media (prefers-reduced-motion: reduce) {
  .bcb-stack-map *,
  .bcb-stack-map *::before { animation: none !important; }
  .bcb-sm-tangle,
  .bcb-sm-owner,
  .bcb-sm-caption--before,
  .bcb-sm-pulses { display: none; }
  .bcb-sm-node circle { fill: var(--wp--preset--color--accent-13); }
}

/* Work-order style (trial)
   Applied to three homepage sections so we can judge the direction before
   rolling it out: Problem (intake checklist), Process (job ticket), and
   Two Ways to Get Started (estimate slip). Selectors start with `section.`
   so they outrank each section's own custom CSS. */
:root {
  --bcb-paper: #F3F0E8;
  --bcb-grid: rgba(30, 41, 59, 0.06);
  --bcb-ink: #1E293B;
  --bcb-rule: rgba(30, 41, 59, 0.18);
  --bcb-hivis: #FF6A13;      /* fills, and text on dark */
  --bcb-hivis-ink: #C2410C;  /* text on light (passes AA on paper) */
  --bcb-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

section.problem.miles-sec-1ef1b44a,
section.what-we-do.miles-sec-9a13c22c,
section.stack-check-assessment {
  background-color: var(--bcb-paper) !important;
  background-image:
    linear-gradient(var(--bcb-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bcb-grid) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Rubber-stamp labels */
section.problem .problem-questions-label,
section.what-we-do.miles-sec-9a13c22c .what-we-do-cat-label,
section.stack-check-assessment .stack-check-offer-label {
  display: inline-block;
  color: var(--bcb-hivis-ink) !important;
  background: none;
  border: 2px solid currentColor;
  border-radius: 3px;
  padding: 3px 10px;
  letter-spacing: 0.14em;
  font-weight: 800;
  transform: rotate(-2deg);
  transform-origin: left center;
}
section.stack-check-assessment .stack-check-offer-label-paid { color: var(--bcb-hivis) !important; }

/* Shared: a paper form with a ruler along its top edge */
section.problem .problem-questions,
section.what-we-do.miles-sec-9a13c22c .what-we-do-category {
  position: relative;
  background: #fff;
  border: 1px solid var(--bcb-rule);
  border-radius: 2px;
  padding: calc(var(--wp--preset--spacing--40) + 10px) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
  box-shadow: 0 1px 0 var(--bcb-rule), 0 12px 28px -18px rgba(7, 11, 20, 0.35);
}
section.problem .problem-questions::before,
section.what-we-do.miles-sec-9a13c22c .what-we-do-category::before,
section.stack-check-assessment .stack-check-featured::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 10px;
  background:
    repeating-linear-gradient(90deg, var(--bcb-rule) 0 1px, transparent 1px 8px) top / 100% 5px no-repeat,
    repeating-linear-gradient(90deg, var(--bcb-ink) 0 1px, transparent 1px 40px) top / 100% 10px no-repeat;
  opacity: 0.55;
  pointer-events: none;
}
section.problem .problem-questions::after,
section.what-we-do.miles-sec-9a13c22c .what-we-do-category::after {
  position: absolute;
  top: 18px;
  right: var(--wp--preset--spacing--40);
  font-family: var(--bcb-mono);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  color: var(--wp--preset--color--secondary);
}
section.problem .problem-questions::after { content: "FORM 01 / SHOP INTAKE"; }
section.what-we-do.miles-sec-9a13c22c .what-we-do-category::after { content: "JOB TICKET"; }

/* 1. Problem: questions become an intake checklist */
section.problem .problem-question-item {
  border-top: 1px dashed var(--bcb-rule);
  padding-left: calc(var(--wp--preset--spacing--40) + 6px);
}
section.problem .problem-question-item::before {
  width: 14px;
  height: 14px;
  border: 2px solid var(--bcb-ink);
  border-radius: 2px;
  background: none;
}

/* 2. Process: steps become job-ticket line items */
section.what-we-do.miles-sec-9a13c22c .what-we-do-step {
  border-top: 1px dashed var(--bcb-rule);
  grid-template-columns: 52px 1fr;
}
section.what-we-do.miles-sec-9a13c22c .what-we-do-step-num {
  font-family: var(--bcb-mono) !important;
  font-size: 0.95rem !important;
  font-weight: 700;
  text-align: center;
  color: var(--bcb-ink) !important;
  border: 1.5px solid var(--bcb-ink);
  border-radius: 2px;
  padding: 6px 0;
  line-height: 1;
}
section.what-we-do.miles-sec-9a13c22c .what-we-do-step-list::after {
  content: "SIGN-OFF ______________________    DATE ________";
  display: block;
  padding-top: var(--wp--preset--spacing--40);
  border-top: 1px dashed var(--bcb-rule);
  font-family: var(--bcb-mono);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--wp--preset--color--secondary);
  white-space: pre-wrap;
}

/* 3. Pricing: the assessment card becomes an estimate slip */
section.stack-check-assessment .stack-check-featured { position: relative; padding-top: calc(var(--wp--preset--spacing--40) + 10px); }
section.stack-check-assessment .stack-check-sidebar-card:not(.stack-check-sidebar-card-light) {
  position: relative;
  border-radius: 2px;
  border-top: 3px dashed var(--bcb-hivis);
}
section.stack-check-assessment .stack-check-sidebar-card:not(.stack-check-sidebar-card-light)::after {
  content: "ESTIMATE";
  position: absolute;
  top: var(--wp--preset--spacing--40);
  right: var(--wp--preset--spacing--40);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  color: var(--bcb-hivis);
  border: 2px solid currentColor;
  border-radius: 3px;
  padding: 2px 8px;
  transform: rotate(6deg);
  opacity: 0.9;
}
section.stack-check-assessment .pricing-tier { border-top: 1px dashed var(--wp--preset--color--accent-8); }
section.stack-check-assessment .pricing-tier-price {
  font-family: var(--bcb-mono) !important;
  font-weight: 700;
}
section.stack-check-assessment .stack-check-sidebar-card-light,
section.stack-check-assessment .stack-check-featured { border-radius: 2px; }
@media (max-width: 600px) {
  /* Form codes would collide with the stamp labels on phones. */
  section.problem .problem-questions::after,
  section.what-we-do.miles-sec-9a13c22c .what-we-do-category::after { display: none; }
  section.what-we-do.miles-sec-9a13c22c .what-we-do-step-list::after { content: "SIGN-OFF ____________  DATE ______"; }
}

/* Free 15-minute call: secondary link under the main CTAs, plus its modal */
.bcb-free-call-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: calc(var(--wp--preset--spacing--30) * -0.25) 0 var(--wp--preset--spacing--40) !important;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--wp--preset--color--accent-7);
}
.bcb-free-call-note a.bcb-free-call {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 16px;
  font-family: var(--wp--preset--font-family--saira);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--wp--preset--color--base);
  background: transparent;
  border: 1px solid rgba(226, 232, 240, 0.55);
  border-radius: 4px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.bcb-free-call-note a.bcb-free-call:hover {
  background: rgba(226, 232, 240, 0.1);
  border-color: var(--wp--preset--color--base);
}
.bcb-free-call-note a.bcb-free-call:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-6);
  outline-offset: 2px;
}

html.bcb-modal-open { overflow: hidden; }
.bcb-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: var(--gutter);
  background: var(--wp--preset--color--dark-scrim);
}
.bcb-modal[hidden] { display: none; }
.bcb-modal__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(760px, 100%);
  height: min(860px, calc(100dvh - 2 * var(--gutter)));
  overflow: hidden;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  border-radius: 6px;
  padding: var(--wp--preset--spacing--40);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  outline: none;
}
.bcb-modal__title {
  margin: 0 48px var(--wp--preset--spacing--30) 0;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.bcb-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--wp--preset--color--contrast);
  cursor: pointer;
}
.bcb-modal__close:hover { background: var(--wp--preset--color--contrast-2); }
.bcb-modal__close:focus-visible { outline: 2px solid var(--wp--preset--color--accent-5); outline-offset: 2px; }
/* The frame fills what's left of the panel and the calendar scrolls inside
   it. GHL's script writes an inline height, so the !important keeps the
   iframe matched to the panel instead. */
.bcb-modal__frame { position: relative; flex: 1 1 auto; min-height: 0; }
.bcb-modal__frame iframe {
  display: block;
  width: 100%;
  height: 100% !important;
  border: 0;
  overflow: auto !important;
}
.bcb-modal__loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  margin: 0;
  color: var(--wp--preset--color--secondary);
}
.bcb-modal__frame.is-loaded .bcb-modal__loading { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .bcb-modal:not([hidden]) { animation: bcbSmIn 0.2s ease both; }
}
@media (max-width: 600px) {
  .bcb-modal { padding: 0; }
  .bcb-modal__panel {
    width: 100%;
    height: 100dvh;
    border-radius: 0;
    padding: var(--wp--preset--spacing--30);
  }
}

/* About Me page (post 38). Uses the homepage's blueprint texture, the
   work-order tokens (--bcb-*), and a swinging ID badge as the hero piece. */
.ab-hero,
.ab-sides,
.ab-stats,
.ab-story,
.ab-work,
.ab-cta { position: relative; box-sizing: border-box; }

/* Hero */
.ab-hero {
  overflow: hidden;
  padding: var(--wp--preset--spacing--60) var(--gutter) calc(var(--wp--preset--spacing--60) + 3rem);
  background-color: var(--wp--preset--color--contrast);
  background-image:
    linear-gradient(100deg, rgba(7, 11, 20, 0.94) 0%, rgba(7, 11, 20, 0.8) 45%, rgba(7, 11, 20, 0.55) 100%),
    url(/wp-content/uploads/2026/09/hero-bg.jpg);
  background-size: cover;
  background-position: center;
}
.ab-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 76% 42%, rgba(29, 107, 255, 0.32) 0%, transparent 42%),
    linear-gradient(rgba(100, 116, 139, 0.07) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(100, 116, 139, 0.07) 1px, transparent 1px) 0 0 / 48px 48px;
  pointer-events: none;
}
.ab-hero::after {
  content: "ON YOUR SIDE";
  position: absolute;
  left: 50%;
  bottom: -0.18em;
  transform: translateX(-50%);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: clamp(5rem, 17vw, 15rem);
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1px rgba(226, 232, 240, 0.09);
  pointer-events: none;
}
.ab-hero-inner {
  position: relative;
  z-index: 1;
  max-width: var(--wp--style--global--wide-size);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: var(--wp--preset--spacing--60);
  align-items: center;
}
.ab-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 var(--wp--preset--spacing--30);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.9rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-6);
}
.ab-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.ab-title {
  margin: 0 0 var(--wp--preset--spacing--40);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: clamp(3rem, 7.5vw, 6rem);
  line-height: 0.92;
  text-transform: uppercase;
  color: var(--wp--preset--color--base);
}
.ab-title-line { display: block; }
.ab-title-accent { color: var(--wp--preset--color--accent-6); }
.ab-lede {
  max-width: 34em;
  margin: 0 0 var(--wp--preset--spacing--40);
  font-size: 1.15rem;
  line-height: 1.6;
  color: var(--wp--preset--color--accent-7);
}
.ab-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.ab-btn {
  display: inline-flex;
  align-items: center;
  min-height: 50px;
  padding: 0 22px;
  font-family: var(--wp--preset--font-family--saira);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}
.ab-btn-primary {
  color: var(--wp--preset--color--base);
  background: var(--wp--preset--color--accent-5);
  border: 1px solid var(--wp--preset--color--accent-5);
}
.ab-btn-primary:hover { background: #2e7bff; box-shadow: 0 4px 20px rgba(29, 107, 255, 0.42); transform: translateY(-2px); }
.ab-btn-ghost {
  color: var(--wp--preset--color--accent-7);
  background: rgba(18, 26, 42, 0.45);
  border: 1px solid var(--wp--preset--color--accent-8);
}
.ab-btn-ghost:hover { color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--accent-7); transform: translateY(-2px); }
.ab-btn:focus-visible { outline: 2px solid var(--wp--preset--color--accent-6); outline-offset: 3px; }

/* ID badge on a lanyard */
.ab-badge-wrap {
  position: relative;
  display: grid;
  justify-items: center;
  padding-top: 70px;
}
.ab-badge-wrap::before {
  content: "";
  position: absolute;
  top: calc(-1 * var(--wp--preset--spacing--60) - 10px);
  left: 50%;
  width: 26px;
  height: calc(var(--wp--preset--spacing--60) + 90px);
  transform: translateX(-50%);
  background: repeating-linear-gradient(180deg, var(--wp--preset--color--accent-5) 0 14px, #1554cc 14px 16px);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.ab-badge {
  position: relative;
  width: min(340px, 100%);
  padding: 0 18px 18px;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  border-radius: 14px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.06);
  transform: rotate(3deg);
  transform-origin: 50% -70px;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.ab-badge:hover { transform: rotate(0deg); }
.ab-badge::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 50%;
  width: 46px;
  height: 9px;
  transform: translateX(-50%);
  border-radius: 9px;
  background: var(--wp--preset--color--contrast);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.6);
  z-index: 2;
}
.ab-badge::after {
  content: "";
  display: block;
  height: 38px;
  margin-top: 14px;
  background: repeating-linear-gradient(90deg,
    var(--wp--preset--color--contrast) 0 2px, transparent 2px 4px,
    var(--wp--preset--color--contrast) 4px 5px, transparent 5px 8px,
    var(--wp--preset--color--contrast) 8px 11px, transparent 11px 13px,
    var(--wp--preset--color--contrast) 13px 14px, transparent 14px 17px);
  opacity: 0.85;
}
.ab-badge-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 -18px 14px !important;
  padding: 30px 18px 12px;
  border-radius: 14px 14px 0 0;
  background: var(--wp--preset--color--accent-5);
  color: var(--wp--preset--color--base);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ab-badge-head span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 99px;
  background: rgba(7, 11, 20, 0.35);
  font-size: 0.72rem;
}
.ab-badge-head span::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wp--preset--color--accent-13);
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.25);
}
.ab-badge-photo { margin: 0 !important; }
.ab-badge-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: 50% 30%;
  border-radius: 6px;
}
.ab-badge-name {
  margin: 14px 0 0 !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: 2rem;
  line-height: 1;
  text-transform: uppercase;
}
.ab-badge-role {
  margin: 4px 0 10px !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-5);
}
.ab-badge-creds { list-style: none; margin: 0; padding: 0; }
.ab-badge-creds li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-top: 1px dashed var(--bcb-rule);
  font-size: 0.85rem;
}
.ab-badge-creds span { color: var(--wp--preset--color--secondary); }
.ab-badge-creds strong { font-family: var(--bcb-mono); font-size: 0.8rem; }

@media (prefers-reduced-motion: no-preference) {
  .ab-title-line { animation: heroFadeSlide 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .ab-title-line:nth-child(2) { animation-delay: 0.08s; }
  .ab-title-line:nth-child(3) { animation-delay: 0.16s; }
  .ab-badge { animation: abSwing 1.8s cubic-bezier(0.25, 1, 0.3, 1) 0.2s both; }
}
@keyframes abSwing {
  0% { opacity: 0; transform: translateY(-40px) rotate(-14deg); }
  25% { opacity: 1; transform: translateY(0) rotate(9deg); }
  50% { transform: rotate(-2deg); }
  75% { transform: rotate(4.5deg); }
  100% { transform: rotate(3deg); }
}

/* Both sides of the table */
.ab-sides-inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; }
.ab-side { padding: var(--wp--preset--spacing--60) var(--gutter); display: grid; grid-template-columns: minmax(0, 32rem); align-content: start; }
.ab-side > * { justify-self: stretch; }
.ab-side-vendor { justify-content: end; background: var(--wp--preset--color--contrast-2); padding-right: calc(var(--gutter) + 70px); }
.ab-side-truck {
  justify-content: start;
  padding-left: calc(var(--gutter) + 70px);
  background-color: var(--bcb-paper);
  background-image:
    linear-gradient(var(--bcb-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bcb-grid) 1px, transparent 1px);
  background-size: 24px 24px;
}
.ab-side-label {
  justify-self: start !important;
  display: inline-block;
  margin: 0 0 var(--wp--preset--spacing--30) !important;
  padding: 3px 10px;
  border: 2px solid currentColor;
  border-radius: 3px;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transform: rotate(-2deg);
}
.ab-side-vendor .ab-side-label { color: var(--wp--preset--color--accent-5); }
.ab-side-truck .ab-side-label { color: var(--bcb-hivis-ink); }
.ab-side-title {
  margin: 0 0 var(--wp--preset--spacing--30) !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1;
  text-transform: uppercase;
}
.ab-side p:not([class]) { font-size: 1.05rem; line-height: 1.7; margin: 0; }
.ab-seal {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: grid;
  place-content: center;
  width: 124px;
  height: 124px;
  margin: 0 !important;
  transform: translate(-50%, -50%) rotate(-10deg);
  border-radius: 50%;
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  box-shadow: 0 0 0 6px var(--wp--preset--color--base), 0 0 0 8px var(--wp--preset--color--accent-5), 0 14px 30px rgba(7, 11, 20, 0.35);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: 1.5rem;
  line-height: 0.9;
  text-align: center;
  text-transform: uppercase;
}
.ab-seal span { display: block; color: var(--wp--preset--color--accent-6); font-size: 1.05rem; letter-spacing: 0.14em; }

/* Numbers */
.ab-stats { padding: var(--wp--preset--spacing--50) var(--gutter); border-top: 1px solid var(--wp--preset--color--accent-3); }
.ab-stats-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: var(--wp--style--global--wide-size);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.ab-stats-list li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
  border-left: 1px solid var(--wp--preset--color--accent-3);
}
.ab-stats-list li:first-child { border-left: 0; padding-left: 0; }
.ab-stats-list strong {
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: clamp(2.75rem, 5.5vw, 4.5rem);
  line-height: 0.9;
  color: var(--wp--preset--color--base);
}
.ab-stats-list span {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-7);
}

/* Story on the work-order paper */
.ab-story {
  padding: var(--wp--preset--spacing--60) var(--gutter);
  background-color: var(--bcb-paper);
  background-image:
    linear-gradient(var(--bcb-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bcb-grid) 1px, transparent 1px);
  background-size: 24px 24px;
}
.ab-story-inner {
  max-width: 46rem;
  margin: 0 auto;
  padding: var(--wp--preset--spacing--50);
  background: #fff;
  border: 1px solid var(--bcb-rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px -24px rgba(7, 11, 20, 0.45);
  position: relative;
}
.ab-story-inner::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 10px;
  background:
    repeating-linear-gradient(90deg, var(--bcb-rule) 0 1px, transparent 1px 8px) top / 100% 5px no-repeat,
    repeating-linear-gradient(90deg, var(--bcb-ink) 0 1px, transparent 1px 40px) top / 100% 10px no-repeat;
  opacity: 0.55;
}
.ab-story p:not([class]) { font-size: 1.075rem; line-height: 1.75; }
.ab-stamp {
  display: inline-block;
  margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--20) !important;
  padding: 3px 10px;
  border: 2px solid currentColor;
  border-radius: 3px;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bcb-hivis-ink);
  transform: rotate(-2deg);
}
.ab-story-inner > .ab-stamp:first-child { margin-top: 0 !important; }
.ab-h2 {
  margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30) !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: clamp(1.8rem, 3.4vw, 2.5rem);
  line-height: 1.02;
  text-transform: uppercase;
}
.ab-pullquote {
  position: relative;
  margin: var(--wp--preset--spacing--40) 0 !important;
  padding: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) !important;
  border-left: 6px solid var(--bcb-hivis) !important;
}
.ab-pullquote p {
  margin: 0;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: clamp(1.6rem, 3.2vw, 2.25rem) !important;
  line-height: 1.1 !important;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast);
}

/* How I work: job-ticket cards */
.ab-work { padding: var(--wp--preset--spacing--60) var(--gutter); background: var(--wp--preset--color--base); }
.ab-work-inner { max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
.ab-work-title { margin-top: 0 !important; }
.ab-work-list {
  list-style: none;
  counter-reset: abwork;
  margin: var(--wp--preset--spacing--40) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--wp--preset--spacing--30);
}
.ab-work-list li {
  counter-increment: abwork;
  position: relative;
  padding: calc(var(--wp--preset--spacing--40) + 10px) var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
  background: #fff;
  border: 1px solid var(--bcb-rule);
  border-top: 3px solid var(--wp--preset--color--accent-5);
  border-radius: 2px;
  line-height: 1.6;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}
.ab-work-list li:hover { transform: translateY(-4px); box-shadow: 0 16px 30px -20px rgba(7, 11, 20, 0.5); }
.ab-work-list li::before {
  content: counter(abwork, decimal-leading-zero);
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 8px;
  border: 1.5px solid var(--bcb-ink);
  border-radius: 2px;
  font-family: var(--bcb-mono);
  font-weight: 700;
  font-size: 0.85rem;
}
.ab-work-list strong {
  display: block;
  margin-bottom: 6px;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 1.3rem;
  line-height: 1.1;
  text-transform: uppercase;
}

/* Closing CTA */
.ab-cta {
  overflow: hidden;
  padding: var(--wp--preset--spacing--60) var(--gutter);
  background-image: radial-gradient(circle at 50% 120%, rgba(29, 107, 255, 0.35) 0%, transparent 55%);
}
.ab-cta-inner { position: relative; max-width: 50rem; margin: 0 auto; text-align: center; }
.ab-cta-title {
  margin: 0 0 var(--wp--preset--spacing--30) !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 900;
  font-size: clamp(2.5rem, 6vw, 4.75rem);
  line-height: 0.95;
  text-transform: uppercase;
}
.ab-cta-title span { color: var(--wp--preset--color--accent-6); }
.ab-cta-copy { max-width: 34em; margin: 0 auto var(--wp--preset--spacing--40) !important; font-size: 1.1rem; color: var(--wp--preset--color--accent-7); }
.ab-cta .ab-ctas { justify-content: center; }

@media (max-width: 1024px) {
  .ab-hero-inner { grid-template-columns: 1fr; }
  .ab-badge-wrap { padding-top: 40px; }
  .ab-badge-wrap::before { display: none; }
  .ab-work-list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 781px) {
  .ab-sides-inner { grid-template-columns: 1fr; }
  .ab-side-vendor,
  .ab-side-truck { justify-content: start; padding: var(--wp--preset--spacing--50) var(--gutter); }
  .ab-side-vendor { padding-bottom: calc(var(--wp--preset--spacing--50) + 50px); }
  .ab-side-truck { padding-top: calc(var(--wp--preset--spacing--50) + 50px); }
  .ab-seal { width: 104px; height: 104px; font-size: 1.3rem; }
  .ab-stats-list { grid-template-columns: 1fr 1fr; row-gap: var(--wp--preset--spacing--30); }
  .ab-stats-list li:nth-child(3) { border-left: 0; padding-left: 0; }
  .ab-story-inner { padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30); }
}
@media (max-width: 560px) {
  .ab-work-list { grid-template-columns: 1fr; }
  .ab-btn { width: 100%; justify-content: center; }
}
/* WordPress's flow-layout sibling margins fight the About grids. */
.ab-sides-inner > *,
.ab-side > *,
.ab-hero-inner > * { margin-block: 0 !important; }
.ab-side { row-gap: var(--wp--preset--spacing--30); }

/* About: agency link in the hero, and the brand wall */
.ab-agency-link {
  margin: var(--wp--preset--spacing--40) 0 0 !important;
  padding-top: var(--wp--preset--spacing--30);
  border-top: 1px solid var(--wp--preset--color--accent-3);
  max-width: 34em;
  font-size: 0.95rem;
  color: var(--wp--preset--color--accent-7);
}
.ab-agency-link a,
.ab-brands-note a {
  font-weight: 700;
  color: var(--wp--preset--color--accent-6);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ab-agency-link a::after,
.ab-brands-note a::after { content: " \2197"; text-decoration: none; display: inline-block; }
.ab-agency-link a:hover { color: var(--wp--preset--color--base); }

.ab-brands { padding: var(--wp--preset--spacing--60) var(--gutter); background: var(--wp--preset--color--base); }
.ab-brands-inner { max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
.ab-brands-label {
  margin: 0 0 var(--wp--preset--spacing--20) !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-5);
}
.ab-brands-title { margin-top: 0 !important; }
.ab-brands-list {
  list-style: none;
  margin: var(--wp--preset--spacing--40) 0 !important;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--wp--preset--color--accent-11);
  border-left: 1px solid var(--wp--preset--color--accent-11);
}
.ab-brands-list li {
  display: grid;
  place-items: center;
  min-height: 104px;
  padding: var(--wp--preset--spacing--30);
  border-right: 1px solid var(--wp--preset--color--accent-11);
  border-bottom: 1px solid var(--wp--preset--color--accent-11);
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: clamp(1.1rem, 1.9vw, 1.6rem);
  letter-spacing: 0.02em;
  text-align: center;
  text-transform: uppercase;
  color: var(--wp--preset--color--secondary);
  transition: color 0.2s ease, background-color 0.2s ease;
}
.ab-brands-list li:hover { color: var(--wp--preset--color--contrast); background: var(--wp--preset--color--base-2); }
.ab-brands-list li.ab-brands-trades {
  background: var(--wp--preset--color--accent-5);
  color: var(--wp--preset--color--base);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
}
.ab-brands-note { margin: 0 !important; font-size: 0.95rem; color: var(--wp--preset--color--secondary); }
.ab-brands-note a { color: var(--wp--preset--color--accent-5); }
@media (max-width: 1024px) { .ab-brands-list { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) {
  .ab-brands-list { grid-template-columns: 1fr 1fr; }
  .ab-brands-list li { min-height: 80px; }
  .ab-brands-list li.ab-brands-trades { grid-column: 1 / -1; }
}

/* Assessment card: what's included + how it works (homepage, dark card) */
.stack-check-assessment .bcb-assess-block {
  margin: 0 0 var(--wp--preset--spacing--40) !important;
  padding-bottom: var(--wp--preset--spacing--40);
  border-bottom: 1px solid var(--wp--preset--color--accent-3);
}
.stack-check-assessment .bcb-assess-label {
  margin: 0 0 var(--wp--preset--spacing--20) !important;
  font-family: var(--wp--preset--font-family--saira-condensed);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-6);
}
.stack-check-assessment .bcb-assess-included,
.stack-check-assessment .bcb-assess-steps {
  margin: 0 !important;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--wp--preset--color--accent-7);
}
.stack-check-assessment .bcb-assess-included li {
  position: relative;
  padding-left: 24px;
}
.stack-check-assessment .bcb-assess-included li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.3em;
  width: 11px;
  height: 6px;
  border-left: 2px solid var(--wp--preset--color--accent-13);
  border-bottom: 2px solid var(--wp--preset--color--accent-13);
  transform: rotate(-45deg);
}
.stack-check-assessment .bcb-assess-steps { counter-reset: bcbstep; }
.stack-check-assessment .bcb-assess-steps li {
  counter-increment: bcbstep;
  position: relative;
  padding-left: 34px;
  min-height: 24px;
}
.stack-check-assessment .bcb-assess-steps li::before {
  content: counter(bcbstep);
  position: absolute;
  left: 0;
  top: -1px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1.5px solid var(--wp--preset--color--accent-5);
  font-family: var(--bcb-mono);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--wp--preset--color--base);
}
.stack-check-assessment .bcb-assess-steps strong { color: var(--wp--preset--color--base); }

/* Footer privacy link */
.site-footer-copy a { color: inherit; text-decoration: underline; text-underline-offset: 2px; margin-left: 0.5em; }
.site-footer-copy a:hover { color: var(--wp--preset--color--base); }
