/* Superseded by section 67: the shop pills now take the Gallery/Testimonials
   treatment, so the body-font override that matched shop.html's own .filter-btn
   is gone. */
/* ==========================================================================
   Bravo11 Gym & MMA - global component layer
   Ported from the static HTML build. Design: "Bravo11 OLED Combat".
   Loaded after the Kadence stylesheet.
   Lives at wp-content/uploads/bravo11/bravo11.css
   ========================================================================== */

:root {
  --b11-red:        #b32424;
  --b11-red-hover:  #c72929;
  --b11-red-light:  #d95a4f;
  --b11-red-bright: #ff6b5e;
  --b11-red-glow:   rgba(179,36,36,0.35);

  --b11-bg:   #080808;
  --b11-bg-2: #0c0c0e;
  --b11-bg-3: #0f0f11;
  --b11-bg-4: #121214;

  --b11-surface:   rgba(255,255,255,0.04);
  --b11-surface-2: rgba(255,255,255,0.065);

  --b11-border:     rgba(255,255,255,0.07);
  --b11-border-2:   rgba(255,255,255,0.11);
  --b11-border-3:   rgba(255,255,255,0.16);
  --b11-border-red: rgba(255,120,110,0.35);

  --b11-text:   #f2f2f2;
  --b11-text-2: #a8a8a8;
  --b11-text-3: #878787;
  --b11-text-4: #787878;

  --b11-r-sm:   8px;
  --b11-r-md:   12px;
  --b11-r-lg:   16px;
  --b11-r-xl:   20px;
  --b11-r-pill: 999px;

  --b11-ease-out: cubic-bezier(0.16,1,0.3,1);
  --b11-dur-fast: 150ms;
  --b11-dur-base: 220ms;
  --b11-dur-slow: 350ms;

  --b11-font-display: "Barlow Condensed", sans-serif;
  --b11-font-body:    "Barlow", sans-serif;
  --b11-font-mono:    "Geist Mono", ui-monospace, monospace;
}

/* --------------------------------------------------------------------------
   1. Typographic guarantee
   Every Barlow Condensed display heading shares one tracking token.
   -------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6,
.kadence-advanced-heading-wrap h1,
.kadence-advanced-heading-wrap h2,
.kadence-advanced-heading-wrap h3,
.kadence-advanced-heading-wrap h4 {
  letter-spacing: -0.01em;
}

/* --------------------------------------------------------------------------
   2. Mono label tiers - exactly three trackings, nothing else
   -------------------------------------------------------------------------- */

.b11-mono,
.b11-head,
.b11-chip {
  font-family: var(--b11-font-mono);
  font-weight: 500;
  font-size: 11px;
  text-transform: uppercase;
  display: inline-block;
}

.b11-mono {
  letter-spacing: 0.14em;
  color: var(--b11-red-light);
}

.b11-head {
  letter-spacing: 0.14em;
  color: var(--b11-text-2);
}

.b11-chip {
  letter-spacing: 0.1em;
  color: var(--b11-text-3);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--b11-r-pill);
  padding: 4px 10px;
}

.b11-chip-red {
  border-color: rgba(255,120,110,0.3);
  color: var(--b11-red-light);
}

.b11-tag {
  font-family: var(--b11-font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  border: 1px solid rgba(255,120,110,0.3);
  border-radius: var(--b11-r-pill);
  padding: 5px 14px;
  display: inline-block;
}

.b11-badge {
  font-family: var(--b11-font-mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--b11-red);
  color: #fff;
  border-radius: var(--b11-r-pill);
  padding: 4px 12px;
  display: inline-block;
}

/* --------------------------------------------------------------------------
   3. Hero background - standard on every interior page hero.
   Apply both classes to the row. Inner content is lifted to z-index 1.
   -------------------------------------------------------------------------- */

.b11-glow,
.b11-grid-bg {
  position: relative;
  overflow: hidden;
}

.b11-glow > *,
.b11-grid-bg > * {
  position: relative;
  z-index: 1;
}

.b11-glow::before {
  content: "";
  position: absolute;
  width: 900px;
  height: 400px;
  top: -160px;
  left: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(179,36,36,0.22), transparent 65%);
  filter: blur(22px);
  pointer-events: none;
  z-index: 0;
}

.b11-grid-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(ellipse 80% 62% at 50% 0%, #000 38%, transparent 100%);
          mask-image: radial-gradient(ellipse 80% 62% at 50% 0%, #000 38%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* --------------------------------------------------------------------------
   4. Gradient accent word
   -------------------------------------------------------------------------- */

.b11-gradient-text {
  background: linear-gradient(90deg, var(--b11-red-bright), var(--b11-red));
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* --------------------------------------------------------------------------
   5. Card shimmer on hover
   -------------------------------------------------------------------------- */

.b11-card {
  position: relative;
  overflow: hidden;
  transition: border-color var(--b11-dur-slow) var(--b11-ease-out),
              background var(--b11-dur-slow) var(--b11-ease-out);
}

.b11-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.04) 50%, transparent 60%);
  transform: translateX(-100%);
  transition: transform 0.6s var(--b11-ease-out);
  pointer-events: none;
}

.b11-card:hover::after {
  transform: translateX(100%);
}

/* --------------------------------------------------------------------------
   6. Scroll reveal
   Hidden only once JS confirms it is running, so content stays visible
   if the script never loads.
   -------------------------------------------------------------------------- */

.b11-js .reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.6s var(--b11-ease-out),
              transform 0.6s var(--b11-ease-out);
}

.b11-js .reveal.in {
  opacity: 1;
  transform: none;
}

.d1 { transition-delay: 0.08s; }
.d2 { transition-delay: 0.16s; }
.d3 { transition-delay: 0.24s; }
.d4 { transition-delay: 0.32s; }

/* --------------------------------------------------------------------------
   7. Badge ring pulse - membership featured card
   -------------------------------------------------------------------------- */

@keyframes b11BadgeRing {
  0%, 100% { box-shadow: 0 0 0 0 rgba(179,36,36,0.5); }
  50%      { box-shadow: 0 0 0 6px rgba(179,36,36,0); }
}

.b11-badge-ring { animation: b11BadgeRing 2s infinite; }

/* --------------------------------------------------------------------------
   8. WhatsApp floating action button - one implementation, all pages
   -------------------------------------------------------------------------- */

.wa-fab {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 500;
  width: 58px;
  height: 58px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,0.45), 0 2px 8px rgba(0,0,0,0.5);
  cursor: pointer;
  text-decoration: none;
  animation: b11FabPop 0.5s 2s var(--b11-ease-out) both;
  transition: transform var(--b11-dur-base) var(--b11-ease-out),
              box-shadow var(--b11-dur-base);
}

.wa-fab:hover {
  transform: scale(1.12);
  box-shadow: 0 6px 32px rgba(37,211,102,0.65), 0 4px 16px rgba(0,0,0,0.6);
}

.wa-fab:focus-visible {
  outline: 2px solid #25D366;
  outline-offset: 4px;
}

.wa-fab svg { width: 28px; height: 28px; fill: #fff; }

.wa-fab-tip {
  position: absolute;
  right: calc(100% + 14px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--b11-bg-3);
  border: 1px solid var(--b11-border-2);
  color: var(--b11-text);
  font: 600 13px var(--b11-font-body);
  padding: 7px 13px;
  border-radius: var(--b11-r-sm);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--b11-dur-fast);
}

.wa-fab:hover .wa-fab-tip { opacity: 1; }

@keyframes b11FabPop {
  from { transform: scale(0); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

@media (max-width: 480px) {
  .wa-fab { bottom: 20px; right: 16px; width: 52px; height: 52px; }
  .wa-fab-tip { display: none; }
}

/* --------------------------------------------------------------------------
   9. Utilities
   -------------------------------------------------------------------------- */

.vh {
  position: absolute !important;
  width: 1px;
  height: 1px;
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}

.b11-divider {
  height: 1px;
  background: rgba(255,255,255,0.06);
  border: 0;
}

/* --------------------------------------------------------------------------
   10. Reduced motion - every animation above collapses to static
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .b11-js .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .b11-card::after { display: none; }
  .wa-fab { animation: none; }
  .wa-fab:hover { transform: none; }
  .b11-badge-ring { animation: none; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------------------------
   11. Header - glass bar, mark plus two-tone wordmark
   -------------------------------------------------------------------------- */

#masthead .site-main-header-wrap .site-header-row-container-inner {
  background: rgba(8,8,8,0.88);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
          backdrop-filter: blur(24px) saturate(1.6);
  border-bottom: 1px solid var(--b11-border);
  transition: background var(--b11-dur-base), border-color var(--b11-dur-base);
}

#masthead.b11-scrolled .site-main-header-wrap .site-header-row-container-inner {
  background: rgba(8,8,8,0.96);
  border-bottom-color: var(--b11-border-2);
}

.b11-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  text-decoration: none;
}

.b11-logo img {
  width: 34px;
  height: 34px;
  display: block;
}

.b11-logo-wordmark {
  font-family: var(--b11-font-display);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  line-height: 1;
  white-space: nowrap;
}

.b11-logo-wordmark span {
  color: var(--b11-text-3);
  font-weight: 600;
}

.header-html .header-html-inner { line-height: 1; }

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */

.b11-foot-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  margin-bottom: 16px;
}

.b11-foot-logo img { width: 32px; height: 32px; display: block; }

.b11-foot-logo-name {
  font-family: var(--b11-font-display);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  line-height: 1;
}

.b11-foot-logo-name span {
  color: var(--b11-text-3);
  font-weight: 600;
}

.b11-foot-tagline {
  font-size: 14px;
  line-height: 1.6;
  color: var(--b11-text-3);
  margin: 0 0 16px;
}

.b11-foot-address {
  font-family: var(--b11-font-mono);
  font-size: 13px;
  line-height: 1.7;
  color: var(--b11-text-3);
  margin: 0 0 16px;
}

.b11-foot-contact {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.b11-foot-contact a {
  font-family: var(--b11-font-mono);
  font-size: 13px;
  color: var(--b11-text-3);
  text-decoration: none;
  transition: color var(--b11-dur-fast);
}

.b11-foot-contact a:hover { color: var(--b11-text); }

.b11-foot-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.b11-foot-head {
  margin-bottom: 12px;
  /* The four footer column headings run in the accent, not the muted grey. */
  color: var(--b11-red-light);
}

.b11-foot-nav a {
  font-size: 14px;
  font-weight: 500;
  color: var(--b11-text-3);
  text-decoration: none;
  min-height: 28px;
  display: flex;
  align-items: center;
  transition: color var(--b11-dur-fast);
}

.b11-foot-nav a:hover { color: var(--b11-text); }

.b11-foot-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-family: var(--b11-font-mono);
  font-size: 13px;
  color: var(--b11-text-4);
}

.b11-foot-bar b { font-weight: 600; color: var(--b11-text-3); }

@media (max-width: 767px) {
  .b11-foot-bar { flex-direction: column; align-items: flex-start; }
}
/* --------------------------------------------------------------------------
   13. Homepage hero
   -------------------------------------------------------------------------- */

.b11-hero { border-bottom: 1px solid var(--b11-border); }

.b11-hero .kt-row-column-wrap { text-align: center; }

/* The page H1 lives inside the badge pill and must read as badge text,
   not as a heading. */
.b11-hero-badge {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--b11-border-2);
  background: rgba(255,255,255,0.03);
  border-radius: var(--b11-r-pill);
  padding: 7px 16px;
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  line-height: 1.4 !important;
  text-transform: uppercase;
  color: #b0b0b0 !important;
  margin: 0 auto !important;
}

.b11-hero-badge::before,
.b11-hero-badge::after {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e5484d;
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(229,72,77,0.7);
  animation: b11DotBlink 2.4s ease-in-out infinite;
}

@keyframes b11DotBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.35; }
}

/* Brand slogan - display text, not a heading. */
.b11-hero-slogan {
  font-family: var(--b11-font-display) !important;
  font-size: clamp(54px, 9vw, 108px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.01em !important;
  line-height: 0.95 !important;
  text-transform: uppercase;
  color: var(--b11-text) !important;
  max-width: 960px;
  margin: 30px auto 0 !important;
}

.b11-hero-slogan em {
  font-style: italic;
  background: linear-gradient(125deg, #ff7060 0%, #b32424 70%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

.b11-hero-sub {
  max-width: 580px;
  font-size: clamp(15px, 1.5vw, 18px) !important;
  line-height: 1.7 !important;
  color: var(--b11-text-2) !important;
  margin: 22px auto 0 !important;
}

.b11-hero-ctas { margin-top: 34px; }

.b11-hero-media {
  margin-top: clamp(52px, 6vw, 80px);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-xl);
  overflow: hidden;
  background: linear-gradient(160deg, #101012, #0a0a0c);
  min-height: clamp(240px, 34vw, 420px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.04),
    0 32px 100px rgba(0,0,0,0.8),
    0 0 80px rgba(179,36,36,0.06);
}

.b11-hero-media img {
  width: 72px;
  height: 72px;
  opacity: 0.5;
}

.b11-hero-media .b11-ph-label {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}

@media (prefers-reduced-motion: reduce) {
  .b11-hero-badge::before,
  .b11-hero-badge::after { animation: none; }
}
/* --------------------------------------------------------------------------
   14. Kadence Blocks buttons
   Kadence Blocks keeps its own button defaults, separate from the theme's
   button settings, so the block buttons are restyled here to the one
   button spec: pill, red, resting glow that grows on hover.
   -------------------------------------------------------------------------- */

.kb-button.kt-button {
  border-radius: var(--b11-r-pill);
  font-family: var(--b11-font-body);
  font-size: 15px;
  font-weight: 600;
  padding: 13px 26px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  transition: background var(--b11-dur-base) var(--b11-ease-out),
              box-shadow var(--b11-dur-base) var(--b11-ease-out),
              transform var(--b11-dur-fast) var(--b11-ease-out),
              border-color var(--b11-dur-base) var(--b11-ease-out),
              color var(--b11-dur-base);
}

.kb-button.kt-button.kt-btn-size-large {
  font-size: 16px;
  padding: 15px 32px;
  min-height: 54px;
}

.kb-button.kt-button:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* Primary - global fill */
.kb-button.kt-button.kb-btn-global-fill {
  background: var(--b11-red);
  color: #fff;
  border: 0;
  box-shadow: 0 0 28px var(--b11-red-glow);
}

.kb-button.kt-button.kb-btn-global-fill:hover {
  background: var(--b11-red-hover);
  color: #fff;
  box-shadow: 0 0 48px rgba(179,36,36,0.6);
  transform: translateY(-2px);
}

.kb-button.kt-button.kb-btn-global-fill:active { transform: translateY(0); }

/* Secondary - global outline */
.kb-button.kt-button.kb-btn-global-outline {
  background: var(--b11-surface);
  color: var(--b11-text);
  border: 1px solid var(--b11-border-2);
  box-shadow: none;
}

.kb-button.kt-button.kb-btn-global-outline:hover {
  background: var(--b11-surface-2);
  border-color: var(--b11-border-3);
  color: #fff;
  transform: translateY(-2px);
}

.kb-button.kt-button.kb-btn-global-outline:active { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .kb-button.kt-button:hover { transform: none; }
}
/* Kadence Blocks ships .kb-button.kb-btn-global-fill{border-radius:3px} in a
   stylesheet that loads after this file, so the pill radius is restated at a
   higher specificity rather than with !important. */
.kb-button.kt-button.kb-btn-global-fill,
.kb-button.kt-button.kb-btn-global-outline,
.kb-button.kt-button.kb-btn-global-inherit {
  border-radius: var(--b11-r-pill);
}
/* --------------------------------------------------------------------------
   15. Homepage sections
   -------------------------------------------------------------------------- */

/* Accent bar above section eyebrows */
.b11-accent-bar {
  width: 40px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--b11-red), var(--b11-red-light));
  margin-bottom: 14px;
}

/* --- Marquee ticker --- */
.b11-marquee {
  overflow: hidden;
  border-top: 1px solid var(--b11-border);
  border-bottom: 1px solid var(--b11-border);
  background: var(--b11-bg-2);
  padding: 14px 0;
  white-space: nowrap;
}

.b11-marquee-track {
  display: inline-flex;
  align-items: center;
  gap: 0;
  animation: b11Marquee 46s linear infinite;
  will-change: transform;
}

.b11-marquee-item {
  display: inline-flex;
  align-items: center;
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}

.b11-marquee-item.is-hot { color: var(--b11-red-light); }

.b11-marquee-item::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.5;
  margin: 0 26px;
}

@keyframes b11Marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .b11-marquee-track { animation: none; }
}

/* --- Stats strip --- */
.b11-stat-value {
  font-family: var(--b11-font-display) !important;
  font-size: 34px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  color: var(--b11-text) !important;
  margin: 0 0 6px !important;
}

.b11-stat-label {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--b11-text-4) !important;
  margin: 0 !important;
}

/* --- Placeholder media panels (arena, trainer, hero) --- */
.b11-ph {
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-md);
  background: linear-gradient(160deg, #101012, #0a0a0c);
  min-height: 180px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--b11-text-4) !important;
  padding: 20px !important;
  margin: 0 0 20px !important;
}

.b11-ph-sm { min-height: 132px; }

/* --- Arena cards --- */
.b11-arena-title {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.b11-arena-title::after {
  content: "\2192";
  color: var(--b11-red-light);
  font-size: 20px;
  transition: transform var(--b11-dur-base) var(--b11-ease-out);
}

.b11-card:hover .b11-arena-title::after { transform: translateX(5px); }

/* --- Tag rows (arena tags, coaching pills) --- */
.b11-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

/* --- Philosophy principles --- */
.b11-principle-num {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  color: var(--b11-red-light) !important;
  margin: 0 0 8px !important;
}

/* --- Testimonial cards --- */
.b11-tquote {
  font-family: var(--b11-font-display) !important;
  font-size: 56px !important;
  line-height: 0.7 !important;
  color: rgba(179,36,36,0.45) !important;
  margin: 0 0 6px !important;
}

.b11-tmeta {
  font-size: 13px !important;
  color: var(--b11-text-4) !important;
  margin: 14px 0 0 !important;
}

.b11-tmeta strong { color: var(--b11-text-2); font-weight: 600; }

/* Placeholder testimonials are unverified sample copy, flagged until real
   member quotes are collected. */
.b11-placeholder-note {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--b11-text-4) !important;
  border: 1px dashed rgba(255,255,255,0.14);
  border-radius: var(--b11-r-pill);
  padding: 4px 12px !important;
  display: inline-block !important;
  margin: 0 0 14px !important;
}

/* --- Pricing plans --- */
.b11-plan-name {
  font-family: var(--b11-font-display) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--b11-text) !important;
  margin: 0 0 10px !important;
}

.b11-plan-price {
  font-family: var(--b11-font-display) !important;
  font-size: 44px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  color: var(--b11-text) !important;
  margin: 0 0 12px !important;
}

.b11-plan-price small {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--b11-text-4);
}

/* --- CTA --- */
.b11-cta-h2 {
  font-size: clamp(34px, 5vw, 56px) !important;
  line-height: 1.02 !important;
}

.b11-cta-h2 em {
  font-style: italic;
  background: linear-gradient(125deg, #ff7060, #b32424);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
/* Plan feature rows - checkmark drawn in CSS so no icon-set name is hardcoded */
.b11-feat {
  position: relative;
  padding-left: 26px !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--b11-text-3) !important;
  margin: 0 0 10px !important;
}

.b11-feat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid rgba(179,36,36,0.5);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 8l2 2 4-4' fill='none' stroke='%23d95a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* Inline red text link with arrow */
.b11-link-red a,
a.b11-link-red {
  color: var(--b11-red-light);
  font-weight: 600;
  text-decoration: none;
}

.b11-link-red a:hover,
a.b11-link-red:hover { color: var(--b11-red-bright); }
/* --------------------------------------------------------------------------
   16. Transparent header pages
   On pages using Kadence's transparent header the bar sits over the hero, so
   the glass background is held back until the page is scrolled. .b11-scrolled
   is toggled on #masthead at scrollY > 24 by bravo11.js.
   -------------------------------------------------------------------------- */

body.transparent-header #masthead:not(.b11-scrolled) .site-main-header-wrap .site-header-row-container-inner {
  background: transparent;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
  border-bottom-color: transparent;
}

/* The hero carries its own top padding and must sit flush under the overlaying
   header, so the theme's content padding is removed on these pages. */
body.transparent-header .entry-content-wrap,
body.transparent-header .content-wrap,
body.transparent-header .site-main {
  padding-top: 0;
  margin-top: 0;
}

/* Full-bleed rows must reach the viewport edge on a fullwidth page. */
body.content-width-fullwidth .entry-content-wrap,
body.content-width-fullwidth .entry-content.single-content {
  padding-left: 0;
  padding-right: 0;
}
/* --------------------------------------------------------------------------
   17. Interior page patterns
   -------------------------------------------------------------------------- */

/* Long-form body copy inside content sections */
.b11-prose {
  font-size: 17px !important;
  line-height: 1.75 !important;
  color: var(--b11-text-2) !important;
  max-width: 760px;
  margin: 0 0 18px !important;
}

.b11-prose strong { color: var(--b11-text); font-weight: 600; }
.b11-prose em { color: var(--b11-text); font-style: italic; }

/* Numbered pillar tiles */
.b11-pillar {
  display: flex !important;
  align-items: baseline;
  gap: 10px;
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-md);
  background: var(--b11-bg-4);
  padding: 14px 16px !important;
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--b11-text-2) !important;
  transition: border-color var(--b11-dur-base) var(--b11-ease-out);
}

.b11-pillar:hover { border-color: var(--b11-border-red); }

.b11-pillar b {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--b11-red-light);
}

