/* ============================================
   COMBAT 360 MMA — Premium Cinematic Stylesheet
   ============================================ */

:root{
  --black:#0B0B0B;
  --black-2: #111111;
  --black-3: #1b1b1b;
  --pure-black: #000000;
  --off-white: #e0e0e0; 
  --white: #ffffff; 
  --gray: #888888;
  --gray-2: #333333;
  --metal: #444444;
  --gold: #FFD700;
  --blood: #FF0000; 
  --blood-glow: rgba(255, 0, 0, 0.55);
  --blood-dark: #D10000;
  --blood-light: #FF2A2A;
  --accent-red: #FF0000;
  --accent-glow: rgba(255, 0, 0, 0.4);
  --radius:14px;
  --ease:cubic-bezier(.7,0,.3,1);
  --container:1280px;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family:'Inter',system-ui,sans-serif;
  background:var(--black);
  color:var(--off-white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing: antialiased;
  font-feature-settings:"ss01";
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
}

::selection {
  background: var(--blood-light);
  color: #fff;
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

::-webkit-scrollbar-track {
  background: var(--black-3);
}

::-webkit-scrollbar-thumb {
  background: var(--blood);
  border-radius: 4px;
}

/* Typography */
h1,
h2,
h3,
h4,
.display {
  font-family:'Bebas Neue','Inter',sans-serif;
  font-weight:400;
  letter-spacing:.02em;
  line-height:.95;
  text-transform:uppercase;
  color:var(--white);
}

.accent {
  color: var(--blood);
  font-style: italic;
}

h1 {
  font-size: clamp(3rem, 9vw, 8.5rem);
}

h2 {
  font-size: clamp(2.2rem, 6vw, 5rem);
}

h3 {
  font-size: clamp(1.5rem, 3vw, 2.4rem);
}

.eyebrow {
  font-family:'Inter',sans-serif;
  font-size:.75rem;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--blood);
  font-weight:600;
  margin-bottom:1rem;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
}

.eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--blood);
}

.muted {
  color: #b0b0b0;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 1.5rem;
}

section {
  padding: 7rem 0;
  position: relative;
}

/* ============== NAVBAR ============== */
.nav{
  position:fixed;top:18px;left:50%;transform:translateX(-50%);
  width:calc(100% - 32px);max-width:1320px;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 22px;
  background: rgba(11, 11, 11, 0.85);
  backdrop-filter: blur(30px) saturate(150%);
  -webkit-backdrop-filter: blur(30px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 100px;
  transition: transform 0.5s var(--ease), background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
}
.nav.scrolled{
  background: rgba(0, 0, 0, 0.98);
  padding: 10px 18px;
  border-color:rgba(255,0,0,.12);
  top:10px;
}
.nav.nav-hidden {
  transform: translate(-50%, -150%);
}
.nav-brand-text {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2rem;
  letter-spacing: 0.05em;
  font-style: italic;
  text-transform: uppercase;
  transition: all 0.3s var(--ease);
  display: inline-block;
  line-height: 1.1;
  font-weight: 400;
  background: linear-gradient(180deg, #FFFFFF 0%, #F0F0F0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 12px rgba(255, 255, 255, 0.25));
  padding: 0.2rem 0.4rem; 
  vertical-align: middle;
}
.nav-brand-text span {
  display: inline-block;
  background: linear-gradient(180deg, var(--blood-light) 0%, var(--blood) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 18px rgba(255, 0, 0, 0.8));
  padding-right: 0.25em; /* Specific safety gap for the italicized '0' */
  margin-right: -0.25em; /* Offset the padding so spacing remains tight */
}
.nav-brand-text:hover { transform: scale(1.05); }
.nav-logo{
  display:flex;align-items:center;gap:.5rem;
  transition: transform .3s var(--ease);
}
.nav-logo:hover { transform: scale(1.03); }
.nav-logo img {
  height: 50px;
  width: auto;
  object-fit: contain;
  border-radius: 6px;
  filter: brightness(1.1);
  transition: all .3s var(--ease);
}
.nav-logo:hover img { filter: brightness(1.25); }

.nav-links{display:flex;gap:.4rem;list-style:none}
.nav-links a{
  position:relative; padding:.7rem 1rem;
  font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,0.65); transition:color .3s var(--ease);
}
.nav-links a::after{
  content:"";position:absolute;left:50%;bottom:6px;width:0;height:2px;
  background:var(--blood);transition:all .35s var(--ease);transform:translateX(-50%);
  box-shadow:0 0 8px var(--blood-glow);
}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links a:hover::after,.nav-links a.active::after{width:60%}

.nav-cta{
  padding:.7rem 1.3rem;background:var(--blood);color:var(--white);
  border-radius:999px;font-size:.78rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  transition:all .3s var(--ease);
  box-shadow:0 0 0 0 var(--blood-glow);
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--blood-glow)}

