*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Barlow', sans-serif;
  background: #0a0a0a;
  color: #f0ede6;
  overflow-x: hidden;
}

/* ── NAV ── */
.bjj-nav {
  background: rgba(10,10,10,0.97);
  border-bottom: 1px solid #1e1e1e;
  padding: 0 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  position: sticky;
  top: 0;
  z-index: 1000;
}
.bjj-logo {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 24px;
  letter-spacing: 3px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.bjj-logo span { color: #c8a84b; }
.bjj-logo-icon { width: 38px; height: 38px; filter: invert(1); flex-shrink: 0; }
.bjj-nav-links { display: flex; gap: 2.5rem; list-style: none; }
.bjj-nav-links a {
  color: #888;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: color 0.2s;
  cursor: pointer;
}
.bjj-nav-links a:hover, .bjj-nav-links a.active { color: #c8a84b; }
.nav-cta {
  background: #c8a84b;
  color: #0a0a0a;
  border: none;
  padding: 10px 22px;
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s;
  text-decoration: none;
  display: inline-block;
}
.nav-cta:hover { background: #dfc06a; }
.nav-social { display: flex; align-items: center; gap: 4px; border-left: 1px solid #1e1e1e; padding-left: 1.25rem; margin-left: 0.5rem; }
.nav-social-link { color: #555; font-size: 20px; line-height: 1; padding: 6px; transition: color 0.2s; display: flex; }
.nav-social-link:hover { color: #c8a84b; }

/* ── IMAGE PLACEHOLDERS ── */
.img-placeholder {
  background: #1a1a1a;
  border: 2px dashed #333;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #444;
  font-size: 13px;
  font-family: 'Barlow', sans-serif;
  text-align: center;
  padding: 1rem;
  position: relative;
  overflow: hidden;
}
.img-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 10px,
    rgba(255,255,255,0.015) 10px,
    rgba(255,255,255,0.015) 20px
  );
}
.img-placeholder i { font-size: 36px; color: #333; margin-bottom: 0.75rem; position: relative; }
.img-placeholder span { position: relative; line-height: 1.5; }

/* ── SHARED COMPONENTS ── */
.eyebrow {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #c8a84b;
  margin-bottom: 0.75rem;
}
.section-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 52px;
  line-height: 1;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 1.25rem;
}
.gold-line { width: 48px; height: 3px; background: #c8a84b; margin-bottom: 2rem; }
.body-text { font-size: 15px; color: #999; line-height: 1.8; margin-bottom: 1.25rem; }

.btn-primary {
  background: #c8a84b; color: #0a0a0a; border: none;
  padding: 14px 32px; font-family: 'Barlow', sans-serif;
  font-weight: 700; font-size: 12px; letter-spacing: 2px;
  text-transform: uppercase; cursor: pointer; transition: background 0.2s;
  display: inline-block; text-decoration: none;
}
.btn-primary:hover { background: #dfc06a; }
.btn-outline {
  background: transparent; color: #fff;
  border: 1px solid #444; padding: 14px 32px;
  font-family: 'Barlow', sans-serif; font-weight: 700;
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  cursor: pointer; transition: all 0.2s; display: inline-block;
  text-decoration: none;
}
.btn-outline:hover { border-color: #c8a84b; color: #c8a84b; }
.btn-dark {
  background: #0a0a0a; color: #c8a84b; border: none;
  padding: 16px 40px; font-family: 'Barlow', sans-serif;
  font-weight: 700; font-size: 13px; letter-spacing: 2px;
  text-transform: uppercase; cursor: pointer; transition: background 0.2s;
  text-decoration: none; display: inline-block;
}
.btn-dark:hover { background: #1a1a1a; }

.badge-gi   { color: #5a9bd5; border: 1px solid #1a3a55; background: #0d1f2d; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; }
.badge-nogi { color: #c87c3e; border: 1px solid #5a2d10; background: #2d1508; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; }
.badge-kids { color: #5ab87c; border: 1px solid #1a4a2d; background: #0d2218; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; }
.badge-open { color: #c8a84b; border: 1px solid #5a4510; background: #1e1608; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; }

/* ── SCHEDULE FILTER BUTTONS ── */
.schedule-filters-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-top: 2rem; flex-wrap: wrap; }
.schedule-filters { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.filter-btn {
  background: none;
  border: 1px solid #222;
  color: #444;
  font-family: 'Barlow', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 8px 18px;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.filter-btn:hover                       { border-color: #555; color: #888; }
.filter-btn[data-filter="all"].active   { border-color: #555; color: #ccc; background: #1a1a1a; }
.filter-btn[data-filter="gi"].active    { color: #5a9bd5; border-color: #1a3a55; background: #0d1f2d; }
.filter-btn[data-filter="nogi"].active  { color: #c87c3e; border-color: #5a2d10; background: #2d1508; }
.filter-btn[data-filter="kids"].active  { color: #5ab87c; border-color: #1a4a2d; background: #0d2218; }
.filter-btn[data-filter="open"].active  { color: #c8a84b; border-color: #5a4510; background: #1e1608; }

/* ── PRIVATE TRAINING GRID ── */
.private-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.private-item {
  background: #111;
  border: 1px solid #1e1e1e;
  padding: 1.5rem;
  font-size: 14px;
  color: #888;
  line-height: 1.6;
}

/* ── LAYOUT HELPERS ── */
.section-wrap { padding: 5rem 3rem; max-width: 1100px; margin: 0 auto; }
.section-dark  { background: #0d0d0d; }
.section-mid   { background: #111; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.three-col { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }

/* ── HERO ── */
.hero {
  position: relative; min-height: 560px;
  display: flex; align-items: center;
  background: #0a0a0a; overflow: hidden;
}
.hero-diagonal {
  position: absolute; right: 0; top: 0; bottom: 0; width: 46%;
  background: #111;
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0% 100%);
  overflow: hidden;
}
.hero-content {
  position: relative; z-index: 2;
  padding: 4rem 3rem; max-width: 580px;
}
.hero h1 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 86px; line-height: 0.93; letter-spacing: 2px;
  color: #fff; margin-bottom: 1.5rem;
}
.hero h1 span { color: #c8a84b; }
.hero p { font-size: 16px; color: #999; line-height: 1.75; margin-bottom: 2rem; max-width: 440px; }
.btn-group { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ── HERO CAROUSEL ── */
.hero-slide {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transition: opacity 1s ease-in-out;
}
.hero-slide.active { opacity: 0.6 !important; }
.hero-dots {
  position: absolute; bottom: 1rem; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 8px; z-index: 10;
}
.hero-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.35);
  cursor: pointer; transition: background 0.3s;
}
.hero-dot.active { background: #c8a84b; }

/* ── STATS BAR ── */
.stats-bar {
  background: #c8a84b; padding: 1.5rem 3rem;
  display: flex; justify-content: center; gap: 5rem;
}
.stat { text-align: center; }
.stat-num { font-family: 'Bebas Neue', sans-serif; font-size: 36px; color: #0a0a0a; line-height: 1; }
.stat-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #5a4010; }

/* ── PROGRAMS ── */
.program-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #1e1e1e; }
.program-card {
  background: #111; padding: 2.5rem 2rem;
  position: relative; overflow: hidden; transition: background 0.3s;
}
.program-card:hover { background: #161616; }
.program-card::after {
  content: ''; position: absolute; top: 0; left: 0;
  width: 100%; height: 3px; background: #c8a84b;
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.3s;
}
.program-card:hover::after { transform: scaleX(1); }
.program-num { font-family: 'Bebas Neue', sans-serif; font-size: 72px; color: #1a1a1a; line-height: 1; }
.program-title { font-family: 'Bebas Neue', sans-serif; font-size: 30px; letter-spacing: 1px; color: #fff; margin: 0.5rem 0 1rem; }
.program-desc { font-size: 14px; color: #777; line-height: 1.75; }

/* ── SCHEDULE TABS ── */
.sched-tabs { display: flex; border-bottom: 1px solid #222; }
.sched-tab {
  padding: 12px 22px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px; font-weight: 700; letter-spacing: 2px;
  text-transform: uppercase; color: #555;
  cursor: pointer; border: none; background: none;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
}
.sched-tab:hover, .sched-tab.active { color: #c8a84b; border-bottom-color: #c8a84b; }
.sched-pane { display: none; }
.sched-pane.active { display: block; }
.class-row {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1.25rem 0; border-bottom: 1px solid #161616;
}
.class-time { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 700; color: #c8a84b; min-width: 150px; }
.class-name { font-size: 15px; font-weight: 600; color: #ddd; flex: 1; }
.class-coach { font-size: 13px; color: #555; }
.no-class { padding: 1.5rem 0; font-size: 14px; color: #333; font-style: italic; }

/* ── TESTIMONIALS ── */
.testimonials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.testimonial {
  background: #111; border: 1px solid #1e1e1e;
  border-left: 3px solid #c8a84b; padding: 2rem;
}
.testimonial-quote { font-size: 15px; color: #aaa; line-height: 1.85; font-style: italic; margin-bottom: 1.25rem; }
.testimonial-author { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #c8a84b; }

/* ── CTA BAND ── */
.cta-band { background: #c8a84b; padding: 4.5rem 3rem; text-align: center; }
.cta-band h2 { font-family: 'Bebas Neue', sans-serif; font-size: 60px; color: #0a0a0a; margin-bottom: 0.75rem; }
.cta-band p { font-size: 16px; color: #6b4e12; margin-bottom: 2rem; }

/* ── PAGE HEROES ── */
.page-hero {
  background: #0f0f0f; border-bottom: 1px solid #1e1e1e;
  padding: 2.5rem 3rem; text-align: center;
}
.page-hero .section-title { font-size: 68px; }

/* ── INSTRUCTOR LAYOUT ── */
.instructor-block {
  display: grid; grid-template-columns: 300px 1fr;
  gap: 4rem; align-items: start;
  padding-bottom: 4rem; margin-bottom: 4rem;
  border-bottom: 1px solid #1a1a1a;
}
.instructor-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.instructor-photo-wrap { position: relative; }
.instructor-meta { margin-top: 1rem; }
.instructor-name { font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 1px; color: #fff; }
.instructor-rank { font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #c8a84b; margin: 0.5rem 0 1.5rem; }

/* ── FAQ ── */
.faq-item { border-bottom: 1px solid #1a1a1a; padding-bottom: 1.25rem; margin-bottom: 1.25rem; }
.faq-q { font-size: 16px; font-weight: 600; color: #ddd; margin-bottom: 0.5rem; }

/* ── AFFILIATES ── */
.affiliate-row { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.affiliate-tile {
  flex: 1; min-width: 140px; max-width: 220px;
  display: flex; flex-direction: column; align-items: center; gap: 0.75rem;
  text-decoration: none; transition: opacity 0.2s;
}
.affiliate-tile:hover { opacity: 0.75; }
.affiliate-logo { width: 100%; height: 90px; border-radius: 0; }
.affiliate-logo-img { width: 100%; height: 90px; object-fit: contain; }
.affiliate-name {
  font-size: 11px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: #555; text-align: center;
}
.affiliate-tile:hover .affiliate-name { color: #c8a84b; }

/* ── INSTRUCTOR TEASER CARDS (home page) ── */
.instructor-teaser-card { display: flex; gap: 1.5rem; align-items: center; background: #161616; padding: 1.5rem; border: 1px solid #222; }
.instructor-teaser-name { font-family: 'Bebas Neue', sans-serif; font-size: 24px; letter-spacing: 1px; color: #fff; }

/* ── INSTRUCTOR BADGE BAR (instructors page) ── */
.instructor-badge-bar { background: #111; border: 1px solid #1e1e1e; border-top: none; padding: 1rem; }

/* ── THEME-AWARE BORDERS ── */
.theme-border-b { border-bottom-color: #1a1a1a; }
.theme-border-t { border-top-color:    #1a1a1a; }

/* ── CONTACT FORM STATES ── */
.form-error-box   { display: none; background: #2d0f0f; border: 1px solid #5a1a1a; color: #e07070; padding: 12px 16px; font-size: 13px; margin-bottom: 1rem; }
.form-success-box { display: none; background: #0d2218; border: 1px solid #1a4a2d; border-left: 3px solid #5ab87c; padding: 2rem; text-align: center; }
.form-success-heading { font-family: 'Bebas Neue', sans-serif; font-size: 32px; color: #5ab87c; margin-bottom: 0.5rem; }

/* ── SCHEDULE PAGE GRID ── */
.day-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
/* Home page today/tomorrow preview */
.home-day-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.home-day-card { background: #111; border: 1px solid #1e1e1e; padding: 1.5rem; }
.home-day-label { font-family: 'Bebas Neue', sans-serif; font-size: 22px; letter-spacing: 1px; color: #c8a84b; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #1e1e1e; }
.home-day-rel { color: #fff; }

.day-card { background: #111; border: 1px solid #1e1e1e; padding: 1.5rem; }
.day-name { font-family: 'Bebas Neue', sans-serif; font-size: 24px; letter-spacing: 1px; color: #c8a84b; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #1e1e1e; }
.ci { padding: 0.75rem 0; border-bottom: 1px solid #161616; }
.ci:last-child { border-bottom: none; }
.ci-time { font-size: 12px; color: #c8a84b; font-weight: 700; margin-bottom: 3px; }
.ci-name { font-size: 14px; color: #ddd; font-weight: 600; }
.ci-coach { font-size: 12px; color: #444; }

/* ── CONTACT ── */
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 5rem; }
.contact-row { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.75rem; }
.contact-icon { color: #c8a84b; font-size: 22px; flex-shrink: 0; margin-top: 2px; }
.contact-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #555; margin-bottom: 4px; }
.contact-val { font-size: 15px; color: #ccc; line-height: 1.5; }
.form-field { margin-bottom: 1.25rem; }
.form-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #555; margin-bottom: 8px; }
.form-input {
  width: 100%; background: #111; border: 1px solid #252525;
  color: #ddd; padding: 12px 16px;
  font-family: 'Barlow', sans-serif; font-size: 15px;
  outline: none; transition: border-color 0.2s;
}
.form-input:focus { border-color: #c8a84b; }
textarea.form-input { resize: vertical; min-height: 120px; }

/* ── FOOTER ── */
.footer-wrap {
  background: #050505; border-top: 1px solid #141414;
  padding: 4rem 3rem 0;
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem; max-width: 1100px; margin: 0 auto;
}
.footer-logo { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 3px; color: #fff; margin-bottom: 1rem; display: flex; align-items: center; gap: 10px; text-decoration: none; }
.footer-logo span { color: #c8a84b; }
.footer-logo-icon { width: 40px; height: 40px; filter: invert(1); flex-shrink: 0; }
.footer-desc { font-size: 14px; color: #444; line-height: 1.75; }
.footer-head { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #c8a84b; margin-bottom: 1rem; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 0.5rem; }
.footer-links a { font-size: 14px; color: #444; text-decoration: none; cursor: pointer; transition: color 0.2s; }
.footer-links a:hover { color: #c8a84b; }
.footer-bottom { border-top: 1px solid #141414; padding: 1.5rem 3rem; text-align: center; font-size: 12px; color: #333; margin-top: 3rem; }

/* ── MAP EMBED ── */
.map-wrap { background: #0f0f0f; padding: 3rem; }
.map-embed { width: 100%; height: 320px; border: none; filter: grayscale(1) invert(0.9) contrast(0.8); opacity: 0.7; }

/* ── BLOG PREVIEW ── */
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.blog-card { background: #111; border: 1px solid #1e1e1e; overflow: hidden; }
.blog-card-link { text-decoration: none; display: block; transition: transform 0.2s, box-shadow 0.2s; }
.blog-card-link:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.4); }
.blog-card-img { width: 100%; height: 180px; object-fit: cover; display: block; }
.blog-card-img-placeholder { height: 180px; background: #1a1a1a; }
.blog-body { padding: 1.5rem; }
.blog-tag { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #c8a84b; margin-bottom: 0.5rem; }
.blog-title { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 700; color: #fff; line-height: 1.2; margin-bottom: 0.75rem; }
.blog-excerpt { font-size: 13px; color: #666; line-height: 1.7; }
.blog-date { font-size: 12px; color: #444; margin-top: 1rem; }

/* ── Blog post page ── */
.post-cover { height: 360px; background-size: cover; background-position: center; }
.post-meta { font-size: 13px; color: #555; margin-top: 0.75rem; letter-spacing: 0.5px; }
.post-body { max-width: 720px; margin: 0 auto; }
.post-content { padding: 2rem 0; }
.post-content h2 { font-family: 'Bebas Neue', sans-serif; font-size: 2rem; color: #c8a84b; margin: 2.5rem 0 1rem; }
.post-content h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 1.3rem; font-weight: 700; color: #ddd; margin: 1.5rem 0 0.5rem; }
.post-content p { font-size: 15px; color: #aaa; line-height: 1.85; margin-bottom: 1.25rem; }
.post-content ul, .post-content ol { font-size: 15px; color: #aaa; line-height: 1.85; padding-left: 1.5rem; margin-bottom: 1.25rem; }
.post-content li { margin-bottom: 0.4rem; }
.post-content a { color: #c8a84b; }
.post-content strong { color: #ddd; }
.post-content blockquote { border-left: 3px solid #c8a84b; padding: 0.75rem 1rem; margin: 1.5rem 0; background: #0f0f0f; color: #888; font-style: italic; }
.post-content img { width: 100%; border-radius: 4px; margin: 1.5rem 0; }
.post-content hr { border: none; border-top: 1px solid #1e1e1e; margin: 2rem 0; }
.post-footer-nav { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #1a1a1a; }

/* ── THEME TOGGLE BUTTON ── */
.theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  color: #555;
  transition: color 0.2s;
}
.theme-toggle:hover { color: #c8a84b; }

/* Hidden on desktop, shown inside hamburger menu on mobile */
.nav-theme-item { display: none; }

/* ── LIGHT MODE ── */
[data-theme="light"] body { background: #f5f3ef; color: #1a1a1a; }

/* Nav */
[data-theme="light"] .bjj-nav { background: rgba(245,243,239,0.97); border-bottom-color: #ddd; }
[data-theme="light"] .bjj-logo { color: #1a1a1a; }
[data-theme="light"] .bjj-logo-icon { filter: none; }
[data-theme="light"] .bjj-nav-links a { color: #888; }
[data-theme="light"] .bjj-nav-links a:hover,
[data-theme="light"] .bjj-nav-links a.active { color: #c8a84b; }
[data-theme="light"] .nav-social { border-left-color: #ddd; }
[data-theme="light"] .nav-social-link,
[data-theme="light"] .theme-toggle { color: #bbb; }
[data-theme="light"] .nav-social-link:hover,
[data-theme="light"] .theme-toggle:hover { color: #c8a84b; }

/* Hero */
[data-theme="light"] .hero { background: #f5f3ef; }
[data-theme="light"] .hero h1 { color: #1a1a1a; }
[data-theme="light"] .hero p { color: #555; }

/* Sections */
[data-theme="light"] .section-dark { background: #eae7e1; }
[data-theme="light"] .section-mid  { background: #f5f3ef; }
[data-theme="light"] .section-title { color: #1a1a1a; }
[data-theme="light"] .body-text { color: #555; }
[data-theme="light"] .gold-line { background: #c8a84b; }

/* Image placeholders */
[data-theme="light"] .img-placeholder { background: #dedad4; border-color: #ccc; }
[data-theme="light"] .img-placeholder i { color: #bbb; }
[data-theme="light"] .img-placeholder span { color: #aaa; }

/* Buttons */
[data-theme="light"] .btn-outline { color: #1a1a1a; border-color: #aaa; }
[data-theme="light"] .btn-outline:hover { border-color: #c8a84b; color: #c8a84b; }

/* Program cards */
[data-theme="light"] .program-grid { background: #ccc; }
[data-theme="light"] .program-card { background: #fff; }
[data-theme="light"] .program-card:hover { background: #faf9f6; }
[data-theme="light"] .program-num { color: #e0ddd7; }
[data-theme="light"] .program-title { color: #1a1a1a; }
[data-theme="light"] .program-desc { color: #666; }

/* Schedule tabs */
[data-theme="light"] .sched-tabs { border-bottom-color: #ddd; }
[data-theme="light"] .sched-tab { color: #aaa; }
[data-theme="light"] .class-row { border-bottom-color: #eee; }
[data-theme="light"] .class-name { color: #1a1a1a; }
[data-theme="light"] .class-coach { color: #888; }
[data-theme="light"] .no-class { color: #bbb; }

/* Testimonials */
[data-theme="light"] .testimonial { background: #fff; border-color: #ddd; }
[data-theme="light"] .testimonial-quote { color: #555; }

/* Page hero banners */
[data-theme="light"] .page-hero { background: #eae7e1; border-bottom-color: #ddd; }

/* Instructor blocks */
[data-theme="light"] .instructor-block { border-bottom-color: #ddd; }
[data-theme="light"] .affiliate-name { color: #888; }
[data-theme="light"] .faq-item { border-bottom-color: #ddd; }
[data-theme="light"] .faq-q { color: #1a1a1a; }
[data-theme="light"] .instructor-teaser-card { background: #fff; border-color: #e0ddd7; }
[data-theme="light"] .instructor-teaser-name { color: #1a1a1a; }
[data-theme="light"] .instructor-badge-bar { background: #eae7e1; border-color: #ddd; }
[data-theme="light"] .theme-border-b { border-bottom-color: #ddd !important; }
[data-theme="light"] .theme-border-t { border-top-color:    #ddd !important; }
[data-theme="light"] .form-error-box   { background: #fff0f0; border-color: #f5c0c0; color: #c0392b; }
[data-theme="light"] .form-success-box { background: #f0fff8; border-color: #b0ddc0; border-left-color: #27ae60; }
[data-theme="light"] .form-success-heading { color: #27ae60; }
[data-theme="light"] .instructor-name { color: #1a1a1a; }

/* Schedule day grid */
[data-theme="light"] .private-item { background: #fff; border-color: #ddd; color: #666; }
[data-theme="light"] .home-day-card { background: #fff; border-color: #ddd; }
[data-theme="light"] .home-day-label { border-bottom-color: #eee; }
[data-theme="light"] .home-day-rel { color: #1a1a1a; }
[data-theme="light"] .day-card { background: #fff; border-color: #ddd; }
[data-theme="light"] .day-name { border-bottom-color: #eee; }
[data-theme="light"] .ci { border-bottom-color: #f0ede6; }
[data-theme="light"] .ci-name { color: #1a1a1a; }
[data-theme="light"] .ci-coach { color: #888; }

/* Contact page */
[data-theme="light"] .contact-val { color: #333; }
[data-theme="light"] .contact-label { color: #aaa; }
[data-theme="light"] .form-input { background: #fff; border-color: #ddd; color: #1a1a1a; }
[data-theme="light"] .form-label { color: #aaa; }

/* Blog */
[data-theme="light"] .blog-card { background: #fff; border-color: #ddd; }
[data-theme="light"] .blog-title { color: #1a1a1a; }
[data-theme="light"] .blog-excerpt { color: #777; }
[data-theme="light"] .blog-date { color: #bbb; }
[data-theme="light"] .blog-card-img-placeholder { background: #eee; }
/* Post page */
[data-theme="light"] .post-meta { color: #999; }
[data-theme="light"] .post-content h3 { color: #333; }
[data-theme="light"] .post-content p, [data-theme="light"] .post-content ul, [data-theme="light"] .post-content ol { color: #444; }
[data-theme="light"] .post-content strong { color: #111; }
[data-theme="light"] .post-content blockquote { background: #f5f5f5; color: #666; }
[data-theme="light"] .post-content hr { border-top-color: #ddd; }
[data-theme="light"] .post-footer-nav { border-top-color: #ddd; }


/* ── NAV HAMBURGER (hidden on desktop) ── */
.nav-hamburger {
  display: none;
  background: none;
  border: none;
  color: #888;
  font-size: 24px;
  cursor: pointer;
  padding: 6px;
  line-height: 1;
  align-items: center;
}
.nav-hamburger:hover { color: #c8a84b; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  /* ── Nav ── */
  .bjj-nav { padding: 0 1.25rem; }
  .nav-social { display: none; }
  .nav-cta    { display: none; }
  .nav-hamburger { display: flex; }
  .bjj-nav-links {
    display: none;
    position: absolute;
    top: 68px; left: 0; right: 0;
    background: rgba(10,10,10,0.98);
    flex-direction: column;
    gap: 0;
    border-bottom: 1px solid #1e1e1e;
    z-index: 999;
  }
  .bjj-nav-links.open { display: flex; }
  .bjj-nav-links li { border-bottom: 1px solid #111; }
  .bjj-nav-links a { display: block; padding: 1rem 1.5rem; font-size: 14px; letter-spacing: 1.5px; }
  .nav-theme-item { display: block; }
  .nav-theme-item .theme-toggle {
    display: flex; align-items: center; gap: 0.75rem;
    width: 100%; padding: 1rem 1.5rem;
    font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    color: #888; border-top: 1px solid #1e1e1e;
  }

  /* ── Spacing ── */
  .section-wrap { padding: 3rem 1.25rem; }
  .page-hero { padding: 2rem 1.25rem; }
  .page-hero .section-title { font-size: 44px; }

  /* ── Hero ── */
  .hero-diagonal { width: 100%; clip-path: none; opacity: 0.2; }
  .hero-content  { padding: 3rem 1.5rem; max-width: 100%; }
  .hero h1       { font-size: 68px; }

  /* ── Stats bar ── */
  .stats-bar { gap: 2rem; padding: 1.25rem; flex-wrap: wrap; }

  /* ── Program grid ── */
  .program-grid { grid-template-columns: 1fr; }

  /* ── Instructor block ── */
  .instructor-block { grid-template-columns: 1fr; gap: 1.5rem; }

  /* ── Schedule day grid ── */
  .day-grid { grid-template-columns: repeat(2, 1fr); }

  /* ── Home schedule cards ── */
  .home-day-grid { grid-template-columns: 1fr; }

  /* ── Contact grid ── */
  .contact-grid { grid-template-columns: 1fr; gap: 2rem; }

  /* ── Schedule filters row ── */
  .schedule-filters-row { flex-direction: column; align-items: flex-start; }

  /* ── Private training grid ── */
  .private-grid { grid-template-columns: 1fr; }

  /* ── Blog grid ── */
  .blog-grid { grid-template-columns: 1fr; }
  .post-cover { height: 220px; }
  .post-body { padding: 0 1rem; }

  /* ── Footer ── */
  .footer-wrap { grid-template-columns: 1fr 1fr; gap: 2rem; padding: 3rem 1.5rem 0; }
  .footer-bottom { padding: 1.5rem; }
}

@media (max-width: 480px) {
  .day-grid    { grid-template-columns: 1fr; }
  .footer-wrap { grid-template-columns: 1fr; }
  .hero h1     { font-size: 56px; }
  .stats-bar   { justify-content: flex-start; gap: 1.5rem; }
}

[data-theme="light"] .nav-hamburger { color: #bbb; }
[data-theme="light"] .nav-hamburger:hover { color: #c8a84b; }
[data-theme="light"] .bjj-nav-links { background: rgba(245,243,239,0.98); border-bottom-color: #ddd; }
[data-theme="light"] .bjj-nav-links li { border-bottom-color: #eee; }