/* Pull quote */
.b11-quote {
  font-family: var(--b11-font-display) !important;
  font-size: clamp(26px, 3.4vw, 40px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
  max-width: 900px;
  margin: 0 auto !important;
}

.b11-quote span {
  background: linear-gradient(125deg, #ff7060, #b32424);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  font-style: italic;
}

.b11-quote-cite {
  font-family: var(--b11-font-mono) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-4) !important;
  max-width: 640px;
  margin: 22px auto 0 !important;
}

/* Big stat numbers on interior pages */
.b11-stat-n {
  font-family: var(--b11-font-display) !important;
  font-size: 56px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
  margin: 0 0 8px !important;
}

.b11-stat-n sup {
  font-size: 20px;
  vertical-align: super;
  font-weight: 700;
}

/* Bordered CTA box */
.b11-cta-box {
  background: linear-gradient(135deg, #161618, #121214);
  border: 1px solid rgba(255,120,110,0.25);
  border-radius: var(--b11-r-xl);
}

.b11-cta-box-h2 {
  font-size: 40px !important;
  line-height: 1.1 !important;
}

@media (max-width: 767px) {
  .b11-cta-box-h2 { font-size: 26px !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .b11-cta-box-h2 { font-size: 32px !important; }
}
/* --------------------------------------------------------------------------
   18. Comparison table
   -------------------------------------------------------------------------- */

.b11-table { margin: 0; }

.b11-table table {
  width: 100%;
  border-collapse: collapse;
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  overflow: hidden;
}

.b11-table th,
.b11-table td {
  text-align: left;
  padding: 16px 18px;
  border: 0;
  border-bottom: 1px solid var(--b11-border);
  font-size: 15px;
  line-height: 1.55;
  color: var(--b11-text-3);
  vertical-align: top;
}

.b11-table thead th {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-2);
  background: rgba(255,255,255,0.03);
}

.b11-table tbody th,
.b11-table tbody td:first-child {
  color: var(--b11-text);
  font-weight: 600;
}

.b11-table tbody tr:last-child th,
.b11-table tbody tr:last-child td { border-bottom: 0; }

/* The framework column is the one being argued for */
.b11-table td:last-child { color: var(--b11-text-2); }

.b11-table figcaption {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  margin-top: 12px;
  text-align: left;
}

/* Wide tables scroll inside their own container rather than the page */
.b11-table { overflow-x: auto; }
.b11-table table { min-width: 560px; }

/* Chain-link steps */
.b11-chain-num {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  color: var(--b11-red-light) !important;
  margin: 0 0 8px !important;
}
/* --------------------------------------------------------------------------
   19. Category filter bars
   -------------------------------------------------------------------------- */

.b11-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;
}

.b11-filters button {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--b11-text-3);
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-pill);
  padding: 9px 17px;
  min-height: 38px;
  cursor: pointer;
  transition: color var(--b11-dur-fast),
              border-color var(--b11-dur-fast),
              background var(--b11-dur-fast);
}

.b11-filters button:hover {
  color: var(--b11-text);
  border-color: var(--b11-border-3);
}

.b11-filters button[aria-pressed="true"] {
  background: var(--b11-red);
  border-color: var(--b11-red);
  color: #fff;
}

.b11-filters button:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* Hidden filter items must not keep their grid slot */
[data-cat][hidden] { display: none !important; }

.b11-empty {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  padding: 40px 0;
  text-align: center;
}
[class*="b11-cat-"][hidden] { display: none !important; }

/* Gallery slots keep a 4:3 frame so the grid reads as photography even while
   every slot is still a placeholder. */
.b11-ph-gal {
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
}
/* --------------------------------------------------------------------------
   20. FAQ
   -------------------------------------------------------------------------- */

.b11-faq-search { max-width: 560px; }

.b11-faq-search input[type="search"] {
  width: 100%;
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-sm);
  padding: 13px 16px;
  font-family: var(--b11-font-body);
  font-size: 15px;
  color: var(--b11-text);
  transition: border-color var(--b11-dur-fast);
}

.b11-faq-search input[type="search"]::placeholder { color: var(--b11-text-4); }

.b11-faq-search input[type="search"]:focus {
  outline: none;
  border-color: var(--b11-border-red);
}

.b11-faq-search input[type="search"]:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 2px;
}

/* Kadence accordion restyled to the card spec */
.b11-faq .kt-accordion-pane { margin-bottom: 10px; }

.b11-faq .kt-blocks-accordion-header {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-md);
  color: var(--b11-text-2);
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-weight: 600;
  padding: 16px 18px;
  transition: border-color var(--b11-dur-base), color var(--b11-dur-base);
}

.b11-faq .kt-blocks-accordion-header:hover {
  border-color: var(--b11-border-red);
  color: var(--b11-text);
}

.b11-faq .kt-accordion-pane-active .kt-blocks-accordion-header {
  color: var(--b11-text);
  border-color: var(--b11-border-2);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.b11-faq .kt-accordion-panel-inner {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-top: 0;
  border-bottom-left-radius: var(--b11-r-md);
  border-bottom-right-radius: var(--b11-r-md);
  padding: 4px 18px 18px;
}

.kt-accordion-pane[hidden] { display: none !important; }
.b11-faq-cat[hidden] { display: none !important; }
/* --------------------------------------------------------------------------
   21. Membership pricing calculator
   -------------------------------------------------------------------------- */

.b11-calc-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px;
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  margin-bottom: 28px;
}

.b11-duration {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.b11-duration button {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-3);
  background: transparent;
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-pill);
  padding: 8px 16px;
  min-height: 36px;
  cursor: pointer;
  transition: color var(--b11-dur-fast), border-color var(--b11-dur-fast), background var(--b11-dur-fast);
}

.b11-duration button:hover { color: var(--b11-text); border-color: var(--b11-border-3); }

.b11-duration button[aria-checked="true"] {
  background: var(--b11-red);
  border-color: var(--b11-red);
  color: #fff;
}

.b11-duration button:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

.b11-calc-label {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-2);
  display: block;
  margin-bottom: 10px;
}

/* Add-ons switch */
.b11-switch {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: var(--b11-text-2);
}

.b11-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }

.b11-switch .b11-track {
  width: 44px;
  height: 24px;
  border-radius: var(--b11-r-pill);
  background: rgba(255,255,255,0.10);
  border: 1px solid var(--b11-border-2);
  position: relative;
  transition: background var(--b11-dur-base), border-color var(--b11-dur-base);
  flex-shrink: 0;
}

.b11-switch .b11-track::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--b11-text-3);
  transition: transform var(--b11-dur-base) var(--b11-ease-out), background var(--b11-dur-base);
}

.b11-switch input:checked + .b11-track {
  background: var(--b11-red);
  border-color: var(--b11-red);
}

.b11-switch input:checked + .b11-track::after {
  transform: translateX(20px);
  background: #fff;
}

.b11-switch input:focus-visible + .b11-track {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* Computed price display */
.b11-calc-price {
  font-family: var(--b11-font-display);
  font-size: 40px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  margin: 0 0 8px;
}

.b11-calc-eff {
  font-size: 13px;
  line-height: 1.5;
  color: var(--b11-text-4);
  margin: 0 0 4px;
}

.b11-calc-save {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  margin: 0 0 16px;
}

.b11-calc-save[hidden] { display: none; }

/* Add-on feature rows toggle between muted and included */
.b11-addon-feat {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--b11-text-4);
  margin-bottom: 8px;
  opacity: 0.5;
  transition: opacity var(--b11-dur-base), color var(--b11-dur-base);
}

.b11-addon-feat::before {
  content: "+";
  font-family: var(--b11-font-mono);
  color: var(--b11-text-4);
  flex-shrink: 0;
}

.b11-addon-feat.is-on {
  opacity: 1;
  color: var(--b11-text-3);
}

.b11-addon-feat.is-on::before {
  content: "\2713";
  color: var(--b11-red-light);
}

/* Price list rows (add-ons, hydro menu) */
.b11-rows { list-style: none; margin: 0; padding: 0; }

.b11-rows li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid var(--b11-border);
}

.b11-rows li:last-child { border-bottom: 0; }

.b11-rows .b11-row-n {
  font-size: 15px;
  font-weight: 500;
  color: var(--b11-text-2);
}

.b11-rows .b11-row-n em {
  display: block;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-style: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  margin-top: 3px;
}

.b11-rows .b11-row-p {
  font-family: var(--b11-font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--b11-text);
  white-space: nowrap;
}

@media (max-width: 600px) {
  .b11-calc-controls { flex-direction: column; align-items: flex-start; }
}
.b11-calc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.b11-calc-plan {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  padding: 28px;
}

.b11-calc-plan .b11-plan-name { margin-bottom: 12px !important; }
/* --------------------------------------------------------------------------
   22. Contact page
   -------------------------------------------------------------------------- */

.b11-map {
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  overflow: hidden;
  background: var(--b11-bg-4);
  line-height: 0;
}

.b11-map iframe {
  width: 100%;
  height: 300px;
  border: 0;
  display: block;
  filter: grayscale(0.35) contrast(1.05);
}

/* Kadence form restyled to the input spec */
.b11-form .kadence-blocks-form-field input[type="text"],
.b11-form .kadence-blocks-form-field input[type="email"],
.b11-form .kadence-blocks-form-field input[type="tel"],
.b11-form .kadence-blocks-form-field textarea {
  width: 100%;
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-sm);
  padding: 12px 14px;
  font-family: var(--b11-font-body);
  font-size: 15px;
  color: var(--b11-text);
  transition: border-color var(--b11-dur-fast);
}

.b11-form .kadence-blocks-form-field input::placeholder,
.b11-form .kadence-blocks-form-field textarea::placeholder {
  color: var(--b11-text-4);
}

.b11-form .kadence-blocks-form-field input:focus,
.b11-form .kadence-blocks-form-field textarea:focus {
  outline: none;
  border-color: var(--b11-border-red);
}

.b11-form .kadence-blocks-form-field input:focus-visible,
.b11-form .kadence-blocks-form-field textarea:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 2px;
}

.b11-form .kadence-blocks-form-field label {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-2);
  display: block;
  margin-bottom: 8px;
}

.b11-form .kadence-blocks-form-field { margin-bottom: 16px; }

.b11-form .kb-forms-submit {
  border-radius: var(--b11-r-pill);
  font-family: var(--b11-font-body);
  font-size: 15px;
  font-weight: 600;
  padding: 13px 26px;
  min-height: 48px;
  box-shadow: 0 0 28px var(--b11-red-glow);
  transition: background var(--b11-dur-base), box-shadow var(--b11-dur-base), transform var(--b11-dur-fast);
}

.b11-form .kb-forms-submit:hover {
  box-shadow: 0 0 48px rgba(179,36,36,0.6);
  transform: translateY(-2px);
}

.b11-form .kadence-blocks-form-message {
  border-radius: var(--b11-r-sm);
  font-size: 15px;
  padding: 14px 16px;
}

@media (prefers-reduced-motion: reduce) {
  .b11-form .kb-forms-submit:hover { transform: none; }
}
/* --------------------------------------------------------------------------
   23. Article prose
   -------------------------------------------------------------------------- */

.single-post .entry-content p,
.single-post .entry-content li {
  font-size: 17px;
  line-height: 1.8;
  color: var(--b11-text-2);
}

.single-post .entry-content > p,
.single-post .entry-content > ul,
.single-post .entry-content > ol,
.single-post .entry-content > h2,
.single-post .entry-content > h3,
.single-post .entry-content > figure {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.single-post .entry-content h2 {
  font-size: 35px;
  line-height: 1.15;
  color: var(--b11-text);
  margin: 48px 0 16px;
}

.single-post .entry-content h3 {
  font-size: 24px;
  line-height: 1.25;
  color: var(--b11-text);
  margin: 34px 0 12px;
}

.b11-lead {
  display: block;
  font-size: 20px;
  line-height: 1.65;
  color: var(--b11-text);
  font-weight: 400;
}

.single-post .entry-content ul { padding-left: 22px; }
.single-post .entry-content li { margin-bottom: 8px; }
.single-post .entry-content li::marker { color: var(--b11-red-light); }
.single-post .entry-content strong { color: var(--b11-text); font-weight: 600; }

.single-post .entry-content a { color: var(--b11-red-light); }
.single-post .entry-content a:hover { color: var(--b11-red-bright); }

/* Table of contents */
.b11-toc {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  padding: 22px 24px;
  max-width: 760px;
  margin: 0 auto 36px;
}

.b11-toc .kb-table-of-content-title {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-2);
}

.b11-toc a {
  color: var(--b11-text-3);
  font-size: 15px;
  text-decoration: none;
}

.b11-toc a:hover { color: var(--b11-text); }

/* Post cards on the blog index */
.b11-posts .entry {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  overflow: hidden;
  transition: border-color var(--b11-dur-base);
}

.b11-posts .entry:hover { border-color: var(--b11-border-red); }

.b11-posts .entry-title { font-size: 22px; line-height: 1.2; }
.b11-posts .entry-title a { color: var(--b11-text); text-decoration: none; }
.b11-posts .entry-content-wrap { padding: 24px; }
.b11-posts .entry-meta,
.b11-posts .entry-taxonomies {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}
.b11-posts .entry-taxonomies a { color: var(--b11-red-light); text-decoration: none; }
.b11-posts .entry-summary p { font-size: 15px; line-height: 1.6; color: var(--b11-text-3); }

/* Callout */
.b11-callout { max-width: 760px; margin-left: auto; margin-right: auto; }
/* --------------------------------------------------------------------------
   24. Shop / WooCommerce loop
   -------------------------------------------------------------------------- */

.b11-catlink {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-3);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-pill);
  padding: 8px 16px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: color var(--b11-dur-fast), border-color var(--b11-dur-fast), background var(--b11-dur-fast);
}

.b11-catlink:hover {
  color: var(--b11-text);
  border-color: var(--b11-border-3);
  background: var(--b11-surface);
}

.woocommerce ul.products li.product {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  padding: 20px;
  transition: border-color var(--b11-dur-base);
}

.woocommerce ul.products li.product:hover { border-color: var(--b11-border-red); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--b11-text);
}

.woocommerce ul.products li.product .price {
  font-family: var(--b11-font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--b11-text);
}

.woocommerce ul.products li.product .button {
  border-radius: var(--b11-r-pill);
  background: var(--b11-surface);
  border: 1px solid var(--b11-border-2);
  color: var(--b11-text);
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 20px;
  transition: background var(--b11-dur-base), border-color var(--b11-dur-base), color var(--b11-dur-base);
}

.woocommerce ul.products li.product .button:hover {
  background: var(--b11-red);
  border-color: var(--b11-red);
  color: #fff;
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  background: var(--b11-red);
  color: #fff;
  border-radius: var(--b11-r-pill);
  font-family: var(--b11-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}

/* Product images have no photography yet - keep the frame on-palette */
.woocommerce ul.products li.product a img {
  border-radius: var(--b11-r-md);
  background: linear-gradient(160deg, #101012, #0a0a0c);
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
/* ==========================================================================
   25. Corrections measured against the shipped HTML
   Values below were verified by diffing computed styles between the static
   build and this site. Where the build guide and the HTML disagreed, the
   HTML wins - it is the approved design.
   ========================================================================== */

/* --- Arena / feature tags: Barlow 12px, not a mono chip --- */
.b11-tags .b11-chip {
  font-family: var(--b11-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: #c0c0c0;
  border-color: var(--b11-border-2);
  padding: 4px 11px;
}

/* --- Homepage stats strip --- */
.b11-stat-value { font-size: 36px !important; line-height: 1 !important; }
.b11-stat-label { font-size: 13px !important; color: var(--b11-text-3) !important; line-height: 1.5 !important; }

/* --- Pricing plan cards --- */
.b11-plan-name {
  font-family: var(--b11-font-display) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.6 !important;
  text-transform: uppercase;
  color: #b0b0b0 !important;
  margin: 0 0 10px !important;
}

.b11-plan-price {
  font-size: 52px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.b11-plan-price small {
  font-size: 15px;
  font-weight: 500;
  color: var(--b11-text-4);
}

/* --- Interior page stat numbers are red and smaller than I had them --- */
.b11-stat-n {
  font-size: 38px !important;
  line-height: 1 !important;
  color: var(--b11-red-light) !important;
}

/* --- Interior pull quote + citation --- */
.b11-quote {
  font-size: clamp(26px, 3.2vw, 38px) !important;
  line-height: 1.26 !important;
}

.b11-quote-cite {
  font-family: var(--b11-font-body) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-3) !important;
  letter-spacing: normal !important;
  text-transform: none;
}

/* --- Interior CTA box is neutral, not red-tinted --- */
.b11-cta-box {
  background: var(--b11-bg-4) !important;
  border-color: var(--b11-border) !important;
}

/* --- Numbered pillar tiles --- */
.b11-pillar { padding: 18px 20px !important; }

/* --- Buttons: the red glow belongs to the homepage hero and CTA only.
       Interior primary buttons are flat. --- */
.kb-button.kt-button.kb-btn-global-fill { box-shadow: none; }

.b11-hero-ctas .kb-button.kt-button.kb-btn-global-fill,
.b11-cta-box .kb-button.kt-button.kb-btn-global-fill {
  box-shadow: 0 0 28px var(--b11-red-glow);
}

.b11-hero-ctas .kb-button.kt-button.kb-btn-global-fill:hover,
.b11-cta-box .kb-button.kt-button.kb-btn-global-fill:hover {
  box-shadow: 0 0 48px rgba(179,36,36,0.6);
}

.kb-button.kt-button { min-height: 46px; }
.kb-button.kt-button.kt-btn-size-large { min-height: 54px; }

/* Secondary buttons are transparent with a brighter hairline */
.kb-button.kt-button.kb-btn-global-outline {
  background: transparent;
  border-color: var(--b11-border-3);
  color: var(--b11-text-2);
}

.kb-button.kt-button.kb-btn-global-outline:hover {
  background: var(--b11-surface);
  color: var(--b11-text);
}

/* --- Interior hero: text column caps at 880px, not the full 1200 --- */
.b11-page-hero .kt-row-column-wrap { max-width: var(--b11-hero-mw, 880px) !important; }

.b11-page-hero.b11-hero-left .kt-row-column-wrap { max-width: 1200px !important; }

/* --- Hero tag pill --- */
.b11-tag {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.16em;
  border-color: rgba(255,120,110,0.28);
  padding: 6px 14px;
}

/* --- Arena card titles --- */
.b11-arena-title {
  font-size: 28px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

/* --- Cards use the 20px radius from the HTML --- */
.b11-card { border-radius: 20px; }

/* --- Homepage CTA headline is the flagship display size --- */
.b11-cta-h2 {
  font-size: clamp(34px, 5.7vw, 72px) !important;
  font-weight: 900 !important;
  line-height: 0.96 !important;
  text-transform: uppercase;
}

/* The interior CTA-box headline stays at the smaller, sentence-case size */
.b11-cta-box-h2 {
  font-size: 40px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  text-transform: none;
}

@media (max-width: 767px) { .b11-cta-box-h2 { font-size: 26px !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .b11-cta-box-h2 { font-size: 32px !important; } }
/* Kadence prints per-block CSS after this stylesheet, so the card surface
   values are restated at weight. Everything else stays editable in the builder. */
.wp-block-kadence-column.b11-card { border-radius: var(--b11-r-lg) !important; }

/* Pricing plan surfaces sit a shade darker than the standard card */
.b11-plan-card.wp-block-kadence-column {
  padding: 32px 28px 28px;
}
/* Display-font paragraphs are not headings, so the global h1-h6 tracking rule
   does not reach them. Same -0.01em token. */
.b11-stat-value,
.b11-stat-n,
.b11-plan-price,
.b11-hero-slogan,
.b11-quote,
.b11-tquote {
  letter-spacing: -0.01em !important;
}
/* ==========================================================================
   26. Structural corrections
   Kadence paints a column's surface on its inner .kt-inside-inner-col, not on
   the element carrying the custom class, so the card hairline and radius have
   to be applied there. The block's own border attribute never rendered.
   ========================================================================== */

.b11-card > .kt-inside-inner-col {
  border: 1px solid var(--b11-border);
  border-radius: 20px;
  transition: border-color var(--b11-dur-slow) var(--b11-ease-out),
              background var(--b11-dur-slow) var(--b11-ease-out);
}

.b11-card:hover > .kt-inside-inner-col {
  border-color: var(--b11-border-red);
}

/* Featured cards keep the warmer surface and a red-leaning edge */
.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.25);
  background: linear-gradient(135deg, #161618, #121214);
}

/* Plan surfaces sit a shade darker than a standard card */
.b11-plan-card > .kt-inside-inner-col {
  padding: 32px 28px 28px;
}

/* The shimmer sweep must clip to the painted surface */
.b11-card { overflow: visible; }
.b11-card > .kt-inside-inner-col { position: relative; overflow: hidden; }

.b11-card::after { display: none; }

.b11-card > .kt-inside-inner-col::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.04) 50%, transparent 60%);
  transform: translateX(-100%);
  transition: transform 0.6s var(--b11-ease-out);
  pointer-events: none;
}

.b11-card:hover > .kt-inside-inner-col::after { transform: translateX(100%); }

@media (prefers-reduced-motion: reduce) {
  .b11-card > .kt-inside-inner-col::after { display: none; }
}

/* --- Buttons ---
   Kadence Blocks ships .kb-button:not(.kb-btn-global-inherit){font-size:1.125rem}
   in a stylesheet that loads after this file, at equal specificity, so the
   button scale is restated here with one extra class. */
.entry-content .kb-button.kt-button,
.kb-button.kt-button.kb-btn-global-fill,
.kb-button.kt-button.kb-btn-global-outline,
.kb-button.kt-button.kb-btn-global-inherit {
  font-size: 15px;
  padding: 13px 26px;
  line-height: 1.6;
}

.entry-content .kb-button.kt-button.kt-btn-size-large,
.kb-button.kt-button.kt-btn-size-large.kb-btn-global-fill,
.kb-button.kt-button.kt-btn-size-large.kb-btn-global-outline {
  font-size: 16px;
  padding: 15px 32px;
}
/* Measured card surface from the static build: #0f0f11 ground, 20px radius,
   1px rgba(255,255,255,0.07) hairline, 28px padding. Kadence's per-block CSS
   loads after this file, so these are restated at weight. */
.b11-card > .kt-inside-inner-col {
  background: var(--b11-bg-4) !important;
  border-radius: var(--b11-r-lg) !important;
  padding: 28px !important;
}

.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.25) !important;
}