.hamburger{display:block !important; width:42px;height:42px;border-radius:50%;
  background:transparent;position:absolute; right: 18px; border:none}
.hamburger span{
  position:absolute;right:8px;width:24px;height:2px;background:var(--blood);
  transition:all .35s var(--ease);
}
.hamburger span:nth-child(1){top:14px}
.hamburger span:nth-child(2){top:20px;width:16px}
.hamburger span:nth-child(3){top:26px}
.hamburger.active span:nth-child(1){top:20px;transform:rotate(45deg);width:24px}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){top:20px;transform:rotate(-45deg);width:24px}

.mobile-menu{
  position:fixed;inset:0;background:rgba(0,0,0,0.98);z-index:999;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:all .5s var(--ease);
  backdrop-filter:blur(25px);
  -webkit-backdrop-filter:blur(25px);
}
.mobile-menu::before{
  content:"COMBAT";
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  font-family:'Bebas Neue',sans-serif;
  font-size:25vw;
  color:rgba(255,0,0,0.03);
  z-index:-1;
  letter-spacing:0.05em;
}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu ul{
  list-style:none;
  text-align:left;
  border-left:2px solid var(--blood);
  padding-left:2rem;
}
.mobile-menu li{overflow:hidden;margin:.4rem 0}
.mobile-menu a{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,8vw,3.5rem);
  color:var(--white);letter-spacing:.08em;display:inline-block;
  transform:translateY(120%);transition:all .6s var(--ease);
  position:relative;
}
.mobile-menu.open a{transform:translateY(0)}
.mobile-menu li:nth-child(1) a{transition-delay:.05s}
.mobile-menu li:nth-child(2) a{transition-delay:.1s}
.mobile-menu li:nth-child(3) a{transition-delay:.15s}
.mobile-menu li:nth-child(4) a{transition-delay:.2s}
.mobile-menu li:nth-child(5) a{transition-delay:.25s}
.mobile-menu li:nth-child(6) a{transition-delay:.3s}
.mobile-menu li:nth-child(7) a{transition-delay:.35s}
.mobile-menu li:nth-child(8) a{transition-delay:.4s}
.mobile-menu li:nth-child(9) a{transition-delay:.45s}
.mobile-menu li:nth-child(10) a{transition-delay:.5s}
.mobile-menu li:nth-child(10) a{transition-delay:.5s;color:var(--blood)}
.mobile-menu a:hover{color:var(--blood)}

@media(max-width:980px){
  .nav-links,.nav-cta{display:none}
  .hamburger{display:block}
}

/* ============== BUTTONS ============== */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:1.05rem 2rem;font-size:.78rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  border-radius:999px;transition:all .35s var(--ease);
  position:relative;overflow:hidden; text-align: center;
}
.btn-primary{background:var(--blood);color:#fff;box-shadow:0 0 0 0 var(--blood-glow)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 40px var(--blood-glow)}
.btn-ghost{
  border:1px solid rgba(255,255,255,.12);color:var(--white);
  background:rgba(255,255,255,.03);backdrop-filter:blur(10px);
}
.btn-ghost:hover{border-color:var(--blood);background:rgba(255,0,0,.06);transform:translateY(-3px)}
.btn .arrow{transition:transform .35s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}

/* ============== HERO ============== */
.hero{
  min-height:100vh;position:relative;display:flex;align-items:center;
  overflow:hidden;padding:12rem 0 6rem;
}

/* New: Video Background for Hero */
.hero-video-background {
  position:absolute;inset:0;z-index:0;
  background: var(--black);
}
.hero-video-background video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  will-change: transform; 
  backface-visibility: hidden;
  
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
  display: block;
  filter: none; /* Removed filters to significantly reduce GPU load per frame */
}
.hero-video-background::after {
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 50%, var(--black) 100%),
    radial-gradient(circle at center, transparent 0%, rgba(0,0,0,0.7) 100%);
  z-index: 2; /* Above the video, below other atmospheric effects */
}

