:root {
    --golden-red: #c00;
    --golden-ink: #0a0a0a;
    --golden-paper: #f7f3ec;
    --golden-sun: #f5b942;
}

.theme-light {
    background: #f7f3ec;
    color: #171411;
}

.theme-light .form-section-wrap {
    background:
        radial-gradient(circle at 16% 10%, rgba(245, 185, 66, 0.24), transparent 28%),
        linear-gradient(135deg, #fffaf1 0%, #f2eadf 48%, #e6eef0 100%);
}

.theme-light .form-section-glass {
    background: rgba(255, 255, 255, 0.78);
    border-color: rgba(20, 20, 20, 0.12);
    box-shadow: 0 24px 70px rgba(67, 47, 24, 0.16);
}

.theme-light .form-section-glass label,
.theme-light .entry-cost,
.theme-light .checkbox-item label,
.theme-light .recupera-modal-form label,
.theme-light .recupera-modal-result .recupera-msg,
.theme-light .recupera-modal-close {
    color: #29241f;
}

.theme-light .form-section-glass input[type="text"],
.theme-light .form-section-glass input[type="email"],
.theme-light .form-section-glass input[type="tel"] {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(41, 36, 31, 0.18);
    color: #161310;
}

.theme-light .form-section-glass input::placeholder {
    color: #867b6d;
}

.theme-light .form-section-glass .btn {
    border-color: #171411;
    box-shadow: 0 12px 28px rgba(204, 0, 0, 0.16);
}

.theme-light .form-section-glass .btn:hover {
    background: #171411;
    color: #fff;
}

.theme-light .next-events {
    background: #fffaf1;
    color: #171411;
}

.theme-light .event-card {
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(41, 36, 31, 0.12);
    box-shadow: 0 18px 48px rgba(67, 47, 24, 0.12);
}

.theme-light .event-card h3 {
    color: #171411;
}

.theme-light .event-subtitle {
    color: #6f6254;
}

.theme-light .event-details li {
    color: #2f2923;
}

.theme-light .event-icon img {
    filter: invert(15%) sepia(10%) saturate(700%) hue-rotate(340deg);
}

.theme-light .site-footer {
    background: #171411;
}

.theme-light .cookie-banner,
.theme-light .recupera-modal-box {
    background: rgba(255, 250, 241, 0.96);
    color: #171411;
    border-color: rgba(204, 0, 0, 0.35);
}

.theme-light .recupera-modal-overlay {
    background: rgba(247, 243, 236, 0.84);
}

.theme-light .recupera-modal-form input[type="email"] {
    background: #fff;
    color: #171411;
    border-color: rgba(41, 36, 31, 0.2);
}

.event-switch-float {
    position: fixed;
    top: 22px;
    right: 22px;
    z-index: 1200;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 196px;
    max-width: calc(100vw - 44px);
    min-height: 52px;
    padding: 10px 14px 10px 48px;
    border-radius: 999px;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.34);
    isolation: isolate;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.event-switch-float:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.42);
}

.event-switch-float.to-morning {
    background: rgba(18, 18, 18, 0.82);
    color: #fff;
}

.event-switch-float.to-night {
    background: rgba(255, 250, 241, 0.86);
    color: #171411;
    border-color: rgba(23, 20, 17, 0.18);
}

.event-switch-orb {
    position: absolute;
    left: 0;
    top: 50%;
    z-index: 2;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 50%;
    overflow: visible;
    transform: translate3d(0, -50%, 0);
    animation: eventOrbOrbit 5.8s linear infinite;
}