.b11-plan-card > .kt-inside-inner-col {
  padding: 32px 28px 28px !important;
}

@media (max-width: 767px) {
  .b11-card > .kt-inside-inner-col { padding: 24px 22px !important; }
}
/* ==========================================================================
   27. Navigation dropdowns and mega menu
   Values measured from the static build's .nav-menu panel.
   ========================================================================== */

#primary-menu .sub-menu {
  background: rgba(13,13,15,0.97);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
          backdrop-filter: blur(24px) saturate(1.6);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-md);
  box-shadow: 0 18px 50px rgba(0,0,0,0.65);
  padding: 6px;
  min-width: 280px;
}

#primary-menu .sub-menu li { margin: 0; }

#primary-menu .sub-menu a {
  display: block;
  padding: 10px 13px;
  border-radius: var(--b11-r-sm);
  transition: background var(--b11-dur-fast), color var(--b11-dur-fast);
}

#primary-menu .sub-menu a:hover,
#primary-menu .sub-menu a:focus-visible {
  background: rgba(255,255,255,0.06);
}

/* Two-line item: title over description */
#primary-menu .menu-label-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--b11-text-2);
}

#primary-menu .sub-menu a:hover .menu-label-content { color: var(--b11-text); }

#primary-menu .menu-label-description {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--b11-text-4);
}

/* Mega panel: two equal columns of two-line items */
#primary-menu .kadence-menu-mega-enabled > .sub-menu {
  padding: 10px;
}

#primary-menu .kadence-menu-mega-columns-2 > .sub-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  min-width: 560px;
}

/* Top-level nav items */
#primary-menu > li > a {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--b11-text-3);
  border-radius: var(--b11-r-sm);
  padding: 7px 13px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  transition: color var(--b11-dur-fast), background var(--b11-dur-fast);
}

#primary-menu > li > a:hover,
#primary-menu > li.current-menu-item > a,
#primary-menu > li.current-menu-ancestor > a {
  color: var(--b11-text);
  background: rgba(255,255,255,0.06);
}

@media (max-width: 1024px) {
  #primary-menu .kadence-menu-mega-columns-2 > .sub-menu {
    grid-template-columns: 1fr;
    min-width: 280px;
  }
}
/* ==========================================================================
   28. Page-accurate corrections (measured per page against the HTML)
   The static build uses different tag and label treatments per page, so a few
   values are scoped by page id rather than applied globally.
   ========================================================================== */

/* Chips default to the mono treatment used on the interior pages. */
.b11-tags .b11-chip {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  border-color: rgba(255,255,255,0.12);
  padding: 4px 10px;
}

/* The homepage arena cards use the Barlow tag variant instead. */
.page-id-51 .b11-tags .b11-chip,
.home .b11-tags .b11-chip {
  font-family: var(--b11-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: #c0c0c0;
  border-color: var(--b11-border-2);
  padding: 4px 11px;
}

/* Framework pillar tiles */
.b11-pillar {
  font-size: 14px !important;
  line-height: 1.6 !important;
}

/* --- Programs (page 53) --- */
.page-id-53 .entry-content .b11-head:not(.b11-foot-head) {
  color: var(--b11-red-light) !important;
}

.page-id-53 .b11-card h3 {
  font-size: 26px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}

.page-id-53 .b11-plan-price {
  font-size: 46px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

.page-id-53 .b11-pt-note {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--b11-text-2) !important;
}
/* --- Muted mono note inside pillar cards (guidance framework) --- */
.b11-note {
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.05em !important;
  text-transform: none !important;
  color: var(--b11-text-4) !important;
}

/* --- Comparison table, measured --- */
.b11-table thead th {
  font-size: 11px;
  letter-spacing: 0.13em;
  color: var(--b11-text-4);
}

.b11-table thead th.is-framework { color: var(--b11-red-light); }

.b11-table tbody th[scope="row"] {
  font-size: 15px;
  font-weight: 600;
  color: var(--b11-text-2);
}

.b11-table tbody td { font-size: 15px; font-weight: 400; color: var(--b11-text-3); }

.b11-table tbody td.is-framework {
  font-weight: 500;
  color: var(--b11-text);
}

.b11-table figcaption {
  font-size: 13px;
  letter-spacing: normal;
  text-transform: none;
  color: var(--b11-text-4);
}

/* --- Citation variants: Barlow on About, mono on the framework page --- */
.b11-quote-cite.b11-cite-mono {
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--b11-text-4) !important;
}
/* --- Photo placeholder labels (measured: mono 12px, no tracking, #4a4a4a) --- */
.b11-ph {
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #4a4a4a !important;
}

/* --- Facilities (page 57) --- */
.page-id-57 .b11-card h3 {
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

.page-id-57 .b11-card p:not(.b11-head):not(.b11-ph) {
  font-size: 14px !important;
  line-height: 1.57 !important;
  color: var(--b11-text-3) !important;
}

.page-id-57 .entry-content .b11-head:not(.b11-foot-head) {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.14em !important;
  text-transform: none !important;
  color: var(--b11-red-light) !important;
}

.page-id-57 .b11-mono {
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  line-height: 1.6 !important;
}

.page-id-57 .b11-tag { font-size: 12px; letter-spacing: 0.14em; }

.page-id-57 .b11-prose,
.page-id-57 .entry-content .b11-lead-16 {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--b11-text-3) !important;
}
/* Facilities: placeholder labels sit left, lead copy is 16px, CTA runs larger */
.page-id-57 .b11-ph {
  text-align: left !important;
  justify-content: flex-start;
}

.page-id-57 .entry-content p.b11-lead,
.page-id-57 .b11-cta-box p,
.page-id-57 .entry-content .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > p:not(.b11-head):not(.b11-ph):not(.b11-mono):not(.b11-tag) {
  font-size: 16px !important;
  line-height: 1.65 !important;
}

.page-id-57 .b11-cta-box-h2 {
  font-size: 44px !important;
  line-height: 1.09 !important;
}

.page-id-57 .b11-cta-box .kb-button.kt-button {
  font-size: 16px !important;
  line-height: 1.6 !important;
}
/* Facilities body copy outside the CTA box sits one step dimmer */
.page-id-57 .entry-content .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > p:not(.b11-head):not(.b11-ph):not(.b11-mono):not(.b11-tag) {
  color: var(--b11-text-3) !important;
}

.page-id-57 .b11-cta-box p { color: var(--b11-text-2) !important; }
/* --- Trainers (page 56) --- */
.page-id-56 .b11-card h3 {
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

/* Role line sits in the accent red */
.page-id-56 .b11-card p.b11-role {
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  color: var(--b11-red-light) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-id-56 .b11-card p:not(.b11-head):not(.b11-ph):not(.b11-role):not(.b11-tags) {
  font-size: 14px !important;
  line-height: 1.57 !important;
  color: var(--b11-text-3) !important;
}

/* Credential chips are plain Barlow here, not mono */
.page-id-56 .b11-tags .b11-chip {
  font-family: var(--b11-font-body) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: var(--b11-text-2) !important;
}

.page-id-56 .b11-mono,
.page-id-56 .b11-tag { font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0.14em !important; }

.page-id-56 .b11-cta-box-h2 { font-size: 44px !important; line-height: 1.09 !important; }
.page-id-56 .b11-cta-box .kb-button.kt-button { font-size: 16px !important; line-height: 1.6 !important; }
/* Placeholder labels align left, as in the source build */
.b11-ph { text-align: left !important; justify-content: flex-start; }

/* --- Testimonials (page 59), measured --- */
.b11-tq-text {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-3) !important;
}

.b11-tname {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  color: var(--b11-text-2) !important;
  margin: 14px 0 2px !important;
}

.b11-trole {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.06em !important;
  text-transform: none !important;
  color: var(--b11-text-4) !important;
  margin: 0 !important;
}

.page-id-59 .b11-tags { margin-top: 12px; }

.page-id-59 .b11-tags .b11-chip {
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--b11-text-3) !important;
}

/* Feedback steps */
.b11-step-t {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  color: var(--b11-text-2) !important;
  margin: 0 0 4px !important;
}

.b11-step-d {
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  color: var(--b11-text-4) !important;
  margin: 0 !important;
}

.page-id-59 .b11-mono,
.page-id-59 .b11-tag { font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0.14em !important; }
/* Testimonial filter chips run a touch larger and lighter than the default */
.page-id-59 .b11-filters button {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.09em;
}
/* --- Gallery (page 58), measured --- */
.b11-gal-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.b11-gal-bar .b11-filters { margin-bottom: 0; }

.b11-gal-count {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  color: var(--b11-text-4);
}

.page-id-58 .b11-filters button {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.09em;
}

.b11-gal-cap {
  font-family: var(--b11-font-display) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
  text-align: left !important;
  margin: 10px 0 0 !important;
}

/* Gallery placeholders are centred inside their 4:3 frame */
.page-id-58 .b11-ph-gal {
  text-align: center !important;
  justify-content: center;
  letter-spacing: 0.05em !important;
  color: #4d4d4d !important;
}

.page-id-58 .b11-mono,
.page-id-58 .b11-tag { font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0.14em !important; }
/* ==========================================================================
   29. FAQ - sidebar layout, measured from the source build
   ========================================================================== */

.b11-faq-layout {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  gap: 52px;
  align-items: start;
}

.b11-faq-side {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.b11-faq-side-head {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-2);
  margin-bottom: 10px;
}

.b11-faq-side a {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--b11-text-3);
  text-decoration: none;
  padding: 9px 13px;
  border-radius: var(--b11-r-sm);
  transition: color var(--b11-dur-fast), background var(--b11-dur-fast);
}

.b11-faq-side a:hover,
.b11-faq-side a.is-current {
  color: var(--b11-text);
  background: rgba(255,255,255,0.06);
}

.b11-faq-group-h {
  font-family: var(--b11-font-display);
  font-size: 32px;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  margin: 0;
}

.b11-faq-group-c {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  margin-bottom: 12px;
}

.b11-faq-cat + .b11-faq-cat { margin-top: 48px; }

.b11-faq-item { border-bottom: 1px solid var(--b11-border); }
.b11-faq-item h3 { margin: 0; font-size: inherit; letter-spacing: normal; }

.b11-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--b11-font-body);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--b11-text-2);
  padding: 19px 4px;
  transition: color var(--b11-dur-fast);
}

.b11-faq-q:hover { color: var(--b11-text); }
.b11-faq-q:focus-visible { outline: 2px solid var(--b11-red-light); outline-offset: 2px; }

.b11-faq-icon {
  position: relative;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.b11-faq-icon::before,
.b11-faq-icon::after {
  content: "";
  position: absolute;
  background: var(--b11-red-light);
  transition: transform var(--b11-dur-base) var(--b11-ease-out), opacity var(--b11-dur-base);
}

.b11-faq-icon::before { top: 6px; left: 0; width: 14px; height: 2px; }
.b11-faq-icon::after  { left: 6px; top: 0; width: 2px; height: 14px; }

.b11-faq-q[aria-expanded="true"] .b11-faq-icon::after { transform: scaleY(0); opacity: 0; }

.b11-faq-a {
  font-family: var(--b11-font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--b11-text);
  padding: 0 4px 20px;
}

.b11-faq-a p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--b11-text); }
.b11-faq-a a { color: var(--b11-red-light); font-weight: 600; text-decoration: none; }
.b11-faq-a[hidden] { display: none; }

/* Search field */
.b11-faq-search {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--b11-border-2);
  padding: 0 2px 12px;
  margin-bottom: 40px;
  color: var(--b11-text-4);
}

.b11-faq-search input[type="search"] {
  flex: 1;
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--b11-font-body);
  font-size: 16px;
  color: var(--b11-text);
}

.b11-faq-search input[type="search"]:focus { outline: none; }
.b11-faq-search input[type="search"]::placeholder { color: var(--b11-text-4); }

@media (max-width: 900px) {
  .b11-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .b11-faq-side { position: static; flex-direction: row; flex-wrap: wrap; }
  .b11-faq-side-head { width: 100%; margin-bottom: 4px; }
}
/* --- Contact (page 61), measured --- */

/* Card labels are mono 11px, not uppercase, and muted; the WhatsApp and
   Address labels run in the accent red. */
.page-id-61 .entry-content .b11-head:not(.b11-foot-head) {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.14em !important;
  text-transform: none !important;
  color: var(--b11-text-4) !important;
}

.page-id-61 .b11-card-featured .b11-head:not(.b11-foot-head),
.page-id-61 .b11-head-accent { color: var(--b11-red-light) !important; }

.page-id-61 .b11-card h3 {
  font-size: 26px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  color: #ffffff !important;
}

/* The phone / email cards use a smaller 16px link scale */
.page-id-61 .b11-contact-link h3,
.page-id-61 h3.b11-contact-link {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  color: var(--b11-text) !important;
}

.page-id-61 .b11-card p:not(.b11-head):not(.b11-foot-address) {
  font-size: 14px !important;
  line-height: 1.57 !important;
  color: var(--b11-text-3) !important;
}

.page-id-61 .b11-hours-day {
  font-size: 14px !important;
  color: var(--b11-text-2) !important;
}

.page-id-61 .b11-hours-time {
  font-family: var(--b11-font-mono) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  color: var(--b11-text-3) !important;
}

.page-id-61 .b11-foot-address {
  font-family: var(--b11-font-body) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--b11-text) !important;
}

.page-id-61 .b11-link-red a,
.page-id-61 a.b11-link-red { font-size: 14px; font-weight: 600; }

.page-id-61 .b11-foot-contact a {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--b11-text-2);
}

.page-id-61 .b11-mono,
.page-id-61 .b11-tag { font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0.14em !important; }

/* Form field labels are plain sentence case at 16px here */
.page-id-61 .b11-form .kadence-blocks-form-field label {
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  text-transform: none;
  color: var(--b11-text);
}
/* Contact: these need to outrank the page-scoped card rules above */
.page-id-61 .entry-content .b11-head:not(.b11-foot-head).b11-head-accent,
.page-id-61 .b11-card-featured .kt-inside-inner-col .b11-head:not(.b11-foot-head) {
  color: var(--b11-red-light) !important;
}

.page-id-61 .entry-content .b11-card h3.b11-hours-day,
.page-id-61 .entry-content h3.b11-hours-day {
  font-family: var(--b11-font-body) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  color: var(--b11-text-2) !important;
}

/* Phone and email links: the anchor carries the styling, not the heading */
.page-id-61 .entry-content h3.b11-contact-link,
.page-id-61 .entry-content h3.b11-contact-link a {
  font-family: var(--b11-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  color: var(--b11-text) !important;
}

.page-id-61 .entry-content h3.b11-contact-link a:hover { color: var(--b11-red-light) !important; }

/* The form eyebrow is a muted label here, not a red eyebrow */
.page-id-61 .entry-content .b11-mono {
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: none !important;
  color: var(--b11-text-4) !important;
}

/* The hero eyebrow keeps the accent treatment */
.page-id-61 .b11-page-hero .b11-tag,
.page-id-61 .b11-page-hero .b11-mono {
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--b11-red-light) !important;
}

.page-id-61 .b11-form .kb-forms-submit,
.b11-form button.kb-forms-submit,
.b11-form input.kb-forms-submit {
  font-size: 15px !important;
  line-height: 1.6 !important;
}
/* ==========================================================================
   30. Membership - calculator, packages and price lists (measured)
   ========================================================================== */

.m-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
}

.m-durations { display: flex; flex-wrap: wrap; gap: 6px; }

.m-dur {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--b11-text-3);
  background: transparent;
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-pill);
  padding: 9px 16px;
  cursor: pointer;
  transition: color var(--b11-dur-fast), border-color var(--b11-dur-fast), background var(--b11-dur-fast);
}

.m-dur:hover { color: var(--b11-text); border-color: var(--b11-border-3); }

.m-dur[aria-checked="true"] {
  background: var(--b11-red);
  border-color: var(--b11-red);
  color: #fff;
}

.m-dur:focus-visible { outline: 2px solid var(--b11-red-light); outline-offset: 3px; }

.m-saving {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  margin: 0 0 24px;
}

.m-plans {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.m-plan {
  position: relative;
  background: var(--b11-bg-3);
  border: 1px solid var(--b11-border);
  border-radius: 20px;
  padding: 32px 28px 28px;
}

.m-plan.is-featured { background: transparent; border-color: rgba(255,120,100,0.35); }

.m-badge {
  position: absolute;
  top: 18px;
  right: 20px;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  background: var(--b11-red);
  border-radius: var(--b11-r-pill);
  padding: 4px 12px;
}

.m-plan-kicker {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  margin-bottom: 10px;
}

.m-plan h3 {
  font-family: var(--b11-font-display);
  font-size: 25px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  margin: 0 0 8px;
}

.m-plan-desc { font-size: 15px; line-height: 1.6; color: var(--b11-text-3); margin: 0 0 18px; }

.m-price { display: flex; align-items: baseline; gap: 8px; }

.m-price-amt {
  font-family: var(--b11-font-display);
  font-size: 44px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--b11-text);
}

.m-price-term,
.m-eff,
.m-was {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}

.m-was { display: flex; align-items: center; gap: 10px; margin-top: 8px; text-transform: none; letter-spacing: normal; }
.m-was[hidden] { display: none; }
.m-strike { text-decoration: line-through; font-size: 15px; font-family: var(--b11-font-body); color: var(--b11-text-4); }
.m-off { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; color: var(--b11-red-light); }

.m-eff { font-size: 12px; letter-spacing: normal; text-transform: none; margin-top: 8px; }

.m-feats { list-style: none; margin: 18px 0 0; padding: 0; }

.m-feats li {
  position: relative;
  padding-left: 22px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--b11-text-3);
  margin-bottom: 9px;
}

.m-feats li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid rgba(255,120,110,0.5);
}

/* Add-on rows read as excluded until the bundle is switched on */
.m-feats li[data-addon-feat] { color: var(--b11-text-4); opacity: 0.55; }
.m-feats li[data-addon-feat].is-on { color: var(--b11-text-2); opacity: 1; }
.m-feats li[data-addon-feat].is-on::before { background: rgba(255,120,110,0.35); }

.m-plan-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 13px 26px;
  min-height: 46px;
  border: 1px solid var(--b11-border-3);
  border-radius: var(--b11-r-pill);
  font-size: 15px;
  font-weight: 600;
  color: var(--b11-text-2);
  text-decoration: none;
  transition: color var(--b11-dur-fast), border-color var(--b11-dur-fast), background var(--b11-dur-fast);
}

.m-plan-btn:hover { color: var(--b11-text); background: var(--b11-surface); }

/* Discount policy note */
.m-policy {
  margin-top: 28px;
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  padding: 22px 24px;
  background: var(--b11-bg-4);
}

.m-policy-h {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  margin-bottom: 8px;
}

.m-policy p { font-size: 15px; line-height: 1.65; color: var(--b11-text-3); margin: 0; }

/* Signature packages */
.m-packs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.m-pack {
  background: var(--b11-bg-3);
  border: 1px solid var(--b11-border);
  border-radius: 20px;
  padding: 28px;
}

.m-pack h3 {
  font-family: var(--b11-font-display);
  font-size: 23px;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  margin: 0;
}

.m-pack-price {
  font-family: var(--b11-font-display);
  font-size: 36px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--b11-red-light);
  margin: 6px 0 4px;
}

.b11-sub-h {
  font-family: var(--b11-font-display) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
  margin: 0 0 6px !important;
}

.m-note { font-size: 13px !important; line-height: 1.6 !important; color: var(--b11-text-4) !important; }

.b11-rows .b11-row-p { font-size: 19px; font-weight: 700; letter-spacing: normal; }

@media (max-width: 600px) {
  .m-controls { flex-direction: column; align-items: flex-start; }
}
/* Membership: final measured deltas */
.b11-switch { font-size: 15px; }
.m-plan-btn { line-height: 1.6; }
.m-strike { line-height: 1.6; }

/* Row sub-labels are plain Barlow here, not a mono caption */
.page-id-54 .b11-rows .b11-row-n em {
  font-family: var(--b11-font-body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  text-transform: none;
  color: var(--b11-text-4);
}

.page-id-54 .b11-rows .b11-row-p { line-height: 1.6; }
/* ==========================================================================
   31. Blog index and Shop loop, measured against the source cards
   ========================================================================== */

/* --- Blog post cards --- */
.b11-posts .entry-title,
.b11-posts .entry-title a {
  font-family: var(--b11-font-display);
  font-size: 20px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--b11-text);
  text-decoration: none;
}

.b11-posts .entry-summary p,
.b11-posts .entry-summary {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.57;
  color: var(--b11-text-3);
}

.b11-posts .entry-taxonomies,
.b11-posts .entry-taxonomies a {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  text-decoration: none;
}

.b11-posts .entry-meta,
.b11-posts .entry-meta * {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  text-transform: none;
  color: var(--b11-text-4);
}

.b11-posts .post-more-link,
.b11-posts .kt-blocks-post-readmore {
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--b11-red-light);
  text-decoration: none;
}

/* --- Shop / WooCommerce loop --- */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--b11-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
}

.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount {
  font-family: var(--b11-font-display) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
}



.page-id-40 .b11-mono,
.page-id-40 .b11-tag,
.page-id-62 .b11-mono,
.page-id-62 .b11-tag {
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
}
/* ==========================================================================
   32. Blog article, measured
   ========================================================================== */

.single-post .entry-title,
.single-post h1.entry-title {
  font-family: var(--b11-font-display);
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--b11-text);
}

