/* ==========================================================================
   Cross Timbers MTB — Shared Site Styles
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700;800;900&family=Barlow:wght@400;500;600&display=swap');

:root {
  --ctmtb-bg:       #0c1525;
  --ctmtb-bg2:      #101e38;
  --ctmtb-bg3:      #090e1c;
  --ctmtb-bg4:      #0d1830;
  --ctmtb-green:    #b5cc1a;
  --ctmtb-green2:   #92a412;
  --ctmtb-amber:    #d4973a;
  --ctmtb-amber2:   #b07820;
  --ctmtb-cream:    #f0ebe0;
  --ctmtb-body:     #c8d3df;
  --ctmtb-muted:    #6b7a95;
  --ctmtb-border:   rgba(255,255,255,0.08);
  --ctmtb-header-h: 56px;
  --ctmtb-max-w:    1200px;
  --ctmtb-display:  'Barlow Condensed', 'Arial Narrow', Impact, sans-serif;
  --ctmtb-body-f:   'Barlow', 'Helvetica Neue', Arial, sans-serif;
}

/* ---- Page wrapper ---- */
.ctmtb-page {
  background-color: var(--ctmtb-bg);
  color: var(--ctmtb-body);
  font-family: var(--ctmtb-body-f);
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}
.ctmtb-page *, .ctmtb-page *::before, .ctmtb-page *::after { box-sizing: border-box; }
.ctmtb-page img { max-width: 100%; display: block; }
.ctmtb-page a   { text-decoration: none; color: inherit; }
.ctmtb-page ul  { list-style: none; margin: 0; padding: 0; }

/* ---- Container ---- */
.ctmtb-container {
  width: 100%;
  max-width: var(--ctmtb-max-w);
  margin-inline: auto;
  padding-inline: 1.5rem;
}

/* ---- Eyebrow ---- */
.ctmtb-eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.ctmtb-eyebrow--center { justify-content: center; }

.ctmtb-green-label {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  color: var(--ctmtb-green);
  text-transform: uppercase;
  white-space: nowrap;
}
.ctmtb-muted-label {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  color: var(--ctmtb-muted);
  text-transform: uppercase;
  white-space: nowrap;
}
.ctmtb-amber-rule {
  display: block;
  height: 2px;
  width: 48px;
  min-width: 48px;
  background-color: var(--ctmtb-amber);
}

/* ---- Typography ---- */
.ctmtb-section-title {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  line-height: 1.0;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: -0.01em;
  margin-bottom: 1.25rem;
}
.ctmtb-section-subtitle {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: var(--ctmtb-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.5rem;
}
.ctmtb-body-copy {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--ctmtb-body);
  max-width: 56ch;
  margin-bottom: 1.2rem;
}
.ctmtb-body-copy--wide { max-width: 72ch; }

/* ---- Buttons ---- */
.ctmtb-btn {
  display: inline-block;
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 0.9rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.85rem 2rem;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
  border: 2px solid transparent;
  line-height: 1;
}
.ctmtb-btn--primary {
  background-color: var(--ctmtb-green);
  color: #111820;
  border-color: var(--ctmtb-green);
}
.ctmtb-btn--primary:hover { background-color: var(--ctmtb-green2); border-color: var(--ctmtb-green2); color: #111820; }
a.ctmtb-btn--primary,
a.ctmtb-btn--primary:visited,
a.ctmtb-btn--primary:hover { color: #111820; }
.ctmtb-btn--secondary {
  background-color: transparent;
  color: var(--ctmtb-amber);
  border-color: var(--ctmtb-amber);
}
.ctmtb-btn--secondary:hover { background-color: var(--ctmtb-amber); color: var(--ctmtb-bg); }
.ctmtb-btn--ghost {
  background-color: transparent;
  color: var(--ctmtb-green);
  border-color: rgba(181,204,26,0.35);
  font-size: 0.82rem;
  padding: 0.6rem 1.3rem;
}
.ctmtb-btn--ghost:hover { border-color: var(--ctmtb-green); background-color: rgba(181,204,26,0.1); }

.ctmtb-cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}

/* ---- Sections ---- */
.ctmtb-section { padding-block: 6rem; }
.ctmtb-section--dark  { background-color: var(--ctmtb-bg); }
.ctmtb-section--mid   { background-color: var(--ctmtb-bg2); }
.ctmtb-section--deep  { background-color: var(--ctmtb-bg3); }
.ctmtb-section--navy  { background-color: var(--ctmtb-bg4); }

/* ==========================================================================
   HEADER
   ========================================================================== */
.ctmtb-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background-color: rgba(10, 14, 23, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: box-shadow 0.3s;
}
.ctmtb-header.is-scrolled { box-shadow: 0 4px 32px rgba(0,0,0,0.55); }

.ctmtb-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 0.75rem;
}

