
:root {
    --elite-black: #06090E;
    --elite-dark: #0B1118;
    --elite-card: #111822;
    --elite-gold: #D4AF37;
    --elite-gold-hover: #C5A028;
    --elite-border: rgba(212, 175, 55, 0.2);
    --elite-text: #94A3B8;
}

body {
    font-family: 'Inter', sans-serif;
    color: var(--elite-text);
    background-color: var(--elite-black);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-x: hidden;
}

.font-playfair { font-family: 'Playfair Display', serif; }
.tracking-widest { letter-spacing: 0.18em; }
.tracking-wide { letter-spacing: 0.05em; }
.uppercase { text-transform: uppercase; }
.fs-7 { font-size: 0.75rem; }
.text-gold { color: var(--elite-gold) !important; }
.bg-elite-dark { background-color: var(--elite-dark); }
.bg-elite-card { background-color: var(--elite-card); }

.py-8 { padding-top: 8rem; padding-bottom: 8rem; }
.mb-6 { margin-bottom: 5rem; }

/* Elite Buttons */
.btn-elite-gold {
    display: inline-block;
    background-color: var(--elite-gold);
    color: #000;
    padding: 1rem 2.8rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    text-decoration: none;
    border: 1px solid var(--elite-gold);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-elite-gold:hover {
    background-color: transparent;
    color: var(--elite-gold);
}

.btn-elite-outline {
    display: inline-block;
    background-color: transparent;
    color: #fff;
    padding: 1rem 2.8rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.2);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-elite-outline:hover {
    background-color: #fff;
    color: #000;
    border-color: #fff;
}
.booking-format-picker {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    border: 0;
}
.booking-format-picker legend {
    float: none;
    width: auto;
    margin-bottom: 0.75rem;
    color: var(--elite-text);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.booking-format-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}
.booking-format-option {
    position: relative;
    min-width: 0;
    cursor: pointer;
}
.booking-format-input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.booking-format-card {
    display: flex;
    min-height: 72px;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--elite-dark);
    border: 1px solid rgba(255,255,255,0.12);
    transition: border-color 0.25s ease, background-color 0.25s ease;
}
.booking-format-card > i:first-child {
    flex: 0 0 1.25rem;
    color: var(--elite-text);
    font-size: 1.05rem;
    text-align: center;
}
.booking-format-copy {
    display: block;
    min-width: 0;
}
.booking-format-copy strong,
.booking-format-copy small {
    display: block;
}
.booking-format-copy strong {
    color: #fff;
    font-size: 0.85rem;
}
.booking-format-copy small {
    margin-top: 0.15rem;
    color: var(--elite-text);
    font-size: 0.68rem;
    line-height: 1.3;
}
.booking-format-check {
    margin-left: auto;
    color: var(--elite-gold);
    opacity: 0;
}
.booking-format-input:checked + .booking-format-card {
    background: rgba(212,175,55,0.08);
    border-color: var(--elite-gold);
}
.booking-format-input:checked + .booking-format-card > i:first-child {
    color: var(--elite-gold);
}
.booking-format-input:checked + .booking-format-card .booking-format-check {
    opacity: 1;
}
.booking-format-input:focus-visible + .booking-format-card {
    outline: 2px solid var(--elite-gold);
    outline-offset: 3px;
}
@media (max-width: 575.98px) {
    .booking-format-options {
        grid-template-columns: 1fr;
    }
}

/* Navbar */
.elite-nav {
    background: rgba(6, 9, 14, 0.85);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255,255,255,0.05);
    transition: all 0.4s ease;
}
.elite-nav.scrolled {
    background: rgba(6, 9, 14, 0.98);
    border-bottom-color: var(--elite-border);
}
.nav-link {
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 500;
    transition: color 0.3s;
}
.nav-link:hover { color: var(--elite-gold) !important; }

/* Hero sections */
.hero-elite { height: 100vh; position: relative; }
.page-header-elite { height: 50vh; position: relative; overflow: hidden; }
.parallax-bg, .parallax-bg-sm {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 130%;
    object-fit: cover;
    z-index: 0;
    will-change: transform;
}


.hero-overlay-elite {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(135deg, rgba(6,9,14,0.95) 0%, rgba(6,9,14,0.75) 100%);
    z-index: 1;
}
.hero-gold-line {
    width: 60px; height: 2px;
    background-color: var(--elite-gold);
}
.video-embed-wrap {
    max-width: 960px;
    margin: 0 auto;
}
.elite-video-frame {
    overflow: hidden;
    background-color: #000;
    border: 1px solid var(--elite-border);
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}
.elite-video-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
}
.text-shadow-elite { text-shadow: 0 20px 40px rgba(0,0,0,0.5); }