.single-post .entry-content h2 { font-size: 35px; line-height: 1.14; }
.single-post .entry-content h3 { font-size: 24px; font-weight: 700; line-height: 1.25; }

.single-post .entry-content p,
.single-post .entry-content li {
  font-size: 17px;
  line-height: 1.82;
  color: var(--b11-text-2);
}

.single-post .entry-content strong { font-weight: 600; color: var(--b11-text); }

/* Six-component cards inside the article */
.single-post .b11-card .b11-plan-name {
  font-family: var(--b11-font-display) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.85 !important;
  letter-spacing: -0.01em !important;
  text-transform: none;
  color: var(--b11-text) !important;
}

.single-post .b11-card p:not(.b11-plan-name):not(.b11-chain-num):not(.b11-head) {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-3) !important;
}

/* Callout */
.b11-callout .b11-head {
  font-family: var(--b11-font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--b11-red-light) !important;
}

.b11-callout p:not(.b11-head) {
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.7 !important;
  color: var(--b11-text) !important;
}

/* Table caption inside the article reads as body copy, centred */
.single-post .b11-table figcaption {
  font-family: var(--b11-font-body);
  font-size: 15px;
  line-height: 1.8;
  color: var(--b11-text-2);
  text-align: center;
}

/* Author block */
.single-post .b11-author-name {
  font-family: var(--b11-font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none;
  color: var(--b11-text-2) !important;
}

/* Table of contents */
.b11-toc .kb-table-of-content-title { font-weight: 500; }
.b11-toc a { font-size: 13px; line-height: 1.5; color: var(--b11-text-4); }
.b11-toc a:hover { color: var(--b11-text); }
/* Article related cards */
.b11-rel-t {
  font-family: var(--b11-font-display) !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
  margin: 6px 0 8px !important;
}

.b11-rel-lead {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--b11-text-2) !important;
}

.single-post .b11-card p.b11-rel-t { font-size: 21px !important; }
/* ==========================================================================
   33. Homepage, measured element by element against index.html
   ========================================================================== */

/* Hero badge is sentence case, not uppercase */
.b11-hero-badge {
  text-transform: none !important;
  line-height: 1.6 !important;
}

/* Stats strip is left-aligned */
.page-id-51 .b11-stat-value,
.page-id-51 .b11-stat-label { text-align: left !important; }

/* Arena card tags are condensed caps, not the Barlow pill used elsewhere */
.page-id-51 .b11-tags .b11-chip {
  font-family: var(--b11-font-display) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--b11-text-3) !important;
  border: 0 !important;
  padding: 0 !important;
  margin-right: 18px;
}

.page-id-51 .b11-tags .b11-chip.b11-chip-red { color: var(--b11-red-light) !important; }

/* The coaching-box pills keep the Barlow treatment */
.page-id-51 .b11-coaching-pills .b11-chip {
  font-family: var(--b11-font-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: #c0c0c0 !important;
  border: 1px solid var(--b11-border-2) !important;
  padding: 4px 11px !important;
  margin-right: 0;
}

.page-id-51 .b11-coaching-box .b11-head:not(.b11-foot-head) { color: var(--b11-text-4) !important; }

/* Philosophy principles */
.page-id-51 .b11-principle h3 {
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
}

.page-id-51 .b11-principle p:not(.b11-principle-num) {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-2) !important;
}

/* Trainer cards */
.page-id-51 .b11-trainer-card h3 {
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

.page-id-51 .b11-trainer-role {
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--b11-red-light) !important;
}

.page-id-51 .b11-trainer-card p:not(.b11-ph):not(.b11-trainer-role) {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-2) !important;
}

/* Pricing teaser cards */
.page-id-51 .b11-plan-card p:not(.b11-plan-name):not(.b11-plan-price):not(.b11-badge) {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-2) !important;
}

.page-id-51 .b11-feat {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--b11-text-2) !important;
}

/* Most-popular badge is Barlow here */
.page-id-51 .b11-badge {
  font-family: var(--b11-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
}

/* Testimonial attribution */
.page-id-51 .b11-tmeta {
  font-size: 12px !important;
  line-height: 1.6 !important;
  color: var(--b11-text-3) !important;
}

.page-id-51 .b11-tmeta strong {
  font-size: 14px;
  font-weight: 600;
  color: var(--b11-text) !important;
}

/* Outline buttons on the homepage carry the brighter label */
.page-id-51 .kb-button.kt-button.kb-btn-global-outline { color: var(--b11-text) !important; }

/* Plan CTA link */
.page-id-51 .b11-plan-card .kb-button.kt-button {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--b11-text) !important;
}
/* The principle wrapper column also contains the coaching box, so these rules
   are limited to direct children rather than the whole subtree. */
.page-id-51 .b11-principle p:not(.b11-principle-num) { font-size: inherit !important; line-height: inherit !important; color: inherit !important; }

.page-id-51 .b11-principle > .kt-inside-inner-col > p:not(.b11-principle-num):not(.b11-head) {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-2) !important;
}

.page-id-51 .b11-coaching-box > .kt-inside-inner-col > .b11-head:not(.b11-foot-head),
.page-id-51 .b11-head:not(.b11-foot-head) {
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--b11-text-4) !important;
}
/* ==========================================================================
   34. About, measured
   ========================================================================== */

/* Pillar tiles: mono number, condensed label */
.b11-pillar b {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--b11-red-light);
}

.b11-pillar span {
  font-family: var(--b11-font-display);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--b11-text);
}

.page-id-52 .b11-card h3,
.page-id-52 .entry-content h3 {
  font-size: 25px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

.page-id-52 .b11-stat-n + p,
.page-id-52 .entry-content .b11-stat-n ~ p {
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--b11-text-3) !important;
}

/* The One Goal card label carries its own blue accent in the source build.
   Off the documented palette, but the shipped HTML is the reference. */
.b11-label-goal { color: #6cb6e8 !important; }
/* Read-more link is sentence case */
.b11-posts .post-more-link,
.b11-posts .kt-blocks-post-readmore { text-transform: none; }

/* The shop page renders as a product archive, so it never carries page-id-40.
   Scope by the WooCommerce body class instead. */


body.woocommerce-shop .b11-tag,
body.post-type-archive-product .b11-tag,
body.woocommerce-shop .b11-mono,
body.post-type-archive-product .b11-mono {
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
}
/* Article: related-card titles and the closing CTA sit outside the body scale */
.single-post .b11-card p.b11-rel-t {
  font-size: 21px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  color: var(--b11-text) !important;
}

.single-post .entry-content h2.b11-h2-40 {
  font-size: 40px !important;
  line-height: 1.1 !important;
}
.single-post .b11-card p.b11-rel-t:not(.b11-plan-name):not(.b11-chain-num):not(.b11-head) {
  font-size: 21px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  color: var(--b11-text) !important;
}
/* ==========================================================================
   35. Header, navigation and dropdowns
   Every value below is measured from the static build's .nav / .nav-menu.
   Kadence prints its own header CSS in an inline <style> that loads BEFORE
   this file but at higher specificity, so the sticky-state selectors are
   restated here at matching weight.
   ========================================================================== */

/* Kadence paints #masthead white by default. The bar above it is translucent,
   so that white showed through the glass and lifted the whole header off the
   page ground. The bar owns the colour; the masthead owns nothing. */
#masthead { background: transparent; }

#masthead .site-header-row-container-inner,
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner {
  background: rgba(8,8,8,0.88);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
          backdrop-filter: blur(24px) saturate(1.6);
  border-bottom: 1px solid var(--b11-border);
  transition: background var(--b11-dur-base), border-color var(--b11-dur-base);
}

#masthead.b11-scrolled .site-header-row-container-inner,
#masthead.b11-scrolled .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner {
  background: rgba(8,8,8,0.96);
  border-bottom-color: var(--b11-border-2);
}

/* Top-level items sit 2px apart, as in .nav-links */
#primary-menu { gap: 2px; }
#primary-menu > li { margin: 0; }

#primary-menu > li > a:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 2px;
}

/* Chevron: 6px from the label, flips when the group is open */
#primary-menu .nav-drop-title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#primary-menu .dropdown-nav-toggle {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

#primary-menu .dropdown-nav-toggle svg {
  width: 10px;
  height: 10px;
  transition: transform var(--b11-dur-base) var(--b11-ease-out);
}

#primary-menu > li:hover > a .dropdown-nav-toggle svg,
#primary-menu > li:focus-within > a .dropdown-nav-toggle svg,
#primary-menu > li.menu-item--toggled-on > a .dropdown-nav-toggle svg {
  transform: rotate(180deg);
}

/* --- Dropdown panel ------------------------------------------------------ */

#primary-menu .sub-menu {
  top: calc(100% + 9px);
  left: 0;
  min-width: 280px;
  padding: 6px;
  background: rgba(13,13,15,0.97);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
          backdrop-filter: blur(24px) saturate(1.6);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-md);
  box-shadow: 0 18px 50px rgba(0,0,0,0.65);
}

/* Bridges the 9px gap so the pointer can travel from the button to the panel
   without leaving the <li> and closing it. Mirrors .nav-menu::before. */
#primary-menu > li > .sub-menu::before {
  content: '';
  position: absolute;
  top: -9px;
  left: 0;
  right: 0;
  height: 9px;
}

/* Kadence draws a 1px divider under every dropdown row; the source build has
   none - the items are separated by a 2px gap instead. */
#primary-menu .sub-menu li.menu-item {
  margin: 0;
  border-bottom: 0;
}

#primary-menu .sub-menu li.menu-item + li.menu-item { margin-top: 2px; }

#primary-menu .sub-menu a {
  display: block;
  padding: 10px 13px;
  border-radius: var(--b11-r-sm);
  line-height: 1.6;
  border-bottom: 0;
}

#primary-menu .sub-menu li.current-menu-item > a { background: rgba(255,120,110,0.09); }
#primary-menu .sub-menu li.current-menu-item > a .menu-label-content { color: var(--b11-red-light); }

/* Fade + 8px slide, matching the .nav-menu transition */
.header-navigation[class*="header-navigation-dropdown-animation-fade"] ul ul.sub-menu {
  transform: translate3d(0, -8px, 0);
  transition: opacity var(--b11-dur-base) var(--b11-ease-out),
              transform var(--b11-dur-base) var(--b11-ease-out),
              visibility var(--b11-dur-base);
}

/* --- Header CTA ---------------------------------------------------------- */
/* .nav-cta: light pill, near-black label, 8px/18px, 36px tall, never wraps. */

#masthead .header-button-wrap a.header-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--b11-text);
  color: #080808;
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  padding: 8px 18px;
  border: 0;
  border-radius: 999px;
  min-height: 36px;
  white-space: nowrap;
  transition: background var(--b11-dur-fast), transform var(--b11-dur-fast);
}

#masthead .header-button-wrap a.header-button:hover {
  background: #fff;
  color: #080808;
  transform: translateY(-1px);
}

#masthead .header-button-wrap a.header-button:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* --- Mobile drawer ------------------------------------------------------- */
/* .nav-drawer: 16px/500 rows, 48px tall, mono section headings. */

#mobile-drawer .drawer-inner { background: var(--b11-bg-2); }

#mobile-drawer .mobile-navigation ul li a {
  display: flex;
  align-items: center;
  padding: 13px 16px;
  border-radius: var(--b11-r-sm);
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-weight: 500;
  color: var(--b11-text-2);
  min-height: 48px;
  border-bottom: 0;
}

#mobile-drawer .mobile-navigation ul li a:hover {
  color: var(--b11-text);
  background: rgba(255,255,255,0.04);
}

#mobile-drawer .mobile-navigation ul li.current-menu-item > a {
  color: var(--b11-red-light);
  background: rgba(255,120,110,0.08);
}

#mobile-drawer .mobile-navigation .sub-menu a {
  font-size: 15px;
  padding-left: 30px;
}

/* ==========================================================================
   36. Content shell
   ========================================================================== */

/* Kadence pads .entry-content-wrap by 32px, which opened a gap between the
   header and the first section. Every page here starts with a full-bleed hero
   that carries its own padding, so the shell padding is removed. */
body.content-width-fullwidth .entry-content-wrap,
body.single-post .entry-content-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

/* ==========================================================================
   37. Vertical rhythm - section padding and max-width, measured per page
   Kadence writes row padding as `.kb-row-layout-idXX > .kt-row-column-wrap`
   (0,2,0) from an inline block that loads after this file, so every rule here
   is qualified with .entry-content to win on specificity rather than order.
   The source uses clamp() throughout, so the clamps are reproduced verbatim
   and the layout stays fluid between breakpoints instead of stepping.
   ========================================================================== */

/* --- Home (51) ----------------------------------------------------------- */
.entry-content .kb-row-layout-id51_422014-c7 > .kt-row-column-wrap {
  padding: clamp(80px, 10vw, 130px) 24px clamp(72px, 8vw, 104px);
}
.entry-content > .kb-row-layout-id51_422014-c7 { border-bottom: 1px solid var(--b11-border); }

.b11-marquee { padding: 13px 0; border-top: 0; }

.entry-content .kb-row-layout-id51_fd5623-7b > .kt-row-column-wrap {
  padding: 0 24px;
  column-gap: 0;
  row-gap: 0;
}
.entry-content > .kb-row-layout-id51_fd5623-7b {
  background: transparent;
  border-bottom: 1px solid var(--b11-border);
}
.kb-row-layout-id51_fd5623-7b .wp-block-kadence-column > .kt-inside-inner-col {
  padding: 32px 24px;
  border-right: 1px solid var(--b11-border);
}
.kb-row-layout-id51_fd5623-7b .wp-block-kadence-column:last-child > .kt-inside-inner-col {
  border-right: 0;
}

.entry-content .kb-row-layout-id51_994dca-a9 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_856710-b2 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_d9ddb5-75 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_9b292e-81 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_7be62b-13 > .kt-row-column-wrap {
  padding: clamp(80px, 10vw, 120px) 24px;
}

.entry-content .kb-row-layout-id51_c2ebca-c1 > .kt-row-column-wrap {
  padding: clamp(88px, 11vw, 140px) 24px;
  max-width: 840px;
}

/* The source tints three bands with a gradient, not a flat fill, and separates
   every section below the fold with a hairline. */
.entry-content > .kb-row-layout-id51_994dca-a9,
.entry-content > .kb-row-layout-id51_d9ddb5-75,
.entry-content > .kb-row-layout-id51_7be62b-13 { background: transparent; }

.entry-content > .kb-row-layout-id51_856710-b2,
.entry-content > .kb-row-layout-id51_9b292e-81,
.entry-content > .kb-row-layout-id51_c2ebca-c1 {
  background: linear-gradient(180deg, var(--b11-bg-2), var(--b11-bg));
}

.entry-content > .kb-row-layout-id51_856710-b2 { border-top: 1px solid var(--b11-border); border-bottom: 1px solid var(--b11-border); }
.entry-content > .kb-row-layout-id51_9b292e-81,
.entry-content > .kb-row-layout-id51_7be62b-13,
.entry-content > .kb-row-layout-id51_c2ebca-c1 { border-top: 1px solid var(--b11-border); }

/* --- About (52) ---------------------------------------------------------- */
.entry-content .kb-row-layout-id52_98a8f6-b9 > .kt-row-column-wrap {
  padding: clamp(62px, 8vw, 104px) 24px clamp(52px, 6vw, 80px);
  max-width: 880px;
}
.entry-content .kb-row-layout-id52_abbfa6-f4 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id52_83f136-7f > .kt-row-column-wrap,
.entry-content .kb-row-layout-id52_198c1e-ed > .kt-row-column-wrap {
  padding: clamp(52px, 6.5vw, 84px) 24px;
}
.entry-content .kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 80px) 24px;
}
.entry-content .kb-row-layout-id52_c6b261-35 > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 90px) 24px;
  max-width: 900px;
}
.entry-content .kb-row-layout-id52_b68041-3c > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 80px) 24px clamp(72px, 8vw, 104px);
}
.entry-content > .kb-row-layout-id52_87b97b-d3,
.entry-content > .kb-row-layout-id52_c6b261-35 {
  border-top: 1px solid var(--b11-border);
  border-bottom: 1px solid var(--b11-border);
}

/* --- Programs (53) ------------------------------------------------------- */
.entry-content .kb-row-layout-id53_00a2f3-f7 > .kt-row-column-wrap {
  padding: clamp(60px, 7.5vw, 100px) 24px clamp(50px, 6vw, 76px);
  max-width: 840px;
}
.entry-content .kb-row-layout-id53_36704e-35 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap {
  padding: clamp(52px, 6.5vw, 84px) 24px;
}
.entry-content .kb-row-layout-id53_86acf7-a6 > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 78px) 24px;
}
.entry-content .kb-row-layout-id53_83e8e3-3a > .kt-row-column-wrap {
  padding: 56px 24px clamp(72px, 8vw, 104px);
}
/* The tinted band belongs to "Add to any membership", not to the framework
   section below it - the two were transposed. */
.entry-content > .kb-row-layout-id53_86acf7-a6 {
  background: var(--b11-bg-2);
  border-top: 1px solid var(--b11-border);
  border-bottom: 1px solid var(--b11-border);
}
.entry-content > .kb-row-layout-id53_5553b0-93 { background: transparent; }

/* --- Membership (54) ----------------------------------------------------- */
.entry-content .kb-row-layout-id54_316ed4-02 > .kt-row-column-wrap {
  padding: clamp(58px, 7vw, 94px) 24px clamp(44px, 5vw, 64px);
  max-width: 820px;
}
.entry-content .kb-row-layout-id54_a503c5-ab > .kt-row-column-wrap,
.entry-content .kb-row-layout-id54_7eda26-e3 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id54_a6a4c0-bf > .kt-row-column-wrap {
  padding: clamp(50px, 6vw, 80px) 24px;
}
.entry-content .kb-row-layout-id54_335ecc-ce > .kt-row-column-wrap {
  padding: clamp(50px, 6vw, 76px) 24px clamp(72px, 8vw, 100px);
}
.entry-content > .kb-row-layout-id54_7eda26-e3 {
  border-top: 1px solid var(--b11-border);
  border-bottom: 1px solid var(--b11-border);
}
.entry-content > .kb-row-layout-id54_335ecc-ce { background: transparent; }

/* --- Guidance Framework (55) --------------------------------------------- */
.entry-content .kb-row-layout-id55_6b3e13-64 > .kt-row-column-wrap {
  padding: clamp(64px, 8vw, 104px) 24px clamp(52px, 6vw, 80px);
  max-width: 820px;
}
.entry-content .kb-row-layout-id55_99981f-ff > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_f78e3f-a5 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_9adc42-5a > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
}
.entry-content .kb-row-layout-id55_e79526-ba > .kt-row-column-wrap {
  padding: clamp(48px, 6vw, 76px) 24px;
  max-width: 900px;
}
.entry-content .kb-row-layout-id55_416e78-e2 > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px clamp(72px, 8vw, 104px);
}
.entry-content > .kb-row-layout-id55_f78e3f-a5,
.entry-content > .kb-row-layout-id55_e79526-ba {
  border-top: 1px solid var(--b11-border);
  border-bottom: 1px solid var(--b11-border);
}

/* --- Trainers (56) ------------------------------------------------------- */
.entry-content .kb-row-layout-id56_25cf4b-bc > .kt-row-column-wrap {
  padding: clamp(72px, 9vw, 110px) 24px;
  max-width: 820px;
}
.entry-content .kb-row-layout-id56_ad73f8-86 > .kt-row-column-wrap {
  padding: clamp(64px, 8vw, 96px) 24px;
}
.entry-content .kb-row-layout-id56_35b60a-f8 > .kt-row-column-wrap {
  padding: clamp(64px, 8vw, 96px) 24px;
  max-width: 800px;
}
.entry-content > .kb-row-layout-id56_35b60a-f8 { border-top: 1px solid var(--b11-border); }

/* --- Facilities (57) ----------------------------------------------------- */
.entry-content .kb-row-layout-id57_5e4e9c-b3 > .kt-row-column-wrap {
  padding: clamp(72px, 9vw, 110px) 24px;
  max-width: 820px;
}
.entry-content .kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id57_3b05c9-69 > .kt-row-column-wrap {
  padding: clamp(64px, 8vw, 96px) 24px;
}
.entry-content .kb-row-layout-id57_2f74aa-77 > .kt-row-column-wrap {
  padding: clamp(64px, 8vw, 96px) 24px;
  max-width: 800px;
}
.entry-content > .kb-row-layout-id57_3b05c9-69 {
  background: linear-gradient(180deg, var(--b11-bg-2), var(--b11-bg));
  border-top: 1px solid var(--b11-border);
}
.entry-content > .kb-row-layout-id57_2f74aa-77 { border-top: 1px solid var(--b11-border); }

/* --- Gallery (58) -------------------------------------------------------- */
.entry-content .kb-row-layout-id58_be2844-dc > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
  max-width: 1200px;
}
.entry-content .kb-row-layout-id58_f581fd-93 > .kt-row-column-wrap {
  padding: clamp(34px, 4vw, 48px) 24px clamp(64px, 8vw, 96px);
}
.entry-content .kb-row-layout-id58_21ac12-84 > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 76px) 24px;
}
.entry-content > .kb-row-layout-id58_21ac12-84 { border-top: 1px solid var(--b11-border); }

/* --- Testimonials (59) --------------------------------------------------- */
.entry-content .kb-row-layout-id59_dec6fd-51 > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
  max-width: 1200px;
}
.entry-content .kb-row-layout-id59_9511f0-c8 > .kt-row-column-wrap {
  padding: clamp(34px, 4.5vw, 52px) 24px clamp(64px, 8vw, 96px);
}
.entry-content .kb-row-layout-id59_0f27cd-cc > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 78px) 24px;
}
.entry-content > .kb-row-layout-id59_0f27cd-cc { border-top: 1px solid var(--b11-border); }