/* Mobile: stack logo + menu vertically, center logo */
@media (max-width: 640px) {
  .ctmtb-header-inner {
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
  }
  .ctmtb-logo-img-wrap {
    width: 100%;
    justify-content: center;
  }
  .ctmtb-menu-btn {
    order: 2;
    margin-left: 0;
  }
  .ctmtb-header-current {
    display: none;
  }
}

/* ---- Logo image ---- */
.ctmtb-logo-img-wrap {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.ctmtb-logo-img {
  height: auto;
  width: 200px;
  display: block;
  padding: 0 10px;
}

/* ---- Current page indicator (desktop center) ---- */
.ctmtb-header-current {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ctmtb-muted);
  flex: 1;
  text-align: center;
  pointer-events: none;
}

/* ---- Right group (Instagram + Menu) ---- */
.ctmtb-header-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

/* ---- Header social icons ---- */
.ctmtb-header-social {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ctmtb-muted);
  flex-shrink: 0;
  transition: color 0.2s;
  text-decoration: none;
}
.ctmtb-header-social:hover { color: var(--ctmtb-cream); }
.ctmtb-header-social svg {
  width: 22px;
  height: 22px;
}

/* ---- Menu button ---- */
.ctmtb-menu-btn {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  background: none;
  border: 1px solid var(--ctmtb-border);
  border-radius: 4px;
  padding: 0.45rem 0.9rem 0.45rem 1rem;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.2s, background-color 0.2s;
}
.ctmtb-menu-btn:hover,
.ctmtb-menu-btn.is-open {
  border-color: rgba(181,204,26,0.5);
  background-color: rgba(181,204,26,0.07);
}
.ctmtb-menu-btn-label {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
}
.ctmtb-menu-btn-icon {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 18px;
}
.ctmtb-menu-btn-icon span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--ctmtb-cream);
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.25s, width 0.25s;
  transform-origin: center;
}
.ctmtb-menu-btn.is-open .ctmtb-menu-btn-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ctmtb-menu-btn.is-open .ctmtb-menu-btn-icon span:nth-child(2) { opacity: 0; width: 0; }
.ctmtb-menu-btn.is-open .ctmtb-menu-btn-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---- Dropdown nav panel ---- */
.ctmtb-dropdown {
  position: absolute;
  top: 100%;
  left: 0; right: 0;
  background-color: rgba(8, 11, 19, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--ctmtb-border);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
              opacity    0.25s ease;
  pointer-events: none;
}
.ctmtb-dropdown.is-open {
  max-height: 480px;
  opacity: 1;
  pointer-events: all;
}

.ctmtb-dropdown-inner {
  padding-block: 1.75rem;
}

.ctmtb-dropdown-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.35rem;
}

.ctmtb-dropdown-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  border-radius: 5px;
  border: 1px solid transparent;
  text-decoration: none;
  transition: background-color 0.18s, border-color 0.18s;
  group: true;
}
.ctmtb-dropdown-link:hover {
  background-color: rgba(181,204,26,0.08);
  border-color: rgba(181,204,26,0.2);
}
.ctmtb-dropdown-link.active {
  background-color: rgba(181,204,26,0.12);
  border-color: rgba(181,204,26,0.3);
}