/* Elite Cards */
.elite-card {
    background-color: var(--elite-card);
    border: 1px solid rgba(255,255,255,0.05);
    transition: all 0.4s ease;
    position: relative;
}
.elite-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 2px;
    background-color: transparent;
    transition: background-color 0.4s ease;
}
.elite-card:hover {
    transform: translateY(-6px);
    border-color: var(--elite-border);
    box-shadow: 0 30px 60px rgba(0,0,0,0.4);
}
.elite-card:hover::before { background-color: var(--elite-gold); }

.card-icon-box {
    font-size: 2rem;
    color: var(--elite-gold);
}
.elite-link {
    color: #fff;
    text-decoration: none;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    transition: color 0.3s;
}
.elite-link:hover { color: var(--elite-gold); }

/* Team Section BW to Color */
.bw-img {
    filter: grayscale(100%) contrast(110%);
    transition: filter 0.8s ease, transform 0.8s ease;
}
.team-card-elite:hover .bw-img {
    filter: grayscale(0%) contrast(100%);
    transform: scale(1.03);
}
.team-img-wrap { overflow: hidden; }
.elite-img-border { border: 1px solid var(--elite-border); }

/* Forms Elite */
.elite-input {
    background-color: transparent !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 0 !important;
    color: #fff !important;
    padding: 1rem;
}
.elite-input:focus {
    border-color: var(--elite-gold) !important;
    box-shadow: none !important;
}
.elite-input[type="date"],
.elite-input[type="time"] {
    color-scheme: dark;
}
.elite-floating > label {
    color: #64748B !important;
    font-size: 0.85rem;
}
.elite-floating > label::after {
    background-color: var(--elite-card) !important;
}
.elite-map-border { border: 1px solid var(--elite-border); }
.elite-map-frame {
    height: 100%;
    min-height: 390px;
    padding: 4px;
    overflow: hidden;
    background-color: var(--elite-card);
    border: 1px solid var(--elite-border);
    border-radius: 4px;
}
.elite-map-frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 380px;
    border: 0;
    border-radius: 2px;
}
.elite-map-info {
    padding: 2.5rem;
    background-color: var(--elite-card);
    border: 1px solid var(--elite-border);
    border-radius: 4px;
}
.map-access-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.map-access-list li {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}
.map-access-list li > i {
    width: 1.25rem;
    margin-top: 0.2rem;
    color: var(--elite-gold);
    text-align: center;
}
.map-access-list strong,
.map-access-list small {
    display: block;
}
.map-access-list strong {
    margin-bottom: 0.2rem;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
}
.map-access-list small {
    color: var(--elite-text);
    font-size: 0.78rem;
}
.map-directions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    margin-top: 2rem;
}
.shadow-elite { box-shadow: 0 30px 60px rgba(0,0,0,0.6); }

@media (max-width: 991.98px) {
    .elite-map-frame,
    .elite-map-frame iframe {
        min-height: 340px;
    }
}

@media (max-width: 575.98px) {
    .elite-map-frame,
    .elite-map-frame iframe {
        min-height: 280px;
    }
    .elite-map-info {
        padding: 1.5rem;
    }
}

/* Footer */
.footer-elite {
    background-color: var(--elite-black);
    border-top: 1px solid rgba(212, 175, 55, 0.15);
    padding-top: 5rem;
}
.footer-links a {
    color: var(--elite-text);
    text-decoration: none;
    transition: color 0.3s ease;
}
.footer-links a:hover,
.footer-links a:focus-visible {
    color: var(--elite-gold);
}
.social-icon-box {
    width: 40px; height: 40px;
    background-color: var(--elite-card);
    color: var(--elite-gold);
    display: flex; align-items: center; justify-content: center;
    border: 1px solid rgba(255,255,255,0.05);
    text-decoration: none;
    transition: all 0.3s;
}
.footer-links a:focus-visible,
.social-icon-box:focus-visible {
    outline: 2px solid var(--elite-gold);
    outline-offset: 3px;
}
.social-icon-box:hover {
    background-color: var(--elite-gold);
    color: #000;
    border-color: var(--elite-gold);
}

/* Scroll reveal */
.reveal { opacity: 0; transition: all 1s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.active { opacity: 1; transform: translate(0, 0); }
.fade-bottom { transform: translateY(30px); }
.fade-left { transform: translateX(-30px); }
.fade-right { transform: translateX(30px); }
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
