/* ═══════════════════════════════════════════════════════════════════════
   FTC Site — shared overrides + small components
   Included on every page after nox-tokens.css + nox-website.css.
   Keep page-specific styles in each page's <style> block.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── Nav logo ─── */
.site-nav { min-height: 64px; overflow: visible; }
.ftc-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  padding: 0;
  max-width: none;
  overflow: visible;
  height: 100%;
}
/* The horizontal PNG has built-in transparent padding around the mark, so we
   oversize the element and let it overflow the nav band visually. This makes
   the actual logo glyph read at ~48px tall without needing to trim the PNG. */
.ftc-logo-img {
  height: 92px;
  width: auto;
  max-width: 280px;
  display: block;
  object-fit: contain;
  transition: opacity 0.2s ease;
  margin: -18px 0;
}
.ftc-logo-img:hover { opacity: 0.85; }
@media (max-width: 900px) {
  .site-nav { min-height: 60px; }
  .ftc-logo-img { height: 78px; max-width: 230px; margin: -14px 0; }
}
@media (max-width: 600px) {
  .site-nav { min-height: 54px; }
  .ftc-logo-img { height: 64px; max-width: 180px; margin: -10px 0; }
}

/* ─── Footer social icons (replaces broken default social layout) ─── */
.ftc-social-list {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
  flex-wrap: wrap;
}
.ftc-social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px;
  color: #f5f5f5 !important;
  text-decoration: none !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: all 0.18s ease;
  line-height: 1;
}
.ftc-social-btn:hover {
  background: #f5f5f5;
  color: #0a0a0a !important;
  border-color: #f5f5f5;
  transform: translateY(-1px);
}
.ftc-social-btn svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* ─── Legibility overrides — keep all text crisp + readable ─── */
.site-footer,
.site-footer a,
.site-footer li { color: #c0c0c0; }
.site-footer a:hover { color: #ffffff; }
.site-footer-about { color: #9a9a9a !important; font-size: 14px; line-height: 1.6; }
.site-footer-title { color: #ffffff !important; opacity: 1 !important; }
.site-footer-brand { color: #ffffff !important; }
.site-footer-bottom,
.site-footer-bottom a { color: #888; }
.site-footer-bottom a:hover { color: #ffffff; }

.nox-label { color: #d4d4d4 !important; }
.nox-input::placeholder,
.nox-textarea::placeholder { color: #6e6e6e !important; opacity: 1; }
.nox-input,
.nox-select,
.nox-textarea { color: #f5f5f5 !important; }

/* Nav links — ensure active state + hover are clearly readable */
.site-nav-link {
  color: #c0c0c0;
  transition: color 0.15s ease;
}
.site-nav-link:hover { color: #ffffff; }
.site-nav-link.active { color: #ffffff; font-weight: 600; }

/* ─── Back-to-top floating button ─── */
.ftc-back-to-top {
  position: fixed;
  bottom: 100px;
  right: 24px;
  z-index: 9997;
  width: 44px; height: 44px;
  background: rgba(10,10,10,0.85);
  color: #eaeaea;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 50%;
  display: grid; place-items: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,0.35);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, background 0.18s ease, color 0.18s ease;
  backdrop-filter: blur(8px);
}
.ftc-back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.ftc-back-to-top:hover {
  background: #eaeaea;
  color: #0a0a0a;
  border-color: #eaeaea;
}
@media (max-width: 520px) {
  .ftc-back-to-top { bottom: 92px; right: 18px; width: 40px; height: 40px; }
}

/* ─── Schedule — discipline-colored left accent ─── */
/* Matte fighting colors, muted for the dark theme. Only applied inside
   schedule contexts so the rest of the site stays monochrome. */
.site-schedule,
.ftc-schedule-grid {
  --disc-muay: #a84242;   /* matte crimson — Muay Thai */
  --disc-bjj:  #3d5a80;   /* matte navy — No-Gi BJJ */
  --disc-wres: #7a6b3e;   /* matte olive-gold — Wrestling */
  --disc-kids: #b8723e;   /* matte burnt orange — Kids MT */
  --disc-open: #5a7d5e;   /* matte sage — Open Mat */
  --disc-pvt:  #6b5b7e;   /* matte plum — Private / Semi */
}

/* Homepage schedule preview cards (site-schedule-card class) */
.site-schedule-card.disc-muay       { border-left: 3px solid var(--disc-muay); }
.site-schedule-card.disc-bjj        { border-left: 3px solid var(--disc-bjj); }
.site-schedule-card.disc-wres       { border-left: 3px solid var(--disc-wres); }
.site-schedule-card.disc-kids       { border-left: 3px solid var(--disc-kids); }
.site-schedule-card.disc-open       { border-left: 3px solid var(--disc-open); }
.site-schedule-card.disc-pvt        { border-left: 3px solid var(--disc-pvt); }

.site-schedule-card.disc-muay .site-schedule-name,
.site-schedule-card.disc-bjj  .site-schedule-name,
.site-schedule-card.disc-wres .site-schedule-name,
.site-schedule-card.disc-kids .site-schedule-name,
.site-schedule-card.disc-open .site-schedule-name,
.site-schedule-card.disc-pvt  .site-schedule-name {
  display: flex;
  align-items: center;
  gap: 8px;
}
.site-schedule-card.disc-muay .site-schedule-name::before,
.site-schedule-card.disc-bjj  .site-schedule-name::before,
.site-schedule-card.disc-wres .site-schedule-name::before,
.site-schedule-card.disc-kids .site-schedule-name::before,
.site-schedule-card.disc-open .site-schedule-name::before,
.site-schedule-card.disc-pvt  .site-schedule-name::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.site-schedule-card.disc-muay .site-schedule-name::before { background: var(--disc-muay); }
.site-schedule-card.disc-bjj  .site-schedule-name::before { background: var(--disc-bjj); }
.site-schedule-card.disc-wres .site-schedule-name::before { background: var(--disc-wres); }
.site-schedule-card.disc-kids .site-schedule-name::before { background: var(--disc-kids); }
.site-schedule-card.disc-open .site-schedule-name::before { background: var(--disc-open); }
.site-schedule-card.disc-pvt  .site-schedule-name::before { background: var(--disc-pvt); }

/* Schedule page full grid — discipline chip pill */
.ftc-disc-chip-sched {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 100px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.ftc-disc-chip-sched.disc-muay { background: rgba(168,66,66,0.18);  color: #d68a8a; border: 1px solid rgba(168,66,66,0.35); }
.ftc-disc-chip-sched.disc-bjj  { background: rgba(61,90,128,0.22);  color: #8fb0d8; border: 1px solid rgba(61,90,128,0.4);  }
.ftc-disc-chip-sched.disc-wres { background: rgba(122,107,62,0.22); color: #cfbe84; border: 1px solid rgba(122,107,62,0.45); }
.ftc-disc-chip-sched.disc-kids { background: rgba(184,114,62,0.2);  color: #e0a474; border: 1px solid rgba(184,114,62,0.38); }
.ftc-disc-chip-sched.disc-open { background: rgba(90,125,94,0.2);   color: #a4c8a8; border: 1px solid rgba(90,125,94,0.4);  }
.ftc-disc-chip-sched.disc-pvt  { background: rgba(107,91,126,0.2);  color: #b8a3d0; border: 1px solid rgba(107,91,126,0.4);  }

/* Schedule page legend */
.ftc-sched-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: center;
  padding: 14px 16px;
  margin-bottom: 24px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
}
.ftc-sched-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 1.5px;
  color: #b8b8b8;
  text-transform: uppercase;
}
.ftc-sched-legend-dot {
  width: 10px; height: 10px; border-radius: 50%;
}

/* ─── Photo gallery teaser (homepage) ─── */
.ftc-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  max-width: 1120px;
  margin: 0 auto;
}
.ftc-gallery-tile {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #0a0a0a;
  border-radius: 4px;
  cursor: default;
}
.ftc-gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) contrast(1.02);
  transition: filter 0.3s ease, transform 0.4s ease;
}
.ftc-gallery-tile:hover img {
  filter: grayscale(0%) contrast(1);
  transform: scale(1.035);
}
.ftc-gallery-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.25) 100%);
  pointer-events: none;
}
@media (max-width: 780px) {
  .ftc-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 440px) {
  .ftc-gallery { grid-template-columns: repeat(2, 1fr); gap: 4px; }
}

/* ─── Featured testimonial video ─── */
.ftc-video-wrap {
  max-width: 880px;
  margin: 0 auto 48px;
  position: relative;
  background: #000;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 16px 56px rgba(0,0,0,0.45);
}
.ftc-video {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  background: #000;
}
.ftc-video-caption {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 5px 10px;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(6px);
  color: #eaeaea;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 2.5px;
  font-weight: 700;
  border-radius: 4px;
  pointer-events: none;
}

/* ─── Book a Call — hero button + contact page prominent card ─── */
.ftc-book-call-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ftc-book-call-card {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  background: linear-gradient(135deg, rgba(234,234,234,0.07), rgba(234,234,234,0.02));
  border: 1px solid rgba(234,234,234,0.22);
  border-radius: 14px;
}
.ftc-book-call-icon {
  flex-shrink: 0;
  width: 60px; height: 60px;
  background: #eaeaea;
  color: #0a0a0a;
  border-radius: 12px;
  display: grid;
  place-items: center;
}
.ftc-book-call-body {
  flex: 1;
  min-width: 0;
}
.ftc-book-call-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 2.5px;
  color: #888;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.ftc-book-call-title {
  font-family: 'League Spartan', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: #ffffff;
  line-height: 1.15;
  letter-spacing: -0.2px;
  margin: 0 0 6px 0;
}
.ftc-book-call-sub {
  font-size: 14px;
  color: #b8b8b8;
  line-height: 1.5;
  margin: 0;
}
.ftc-book-call-cta { flex-shrink: 0; }

/* "Chat" fallback mode — signal that we're routing to bot, not calendar */
[data-ftc-book-mode="chat"]::after {
  content: ' (chat)';
  opacity: 0.7;
  font-size: 0.85em;
  font-weight: 500;
}

@media (max-width: 720px) {
  .ftc-book-call-card {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 14px;
    padding: 20px 22px;
  }
  .ftc-book-call-cta { align-self: stretch; text-align: center; justify-content: center; }
}

/* ─── Kids discipline card — parent trust cluster ─── */
.ftc-parent-trust {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ftc-parent-trust li {
  position: relative;
  padding: 10px 12px 10px 32px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  font-size: 13px;
  color: #b8b8b8;
  line-height: 1.5;
}
.ftc-parent-trust li strong {
  color: #f5f5f5;
  font-weight: 700;
}
.ftc-parent-trust li::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 14px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: transparent;
  border: 2px solid #5a7d5e;  /* matte sage — Kids green from schedule palette */
  box-shadow: inset 0 0 0 4px #5a7d5e;
  box-sizing: border-box;
}

/* ─── Hero upcoming classes microcopy ─── */
.ftc-hero-next {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  align-items: center;
  margin-top: 18px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  max-width: fit-content;
}
.ftc-hero-next-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 2px;
  color: #9a9a9a;
  text-transform: uppercase;
  padding-right: 14px;
  border-right: 1px solid rgba(255,255,255,0.1);
}
.ftc-hero-next-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'League Spartan', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #eaeaea;
  letter-spacing: 0.3px;
}
.ftc-hero-next-item-name { color: #eaeaea; }
.ftc-hero-next-item-time { color: #9a9a9a; font-weight: 500; }
@media (max-width: 720px) {
  .ftc-hero-next { flex-direction: column; align-items: flex-start; gap: 8px; }
  .ftc-hero-next-label {
    border-right: none;
    padding-right: 0;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    width: 100%;
  }
}

/* ─── Intake form — small note under K-8 checkbox ─── */
.ftc-kids-note {
  margin-top: 8px;
  padding: 10px 12px;
  background: rgba(212,154,46,0.06);
  border: 1px solid rgba(212,154,46,0.24);
  border-radius: 6px;
  font-size: 12px;
  color: #d4b078;
  line-height: 1.55;
}

/* ─── Intake form — format legend above discipline grid ─── */
.ftc-format-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 10px 12px;
  margin-bottom: 12px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  color: #b8b8b8;
  letter-spacing: 0.3px;
  line-height: 1.4;
}
.ftc-format-legend strong {
  color: #f5f5f5;
  font-weight: 700;
  letter-spacing: 1px;
}

/* ─── NOX attribution mark (footer of every page) ─── */
.ftc-nox-mark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'League Spartan', Helvetica, Arial, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #6a6a6a;
  text-decoration: none;
  padding: 4px 10px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 100px;
  background: rgba(255,255,255,0.02);
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
  white-space: nowrap;
}
.ftc-nox-mark:hover {
  color: #ffffff;
  border-color: rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.04);
}
.ftc-nox-mark-label { color: #888; font-weight: 500; letter-spacing: 1.5px; }
.ftc-nox-mark-word {
  color: inherit;
  font-weight: 900;
  letter-spacing: 3px;
}

/* ─── Shared "matte white" CTA (used for Full Story + similar) ─── */
.ftc-cta-solid {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  background: #eaeaea !important;
  color: #0a0a0a !important;
  border: 1px solid #eaeaea !important;
  padding: 10px 18px !important;
  font-family: 'League Spartan', Helvetica, Arial, sans-serif;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 6px;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.ftc-cta-solid:hover {
  background: #f5f5f5 !important;
  color: #0a0a0a !important;
  transform: translateY(-1px);
}
.ftc-cta-solid .ftc-cta-arrow {
  transition: transform 0.18s ease;
  display: inline-block;
}
.ftc-cta-solid:hover .ftc-cta-arrow { transform: translateX(3px); }