/* --- FAQ (60) ------------------------------------------------------------ */
.entry-content .kb-row-layout-id60_61ffd2-df > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
  max-width: 1200px;
}
.entry-content .kb-row-layout-id60_23f9cd-81 > .kt-row-column-wrap {
  padding: clamp(44px, 5.5vw, 72px) 24px clamp(64px, 8vw, 96px);
}
.entry-content .kb-row-layout-id60_0fcde7-15 > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 76px) 24px;
}
.entry-content > .kb-row-layout-id60_0fcde7-15 { border-top: 1px solid var(--b11-border); }

/* --- Contact (61) -------------------------------------------------------- */
/* The source keeps the contact cards and the form inside one section; the port
   split them across two rows, so the pair is padded as a single block. */
.entry-content .kb-row-layout-id61_302e1e-e3 > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
  max-width: 1200px;
}
.entry-content .kb-row-layout-id61_1ab70e-95 > .kt-row-column-wrap {
  padding: clamp(48px, 6vw, 72px) 24px 0;
}
.entry-content .kb-row-layout-id61_124645-79 > .kt-row-column-wrap {
  padding: 20px 24px clamp(48px, 6vw, 72px);
}
.entry-content > .kb-row-layout-id61_124645-79 { background: transparent; }

/* --- Blog (62) ----------------------------------------------------------- */
.entry-content .kb-row-layout-id62_8d7a5f-d5 > .kt-row-column-wrap {
  padding: clamp(56px, 7vw, 88px) 24px;
  max-width: 1200px;
}
.entry-content .kb-row-layout-id62_626ca5-b4 > .kt-row-column-wrap {
  padding: clamp(48px, 6vw, 72px) 24px;
}
.entry-content .kb-row-layout-id62_50485d-8d > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 76px) 24px;
}
.entry-content > .kb-row-layout-id62_50485d-8d {
  background: var(--b11-bg-2);
  border-top: 1px solid var(--b11-border);
}

/* ==========================================================================
   38. Grid geometry - column ratios and gaps
   The source lays nearly every card grid out with
   `repeat(auto-fit, minmax(Npx, 1fr))`, so it reflows continuously. Kadence
   uses fixed column counts that step at 1024px and 767px. Restating the
   auto-fit tracks here (outside any media query, at higher specificity than
   Kadence's per-block rules) restores the source behaviour at every width -
   which is also why section 39 only needs the handful of grids the source
   pins to explicit breakpoints.
   ========================================================================== */

/* Kadence's row gap comes from --global-row-gutter-md (32px) and is never
   written per block, so only the column gap was ever correct. */
.entry-content .kt-row-column-wrap { row-gap: 20px; }
body.page-id-51 .entry-content .kt-row-column-wrap { row-gap: 18px; }

/* --- Home: 18px throughout, four-up trainers ----------------------------- */
.entry-content .kb-row-layout-id51_994dca-a9 .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_d9ddb5-75 .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_9b292e-81 .kt-row-column-wrap,
.entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap { column-gap: 18px; }

.entry-content .kb-row-layout-id51_856710-b2 > .kt-row-column-wrap {
  column-gap: clamp(48px, 6vw, 80px);
  grid-template-columns: 1fr 1fr;
  align-items: start;
}

.entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* --- Interior card grids: the source's auto-fit tracks ------------------- */
.entry-content .kb-row-layout-id52_67c677-73 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id54_a6a4c0-bf .kt-row-column-wrap,
.entry-content .kb-row-layout-id57_3b05c9-69 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_823d0c-14 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_6b0abc-d7 > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.entry-content .kb-row-layout-id52_7f91a8-93 > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  column-gap: 18px;
  row-gap: 18px;
}

.entry-content .kb-row-layout-id53_de2c69-4a > .kt-row-column-wrap,
.entry-content .kb-row-layout-id53_3f427e-6c > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.entry-content .kb-row-layout-id56_a24ed7-f5 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id56_9f7544-10 > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.entry-content .kb-row-layout-id61_1ab70e-95 > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.entry-content .kb-row-layout-id57_3b05c9-69 > .kt-row-column-wrap {
  column-gap: clamp(36px, 5vw, 64px);
  row-gap: clamp(36px, 5vw, 64px);
}

/* Gallery: 16px both ways, 280px minimum tile */
body.page-id-58 .entry-content .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  column-gap: 16px;
  row-gap: 16px;
}

/* Testimonials cards: 18px column rhythm, as .t-grid */
.entry-content .kb-row-layout-id59_da0cc3-f5 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id59_99c1f9-3d > .kt-row-column-wrap,
.entry-content .kb-row-layout-id59_c8f5ee-30 > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  column-gap: 18px;
  row-gap: 18px;
}

/* --- Consecutive card rows read as one grid ------------------------------ */
/* Kadence gives every stacked inner row its own top padding, which produced a
   wider seam between rows than between columns. Zeroed, then spaced by the
   grid's own gap. */
.kb-row-layout-id56_9f7544-10,
.kb-row-layout-id55_6b0abc-d7,
.kb-row-layout-id55_9e339b-ef,
.kb-row-layout-id53_121588-ec,
.kb-row-layout-id52_d9c045-d9,
.kb-row-layout-id58_3f1cf1-14,
.kb-row-layout-id58_426f50-83,
.kb-row-layout-id58_8e5eba-cf,
.kb-row-layout-id58_b16445-2a,
.kb-row-layout-id58_8f4ecb-3a,
.kb-row-layout-id59_99c1f9-3d,
.kb-row-layout-id59_c8f5ee-30 { margin-top: 0; }

.entry-content .kb-row-layout-id56_9f7544-10 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_6b0abc-d7 > .kt-row-column-wrap { padding: 20px 0 0; }

.entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap { padding: 16px 0 0; }

.entry-content .kb-row-layout-id59_99c1f9-3d > .kt-row-column-wrap,
.entry-content .kb-row-layout-id59_c8f5ee-30 > .kt-row-column-wrap { padding: 18px 0 0; }

/* --- Rows the port split, which the source lays out as one grid ---------- */
/* The columns are hoisted out of their wrappers so a single grid owns them,
   restoring the source's column count. Headings keep the full width. */
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col,
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col,
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  display: grid;
  align-items: start;
}

.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout),
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout),
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout) {
  grid-column: 1 / -1;
}

.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout,
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap,
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout,
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap,
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout,
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap {
  display: contents;
}

/* .ab-pillars - six 178px tiles, 12px apart */
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  grid-template-columns: repeat(auto-fit, minmax(178px, 1fr));
  gap: 12px;
}
/* .pg-pillars - 168px tiles, 10px apart */
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
  gap: 10px;
}
/* .zones-grid - 280px cards, 20px apart */
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

/* The section head keeps its 40px separation from the first card */
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout):last-of-type,
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout):last-of-type,
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > *:not(.wp-block-kadence-rowlayout):last-of-type {
  margin-bottom: 28px;
}

/* --- Guidance "How it connects": a hairline-ruled list, not cards -------- */
/* Source: .gf-chain, one bordered panel of `190px 1fr` rows. */
.entry-content .kb-row-layout-id55_a1023e-4c > .kt-row-column-wrap,
.entry-content .kb-row-layout-id55_9e339b-ef > .kt-row-column-wrap {
  grid-template-columns: minmax(0, 1fr);
  row-gap: 0;
  column-gap: 0;
  padding: 0;
}
.kb-row-layout-id55_a1023e-4c {
  border: 1px solid var(--b11-border);
  border-bottom: 0;
  border-radius: var(--b11-r-lg, 16px) var(--b11-r-lg, 16px) 0 0;
  background: var(--b11-bg-4, #121214);
  overflow: hidden;
}
.kb-row-layout-id55_9e339b-ef {
  border: 1px solid var(--b11-border);
  border-top: 0;
  border-radius: 0 0 var(--b11-r-lg, 16px) var(--b11-r-lg, 16px);
  background: var(--b11-bg-4, #121214);
  overflow: hidden;
}
.kb-row-layout-id55_a1023e-4c .b11-card > .kt-inside-inner-col,
.kb-row-layout-id55_9e339b-ef .b11-card > .kt-inside-inner-col {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 22px;
  align-items: start;
  padding: 22px 28px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b11-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  transition: background var(--b11-dur-base);
}
.kb-row-layout-id55_a1023e-4c .b11-card:hover > .kt-inside-inner-col,
.kb-row-layout-id55_9e339b-ef .b11-card:hover > .kt-inside-inner-col {
  background: rgba(255,255,255,0.04) !important;
}
.kb-row-layout-id55_9e339b-ef .wp-block-kadence-column:last-child > .kt-inside-inner-col {
  border-bottom: 0 !important;
}

/* ==========================================================================
   39. Responsive - the source's own breakpoints
   Only the homepage pins explicit column counts; everything else is fluid via
   the auto-fit tracks above.
   ========================================================================== */

@media (max-width: 1080px) {
  .entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .entry-content .kb-row-layout-id51_fd5623-7b > .kt-row-column-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .kb-row-layout-id51_fd5623-7b .wp-block-kadence-column:nth-child(2) > .kt-inside-inner-col { border-right: 0; }
  .kb-row-layout-id51_fd5623-7b .wp-block-kadence-column:nth-child(3) > .kt-inside-inner-col {
    border-right: 1px solid var(--b11-border);
    border-top: 1px solid var(--b11-border);
  }
  .kb-row-layout-id51_fd5623-7b .wp-block-kadence-column:nth-child(4) > .kt-inside-inner-col {
    border-right: 0;
    border-top: 1px solid var(--b11-border);
  }

  .entry-content .kb-row-layout-id51_994dca-a9 .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .entry-content .kb-row-layout-id51_856710-b2 > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 48px;
    row-gap: 48px;
  }
  .entry-content .kb-row-layout-id51_d9ddb5-75 .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
  .entry-content .kb-row-layout-id51_9b292e-81 .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 640px) {
  .entry-content .kb-row-layout-id55_a1023e-4c .b11-card > .kt-inside-inner-col,
  .entry-content .kb-row-layout-id55_9e339b-ef .b11-card > .kt-inside-inner-col {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }
}

@media (max-width: 480px) {
  .entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap,
  .entry-content .kb-row-layout-id51_fd5623-7b > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
  .kb-row-layout-id51_fd5623-7b .wp-block-kadence-column > .kt-inside-inner-col {
    border-right: 0;
    border-top: 1px solid var(--b11-border);
  }
  .kb-row-layout-id51_fd5623-7b .wp-block-kadence-column:first-child > .kt-inside-inner-col {
    border-top: 0;
  }
  .entry-content .kb-row-layout-id51_d9ddb5-75 .kt-row-column-wrap { max-width: 100%; }
}

/* ==========================================================================
   40. Hover and focus
   The theme ships `hide-focus-outline`, which suppresses the ring entirely.
   The source shows a 2px red-light ring on :focus-visible everywhere.
   ========================================================================== */

body.hide-focus-outline :focus-visible,
:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Cards that lift in the source. The rest change border colour only, which
   section 26 already handles. */
.page-id-53 .b11-card:hover > .kt-inside-inner-col,
.page-id-55 .kb-row-layout-id55_823d0c-14 .b11-card:hover > .kt-inside-inner-col,
.page-id-55 .kb-row-layout-id55_6b0abc-d7 .b11-card:hover > .kt-inside-inner-col {
  background: rgba(255,255,255,0.065);
  transform: translateY(-3px);
}

.page-id-54 .b11-plan-card:hover > .kt-inside-inner-col,
.page-id-58 .b11-card:hover > .kt-inside-inner-col {
  transform: translateY(-3px);
}

.page-id-51 .b11-plan-card:hover > .kt-inside-inner-col {
  transform: translateY(-6px);
  box-shadow: 0 28px 64px rgba(0,0,0,0.5);
}

/* .arena-card - the homepage's two large cards lift further and cast a rim */
.page-id-51 .kb-row-layout-id51_994dca-a9 .b11-card:hover > .kt-inside-inner-col {
  border-color: rgba(255,110,100,0.45);
  transform: translateY(-6px);
  box-shadow: 0 28px 72px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,110,100,0.1);
}

.b11-card > .kt-inside-inner-col {
  transition: border-color var(--b11-dur-slow) var(--b11-ease-out),
              background var(--b11-dur-slow) var(--b11-ease-out),
              transform var(--b11-dur-slow) var(--b11-ease-out),
              box-shadow var(--b11-dur-slow) var(--b11-ease-out);
}

@media (prefers-reduced-motion: reduce) {
  .b11-card:hover > .kt-inside-inner-col { transform: none; }
  #primary-menu .dropdown-nav-toggle svg { transition: none; }
}


/* ==========================================================================
   41. Corrections to sections 35-40, verified against the source measurements
   ========================================================================== */

/* Interior hero widths are per page in the source, not a single 880px cap. */
.kb-row-layout-id53_00a2f3-f7 { --b11-hero-mw: 840px; }
.kb-row-layout-id54_316ed4-02,
.kb-row-layout-id55_6b3e13-64,
.kb-row-layout-id56_25cf4b-bc,
.kb-row-layout-id57_5e4e9c-b3 { --b11-hero-mw: 820px; }
.kb-row-layout-id58_be2844-dc,
.kb-row-layout-id59_dec6fd-51,
.kb-row-layout-id60_61ffd2-df,
.kb-row-layout-id61_302e1e-e3,
.kb-row-layout-id62_8d7a5f-d5 { --b11-hero-mw: 1200px; }

/* The homepage trainers track was reaching nested rows inside each card. */
.entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap {
  grid-template-columns: none;
}
.entry-content .kb-row-layout-id51_7be62b-13 > .kt-row-column-wrap {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* .philosophy-inner uses one gap value on both axes. */
.entry-content .kb-row-layout-id51_856710-b2 > .kt-row-column-wrap {
  row-gap: clamp(48px, 6vw, 80px);
}

/* Contact: the source keeps a single 20px gutter across the whole section. */
.entry-content .kb-row-layout-id61_124645-79 > .kt-row-column-wrap {
  column-gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

/* Restated after section 41 so the base track above does not outrank them.
   Media queries add no specificity, so order is what decides here. */
@media (max-width: 1080px) {
  .entry-content .kb-row-layout-id51_7be62b-13 > .kt-row-column-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .entry-content .kb-row-layout-id51_7be62b-13 > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* ==========================================================================
   42. Second pass over sections 38-41, corrected against measured placement
   ========================================================================== */

/* A Kadence row renders a background-overlay div alongside its column wrap.
   Dissolving the row with display:contents promoted that overlay to a grid
   item, so it took the first cell of every band and pushed the cards one
   column right. The dissolved rows carry no background of their own. */
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > *:not(.kt-row-column-wrap),
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > *:not(.kt-row-column-wrap),
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > *:not(.kt-row-column-wrap),
.kb-row-layout-id52_87b97b-d3 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap > *:not(.wp-block-kadence-column),
.kb-row-layout-id53_5553b0-93 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap > *:not(.wp-block-kadence-column),
.kb-row-layout-id57_88d4b5-99 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-rowlayout > .kt-row-column-wrap > *:not(.wp-block-kadence-column) {
  display: none;
}

/* Homepage trainers: the cards live in a nested row, so the track has to be
   set there. The outer wrap holds a single full-width column. */
.entry-content .kb-row-layout-id51_7be62b-13 .kt-row-column-wrap { grid-template-columns: none; }
.entry-content .kb-row-layout-id51_7be62b-13 > .kt-row-column-wrap { grid-template-columns: minmax(0, 1fr); }
.entry-content .kb-row-layout-id51_7be62b-13 .wp-block-kadence-rowlayout > .kt-row-column-wrap {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Gallery: the tile track belongs to the six card rows. The filter bar and the
   intro sit in single-column rows and must stay full width. */
body.page-id-58 .entry-content .kt-row-column-wrap { grid-template-columns: none; }
.entry-content .kb-row-layout-id58_61da78-be > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.entry-content .kb-row-layout-id58_831d53-58 > .kt-row-column-wrap,
.entry-content .kb-row-layout-id58_688531-34 > .kt-row-column-wrap {
  grid-template-columns: minmax(0, 1fr);
}

/* Testimonials: the source shows the three "how to send yours" steps stacked,
   each a 30px number column beside its text, not as three cards. */
.entry-content .kb-row-layout-id59_656efc-36 > .kt-row-column-wrap {
  grid-template-columns: minmax(0, 1fr);
  row-gap: 14px;
  column-gap: 0;
}
.kb-row-layout-id59_656efc-36 .b11-card > .kt-inside-inner-col {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 14px;
  align-items: start;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

@media (max-width: 640px) {
  .kb-row-layout-id59_656efc-36 .b11-card > .kt-inside-inner-col {
    grid-template-columns: 30px 1fr;
  }
}

/* Restated last: media queries carry no specificity, so the trainers tracks
   above would otherwise win at every width. */
@media (max-width: 1080px) {
  .entry-content .kb-row-layout-id51_7be62b-13 .wp-block-kadence-rowlayout > .kt-row-column-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .entry-content .kb-row-layout-id51_7be62b-13 .wp-block-kadence-rowlayout > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* ==========================================================================
   43. Third pass - the last three placement faults
   ========================================================================== */

/* Kadence gives .kb-row-layout-wrap a `content: ""; display: table` clearfix
   pseudo-element. An element set to display:contents still generates its
   pseudo-elements, so each dissolved row was contributing one invisible grid
   item that stole a cell and shifted every card one column right. */
.kb-row-layout-id52_87b97b-d3 .wp-block-kadence-rowlayout::before,
.kb-row-layout-id52_87b97b-d3 .wp-block-kadence-rowlayout::after,
.kb-row-layout-id53_5553b0-93 .wp-block-kadence-rowlayout::before,
.kb-row-layout-id53_5553b0-93 .wp-block-kadence-rowlayout::after,
.kb-row-layout-id57_88d4b5-99 .wp-block-kadence-rowlayout::before,
.kb-row-layout-id57_88d4b5-99 .wp-block-kadence-rowlayout::after,
.kb-row-layout-id52_87b97b-d3 .kt-row-column-wrap::before,
.kb-row-layout-id52_87b97b-d3 .kt-row-column-wrap::after,
.kb-row-layout-id53_5553b0-93 .kt-row-column-wrap::before,
.kb-row-layout-id53_5553b0-93 .kt-row-column-wrap::after,
.kb-row-layout-id57_88d4b5-99 .kt-row-column-wrap::before,
.kb-row-layout-id57_88d4b5-99 .kt-row-column-wrap::after {
  content: none;
}

/* Gallery: the page-wide reset carries an element selector, so it outranked
   the per-row tracks. Matched here at the same weight. */
body.page-id-58 .entry-content .kb-row-layout-id58_61da78-be > .kt-row-column-wrap,
body.page-id-58 .entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
body.page-id-58 .entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
body.page-id-58 .entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
body.page-id-58 .entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
body.page-id-58 .entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* Testimonials steps: the columns carry no .b11-card class, so the earlier
   rule never matched. Source .t-step is a 30px number column beside the copy. */
.kb-row-layout-id59_656efc-36 .wp-block-kadence-column > .kt-inside-inner-col {
  display: grid;
  grid-template-columns: 30px 1fr;
  column-gap: 14px;
  row-gap: 4px;
  align-items: start;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.kb-row-layout-id59_656efc-36 .b11-chain-num { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
.kb-row-layout-id59_656efc-36 .b11-step-t { grid-column: 2; grid-row: 1; margin: 0; }
.kb-row-layout-id59_656efc-36 .b11-step-d { grid-column: 2; grid-row: 2; margin: 0; }

@media (max-width: 640px) {
  body.page-id-58 .entry-content .kb-row-layout-id58_61da78-be > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  }
}


/* ==========================================================================
   44. Remaining geometry - chain border, shop loop, article closer
   ========================================================================== */

/* Kadence writes the row border in its own per-block rule at (0,1,0), so the
   chain panel needs one more class to take. */
.entry-content .kb-row-layout-id55_a1023e-4c {
  border: 1px solid var(--b11-border);
  border-bottom: 0;
}
.entry-content .kb-row-layout-id55_9e339b-ef {
  border: 1px solid var(--b11-border);
  border-top: 0;
}

/* Shop loop: .products-grid is a 20px gutter, not 40px. */
body.woocommerce-shop ul.products,
.woocommerce ul.products {
  gap: 20px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* Article closer: .post-cta-grid is an 18px gutter inside a tinted band. */
.entry-content .kb-row-layout-id96_d523a6-2c > .kt-row-column-wrap {
  column-gap: 18px;
  row-gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.entry-content > .kb-row-layout-id96_b02a90-92,
.entry-content > .kb-row-layout-id96_d523a6-2c {
  background: var(--b11-bg-2);
}
.entry-content > .kb-row-layout-id96_b02a90-92 {
  border-top: 1px solid var(--b11-border);
}

/* ==========================================================================
   45. Page-specific breakpoints carried over from the source stylesheets
   ========================================================================== */

/* facilities: .building-inner collapses at 980, not at the auto-fit threshold */
@media (max-width: 980px) {
  .entry-content .kb-row-layout-id57_3b05c9-69 > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* testimonials: .t-grid drops to a single column at 700 */
@media (max-width: 700px) {
  .entry-content .kb-row-layout-id59_da0cc3-f5 > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id59_99c1f9-3d > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id59_c8f5ee-30 > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* gallery: .g-grid tightens to a 12px gutter at 560 */
@media (max-width: 560px) {
  body.page-id-58 .entry-content .kb-row-layout-id58_61da78-be > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
  body.page-id-58 .entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap {
    column-gap: 12px;
    row-gap: 12px;
  }
  .entry-content .kb-row-layout-id58_3f1cf1-14 > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id58_426f50-83 > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id58_8e5eba-cf > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id58_b16445-2a > .kt-row-column-wrap,
  .entry-content .kb-row-layout-id58_8f4ecb-3a > .kt-row-column-wrap { padding-top: 12px; }
}

/* shop: .products-grid drops its minimum tile to 160px at 640 */
@media (max-width: 640px) {
  body.woocommerce-shop ul.products,
  .woocommerce ul.products {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }
}

/* ==========================================================================
   46. Hover states bound to the classes the port actually uses
   The gallery tiles and the membership plan/package cards do not carry
   .b11-card, so the lifts in section 40 were matching nothing.
   ========================================================================== */

/* .g-item:hover - lift plus a warm edge */
.b11-gal-item > .kt-inside-inner-col {
  transition: border-color var(--b11-dur-slow) var(--b11-ease-out),
              transform var(--b11-dur-slow) var(--b11-ease-out);
}
.b11-gal-item:hover > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.4);
  transform: translateY(-3px);
}

/* .m-plan:hover and .m-pack:hover */
.m-plan,
.m-pack {
  transition: border-color var(--b11-dur-slow) var(--b11-ease-out),
              transform var(--b11-dur-slow) var(--b11-ease-out);
}
.m-plan:hover {
  border-color: rgba(255,120,110,0.35);
  transform: translateY(-3px);
}
.m-pack:hover {
  border-color: rgba(255,120,110,0.3);
  border-top-color: var(--b11-red);
  transform: translateY(-3px);
}

/* .t-card:hover - warmer surface, no lift */
.page-id-59 .b11-card:hover > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.32);
  background: rgba(255,255,255,0.065);
}

/* .trainer-card / .zone-card:hover - edge only */
.page-id-56 .b11-card:hover > .kt-inside-inner-col,
.page-id-57 .b11-card:hover > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.4);
}

@media (prefers-reduced-motion: reduce) {
  .b11-gal-item:hover > .kt-inside-inner-col,
  .m-plan:hover,
  .m-pack:hover { transform: none; }
}


/* ==========================================================================
   47. Logo link
   Kadence underlines every link inside a header/footer HTML item via
   `.inner-link-style-normal a:not(.button)` (0,2,1), which outranked .b11-logo.
   ========================================================================== */

#masthead .inner-link-style-normal a.b11-logo,
#colophon .inner-link-style-normal a.b11-logo,
a.b11-logo,
a.b11-logo:hover,
a.b11-logo:focus {
  text-decoration: none;
}

/* ==========================================================================
   48. 404
   Built on the interior .page-hero pattern: 820px column, the same red bloom
   and grid wash, the same type ramp.
   ========================================================================== */

.b11-404 {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--b11-border);
  background: var(--b11-bg);
}

.b11-404::before {
  content: '';
  position: absolute;
  width: 900px;
  height: 400px;
  top: -160px;
  left: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(179,36,36,0.22), transparent 65%);
  filter: blur(22px);
  pointer-events: none;
}

.b11-404::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(ellipse 80% 62% at 50% 0%, #000 38%, transparent 100%);
          mask-image: radial-gradient(ellipse 80% 62% at 50% 0%, #000 38%, transparent 100%);
  pointer-events: none;
}

.b11-404-inner {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(72px, 9vw, 110px) 24px;
  text-align: center;
}

.b11-404-label {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-red-light);
  margin: 0 0 16px;
}

.b11-404 h1 {
  font-family: var(--b11-font-display);
  font-size: clamp(34px, 5vw, 60px);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: var(--b11-text);
  margin: 0 0 14px;
  text-transform: none;
}

.b11-404-p {
  color: var(--b11-text-2);
  font-size: 17px;
  line-height: 1.65;
  margin: 0 auto;
  max-width: 540px;
}

/* Search - the contact form's input spec */
.b11-404-search {
  display: flex;
  gap: 8px;
  max-width: 460px;
  margin: 30px auto 0;
}

.b11-404-search input[type="search"] {
  flex: 1;
  min-width: 0;
  background: var(--b11-bg);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-md);
  padding: 13px 14px;
  color: var(--b11-text);
  font-family: var(--b11-font-body);
  font-size: 14px;
  outline: none;
  transition: border-color var(--b11-dur-fast);
  -webkit-appearance: none;
          appearance: none;
}

.b11-404-search input[type="search"]::placeholder { color: var(--b11-text-4); }
.b11-404-search input[type="search"]:focus { border-color: var(--b11-border-3); }
.b11-404-search input[type="search"]:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 0;
  border-radius: var(--b11-r-md);
}

.b11-404-search button {
  flex-shrink: 0;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-md);
  color: var(--b11-text);
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  padding: 13px 20px;
  cursor: pointer;
  transition: background var(--b11-dur-fast), border-color var(--b11-dur-fast);
}