/* Original .hero-bg is replaced by .hero-video-background and its ::after */
/* .hero-bg was here, now removed */

.hero-smoke {
  position: absolute; inset: 0; z-index: 3; opacity: 0.15; pointer-events: none;
  background: url('https://www.transparenttextures.com/patterns/asfalt-dark.png');
  filter: grayscale(1);
}
.hero-smoke::after {
  content: ""; position: absolute; inset: 0;
  filter: blur(30px); animation: smokeDrift 20s linear infinite; /* Reduced blur radius for better performance */
}
@keyframes smokeDrift {
  0% { transform: translate(-5%) rotate(0deg) scale(1); }
  50% { transform: translate(5%) rotate(2deg) scale(1.1); }
  100% { transform: translate(-5%) rotate(0deg) scale(1); }
}
/* Premium Lighting Spotlight */
.hero-lighting {
  position: absolute; inset: 0; z-index: 4; pointer-events: none;
  mix-blend-mode: screen;
}
/* Cinematic Red Embers Container */
.hero-particles {
  position: absolute; inset: 0; z-index: 5; pointer-events: none; overflow: hidden;
}
.ember {
  position: absolute; background: var(--blood); border-radius: 50%;
  filter: blur(1.5px); box-shadow: 0 0 10px var(--blood);
  will-change: transform, opacity;
  opacity: 0;
}

.hero-grain {
  display: none; /* SVG Turbulence is extremely heavy; disabled to prioritize video smoothness */
  position:absolute;inset:0;z-index: 6;opacity:.05;pointer-events:none;
}
.hero .container{
  position:relative;
  z-index:20;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
} /* Higher z-index to ensure visibility */
.hero-brand-logo {
  height: clamp(220px, 45vw, 600px);
  margin-bottom: 3rem;
  filter: drop-shadow(0 0 45px rgba(255, 0, 0, 0.5));
}
.hero-tag{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:.5rem 1rem;border:1px solid rgba(255,255,255,.15);
  border-radius:999px;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;
  background:rgba(255,255,255,.03);backdrop-filter:blur(8px);
  margin-bottom:2rem;
}
.hero-tag .pulse-dot{
  width:8px;height:8px;border-radius:50%;background:var(--blood);
  box-shadow:0 0 0 0 var(--blood);animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(200,16,46,.7)}
  70%{box-shadow:0 0 0 14px rgba(200,16,46,0)}
  100%{box-shadow:0 0 0 0 rgba(200,16,46,0)}
}
.hero h1{
  font-size:clamp(3.5rem,11vw,9.5rem);
  margin-bottom:1.5rem;
  text-shadow: 0 10px 40px rgba(0,0,0,0.8);
}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line span{display:inline-block}
.hero h1 .accent{color:var(--blood);font-style:italic}
.hero-sub{
  font-family: 'Saira', sans-serif;
  letter-spacing: 0.02em;
  max-width: 600px; 
  font-size: 1.15rem; 
  color: var(--white);
  margin: 0 auto 2.5rem;
  line-height: 1.6;
  font-weight: 500;
  text-transform: none; /* Saira reads better in mixed case for subtext */
}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}
.hero-meta{
  position:absolute;bottom:2rem;left:0;right:0;z-index:11;
  display:flex;justify-content:space-between;align-items:flex-end;
  padding:0 2rem;color:rgba(255,255,255,.45);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;
}
.hero-meta .vert{writing-mode:vertical-rl;transform:rotate(180deg)}
.scroll-cue{
  display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--blood);
}
.scroll-cue .line-anim{
  width:1px;height:46px;background:rgba(255,0,0,.15);position:relative;overflow:hidden;
}
.scroll-cue .line-anim::after{
  content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--blood);
  animation:scrollLine 1.8s infinite var(--ease);
}
@keyframes scrollLine{to{top:100%}}

@media(max-width:768px){
  .hero{padding-top: 12rem;}
  .hero-meta{display:none}
}

/* ============== OWNER INTRO VIDEO ============== */
.owner-video-card {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  aspect-ratio: 4 / 5;
  background: var(--black-2);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--blood-glow);
  box-shadow: 0 30px 60px rgba(0,0,0,0.5);
  /* Hardware acceleration for lag-free playback */
  transform: translateZ(0);
  will-change: transform;
}

.intro-video-player {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Standard orientation - no rotation needed for vertical files */
}

