/* ============================================================================
   e-5HOP — Liquid Glass layer
   Loads LAST so it refines the existing styles. Glassmorphism (frosted,
   translucent panels with depth + specular highlights) applied to the navbar,
   cards, forms, buttons, modals and loader, over a soft animated color field
   so the blur has something to refract.

   SWITCH PALETTE: change the data-palette on the <body> tag in index.php, e.g.
       <body data-palette="magenta">
   Options: aurora (default) | magenta | sunset | emerald | smoke
   ========================================================================== */

/* ---- ACTIVE PALETTE (default: Cyan Aurora) -------------------------------- */
:root {
    --accent:        #00d4ff;   /* primary neon            */
    --accent-2:      #7b5cff;   /* secondary / gradient end */
    --accent-glow:   rgba(0, 212, 255, 0.45);
    --orb-1:         rgba(0, 212, 255, 0.40);
    --orb-2:         rgba(123, 92, 255, 0.38);
    --page-bg:       #060810;
    --primary-color: #00d4ff;   /* base accent follows the palette */
    --secondary-color: #7b5cff;
    --on-accent: #0a0f17;       /* readable text color ON accent-colored fills */

    /* glass material */
    --glass-1:       rgba(255, 255, 255, 0.10);
    --glass-2:       rgba(255, 255, 255, 0.025);
    --glass-border:  rgba(255, 255, 255, 0.14);
    --glass-hi:      rgba(255, 255, 255, 0.55);   /* specular edge */
    --glass-blur:    18px;
    --glass-radius:  18px;
    --glass-shadow:  0 10px 36px rgba(0, 0, 0, 0.45);
}

/* ---- Alternative palettes ------------------------------------------------- */
body[data-palette="magenta"] {
    --accent: #ff2d95; --accent-2: #00d4ff;
    --primary-color: #ff2d95; --secondary-color: #00d4ff;
    --accent-glow: rgba(255, 45, 149, 0.45);
    --orb-1: rgba(255, 45, 149, 0.40); --orb-2: rgba(0, 212, 255, 0.32);
    --page-bg: #0b0610;
}
body[data-palette="sunset"] {
    --accent: #ff8a3d; --accent-2: #ff2d72;
    --primary-color: #ff8a3d; --secondary-color: #ff2d72;
    --accent-glow: rgba(255, 138, 61, 0.45);
    --orb-1: rgba(255, 138, 61, 0.38); --orb-2: rgba(255, 45, 114, 0.34);
    --page-bg: #100a08;
}
body[data-palette="emerald"] {
    --accent: #2bffb0; --accent-2: #1ec8ff;
    --primary-color: #2bffb0; --secondary-color: #1ec8ff;
    --accent-glow: rgba(43, 255, 176, 0.40);
    --orb-1: rgba(43, 255, 176, 0.34); --orb-2: rgba(30, 200, 255, 0.30);
    --page-bg: #06100d;
}
body[data-palette="smoke"] {
    --accent: #cfe6ff; --accent-2: #8aa0b8;
    --primary-color: #cfe6ff; --secondary-color: #8aa0b8;
    --accent-glow: rgba(207, 230, 255, 0.30);
    --orb-1: rgba(150, 180, 210, 0.22); --orb-2: rgba(120, 140, 170, 0.20);
    --page-bg: #0a0c10;
    --glass-1: rgba(255,255,255,0.08); --glass-border: rgba(255,255,255,0.16);
}

/* ---- Ambient color field (gives the glass something to refract) ----------- */
body { background: var(--page-bg) !important; position: relative; }
body::before {
    content: "";
    position: fixed;
    inset: -20vmax;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(38vmax 38vmax at 18% 22%, var(--orb-1), transparent 60%),
        radial-gradient(42vmax 42vmax at 82% 78%, var(--orb-2), transparent 62%),
        radial-gradient(30vmax 30vmax at 60% 12%, var(--accent-glow), transparent 65%);
    filter: blur(40px) saturate(130%);
    opacity: 0.55;
    animation: lg-drift 26s ease-in-out infinite alternate;
}
@keyframes lg-drift {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(2.5vmax, -2vmax, 0) scale(1.06); }
    100% { transform: translate3d(-2vmax, 2.5vmax, 0) scale(1.02); }
}