.ctmtb-dropdown-num {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 0.75rem;
  color: var(--ctmtb-amber);
  opacity: 0.7;
  flex-shrink: 0;
  min-width: 1.5rem;
}
.ctmtb-dropdown-text {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  flex: 1;
  line-height: 1.2;
}
.ctmtb-dropdown-link:hover  .ctmtb-dropdown-text,
.ctmtb-dropdown-link.active .ctmtb-dropdown-text { color: var(--ctmtb-green); }
.ctmtb-dropdown-arrow {
  font-size: 0.85rem;
  color: var(--ctmtb-green);
  opacity: 0;
  transition: opacity 0.18s, transform 0.18s;
  flex-shrink: 0;
}
.ctmtb-dropdown-link:hover  .ctmtb-dropdown-arrow,
.ctmtb-dropdown-link.active .ctmtb-dropdown-arrow { opacity: 1; transform: translateX(3px); }

/* Keep footer logo-text styles for SiteFooter (still uses them) */
.ctmtb-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
  text-decoration: none;
}
.ctmtb-logo-wordmark {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
}
.ctmtb-logo-sub {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ctmtb-amber);
  margin-top: 2px;
}

/* ==========================================================================
   INNER PAGE HERO
   ========================================================================== */
.ctmtb-inner-hero {
  padding-top: calc(var(--ctmtb-header-h) + 5rem);
  padding-bottom: 4rem;
  background-color: var(--ctmtb-bg3);
  border-bottom: 1px solid var(--ctmtb-border);
  position: relative;
  overflow: hidden;
}
.ctmtb-inner-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(181,204,26,0.05) 0%, transparent 65%);
  pointer-events: none;
}
/* Photo variant */
.ctmtb-inner-hero--photo {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding-top: calc(var(--ctmtb-header-h) + 7rem);
  padding-bottom: 6rem;
}
.ctmtb-inner-hero--photo::before {
  background: linear-gradient(
    to bottom,
    rgba(13,17,23,0.62) 0%,
    rgba(13,17,23,0.75) 100%
  );
}
.ctmtb-inner-hero-content { position: relative; z-index: 1; }
.ctmtb-inner-hero-title {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: clamp(3rem, 7vw, 5.5rem);
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: -0.01em;
  margin-top: 1rem;
  margin-bottom: 1.25rem;
}
.ctmtb-inner-hero-sub {
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--ctmtb-body);
  max-width: 60ch;
}

/* ==========================================================================
   HOMEPAGE HERO
   ========================================================================== */
.ctmtb-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  padding-bottom: 5.5rem;
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  margin-top: var(--ctmtb-header-h);
}
.ctmtb-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(10,14,23,0.55) 0%,
    rgba(10,14,23,0.25) 35%,
    rgba(10,14,23,0.85) 72%,
    rgba(10,14,23,1.0)  100%
  );
}
.ctmtb-hero-content { position: relative; z-index: 1; max-width: 860px; }
.ctmtb-hero-title {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: clamp(3rem, 8vw, 6.5rem);
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
.ctmtb-hero-sub {
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--ctmtb-body);
  max-width: 58ch;
}

/* ==========================================================================
   HOMEPAGE SECTIONS
   ========================================================================== */
.ctmtb-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.ctmtb-split-text { order: 1; }
.ctmtb-split-img  { order: 2; }
.ctmtb-team-photo {
  width: 100%;
  border-radius: 6px;
  object-fit: cover;
  aspect-ratio: 4/3;
  border: 1px solid var(--ctmtb-border);
}

.ctmtb-believe { max-width: 800px; margin-inline: auto; text-align: center; }
.ctmtb-believe .ctmtb-eyebrow     { justify-content: center; }
.ctmtb-believe .ctmtb-body-copy   { margin-inline: auto; margin-bottom: 2.5rem; }