/* ============== MARQUEE ============== */
.marquee{
  border: none;
  overflow:hidden;padding:1.2rem 0;background:var(--pure-black);
}
.marquee-track{
  display:flex;gap:3rem;white-space:nowrap;
  animation:marquee 10s linear infinite, marqueeGlow 2s ease-in-out infinite;
  font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:.12em;color:var(--blood);
  text-shadow: 0 0 15px var(--blood-glow);
}
.marquee-track span{display:flex;align-items:center;gap:3rem}
.marquee-track .dot{width:10px;height:10px;background:var(--white);border-radius:50%}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes marqueeGlow {
  0%, 100% { text-shadow: 0 0 10px var(--blood-glow); filter: brightness(1); }
  50% { text-shadow: 0 0 25px var(--blood), 0 0 10px var(--blood); filter: brightness(1.3); }
}

/* ============== SECTION HEAD ============== */
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;margin-bottom:4rem}
.section-head h2{max-width:600px}
.section-head p{color:var(--gray);max-width:440px}
@media(max-width:768px){.section-head{grid-template-columns:1fr}}

/* ============== ABOUT / PHILOSOPHY ============== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:3rem}}
.split-img{
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:4/5;
}
.split-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.split-img:hover img{transform:scale(1.06)}
.split-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.8));
}
.split-img .badge{
  position:absolute;left:1.5rem;bottom:1.5rem;z-index:2;
  font-family:'Bebas Neue',sans-serif;color:var(--blood);letter-spacing:.1em;
  font-size:1.1rem;
}
.split-img .badge small{display:block;color:var(--white);font-size:.7rem;letter-spacing:.3em}

/* ============== STATS ============== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,0,0,.15);
  border:1px solid rgba(255,0,0,.15);border-radius:var(--radius);overflow:hidden;margin-top:5rem}
.stat{background:var(--black);padding:2.2rem 1.5rem;text-align:center}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,5vw,4rem);color:var(--white);line-height:1}
.stat-num{color:var(--blood)}
.stat-label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-top:.5rem}
@media(max-width:768px){.stats{grid-template-columns:repeat(2,1fr)}}

.chip{
  display:inline-block;padding:.3rem .7rem;font-size:.65rem;
  letter-spacing:.2em;text-transform:uppercase;color:#fff;
  border:1px solid rgba(255,255,255,.18);border-radius:999px;margin-right:.4rem;margin-top:.3rem;
  background:rgba(255,255,255,.04);
}
.chip.red{border-color:var(--blood);color:#fff;background:rgba(200,16,46,0.2)}

/* ============== COACHES ============== */
.coaches-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:900px){.coaches-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.coaches-grid{grid-template-columns:1fr}}
.coach-card{
  position:relative;border-radius:var(--radius);overflow:hidden;background:var(--black-2);
  aspect-ratio:3/4;cursor:pointer;
  border: 1px solid rgba(255,0,0,0.05);
}
.coach-card img{width:100%;height:100%;object-fit:cover;transition:all 1s var(--ease);filter: none;}
.coach-card::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.85));
}
.coach-info{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.6rem;
}
.coach-info h3{font-family:'Bebas Neue',sans-serif;font-size:2.4rem;margin-bottom:.2rem;color:#ffffff;text-shadow:0 4px 15px rgba(0,0,0,0.6);letter-spacing:0.02em;line-height:1}
.coach-info .role{font-size:.7rem;letter-spacing:.3em;color:var(--blood);text-transform:uppercase}
.owner-badge{
  position:absolute;top:1rem;left:1rem;z-index:3;
  padding:.35rem .8rem;background:var(--blood-dark);color:#fff;
  font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;border-radius:999px;
}

/* Modal */
/* ============== GALLERY ============== */
.photo-grid, .video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
}

.photo-item {
  aspect-ratio: 1/1;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--black-3);
  cursor: zoom-in;
  position: relative;
  border: 1px solid rgba(0,0,0,0.05);
}

.photo-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease);
}

.photo-item:hover img {
  transform: scale(1.1);
}

.photo-item::after {
  content: "VIEW";
  position: absolute;
  inset: 0;
  background: rgba(255, 0, 0, 0.4);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  opacity: 0;
  transition: opacity 0.3s var(--ease);
}

.photo-item:hover::after {
  opacity: 1;
}

/* Video Gallery */
.video-card {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--black-2);
  border: 1px solid rgba(255,0,0,0.08);
  transition: all 0.4s var(--ease);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

.video-card:hover {
  transform: translateY(-8px);
  border-color: var(--blood);
  box-shadow: 0 20px 40px var(--blood-glow);
}