.to-morning .event-switch-orb {
    background: radial-gradient(circle at 32% 32%, #fff8cf 0 18%, #f5b942 19% 42%, #d8741f 62%, #20130d 100%);
    box-shadow: 0 0 22px rgba(245, 185, 66, 0.76), 0 0 42px rgba(216, 116, 31, 0.28);
}

.to-night .event-switch-orb {
    background: radial-gradient(circle at 34% 28%, #dfe8ff 0 17%, #6b7da4 18% 38%, #161c2a 62%, #020306 100%);
    box-shadow: 0 0 20px rgba(107, 125, 164, 0.58), 0 0 40px rgba(25, 32, 48, 0.36);
}

.event-switch-orb::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 62%;
    width: 64px;
    height: 12px;
    border-radius: 999px;
    opacity: 0.72;
    transform: translateY(-50%) rotate(-4deg);
    filter: blur(6px);
    pointer-events: none;
}

.to-morning .event-switch-orb::before {
    background: linear-gradient(90deg, transparent, rgba(245, 185, 66, 0.66));
}

.to-night .event-switch-orb::before {
    background: linear-gradient(90deg, transparent, rgba(107, 125, 164, 0.58));
}

.event-switch-orb::after {
    content: "";
    position: absolute;
    inset: 6px 0 6px 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.22);
    filter: blur(1px);
}

.event-switch-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.05;
    position: relative;
    z-index: 1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38);
}

.event-switch-copy span {
    font-size: 11px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    opacity: 0.72;
}

.event-switch-copy strong {
    margin-top: 3px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 19px;
    line-height: 1;
    letter-spacing: 1px;
    font-weight: 400;
}

.to-night .event-switch-copy {
    text-shadow: 0 2px 14px rgba(255, 255, 255, 0.42);
}

.event-transition-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.22s ease, visibility 0.22s ease;
}

.event-transition-overlay.is-active {
    opacity: 1;
    visibility: visible;
}

.event-transition-overlay.toward-morning {
    background:
        radial-gradient(circle at 50% 46%, rgba(245, 185, 66, 0.62), transparent 18%),
        linear-gradient(180deg, #08080b 0%, #322115 45%, #f5b942 100%);
}

.event-transition-overlay.toward-night {
    background:
        radial-gradient(circle at 50% 46%, rgba(92, 107, 148, 0.48), transparent 18%),
        linear-gradient(180deg, #fff5dc 0%, #53627e 48%, #05060a 100%);
}

.event-transition-globe {
    grid-area: 1 / 1;
    width: min(38vw, 220px);
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        linear-gradient(90deg, transparent 48%, rgba(255, 255, 255, 0.22) 49%, transparent 51%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.16) 0 2px, transparent 2px 28px),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.12) 0 2px, transparent 2px 30px),
        radial-gradient(circle at 36% 30%, #f7f3ec 0 7%, #d9a43b 18%, #1b2438 58%, #05060a 100%);
    box-shadow: inset -28px -18px 54px rgba(0, 0, 0, 0.45), 0 0 70px rgba(245, 185, 66, 0.42);
    animation: globeSpin 0.95s cubic-bezier(.42, 0, .2, 1) forwards;
}

.toward-night .event-transition-globe {
    background:
        linear-gradient(90deg, transparent 48%, rgba(255, 255, 255, 0.16) 49%, transparent 51%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.12) 0 2px, transparent 2px 28px),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.1) 0 2px, transparent 2px 30px),
        radial-gradient(circle at 36% 30%, #e7eeff 0 7%, #53627e 23%, #121727 62%, #030407 100%);
    box-shadow: inset -28px -18px 54px rgba(0, 0, 0, 0.52), 0 0 70px rgba(19, 24, 39, 0.54);
}

.event-transition-brand {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: min(72vw, 460px);
    text-align: center;
    transform: translateY(130px);
}

.toward-morning .event-transition-brand {
    transform: translateY(210px);
}

.event-transition-brand img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 150px;
    object-fit: contain;
    filter: drop-shadow(0 8px 26px rgba(0, 0, 0, 0.32));
}

.toward-night .event-transition-brand img {
    max-width: min(48vw, 240px);
}

.event-transition-brand span {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.6rem, 5vw, 3rem);
    line-height: 1;
    letter-spacing: 3px;
    color: #fff;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.42);
}

