
/* --- Update body font-family --- */
body {
    background-color: var(--dark-bg);
    color: var(--text-main);
    font-family: 'CustomSpeedFont', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* --- Core Variable Ecosystem --- */


:root {
    --primary-color: #ff2a2a;      /* High Vis Neon Crimson */
    --primary-hover: #cc0000;
    --dark-bg: #090909;           /* Pure Void Black */
    --card-bg: #141414;           /* Heavy Asphalt Grey */
    --light-bg: #1a1a1a;          /* Engine block Grey */
    --text-main: #f5f5f5;
    --text-muted: #999999;
    --border-color: #262626;
}

/* --- Base Layout & Reset --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

body {
    background-color: var(--dark-bg);
    color: var(--text-main);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.section {
    padding: 6rem 0;
}

.bg-dark {
    background-color: var(--light-bg);
}

.text-center { text-align: center; }
.margin-top-2 { margin-top: 2rem; }

h2 {
    font-size: 2.5rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    margin-bottom: 0.5rem;
}

.section-header {
    text-align: center;
    margin-bottom: 4rem;
}
.section-header p {
    color: var(--text-muted);
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

/* --- Announcement Bar --- */
.announcement-bar {
    background: var(--primary-color);
    color: #fff;
    text-align: center;
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 1001;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- Premium Navigation Header --- */
header {
    background: rgba(9, 9, 9, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border-color);
    position: sticky;
    top: 37px; 
    z-index: 1000;
    padding: 1.2rem 0;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo-zone {
    display: flex;
    flex-direction: column;
}

.logo {
    color: #fff;
    text-decoration: none;
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: -1px;
}
.logo i { color: var(--primary-color); margin-right: 5px;}
.logo span { color: var(--primary-color); }

.slogan-tag {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--primary-color);
    font-weight: 700;
    letter-spacing: 1px;
    margin-top: -2px;
}

header nav ul {
    display: flex;
    list-style: none;
    align-items: center;
}

header nav ul li { margin-left: 1.5rem; }

header nav ul li a {
    color: var(--text-main);
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    transition: color 0.2s;
}

header nav ul li a:hover { color: var(--primary-color); }

.nav-btn {
    background: var(--primary-color);
    padding: 0.5rem 1.2rem;
    border-radius: 4px;
}
.nav-btn:hover { background: var(--primary-hover) !important; color: #fff !important;}

/* --- Advanced Hero Engine --- */
.hero {
    position: relative;
    height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden; /* Prevents video overflow outside container */
}

/* Background Video Styling */
.hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0;
    transform: translate(-50%, -50%);
    object-fit: cover; /* Ensures video scales seamlessly across all screens */
}

.hero-overlay {
    position: absolute;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background: linear-gradient(to bottom, rgba(9,9,9,0.3), rgba(9,9,9,0.98));
    z-index: 1; /* Sits above video, behind text */
}

.hero-content {
    position: relative;
    z-index: 2; /* Ensures text floats on top of video and overlay */
    text-align: center;
    max-width: 850px;
    padding: 0 1rem;
}

.badge-tag {
    background: rgba(255, 42, 42, 0.15);
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    padding: 0.4rem 1.2rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    font-weight: 800;
    border-radius: 50px;
    letter-spacing: 1.5px;
}

.hero-content h2 {
    font-size: 4.5rem;
    font-weight: 900;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -2px;
}
.hero-content h2 .highlight {
    color: var(--primary-color);
    text-shadow: 0 0 20px rgba(255,42,42,0.4);
}

.hero-content p {
    font-size: 1.3rem;
    color: #ccc;
    margin-bottom: 2.5rem;
    line-height: 1.6;
}

/* --- Buttons Framework --- */
.btn {
    display: inline-block;
    padding: 0.9rem 2.2rem;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.85rem;
    border-radius: 4px;
    transition: all 0.2s ease-in-out;
    border: 2px solid transparent;
}
.btn-primary { background: var(--primary-color); color: #fff; }
.btn-primary:hover { background: var(--primary-hover); transform: translateY(-2px); }
.btn-secondary { border-color: #fff; color: #fff; margin-left: 1rem; }
.btn-secondary:hover { background: #fff; color: #000; transform: translateY(-2px); }

/* --- Stats Dashboard --- */
.stats-bar {
    background: var(--card-bg);
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    padding: 2.5rem 0;
}
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
.stat-card i { color: var(--primary-color); font-size: 2rem; margin-bottom: 0.5rem; }
.stat-card h3 { font-size: 2.2rem; font-weight: 800; color: #fff; }
.stat-card p { color: var(--text-muted); font-size: 0.85rem; text-transform: uppercase; font-weight: bold;}

/* --- About Split Section --- */
.about-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.about-text h2 { margin-bottom: 1.5rem; }
.about-text p { color: var(--text-muted); font-size: 1.1rem; margin-bottom: 2rem; }
.perks-list .perk { margin-bottom: 1rem; font-weight: 700; display: flex; align-items: center; }
.perks-list .perk i { color: var(--primary-color); margin-right: 12px; font-size: 1.2rem; }
.about-image img { width: 100%; border-radius: 6px; border: 1px solid var(--border-color); }

/* --- Feature Rich Rides Architecture --- */
.rides-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.ride-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 6px; overflow: hidden; position: relative; transition: all 0.2s; }
.ride-card:hover { transform: translateY(-5px); border-color: var(--primary-color); }
.ride-badge { position: absolute; top: 15px; right: 15px; padding: 0.3rem 0.8rem; border-radius: 4px; font-size: 0.75rem; font-weight: bold; text-transform: uppercase; }
.tag-green { background: #113818; color: #5eff5e; }
.tag-orange { background: #4d3a00; color: #ffd24d; }
.tag-red { background: #4d0b0b; color: #ff5e5e; }
.ride-card-content { padding: 2.2rem 1.5rem 1.5rem 1.5rem; }
.ride-date { color: var(--primary-color); font-weight: bold; font-size: 0.85rem; text-transform: uppercase; display: block; margin-bottom: 0.5rem; }
.ride-card h3 { font-size: 1.4rem; color: #fff; margin-bottom: 1rem; }
.route-details { font-size: 0.95rem; color: var(--text-muted); margin-bottom: 1.5rem; }
.ride-meta { border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); padding: 0.8rem 0; margin-bottom: 1.5rem; display: flex; justify-content: space-between; font-size: 0.85rem; color: var(--text-muted); }
.btn-card { display: block; text-align: center; background: transparent; color: #fff; border: 1px solid var(--border-color); padding: 0.6rem; border-radius: 4px; text-decoration: none; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; transition: all 0.2s; }
.btn-card:hover { background: #fff; color: #000; }

/* --- NEW: High Octane Photo Gallery System --- */
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-top: 1rem; }
.gallery-item { position: relative; border-radius: 6px; aspect-ratio: 4/3; border: 1px solid var(--border-color); overflow: hidden; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.gallery-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 1rem; background: linear-gradient(transparent, rgba(0,0,0,0.9)); color: #fff; font-size: 0.85rem; font-weight: 700; opacity: 0; transition: opacity 0.3s; }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item:hover .gallery-caption { opacity: 1; }

/* --- NEW: Riders Support Desk Framework --- */
.support-board { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.5rem; }
.support-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 6px; display: flex; flex-direction: column; overflow: hidden; }
.support-status { padding: 0.5rem 1.5rem; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; }
.alert-red { background: #3a0d0d; color: #ff5e5e; }
.alert-blue { background: #0d263a; color: #5eb5ff; }
.support-body { padding: 1.5rem; }
.support-body h3 { font-size: 1.3rem; margin-bottom: 0.3rem; color: #fff; }
.support-meta { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 1rem; }
.support-desc { font-size: 1rem; color: #ddd; margin-bottom: 1.5rem; line-height: 1.5; }
.support-replies { font-size: 0.85rem; font-weight: 700; color: var(--primary-color); border-top: 1px solid var(--border-color); padding-top: 1rem; }

/* --- Rule Accordion List --- */
.subtitle { color: var(--text-muted); margin-bottom: 3rem; }
.code-box { max-width: 800px; margin: 0 auto; }
.rules-accordion { max-width: 700px; margin: 2rem auto 0 auto; }
.rule-item { background: var(--card-bg); padding: 1.5rem; border-radius: 6px; margin-bottom: 1rem; border-left: 4px solid var(--primary-color); }
.rule-item h4 { font-size: 1.2rem; color: #fff; margin-bottom: 0.5rem;}
.rule-item p { color: var(--text-muted); font-size: 0.95rem; }

/* --- Structural Form CSS --- */
.contact-section { display: flex; justify-content: center; }
.form-container { background: var(--card-bg); width: 100%; max-width: 800px; padding: 3.5rem; border-radius: 8px; border: 1px solid var(--border-color); }
.form-container h2 { text-align: center; margin-bottom: 0.5rem; }
.form-container p { text-align: center; color: var(--text-muted); margin-bottom: 2.5rem; }
.form-row { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; }
.form-group { flex: 1; display: flex; flex-direction: column; }
.form-group label { margin-bottom: 0.5rem; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; color: #bbb; }
.form-group input, .form-group select { background: var(--dark-bg); border: 1px solid var(--border-color); padding: 0.85rem; border-radius: 4px; color: #fff; font-size: 1rem; }
.form-group input:focus, .form-group select:focus { outline: none; border-color: var(--primary-color); }
.form-checkbox { display: flex; align-items: flex-start; gap: 10px; margin: 2rem 0; }
.form-checkbox input { margin-top: 4px; }
.form-checkbox label { font-size: 0.95rem; color: #ccc; }
.btn-block { width: 100%; display: block; text-align: center; cursor: pointer;}

/* --- Modular Footer Ecosystem --- */
footer { background: #040404; border-top: 1px solid var(--border-color); padding: 4rem 0 2rem 0; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; margin-bottom: 3rem;}
footer h3 { font-size: 1.4rem; color: #fff; margin-bottom: 0.2rem; }
.footer-slogan { font-size: 0.85rem; color: var(--primary-color); font-weight: 800; text-transform: uppercase; margin-bottom: 1rem; letter-spacing: 0.5px;}
footer h4 { color: #fff; margin-bottom: 1rem; font-size: 1rem; text-transform: uppercase; font-weight: 800; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 0.6rem; }
.footer-links a { color: var(--text-muted); text-decoration: none; font-size: 0.95rem; font-weight: 600;}
.footer-links a:hover { color: var(--primary-color); }
.social-icons a { color: #fff; font-size: 1.5rem; margin-right: 1.2rem; transition: color 0.2s; }
.social-icons a:hover { color: var(--primary-color); }
.copyright { text-align: center; color: #444; border-top: 1px solid var(--border-color); padding-top: 2rem; font-size: 0.85rem; font-weight: 600; }

/* --- Responsive Breakpoints --- */
@media (max-width: 992px) {
    .rides-grid { grid-template-columns: 1fr 1fr; }
    .gallery-grid { grid-template-columns: 1fr 1fr; }
    .about-wrapper { grid-template-columns: 1fr; gap: 2rem; }
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 768px) {
    header { top: 60px; }
    .nav-container { flex-direction: column; gap: 1rem; text-align: center; }
    header nav ul { flex-wrap: wrap; justify-content: center; gap: 1rem; }
    header nav ul li { margin-left: 0; }
    .hero-content h2 { font-size: 2.8rem; }
    .rides-grid, .gallery-grid { grid-template-columns: 1fr; }
    .form-row { flex-direction: column; gap: 1.5rem; margin-bottom: 0; }
    .form-group { margin-bottom: 1.5rem; }
    .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
}
/* --- Desktop Hover Behavior --- */
@media (min-width: 993px) {
    .has-dropdown:hover .dropdown-menu {
        display: block;
    }
}

/* --- Mobile / Touch Device Styles (max-width: 992px) --- */
@media (max-width: 992px) {
    .dropdown-menu {
        position: static;
        width: 100%;
        box-shadow: none;
        display: none; /* Hidden by default on mobile */
        max-height: 280px; /* Constrain max-height for easy mobile scrolling */
        overflow-y: auto;
        margin-top: 0.5rem;
    }

    /* JavaScript will toggle this class when tapped on mobile */
    .has-dropdown.active .dropdown-menu {
        display: block;
    }

    .has-dropdown .menu-title {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding: 0.8rem 0;
        cursor: pointer;
    }

    /* Rotate chevron icon when expanded */
    .has-dropdown.active .menu-title i {
        transform: rotate(180deg);
        transition: transform 0.2s ease;
    }
}