.video-card video {
  width: 100%;
  aspect-ratio: 9/16;
  object-fit: cover;
  display: block;
}

/* Force-hide volume controls for a purely visual experience */
video::-webkit-media-controls-volume-slider,
video::-webkit-media-controls-mute-button {
  display: none !important;
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.95);
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  cursor: zoom-out;
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s var(--ease);
}

.lightbox.active {
  opacity: 1;
  visibility: visible;
}

.lightbox img {
  max-width: 90%;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 4px;
  transform: scale(0.9);
  transition: transform 0.4s var(--ease);
}

.lightbox.active img {
  transform: scale(1);
}

@media(max-width: 768px) {
  .photo-grid, .video-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

/* ============== MAP SECTION ============== */
.map-section {
  padding: 6rem 0;
  background: var(--black);
}

.map-holder {
  position: relative;
  width: 100%;
  height: 480px;
  border-radius: 40px; /* Modern curved border */
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5); 
  border: 1px solid rgba(255, 0, 0, 0.05);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}

.map-holder:hover {
  transform: translateY(-5px);
  box-shadow: 0 40px 80px rgba(255, 0, 0, 0.1);
}

.map-overlay { position: absolute; inset: 0; z-index: 10; cursor: pointer; }
.map-holder iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ============== TESTIMONIALS ============== */
.swiper-container{padding:1rem 0 3rem}
.testi-card{
  background:var(--black-2);
  border:1px solid rgba(255,0,0,.06);
  border-radius:var(--radius);padding:2.2rem;height:100%;
  transition:all .4s var(--ease);
}
.testi-card:hover{border-color:var(--blood-glow);transform:translateY(-4px)}
.testi-stars{color:var(--blood);margin-bottom:1rem;letter-spacing:.2em}
.testi-card p{color:rgba(255,255,255,.75);font-size:.95rem;margin-bottom:1.5rem;font-style:italic}
.testi-meta{display:flex;align-items:center;gap:.9rem}
.testi-avatar{
  width:48px;height:48px;border-radius:50%;background:var(--blood);
  display:flex;align-items:center;justify-content:center;font-weight:700;
  font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.05em;
  color:var(--white);
}
.testi-name{font-weight:600;font-size:.95rem;color:var(--white);}
.testi-role{font-size:.75rem;color:var(--gray)}

.swiper-button-next,.swiper-button-prev{color:var(--white) !important;
  width:46px !important;height:46px !important;background:rgba(255,0,0,.05);
  border:1px solid rgba(255,0,0,.1);border-radius:50%;backdrop-filter:blur(10px);
  transition:all .3s var(--ease);
}
.swiper-button-next:hover,.swiper-button-prev:hover{background:var(--blood);border-color:var(--blood)}
.swiper-button-next::after,.swiper-button-prev::after{font-size:1rem !important;font-weight:700}
.swiper-pagination-bullet{background:var(--gray-2) !important}
.swiper-pagination-bullet-active{background:var(--blood) !important;width:24px !important;border-radius:6px !important;transition:all .3s}

/* ============== PRICING ============== */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:1.5rem}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}}
.price-card{
  background:var(--black-2);border:1px solid rgba(255,0,0,.1);border-radius:var(--radius);
  padding:2.5rem 2rem;position:relative;
  transition: border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
}
 .price-card:hover{transform:translateY(-4px);border-color:var(--blood);box-shadow: 0 20px 60px var(--blood-glow);}
.price-card.featured{
  background:linear-gradient(180deg,rgba(255,0,0,0.03),var(--black-2));
  border-color:var(--blood);
  border-width: 2px;
  box-shadow:0 30px 70px var(--blood-glow);
}
.price-card .tier{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.1em;color:var(--white)}
.price-card .tag{
  position:absolute;top:1.5rem;right:1.5rem;font-size:.65rem;letter-spacing:.25em;
  text-transform:uppercase;color:var(--blood);border:1px solid var(--blood);
  padding: 0.3rem 0.7rem; border-radius: 99px; background: rgba(255,0,0,0.05);
}
.price-card .tag.discount {
  top: 3.5rem; /* Stacked below the first tag */
  background: var(--blood);
  color: var(--white);
  border-color: var(--blood);
}
.old-price {
  font-size: 1.8rem;
  color: var(--gray);
  text-decoration: line-through;
  margin-right: 0.8rem;
  opacity: 0.6;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  vertical-align: middle;
}
.price{font-family:'Bebas Neue',sans-serif;font-size:4rem;color:var(--white);line-height:1;margin:1rem 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.5rem;}
.price small{font-size:.9rem;color:var(--gray);font-family:'Inter',sans-serif;letter-spacing:.05em}
.price-card ul{list-style:none;margin:1.5rem 0 2rem}
.price-card li{padding:.6rem 0;color:rgba(255,255,255,.7);font-size:.9rem;display:flex;align-items:center;gap:.6rem}
.price-card li::before{content:"→";color:var(--blood);font-weight:700}
.price-card .btn{width:100%;justify-content:center}