.ctmtb-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.ctmtb-pillar {
  display: flex;
  align-items: center;
  gap: 1rem;
  background-color: rgba(255,255,255,0.03);
  border: 1px solid var(--ctmtb-border);
  border-radius: 4px;
  padding: 1.2rem 1.5rem;
  text-align: left;
}
.ctmtb-pillar-dot { width: 8px; height: 8px; border-radius: 50%; background-color: var(--ctmtb-amber); flex-shrink: 0; }
.ctmtb-pillar-text {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
}

.ctmtb-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 3rem; }
.ctmtb-card {
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color 0.2s, transform 0.2s;
}
.ctmtb-card:hover { border-color: rgba(181,204,26,0.4); transform: translateY(-2px); }
.ctmtb-card-num { font-family: var(--ctmtb-display); font-weight: 900; font-size: 2.5rem; line-height: 1; color: var(--ctmtb-amber); opacity: 0.55; }
.ctmtb-card-title { font-family: var(--ctmtb-display); font-weight: 800; font-size: 1.3rem; text-transform: uppercase; color: var(--ctmtb-cream); letter-spacing: 0.02em; }
.ctmtb-card-copy { font-size: 0.95rem; line-height: 1.6; color: var(--ctmtb-body); flex: 1; }

.ctmtb-connected { text-align: center; max-width: 680px; margin-inline: auto; }
.ctmtb-connected .ctmtb-eyebrow   { justify-content: center; }
.ctmtb-connected .ctmtb-body-copy { margin-inline: auto; }
.ctmtb-connected .ctmtb-cta-group { justify-content: center; }

/* ==========================================================================
   INNER PAGE — STEP LIST
   ========================================================================== */
.ctmtb-steps { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 2.5rem; }
.ctmtb-step {
  display: flex;
  gap: 1.75rem;
  align-items: flex-start;
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 1.75rem 2rem;
  transition: border-color 0.2s;
}
.ctmtb-step:hover { border-color: rgba(181,204,26,0.3); }
.ctmtb-step-num {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 2.2rem;
  line-height: 1;
  color: var(--ctmtb-amber);
  flex-shrink: 0;
  width: 2.5rem;
  text-align: right;
}
.ctmtb-step-body { flex: 1; }
.ctmtb-step-title {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem;
}
.ctmtb-step-copy { font-size: 0.95rem; line-height: 1.65; color: var(--ctmtb-body); margin: 0; }
.ctmtb-step-link { display: inline-block; margin-top: 0.75rem; }

/* ==========================================================================
   INNER PAGE — FAQ ACCORDION
   ========================================================================== */
.ctmtb-faq { display: flex; flex-direction: column; gap: 0; margin-top: 2rem; border-radius: 6px; overflow: hidden; border: 1px solid var(--ctmtb-border); }
.ctmtb-faq-item { border-bottom: 1px solid var(--ctmtb-border); }
.ctmtb-faq-item:last-child { border-bottom: none; }
.ctmtb-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.75rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  transition: background-color 0.2s;
}
.ctmtb-faq-q:hover { background-color: rgba(255,255,255,0.03); }
.ctmtb-faq-q.is-open { color: var(--ctmtb-green); background-color: rgba(181,204,26,0.06); }
.ctmtb-faq-icon {
  font-size: 1.2rem;
  color: var(--ctmtb-amber);
  flex-shrink: 0;
  transition: transform 0.25s;
  font-style: normal;
}
.ctmtb-faq-q.is-open .ctmtb-faq-icon { transform: rotate(45deg); }
.ctmtb-faq-a {
  padding: 0 1.75rem 1.25rem;
  font-size: 0.98rem;
  line-height: 1.7;
  color: var(--ctmtb-body);
  background-color: rgba(181,204,26,0.04);
}

/* ==========================================================================
   INNER PAGE — PROSE CONTENT BLOCK
   ========================================================================== */