.b11-404-search button:hover {
  background: rgba(255,255,255,0.065);
  border-color: var(--b11-border-3);
}

/* Buttons - .btn / .btn-lg from the source */
.b11-404-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 26px;
}

.b11-404-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-weight: 600;
  padding: 15px 32px;
  min-height: 54px;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--b11-dur-base) var(--b11-ease-out),
              box-shadow var(--b11-dur-base) var(--b11-ease-out),
              transform var(--b11-dur-fast) var(--b11-ease-out),
              border-color var(--b11-dur-base) var(--b11-ease-out),
              color var(--b11-dur-base);
}

.b11-404-btn-red {
  background: var(--b11-red);
  color: #fff;
  border: 0;
  box-shadow: 0 0 28px rgba(179,36,36,0.35);
}

.b11-404-btn-red:hover {
  background: var(--b11-red-hover, #c72929);
  box-shadow: 0 0 48px rgba(179,36,36,0.6);
  transform: translateY(-2px);
  color: #fff;
}

.b11-404-btn-outline {
  border: 1px solid var(--b11-border-2);
  background: rgba(255,255,255,0.04);
  color: var(--b11-text);
}

.b11-404-btn-outline:hover {
  border-color: var(--b11-border-3);
  background: rgba(255,255,255,0.065);
  color: #fff;
  transform: translateY(-2px);
}

/* Quick links */
.b11-404-more-inner {
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 72px) 24px;
  text-align: center;
}

.b11-404-more-label {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-text-4);
  margin: 0 0 18px;
}

.b11-404-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.b11-404-links a {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--b11-border-2);
  border-radius: 999px;
  padding: 8px 16px;
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--b11-text-2);
  text-decoration: none;
  transition: color var(--b11-dur-fast), background var(--b11-dur-fast), border-color var(--b11-dur-fast);
}

.b11-404-links a:hover {
  color: var(--b11-text);
  background: rgba(255,255,255,0.065);
  border-color: var(--b11-border-3);
}

/* The 404 supplies its own vertical rhythm, so the theme's shell padding goes. */
body.error404 .entry-content-wrap,
body.error404 .content-wrap,
body.error404 .site-main {
  padding-top: 0;
  padding-bottom: 0;
}

@media (max-width: 560px) {
  .b11-404-search { flex-direction: column; }
  .b11-404-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .b11-404-btn:hover { transform: none; }
}


/* ==========================================================================
   49. Card surfaces, corrected against the source card definitions
   Nearly every card in the static build is the same three declarations:
     border: 1px solid var(--border);  border-radius: var(--r-lg);  background: var(--bg-4);
   The port had --bg-3 (#0f0f11) and a 20px radius, which was wrong on every
   page except the homepage. Padding is per component, so it is set per row.
   ========================================================================== */

.b11-card > .kt-inside-inner-col,
.b11-plan-card > .kt-inside-inner-col {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
}

/* --- Homepage: the four cards that keep the 20px radius --------------------
   .arena-card, .testimonial-card, .plan and .trainer-card sit on --bg-3 with
   --r-xl, unlike every interior card. */

.kb-row-layout-id51_994dca-a9 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id51_d9ddb5-75 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id51_7be62b-13 .b11-card > .kt-inside-inner-col,
.page-id-51 .b11-plan-card > .kt-inside-inner-col {
  background: var(--b11-bg-3);
  border-radius: var(--b11-r-xl, 20px);
}

/* .arena-card - a vertical gradient, and the body carries the padding */
.kb-row-layout-id51_994dca-a9 .b11-card > .kt-inside-inner-col {
  background: linear-gradient(180deg, var(--b11-bg-3), var(--b11-bg-2));
  padding: 28px 30px 30px !important;
}

/* .testimonial-card */
.kb-row-layout-id51_d9ddb5-75 .b11-card > .kt-inside-inner-col {
  padding: 28px 28px 26px !important;
}

/* .plan / .plan-featured */
.page-id-51 .b11-plan-card > .kt-inside-inner-col {
  padding: 32px 28px 28px !important;
}
.page-id-51 .b11-card-featured > .kt-inside-inner-col,
.page-id-51 .b11-plan-card.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,110,100,0.38);
  background: linear-gradient(160deg, #180f0f, var(--b11-bg-3));
}

/* .trainer-card - photo then body, so no padding on the card itself */
.kb-row-layout-id51_7be62b-13 .b11-card > .kt-inside-inner-col {
  padding: 22px 22px 24px !important;
}

/* .principle - 16px radius on --bg-3 */
.page-id-51 .b11-principle > .kt-inside-inner-col,
.b11-principle > .kt-inside-inner-col {
  background: var(--b11-bg-3);
  border-radius: var(--b11-r-lg);
  padding: 26px 28px !important;
}

/* --- About (52) ---------------------------------------------------------- */
/* .ab-pillar - a compact 12px tile */
.kb-row-layout-id52_4c68dc-bd .wp-block-kadence-column > .kt-inside-inner-col,
.kb-row-layout-id52_d9c045-d9 .wp-block-kadence-column > .kt-inside-inner-col {
  border-radius: var(--b11-r-md) !important;
  padding: 18px 20px !important;
}
/* .ab-principle - warm edge over a diagonal gradient */
.kb-row-layout-id52_67c677-73 .b11-card > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.22);
  background: linear-gradient(135deg, #17171a, #121214);
  padding: 32px 30px !important;
}
/* .ab-stat */
.kb-row-layout-id52_7f91a8-93 .wp-block-kadence-column > .kt-inside-inner-col {
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  background: var(--b11-bg-4);
  padding: 26px 24px !important;
}

/* --- Programs (53): .pg-card --------------------------------------------- */
.kb-row-layout-id53_de2c69-4a .b11-card > .kt-inside-inner-col,
.kb-row-layout-id53_3f427e-6c .b11-card > .kt-inside-inner-col,
.kb-row-layout-id53_98bca3-51 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id53_3e4c1d-f6 .b11-card > .kt-inside-inner-col {
  padding: 30px 30px 28px !important;
}

/* --- Guidance (55): .gf-card --------------------------------------------- */
.kb-row-layout-id55_823d0c-14 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id55_6b0abc-d7 .b11-card > .kt-inside-inner-col {
  padding: 30px 28px 28px !important;
}

/* --- Membership (54) ----------------------------------------------------- */
/* .m-plan */
.page-id-54 .m-plan {
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  background: var(--b11-bg-4);
  padding: 32px 30px 30px;
}
/* .m-pack - a 3px red cap rather than a hairline */
.page-id-54 .m-pack {
  border: 1px solid var(--b11-border);
  border-top: 3px solid var(--b11-red);
  border-radius: var(--b11-r-lg);
  background: var(--b11-bg-4);
  padding: 30px 28px 28px;
}
/* .m-policy - a dashed red panel, not a solid card */
.page-id-54 .m-policy,
.page-id-54 .b11-policy {
  border: 1px dashed rgba(255,120,110,0.3);
  border-radius: var(--b11-r-lg);
  background: rgba(179,36,36,0.05);
  padding: 26px 28px;
}
/* Add-ons row cards */
.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col {
  padding: 30px 28px 28px !important;
}

/* --- Testimonials (59): .t-card ------------------------------------------ */
.kb-row-layout-id59_da0cc3-f5 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id59_99c1f9-3d .b11-card > .kt-inside-inner-col,
.kb-row-layout-id59_c8f5ee-30 .b11-card > .kt-inside-inner-col {
  padding: 26px 26px 22px !important;
}

/* --- Gallery (58): .g-item ----------------------------------------------- */
.b11-gal-item > .kt-inside-inner-col {
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
}

/* ==========================================================================
   50. Type scale, now that the base is 16px/1.6 as in the source
   ========================================================================== */

/* Mono labels take the body leading, never a looser one. */
.b11-mono,
.b11-head,
.b11-chip,
.b11-tag,
.b11-note,
.b11-chain-num { line-height: 1.6; }

/* Section leads sit at 17px in the source, above the 16px body. */
.b11-lead,
.b11-sec-lead { font-size: 17px; line-height: 1.65; }



/* ==========================================================================
   52. Corrections to section 49-51
   ========================================================================== */

/* The global card radius carries !important (Kadence's per-block CSS loads
   after this file), so the homepage overrides need the same weight. */
.kb-row-layout-id51_994dca-a9 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id51_d9ddb5-75 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id51_7be62b-13 .b11-card > .kt-inside-inner-col,
.page-id-51 .b11-plan-card > .kt-inside-inner-col,
.page-id-51 .wp-block-kadence-column.b11-card,
.page-id-51 .wp-block-kadence-column.b11-plan-card {
  border-radius: var(--b11-r-xl) !important;
}

.kb-row-layout-id51_d9ddb5-75 .b11-card > .kt-inside-inner-col,
.kb-row-layout-id51_7be62b-13 .b11-card > .kt-inside-inner-col,
.page-id-51 .b11-plan-card > .kt-inside-inner-col {
  background: var(--b11-bg-3) !important;
}

.kb-row-layout-id51_994dca-a9 .b11-card > .kt-inside-inner-col {
  background: linear-gradient(180deg, var(--b11-bg-3), var(--b11-bg-2)) !important;
}

.page-id-51 .b11-plan-card.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,110,100,0.38) !important;
  background: linear-gradient(160deg, #180f0f, var(--b11-bg-3)) !important;
}

/* .principle keeps 16px on --bg-3 */
.b11-principle > .kt-inside-inner-col {
  background: var(--b11-bg-3) !important;
  border-radius: var(--b11-r-lg) !important;
}

/* --- Marquee: Barlow Condensed 13/700, not mono ------------------------- */
/* Section 51 had this the wrong way round. */
.b11-marquee .b11-marquee-item,
.b11-marquee p,
.b11-marquee span:not(.b11-marquee-dot) {
  font-family: var(--b11-font-display);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--b11-text-3);
}

/* --- Leads inherit the 16px base; only the section intro steps up ------- */
.b11-lead,
.b11-sec-lead { font-size: inherit; line-height: inherit; }

/* --- Numbered pillar labels carry no tracking in the source ------------- */
.page-id-52 .b11-chain-num,
.page-id-53 .b11-chain-num,
.page-id-55 .b11-chain-num { letter-spacing: normal !important; }

/* --- Programs: the tag row sits under a hairline ------------------------ */
.page-id-53 .b11-tags {
  padding-top: 18px;
  border-top: 1px solid var(--b11-border);
  margin-top: 4px;
}

/* --- Membership: the featured plan keeps its warm edge ------------------ */
.page-id-54 .m-plan.featured,
.page-id-54 .b11-plan-card.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.3) !important;
}

/* Add-on rows are list rows, not cards - undo the padding from section 49. */
.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col {
  padding: 28px !important;
}

/* ==========================================================================
   53. Photo placeholders
   In the source these are panels that bleed to the card edge: a striped or
   graded block with a small mono label centred in it, with the card body
   padded beneath. The port rendered them as a paragraph on the card ground.
   ========================================================================== */