/* ---- The glass material (shared) ------------------------------------------ */
.header,
.track-card, .event-card, .blog-card,
.gallery-item, .gallery-carousel-item,
.modal-content, .lightbox-content,
.booking-form, .contact-form,
.footer {
    position: relative;
    background: linear-gradient(135deg, var(--glass-1), var(--glass-2)) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(165%);
    backdrop-filter: blur(var(--glass-blur)) saturate(165%);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.16);
    -webkit-box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.16);
}

/* rounded glass corners for the panels (not the full-width header/footer) */
.track-card, .event-card, .blog-card,
.gallery-item, .gallery-carousel-item,
.modal-content, .lightbox-content,
.booking-form, .contact-form {
    border-radius: var(--glass-radius);
    overflow: hidden;
    transition: transform .4s cubic-bezier(.2,.8,.2,1),
                box-shadow .4s ease, border-color .4s ease;
}

/* specular top-edge highlight that reads as a light catching the glass */
.track-card::before, .event-card::before, .blog-card::before,
.gallery-item::before, .booking-form::before, .contact-form::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(140deg,
        var(--glass-hi) 0%, transparent 28%,
        transparent 72%, rgba(255,255,255,0.10) 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    pointer-events: none;
    opacity: .8;
}

/* moving "liquid" sheen sweep on hover */
.track-card::after, .event-card::after, .blog-card::after, .gallery-item::after {
    content: "";
    position: absolute;
    top: 0; left: -60%;
    width: 55%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.18), transparent);
    transform: skewX(-18deg);
    transition: left .7s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
}
.track-card:hover, .event-card:hover, .blog-card:hover, .gallery-item:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--accent) 55%, var(--glass-border));
    box-shadow: 0 18px 50px rgba(0,0,0,0.5),
                0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent),
                0 0 40px var(--accent-glow),
                inset 0 1px 0 rgba(255,255,255,0.22);
}
.track-card:hover::after, .event-card:hover::after,
.blog-card:hover::after, .gallery-item:hover::after { left: 120%; }

/* ---- Header / navbar ------------------------------------------------------ */
/* The navbar needs a DARK frosted tint (not the light card glass) so it stays
   clearly visible as a fixed bar over every section. */
.header {
    position: fixed !important;       /* shared glass rule set this to relative — restore */
    top: 0; left: 0; right: 0; z-index: 1000;
    background: rgba(8, 10, 18, 0.6) !important;                 /* fallback */
    background: color-mix(in srgb, var(--page-bg) 78%, transparent) !important;
    -webkit-backdrop-filter: blur(22px) saturate(160%);
    backdrop-filter: blur(22px) saturate(160%);
    border-left: 0; border-right: 0; border-top: 0;
    border-bottom: 1px solid var(--glass-border);
    box-shadow: 0 6px 26px rgba(0, 0, 0, 0.40),
                inset 0 -1px 0 color-mix(in srgb, var(--accent) 22%, transparent) !important;
}
.nav-list li a { transition: color .25s ease, text-shadow .25s ease; }
.nav-list li a:hover { color: var(--accent); text-shadow: 0 0 14px var(--accent-glow); }

/* ---- Buttons as glass pills ---------------------------------------------- */
.btn, .btn-primary, button[type="submit"], .booking .btn, .contact .btn {
    position: relative;
    overflow: hidden;
    border-radius: 999px !important;
    border: 1px solid var(--glass-border) !important;
    -webkit-backdrop-filter: blur(8px) saturate(160%);
    backdrop-filter: blur(8px) saturate(160%);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 30%, var(--glass-1)),
        var(--glass-2)) !important;
    box-shadow: 0 6px 22px rgba(0,0,0,0.35),
                inset 0 1px 0 rgba(255,255,255,0.30) !important;
    transition: transform .25s ease, box-shadow .3s ease, background .3s ease;
}
.btn:hover, .btn-primary:hover, button[type="submit"]:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 55%, var(--glass-1)),
        color-mix(in srgb, var(--accent-2) 22%, var(--glass-2))) !important;
    box-shadow: 0 10px 30px var(--accent-glow),
                inset 0 1px 0 rgba(255,255,255,0.45) !important;
}
.btn::after, .btn-primary::after {
    content: ""; position: absolute; top: 0; left: -75%;
    width: 50%; height: 100%; transform: skewX(-20deg);
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.35), transparent);
    transition: left .6s ease;
}
.btn:hover::after, .btn-primary:hover::after { left: 130%; }

/* ---- Form fields as inset glass ------------------------------------------ */
input[type="text"], input[type="email"], input[type="tel"], input[type="date"],
input[type="number"], input[type="url"], textarea, select {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 12px !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: var(--text-color) !important;
    transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--accent) 70%, transparent) !important;
    background: rgba(255,255,255,0.09) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent),
                0 0 22px var(--accent-glow) !important;
}
::placeholder { color: rgba(255,255,255,0.45); }