.ctmtb-content-block { max-width: 72ch; }
.ctmtb-content-block p { font-size: 1.05rem; line-height: 1.75; color: var(--ctmtb-body); margin-bottom: 1.25rem; }
.ctmtb-content-block h3 {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.4rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.02em;
  margin: 2rem 0 0.75rem;
}
.ctmtb-content-block ul {
  list-style: none;
  margin-bottom: 1.25rem;
}
.ctmtb-content-block ul li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ctmtb-body);
  margin-bottom: 0.4rem;
}
.ctmtb-content-block ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--ctmtb-amber);
}

/* ==========================================================================
   INNER PAGE — HIGHLIGHT BOX
   ========================================================================== */
.ctmtb-highlight {
  background-color: rgba(181,204,26,0.07);
  border: 1px solid rgba(181,204,26,0.2);
  border-left: 4px solid var(--ctmtb-green);
  border-radius: 4px;
  padding: 1.5rem 2rem;
  margin-top: 2rem;
}
.ctmtb-highlight p { font-size: 1.05rem; line-height: 1.7; color: var(--ctmtb-body); margin: 0; }
.ctmtb-highlight strong { color: var(--ctmtb-cream); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.ctmtb-footer {
  background-color: var(--ctmtb-bg3);
  border-top: 1px solid var(--ctmtb-border);
  padding-top: 4rem;
}
.ctmtb-footer-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 3rem;
  padding-bottom: 3rem;
}
.ctmtb-footer-logo { height: 36px; width: auto; display: block; opacity: 0.85; }
.ctmtb-footer-logo:hover { opacity: 1; }
.ctmtb-footer-tagline { font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ctmtb-muted); margin-top: 0.5rem; }
.ctmtb-footer-nav-list { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; max-width: 480px; }
.ctmtb-footer-nav-list li a {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ctmtb-muted);
  padding: 0.3rem 0.5rem;
  border-radius: 4px;
  transition: color 0.2s;
}
.ctmtb-footer-nav-list li a:hover { color: var(--ctmtb-green); }
.ctmtb-footer-bottom { border-top: 1px solid var(--ctmtb-border); padding-block: 1.25rem; }
.ctmtb-footer-legal { font-size: 0.78rem; color: var(--ctmtb-muted); letter-spacing: 0.04em; }
.ctmtb-footer-legal a { color: var(--ctmtb-muted); }
.ctmtb-footer-legal a:hover { color: var(--ctmtb-green); }

/* ==========================================================================
   INNER PAGE — PHOTO SPLIT (tall, like homepage split but for inner pages)
   ========================================================================== */
.ctmtb-photo-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.ctmtb-inner-photo {
  width: 100%;
  border-radius: 6px;
  object-fit: cover;
  border: 1px solid var(--ctmtb-border);
}
.ctmtb-inner-photo--tall { aspect-ratio: 3/4; }
.ctmtb-inner-photo--wide { aspect-ratio: 4/3; }
.ctmtb-inner-photo--square { aspect-ratio: 1/1; }

/* Full-bleed photo break between sections */
.ctmtb-photo-break {
  width: 100%;
  height: 480px;
  object-fit: cover;
  object-position: center;
  display: block;
}
.ctmtb-photo-break--tall { height: 580px; }
.ctmtb-photo-break--16x9 { height: auto; aspect-ratio: 16/9; }

/* ==========================================================================
   INNER PAGE — SCHEDULE CARDS
   ========================================================================== */
.ctmtb-schedule-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 2rem;
}
.ctmtb-schedule-card {
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-top: 3px solid var(--ctmtb-amber);
  border-radius: 6px;
  padding: 1.5rem;
}
.ctmtb-schedule-day {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.02em;
  margin-bottom: 0.4rem;
}
.ctmtb-schedule-time {
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ctmtb-amber);
  letter-spacing: 0.06em;
  margin-bottom: 0.6rem;
}
.ctmtb-schedule-note {
  font-size: 0.85rem;
  color: var(--ctmtb-muted);
  line-height: 1.5;
}