.b11-ph {
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: 1.6 !important;
  color: #4a4a4a !important;
  background: repeating-linear-gradient(-45deg, #141416 0, #141416 12px, #121214 12px, #121214 24px);
  margin: -28px -28px 24px !important;
  height: 200px;
}

/* Trainers: a taller portrait panel */
.page-id-56 .b11-ph { height: 280px; }

/* Homepage arena cards: a soft diagonal wash, an 11px label, and a hairline
   under the panel. The card padding there is 28/30/30. */
.kb-row-layout-id51_994dca-a9 .b11-ph {
  height: 240px;
  background: linear-gradient(160deg, #161618, #101012);
  border-bottom: 1px solid var(--b11-border);
  font-size: 11px !important;
  letter-spacing: 0.04em !important;
  color: #303030 !important;
  margin: -28px -30px 24px !important;
}

/* Homepage hero media */
.b11-hero .b11-ph,
.b11-hero-ph {
  height: clamp(260px, 38vw, 500px);
  background: linear-gradient(160deg, #161618 0%, #0e0e10 50%, #131115 100%);
  border-bottom: 0;
  font-size: 12px !important;
  letter-spacing: 0.04em !important;
  color: #323232 !important;
  margin: 0 !important;
  border-radius: var(--b11-r-xl);
}

/* Gallery tiles are the panel plus a caption beneath */
.page-id-58 .b11-ph {
  height: 220px;
  color: #4d4d4d !important;
  margin: -28px -28px 18px !important;
}

@media (max-width: 767px) {
  .b11-ph { margin: -24px -22px 20px !important; }
  .kb-row-layout-id51_994dca-a9 .b11-ph { margin: -24px -22px 20px !important; }
}


/* ==========================================================================
   54. Photo cards are a frame, not a padded box
   .trainer-card, .zone-card and .g-item carry no padding in the source: the
   photo panel bleeds to the edge and .trainer-body / .zone-body pad the copy
   beneath it at 24px 26px. The port padded the whole card instead.
   ========================================================================== */

.page-id-56 .b11-card > .kt-inside-inner-col,
.page-id-57 .b11-card > .kt-inside-inner-col,
.page-id-58 .b11-gal-item > .kt-inside-inner-col {
  padding: 0 !important;
  overflow: hidden;
}

.page-id-56 .b11-card > .kt-inside-inner-col > *:not(.b11-ph),
.page-id-57 .b11-card > .kt-inside-inner-col > *:not(.b11-ph),
.page-id-58 .b11-gal-item > .kt-inside-inner-col > *:not(.b11-ph) {
  padding-left: 26px;
  padding-right: 26px;
}

.page-id-56 .b11-card > .kt-inside-inner-col > *:last-child,
.page-id-57 .b11-card > .kt-inside-inner-col > *:last-child,
.page-id-58 .b11-gal-item > .kt-inside-inner-col > *:last-child {
  padding-bottom: 24px;
}

.page-id-56 .b11-ph,
.page-id-57 .b11-ph,
.page-id-58 .b11-ph {
  margin: 0 0 24px !important;
}

/* .zone-desc and .trainer-bio are 14px, not the 16px body size. */
.page-id-56 .b11-card p:not(.b11-ph):not(.b11-role):not(.b11-head),
.page-id-57 .b11-card p:not(.b11-ph):not(.b11-role):not(.b11-head) {
  font-size: 14px;
  line-height: 1.6;
  color: var(--b11-text-3);
}

/* ==========================================================================
   55. Chips
   .trainer-arena, .trainer-cred and .zone-tag are mono 11px at 0.16em in the
   source's own case - the port uppercased them and dropped the accent.
   ========================================================================== */

.b11-chip {
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.16em;
}

.page-id-56 .b11-chip-red,
.page-id-51 .b11-chip-red {
  color: var(--b11-red-light);
}

/* ==========================================================================
   56. Homepage odds and ends
   ========================================================================== */

/* .plan-feat rows run at 1.5, not the body 1.6. */
.page-id-51 .b11-plan-card li,
.page-id-51 .b11-plan-feat { line-height: 1.5; }

/* .arena-tag keeps the body face at 12px, not a mono chip. */
.kb-row-layout-id51_994dca-a9 .b11-tags .b11-chip,
.kb-row-layout-id51_994dca-a9 .b11-chip {
  font-family: var(--b11-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: #c0c0c0;
}


/* ==========================================================================
   57. Closing CTA panels
   .ab-cta-box and .pg-cta-box are a flat --bg-4 card; .m-cta-box, .gf-cta-box
   and .pg-fw-box are a warm-edged diagonal gradient. All five are --r-xl.
   ========================================================================== */

.b11-cta-box,
.b11-cta-box > .kt-inside-inner-col {
  border-radius: var(--b11-r-xl) !important;
}

.page-id-52 .b11-cta-box > .kt-inside-inner-col,
.page-id-53 .b11-cta-box > .kt-inside-inner-col,
.page-id-56 .b11-cta-box > .kt-inside-inner-col,
.page-id-57 .b11-cta-box > .kt-inside-inner-col {
  border: 1px solid var(--b11-border) !important;
  background: var(--b11-bg-4) !important;
  padding: clamp(34px, 5vw, 56px) !important;
}

.page-id-54 .b11-cta-box > .kt-inside-inner-col,
.page-id-55 .b11-cta-box > .kt-inside-inner-col {
  border: 1px solid rgba(255,120,110,0.22) !important;
  background: linear-gradient(135deg, #17171a, #121214) !important;
  padding: clamp(34px, 5vw, 56px) !important;
}

.page-id-55 .b11-cta-box > .kt-inside-inner-col {
  padding: clamp(36px, 5vw, 60px) !important;
}

/* .pg-fw-box - the framework panel on Programs */
.kb-row-layout-id53_5553b0-93 .b11-fw-box > .kt-inside-inner-col,
.page-id-53 .b11-fw-box > .kt-inside-inner-col {
  border: 1px solid rgba(255,120,110,0.2) !important;
  border-radius: var(--b11-r-xl) !important;
  background: linear-gradient(135deg, #17171a, #121214) !important;
  padding: clamp(32px, 4.5vw, 52px) !important;
}

/* The athlete-track callout nested in the MMA card */
.page-id-53 .b11-inset > .kt-inside-inner-col {
  border: 1px solid rgba(255,120,110,0.2) !important;
  border-radius: var(--b11-r-md) !important;
  background: linear-gradient(135deg, #17171a, #121214) !important;
  padding: 20px 24px !important;
}

/* ==========================================================================
   58. Membership price rows and the featured plan
   ========================================================================== */

/* .m-row - a hairline-separated list row, not a card. */
.page-id-54 .b11-row,
.page-id-54 .b11-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 24px;
  border-bottom: 1px solid var(--b11-border);
}

.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col {
  padding: 0 !important;
}
.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col > * {
  padding-left: 24px;
  padding-right: 24px;
}
.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col > *:first-child {
  padding-top: 22px;
}
.kb-row-layout-id54_a6a4c0-bf .b11-card > .kt-inside-inner-col > *:last-child {
  padding-bottom: 22px;
}

/* The featured plan keeps a warm edge on both the column and its surface. */
.page-id-54 .b11-card-featured,
.page-id-54 .b11-card-featured > .kt-inside-inner-col,
.page-id-54 .b11-plan-card.b11-card-featured > .kt-inside-inner-col {
  border-color: rgba(255,120,110,0.3) !important;
}

/* Plan feature rows are 15px/500 in the source. */
.page-id-54 .b11-plan-card li,
.page-id-54 .b11-feat li,
.page-id-54 .b11-plan-feat { font-weight: 500; line-height: 1.6; }

/* ==========================================================================
   59. Remaining measured values
   ========================================================================== */

/* Section leads inherit 16px; the philosophy and framework copy is 16/1.75. */
.page-id-51 .b11-phil-text p,
.page-id-52 .b11-phil-text p { font-size: 16px; }

/* Homepage plan feature rows run at 1.5. */
.page-id-51 .b11-plan-card li { line-height: 1.5; }

/* Pillar numbers: no tracking anywhere they appear as a plain numeral. */
.b11-chain-num { letter-spacing: normal !important; }

/* Chip casing is per page: .pg-tag and .b11-tag are uppercase, while
   .trainer-arena, .trainer-cred and .zone-tag keep the source's own case. */
.page-id-51 .b11-chip,
.page-id-56 .b11-chip,
.page-id-57 .b11-chip { text-transform: none !important; }
.page-id-53 .b11-chip,
.page-id-53 .b11-tags .b11-chip { text-transform: uppercase !important; }


/* ==========================================================================
   60. Homepage hero
   Measured against .hero in index.html. Three things were missing outright:
   the two blinking dots either side of the badge, the concentric rings behind
   the headline, and the graded panel behind the hero photo placeholder.
   ========================================================================== */

/* --- Badge: the dots are real elements in the source. The port renders the
   badge as a single <h1>, so they are drawn as its pseudo-elements. --------- */

.b11-hero-badge {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
}

.b11-hero-badge::before,
.b11-hero-badge::after {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e5484d;
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(229,72,77,0.7);
  animation: b11DotBlink 2.4s ease-in-out infinite;
}

@keyframes b11DotBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.3; }
}

/* --- Concentric rings, centred at 50% / 28% as in .hero-rings ------------- */

.b11-hero > .kt-row-column-wrap { position: relative; }

.b11-hero > .kt-row-column-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    radial-gradient(circle at 50% 28%, transparent 159px, rgba(179,36,36,0.18) 159px, rgba(179,36,36,0.18) 160px, transparent 161px),
    radial-gradient(circle at 50% 28%, transparent 279px, rgba(179,36,36,0.18) 279px, rgba(179,36,36,0.18) 280px, transparent 281px),
    radial-gradient(circle at 50% 28%, transparent 399px, rgba(179,36,36,0.08) 399px, rgba(179,36,36,0.08) 400px, transparent 401px);
}

.b11-hero > .kt-row-column-wrap > * { position: relative; z-index: 1; }

/* --- Hero photo: .hero-media is the frame, .hero-placeholder the panel ---- */

.b11-hero .b11-hero-media {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  height: clamp(260px, 38vw, 500px);
  margin: clamp(52px, 6vw, 80px) 0 0 !important;
  padding: 0 !important;
  border: 1px solid var(--b11-border) !important;
  border-radius: var(--b11-r-xl) !important;
  overflow: hidden;
  background: linear-gradient(160deg, #161618 0%, #0e0e10 50%, #131115 100%) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.04),
              0 32px 100px rgba(0,0,0,0.8),
              0 0 80px rgba(179,36,36,0.06);
  font-family: var(--b11-font-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.6 !important;
  color: #323232 !important;
  text-align: center !important;
}

/* ==========================================================================
   61. Buttons
   .btn-outline is a 1px hairline over a 4% wash; the port drew a 3px edge on
   nothing. The red button carries a resting glow in both hero and closer.
   ========================================================================== */

.page-id-51 .kb-button.kt-button.kb-btn-global-outline,
.b11-hero .kb-button.kb-btn-global-outline,
.kb-row-layout-id51_c2ebca-c1 .kb-button.kb-btn-global-outline {
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--b11-border-2) !important;
  background-color: rgba(255,255,255,0.04) !important;
  color: var(--b11-text) !important;
}

.page-id-51 .kb-button.kt-button.kb-btn-global-outline:hover,
.kb-row-layout-id51_c2ebca-c1 .kb-button.kb-btn-global-outline:hover {
  border-color: var(--b11-border-3) !important;
  background-color: rgba(255,255,255,0.065) !important;
  color: #fff !important;
}

/* The closing CTA's primary button had lost the glow the hero one keeps. */
.kb-row-layout-id51_c2ebca-c1 .kb-button.kb-btn-global-fill {
  box-shadow: 0 0 28px rgba(179,36,36,0.35) !important;
}

.kb-row-layout-id51_c2ebca-c1 .kb-button.kb-btn-global-fill:hover {
  box-shadow: 0 0 48px rgba(179,36,36,0.6) !important;
}

/* ==========================================================================
   62. Homepage closing section
   .cta-section: the glow sits below the fold of the band, not above it, and
   the copy runs to 520px with 34px beneath the heading.
   ========================================================================== */

.entry-content > .kb-row-layout-id51_c2ebca-c1 { position: relative; overflow: hidden; }

/* .cta-glow - 1000x500 at bottom: -240px, not the interior-page bloom. */
.kb-row-layout-id51_c2ebca-c1::before {
  top: auto !important;
  bottom: -240px !important;
  width: 1000px !important;
  height: 500px !important;
  background: radial-gradient(ellipse at center, rgba(179,36,36,0.28), transparent 65%) !important;
  filter: blur(32px) !important;
}

/* .cta-beams - three vertical shafts at 0%, 20% and 60%. */
.kb-row-layout-id51_c2ebca-c1::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    linear-gradient(180deg, transparent, rgba(179,36,36,0.12), transparent),
    linear-gradient(180deg, transparent, rgba(179,36,36,0.072), transparent),
    linear-gradient(180deg, transparent, rgba(179,36,36,0.048), transparent);
  background-size: 2px 100%, 1px 100%, 1px 100%;
  background-position: 0 0, 20% 0, 60% 0;
  background-repeat: no-repeat;
}

.kb-row-layout-id51_c2ebca-c1 > .kt-row-column-wrap { position: relative; z-index: 1; }

/* .cta-h2 sits 18px above the copy, and .cta-p caps at 520px. */
.kb-row-layout-id51_c2ebca-c1 .b11-cta-h2,
.page-id-51 .b11-cta-h2 {
  margin-bottom: 18px !important;
}

.kb-row-layout-id51_c2ebca-c1 .b11-cta-p,
.kb-row-layout-id51_c2ebca-c1 .kt-inside-inner-col > p:not(.b11-mono):not(.b11-cta-h2) {
  max-width: 520px !important;
  margin: 0 auto 34px !important;
}

@media (prefers-reduced-motion: reduce) {
  .b11-hero-badge::before,
  .b11-hero-badge::after { animation: none; }
}

/* ==========================================================================
   63. Hero: the button row sits 34px under the copy
   .hero-ctas is margin-top: 34px in the source; the port had the space on the
   bottom instead, which lifted the buttons and the photo panel by 34px.
   ========================================================================== */

.b11-hero .b11-hero-ctas,
.b11-hero .kb-buttons-wrap {
  margin: 34px 0 0 !important;
}

/* ==========================================================================
   64. WhatsApp buttons carry the platform glyph
   An 18px icon at the button's own 8px gap, masked so it takes currentColor.
   ========================================================================== */

.kb-button.b11-wa-glyph::before {
  content: '';
  /* Kadence positions its button pseudo-elements absolutely for the hover
     wash, which takes them out of flow - the glyph has to sit in the line. */
  position: static !important;
  display: block !important;
  inset: auto !important;
  opacity: 1 !important;
  transform: none !important;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: var(--b11-wa-icon) center / contain no-repeat;
          mask: var(--b11-wa-icon) center / contain no-repeat;
}

:root {
  --b11-wa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
}

/* Footer column headings keep the accent against any later rule. */
.site-footer .b11-foot-head,
#colophon .b11-foot-head { color: var(--b11-red-light); }

/* ==========================================================================
   65. Gradient accent words
   The static build uses two different gradients and the port had them mixed up:
     display headings  .hero-slogan em / .philosophy-h2 em
                       linear-gradient(125deg, #ff7060, #b32424)
     pull quotes       .ab-quote blockquote span / .gf-quote blockquote span
                       linear-gradient(90deg,  #ff6b5e, #b32424)
   ========================================================================== */

/* Homepage philosophy heading: "Bravo!" was rendering solid white. */
.kb-row-layout-id51_856710-b2 h2 em,
.kb-row-layout-id51_856710-b2 .b11-phil-h2 em {
  font-style: italic;
  background: linear-gradient(125deg, #ff7060, #b32424) !important;
  -webkit-background-clip: text !important;
          background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* Pull quotes take the 90deg pairing, not the display one. */
.kb-row-layout-id52_c6b261-35 .b11-quote span,
.kb-row-layout-id52_c6b261-35 blockquote span,
.kb-row-layout-id52_c6b261-35 p span,
.kb-row-layout-id55_e79526-ba .b11-quote span,
.kb-row-layout-id55_e79526-ba blockquote span,
.kb-row-layout-id55_e79526-ba p span {
  background: linear-gradient(90deg, #ff6b5e, #b32424) !important;
  -webkit-background-clip: text !important;
          background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}



/* ==========================================================================
   66. Pull quote sizing
   The two pull quotes are not the same size. .ab-quote blockquote is
   clamp(23px, 3.4vw, 38px) upright; .gf-quote blockquote is
   clamp(24px, 3.6vw, 40px) italic. The port had both on the About value.
   ========================================================================== */

.page-id-55 .b11-quote {
  font-size: clamp(24px, 3.6vw, 40px) !important;
  font-style: italic !important;
  line-height: 1.26 !important;
}


/* ==========================================================================
   67. Shop
   Measured against shop.html. Its three parts are a left-aligned 1200px hero,
   a .filter-bar of pill buttons, and a .products-grid of frame cards whose
   photo panel bleeds to the card edge.

   The port had none of the three: the hero was the centred 880px variant used
   by About, the filter row was a mono 11px chip row with no current state, and
   the loop was Kadence's own padded card with a square photo and the price and
   button stacked. Scoped to the catalogue body classes so nothing else moves.
   ========================================================================== */

/* --- Hero -----------------------------------------------------------------
   .page-hero-inner is max-width 1200 and left aligned here, not the 880px
   centred column the interior pages use. .page-hero-label is plain mono text:
   the pill is .ab-tag on About, and does not belong on this page. ----------- */

body.woocommerce-shop .b11-page-hero > .kt-row-column-wrap {
  max-width: 1200px !important;
  padding: clamp(56px, 7vw, 88px) 24px !important;
}

body.woocommerce-shop .b11-page-hero .b11-tag {
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  line-height: 1.6 !important;
  color: var(--b11-red-light) !important;
}

body.woocommerce-shop .b11-page-hero h1 {
  margin: 0 0 14px !important;
  /* Kadence's own responsive steps land a pixel under the source's clamp
     between the breakpoints, which showed up as a 2px hero at 900px. */
  font-size: clamp(34px, 5vw, 60px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.01em !important;
}

body.woocommerce-shop .b11-page-hero .kt-inside-inner-col > p:not(.b11-tag) {
  max-width: 520px !important;
  margin: 0 !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-2) !important;
}

/* --- Category archive hero -------------------------------------------------
   The shop page carries its hero as page content; a category archive has none,
   so the plugin prints this one. Same pattern, same measurements. ----------- */

.b11-shop-hero {
  border-bottom: 1px solid var(--b11-border);
  background: var(--b11-bg);
}

.b11-shop-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) 24px;
}

.b11-shop-hero-label {
  margin: 0 0 14px;
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-red-light);
}

.b11-shop-hero-h1 {
  margin: 0 0 14px;
  font-family: var(--b11-font-display);
  font-size: clamp(34px, 5vw, 60px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--b11-text);
}

.b11-shop-hero-p,
.b11-shop-hero-p p {
  max-width: 520px;
  margin: 0;
  font-size: 17px;
  line-height: 1.65;
  color: var(--b11-text-2);
}

/* --- Filter row ------------------------------------------------------------
   These are the same pills Gallery and Testimonials use - .g-tab and .t-tab are
   byte-identical to each other - so the shop now reads as one family with them:
   mono 12 at 0.09em on --bg-4, and the red fill on the active one.

   shop.html's own .filter-bar is a different control (body 13/600, 40px, white
   active pill). Matching the other two was the client's call, and it is the one
   deliberate deviation from the shipped HTML on this page.

   On the shop page these are buttons and nothing navigates; the archive pages
   keep links, which is what .is-active is for.
   -------------------------------------------------------------------------- */

.b11-shop-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  max-width: 1200px;
  margin: clamp(40px, 5vw, 56px) auto 36px;
  padding: 0 24px;
}

.b11-shop-filters .b11-catlink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 17px;
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-pill);
  background: var(--b11-bg-4);
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--b11-text-3);
  cursor: pointer;
  transition: color var(--b11-dur-fast),
              border-color var(--b11-dur-fast),
              background var(--b11-dur-fast);
}

.b11-shop-filters .b11-catlink:hover {
  color: var(--b11-text);
  border-color: var(--b11-border-3);
  background: var(--b11-bg-4);
}

.b11-shop-filters .b11-catlink.is-active,
.b11-shop-filters .b11-catlink[aria-pressed="true"] {
  color: #fff;
  background: var(--b11-red);
  border-color: var(--b11-red);
}

.b11-shop-filters .b11-catlink:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* --- The grid --------------------------------------------------------------
   .products-grid shares the hero's 1200px shell and 24px gutter. Kadence runs
   the loop at the full container width. ------------------------------------ */

body.woocommerce-shop ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.post-type-archive-product ul.products {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px clamp(40px, 5vw, 56px);
  gap: 20px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* --- The card --------------------------------------------------------------
   .product-card carries no padding: the photo panel runs to the frame and
   .product-body pads the copy beneath it. ---------------------------------- */

body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product,
body.post-type-archive-product ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden;
  background: var(--b11-bg-4) !important;
  border: 1px solid var(--b11-border) !important;
  border-radius: var(--b11-r-lg) !important;
  box-shadow: none !important;
  text-align: left;
  transition: border-color var(--b11-dur-base);
}

body.woocommerce-shop ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover,
body.post-type-archive-product ul.products li.product:hover {
  border-color: rgba(255,120,110,0.4) !important;
}

/* .product-img - 210px of the -45deg stripe, whatever is inside it. */
body.woocommerce-shop ul.products li.product .woocommerce-loop-image-link,
body.tax-product_cat ul.products li.product .woocommerce-loop-image-link,
body.tax-product_tag ul.products li.product .woocommerce-loop-image-link,
body.post-type-archive-product ul.products li.product .woocommerce-loop-image-link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 210px;
  margin: 0;
  overflow: hidden;
  background: repeating-linear-gradient(-45deg, #141416 0, #141416 12px, #121214 12px, #121214 24px);
}

body.woocommerce-shop ul.products li.product .woocommerce-loop-image-link img,
body.tax-product_cat ul.products li.product .woocommerce-loop-image-link img,
body.tax-product_tag ul.products li.product .woocommerce-loop-image-link img,
body.post-type-archive-product ul.products li.product .woocommerce-loop-image-link img {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
  background: none;
  aspect-ratio: auto;
  object-fit: cover;
}

/* .product-img-label - the mono placeholder while a product has no photo. */
.b11-prod-ph {
  padding: 0 16px;
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  text-align: center;
  color: #4a4a4a;
}

/* .product-badge */
.b11-prod-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 3px 10px;
  border-radius: var(--b11-r-pill);
  background: var(--b11-red);
  color: #fff;
  font-family: var(--b11-font-body);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: normal;
  text-transform: uppercase;
}

/* --- The card body ---------------------------------------------------------
   .product-body is 20/22 with a 6px gutter, the name takes the slack, and
   .product-footer puts the price and the button on one row 8px below it. --- */

body.woocommerce-shop ul.products li.product .product-details,
body.tax-product_cat ul.products li.product .product-details,
body.tax-product_tag ul.products li.product .product-details,
body.post-type-archive-product ul.products li.product .product-details {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  column-gap: 12px;
  row-gap: 6px;
  padding: 20px 22px !important;
  background: none !important;
  border: 0 !important;
}

/* .product-cat */
.b11-prod-cat {
  grid-column: 1 / -1;
  grid-row: 1;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-text-4);
}

/* .product-name */
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--b11-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
}

