/*--------------------------------------------------------------
1.0 CORE STYLES & VARIABLES
--------------------------------------------------------------*/
:root { --color-yellow: #fdd835; --color-orange: #f57c00; --color-blue: #271669; --color-dark-purple: #8e44ad; --color-red: #c0392b; --color-light-purple: #a569bd; --font-main: 'Poppins', sans-serif; --background-dark: #111111; --background-light: #ffffff; --text-light: #f1f1f1; --text-dark: #333333; --text-muted: #cccccc; }
body { font-family: var(--font-main); margin: 0; background-color: var(--background-light); color: var(--text-dark); overflow-x: hidden; }

/*--------------------------------------------------------------
2.0 LOADER ANIMATION
--------------------------------------------------------------*/
.loader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.loader-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; }
.loader-bg .bg-panel { width: 50%; height: 100%; background-color: var(--background-light); }
.loader-text-container { position: relative; text-align: center; }
.loader-text { font-size: clamp(2rem, 8vw, 5rem); font-weight: 900; line-height: 1.2; margin: 0; color: var(--text-dark); }
.loader-text span { display: inline-block; }
.loader-text .word-radian { color: var(--color-blue); }
.loader-text .word-ha { color: var(--color-blue); }
.loader-text .word-limited { color: var(--color-blue); }
.loader-text .word-training { color: var(--color-blue); }
.loader-text .word-center { color: var(--color-blue); }

