/* ============================================================
   BTP HOCKEY — MASTERPIECE STYLESHEET
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Source+Sans+3:ital,wght@0,300;0,400;0,600;0,700;1,400&display=swap');

:root {
  --black:      #0a0f0c;
  --dark:       #101711;
  --char:       #1a231c;
  --gray:       #5f6f64;
  --silver:     #9db3a6;
  --platinum:   #c8d6cc;
  --light:      #eef2ef;
  --white:      #ffffff;
  --border:     #d3ddd6;
  --accent:    #4a8f5f;
  --accent-dk: #2f6b45;
  --accent-lt: #e2ede6;
  --frost:      #a8c5b4;
  --pine:       #14251a;
  --pine-mid:   #1f3d2a;
  --red:        #c0392b;
  --shadow:     0 2px 20px rgba(10,20,12,.10);
  --shadow-lg:  0 8px 40px rgba(10,20,12,.20);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { font-family:'Source Sans 3',sans-serif; color:var(--char); background:var(--white); font-size:16px; line-height:1.7; }
.wrap { max-width:1100px; margin:0 auto; padding:0 24px; }
img { max-width:100%; display:block; }
a { color:var(--accent-dk); text-decoration:none; }
a:hover { color:var(--black); }

/* ── NAV ── */
.nav { position:sticky; top:0; z-index:100; background:var(--black); border-bottom:3px solid var(--accent); }
.nav .wrap { display:flex; align-items:center; justify-content:space-between; }
.nav-brand { font-family:'Bebas Neue',sans-serif; color:var(--white); font-size:1.15em; letter-spacing:2px; padding:14px 0; white-space:nowrap; transition:color .2s; }
.nav-brand span { color:var(--accent); }
.nav-brand:hover { color:var(--accent); }
.nav-links { display:flex; gap:0; }
.nav-links a { color:rgba(255,255,255,.5); font-family:'Bebas Neue',sans-serif; font-size:.9em; letter-spacing:1.5px; padding:14px 16px; transition:all .2s; }
.nav-links a:hover, .nav-links a.active { color:#fff; background:rgba(126,184,212,.15); }
.nav-mobile { display:none; color:white; font-size:1.5em; cursor:pointer; padding:14px 0; }

/* ── HERO — VIDEO BACKGROUND ── */
.hero {
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  background:var(--black);
  overflow:hidden;
}
.hero-bg-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.32;
  filter:saturate(.55) contrast(1.15);
  z-index:0;
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(13,13,13,.75) 0%, rgba(13,13,13,.3) 50%, rgba(13,13,13,.8) 100%);
  z-index:1;
}
.hero-content {
  position:relative; z-index:2;
  padding:100px 0 80px;
}
.hero h1 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3.5em,8vw,6.5em);
  letter-spacing:2px; line-height:1;
  color:#fff;
}
.hero h1 span { color:var(--accent); }
.hero .sub {
  font-size:1.15em; font-weight:300;
  opacity:.75; margin-top:14px;
  max-width:600px; color:#fff;
}
.btn-row { display:flex; gap:14px; flex-wrap:wrap; }
.hero .btn-row { display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero-badge {
  position:absolute; bottom:32px; right:32px; z-index:2;
  display:flex; flex-direction:column; align-items:center;
  font-family:'Bebas Neue',sans-serif; font-size:.7em; letter-spacing:.2em;
  color:rgba(255,255,255,.35); gap:8px;
}
.hero-badge::after {
  content:'';
  width:1px; height:48px;
  background:rgba(255,255,255,.25);
  animation:scrollpulse 2s ease-in-out infinite;
}
@keyframes scrollpulse {
  0%,100% { opacity:.3; transform:scaleY(.6); }
  50%      { opacity:.8; transform:scaleY(1); }
}

/* ── INNER PAGE HERO ── */
.hero-inner {
  background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 40%,#222 70%,#1e1e1e 100%);
  color:#fff; padding:70px 0 60px;
  position:relative; overflow:hidden;
}
.hero-inner::after {
  content:''; position:absolute;
  top:-80px; right:-80px;
  width:420px; height:420px;
  background:radial-gradient(circle,rgba(126,184,212,.09) 0%,transparent 70%);
  border-radius:50%;
}
.hero-inner h1 { font-family:'Bebas Neue',sans-serif; font-size:clamp(2.2em,5vw,3.8em); letter-spacing:2px; line-height:1.05; }
.hero-inner h1 span { color:var(--accent); }
.hero-inner .sub { font-size:1.1em; font-weight:300; opacity:.65; margin-top:10px; max-width:650px; }

/* ── BUTTONS ── */
.btn { display:inline-block; font-family:'Bebas Neue',sans-serif; font-size:1em; letter-spacing:1.5px; padding:13px 30px; border-radius:4px; transition:all .2s; cursor:pointer; border:none; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-primary:hover { background:var(--accent-dk); color:#fff; transform:translateY(-1px); box-shadow:0 4px 16px rgba(74,138,170,.35); }
.btn-outline { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.35); }
.btn-outline:hover { border-color:#fff; color:#fff; background:rgba(255,255,255,.08); }
.btn-dark { background:var(--black); color:#fff; }
.btn-dark:hover { background:var(--char); color:#fff; }

/* ── SECTIONS ── */
.section { padding:72px 0; }
.section.gray { background:var(--light); }
.section.dark { background:var(--black); color:#fff; }
.section.accent { background:var(--accent-lt); }
.section-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(1.8em,4vw,2.4em); letter-spacing:1px; color:var(--black); margin-bottom:8px; }
.section.dark .section-title { color:#fff; }
.section-sub { font-size:1.05em; color:var(--gray); margin-bottom:32px; max-width:700px; }
.section.dark .section-sub { color:var(--silver); }
.section-divider { width:52px; height:3px; background:var(--accent); margin-bottom:20px; }

/* ── GRID ── */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; }
.grid-4 { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:20px; }

/* ── CARDS ── */
.card { background:var(--white); border:1px solid var(--border); border-radius:10px; padding:28px; box-shadow:var(--shadow); }
.card h3 { font-family:'Bebas Neue',sans-serif; font-size:1.2em; letter-spacing:.5px; color:var(--black); margin-bottom:6px; }
.card .card-skill { font-size:.85em; color:var(--accent-dk); font-weight:600; margin-bottom:8px; }
.card p { font-size:.93em; color:var(--gray); line-height:1.6; }

/* ── STAT BAR ── */
.stat-bar { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; padding:44px 0; }
.stat-num { font-family:'Bebas Neue',sans-serif; font-size:3.2em; color:var(--accent-dk); line-height:1; }
.stat-label { font-size:.82em; color:var(--gray); letter-spacing:1px; margin-top:4px; text-transform:uppercase; }

/* ── FEATURE ── */
.feature { text-align:center; padding:24px 16px; }
.feature .icon { font-size:2.2em; margin-bottom:14px; }
.feature h3 { font-family:'Bebas Neue',sans-serif; font-size:1.2em; color:var(--black); margin-bottom:8px; letter-spacing:.5px; }
.feature p { font-size:.9em; color:var(--gray); }

/* ── PHOTO MOSAIC (index) ── */
.photo-mosaic {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  grid-template-rows:260px 260px;
  gap:8px;
  border-radius:12px;
  overflow:hidden;
}
.photo-mosaic img {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.photo-mosaic img:hover { transform:scale(1.04); }
.photo-mosaic .mosaic-tall { grid-row:span 2; }

/* ── PHOTO STRIP (facility) ── */
.photo-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:28px 0; }
.photo-strip img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:8px; transition:transform .4s; }
.photo-strip img:hover { transform:scale(1.03); }

/* ── VIDEO SECTION ── */
.video-hero-section {
  background:var(--black);
  padding:64px 0;
}
.video-reel-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:start;
}
.vid-card {
  position:relative; border-radius:12px; overflow:hidden;
  aspect-ratio:9/16; cursor:pointer;
  background:#111; border:1px solid rgba(255,255,255,.08);
  transition:transform .3s, box-shadow .3s;
}
.vid-card:hover { transform:translateY(-6px); box-shadow:0 16px 48px rgba(0,0,0,.4); }
.vid-card video { width:100%; height:100%; object-fit:cover; display:block; }
.vid-overlay {
  position:absolute; inset:0;
  background:rgba(10,10,10,.3);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .3s;
}
.vid-play-btn {
  width:58px; height:58px; border-radius:50%;
  background:var(--accent);
  display:flex; align-items:center; justify-content:center;
  padding-left:4px;
  box-shadow:0 4px 20px rgba(126,184,212,.4);
  transition:transform .2s, box-shadow .2s;
}
.vid-card:hover .vid-play-btn { transform:scale(1.1); box-shadow:0 6px 28px rgba(126,184,212,.55); }
.vid-label {
  position:absolute; bottom:0; left:0; right:0;
  padding:3rem 1.2rem 1rem;
  background:linear-gradient(to top,rgba(10,10,10,.95),transparent);
  font-family:'Bebas Neue',sans-serif; font-size:.95em;
  letter-spacing:.12em; color:#fff; opacity:.9;
}

/* ── INSTAGRAM SECTION ── */
.insta-section { background:var(--light); padding:64px 0; }
.insta-layout { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.insta-text .section-title { color:var(--black); }
.insta-embed-wrap { display:flex; justify-content:flex-end; }

/* ── SPLIT FEATURE (text + photo) ── */
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.split.reverse { direction:rtl; }
.split.reverse > * { direction:ltr; }
.split-photo { border-radius:12px; overflow:hidden; box-shadow:var(--shadow-lg); }
.split-photo img { width:100%; height:100%; object-fit:cover; display:block; }

/* ── COHORT CARDS ── */
.cohort-card { border-radius:10px; padding:24px 28px; }
.cohort-card.a { background:linear-gradient(135deg,#f8f8f8,#f0f0f0); border:1px solid #d0d0d0; }
.cohort-card.b { background:linear-gradient(135deg,#f0f4f6,#e8eef2); border:1px solid #c8d4dc; }
.cohort-tag { font-family:'Bebas Neue',sans-serif; font-size:.8em; letter-spacing:2px; margin-bottom:6px; }
.cohort-card.a .cohort-tag { color:#555; }
.cohort-card.b .cohort-tag { color:#4a7a90; }
.cohort-teams { font-weight:700; color:var(--black); margin-bottom:10px; line-height:1.5; }
.cohort-sched { font-size:.9em; color:var(--char); line-height:1.8; }

/* ── SCHEDULE TABLE ── */
.sched-table { width:100%; border-collapse:collapse; margin:16px 0; }
.sched-table th { font-family:'Bebas Neue',sans-serif; font-weight:400; letter-spacing:1px; font-size:.9em; padding:10px 14px; text-align:left; background:var(--black); color:#fff; }
.sched-table th:first-child { border-radius:6px 0 0 0; }
.sched-table th:last-child { border-radius:0 6px 0 0; }
.sched-table td { padding:10px 14px; border-bottom:1px solid var(--border); }
.sched-table tr:nth-child(even) td { background:var(--light); }

/* ── WEEK CARDS ── */
.week-card { background:var(--white); border:1px solid var(--border); border-radius:8px; padding:16px 20px; }
.week-num { font-family:'Bebas Neue',sans-serif; color:var(--accent-dk); font-size:1em; letter-spacing:1px; }
.week-topic { font-weight:700; font-size:1.05em; color:var(--black); }
.week-desc { font-size:.85em; color:var(--gray); margin-top:4px; }

/* ── CALLOUT ── */
.callout { padding:18px 22px; border-radius:8px; margin:20px 0; display:flex; gap:12px; align-items:flex-start; font-size:.95em; }
.callout .ico { font-size:1.3em; flex-shrink:0; }
.callout.info { background:var(--accent-lt); border:1px solid #c4d8e4; color:#2a4a5a; }
.callout.warn { background:#f5f3f0; border:1px solid #d8d4cc; color:#4a4538; }

/* ── CTA BANNER ── */
.cta-banner { text-align:center; padding:60px 24px; }
.cta-banner h2 { font-family:'Bebas Neue',sans-serif; font-size:clamp(1.8em,4vw,2.6em); letter-spacing:1px; margin-bottom:12px; }
.cta-banner p { font-size:1.1em; margin-bottom:24px; }
.section.dark .cta-banner p { color:var(--silver); }

/* ── CONTACT ── */
.contact-card { background:var(--light); border-radius:10px; padding:32px; }
.contact-card .name { font-family:'Bebas Neue',sans-serif; font-size:1.4em; color:var(--black); letter-spacing:.5px; }
.contact-card .role { color:var(--gray); margin:4px 0 12px; }
.contact-card .phone { font-size:1.4em; font-weight:700; color:var(--accent-dk); }

/* ── FORM ── */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-family:'Bebas Neue',sans-serif; font-size:.85em; letter-spacing:1px; color:var(--gray); margin-bottom:4px; }
.form-group input,.form-group textarea,.form-group select { width:100%; padding:12px 16px; border:1px solid var(--border); border-radius:6px; font-family:'Source Sans 3',sans-serif; font-size:1em; background:var(--white); transition:border-color .2s; }
.form-group input:focus,.form-group textarea:focus { outline:none; border-color:var(--accent); }
.form-group textarea { height:120px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* ── FOOTER ── */
.footer { background:var(--black); color:var(--silver); padding:48px 0 28px; }
.footer .wrap { display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; }
.footer h4 { font-family:'Bebas Neue',sans-serif; color:#fff; font-size:1em; letter-spacing:1.5px; margin-bottom:10px; }
.footer a { color:var(--accent); }
.footer a:hover { color:#fff; }
.footer-social { display:flex; justify-content:center; gap:20px; margin:24px 0 12px; flex-wrap:wrap; }
.footer-social a { color:var(--accent); font-size:.9em; transition:color .2s; }
.footer-social a:hover { color:#fff; }
.footer-bottom { text-align:center; padding-top:20px; margin-top:20px; border-top:1px solid #222; font-size:.78em; color:#444; }

/* ── RESPONSIVE ── */
@media (max-width:900px) {
  .grid-3,.grid-4 { grid-template-columns:1fr 1fr; }
  .photo-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .photo-mosaic .mosaic-tall { grid-row:span 1; }
  .insta-layout,.video-reel-layout { grid-template-columns:1fr; }
  .insta-embed-wrap { justify-content:center; }
  .split,.split.reverse { grid-template-columns:1fr; direction:ltr; }
}
@media (max-width:768px) {
  .nav-links { display:none; position:absolute; top:100%; left:0; right:0; background:var(--black); flex-direction:column; border-top:1px solid #333; z-index:99; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:14px 24px; border-bottom:1px solid #222; }
  .nav-mobile { display:block; }
  .nav .wrap { position:relative; }
  .hero { min-height:80vh; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .stat-bar { grid-template-columns:1fr 1fr; }
  .footer .wrap { flex-direction:column; }
  .form-row { grid-template-columns:1fr; }
  .section { padding:48px 0; }
  .photo-mosaic { grid-template-columns:1fr; grid-template-rows:auto; height:auto; }
  .photo-strip { grid-template-columns:1fr 1fr; }
}

/* ── HERO PHOTO BACKGROUND (replaces video) ── */
.hero-bg-photo {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.38;
  filter:saturate(.5) contrast(1.15);
  z-index:0;
}

/* ── MEMBER PORTAL NAV BUTTON ── */
.nav-login-btn {
  background:var(--accent) !important;
  color:#fff !important;
  border-radius:4px;
  margin-left:6px;
  padding:8px 16px !important;
}
.nav-login-btn:hover {
  background:var(--accent-dk) !important;
  color:#fff !important;
}


/* ── FOREST THEME (clean, no graphics) ── */
.nav { background:var(--pine) !important; border-bottom:3px solid var(--accent) !important; }
.footer { background:var(--pine) !important; }
.btn-primary { background:var(--accent-dk) !important; }
.btn-primary:hover { background:var(--accent) !important; }
.section-divider { background:var(--accent) !important; }
.hero-overlay { background:linear-gradient(180deg, rgba(10,15,12,.5) 0%, rgba(10,15,12,.3) 45%, rgba(20,37,26,.9) 100%) !important; }

/* Optional dark accent section */
.section-forest { background:linear-gradient(160deg,var(--pine),var(--pine-mid)); color:#fff; }
.section-forest .section-title { color:#fff !important; }
.section-forest .section-sub { color:var(--frost) !important; }
.section-forest p { color:var(--platinum); }

/* Calendar strip stays readable */
.cal-month .cm-title { color:#fff; }
.cal-month .cm-desc { color:var(--frost); }