/* ==========================================================================
   INNER PAGE — PRACTICE GROUP CARDS
   ========================================================================== */
.ctmtb-groups-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-top: 2rem;
}
.ctmtb-group-card {
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 1.5rem 1.75rem;
  transition: border-color 0.2s;
}
.ctmtb-group-card:hover { border-color: rgba(181,204,26,0.3); }
.ctmtb-group-badge {
  display: inline-block;
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.2rem 0.65rem;
  border-radius: 3px;
  margin-bottom: 0.85rem;
}
.ctmtb-group-badge--mild    { background-color: rgba(181,204,26,0.15); color: var(--ctmtb-green); }
.ctmtb-group-badge--medium  { background-color: rgba(212,151,58,0.15); color: var(--ctmtb-amber); }
.ctmtb-group-badge--spicy   { background-color: rgba(220,80,50,0.15);  color: #e05a3a; }
.ctmtb-group-badge--habanero{ background-color: rgba(200,50,50,0.15);  color: #e03a3a; }
.ctmtb-group-name {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 1.6rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.02em;
  margin-bottom: 0.5rem;
}
.ctmtb-group-desc { font-size: 0.93rem; line-height: 1.65; color: var(--ctmtb-body); }

/* ==========================================================================
   INNER PAGE — LOCATION GRID
   ========================================================================== */
.ctmtb-locations-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}
.ctmtb-location-card {
  background-color: var(--ctmtb-bg);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 1.25rem 1.5rem;
}
.ctmtb-location-name {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.05rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.03em;
  margin-bottom: 0.35rem;
}
.ctmtb-location-addr { font-size: 0.82rem; line-height: 1.5; color: var(--ctmtb-body); margin-bottom: 0.5rem; }
.ctmtb-location-rain { font-size: 0.8rem; color: var(--ctmtb-muted); }
.ctmtb-location-rain strong { color: var(--ctmtb-amber); font-weight: 600; }

/* ==========================================================================
   INNER PAGE — GEAR / CHECKLIST LISTS
   ========================================================================== */
.ctmtb-gear-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  margin-top: 2.5rem;
}
.ctmtb-gear-section-title {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ctmtb-cream);
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--ctmtb-border);
}
.ctmtb-gear-list { display: flex; flex-direction: column; gap: 0.45rem; }
.ctmtb-gear-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ctmtb-body);
}
.ctmtb-gear-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--ctmtb-amber);
  flex-shrink: 0;
  margin-top: 0.5em;
}
.ctmtb-gear-dot--green { background-color: var(--ctmtb-green); }

.ctmtb-checklist { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1.5rem; }
.ctmtb-check-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  font-size: 0.98rem;
  color: var(--ctmtb-body);
  padding: 0.65rem 1rem;
  background-color: var(--ctmtb-bg2);
  border-radius: 4px;
  border: 1px solid var(--ctmtb-border);
}
.ctmtb-check-box {
  width: 20px; height: 20px;
  border: 2px solid var(--ctmtb-amber);
  border-radius: 4px;
  flex-shrink: 0;
}

/* ==========================================================================
   INNER PAGE — RACE DAY CARDS (Sat/Sun)
   ========================================================================== */
.ctmtb-race-days {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 2rem;
}
.ctmtb-race-day-card {
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 2rem;
}
.ctmtb-race-day-label {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ctmtb-amber);
  margin-bottom: 0.5rem;
}
.ctmtb-race-day-title {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 1.75rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.02em;
  margin-bottom: 0.75rem;
}
.ctmtb-race-day-copy { font-size: 0.95rem; line-height: 1.65; color: var(--ctmtb-body); }

/* ==========================================================================
   INNER PAGE — VALUES LIST
   ========================================================================== */
.ctmtb-values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}
.ctmtb-value-item {
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-top: 3px solid var(--ctmtb-green);
  border-radius: 4px;
  padding: 1.25rem 1rem;
  text-align: center;
}
.ctmtb-value-word {
  font-family: var(--ctmtb-display);
  font-weight: 900;
  font-size: 1.15rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.04em;
}