/*--------------------------------------------------------------
3.0 HEADER & NAVIGATION
--------------------------------------------------------------*/
.main-header { position: relative; background-color: var(--background-light); padding: 1rem 5%; box-shadow: 0 2px 10px rgba(0,0,0,0.05); z-index: 1000; transition: background-color 0.4s ease, box-shadow 0.4s ease; }
.logo-container a { font-size: 1.5rem; font-weight: 700; text-decoration: none; color: var(--text-dark); }
.logo-container a span { font-weight: 400; }
.nav-links a { color: #555; }
.home .main-header { position: fixed; top: 0; left: 0; width: 100%; background-color: rgba(10, 25, 47, 0.2); box-shadow: none; }
.home .main-header.scrolled { background-color: rgba(10, 25, 47, 0.85); box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.home .logo-container a, .home .nav-links a { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.home .nav-links a:hover { color: #fff; }
.home .nav-links a::after { background-color: var(--hero-accent-blue); }
.main-nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.nav-links { list-style: none; margin: 0; padding: 0; display: flex; gap: 2rem; align-items: center; }
.nav-links a { text-decoration: none; font-weight: 600; padding-bottom: 5px; position: relative; transition: color 0.3s ease; }
.nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; transform: scaleX(0); transform-origin: right; transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1); }
.nav-links a:hover::after { transform: scaleX(1); transform-origin: left; }
.user-actions { position: relative; }
.home .login-signup-btn { border: 1px solid #fff; color:#fff; }
.home .login-signup-btn:hover { background-color: rgba(100, 255, 218, 0.1); transform: translateY(-3px); box-shadow: 0 6px 12px rgba(100, 255, 218, 0.1); }
.login-signup-btn { display: inline-block; padding: 10px 25px; font-weight: 600; text-decoration: none; border-radius: 50px; transition: all 0.3s ease; border: 1px solid var(--text-dark); color: var(--text-dark); }
.login-signup-btn:hover { background-color: var(--text-dark); color: #fff; }
.user-menu-trigger { width: 45px; height: 45px; border-radius: 50%; background: var(--color-light-purple); color: var(--text-light); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.2rem; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.user-menu-trigger:hover { transform: scale(1.1); box-shadow: 0 5px 15px rgba(165, 105, 189, 0.3); }
.user-dropdown-menu { position: absolute; top: calc(100% + 15px); right: 0; width: 250px; background: var(--background-light); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); padding: 1rem; z-index: 1001; visibility: hidden; opacity: 0; transform: translateY(10px); transition: all 0.3s ease; }
.user-dropdown-menu.active { visibility: visible; opacity: 1; transform: translateY(0); }
.user-info { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid #eee; text-align: left; }
.user-info strong { display: block; font-size: 1rem; color: var(--text-dark); }
.user-info span { font-size: 0.9rem; color: #777; }
.user-dropdown-menu ul { list-style: none; padding: 0; margin: 0; }
.user-dropdown-menu ul li a { display: block; padding: 0.8rem; text-decoration: none; color: #555; font-weight: 600; border-radius: 5px; transition: background-color 0.3s ease, color 0.3s ease; }
.user-dropdown-menu ul li a:hover { background: var(--color-red); color: var(--text-light); }
.mobile-nav-toggle { display: none; background: none; border: none; cursor: pointer; z-index: 1001; }
.mobile-nav-toggle .hamburger { width: 30px; height: 2px; background-color: var(--text-dark); display: block; position: relative; transition: background-color 0.3s ease; }
.mobile-nav-toggle .hamburger::before, .mobile-nav-toggle .hamburger::after { content: ''; width: 30px; height: 2px; background-color: var(--text-dark); position: absolute; left: 0; transition: transform 0.3s ease, top 0.3s ease; }
.mobile-nav-toggle .hamburger::before { top: -8px; }
.mobile-nav-toggle .hamburger::after { top: 8px; }
.home .mobile-nav-toggle .hamburger, .home .mobile-nav-toggle .hamburger::before, .home .mobile-nav-toggle .hamburger::after { background-color: #fff; }
.mobile-nav-toggle.active .hamburger { background-color: transparent; }
.mobile-nav-toggle.active .hamburger::before { transform: rotate(45deg); top: 0; }
.mobile-nav-toggle.active .hamburger::after { transform: rotate(-45deg); top: 0; }

/*--------------------------------------------------------------
4.0 FUTURISTIC HERO SECTION V3
--------------------------------------------------------------*/
.hero-v3 { --hero-bg-dark: #0a192f; --hero-accent-blue: #64ffda; --hero-text-light: #ccd6f6; --hero-text-darker: #8892b0; position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 100vh; padding: 100px 5%; gap: 3rem; background-color: var(--hero-bg-dark); color: var(--hero-text-light); overflow: hidden; }
.hero-v3-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }
.hero-v3-bg-shape { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(245, 124, 0, 0.15) 0%, rgba(192, 57, 43, 0.05) 40%, transparent 70%); filter: blur(100px); will-change: transform; }
.shape1 { width: 500px; height: 500px; top: -10%; left: -15%; }
.shape2 { width: 400px; height: 400px; bottom: -10%; right: -10%; background: radial-gradient(circle, rgba(165, 105, 189, 0.1) 0%, rgba(142, 68, 173, 0.05) 40%, transparent 70%); }
.hero-v3-content { position: relative; z-index: 3; text-align: left; }
.hero-v3-headline { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 900; line-height: 1.2; margin: 0 0 1.5rem 0; color: #fff; min-height: 180px; }
.hero-v3-headline .typing-text::after { content: '_'; font-weight: 400; color: var(--hero-accent-blue); animation: blink 0.7s infinite; margin-left: 5px; }
@keyframes blink { 50% { opacity: 0; } }
.hero-v3-subheadline { font-size: clamp(1rem, 2.5vw, 1.1rem); max-width: 500px; margin: 0 0 2.5rem 0; color: var(--hero-text-darker); line-height: 1.6; }
.hero-v3-stats { display: flex; gap: 3rem; margin-bottom: 3rem; }
.hero-v3-stat-item { text-align: left; }
.hero-v3-stat-item .stat-number-wrapper { font-size: clamp(2.5rem, 6vw, 3.5rem); font-weight: 700; color: var(--color-orange); line-height: 1; margin-bottom: 0.5rem; }
.hero-v3-stat-item .stat-text { font-size: 0.9rem; font-weight: 600; color: var(--hero-text-darker); text-transform: uppercase; letter-spacing: 1px; }
.hero-v3-carousel { position: relative; z-index: 2; perspective: 1500px; width: 100%; height: 60vh; display: flex; align-items: center; justify-content: center; }
.carousel-image-container { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; }
.carousel-image-container img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 15px; opacity: 0; transform: rotateY(20deg) scale(0.9); transition: opacity 1s ease, transform 1s cubic-bezier(0.23, 1, 0.32, 1); box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4); }
.carousel-image-container img.active { opacity: 1; transform: rotateY(0) scale(1); }
.cta-button-v2 { --color: var(--color-red); font-family: inherit; display: inline-flex; align-items: center; width: auto; height: auto; padding: 0.8em 1.7em; background-color: transparent; border: 2px solid var(--color); border-radius: 50px; color: var(--color); font-size: 1.1rem; font-weight: 600; letter-spacing: 0.05em; text-decoration: none; cursor: pointer; position: relative; overflow: hidden; transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); }
.cta-button-v2 span { position: relative; z-index: 2; transition: color 0.4s ease; }
.cta-button-v2 svg { margin-left: 0.5em; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke: var(--color); stroke-width: 2; transform: translateX(-5px); transition: all 0.3s ease; position: relative; z-index: 2; }
.cta-button-v2:hover { box-shadow: 0 0 25px rgba(192, 57, 43, 0.5); border-color: transparent; }
.cta-button-v2:hover span { color: #fff; }
.cta-button-v2:hover svg { transform: translateX(0); stroke: #fff; }
.cta-button-v2::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: var(--color); transform: scaleX(0); transform-origin: left; transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); z-index: 1; }
.cta-button-v2:hover::before { transform: scaleX(1); }
.scroll-indicator-v2 { position: absolute; bottom: 2rem; left: 5%; opacity: 0; }
.scroll-indicator-v2 .arrow { width: 2px; height: 40px; background: var(--hero-text-darker); position: relative; animation: scroll-bounce 2.5s infinite ease-out; }
@keyframes scroll-bounce { 0%{transform:translateY(0);height:40px} 20%{transform:translateY(20px);height:0} 40%{transform:translateY(0);height:40px} 100%{transform:translateY(0);height:40px} }

/*--------------------------------------------------------------
4.5 COURSES MARQUEE
--------------------------------------------------------------*/
.courses-marquee { background-color: #000; padding: 0.8rem 0; overflow: hidden; white-space: nowrap; }
.marquee-inner { display: inline-block; will-change: transform; }
.marquee-inner span { font-size: 1.5rem; font-weight: 600; color: #fff; text-transform: uppercase; margin: 0 2rem; }

/*--------------------------------------------------------------
5.0 HORIZONTAL SCROLLING DISCIPLINES SECTION
--------------------------------------------------------------*/
.horizontal-disciplines {  position: relative; background: linear-gradient(135deg, #111 0%, #1a1a1a 50%, #0a0a0a 100%); overflow: hidden; }
.disciplines-container { position: sticky; top: 0; height: 100vh; width: 100vw; display: flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(135deg, #111 0%, #1a1a1a 50%, #0a0a0a 100%);}
.disciplines-track { display: flex; width: 300vw; height: 100vh; will-change: transform;flex-shrink: 0; }
.discipline-panel { width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; padding: 0 5%; flex-shrink: 0; }
.panel-content { max-width: 1200px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
.content-text { z-index: 10; position: relative; }
.discipline-title { font-size: clamp(3rem, 8vw, 6rem); font-weight: 900; line-height: 1.3; margin-bottom: 2rem; background: linear-gradient(45deg, var(--color-red), var(--color-orange)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.discipline-subtitle { font-size: 1.5rem; font-weight: 600; margin-bottom: 1.5rem; color: var(--color-light-purple); }
.discipline-description { font-size: 1.2rem; line-height: 1.7; color: #ccc; margin-bottom: 2rem; }
.discipline-features { list-style: none; padding: 0; }
.discipline-features li { position: relative; padding-left: 30px; margin-bottom: 1rem; font-size: 1.1rem; color: #fff; font-weight: 500; }
.discipline-features li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; background: var(--color-red); border-radius: 50%; box-shadow: 0 0 15px var(--color-red); }
.svg-container { position: relative; width: 100%; height: 500px; display: flex; align-items: center; justify-content: center; }
.morphing-svg { width: 400px; height: 400px; filter: drop-shadow(0 0 30px rgba(192, 57, 43, 0.3)); }
.svg-path { fill: none; stroke: var(--color-red); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.svg-fill { fill: rgba(192, 57, 43, 0.1); stroke: var(--color-red); stroke-width: 1; }
.floating-particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; }
.particle { position: absolute; width: 3px; height: 3px; background: var(--color-orange); border-radius: 50%; }
.section-indicator { position: fixed; top: 50%; right: 3rem; transform: translateY(-50%); z-index: 100; display: flex; flex-direction: column; gap: 1rem; }
.indicator-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.3); transition: all 0.3s ease; cursor: pointer; }
.indicator-dot.active { background: var(--color-red); transform: scale(1.3); box-shadow: 0 0 15px var(--color-red); }
.disciplines-container::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 30% 20%, rgba(192, 57, 43, 0.15) 0%, transparent 50%), radial-gradient(circle at 70% 80%, rgba(142, 68, 173, 0.1) 0%, transparent 50%); pointer-events: none; z-index: 1; }

/*--------------------------------------------------------------
6.0 CUSTOM LOGIN & REGISTRATION PAGE
--------------------------------------------------------------*/
.login .main-header, .login .site-footer, .login .page-wrapper > #content { display: none; }
.login-container { width: 100%; min-height: 100vh; background-color: var(--background-dark); color: var(--text-light); display: flex; align-items: center; justify-content: center; overflow: hidden; position: fixed; top: 0; left: 0; padding: 3rem 1rem; box-sizing: border-box; }
.login-background .shape { position: absolute; border-radius: 50%; filter: blur(120px); opacity: 0.5; }
.shape1 { width: 400px; height: 400px; background: var(--color-red); top: 10%; left: 10%; }
.shape2 { width: 300px; height: 300px; background: var(--color-light-purple); bottom: 15%; right: 15%; }
.shape3 { width: 250px; height: 250px; background: var(--color-orange); bottom: 40%; left: 20%; }
.login-form-wrapper { width: 100%; max-width: 420px; padding: 2rem; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(15px); border-radius: 20px; text-align: center; z-index: 2; position: relative; min-height: 600px; display: flex; flex-direction: column; margin: auto; }
.login-logo a { font-size: 2rem; font-weight: 900; color: var(--text-light); text-decoration: none; }
.form-container { width: 100%; padding: 1rem; transition: opacity 0.4s ease, transform 0.4s ease; }
.form-container.active-form { opacity: 1; visibility: visible; transform: translateX(0); z-index: 10; }
.form-container:not(.active-form) { opacity: 0; visibility: hidden; transform: translateX(30px); position: absolute; top: 0; left: 0; pointer-events: none; }
.login-title { font-size: 1.5rem; font-weight: 700; margin: 0.5rem 0 0.25rem 0; }
.login-subtitle { font-size: 1rem; color: var(--text-muted); margin: 0 0 2rem 0; }
.login-error, .login-success { padding: 0.8rem; border-radius: 8px; margin-bottom: 1.5rem; border: 1px solid; }
.login-error { background: rgba(192, 57, 43, 0.3); color: #fdd; border-color: rgba(192, 57, 43, 0.5); }
.login-success { background: rgba(46, 204, 113, 0.2); color: #d1f7e0; border-color: rgba(46, 204, 113, 0.4); }
form p { margin-bottom: 1.5rem; }
form label { display: block; text-align: left; margin-bottom: 0.5rem; font-weight: 600; color: var(--text-muted); }
form input[type="text"], form input[type="password"], form input[type="email"] { width: 100%; padding: 0.8rem 1rem; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: var(--text-light); font-size: 1rem; box-sizing: border-box; transition: border-color 0.3s ease, box-shadow 0.3s ease; }
form input[type="text"]:focus, form input[type="password"]:focus, form input[type="email"]:focus { outline: none; border-color: var(--color-red); box-shadow: 0 0 15px rgba(192, 57, 43, 0.5); }
form .login-remember { text-align: left; font-size: 0.9rem; }
form input[type="submit"] { width: 100%; padding: 1rem; background: var(--color-red); color: var(--text-light); border: none; border-radius: 8px; font-size: 1.1rem; font-weight: 700; cursor: pointer; transition: background-color 0.3s ease, transform 0.3s ease; }
form input[type="submit"]:hover { background-color: #a03025; transform: scale(1.02); }
.form-toggle-link { margin-top: auto; padding-top: 1.5rem; font-size: 0.9rem; border-top: 1px solid rgba(255,255,255,0.1); }
.form-toggle-link span { color: #aaa; margin-right: 5px; }
.form-toggle-link a { color: var(--color-red); text-decoration: none; font-weight: 700; cursor: pointer; }

/*--------------------------------------------------------------
7.0 FOOTER
--------------------------------------------------------------*/
.site-footer { text-align: center; padding: 2rem 5%; background-color:var(--background-dark); color: var(--text-muted); }

/*--------------------------------------------------------------
8.0 RESPONSIVE STYLES
--------------------------------------------------------------*/
@media (max-width: 992px) {
    .hero-v3 { grid-template-columns: 1fr; text-align: center; }
    .hero-v3-content { order: 2; }
    .hero-v3-carousel { order: 1; height: 40vh; margin-bottom: 2rem; }
    .hero-v3-content, .hero-v3-stats, .hero-v3-stat-item { text-align: center; }
    .hero-v3-stats { justify-content: center; }
    .scroll-indicator-v2 { left: 50%; transform: translateX(-50%); }
    .futuristic-hero { grid-template-columns: 1fr; text-align: center; padding-top: 4rem; padding-bottom: 4rem; }
    .hero-content { order: 2; padding-right: 0; }
    .hero-carousel { order: 1; height: 50vh; margin-bottom: 2rem; }
    .stat-text { max-width: 100%; display: block; margin-top: 0.5rem; }
    .scroll-indicator { left: 50%; transform: translateX(-50%); }
    .panel-content { grid-template-columns: 1fr; gap: 3rem; text-align: center; }
    .content-text { order: 2; }
    .svg-container { order: 1; height: 300px; }
    .morphing-svg { width: 300px; height: 300px; }
    .discipline-features { text-align: left; display: inline-block; }
}
@media (max-width: 768px) {
    .main-nav { flex-wrap: nowrap; }
    .mobile-nav-toggle { display: block; }
    .nav-links { display: none; flex-direction: column; width: 100%; background-color: var(--background-light); padding: 2rem 0; text-align: center; gap: 1.5rem; position: absolute; top: 100%; left: 0; box-shadow: 0 10px 20px rgba(0,0,0,0.05); }
    .nav-links.active { display: flex; }
    .user-actions { margin-left: 0; display: none; }
    .nav-links .user-actions { display: block; }
    .horizontal-disciplines { height: auto; overflow: visible; }
    .disciplines-container { position: relative; height: auto; display: block; }
    .disciplines-track { flex-direction: column; width: 100vw; height: auto; }
    .discipline-panel { height: auto; min-height: 100vh; padding: 4rem 5%; }
    .section-indicator { display: none; }
}
@media (max-width: 576px) {
    .hero-headline { font-size: 2.2rem; min-height: 0; }
    .stat-number { font-size: 3rem; }
    .cta-button { padding: 0.8rem 2rem; font-size: 0.9rem; }
    .discipline-title { font-size: clamp(2.5rem, 12vw, 4rem); }
    .discipline-subtitle { font-size: 1.2rem; }
    .discipline-description { font-size: 1rem; }
    .login-form-wrapper { padding: 1.5rem; }
}
#new-section-after-disciplines { position: relative; z-index: 2; min-height: 100vh; }

/*--------------------------------------------------------------
9.0 TRAINING CALENDAR SECTION - REDESIGNED TO MATCH THEME
--------------------------------------------------------------*/
.training-calendar-section { position: relative; background: linear-gradient(135deg, #0a192f 0%, #1a1a2e 50%, #16213e 100%); color: #fff; padding: 120px 5% 100px; overflow: hidden; z-index: 5; min-height: 100vh; }
.training-calendar-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 25% 25%, rgba(245, 124, 0, 0.15) 0%, transparent 50%), radial-gradient(circle at 75% 75%, rgba(192, 57, 43, 0.12) 0%, transparent 50%), radial-gradient(circle at 50% 50%, rgba(165, 105, 189, 0.08) 0%, transparent 40%); z-index: -1; }
.calendar-container { position: relative; max-width: 1400px; margin: 0 auto; z-index: 10; }
.calendar-header { text-align: center; margin-bottom: 4rem; }
.calendar-title { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 900; margin: 0 0 1rem 0; background: linear-gradient(45deg, #fff, var(--color-yellow), var(--color-orange)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); line-height: 1.2; }
.calendar-subtitle { font-size: clamp(1rem, 2.5vw, 1.2rem); color: #8892b0; max-width: 600px; margin: 0 auto; line-height: 1.6; }
.calendar-grid-wrapper { display: grid; grid-template-columns: 320px 1fr; gap: 3rem; position: relative; align-items: start; }
.calendar-sidebar { display: flex; flex-direction: column; gap: 2rem; position: sticky; top: 2rem; }
.calendar-legend, .upcoming-events { background: rgba(255, 255, 255, 0.03); border-radius: 20px; padding: 2rem; border: 1px solid rgba(100, 255, 218, 0.1); backdrop-filter: blur(20px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; }
.calendar-legend:hover, .upcoming-events:hover { border-color: rgba(100, 255, 218, 0.2); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4); }
.calendar-legend h4, .upcoming-events h4 { font-size: 1.2rem; font-weight: 700; margin: 0 0 1.5rem 0; color: #64ffda; text-transform: uppercase; letter-spacing: 1px; border-bottom: 2px solid rgba(100, 255, 218, 0.2); padding-bottom: 0.8rem; position: relative; }
.calendar-legend h4::after, .upcoming-events h4::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 30px; height: 2px; background: var(--color-orange); }
.legend-item { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; font-size: 0.95rem; color: #ccd6f6; font-weight: 500; }
.legend-dot { width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0; position: relative; }
.legend-dot.available { background: var(--color-orange); box-shadow: 0 0 15px rgba(245, 124, 0, 0.5); }
.legend-dot.multi-course { background: var(--color-red); box-shadow: 0 0 15px rgba(192, 57, 43, 0.5); }
.legend-dot.selected { background: #64ffda; box-shadow: 0 0 15px rgba(100, 255, 218, 0.5); }
.legend-dot::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 6px; height: 6px; background: rgba(255, 255, 255, 0.8); border-radius: 50%; }
.calendar-main { background: rgba(255, 255, 255, 0.03); border-radius: 20px; padding: 2.5rem; border: 1px solid rgba(100, 255, 218, 0.1); backdrop-filter: blur(20px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); position: relative; }
.calendar-controls { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(100, 255, 218, 0.1); }
.calendar-nav-btn { background: linear-gradient(135deg, var(--color-red), #a03025); border: none; border-radius: 50%; width: 45px; height: 45px; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(192, 57, 43, 0.3); position: relative; overflow: hidden; }
.calendar-nav-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; }
.calendar-nav-btn:hover { transform: scale(1.1); box-shadow: 0 6px 20px rgba(192, 57, 43, 0.5); }
.calendar-nav-btn:hover::before { left: 100%; }
.current-month-year { font-size: 1.8rem; font-weight: 700; color: #64ffda; text-align: center; letter-spacing: 0.5px; }
.custom-calendar { width: 100%; }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1rem; margin-bottom: 1rem; }
.weekday { text-align: center; font-weight: 600; color: #64ffda; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 1px; padding: 1rem 0; }
.calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1rem; width: 100%; }
.calendar-day { position: relative; height: 60px; border-radius: 12px; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 1rem; background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.05); color: #8892b0; overflow: hidden; }
.calendar-day::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, transparent, rgba(100, 255, 218, 0.1)); opacity: 0; transition: opacity 0.3s ease; }
.calendar-day:hover::before { opacity: 1; }
.calendar-day.other-month { color: #4a5568; cursor: default; }
.calendar-day.today { background: linear-gradient(135deg, rgba(100, 255, 218, 0.2), rgba(100, 255, 218, 0.1)); color: #64ffda; font-weight: 700; border-color: rgba(100, 255, 218, 0.3); box-shadow: 0 0 20px rgba(100, 255, 218, 0.2); }
.calendar-day.has-courses { background: linear-gradient(135deg, var(--color-orange), rgba(245, 124, 0, 0.8)); color: #fff; font-weight: 700; border-color: var(--color-orange); box-shadow: 0 0 25px rgba(245, 124, 0, 0.4); transform: translateY(-2px); }
.calendar-day.multi-course { background: linear-gradient(135deg, var(--color-red), rgba(192, 57, 43, 0.8)); box-shadow: 0 0 25px rgba(192, 57, 43, 0.4); animation: pulse 2s infinite; }
.calendar-day.selected { background: linear-gradient(135deg, #64ffda, rgba(100, 255, 218, 0.8)); color: #0a192f; font-weight: 900; transform: scale(1.05); box-shadow: 0 0 30px rgba(100, 255, 218, 0.6); z-index: 10; }
.calendar-day:not(.other-month):hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 8px 25px rgba(100, 255, 218, 0.2); }
.course-indicator { position: absolute; top: 4px; right: 4px; width: 18px; height: 18px; background: var(--color-red); border: 2px solid #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 900; color: #fff; z-index: 5; }
.multi-course .course-indicator { background: #fff; color: var(--color-red); animation: bounce 1s infinite; }
.upcoming-event { display: flex; align-items: center; gap: 1rem; padding: 1.2rem; margin-bottom: 1rem; background: rgba(0, 0, 0, 0.3); border-radius: 15px; border: 1px solid rgba(100, 255, 218, 0.1); transition: all 0.3s ease; cursor: pointer; }
.upcoming-event:hover { transform: translateX(10px); background: rgba(0, 0, 0, 0.5); border-color: rgba(100, 255, 218, 0.3); box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }
.event-date-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--color-red), #a03025); color: #fff; border-radius: 12px; padding: 0.8rem; width: 60px; height: 60px; text-align: center; box-shadow: 0 4px 15px rgba(192, 57, 43, 0.4); flex-shrink: 0; }
.event-month { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.event-day { font-size: 1.4rem; font-weight: 900; line-height: 1; }
.event-info h6 { font-size: 1rem; font-weight: 600; margin: 0 0 0.4rem 0; color: #ccd6f6; }
.event-price { font-size: 0.85rem; color: var(--color-orange); font-weight: 700; }
.event-modal { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(10px); z-index: 1000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: all 0.3s ease; }
.event-modal.active { opacity: 1; visibility: visible; }
.modal-content { background: linear-gradient(135deg, #1a1a2e, #16213e); border-radius: 20px; padding: 3rem; max-width: 500px; width: 90%; max-height: 80vh; overflow-y: auto; border: 1px solid rgba(100, 255, 218, 0.2); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); position: relative; color: #fff; }
.modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(100, 255, 218, 0.2); }
.modal-header h3 { font-size: 1.5rem; font-weight: 700; color: #64ffda; margin: 0; }
.close-modal { background: none; border: none; color: #8892b0; font-size: 2rem; cursor: pointer; transition: all 0.3s ease; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.close-modal:hover { color: var(--color-red); background: rgba(192, 57, 43, 0.1); transform: rotate(90deg); }
.event-date-display { text-align: center; margin-bottom: 2rem; }
.event-date-display h4 { font-size: 1.3rem; font-weight: 600; margin: 0 0 0.5rem 0; color: #ccd6f6; }
.course-count-badge { display: inline-block; background: var(--color-orange); color: #fff; padding: 0.3rem 1rem; border-radius: 20px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.modal-courses { space-y: 1.5rem; }
.course-card { background: rgba(0, 0, 0, 0.3); border-radius: 15px; padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid rgba(100, 255, 218, 0.1); transition: all 0.3s ease; }
.course-card:hover { border-color: rgba(100, 255, 218, 0.3); transform: translateY(-2px); }
.course-card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1rem; }
.course-card h5 { font-size: 1.1rem; font-weight: 600; margin: 0; color: #ccd6f6; flex: 1; padding-right: 1rem; }
.course-card-price { font-size: 1.1rem; font-weight: 700; color: var(--color-orange); }
.course-dates-info { font-size: 0.9rem; color: #8892b0; margin-bottom: 1.5rem; }
.enroll-btn { width: 100%; padding: 1rem 2rem; background: linear-gradient(135deg, var(--color-red), #a03025); color: #fff; border: none; border-radius: 12px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; position: relative; overflow: hidden; }
.enroll-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; }
.enroll-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(192, 57, 43, 0.4); }
.enroll-btn:hover::before { left: 100%; }
.no-events-display { text-align: center; padding: 2rem 0; }
.no-events-icon { font-size: 4rem; margin-bottom: 1rem; }
.no-events-display h4 { font-size: 1.3rem; font-weight: 600; margin: 0 0 1rem 0; color: #ccd6f6; }
.no-events-display p { color: #8892b0; line-height: 1.6; margin-bottom: 2rem; }
.contact-btn { display: inline-block; padding: 1rem 2rem; background: linear-gradient(135deg, #64ffda, rgba(100, 255, 218, 0.8)); color: #0a192f; text-decoration: none; border-radius: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; transition: all 0.3s ease; }
.contact-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(100, 255, 218, 0.4); }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }
@keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-3px); } 60% { transform: translateY(-2px); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.calendar-main { animation: float 6s ease-in-out infinite; }
@media (max-width: 1200px) { .calendar-grid-wrapper { grid-template-columns: 280px 1fr; gap: 2rem; } }
@media (max-width: 992px) {
    .calendar-grid-wrapper { grid-template-columns: 1fr; }
    .calendar-sidebar { order: 2; flex-direction: row; gap: 1.5rem; position: static; }
    .calendar-main { order: 1; }
    .calendar-legend, .upcoming-events { flex: 1; }
}
@media (max-width: 768px) {
    .training-calendar-section { padding: 80px 3% 60px; }
    .calendar-sidebar { flex-direction: column; }
    .calendar-days { gap: 0.5rem; }
    .calendar-day { height: 50px; font-size: 0.9rem; }
    .modal-content { padding: 2rem; width: 95%; }
    .calendar-legend, .upcoming-events { padding: 1.5rem; }
}
@media (max-width: 576px) {
    .calendar-title { font-size: 2.5rem; }
    .calendar-day { height: 45px; font-size: 0.8rem; }
    .course-indicator { width: 15px; height: 15px; font-size: 0.6rem; }
}

/*--------------------------------------------------------------
10.0 LOCATION & MAP SECTION (REDESIGNED)
--------------------------------------------------------------*/
.location-section { position: relative; padding: 120px 5%; background: linear-gradient(135deg, #111 0%, #1a1a1a 50%, #0a0a0a 100%); color: #fff; overflow: hidden; z-index: 6; }
.location-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 30%, rgba(192, 57, 43, 0.15) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(142, 68, 173, 0.12) 0%, transparent 50%); z-index: -1; }
.location-container { max-width: 1400px; margin: 0 auto; }
.location-grid { display: grid; grid-template-columns: 1fr 1.2fr; align-items: center; gap: 5rem; }
.location-text-content { text-align: left; }
.location-title { font-size: clamp(3rem, 8vw, 6rem); font-weight: 900; line-height: 1.3; margin-bottom: 2rem; background: linear-gradient(45deg, var(--color-red), var(--color-orange)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.location-subtitle { font-size: clamp(1rem, 2.5vw, 1.2rem); color: var(--hero-text-darker); line-height: 1.6; max-width: 500px; margin-bottom: 2.5rem; }
.location-details { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.5rem; }
.location-detail-item { display: flex; align-items: center; gap: 1rem; font-size: 1rem; font-weight: 500; color: var(--hero-text-light); }
.detail-icon { flex-shrink: 0; color: var(--hero-accent-blue); }
.map-hud-wrapper { position: relative; padding: 15px; background: rgba(100, 255, 218, 0.05); clip-path: polygon(0 30px, 30px 0, 100% 0, 100% calc(100% - 30px), calc(100% - 30px) 100%, 0 100%); min-height: 450px; }
.map-hud-wrapper iframe { position: absolute; top: 15px; left: 15px; width: calc(100% - 30px); height: calc(100% - 30px); filter: none; transition: filter 0.5s ease; }
.map-hud-wrapper:hover iframe { filter: grayscale(0%) contrast(1); }
.hud-corner { position: absolute; width: 40px; height: 40px; border-color: var(--hero-accent-blue); border-style: solid; transition: all 0.4s ease; }
.hud-corner.top-left { top: 0; left: 0; border-width: 3px 0 0 3px; }
.hud-corner.top-right { top: 0; right: 0; border-width: 3px 3px 0 0; }
.hud-corner.bottom-left { bottom: 0; left: 0; border-width: 0 0 3px 3px; }
.hud-corner.bottom-right { bottom: 0; right: 0; border-width: 0 3px 3px 0; }
.map-hud-wrapper:hover .hud-corner { transform: scale(1.1); box-shadow: 0 0 20px var(--hero-accent-blue); }
.hud-scanline { position: absolute; top: 15px; left: 15px; width: calc(100% - 30px); height: 3px; background: var(--hero-accent-blue); opacity: 0; box-shadow: 0 0 15px var(--hero-accent-blue); transform: translateY(-100%); }
@media (max-width: 992px) {
    .location-grid { grid-template-columns: 1fr; text-align: center; }
    .location-text-content { order: 2; }
    .location-map-content { order: 1; margin-bottom: 3rem; }
    .location-subtitle { margin-left: auto; margin-right: auto; }
    .location-details { justify-content: center; align-items: flex-start; display: inline-flex; text-align: left; }
}

/*--------------------------------------------------------------
11.0 PARTNERS MARQUEE SECTION
--------------------------------------------------------------*/
.partners-section { padding: 100px 0; background-color: #0a192f; text-align: center; overflow: hidden; }
.partners-section h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; margin-bottom: 4rem; color: #fff; }
.partners-marquee { width: 100%; overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(to right, transparent, white 10%, white 90%, transparent); mask-image: linear-gradient(to right, transparent, white 10%, white 90%, transparent); }
.partners-track { display: flex; width: fit-content; animation: marquee-scroll 40s linear infinite; }
.partners-marquee:hover .partners-track { animation-play-state: paused; }
.partners-track img { height: 60px; margin: 0 50px;  opacity: 0.8; transition: filter 0.3s ease, opacity 0.3s ease; }
.partners-track img:hover {  opacity: 1; }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/*--------------------------------------------------------------
12.0 COMPREHENSIVE MOBILE OPTIMIZATION
--------------------------------------------------------------*/
@media (max-width: 992px) {
    .hero-v3 { grid-template-columns: 1fr; text-align: center; padding: 80px 3% 60px; min-height: 100vh; gap: 2rem; }
    .hero-v3-content { order: 2; }
    .hero-v3-carousel { order: 1; height: 35vh; margin-bottom: 1.5rem; }
    .hero-v3-headline { min-height: 120px; margin-bottom: 1rem; }
    .hero-v3-stats { justify-content: center; gap: 2rem; }
    .scroll-indicator-v2 { left: 50%; transform: translateX(-50%); }
    .courses-marquee { padding: 0.6rem 0; }
    .marquee-inner span { font-size: 1.3rem; margin: 0 1.5rem; }
    .horizontal-disciplines { height: auto; overflow: visible; }
    .disciplines-container { position: relative; height: auto; display: block; }
    .disciplines-track { flex-direction: column; width: 100vw; height: auto; }
    .discipline-panel { height: auto; min-height: 80vh; padding: 3rem 4%; }
    .panel-content { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
    .content-text { order: 2; }
    .svg-container { order: 1; height: 250px; margin-bottom: 1rem; }
    .morphing-svg { width: 250px; height: 250px; }
    .discipline-features { text-align: left; display: inline-block; max-width: 300px; }
    .section-indicator { display: none; }
    .training-calendar-section { padding: 80px 3% 60px; }
    .calendar-grid-wrapper { grid-template-columns: 1fr; gap: 2rem; }
    .calendar-sidebar { order: 2; flex-direction: row; gap: 1rem; position: static; }
    .calendar-main { order: 1; padding: 2rem; }
    .calendar-legend, .upcoming-events { flex: 1; padding: 1.5rem; }
    .calendar-days { gap: 0.8rem; }
    .calendar-day { height: 55px; font-size: 0.95rem; }
    .location-section { padding: 80px 4% 60px; }
    .location-grid { grid-template-columns: 1fr; gap: 3rem; text-align: center; }
    .location-text-content { order: 2; }
    .location-map-content { order: 1; }
    .location-details { justify-content: center; align-items: flex-start; display: inline-flex; text-align: left; }
    .map-hud-wrapper { min-height: 350px; }
    .partners-section { padding: 60px 0; }
    .partners-track img { height: 50px; margin: 0 40px; }
}
@media (max-width: 768px) {
    :root { --base-font-size: 0.9rem; }
    body { font-size: var(--base-font-size); }
    .main-header { padding: 0.8rem 4%; }
    .main-nav { flex-wrap: nowrap; }
    .mobile-nav-toggle { display: block; order: 3; }
    .logo-container { order: 1; flex: 1; }
    .nav-links { display: none; flex-direction: column; width: 100%; background-color: var(--background-light); padding: 2rem 0; text-align: center; gap: 1.5rem; position: absolute; top: 100%; left: 0; box-shadow: 0 10px 30px rgba(0,0,0,0.1); z-index: 999; }
    .nav-links.active { display: flex; }
    .user-actions { margin-left: 0; display: none; order: 2; }
    .nav-links .user-actions { display: block; margin-top: 1rem; }
    .home .nav-links { background-color: rgba(10, 25, 47, 0.95); backdrop-filter: blur(20px); }
    .home .nav-links a { color: #fff; }
    .hero-v3 { padding: 100px 4% 40px; min-height: 100vh; gap: 1.5rem; }
    .hero-v3-carousel { height: 30vh; margin-bottom: 1rem; }
    .hero-v3-headline { font-size: clamp(2rem, 8vw, 3rem); min-height: 100px; margin-bottom: 1rem; }
    .hero-v3-subheadline { font-size: clamp(0.9rem, 3vw, 1rem); margin-bottom: 1.5rem; }
    .hero-v3-stats { gap: 1.5rem; margin-bottom: 2rem; }
    .hero-v3-stat-item .stat-number-wrapper { font-size: clamp(2rem, 8vw, 2.5rem); }
    .hero-v3-stat-item .stat-text { font-size: 0.8rem; }
    .cta-button-v2 { padding: 0.7em 1.5em; font-size: 1rem; }
    .courses-marquee { padding: 0.5rem 0; }
    .marquee-inner span { font-size: 1.1rem; margin: 0 1rem; }
    .discipline-panel { padding: 2.5rem 4%; min-height: 70vh; }
    .discipline-title { font-size: clamp(2.5rem, 10vw, 4rem); margin-bottom: 1.5rem; }
    .discipline-subtitle { font-size: 1.2rem; margin-bottom: 1rem; }
    .discipline-description { font-size: 1rem; margin-bottom: 1.5rem; }
    .discipline-features { max-width: 280px; }
    .discipline-features li { font-size: 1rem; margin-bottom: 0.8rem; padding-left: 25px; }
    .discipline-features li::before { width: 10px; height: 10px; }
    .svg-container { height: 220px; }
    .morphing-svg { width: 220px; height: 220px; }
    .training-calendar-section { padding: 60px 4% 50px; }
    .calendar-title { font-size: clamp(2rem, 8vw, 3rem); }
    .calendar-subtitle { font-size: clamp(0.9rem, 3vw, 1rem); }
    .calendar-sidebar { flex-direction: column; gap: 1.5rem; }
    .calendar-main { padding: 1.5rem; }
    .calendar-controls { margin-bottom: 1.5rem; padding-bottom: 1rem; }
    .current-month-year { font-size: 1.5rem; }
    .calendar-nav-btn { width: 40px; height: 40px; }
    .calendar-days { gap: 0.6rem; }
    .calendar-day { height: 50px; font-size: 0.9rem; }
    .course-indicator { width: 16px; height: 16px; font-size: 0.65rem; top: 3px; right: 3px; }
    .legend-item { font-size: 0.9rem; }
    .legend-dot { width: 12px; height: 12px; }
    .upcoming-event { padding: 1rem; }
    .event-date-badge { width: 55px; height: 55px; padding: 0.6rem; }
    .event-day { font-size: 1.2rem; }
    .event-info h6 { font-size: 0.95rem; }
    .event-price { font-size: 0.8rem; }
    .modal-content { padding: 2rem; width: 95%; max-width: none; }
    .modal-header h3 { font-size: 1.3rem; }
    .course-card { padding: 1.2rem; }
    .course-card h5 { font-size: 1rem; }
    .course-card-price { font-size: 1rem; }
    .enroll-btn { padding: 0.8rem 1.5rem; font-size: 0.9rem; }
    .location-section { padding: 60px 4% 50px; }
    .location-title { font-size: clamp(2.5rem, 10vw, 4rem); }
    .location-subtitle { font-size: clamp(0.9rem, 3vw, 1rem); margin-bottom: 2rem; }
    .location-detail-item { font-size: 0.95rem; gap: 0.8rem; }
    .map-hud-wrapper { min-height: 300px; padding: 12px; }
    .map-hud-wrapper iframe { top: 12px; left: 12px; width: calc(100% - 24px); height: calc(100% - 24px); }
    .hud-corner { width: 35px; height: 35px; }
    .partners-section { padding: 50px 0; }
    .partners-section h2 { font-size: clamp(1.8rem, 6vw, 2.5rem); margin-bottom: 3rem; }
    .partners-track img { height: 45px; margin: 0 30px; }
    .login-container { padding: 2rem 1rem; }
    .login-form-wrapper { max-width: 380px; padding: 1.5rem; min-height: 550px; }
    .login-logo a { font-size: 1.8rem; }
    .login-title { font-size: 1.3rem; }
    .login-subtitle { font-size: 0.9rem; }
}
@media (max-width: 576px) {
    .main-header { padding: 0.8rem 3%; }
    .hero-v3 { padding: 90px 3% 30px; }
    .hero-v3-carousel { height: 25vh; }
    .hero-v3-headline { font-size: clamp(1.8rem, 10vw, 2.5rem); min-height: 80px; line-height: 1.1; }
    .hero-v3-subheadline { font-size: clamp(0.85rem, 4vw, 0.95rem); line-height: 1.5; }
    .hero-v3-stats { gap: 1rem; margin-bottom: 1.5rem; }
    .hero-v3-stat-item .stat-number-wrapper { font-size: clamp(1.8rem, 10vw, 2.2rem); margin-bottom: 0.3rem; }
    .hero-v3-stat-item .stat-text { font-size: 0.75rem; line-height: 1.3; }
    .cta-button-v2 { padding: 0.6em 1.3em; font-size: 0.95rem; }
    .marquee-inner span { font-size: 1rem; margin: 0 0.8rem; }
    .discipline-panel { padding: 2rem 3%; min-height: 60vh; }
    .discipline-title { font-size: clamp(2rem, 12vw, 3.5rem); line-height: 1.2; margin-bottom: 1rem; }
    .discipline-subtitle { font-size: 1.1rem; margin-bottom: 0.8rem; }
    .discipline-description { font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.2rem; }
    .discipline-features { max-width: 260px; }
    .discipline-features li { font-size: 0.9rem; margin-bottom: 0.7rem; padding-left: 20px; }
    .discipline-features li::before { width: 8px; height: 8px; }
    .svg-container { height: 180px; }
    .morphing-svg { width: 180px; height: 180px; }
    .training-calendar-section { padding: 50px 3% 40px; }
    .calendar-title { font-size: clamp(1.8rem, 10vw, 2.5rem); line-height: 1.2; }
    .calendar-subtitle { font-size: clamp(0.85rem, 4vw, 0.95rem); line-height: 1.5; }
    .calendar-main { padding: 1.2rem; }
    .calendar-legend, .upcoming-events { padding: 1.2rem; }
    .current-month-year { font-size: 1.3rem; }
    .calendar-nav-btn { width: 35px; height: 35px; }
    .calendar-days { gap: 0.4rem; }
    .calendar-day { height: 45px; font-size: 0.85rem; border-radius: 8px; }
    .course-indicator { width: 14px; height: 14px; font-size: 0.6rem; top: 2px; right: 2px; }
    .weekday { font-size: 0.8rem; padding: 0.8rem 0; }
    .legend-item { font-size: 0.85rem; margin-bottom: 0.8rem; }
    .legend-dot { width: 10px; height: 10px; }
    .upcoming-event { gap: 0.8rem; padding: 0.8rem; }
    .event-date-badge { width: 50px; height: 50px; padding: 0.5rem; }
    .event-month { font-size: 0.65rem; }
    .event-day { font-size: 1.1rem; }
    .event-info h6 { font-size: 0.9rem; }
    .event-price { font-size: 0.75rem; }
    .modal-content { padding: 1.5rem; width: 96%; margin: 1rem; }
    .modal-header { margin-bottom: 1.5rem; padding-bottom: 0.8rem; }
    .modal-header h3 { font-size: 1.2rem; }
    .close-modal { width: 35px; height: 35px; font-size: 1.8rem; }
    .course-count-badge { padding: 0.2rem 0.8rem; font-size: 0.75rem; }
    .course-card { padding: 1rem; margin-bottom: 1rem; }
    .course-card h5 { font-size: 0.95rem; }
    .course-card-price { font-size: 0.95rem; }
    .course-dates-info { font-size: 0.85rem; }
    .enroll-btn { padding: 0.7rem 1.2rem; font-size: 0.85rem; }
    .location-section { padding: 50px 3% 40px; }
    .location-title { font-size: clamp(2rem, 12vw, 3.5rem); line-height: 1.2; }
    .location-subtitle { font-size: clamp(0.85rem, 4vw, 0.95rem); line-height: 1.5; margin-bottom: 1.5rem; }
    .location-details { gap: 1rem; }
    .location-detail-item { font-size: 0.9rem; gap: 0.7rem; }
    .detail-icon svg { width: 20px; height: 20px; }
    .map-hud-wrapper { min-height: 250px; padding: 10px; }
    .map-hud-wrapper iframe { top: 10px; left: 10px; width: calc(100% - 20px); height: calc(100% - 20px); }
    .hud-corner { width: 30px; height: 30px; border-width: 2px; }
    .hud-corner.top-left { border-width: 2px 0 0 2px; }
    .hud-corner.top-right { border-width: 2px 2px 0 0; }
    .hud-corner.bottom-left { border-width: 0 0 2px 2px; }
    .hud-corner.bottom-right { border-width: 0 2px 2px 0; }
    .partners-section { padding: 40px 0; }
    .partners-section h2 { font-size: clamp(1.5rem, 8vw, 2rem); margin-bottom: 2.5rem; }
    .partners-track img { height: 40px; margin: 0 25px; }
    .login-container { padding: 1.5rem 0.8rem; }
    .login-form-wrapper { max-width: 350px; padding: 1.2rem; min-height: 500px; }
    .login-logo a { font-size: 1.6rem; }
    .login-title { font-size: 1.2rem; }
    .login-subtitle { font-size: 0.85rem; margin-bottom: 1.5rem; }
    form input[type="text"], form input[type="password"], form input[type="email"] { padding: 0.7rem 0.8rem; font-size: 0.95rem; }
    form input[type="submit"] { padding: 0.9rem; font-size: 1rem; }
    .form-toggle-link { font-size: 0.85rem; padding-top: 1.2rem; }
}
@media (max-width: 375px) {
    .main-header { padding: 0.6rem 3%; }
    .logo-container a { font-size: 1.3rem; }
    .hero-v3 { padding: 80px 3% 25px; }
    .hero-v3-carousel { height: 22vh; }
    .hero-v3-headline { font-size: clamp(1.6rem, 12vw, 2.2rem); min-height: 70px; line-height: 1.1; }
    .hero-v3-subheadline { font-size: 0.8rem; line-height: 1.4; }
    .hero-v3-stats { flex-direction: column; gap: 0.8rem; margin-bottom: 1.2rem; }
    .hero-v3-stat-item .stat-number-wrapper { font-size: clamp(1.6rem, 12vw, 2rem); }
    .hero-v3-stat-item .stat-text { font-size: 0.7rem; }
    .cta-button-v2 { padding: 0.5em 1.1em; font-size: 0.9rem; }
    .discipline-panel { padding: 1.8rem 3%; }
    .discipline-title { font-size: clamp(1.8rem, 14vw, 3rem); }
    .svg-container { height: 160px; }
    .morphing-svg { width: 160px; height: 160px; }
    .training-calendar-section { padding: 40px 3% 30px; }
    .calendar-main { padding: 1rem; }
    .calendar-legend, .upcoming-events { padding: 1rem; }
    .calendar-day { height: 40px; font-size: 0.8rem; }
    .course-indicator { width: 12px; height: 12px; font-size: 0.55rem; }
    .location-section { padding: 40px 3% 30px; }
    .map-hud-wrapper { min-height: 220px; }
    .partners-section { padding: 30px 0; }
    .partners-track img { height: 35px; margin: 0 20px; }
}

/*--------------------------------------------------------------
13.0 MOBILE TOUCH & INTERACTION ENHANCEMENTS
--------------------------------------------------------------*/
@media (max-width: 768px) {
    .calendar-day, .calendar-nav-btn, .mobile-nav-toggle, .user-menu-trigger, .cta-button-v2, .login-signup-btn, .enroll-btn, .close-modal { min-height: 44px; min-width: 44px; }
    .calendar-day:active { transform: scale(0.95); transition: transform 0.1s ease; }
    .cta-button-v2:active, .enroll-btn:active { transform: translateY(1px) scale(0.98); }
    .horizontal-disciplines, .modal-content { -webkit-overflow-scrolling: touch; }
    form input[type="text"], form input[type="password"], form input[type="email"] { -webkit-appearance: none; border-radius: 8px; }
    input[type="text"], input[type="password"], input[type="email"] { font-size: 16px; }
    .event-modal { padding: 1rem; }
    .modal-content { max-height: 85vh; overflow-y: auto; }
    .carousel-image-container { touch-action: pan-y; }
    @media (prefers-reduced-motion: reduce) {
        * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    }
    @media (prefers-color-scheme: dark) {
        .nav-links { background-color: var(--background-dark); }
        .nav-links a { color: var(--text-light); }
        .mobile-nav-toggle .hamburger, .mobile-nav-toggle .hamburger::before, .mobile-nav-toggle .hamburger::after { background-color: var(--text-light); }
    }
}