:root {
  --primary: #ff0000;
  --dark: #0f0f0f;
  --gray: #1a1a1a;
  --accent: #ffd700;
  --light-gray: #333;
  --container-max: 1400px;
  --nav-height: 80px;
}

/* Reset & base */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust:100%; }
body { font-family:'Poppins',sans-serif; background:#000; color:#fff; overflow-x:hidden; line-height:1.6; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
img { max-width:100%; display:block; height:auto; }
a { color:inherit; text-decoration:none; }

/* Visually-hidden (utility) */
.visually-hidden { position:absolute !important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* Layout sections */
section { padding:6rem 5%; max-width:var(--container-max); margin:auto; }
h2 {
  font-family:'Orbitron',sans-serif;
  font-size:3.8rem;
  text-align:center;
  margin-bottom:4rem;
  color:var(--primary);
  text-shadow:0 0 20px rgba(255,0,0,0.5);
  position:relative;
}
h2::after {
  content:'';
  width:100px; height:4px; background:var(--primary); display:block; margin:20px auto; border-radius:2px;
}

/* Navbar */
header {
  position:fixed; top:0; width:100%; z-index:1000;
  background:rgba(0,0,0,0.95); backdrop-filter:blur(15px);
  border-bottom:2px solid rgba(255,0,0,0.3); box-shadow:0 5px 20px rgba(0,0,0,0.6);
}
nav {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.2rem 5%; max-width:var(--container-max); margin:auto;
}
.logo {
  font-family:'Orbitron',sans-serif; font-size:2.6rem; font-weight:900;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 0 30px rgba(255,0,0,0.6);
}
.nav-links {
  display:flex; gap:2.8rem; align-items:center;
}
.nav-links a {
  color:#fff; text-decoration:none; font-weight:600; font-size:1.1rem;
  position:relative; padding:0.6rem 0; transition:all 0.4s;
}
.nav-links a::before {
  content:''; position:absolute; top:-10px; left:50%; width:0; height:0;
  background:var(--primary); border-radius:50%; transform:translateX(-50%); transition:0.5s; opacity:0;
}
.nav-links a:hover::before, .nav-links a.active::before {
  width:40px; height:40px; opacity:0.2;
}
.nav-links a::after {
  content:''; position:absolute; bottom:0; left:0; width:0; height:4px;
  background:var(--primary); border-radius:2px; transition:0.4s;
}
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-links a.active { color:var(--primary); text-shadow:0 0 15px rgba(255,0,0,0.8); }

/* Menu toggle button */
.menu-toggle {
  display:none;
  cursor:pointer;
  font-size:2rem;
  color:#fff;
  background:transparent;
  border:0;
  padding:0.25rem;
}
.menu-toggle:focus { outline:3px solid rgba(255,0,0,0.6); border-radius:6px; }

/* Hero */
.hero {
  min-height:100vh;
  background:linear-gradient(rgba(0,0,0,0.75),rgba(0,0,0,0.85)),
    url('https://images.unsplash.com/photo-1534438327276-14e5300c3a48?ixlib=rb-4.0.3&auto=format&fit=crop&w=1950&q=80') center/cover no-repeat;
  display:flex; align-items:center; justify-content:center; text-align:center; position:relative;
  padding-top: calc(var(--nav-height) + 10px);
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(45deg, transparent 30%, rgba(255,0,0,0.2) 50%, transparent 70%);
  animation:shine 12s infinite;
}
@keyframes shine { 0%{transform:translateX(-100%)} 100%{transform:translateX(100%)} }
.hero-content h1 {
  font-family:'Orbitron',sans-serif; font-size:7rem; margin-bottom:1rem;
  background:linear-gradient(90deg, #fff, var(--primary), var(--accent));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:pulse 2s infinite;
}
@keyframes pulse { 0%,100%{text-shadow:0 0 30px #ff0000} 50%{text-shadow:0 0 60px #ff0000} }
.hero-content p { font-size: 1.5rem; max-width: 800px; margin: 0 auto; }

/* Buttons */
.btn {
  padding:1.3rem 3.5rem; background:var(--primary); color:#fff; border:none;
  border-radius:50px; font-size:1.4rem; font-weight:700; cursor:pointer;
  box-shadow:0 15px 40px rgba(255,0,0,0.6); transition:0.4s; margin-top:2rem;
}
.btn:hover { transform:translateY(-12px); box-shadow:0 25px 60px rgba(255,0,0,0.8); }
.btn:focus { outline:3px solid rgba(255,0,0,0.45); }

/* Feature cards */
.features-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:2rem; margin-top:3rem;
}
.feature-card {
  background:var(--light-gray); padding:2.5rem 2rem; border-radius:20px; text-align:center;
  transition:0.5s; border:2px solid transparent;
}
.feature-card:hover {
  background:var(--primary); transform:translateY(-15px); border-color:var(--accent);
}
.feature-card i {
  font-size:3.5rem; color:var(--primary); margin-bottom:1.5rem;
}
.feature-card:hover i { color:#fff; }

/* Classes */
.classes-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(320px,1fr)); gap:2.5rem;
}
.class-card {
  background:#111; border-radius:20px; overflow:hidden; transition:0.5s;
  box-shadow:0 15px 40px rgba(0,0,0,0.6); border:2px solid transparent;
}
.class-card:hover {
  transform:translateY(-20px); border-color:var(--primary); box-shadow:0 25px 60px rgba(255,0,0,0.8);
}
.class-card img {
  height:250px; object-fit:cover; transition:0.4s; width: 100%;
}
.class-card:hover img { transform:scale(1.1); }
.class-info { padding:2rem; text-align:center; }
.class-info h3 { color:var(--primary); font-size:1.8rem; margin-bottom:0.8rem; }
.class-info .schedule { color:#aaa; font-size:0.95rem; margin-top:1rem; }

/* Trainers */
.trainers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2.5rem;
  margin-top: 3rem;
}
.trainer-card {
  background: var(--light-gray);
  border-radius: 20px;
  overflow: hidden;
  text-align: center;
  transition: 0.5s;
  border: 2px solid transparent;
}
.trainer-card:hover {
  transform: translateY(-15px);
  border-color: var(--primary);
  box-shadow: 0 20px 50px rgba(255,0,0,0.4);
}
.trainer-img {
  height: 350px;
  overflow: hidden;
}
.trainer-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.trainer-card:hover .trainer-img img { transform: scale(1.1); }
.trainer-info { padding: 2rem; }
.trainer-info h3 { color: var(--primary); font-size: 1.8rem; margin-bottom: 0.5rem; }
.trainer-info .specialty { color: var(--accent); font-weight: 600; margin-bottom: 1rem; }
.trainer-social { display: flex; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
.trainer-social a {
  color: #fff; background: var(--dark); width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; transition: 0.3s;
}
.trainer-social a:hover { background: var(--primary); transform: translateY(-5px); }

/* Gallery */
.gallery-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 3rem;
}
.gallery-item { border-radius: 15px; overflow: hidden; position: relative; height: 300px; cursor: pointer; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; }
.gallery-item:hover img { transform: scale(1.1); }
.gallery-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,0.8));
  padding: 2rem 1.5rem 1.5rem; transform: translateY(100%); transition: 0.5s;
}
.gallery-item:hover .gallery-overlay { transform: translateY(0); }