/* ============== FAQ ============== */
.faq{max-width:880px;margin:0 auto}
.faq-item{
  border-bottom:1px solid rgba(255,0,0,.08);
}
.faq-q{
  width:100%;padding:1.6rem 0;display:flex;justify-content:space-between;align-items:center;
  text-align:left;font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.05em;
  color:var(--white);
}
.faq-q .icon{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,0,0,.1);
  display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease);
  font-size:1rem;color:var(--white);
}
.faq-item.open .faq-q .icon{background:var(--blood);border-color:var(--blood);color:var(--white);transform:rotate(45deg)}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .5s var(--ease);
  color:rgba(255,255,255,.6);
}
.faq-item.open .faq-a{max-height:300px;padding-bottom:1.6rem}

/* ============== FORM ============== */
.form-card{
  background:var(--black-2);border:1px solid rgba(255,0,0,.08);
  border-radius:var(--radius);padding:2.5rem;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.field{margin-bottom:1.2rem;position:relative}
.field label{
  display:block;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--off-white);margin-bottom:.5rem;
}
.field input,.field select,.field textarea{
  width:100%;padding:.95rem 1rem;background:var(--black-3);border:1px solid rgba(255,255,255,.15);
  color:var(--white);font-family:inherit;font-size:.95rem;border-radius:8px;
  transition:all .3s var(--ease);
}
.field select option {
  background: var(--black-3);
  color: var(--white);
}
.field input::placeholder, .field textarea::placeholder {
  color: var(--gray);
  opacity: 0.6;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--blood);box-shadow:0 0 12px var(--blood-glow);
}
.field textarea{resize:vertical;min-height:120px}
.field.error input,.field.error select,.field.error textarea{border-color:var(--blood)}
.field .err-msg{display:none;color:var(--blood);font-size:.75rem;margin-top:.3rem}
.field.error .err-msg{display:block}

/* Snackbar */
.snackbar{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--black-2);color:var(--white);padding:1rem 1.5rem;border-radius:999px;
  font-weight:600;font-size:.85rem;letter-spacing:.05em;
  display:flex;align-items:center;gap:.7rem;
  box-shadow:0 20px 60px rgba(255,0,0,.2);z-index:5000;
  opacity: 0;
  visibility: hidden;
  transition: transform .5s var(--ease), opacity .4s var(--ease), visibility .4s var(--ease), border .3s var(--ease);
  border: 1px solid var(--blood);
}
.snackbar.show{transform:translateX(-50%) translateY(0); opacity: 1; visibility: visible;}
.snackbar .check{
  width:22px;height:22px;border-radius:50%;background:#16a34a;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.75rem;
}

/* Floating CTA */
.float-cta{
  position:fixed;right:24px;bottom:24px;z-index:900;
  background:var(--blood);color:var(--white);padding:1rem 1.4rem;border-radius:999px;
  font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  box-shadow:0 10px 40px var(--blood-glow);
  display:none;align-items:center;gap:.6rem;transition:all .3s var(--ease);
  animation:floatBob 3s ease-in-out infinite;
}
.float-cta.visible{display:inline-flex}
.float-cta:hover{transform:translateY(-4px);box-shadow:0 16px 50px var(--blood-glow)}
@keyframes floatBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* ============== CTA BANNER ============== */
.cta-banner{
  position:relative;padding:7rem 0;text-align:center;overflow:hidden;
  background:url('../assets/images/herofooter.jpg') center/cover no-repeat;
}
.cta-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.3),rgba(0,0,0,0.7))}
.cta-banner .container{position:relative;z-index:2}
.cta-banner h2{font-size:clamp(2.5rem,8vw,7rem);margin-bottom:1.5rem;color:var(--white)}
.cta-banner h2{text-shadow: 0 4px 20px rgba(0,0,0,0.6);}
.cta-banner h2 em{color:var(--blood);font-style:normal;text-shadow: 0 0 15px var(--blood-glow);}