/* ==========================================================================
   INNER PAGE — CONTACT LINKS
   ========================================================================== */
.ctmtb-contact-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 2rem;
}
.ctmtb-contact-link {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 6px;
  padding: 1.25rem 1.75rem;
  transition: border-color 0.2s, background-color 0.2s;
  cursor: pointer;
}
.ctmtb-contact-link:hover { border-color: rgba(181,204,26,0.4); background-color: rgba(181,204,26,0.05); }
.ctmtb-contact-link-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
  width: 2.5rem;
  text-align: center;
}
.ctmtb-contact-link-body { flex: 1; }
.ctmtb-contact-link-label {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.03em;
}
.ctmtb-contact-link-sub { font-size: 0.88rem; color: var(--ctmtb-muted); margin-top: 0.2rem; }
.ctmtb-contact-link-arrow { color: var(--ctmtb-green); font-size: 1.1rem; flex-shrink: 0; }

.ctmtb-quick-links-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.ctmtb-quick-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.25rem;
  background-color: var(--ctmtb-bg2);
  border: 1px solid var(--ctmtb-border);
  border-radius: 4px;
  font-family: var(--ctmtb-display);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ctmtb-body);
  transition: color 0.2s, border-color 0.2s;
}
.ctmtb-quick-link:hover { color: var(--ctmtb-green); border-color: rgba(181,204,26,0.3); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
  .ctmtb-nav-list li a { font-size: 0.68rem; padding: 0.35rem 0.45rem; }
}
@media (max-width: 900px) {
  .ctmtb-split { grid-template-columns: 1fr; gap: 3rem; }
  .ctmtb-split-img { order: -1; }
  .ctmtb-footer-inner { flex-direction: column; gap: 2rem; }
  .ctmtb-pillars { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ctmtb-section { padding-block: 4rem; }
  .ctmtb-hero { min-height: 90svh; padding-bottom: 4rem; }
  .ctmtb-hero-title { font-size: clamp(2.6rem, 12vw, 3.5rem); }
  .ctmtb-cards { grid-template-columns: 1fr; }
  .ctmtb-cta-group { flex-direction: column; }
  .ctmtb-btn { text-align: center; }
  .ctmtb-step { flex-direction: column; gap: 0.75rem; }
  .ctmtb-step-num { font-size: 1.5rem; width: auto; text-align: left; }
  .ctmtb-header-current { display: none; }
  .ctmtb-dropdown-list { grid-template-columns: 1fr 1fr; }
  .ctmtb-schedule-grid { grid-template-columns: 1fr; }
  .ctmtb-groups-grid   { grid-template-columns: 1fr; }
  .ctmtb-locations-grid { grid-template-columns: 1fr; }
  .ctmtb-gear-cols { grid-template-columns: 1fr; }
  .ctmtb-race-days { grid-template-columns: 1fr; }
  .ctmtb-values-grid { grid-template-columns: repeat(2, 1fr); }
  .ctmtb-quick-links-grid { grid-template-columns: 1fr; }
  .ctmtb-photo-split { grid-template-columns: 1fr; gap: 2rem; }
}

/* ==========================================================================
   WORDPRESS OVERRIDES
   ========================================================================== */

/* FAQ answers hidden by default — JS toggles display:block on open */
.ctmtb-faq-a { display: none; }

/* Right header group (Instagram + Menu) */
.ctmtb-header-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

/* WYSIWYG prose content (Standard template) */
.ctmtb-prose h2 { font-family: var(--ctmtb-display); font-weight: 900; font-size: clamp(1.6rem,3vw,2.4rem); text-transform: uppercase; color: var(--ctmtb-cream); margin: 2.5rem 0 0.75rem; line-height: 1.05; }
.ctmtb-prose h3 { font-family: var(--ctmtb-display); font-weight: 800; font-size: clamp(1.2rem,2.5vw,1.7rem); text-transform: uppercase; color: var(--ctmtb-cream); margin: 2rem 0 0.6rem; }
.ctmtb-prose h4 { font-family: var(--ctmtb-display); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; color: var(--ctmtb-amber); letter-spacing: 0.06em; margin: 1.5rem 0 0.5rem; }
.ctmtb-prose p  { font-size: 1.05rem; line-height: 1.75; color: var(--ctmtb-body); margin-bottom: 1.2rem; }
.ctmtb-prose ul, .ctmtb-prose ol { margin-bottom: 1.25rem; padding-left: 1.5rem; }
.ctmtb-prose ul li, .ctmtb-prose ol li { font-size: 1rem; line-height: 1.7; color: var(--ctmtb-body); margin-bottom: 0.4rem; }
.ctmtb-prose ul li::marker { color: var(--ctmtb-amber); }
.ctmtb-prose a  { color: var(--ctmtb-green); text-decoration: underline; }
.ctmtb-prose strong { color: var(--ctmtb-cream); }

/* ── WYSIWYG / rich-text output (General Content + Announcement templates) ── */
.ctmtb-wysiwyg h2 { font-family: var(--ctmtb-display); font-weight: 900; font-size: clamp(1.5rem,2.8vw,2.2rem); text-transform: uppercase; color: var(--ctmtb-cream); margin: 2.5rem 0 0.75rem; line-height: 1.05; }
.ctmtb-wysiwyg h3 { font-family: var(--ctmtb-display); font-weight: 800; font-size: clamp(1.15rem,2.3vw,1.6rem); text-transform: uppercase; color: var(--ctmtb-cream); margin: 2rem 0 0.6rem; }
.ctmtb-wysiwyg h4 { font-family: var(--ctmtb-display); font-weight: 700; font-size: 1rem; text-transform: uppercase; color: var(--ctmtb-amber); letter-spacing: 0.06em; margin: 1.5rem 0 0.5rem; }
.ctmtb-wysiwyg p  { font-size: 1.05rem; line-height: 1.75; color: var(--ctmtb-body); margin-bottom: 1.2rem; }
.ctmtb-wysiwyg ul, .ctmtb-wysiwyg ol { margin-bottom: 1.25rem; padding-left: 1.5rem; }
.ctmtb-wysiwyg li { font-size: 1rem; line-height: 1.7; color: var(--ctmtb-body); margin-bottom: 0.4rem; }
.ctmtb-wysiwyg ul li::marker { color: var(--ctmtb-amber); }
.ctmtb-wysiwyg a  { color: var(--ctmtb-green); text-decoration: underline; }
.ctmtb-wysiwyg strong { color: var(--ctmtb-cream); }

/* ── Team Roster template ──────────────────────────────────────────────────── */
.ctmtb-roster-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
}
.ctmtb-roster-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s;
}
.ctmtb-roster-card:hover { border-color: var(--ctmtb-green); }
.ctmtb-roster-photo-wrap { aspect-ratio: 1/1; overflow: hidden; }
.ctmtb-roster-photo { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
.ctmtb-roster-card:hover .ctmtb-roster-photo { transform: scale(1.04); }
.ctmtb-roster-photo-placeholder {
  aspect-ratio: 1/1;
  background: rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}
.ctmtb-roster-name {
  font-family: var(--ctmtb-display);
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  color: var(--ctmtb-cream);
  letter-spacing: 0.03em;
  padding: 1rem 1rem 0.2rem;
}
.ctmtb-roster-role {
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ctmtb-green);
  padding: 0 1rem 0.6rem;
}
.ctmtb-roster-bio {
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--ctmtb-body);
  padding: 0 1rem 1rem;
  margin: 0;
  flex: 1;
}

@media (max-width: 600px) {
  .ctmtb-roster-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
}
@media (max-width: 400px) {
  .ctmtb-roster-grid { grid-template-columns: 1fr; }
}