/* Contact */
.contact-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 3rem; margin-top: 3rem; }
.contact-info { display: flex; flex-direction: column; gap: 2rem; }
.contact-item { display: flex; align-items: flex-start; gap: 1.5rem; }
.contact-icon { background: var(--primary); width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; }
.contact-text h3 { color: var(--primary); margin-bottom: 0.5rem; }
.contact-form { background: var(--light-gray); padding: 2.5rem; border-radius: 20px; }
.form-group { margin-bottom: 1.5rem; }
.form-group label { display: block; margin-bottom: 0.5rem; font-weight: 600; }
.form-control {
  width: 100%; padding: 1rem; background: var(--dark); border: 2px solid transparent; border-radius: 10px;
  color: #fff; font-size: 1rem; transition: 0.3s;
}
.form-control:focus { outline:none; border-color: var(--primary); box-shadow: 0 0 0 4px rgba(255,0,0,0.08); }
textarea.form-control { min-height: 150px; resize: vertical; }

/* Pricing */
.pricing-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px,1fr)); gap:2.5rem; }
.price-card {
  background:#111; border-radius:20px; padding:3rem 2rem; text-align:center; transition:0.5s; border:3px solid transparent; position:relative; overflow:hidden;
}
.price-card::before {
  content:''; position:absolute; top:0; left:0; width:100%; height:5px; background:linear-gradient(90deg, var(--primary), var(--accent));
}
.price-card.popular {
  transform:scale(1.08); border-color:var(--primary); background:linear-gradient(135deg, #111, #1a0000);
  box-shadow:0 0 50px rgba(255,0,0,0.4);
}
.price-card.popular::after {
  content:"MOST POPULAR"; position:absolute; top:15px; right:-40px; background:var(--accent); color:#000; padding:8px 50px; font-size:0.9rem; font-weight:bold; transform:rotate(45deg); width:200px;
}
.price { font-size:4rem; color:var(--primary); font-weight:900; }
.price span { font-size:1.5rem; color:#aaa; }

/* Footer */
footer { background: var(--dark); padding: 4rem 5% 2rem; border-top: 2px solid rgba(255,0,0,0.3); }
.footer-content { max-width: var(--container-max); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 3rem; margin-bottom: 3rem; }
.footer-column h3 { color: var(--primary); margin-bottom: 1.5rem; font-size: 1.5rem; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 0.8rem; }
.footer-links a { color: #aaa; text-decoration: none; transition: 0.3s; }
.footer-links a:hover { color: var(--primary); padding-left: 5px; }
.footer-social { display: flex; gap: 1rem; margin-top: 1.5rem; }
.footer-social a { color: #fff; background: var(--light-gray); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: 0.3s; }
.footer-social a:hover { background: var(--primary); transform: translateY(-5px); }
.copyright { text-align: center; padding-top: 2rem; border-top: 1px solid var(--light-gray); color: #aaa; }

/* WhatsApp */
.whatsapp-float {
  position:fixed; bottom:25px; right:25px; z-index:999;
  background:#25d366; width:65px; height:65px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:2.5rem; color:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,0.5); animation:float 3s infinite; cursor:pointer; transition:0.3s;
}
.whatsapp-float:hover { transform:scale(1.2); }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-15px)} }

/* Focus ring improvements for keyboard users */
:focus { outline: none; }
:focus-visible { outline: 3px solid rgba(255,0,0,0.45); border-radius: 6px; }

/* Responsive */
@media (max-width:1024px) {
  .hero-content h1 { font-size:6rem; }
}
@media (max-width:768px) {
  .nav-links {
    position:fixed; top:0; right:-100%; width:100%; height:100vh;
    background:rgba(0,0,0,0.98); flex-direction:column; justify-content:center; gap:3rem;
    font-size:2rem; transition:0.5s; padding:2rem;
  }
  .nav-links.active { right:0; }
  .menu-toggle { display:block; }
  .hero-content h1 { font-size:4.5rem; }
  h2 { font-size:2.8rem; }
  .price-card.popular { transform:scale(1.02); }
  .hero { padding-top: 70px; }
}

/* Respect user's reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