body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title a,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title a,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title a,
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title a {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

/* .product-price */
body.woocommerce-shop ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price,
body.post-type-archive-product ul.products li.product .price {
  grid-column: 1;
  grid-row: 3;
  align-self: center;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  font-family: var(--b11-font-display) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
  letter-spacing: -0.01em !important;
  color: var(--b11-text) !important;
}

/* .add-btn sits opposite the price rather than beneath it. */
body.woocommerce-shop ul.products li.product .product-action-wrap,
body.tax-product_cat ul.products li.product .product-action-wrap,
body.tax-product_tag ul.products li.product .product-action-wrap,
body.post-type-archive-product ul.products li.product .product-action-wrap {
  grid-column: 2;
  grid-row: 3;
  align-self: center;
  justify-self: end;
  margin: 8px 0 0 !important;
  padding: 0 !important;
}

body.woocommerce-shop ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button,
body.post-type-archive-product ul.products li.product .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  margin: 0 !important;
  padding: 7px 16px !important;
  border: 1px solid var(--b11-border-2) !important;
  border-radius: var(--b11-r-pill) !important;
  background: var(--b11-surface-2) !important;
  color: var(--b11-text-2) !important;
  font-family: var(--b11-font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  /* The source button is allowed to wrap and shrink once the tile narrows;
     holding it on one line pushes it out through the card edge at 400px. */
  transition: background var(--b11-dur-fast),
              border-color var(--b11-dur-fast),
              color var(--b11-dur-fast);
}

body.woocommerce-shop ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_tag ul.products li.product .button:hover,
body.post-type-archive-product ul.products li.product .button:hover {
  background: var(--b11-red) !important;
  border-color: var(--b11-red) !important;
  color: #fff !important;
}

/* The "View cart" link WooCommerce appends after a successful add. */
body.woocommerce-shop ul.products li.product a.added_to_cart,
body.tax-product_cat ul.products li.product a.added_to_cart,
body.tax-product_tag ul.products li.product a.added_to_cart,
body.post-type-archive-product ul.products li.product a.added_to_cart {
  display: block;
  margin-top: 8px;
  font-family: var(--b11-font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--b11-red-light);
  text-decoration: none;
  white-space: nowrap;
}

/* Pagination clears the grid's own bottom padding. */
body.woocommerce-shop .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination,
body.post-type-archive-product .woocommerce-pagination {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px clamp(40px, 5vw, 56px);
}

/* The source drops the tile minimum to 160px at 640 and changes nothing
   else: the card body keeps its 20/22 padding and the footer stays one row at
   every width. */
@media (max-width: 640px) {
  body.woocommerce-shop ul.products,
  body.tax-product_cat ul.products,
  body.tax-product_tag ul.products,
  body.post-type-archive-product ul.products {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }
}

/* --- 67a. Three corrections measured after the first pass ------------------
   1. .b11-tag is an inline-block, so the hero's first line box carried the
      font's leading and made the hero 6px taller than the source's block div.
   2. Kadence insets .product-details by 8px either side of the card.
   3. Kadence positions .product-action-wrap absolutely. An absolutely
      positioned grid item leaves the flow, which collapsed the footer's second
      column to zero and dropped the button out of the bottom of the card -
      the same trap as the WhatsApp glyph in section 64.
   -------------------------------------------------------------------------- */

body.woocommerce-shop .b11-page-hero .b11-tag {
  display: block !important;
}

body.woocommerce-shop ul.products li.product .product-details,
body.tax-product_cat ul.products li.product .product-details,
body.tax-product_tag ul.products li.product .product-details,
body.post-type-archive-product ul.products li.product .product-details {
  margin: 0 !important;
}

body.woocommerce-shop ul.products li.product .product-action-wrap,
body.tax-product_cat ul.products li.product .product-action-wrap,
body.tax-product_tag ul.products li.product .product-action-wrap,
body.post-type-archive-product ul.products li.product .product-action-wrap {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  max-width: none !important;
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* .add-btn is a <button> in the source, so it takes the browser's normal
   button leading and lands exactly on its 36px floor. As an <a> it inherits
   the body's 1.6 and overshoots. */
body.woocommerce-shop ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button,
body.post-type-archive-product ul.products li.product .button {
  line-height: 1.2 !important;
}

/* A category with no description ends on its heading, so the heading's own
   bottom margin would hang below it. */
.b11-shop-hero-h1:last-child { margin-bottom: 0; }


/* ==========================================================================
   68. Gallery
   Measured against gallery.html. Like the shop, its three parts were all off.

   The hero drew the About pill where the source has a plain mono label, and
   ran its lead to 720px at 1.7 instead of 540px at 1.65.

   The filter row used the 36px chip metrics on a transparent ground; the
   source's .g-tab is a 38px pill on --bg-4, and its count sits inline after
   the last tab rather than pushed to the far right.

   The grid was six separate Kadence rows of three fixed 220px tiles. The
   source is ONE grid of eighteen, with four tall tiles at a 125% frame among
   the 72% ones, and a meta row carrying the title and its category.
   ========================================================================== */

/* --- Hero ---------------------------------------------------------------- */

body.page-id-58 .b11-page-hero .b11-tag {
  display: block !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  line-height: 1.6 !important;
  color: var(--b11-red-light) !important;
}

body.page-id-58 .b11-page-hero h1 {
  margin: 0 0 14px !important;
  font-size: clamp(34px, 5vw, 60px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.01em !important;
}

body.page-id-58 .b11-page-hero .kt-inside-inner-col > p:not(.b11-tag) {
  max-width: 540px !important;
  margin: 0 !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-2) !important;
}

/* --- Filter row -----------------------------------------------------------
   .g-filters is one flex row holding the tabs and the count, so the count
   wraps with them. .b11-filters is dissolved into it with display:contents to
   get the same single row. ------------------------------------------------- */

body.page-id-58 .b11-gal-bar {
  justify-content: flex-start;
  gap: 8px;
}

body.page-id-58 .b11-gal-bar .b11-filters {
  display: contents;
}

body.page-id-58 .b11-filters button {
  font-family: var(--b11-font-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.09em;
  padding: 9px 17px;
  min-height: 38px;
  background: var(--b11-bg-4);
  border: 1px solid var(--b11-border-2);
  color: var(--b11-text-3);
}

body.page-id-58 .b11-filters button:hover {
  color: var(--b11-text);
  border-color: var(--b11-border-3);
}

body.page-id-58 .b11-filters button[aria-pressed="true"] {
  background: var(--b11-red);
  border-color: var(--b11-red);
  color: #fff;
}

body.page-id-58 .b11-gal-count {
  margin-left: 6px;
  align-self: center;
}

/* --- One grid instead of six rows ----------------------------------------
   Both the row wrapper and its column wrap are dissolved, so all eighteen
   columns become items of a single grid on the section's inner column.
   Kadence's clearfix ::before on a dissolved row would otherwise be promoted
   to a grid item and steal the first cell of every band. -------------------- */

body.page-id-58 .kb-row-layout-id58_688531-34 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  column-gap: 16px;
  row-gap: 16px;
  padding: 26px 0 0;
}

body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap,
body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap > .kt-row-column-wrap {
  display: contents !important;
}

body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap::before,
body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap::after,
body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap > .kt-row-column-wrap::before,
body.page-id-58 .kb-row-layout-id58_688531-34 .kb-row-layout-wrap > .kt-row-column-wrap::after {
  content: none !important;
}

/* --- The tile -------------------------------------------------------------
   .g-frame is an aspect box, not a fixed height: 72% of its own width, and
   125% on the four tall tiles. ---------------------------------------------- */

body.page-id-58 .b11-gal-item {
  position: relative;
}

body.page-id-58 .b11-gal-item > .kt-inside-inner-col {
  height: 100%;
  padding: 0 !important;
  overflow: hidden;
}

body.page-id-58 .b11-ph-gal {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 100 / 72;
  margin: 0 !important;
  padding: 0 !important;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

body.page-id-58 .b11-gal-tall .b11-ph-gal {
  aspect-ratio: 100 / 125;
}

/* .g-ph carries a camera glyph above its label. */
body.page-id-58 .b11-ph-gal::before {
  content: '';
  display: block;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  opacity: 0.55;
  background-color: currentColor;
  -webkit-mask: var(--b11-cam-icon) center / contain no-repeat;
          mask: var(--b11-cam-icon) center / contain no-repeat;
}

/* .g-meta - the title and its category on one row. */
body.page-id-58 .b11-gal-cap {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 !important;
  padding: 15px 18px !important;
  line-height: normal !important;
}

.b11-gal-tag {
  flex-shrink: 0;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--b11-red-light);
}

/* --- Closing band ---------------------------------------------------------
   .g-cta-inner puts the copy and the buttons on one row, the copy capped at
   480px. The port stacked all three. ---------------------------------------- */

body.page-id-58 .kb-row-layout-id58_21ac12-84 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 26px;
  align-items: center;
}

body.page-id-58 .kb-row-layout-id58_21ac12-84 h2 {
  grid-column: 1;
  grid-row: 1;
  margin: 0 0 8px !important;
  max-width: 480px;
}

body.page-id-58 .kb-row-layout-id58_21ac12-84 .kt-inside-inner-col > p {
  grid-column: 1;
  grid-row: 2;
  max-width: 480px !important;
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
}

body.page-id-58 .kb-row-layout-id58_21ac12-84 .kt-inside-inner-col > .wp-block-kadence-advancedbtn,
body.page-id-58 .kb-row-layout-id58_21ac12-84 .kt-inside-inner-col > [class*="kb-btns"] {
  grid-column: 2;
  grid-row: 1 / 3;
  justify-self: end;
  margin: 0 !important;
}

/* The source's flex row wraps once the copy and the buttons stop fitting. */
@media (max-width: 900px) {
  body.page-id-58 .kb-row-layout-id58_21ac12-84 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 26px;
  }
  body.page-id-58 .kb-row-layout-id58_21ac12-84 .kt-inside-inner-col > .wp-block-kadence-advancedbtn,
  body.page-id-58 .kb-row-layout-id58_21ac12-84 .kt-inside-inner-col > [class*="kb-btns"] {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
  }
}

/* .g-grid tightens to a 12px gutter at 560. */
@media (max-width: 560px) {
  body.page-id-58 .kb-row-layout-id58_688531-34 > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
    column-gap: 12px;
    row-gap: 12px;
  }
}

/* The camera glyph the source draws inside every empty gallery frame. */
:root {
  --b11-cam-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E");
  --b11-zoom-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E");
}

/* The grid row carries 24px of its own top padding; in the source the grid
   begins flush with the filter bar and its 26px is the only space above the
   first tile. */
body.page-id-58 .kb-row-layout-id58_688531-34 > .kt-row-column-wrap {
  padding-top: 0 !important;
}


/* ==========================================================================
   69. Gallery viewer
   The source's tiles are buttons that open a lightbox with prev/next, a
   counter and a title bar. The port rendered them as inert paragraphs, so
   clicking a tile did nothing. bravo11.js now gives every tile button
   semantics and builds this viewer on first open.
   ========================================================================== */

:root {
  --b11-zoom-icon-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E");
}

/* --- The zoom affordance, only once a tile is actually operable ----------- */

body.page-id-58 .b11-gal-item[role="button"] {
  cursor: pointer;
}

body.page-id-58 .b11-gal-item[role="button"]::after {
  content: '';
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(8,8,8,0.72) var(--b11-zoom-icon-light) center / 14px 14px no-repeat;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  opacity: 0;
  transform: scale(0.85);
  pointer-events: none;
  transition: opacity var(--b11-dur-base),
              transform var(--b11-dur-base) var(--b11-ease-out);
}

body.page-id-58 .b11-gal-item[role="button"]:hover::after,
body.page-id-58 .b11-gal-item[role="button"]:focus-visible::after {
  opacity: 1;
  transform: scale(1);
}

body.page-id-58 .b11-gal-item[role="button"]:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* --- The viewer ----------------------------------------------------------- */

.b11-lb {
  position: fixed;
  inset: 0;
  z-index: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(4,4,4,0.93);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.b11-lb[hidden] { display: none !important; }

.b11-lb-panel {
  position: relative;
  width: min(920px, 100%);
  border: 1px solid var(--b11-border-2);
  border-radius: var(--b11-r-lg);
  background: var(--b11-bg-4);
  overflow: hidden;
  animation: b11LbIn 0.32s var(--b11-ease-out) both;
}

@keyframes b11LbIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

.b11-lb-frame {
  position: relative;
  width: 100%;
  padding-top: 62%;
  background: repeating-linear-gradient(-45deg, #141416 0, #141416 14px, #111113 14px, #111113 28px);
}

.b11-lb-frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.b11-lb-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  font-family: var(--b11-font-mono);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #4d4d4d;
}

.b11-lb-ph[hidden] { display: none; }

.b11-lb-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 22px;
  border-top: 1px solid var(--b11-border);
}

.b11-lb-title {
  font-family: var(--b11-font-display);
  font-size: 19px;
  font-weight: 700;
  /* The source title keeps the body's 1.6, which is what makes the bar 65px. */
  line-height: 1.6;
  letter-spacing: -0.01em;
  color: var(--b11-text);
}

.b11-lb-tag {
  flex-shrink: 0;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--b11-red-light);
}

.b11-lb-x,
.b11-lb-prev,
.b11-lb-next {
  position: absolute;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 50%;
  background: rgba(8,8,8,0.75);
  border: 1px solid var(--b11-border-2);
  color: var(--b11-text-2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color var(--b11-dur-fast),
              background var(--b11-dur-fast),
              border-color var(--b11-dur-fast);
}

.b11-lb-x:hover,
.b11-lb-prev:hover,
.b11-lb-next:hover {
  color: var(--b11-text);
  background: rgba(20,20,22,0.95);
  border-color: var(--b11-border-3);
}

.b11-lb-x:focus-visible,
.b11-lb-prev:focus-visible,
.b11-lb-next:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

.b11-lb-x { top: 12px; right: 12px; }
.b11-lb-prev { top: 50%; left: 12px; transform: translateY(-60%); }
.b11-lb-next { top: 50%; right: 12px; transform: translateY(-60%); }

.b11-lb-prev[hidden],
.b11-lb-next[hidden] { display: none; }

.b11-lb-counter {
  position: absolute;
  bottom: 74px;
  left: 50%;
  transform: translateX(-50%);
  padding: 5px 13px;
  border-radius: var(--b11-r-pill);
  background: rgba(8,8,8,0.75);
  font-family: var(--b11-font-mono);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.12em;
  color: var(--b11-text-3);
}

@media (max-width: 560px) {
  .b11-lb-prev { left: 6px; }
  .b11-lb-next { right: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .b11-lb-panel { animation: none; }
  body.page-id-58 .b11-gal-item[role="button"]::after { transition: none; }
}

/* .g-cta-inner is a clamp, not a fixed pad: 76px at desktop but 54px at 900. */
body.page-id-58 .kb-row-layout-id58_21ac12-84 > .kt-row-column-wrap {
  padding: clamp(52px, 6vw, 76px) 24px !important;
}

/* The gallery section's own padding is two clamps in the source - .g-filters
   opens on clamp(34px, 4vw, 48px) and .g-grid closes on clamp(64px, 8vw, 96px)
   - where the row carries a flat 48/96. They only diverge below 1200. */
body.page-id-58 .kb-row-layout-id58_f581fd-93 > .kt-row-column-wrap {
  padding-top: clamp(34px, 4vw, 48px) !important;
  padding-bottom: clamp(64px, 8vw, 96px) !important;
}

/* .g-cta h2 is a clamp as well. */
body.page-id-58 .kb-row-layout-id58_21ac12-84 h2 {
  font-size: clamp(26px, 3.6vw, 40px) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
}

/* Section 64 originally hung the glyph on every wa.me button. The source only
   carries it where the label is "WhatsApp Us" (index.html and faq.html); the
   wa.me buttons labelled "Book a walkthrough", "Ask on WhatsApp", "Send yours
   on WhatsApp" and "Join this plan" are plain text buttons there. The glyph is
   now opt-in through .b11-wa-glyph, set on those three buttons. */

/* Every button row in the source - .ab-btns, .faq-btns, .g-btns, .t-btns,
   .hero-ctas, .cta-btns - is a 12px gutter. Kadence writes 8px per block, so
   this matches its weight at (0,2,0) and corrects the pair spacing site-wide. */
.wp-block-kadence-advancedbtn.kb-buttons-wrap {
  gap: 12px;
}


/* ==========================================================================
   70. Find us
   The strip between the page and the footer. Built from the map card the
   design already specifies on contact.html - 1px border, --r-lg, --bg-4, a
   hairline under the frame, the body at 26/28 with a mono ADDRESS label - laid
   out as two columns here because it runs the full 1200 shell rather than
   sitting in the contact page's narrow right column.

   The band takes the page ground rather than --bg-2, so it does not read as a
   second closing panel on the pages that already end in one.
   ========================================================================== */

.b11-findus {
  border-top: 1px solid var(--b11-border);
  background: var(--b11-bg);
}

.b11-findus-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(46px, 5vw, 64px) 24px;
}


.b11-map-card {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  border: 1px solid var(--b11-border);
  border-radius: var(--b11-r-lg);
  background: var(--b11-bg-4);
  overflow: hidden;
}

/* The frame reserves the map's height from first paint, so swapping the real
   map in moves nothing. */
.b11-map-media {
  position: relative;
  min-height: 320px;
  border-right: 1px solid var(--b11-border);
  background: repeating-linear-gradient(-45deg, #141416 0, #141416 12px, #121214 12px, #121214 24px);
}

.b11-map-media iframe,
.b11-map-media .b11-map-frame {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  border: 0;
}

.b11-map-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--b11-font-mono);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #4a4a4a;
}

.b11-map-body {
  padding: 26px 28px;
}

.b11-map-label {
  margin: 0 0 8px;
  font-family: var(--b11-font-mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--b11-red-light);
}

.b11-map-addr {
  margin: 0;
  font-family: var(--b11-font-body);
  font-size: 16px;
  font-style: normal;
  line-height: 1.7;
  color: var(--b11-text);
}

.b11-map-hours {
  margin: 14px 0 0;
  font-family: var(--b11-font-body);
  font-size: 14px;
  line-height: 1.6;
  color: var(--b11-text-3);
}

.b11-map-tel {
  display: inline-block;
  margin-top: 4px;
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--b11-text-2);
  text-decoration: none;
  transition: color var(--b11-dur-fast);
}

.b11-map-tel:hover { color: var(--b11-text); }

.b11-map-directions {
  /* Its own line under the phone number, but the click target stays the
     width of the words rather than the whole column. */
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 14px;
  font-family: var(--b11-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--b11-red-light);
  text-decoration: none;
  transition: color var(--b11-dur-fast);
}

.b11-map-directions:hover { color: var(--b11-red-bright); }

.b11-map-tel:focus-visible,
.b11-map-directions:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
}

/* One column once the two stop fitting; the hairline moves with the layout. */
@media (max-width: 860px) {
  .b11-map-card {
    grid-template-columns: minmax(0, 1fr);
  }
  .b11-map-media {
    border-right: 0;
    border-bottom: 1px solid var(--b11-border);
    min-height: 260px;
  }
  .b11-map-media iframe,
  .b11-map-media .b11-map-frame { min-height: 260px; }
}

@media (max-width: 560px) {
  .b11-map-body { padding: 22px 22px; }
}

/* Kadence underlines every content link through .inner-link-style-normal
   a:not(.button) at (0,2,1), which outranked a two-class selector. */
/* The developer credit in the footer bar is a link; it follows the footer's
   own link behaviour - inherits the bar colour, warms on hover. */
.site-footer .b11-foot-bar a.b11-dev-link {
  color: inherit;
  text-decoration: none;
  transition: color var(--b11-dur-fast);
}

.site-footer .b11-foot-bar a.b11-dev-link:hover {
  color: var(--b11-red-light);
}

.site-footer .b11-foot-bar a.b11-dev-link:focus-visible {
  outline: 2px solid var(--b11-red-light);
  outline-offset: 3px;
  border-radius: 4px;
}


/* ==========================================================================
   71. Closing CTA boxes - the copy inside them
   Membership's "Still weighing it up?" had no panel at all: its column never
   carried .b11-cta-box, so section 57 was styling nothing. The class is now on
   the block, which brings the border, the 135deg gradient and the 56px padding.

   The copy inside every CTA box was wrong in the same three ways, on all four
   pages that have one: the paragraph ran at 17px where the source is 16, it
   was not centred in the box (max-width with no auto side margins, so it sat
   against the left edge under a centred heading), and the heading/paragraph
   rhythm was 20/16/0 where the source is 0/13/28.

   Trainers and Facilities are deliberately not included: their source closing
   section is .page-cta, a full-width band with a border-top and no box at all.
   ========================================================================== */

.page-id-52 .b11-cta-box > .kt-inside-inner-col > h2,
.page-id-53 .b11-cta-box > .kt-inside-inner-col > h2,
.page-id-54 .b11-cta-box > .kt-inside-inner-col > h2,
.page-id-55 .b11-cta-box > .kt-inside-inner-col > h2 {
  margin: 0 0 13px !important;
}

.page-id-52 .b11-cta-box > .kt-inside-inner-col > p,
.page-id-53 .b11-cta-box > .kt-inside-inner-col > p,
.page-id-54 .b11-cta-box > .kt-inside-inner-col > p,
.page-id-55 .b11-cta-box > .kt-inside-inner-col > p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  margin: 0 auto 28px !important;
}

/* .ab-cta-box p and .pg-cta-box p cap at 540; .m-cta-box p and .gf-cta-box p
   at 560. */
.page-id-52 .b11-cta-box > .kt-inside-inner-col > p,
.page-id-53 .b11-cta-box > .kt-inside-inner-col > p {
  max-width: 540px !important;
}

.page-id-54 .b11-cta-box > .kt-inside-inner-col > p,
.page-id-55 .b11-cta-box > .kt-inside-inner-col > p {
  max-width: 560px !important;
}

/* .gf-cta-box runs one pixel looser on the heading and two on the copy. */
.page-id-55 .b11-cta-box > .kt-inside-inner-col > h2 {
  margin-bottom: 14px !important;
}

.page-id-55 .b11-cta-box > .kt-inside-inner-col > p {
  margin-bottom: 30px !important;
}


/* ==========================================================================
   72. Membership section intros
   The heading sat directly on top of the grid beneath it - the measured gap
   was -1px - while the eyebrow above it had 42px of air. The source is the
   other way round: .m-eyebrow has no margin and .m-h2 opens on 12px, and the
   34px below comes from .m-intro's own margin-bottom.

   Both sections on the page had it: Core memberships and Signature packages.
   The adjacent-sibling rule collapses the heading's 13px bottom margin into
   the grid's 34px top margin, which is what the source's nested .m-intro does.
   ========================================================================== */

body.page-id-54 .kb-row-layout-id54_a503c5-ab .kt-inside-inner-col > p.b11-mono,
body.page-id-54 .kb-row-layout-id54_7eda26-e3 .kt-inside-inner-col > p.b11-mono {
  margin-bottom: 0 !important;
}

body.page-id-54 .kb-row-layout-id54_a503c5-ab .kt-inside-inner-col > h2,
body.page-id-54 .kb-row-layout-id54_7eda26-e3 .kt-inside-inner-col > h2 {
  margin: 12px 0 13px !important;
}

body.page-id-54 .kb-row-layout-id54_a503c5-ab .kt-inside-inner-col > h2 + div,
body.page-id-54 .kb-row-layout-id54_7eda26-e3 .kt-inside-inner-col > h2 + div {
  margin-top: 34px !important;
}


/* ==========================================================================
   73. .page-cta - the closing band on Trainers and Facilities
   The source closes these two pages with .page-cta: a plain centred band with
   a hairline on top, an 800px column and 96px of air. No card. The port wrapped
   both in the .b11-cta-box panel the other pages use, which is why the section
   read as a boxed advert rather than a quiet sign-off. The box class is off the
   block now; these are the type and rhythm that go with it.

     .page-cta h2 { margin: 0 0 14px }
     .page-cta p  { line-height: 1.65; margin: 0 0 28px }   (16px, no max-width)
   ========================================================================== */

body.page-id-56 .kb-row-layout-id56_35b60a-f8 .kt-inside-inner-col > h2,
body.page-id-57 .kb-row-layout-id57_2f74aa-77 .kt-inside-inner-col > h2 {
  margin: 0 0 14px !important;
}

body.page-id-56 .kb-row-layout-id56_35b60a-f8 .kt-inside-inner-col > p,
body.page-id-57 .kb-row-layout-id57_2f74aa-77 .kt-inside-inner-col > p {
  max-width: none !important;
  margin: 0 0 28px !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--b11-text-2) !important;
}

/* ==========================================================================
   74. Outline buttons, everywhere
   .btn-outline in the source is a 1px hairline over the 4% wash, in the text
   colour. Kadence Blocks ships .kb-button.kb-btn-global-outline.kt-btn-size-large
   with a 3px border at (0,3,0), and its stylesheet loads after this one, so the
   equal-weight rule in section 14 was losing on order alone - a 3px edge drawn
   on nothing, and 4px of extra button height with it.

   Section 61 fixed this for the homepage only. This is the same correction for
   every page that uses one.
   ========================================================================== */

.kb-button.kt-button.kb-btn-global-outline,
.kb-button.kt-button.kb-btn-global-outline.kt-btn-size-large,
.kb-button.kt-button.kb-btn-global-outline.kt-btn-size-small {
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--b11-border-2) !important;
  background-color: var(--b11-surface) !important;
  color: var(--b11-text) !important;
}

.kb-button.kt-button.kb-btn-global-outline:hover,
.kb-button.kt-button.kb-btn-global-outline.kt-btn-size-large:hover,
.kb-button.kt-button.kb-btn-global-outline.kt-btn-size-small:hover {
  border-color: var(--b11-border-3) !important;
  background-color: var(--b11-surface-2) !important;
  color: #fff !important;
}

/* ==========================================================================
   75. Marquee - alternating colour
   Every second item takes the light red, so the strip reads with a rhythm
   rather than as one grey run. The .is-hot class was already on the markup
   (the port's name for the source's .marquee-item.highlight) but nothing ever
   coloured it, so every item rendered --b11-text-3.

   The class is set per item rather than with :nth-child because the track is
   two copies of the same nine items for the seamless loop: an nth rule counts
   across all eighteen, so the second copy comes out on the opposite parity and
   every item flips colour at the loop point.
   ========================================================================== */

.b11-marquee .b11-marquee-item.is-hot {
  color: var(--b11-red-light);
}