/* ---- Hero social icons + section accents --------------------------------- */
/* Superellipse "squircle" (Samsung One UI). Rounded corners with gently
   curved sides. clip-path clips box-shadow, so the glow uses drop-shadow()
   which follows the curve. Shape exponent n=3. */
.hero-social { gap: 1rem; flex-wrap: wrap; max-width: 100%; }
.hero-social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 54px; height: 54px;
    border-radius: 32%;                       /* fallback if clip-path unsupported */
    -webkit-clip-path: polygon(100.00% 50.00%, 99.93% 58.12%, 99.71% 62.87%, 99.36% 66.82%, 98.86% 70.31%, 98.21% 73.46%, 97.43% 76.36%, 96.50% 79.03%, 95.43% 81.50%, 94.21% 83.79%, 92.85% 85.91%, 91.34% 87.88%, 89.69% 89.69%, 87.88% 91.34%, 85.91% 92.85%, 83.79% 94.21%, 81.50% 95.43%, 79.03% 96.50%, 76.36% 97.43%, 73.46% 98.21%, 70.31% 98.86%, 66.82% 99.36%, 62.87% 99.71%, 58.12% 99.93%, 50.00% 100.00%, 41.88% 99.93%, 37.13% 99.71%, 33.18% 99.36%, 29.69% 98.86%, 26.54% 98.21%, 23.64% 97.43%, 20.97% 96.50%, 18.50% 95.43%, 16.21% 94.21%, 14.09% 92.85%, 12.12% 91.34%, 10.31% 89.69%, 8.66% 87.88%, 7.15% 85.91%, 5.79% 83.79%, 4.57% 81.50%, 3.50% 79.03%, 2.57% 76.36%, 1.79% 73.46%, 1.14% 70.31%, 0.64% 66.82%, 0.29% 62.87%, 0.07% 58.12%, 0.00% 50.00%, 0.07% 41.88%, 0.29% 37.13%, 0.64% 33.18%, 1.14% 29.69%, 1.79% 26.54%, 2.57% 23.64%, 3.50% 20.97%, 4.57% 18.50%, 5.79% 16.21%, 7.15% 14.09%, 8.66% 12.12%, 10.31% 10.31%, 12.12% 8.66%, 14.09% 7.15%, 16.21% 5.79%, 18.50% 4.57%, 20.97% 3.50%, 23.64% 2.57%, 26.54% 1.79%, 29.69% 1.14%, 33.18% 0.64%, 37.13% 0.29%, 41.88% 0.07%, 50.00% 0.00%, 58.12% 0.07%, 62.87% 0.29%, 66.82% 0.64%, 70.31% 1.14%, 73.46% 1.79%, 76.36% 2.57%, 79.03% 3.50%, 81.50% 4.57%, 83.79% 5.79%, 85.91% 7.15%, 87.88% 8.66%, 89.69% 10.31%, 91.34% 12.12%, 92.85% 14.09%, 94.21% 16.21%, 95.43% 18.50%, 96.50% 20.97%, 97.43% 23.64%, 98.21% 26.54%, 98.86% 29.69%, 99.36% 33.18%, 99.71% 37.13%, 99.93% 41.88%);
            clip-path: polygon(100.00% 50.00%, 99.93% 58.12%, 99.71% 62.87%, 99.36% 66.82%, 98.86% 70.31%, 98.21% 73.46%, 97.43% 76.36%, 96.50% 79.03%, 95.43% 81.50%, 94.21% 83.79%, 92.85% 85.91%, 91.34% 87.88%, 89.69% 89.69%, 87.88% 91.34%, 85.91% 92.85%, 83.79% 94.21%, 81.50% 95.43%, 79.03% 96.50%, 76.36% 97.43%, 73.46% 98.21%, 70.31% 98.86%, 66.82% 99.36%, 62.87% 99.71%, 58.12% 99.93%, 50.00% 100.00%, 41.88% 99.93%, 37.13% 99.71%, 33.18% 99.36%, 29.69% 98.86%, 26.54% 98.21%, 23.64% 97.43%, 20.97% 96.50%, 18.50% 95.43%, 16.21% 94.21%, 14.09% 92.85%, 12.12% 91.34%, 10.31% 89.69%, 8.66% 87.88%, 7.15% 85.91%, 5.79% 83.79%, 4.57% 81.50%, 3.50% 79.03%, 2.57% 76.36%, 1.79% 73.46%, 1.14% 70.31%, 0.64% 66.82%, 0.29% 62.87%, 0.07% 58.12%, 0.00% 50.00%, 0.07% 41.88%, 0.29% 37.13%, 0.64% 33.18%, 1.14% 29.69%, 1.79% 26.54%, 2.57% 23.64%, 3.50% 20.97%, 4.57% 18.50%, 5.79% 16.21%, 7.15% 14.09%, 8.66% 12.12%, 10.31% 10.31%, 12.12% 8.66%, 14.09% 7.15%, 16.21% 5.79%, 18.50% 4.57%, 20.97% 3.50%, 23.64% 2.57%, 26.54% 1.79%, 29.69% 1.14%, 33.18% 0.64%, 37.13% 0.29%, 41.88% 0.07%, 50.00% 0.00%, 58.12% 0.07%, 62.87% 0.29%, 66.82% 0.64%, 70.31% 1.14%, 73.46% 1.79%, 76.36% 2.57%, 79.03% 3.50%, 81.50% 4.57%, 83.79% 5.79%, 85.91% 7.15%, 87.88% 8.66%, 89.69% 10.31%, 91.34% 12.12%, 92.85% 14.09%, 94.21% 16.21%, 95.43% 18.50%, 96.50% 20.97%, 97.43% 23.64%, 98.21% 26.54%, 98.86% 29.69%, 99.36% 33.18%, 99.71% 37.13%, 99.93% 41.88%);
    font-size: 1.35rem; line-height: 1; color: #eaf2ff; text-decoration: none;
    background: linear-gradient(140deg, rgba(255,255,255,0.16), rgba(255,255,255,0.035));
    -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.40),
                inset 0 0 0 1px rgba(255,255,255,0.16),
                inset 0 -7px 14px rgba(0,0,0,0.20);
    filter: drop-shadow(0 6px 16px rgba(0,0,0,0.40));
    position: relative; overflow: hidden;
    transition: transform .28s ease, filter .3s ease, color .25s ease;
}
.hero-social a::before {
    content: ""; position: absolute; left: 12%; right: 12%; top: 7%; height: 38%;
    border-radius: 30%; pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0.42), rgba(255,255,255,0));
}
.hero-social a:hover {
    transform: translateY(-4px) scale(1.07);
    color: var(--accent);
    filter: drop-shadow(0 10px 22px var(--accent-glow));
}
.hero-social a:active { transform: translateY(-1px) scale(1.02); }