@keyframes eventSwitchPulse {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@keyframes eventOrbOrbit {
    0%, 100% {
        transform: translate3d(0, -50%, 0) rotate(0deg) scale(1);
        z-index: 2;
        opacity: 1;
    }
    12.5% {
        transform: translate3d(22px, -70%, 0) rotate(60deg) scale(0.97);
        z-index: 1;
        opacity: 0.98;
    }
    25% {
        transform: translate3d(58px, -82%, 0) rotate(120deg) scale(0.94);
        z-index: 0;
        opacity: 0.94;
    }
    37.5% {
        transform: translate3d(102px, -70%, 0) rotate(180deg) scale(0.97);
        z-index: 1;
        opacity: 0.98;
    }
    50% {
        transform: translate3d(142px, -50%, 0) rotate(240deg) scale(1);
        z-index: 3;
        opacity: 1;
    }
    62.5% {
        transform: translate3d(104px, -30%, 0) rotate(300deg) scale(0.98);
        z-index: 3;
        opacity: 0.99;
    }
    75% {
        transform: translate3d(58px, -18%, 0) rotate(360deg) scale(0.94);
        z-index: 3;
        opacity: 0.96;
    }
    87.5% {
        transform: translate3d(22px, -30%, 0) rotate(420deg) scale(0.98);
        z-index: 3;
        opacity: 0.99;
    }
}

@keyframes globeSpin {
    0% { transform: rotate(-18deg) scale(0.42); opacity: 0; }
    58% { transform: rotate(190deg) scale(1.08); opacity: 1; }
    100% { transform: rotate(360deg) scale(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .event-switch-float,
    .event-switch-orb,
    .event-transition-globe {
        animation: none;
    }
}

@media (max-width: 768px) {
    .event-switch-float {
        top: 14px;
        right: 14px;
        min-width: 0;
        max-width: calc(100vw - 98px);
        min-height: 46px;
        padding: 8px 10px 8px 40px;
        gap: 8px;
    }

    .event-switch-orb {
        width: 32px;
        height: 32px;
        flex-basis: 32px;
    }

    .event-switch-copy strong {
        font-size: 16px;
    }

    .event-switch-copy span {
        font-size: 9px;
    }

    .event-transition-brand {
        width: min(78vw, 300px);
        transform: translateY(104px);
    }

    .toward-morning .event-transition-brand {
        transform: translateY(134px);
    }

    .event-transition-brand img {
        max-height: 104px;
    }

    .toward-night .event-transition-brand img {
        max-width: min(48vw, 172px);
    }
}

@media (max-width: 768px) {
    @keyframes eventOrbOrbit {
        0%, 100% {
            transform: translate3d(0, -50%, 0) rotate(0deg) scale(1);
            z-index: 2;
            opacity: 1;
        }
        12.5% {
            transform: translate3d(17px, -70%, 0) rotate(60deg) scale(0.97);
            z-index: 1;
            opacity: 0.98;
        }
        25% {
            transform: translate3d(44px, -82%, 0) rotate(120deg) scale(0.94);
            z-index: 0;
            opacity: 0.94;
        }
        37.5% {
            transform: translate3d(78px, -70%, 0) rotate(180deg) scale(0.97);
            z-index: 1;
            opacity: 0.98;
        }
        50% {
            transform: translate3d(108px, -50%, 0) rotate(240deg) scale(1);
            z-index: 3;
            opacity: 1;
        }
        62.5% {
            transform: translate3d(79px, -30%, 0) rotate(300deg) scale(0.98);
            z-index: 3;
            opacity: 0.99;
        }
        75% {
            transform: translate3d(44px, -18%, 0) rotate(360deg) scale(0.94);
            z-index: 3;
            opacity: 0.96;
        }
        87.5% {
            transform: translate3d(17px, -30%, 0) rotate(420deg) scale(0.98);
            z-index: 3;
            opacity: 0.99;
        }
    }
}