/* ============== FOOTER ============== */
footer{padding:5rem 0 2rem;background:var(--black-2);border-top:1px solid rgba(0,0,0,.06)}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:3rem;margin-bottom:3rem}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:500px){.foot-grid{grid-template-columns:1fr}}
.foot-brand {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.4rem;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  font-style: italic;
  line-height: 1.1;
  font-weight: 400;
  background: linear-gradient(180deg, #FFFFFF 0%, #CCCCCC 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 12px rgba(255, 255, 255, 0.15));
  padding: 0.2rem 0.4rem;
  display: inline-block;
  vertical-align: middle;
}
.foot-brand span {
  display: inline-block;
  background: linear-gradient(180deg, var(--blood-light) 0%, var(--blood) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 15px rgba(255, 0, 0, 0.7));
  padding-right: 0.25em;
  margin-right: -0.25em;
}
.foot-col h4{font-size:.75rem;letter-spacing:.3em;color:var(--white);margin-bottom:1.2rem;text-transform:uppercase;font-family:'Inter',sans-serif;font-weight:600}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:.6rem;color:var(--gray);font-size:.88rem}
.foot-col a:hover{color:var(--white)}
.socials{display:flex;gap:.6rem;margin-top:1.2rem}
.socials a{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(0,0,0,.1);
  display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--white);
  transition:all .3s var(--ease);
}
.socials a:hover{background:var(--blood);border-color:var(--blood);color:var(--white);transform:translateY(-3px)}
.socials a svg{width:18px;height:18px;stroke-width:2px}
.foot-bottom{
  border-top:1px solid rgba(0,0,0,.06);padding-top:2rem;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-size:.78rem;color:var(--gray);
}

/* ============== PAGE HEADER ============== */
.page-head{
  padding:12rem 0 4rem;text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--black-3),var(--black));
}
.page-head .container{position:relative;z-index:2}
.page-head h1{font-size:clamp(3rem,10vw,7rem)}
.crumbs{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-bottom:1rem}
.crumbs a:hover{color:#fff}

/* ============== REVEAL ============== */
.reveal{opacity:1;transform:none}
.reveal-stagger>*{opacity:1;transform:none}

/* Skeleton */
.skeleton{
  background:linear-gradient(90deg,#1a1a1a 25%,#222 50%,#1a1a1a 75%);
  background-size:200% 100%;animation:skeleton 1.5s infinite;border-radius:8px;
}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* small */
@media(max-width:768px){
  section{padding:5rem 0}
  .hero{padding:10rem 0 4rem}
}

/* Premium Button Conversion Colors */
.btn-primary {
  background: var(--blood);
  color: var(--white);
  box-shadow: 0 4px 15px var(--blood-glow);
}
.btn-primary:hover {
  background: var(--blood-dark);
  color: var(--white);
  transform: translateY(-3px);
  box-shadow: 0 14px 40px var(--blood-glow);
}

/* ============== MAINTENANCE MODE ============== */
#maintenance-page {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--black);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem;
  overflow: hidden;
}

.maintenance-logo {
  height: 200px;
  width: auto;
  margin-bottom: 2.5rem;
  filter: drop-shadow(0 0 20px rgba(255, 0, 0, 0.3));
}

.maintenance-active #maintenance-page { display: flex; }
.maintenance-active body > :not(#maintenance-page, script, link) { display: none !important; }
.maintenance-active body { overflow: hidden !important; }

#maintenance-page h1 { 
  margin-bottom: 1.5rem; 
  font-size: clamp(2.5rem, 8vw, 6rem);
  font-style: italic;
}
#maintenance-page p { 
  color: #b0b0b0; 
  max-width: 540px; 
  margin: 0 auto 2.5rem;
  line-height: 1.6;
}

.nav-cta {
  background: var(--blood);
  color: var(--white);
}
.nav-cta:hover {
  background: var(--blood-dark);
  color: var(--white);
  box-shadow: 0 8px 30px var(--blood-glow);
}