.section-title::after, .hero-title {
    text-shadow: 0 0 28px var(--accent-glow);
}

/* ---- Loader --------------------------------------------------------------- */
.page-loader { background: var(--page-bg) !important; }
.loader-content {
    padding: 34px 46px;
    border-radius: 22px;
    background: linear-gradient(135deg, var(--glass-1), var(--glass-2));
    -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.18);
}
.loader-spinner { border-top-color: var(--accent) !important; }

/* ---- Scrollbar polish ----------------------------------------------------- */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--accent) 45%, rgba(255,255,255,0.12));
    border-radius: 999px;
}

/* ---- Accessibility: honor reduced motion --------------------------------- */
@media (prefers-reduced-motion: reduce) {
    body::before { animation: none; }
    .track-card, .event-card, .blog-card, .gallery-item,
    .btn, .btn-primary, .hero-social a { transition: none; }
    .track-card::after, .event-card::after, .blog-card::after,
    .gallery-item::after, .btn::after, .btn-primary::after { display: none; }
}

/* ---- Fallback when backdrop-filter is unsupported ------------------------- */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .header, .track-card, .event-card, .blog-card, .gallery-item,
    .modal-content, .booking-form, .contact-form, .footer, .loader-content {
        background: rgba(20, 22, 32, 0.92) !important;
    }
}

/* ---- Mobile: keep everything (esp. the social row) inside the screen ----- */
html, body { overflow-x: hidden; max-width: 100%; }

@media (max-width: 768px) {
    .hero-social { gap: 0.7rem; }
    .hero-social a { width: 50px; height: 50px; font-size: 1.2rem; }
}
@media (max-width: 480px) {
    .hero-social { gap: 0.55rem; }
    .hero-social a { width: 44px; height: 44px; font-size: 1.05rem; }
}
@media (max-width: 360px) {
    .hero-social a { width: 40px; height: 40px; }
}