/* New media query for very small screens (e.g., phones) */
@media(max-width:480px){
  .container{padding:0 1.15rem}
  section{padding:4rem 0} /* Small, punchy sections */
  .hero{padding:9.5rem 0 3rem; min-height: 80vh; justify-content: flex-start;}
  .page-head{padding:9rem 0 3rem}

  /* Adjust font sizes for headings and key text elements */
  h1{font-size:clamp(2.2rem,10vw,3.5rem)}
  h2{font-size:clamp(1.8rem,8vw,2.5rem)}
  .hero h1{font-size:clamp(2.5rem,12vw,4rem); margin-bottom: 1rem;}
  .page-head h1{font-size:clamp(2.5rem,10vw,7rem)}
  .mobile-menu a{font-size:clamp(1.8rem,8vw,3.5rem)}
  .foot-brand{font-size:1.2rem}
  .faq-q{font-size:1.1rem; padding: 1.2rem 0;}

  /* Navigation and mobile menu adjustments */
  .nav-logo{font-size:1.2rem}
  .nav-logo img{height: 36px;}
  .hamburger{width:36px;height:36px} /* Smaller hamburger icon */

  /* Coach cards and modal adjustments */
  .coach-info{padding:1.2rem}
  .coach-info h3{font-size:1.4rem}
  .coach-info .role{font-size:.6rem}
  .coach-info .know{font-size:.65rem}
  .owner-badge{padding:.3rem .7rem;font-size:.6rem}
  .coaches-grid{gap: 1rem;}

  .modal-card{padding:0;border-radius:10px}
  .modal-body{padding:1.25rem}
  .modal-body h3{font-size:1.6rem}
  .modal-close{width:36px;height:36px;top:0.75rem;right:0.75rem;font-size:1.1rem}

  /* Testimonial cards adjustments */
  .testi-card{padding:1.5rem}
  .testi-card p{font-size:.85rem}
  .testi-avatar{width:40px;height:40px;font-size:1rem}
  .testi-name{font-size:.85rem}
  .testi-role{font-size:.7rem}

  /* Pricing cards adjustments */
  .price-card{padding:1.75rem 1.25rem}
  .price-card .tier{font-size:1.3rem}
  .price-card .tag{top: 1rem; right: 1rem; font-size: 0.55rem;}
  .price-card .tag.discount{top: 2.6rem;}
  .price{font-size:2.5rem}
  .old-price{font-size: 1.2rem; margin-right: 0.3rem;}
  .price small{font-size:.7rem}
  .price-card ul{margin:0.75rem 0 1.25rem} /* Adjust list margin */
  .price-card li{font-size:.8rem;padding:.5rem 0}
  .price-card .btn{padding:.9rem 1.5rem;font-size:.7rem}

  /* Form adjustments */
  .form-card{padding:1.5rem}
  .field label{font-size:.65rem}
  .field input, .field select, .field textarea{padding:.8rem 1rem;font-size:.85rem}
  .field .err-msg{font-size:.7rem}

  /* Floating CTA adjustments */
  .float-cta{padding:0.7rem 1rem;font-size:.65rem;right:12px;bottom:12px}

  /* CTA banner adjustments */
  .cta-banner{padding:4rem 0}
  .cta-banner h2{font-size:clamp(2rem,9vw,3rem)}
  .cta-banner p{font-size:.9rem}
  .cta-banner .btn{padding:.9rem 1.5rem;font-size:.7rem}

  /* Footer adjustments */
  footer{padding:3.5rem 0 1.5rem}
  .foot-grid{grid-template-columns: 1fr; gap: 2rem;}
  .foot-grid{gap:1.5rem}

  /* Aesthetic horizontal scroll for Action Showcase videos on phones */
  .action-showcase { padding: 2rem 0 !important; }
  .action-showcase .video-grid {
    display: flex;
    overflow-x: auto;
    grid-template-columns: none;
    scroll-snap-type: x mandatory;
    gap: 1.2rem;
    padding: 0 1.15rem 1.5rem; /* Padding on sides matches container */
    scrollbar-width: none; /* Hide scrollbar for clean look */
    margin: 0 -1.15rem; /* Pull carousel to screen edges */
  }
  .action-showcase .video-grid::-webkit-scrollbar { display: none; }
  .action-showcase .video-card {
    flex: 0 0 260px; /* Large, high-impact width */
    scroll-snap-align: center;
    border-width: 2px; /* Thicker red edge for "pop" */
  }

  .foot-brand{font-size:1.8rem}
  .foot-col h4{font-size:.7rem;margin-bottom:1rem}
  .foot-col li{font-size:.8rem;margin-bottom:.5rem}
  .socials a{width:36px;height:36px;font-size:.8rem}
  .foot-bottom{font-size:.7rem}
}
