/* ════════════════════════════════════════════════════════════
   HafenCity RiverBus — Unified Stylesheet
   Alle Seiten nutzen diese eine CSS-Datei.
   ════════════════════════════════════════════════════════════ */

/* ─── BASE STYLES (alle Seiten) ─── */

        :root {
            --navy: #0a1628;
            --navy-mid: #0f2140;
            --navy-light: #162d54;
            --gold: #d4a853;
            --gold-light: #e8c882;
            --gold-dark: #b8912e;
            --white: #ffffff;
            --off-white: #f0ece4;
            --blue-accent: #2a6fb5;
            --sea-green: #1a8a7d;
            --text-light: #c8d4e6;
            --text-muted: #8899b0;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        html { scroll-behavior: smooth; }

        body {
            font-family: 'Outfit', sans-serif;
            background: var(--navy);
            color: var(--white);
            overflow-x: hidden;
        }

        /* ─── MARITIME TEXTURE OVERLAY ─── */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            background: 
                radial-gradient(ellipse at 20% 50%, rgba(42, 111, 181, 0.06) 0%, transparent 60%),
                radial-gradient(ellipse at 80% 20%, rgba(212, 168, 83, 0.04) 0%, transparent 50%);
            pointer-events: none;
            z-index: 0;
        }

        /* ─── WAVE DIVIDER SVG ─── */
        .wave-divider {
            width: 100%;
            overflow: hidden;
            line-height: 0;
            position: relative;
            z-index: 2;
        }
        .wave-divider svg {
            width: 100%;
            height: 60px;
            display: block;
        }
        .wave-divider.flip { transform: scaleY(-1); }

        /* ─── NAVIGATION ─── */
        .navbar {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            padding: 1.7rem 2rem 1rem;
            transition: all 0.4s ease;
            background: transparent;
        }
        .navbar.scrolled {
            background: rgba(10, 22, 40, 0.95);
            backdrop-filter: blur(20px);
            box-shadow: 0 4px 30px rgba(0,0,0,0.3);
            padding: 1.7rem 2rem 1.2rem;
        }
        .nav-inner {
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .nav-logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            text-decoration: none;
            color: var(--white);
        }
        .nav-logo img {
            height: 40px;
            width: auto;
        }
        .nav-logo-icon {
            width: 44px;
            height: 44px;
            background: var(--gold);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.3rem;
        }
        .nav-logo-text {
            font-family: 'DM Serif Display', serif;
            font-size: 1.25rem;
            letter-spacing: 0.02em;
        }
        .nav-logo-text span { color: var(--gold); }
        .nav-links {
            display: flex;
            align-items: center;
            gap: 2rem;
            list-style: none;
            margin-right: 150px;
        }
        .nav-links a {
            color: var(--text-light);
            text-decoration: none;
            font-size: 0.9rem;
            font-weight: 500;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            transition: color 0.3s;
            position: relative;
        }
        .nav-links a::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--gold);
            transition: width 0.3s;
        }
        .nav-links a:hover { color: var(--gold); }
        .nav-links a:hover::after { width: 100%; }
        .nav-cta {
            background: var(--gold) !important;
            color: var(--navy) !important;
            padding: 0.65rem 1.5rem;
            border-radius: 50px;
            font-weight: 600;
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            transition: all 0.3s;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
        }
        .nav-cta:hover {
            background: var(--gold-light) !important;
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(212, 168, 83, 0.3);
        }

        /* Mobile Menu */
        .mobile-toggle {
            display: none;
            flex-direction: column;
            gap: 5px;
            cursor: pointer;
            background: none;
            border: none;
            padding: 5px;
        }
        .mobile-toggle span {
            width: 28px;
            height: 2px;
            background: var(--white);
            transition: all 0.3s;
        }

        /* ─── HERO SECTION ─── */
        .hero {
            position: relative;
            height: 100vh;
            min-height: 700px;
            overflow: hidden;
        }
        .hero-slider {
            position: absolute;
            inset: 0;
        }
        .hero-slide {
            position: absolute;
            inset: 0;
            opacity: 0;
            transition: opacity 1.2s ease;
        }
        .hero-slide.active { opacity: 1; }
        .hero-slide img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .hero-overlay {
            position: absolute;
            inset: 0;
            background: 
                linear-gradient(180deg, rgba(10,22,40,0.5) 0%, rgba(10,22,40,0.2) 40%, rgba(10,22,40,0.7) 80%, rgba(10,22,40,1) 100%),
                linear-gradient(90deg, rgba(10,22,40,0.6) 0%, transparent 60%);
            z-index: 2;
        }
        .hero-content {
            position: relative;
            z-index: 3;
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 3rem;
        }
        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            background: rgba(212, 168, 83, 0.15);
            border: 1px solid rgba(212, 168, 83, 0.4);
            padding: 0.5rem 1.2rem;
            border-radius: 50px;
            font-size: 0.8rem;
            font-weight: 600;
            color: var(--gold);
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 1.5rem;
            width: fit-content;
            animation: fadeInUp 1s ease 0.3s both;
        }
        .hero-badge-dot {
            width: 8px;
            height: 8px;
            background: var(--gold);
            border-radius: 50%;
            animation: pulse-dot 2s ease infinite;
        }
        @keyframes pulse-dot {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.4; }
        }
        .hero h1 {
            font-family: 'DM Serif Display', serif;
            font-size: clamp(2.8rem, 6vw, 5rem);
            line-height: 1.1;
            margin-bottom: 1.5rem;
            max-width: 750px;
            animation: fadeInUp 1s ease 0.5s both;
        }
        .hero h1 em {
            font-style: italic;
            color: var(--gold);
        }
        .hero-sub {
            font-size: 1.15rem;
            color: var(--text-light);
            max-width: 560px;
            line-height: 1.7;
            margin-bottom: 2.5rem;
            animation: fadeInUp 1s ease 0.7s both;
        }
        .hero-actions {
            display: flex;
            align-items: center;
            gap: 1.5rem;
            animation: fadeInUp 1s ease 0.9s both;
        }
        .btn-primary {
            background: var(--gold);
            color: var(--navy);
            padding: 1rem 2.5rem;
            border-radius: 50px;
            font-weight: 700;
            font-size: 1rem;
            text-decoration: none;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            transition: all 0.3s;
            border: none;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }
        .btn-primary::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
            transform: translateX(-100%);
            transition: transform 0.6s;
        }
        .btn-primary:hover::before { transform: translateX(100%); }
        .btn-primary:hover {
            background: var(--gold-light);
            transform: translateY(-3px);
            box-shadow: 0 12px 35px rgba(212, 168, 83, 0.35);
        }
        .btn-secondary {
            color: var(--white);
            text-decoration: none;
            font-weight: 500;
            font-size: 0.95rem;
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            transition: all 0.3s;
            border: 2px solid rgba(255,255,255,0.3);
            padding: 0.9rem 2rem;
            border-radius: 50px;
        }
        .btn-secondary:hover {
            border-color: var(--gold);
            color: var(--gold);
        }

        /* Hero Slider Dots */
        .hero-dots {
            position: absolute;
            bottom: 2rem;
            left: 50%;
            transform: translateX(-50%);
            z-index: 5;
            display: flex;
            gap: 0.75rem;
        }
        .hero-dot {
            width: 40px;
            height: 4px;
            background: rgba(255,255,255,0.3);
            border-radius: 2px;
            cursor: pointer;
            transition: all 0.4s;
        }
        .hero-dot.active {
            background: var(--gold);
            width: 60px;
        }

        /* Scroll indicator */
        .scroll-hint {
            position: absolute;
            bottom: 5rem;
            right: 3rem;
            z-index: 5;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.5rem;
            color: var(--text-muted);
            font-size: 0.7rem;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            animation: fadeInUp 1s ease 1.2s both;
        }
        .scroll-line {
            width: 1px;
            height: 50px;
            background: linear-gradient(to bottom, var(--gold), transparent);
            animation: scroll-pulse 2s ease infinite;
        }
        @keyframes scroll-pulse {
            0% { opacity: 1; transform: scaleY(1); }
            50% { opacity: 0.5; transform: scaleY(0.6); }
            100% { opacity: 1; transform: scaleY(1); }
        }

        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* ─── HIGHLIGHTS BAR ─── */
        .highlights-bar {
            position: relative;
            z-index: 10;
            margin-top: -4rem;
            max-width: 1200px;
            margin-left: auto;
            margin-right: auto;
            padding: 0 2rem;
        }
        .highlights-inner {
            background: rgba(15, 33, 64, 0.9);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(212, 168, 83, 0.2);
            border-radius: 20px;
            padding: 2rem 3rem;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2rem;
        }
        .highlight-item {
            text-align: center;
            padding: 0.5rem;
        }
        .highlight-icon {
            font-size: 1.8rem;
            margin-bottom: 0.5rem;
        }
        .highlight-value {
            font-family: 'DM Serif Display', serif;
            font-size: 1.6rem;
            color: var(--gold);
            margin-bottom: 0.2rem;
        }
        .highlight-label {
            font-size: 0.8rem;
            color: var(--text-muted);
            text-transform: uppercase;
            letter-spacing: 0.08em;
        }

        /* ─── SECTION STYLES ─── */
        section {
            position: relative;
            z-index: 1;
        }
        .section-padding {
            padding: 7rem 2rem;
        }
        .container {
            max-width: 1400px;
            margin: 0 auto;
        }
        .section-label {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.75rem;
            font-weight: 600;
            color: var(--gold);
            text-transform: uppercase;
            letter-spacing: 0.15em;
            margin-bottom: 1rem;
        }
        .section-label::before {
            content: '';
            width: 30px;
            height: 2px;
            background: var(--gold);
        }
        .section-title {
            font-family: 'DM Serif Display', serif;
            font-size: clamp(2rem, 4vw, 3rem);
            line-height: 1.2;
            margin-bottom: 1.5rem;
        }
        .section-title em { color: var(--gold); font-style: italic; }

        /* ─── ABOUT / ERLEBNIS ─── */
        .about-section { background: var(--navy); }
        .about-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 5rem;
            align-items: center;
        }
        .about-text p {
            color: var(--text-light);
            line-height: 1.8;
            margin-bottom: 1.5rem;
            font-size: 1.05rem;
        }
        .about-features {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.5rem;
            margin-top: 2rem;
        }
        .about-feature {
            display: flex;
            align-items: flex-start;
            gap: 0.8rem;
        }
        .about-feature-icon {
            width: 44px;
            height: 44px;
            background: rgba(212, 168, 83, 0.1);
            border: 1px solid rgba(212, 168, 83, 0.25);
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            flex-shrink: 0;
        }
        .about-feature h4 {
            font-size: 0.95rem;
            font-weight: 600;
            margin-bottom: 0.2rem;
        }
        .about-feature p {
            font-size: 0.82rem !important;
            color: var(--text-muted) !important;
            margin-bottom: 0 !important;
            line-height: 1.5 !important;
        }
        .about-images {
            position: relative;
        }
        .about-img-main {
            width: 100%;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 20px 60px rgba(0,0,0,0.4);
        }
        .about-img-main img {
            width: 100%;
            height: 450px;
            object-fit: cover;
            display: block;
        }
        .about-img-float {
            position: absolute;
            bottom: -2rem;
            left: -2rem;
            width: 200px;
            height: 200px;
            border-radius: 16px;
            overflow: hidden;
            border: 4px solid var(--navy);
            box-shadow: 0 10px 30px rgba(0,0,0,0.4);
        }
        .about-img-float img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .about-badge-float {
            position: absolute;
            top: -1.5rem;
            right: -1rem;
            background: var(--gold);
            color: var(--navy);
            padding: 1rem 1.5rem;
            border-radius: 14px;
            text-align: center;
            box-shadow: 0 10px 30px rgba(212, 168, 83, 0.3);
        }
        .about-badge-float .big { font-family: 'DM Serif Display', serif; font-size: 1.8rem; font-weight: 700; display: block; }
        .about-badge-float .small { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }

        /* ─── ROUTE / ABLAUF ─── */
        .route-section {
            background: var(--navy-mid);
        }
        .route-steps {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2rem;
            margin-top: 3rem;
        }
        .route-step {
            position: relative;
            background: rgba(22, 45, 84, 0.5);
            border: 1px solid rgba(212, 168, 83, 0.12);
            border-radius: 20px;
            padding: 2rem 1.5rem;
            transition: all 0.4s;
        }
        .route-step:hover {
            transform: translateY(-8px);
            border-color: rgba(212, 168, 83, 0.4);
            box-shadow: 0 20px 50px rgba(0,0,0,0.3);
        }
        .route-step-num {
            font-family: 'DM Serif Display', serif;
            font-size: 3rem;
            color: rgba(212, 168, 83, 0.15);
            position: absolute;
            top: 1rem;
            right: 1.5rem;
        }
        .route-step-icon {
            width: 56px;
            height: 56px;
            background: linear-gradient(135deg, var(--gold), var(--gold-dark));
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            margin-bottom: 1.2rem;
        }
        .route-step h3 {
            font-size: 1.1rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }
        .route-step p {
            font-size: 0.88rem;
            color: var(--text-muted);
            line-height: 1.6;
        }

        /* ─── GALLERY ─── */
        .gallery-section { background: var(--navy); }
        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(2, 250px);
            gap: 1rem;
            margin-top: 3rem;
        }
        .gallery-item {
            border-radius: 16px;
            overflow: hidden;
            position: relative;
            cursor: pointer;
        }
        .gallery-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s ease;
        }
        .gallery-item:hover img { transform: scale(1.08); }
        .gallery-item::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 50%, rgba(10,22,40,0.7) 100%);
            opacity: 0;
            transition: opacity 0.3s;
        }
        .gallery-item:hover::after { opacity: 1; }
        .gallery-item:nth-child(1) { grid-column: span 2; grid-row: span 2; }
        .gallery-item:nth-child(6) { grid-column: span 2; }
        .gallery-caption {
            position: absolute;
            bottom: 1rem;
            left: 1rem;
            z-index: 2;
            font-size: 0.85rem;
            font-weight: 500;
            opacity: 0;
            transform: translateY(10px);
            transition: all 0.3s;
        }
        .gallery-item:hover .gallery-caption {
            opacity: 1;
            transform: translateY(0);
        }

        /* ─── TICKETS / PREISE ─── */
        .tickets-section { background: var(--navy-mid); }
        .tickets-header {
            text-align: center;
            margin-bottom: 4rem;
        }
        .tickets-header p {
            color: var(--text-light);
            max-width: 600px;
            margin: 0 auto;
            line-height: 1.7;
        }
        .tickets-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
            max-width: 1100px;
            margin: 0 auto;
        }
        .ticket-card {
            background: rgba(22, 45, 84, 0.4);
            border: 1px solid rgba(212, 168, 83, 0.15);
            border-radius: 24px;
            padding: 2.5rem 2rem;
            text-align: center;
            transition: all 0.4s;
            position: relative;
            overflow: hidden;
        }
        .ticket-card.featured {
            background: linear-gradient(180deg, rgba(212, 168, 83, 0.12) 0%, rgba(22, 45, 84, 0.6) 100%);
            border-color: var(--gold);
            transform: scale(1.05);
        }
        .ticket-card.featured::before {
            content: 'BELIEBT';
            position: absolute;
            top: 1.2rem;
            right: -2rem;
            background: var(--gold);
            color: var(--navy);
            font-size: 0.65rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            padding: 0.3rem 2.5rem;
            transform: rotate(45deg);
        }
        .ticket-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 50px rgba(0,0,0,0.3);
        }
        .ticket-card.featured:hover { transform: scale(1.05) translateY(-8px); }
        .ticket-icon { font-size: 2.5rem; margin-bottom: 1rem; }
        .ticket-type {
            font-size: 0.8rem;
            color: var(--text-muted);
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 0.5rem;
        }
        .ticket-name {
            font-family: 'DM Serif Display', serif;
            font-size: 1.3rem;
            margin-bottom: 1rem;
        }
        .ticket-price {
            font-family: 'DM Serif Display', serif;
            font-size: 2.8rem;
            color: var(--gold);
            margin-bottom: 0.2rem;
        }
        .ticket-price sup {
            font-size: 1.2rem;
            vertical-align: super;
        }
        .ticket-per {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-bottom: 1.5rem;
        }
        .ticket-features {
            list-style: none;
            margin-bottom: 2rem;
            text-align: left;
        }
        .ticket-features li {
            padding: 0.5rem 0;
            font-size: 0.9rem;
            color: var(--text-light);
            display: flex;
            align-items: center;
            gap: 0.6rem;
            border-bottom: 1px solid rgba(255,255,255,0.05);
        }
        .ticket-features li::before {
            content: '✓';
            color: var(--gold);
            font-weight: 700;
            font-size: 0.8rem;
        }
        .ticket-btn {
            width: 100%;
            padding: 1rem;
            border-radius: 50px;
            font-weight: 600;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            cursor: pointer;
            transition: all 0.3s;
            text-decoration: none;
            display: block;
            text-align: center;
        }
        .ticket-btn-primary {
            background: var(--gold);
            color: var(--navy);
            border: none;
        }
        .ticket-btn-primary:hover {
            background: var(--gold-light);
            box-shadow: 0 8px 25px rgba(212, 168, 83, 0.3);
        }
        .ticket-btn-outline {
            background: transparent;
            color: var(--gold);
            border: 2px solid var(--gold);
        }
        .ticket-btn-outline:hover {
            background: rgba(212, 168, 83, 0.1);
        }

        /* ─── DEPARTURE TIMES ─── */
        .times-banner {
            background: linear-gradient(135deg, var(--navy-light), var(--navy-mid));
            border: 1px solid rgba(212, 168, 83, 0.2);
            border-radius: 20px;
            padding: 3rem;
            max-width: 1100px;
            margin: 3rem auto 0;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 2rem;
        }
        .times-info h3 {
            font-family: 'DM Serif Display', serif;
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
        }
        .times-info p {
            color: var(--text-light);
            font-size: 0.95rem;
        }
        .times-detail {
            display: flex;
            align-items: center;
            gap: 1rem;
            background: rgba(212, 168, 83, 0.1);
            border: 1px solid rgba(212, 168, 83, 0.25);
            border-radius: 14px;
            padding: 1rem 1.5rem;
            flex-shrink: 0;
        }
        .times-detail-icon { font-size: 2rem; }
        .times-detail strong {
            display: block;
            font-size: 1.4rem;
            color: var(--gold);
            font-family: 'DM Serif Display', serif;
        }
        .times-detail span {
            font-size: 0.78rem;
            color: var(--text-muted);
        }

        /* ─── TESTIMONIALS ─── */
        .testimonials-section { background: var(--navy); }
        .testimonials-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
            margin-top: 3rem;
        }
        .testimonial-card {
            background: rgba(15, 33, 64, 0.6);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 20px;
            padding: 2rem;
            transition: all 0.4s;
        }
        .testimonial-card:hover {
            border-color: rgba(212, 168, 83, 0.3);
            transform: translateY(-5px);
        }
        .testimonial-stars { color: var(--gold); font-size: 1rem; margin-bottom: 1rem; letter-spacing: 2px; }
        .testimonial-text {
            font-size: 0.95rem;
            color: var(--text-light);
            line-height: 1.7;
            margin-bottom: 1.5rem;
            font-style: italic;
        }
        .testimonial-author {
            display: flex;
            align-items: center;
            gap: 0.8rem;
        }
        .testimonial-avatar {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            background: var(--navy-light);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            font-size: 0.85rem;
            color: var(--gold);
            border: 2px solid rgba(212, 168, 83, 0.3);
        }
        .testimonial-name { font-weight: 600; font-size: 0.9rem; }
        .testimonial-date { font-size: 0.75rem; color: var(--text-muted); }

        /* ─── FAQ ─── */
        .faq-section { background: var(--navy-mid); }
        .faq-grid {
            max-width: 900px;
            margin: 3rem auto 0;
        }
        .faq-item {
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 14px;
            margin-bottom: 0.75rem;
            overflow: hidden;
            transition: border-color 0.3s;
        }
        .faq-item.open { border-color: rgba(212, 168, 83, 0.3); }
        .faq-question {
            width: 100%;
            padding: 1.3rem 1.5rem;
            background: rgba(22, 45, 84, 0.3);
            border: none;
            color: var(--white);
            font-size: 1rem;
            font-weight: 500;
            text-align: left;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 1rem;
            font-family: 'Outfit', sans-serif;
        }
        .faq-question:hover { background: rgba(22, 45, 84, 0.5); }
        .faq-toggle {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            background: rgba(212, 168, 83, 0.15);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--gold);
            font-size: 1.2rem;
            transition: transform 0.3s;
            flex-shrink: 0;
        }
        .faq-item.open .faq-toggle { transform: rotate(45deg); }
        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease;
        }
        .faq-answer-inner {
            padding: 0 1.5rem 1.5rem;
            color: var(--text-light);
            font-size: 0.92rem;
            line-height: 1.7;
        }

        /* ─── CONTACT / ANFAHRT ─── */
        .contact-section { background: var(--navy); }
        .contact-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4rem;
        }
        .contact-card {
            background: rgba(15, 33, 64, 0.5);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 20px;
            padding: 2.5rem;
        }
        .contact-card h3 {
            font-family: 'DM Serif Display', serif;
            font-size: 1.4rem;
            margin-bottom: 1.5rem;
        }
        .contact-item {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }
        .contact-item-icon {
            width: 44px;
            height: 44px;
            background: rgba(212, 168, 83, 0.1);
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            flex-shrink: 0;
        }
        .contact-item strong { display: block; margin-bottom: 0.2rem; }
        .contact-item p, .contact-item a {
            color: var(--text-light);
            font-size: 0.92rem;
            text-decoration: none;
            line-height: 1.5;
        }
        .contact-item a:hover { color: var(--gold); }
        .map-embed {
            width: 100%;
            height: 350px;
            border-radius: 16px;
            overflow: hidden;
            border: 1px solid rgba(255,255,255,0.06);
        }
        .map-embed iframe {
            width: 100%;
            height: 100%;
            border: none;
            filter: saturate(0.5) brightness(0.7) contrast(1.2);
        }

        /* ─── CTA BANNER ─── */
        .cta-section {
            background: linear-gradient(135deg, var(--navy-light), var(--navy-mid));
            position: relative;
            overflow: hidden;
        }
        .cta-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 80 Q300 20 600 80 T1200 80 V200 H0Z' fill='rgba(212,168,83,0.04)'/%3E%3C/svg%3E") repeat-x bottom;
            background-size: 100% 200px;
        }
        .cta-inner {
            text-align: center;
            position: relative;
            z-index: 2;
            padding: 5rem 2rem;
        }
        .cta-inner h2 {
            font-family: 'DM Serif Display', serif;
            font-size: clamp(2rem, 4vw, 3rem);
            margin-bottom: 1rem;
        }
        .cta-inner h2 em { color: var(--gold); font-style: italic; }
        .cta-inner p {
            color: var(--text-light);
            font-size: 1.1rem;
            max-width: 600px;
            margin: 0 auto 2.5rem;
        }

        /* ─── FOOTER ─── */
        .footer {
            background: rgba(5, 12, 25, 0.95);
            border-top: 1px solid rgba(255,255,255,0.05);
            padding: 4rem 2rem 2rem;
        }
        .footer-grid {
            max-width: 1400px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 3rem;
            margin-bottom: 3rem;
        }
        .footer-brand p {
            color: var(--text-muted);
            font-size: 0.88rem;
            line-height: 1.7;
            margin-top: 1rem;
            max-width: 320px;
        }
        .footer h4 {
            font-size: 0.85rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--gold);
            margin-bottom: 1.2rem;
        }
        .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.88rem;
            transition: color 0.3s;
        }
        .footer-links a:hover { color: var(--gold); }
        .footer-bottom {
            max-width: 1400px;
            margin: 0 auto;
            padding-top: 2rem;
            border-top: 1px solid rgba(255,255,255,0.05);
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.8rem;
            color: var(--text-muted);
        }
        .footer-social {
            display: flex;
            gap: 1rem;
        }
        .footer-social a {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: rgba(255,255,255,0.05);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--text-muted);
            text-decoration: none;
            transition: all 0.3s;
            font-size: 0.85rem;
        }
        .footer-social a:hover {
            background: var(--gold);
            color: var(--navy);
        }

        /* ─── CHAT BUTTON ─── */
        .chat-btn {
            position: fixed;
            bottom: 5.5rem;
            right: 2rem;
            z-index: 999;
            width: 64px;
            height: 64px;
            border-radius: 50%;
            background: var(--gold);
            color: var(--navy);
            border: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            box-shadow: 0 8px 30px rgba(212, 168, 83, 0.35);
            transition: all 0.3s;
            animation: chat-bounce 3s ease infinite;
        }
        .chat-btn:hover {
            transform: scale(1.1);
            box-shadow: 0 12px 40px rgba(212, 168, 83, 0.5);
        }
        @keyframes chat-bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-8px); }
        }
        .chat-btn-tooltip {
            position: absolute;
            right: calc(100% + 12px);
            top: 50%;
            transform: translateY(-50%);
            background: var(--white);
            color: var(--navy);
            padding: 0.5rem 1rem;
            border-radius: 8px;
            font-size: 0.82rem;
            font-weight: 500;
            white-space: nowrap;
            box-shadow: 0 4px 15px rgba(0,0,0,0.15);
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s;
        }
        .chat-btn:hover .chat-btn-tooltip { opacity: 1; }
        .chat-btn-tooltip::after {
            content: '';
            position: absolute;
            right: -6px;
            top: 50%;
            transform: translateY(-50%);
            border: 6px solid transparent;
            border-left-color: var(--white);
        }

        /* ─── MOBILE STICKY CTA ─── */
        .mobile-sticky-cta {
            display: block;
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 998;
            background: rgba(10, 22, 40, 0.95);
            backdrop-filter: blur(20px);
            padding: 0.5rem 1.5rem;
            border-top: 1px solid rgba(212, 168, 83, 0.3);
            justify-content: center;

        }
        .mobile-sticky-cta a {
            display: block;
            max-width: 350px;
            width: 100%;
            text-align: center;
            padding: 0.9rem;
        }

        /* ─── COMPASS ROSE DECORATION ─── */
        .compass-decoration {
            position: absolute;
            width: 300px;
            height: 300px;
            opacity: 0.03;
            pointer-events: none;
        }

        /* ─── ROPE / KNOT LINE DECORATION ─── */
        .rope-line {
            width: 100%;
            height: 2px;
            background: repeating-linear-gradient(90deg, var(--gold) 0px, var(--gold) 8px, transparent 8px, transparent 14px);
            opacity: 0.2;
            margin: 1rem 0;
        }

        /* ─── KLIMANEUTRAL BADGE ─── */
        .eco-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            background: rgba(26, 138, 125, 0.15);
            border: 1px solid rgba(26, 138, 125, 0.3);
            color: #6dd5c8;
            padding: 0.5rem 1rem;
            border-radius: 50px;
            font-size: 0.78rem;
            font-weight: 600;
            margin-top: 1rem;
        }

        /* ─── IMAGE PLACEHOLDERS (Unsplash) ─── */
        .img-placeholder {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        /* ─── RESPONSIVE ─── */
        @media (max-width: 1024px) {
            .nav-links { display: none; }
            .mobile-toggle { display: flex; }
            .about-grid { grid-template-columns: 1fr; gap: 3rem; }
            .route-steps { grid-template-columns: repeat(2, 1fr); }
            .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; }
            .gallery-item:nth-child(1) { grid-column: span 2; }
            .gallery-item:nth-child(6) { grid-column: span 2; }
            .tickets-grid { grid-template-columns: 1fr; max-width: 420px; }
            .ticket-card.featured { transform: none; }
            .ticket-card.featured:hover { transform: translateY(-8px); }
            .testimonials-grid { grid-template-columns: 1fr; max-width: 600px; }
            .contact-grid { grid-template-columns: 1fr; }
            .footer-grid { grid-template-columns: 1fr 1fr; }
            .highlights-inner { grid-template-columns: repeat(2, 1fr); }
            .times-banner { flex-direction: column; text-align: center; }
        }
        @media (max-width: 768px) {
            .hero h1 { font-size: 2.2rem; }
            .hero-content { padding: 0 1.5rem; }
            .hero-actions { flex-direction: column; align-items: stretch; }
            .btn-primary, .btn-secondary { text-align: center; justify-content: center; }
            .route-steps { grid-template-columns: 1fr; }
            .gallery-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
            .gallery-item:nth-child(1),
            .gallery-item:nth-child(6) { grid-column: span 1; }
            .gallery-item img { height: 220px; }
            .footer-grid { grid-template-columns: 1fr; }
            .mobile-sticky-cta { display: block; }
            .chat-btn { bottom: 6rem; }
            .scroll-hint { display: none; }
            .about-img-float { display: none; }
            .about-badge-float { top: 1rem; right: 1rem; }
            .section-padding { padding: 4rem 1.5rem; }
        }


        /* --- BLOG SECTION --- */
        .blog-section{background:var(--navy-mid)}
        .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
        .blog-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:16px;overflow:hidden;transition:all .4s}
        .blog-card:hover{transform:translateY(-5px);border-color:rgba(212,168,83,.2)}
        .blog-card-img{height:200px;overflow:hidden}
        .blog-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
        .blog-card:hover .blog-card-img img{transform:scale(1.05)}
        .blog-card-body{padding:1.5rem}
        .blog-card-meta{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-muted);margin-bottom:.8rem}
        .blog-card-cat{background:rgba(212,168,83,.1);color:var(--gold);padding:3px 10px;border-radius:20px;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}
        .blog-card h3{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:600;color:var(--white);margin-bottom:.6rem;line-height:1.4}
        .blog-card p{font-size:.88rem;color:var(--text-light);line-height:1.6;margin-bottom:1rem}
        .blog-card-link{font-size:.85rem;font-weight:600;color:var(--gold);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:gap .2s}
        .blog-card-link:hover{gap:10px}
        .blog-more{text-align:center;margin-top:2.5rem}
        @media(max-width:1024px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:768px){.blog-grid{grid-template-columns:1fr}}

        /* --- ALERT BAR --- */
        .alert-bar{position:fixed;top:0;left:0;right:0;z-index:1100;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--navy);font-size:.82rem;font-weight:600;transition:transform .4s,opacity .4s;box-shadow:0 2px 12px rgba(0,0,0,.2)}
        .alert-bar.hidden{transform:translateY(-100%);opacity:0;pointer-events:none}
        .alert-bar-inner{max-width:1400px;margin:0 auto;padding:9px 48px 9px 20px;display:flex;align-items:center;gap:10px;position:relative;min-height:38px}
        .alert-bar-icon{font-size:1rem;flex-shrink:0;animation:apulse 2s ease infinite}
        @keyframes apulse{0%,100%{opacity:1}50%{opacity:.5}}
        .alert-bar-content{flex:1;line-height:1.4}
        .alert-bar-content strong{font-weight:800}
        .alert-bar-content em{font-style:italic}
        .alert-bar-content a{color:var(--navy);text-decoration:underline;font-weight:700}
        .alert-bar-content code{background:rgba(10,22,40,.1);padding:1px 5px;border-radius:3px;font-family:'Outfit',sans-serif;font-size:.8rem}
        .alert-bar-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:rgba(10,22,40,.1);border:none;color:var(--navy);width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .2s}
        .alert-bar-close:hover{background:rgba(10,22,40,.2)}
        body.has-alert .navbar{top:38px}
        body.has-alert .hero{margin-top:38px}
        body.has-alert .navbar.scrolled{top:0}

        /* --- LEGAL MODALS --- */
        .legal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(6,14,28,.85);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;padding:20px}
        .legal-overlay.active{opacity:1;visibility:visible}
        .legal-modal{background:var(--navy-mid);border:1px solid rgba(255,255,255,.08);border-radius:20px;width:100%;max-width:760px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:translateY(30px) scale(.97);transition:transform .35s;overflow:hidden}
        .legal-overlay.active .legal-modal{transform:translateY(0) scale(1)}
        .legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px 20px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}
        .legal-modal-header h2{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--white);display:flex;align-items:center;gap:10px}
        .legal-modal-close{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--white);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
        .legal-modal-close:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
        .legal-modal-body{padding:28px 32px 32px;overflow-y:auto;flex:1;color:rgba(255,255,255,.78);font-size:.92rem;line-height:1.75;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
        .legal-modal-body h3{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--white);margin:28px 0 10px}
        .legal-modal-body h3:first-child{margin-top:0}
        .legal-modal-body p{margin-bottom:12px}
        .legal-modal-body a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
        .legal-modal-body ul{list-style:none;padding:0;margin:0 0 16px}
        .legal-modal-body ul li{padding:4px 0 4px 20px;position:relative}
        .legal-modal-body ul li::before{content:'>';position:absolute;left:4px;color:var(--gold);font-weight:700}
        .legal-modal-body .legal-address{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px 20px;margin:12px 0 20px;line-height:1.8}
        .legal-modal-body .legal-updated{font-size:.8rem;color:rgba(255,255,255,.4);margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}

        /* --- CHAT WIDGET --- */
        .chat-btn.chat-open{display:none}
        .chat-window{position:fixed;bottom:5.5rem;right:2rem;z-index:1000;width:380px;max-height:620px;border-radius:20px;background:var(--navy-mid);border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.5);display:flex;flex-direction:column;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(20px) scale(.95);transition:all .35s}
        .chat-window.active{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
        .chat-header{background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:var(--navy);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
        .chat-header-info{display:flex;align-items:center;gap:12px}
        .chat-header-avatar{width:40px;height:40px;background:rgba(10,22,40,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem}
        .chat-header-name{font-weight:700;font-size:.95rem}
        .chat-header-status{font-size:.75rem;opacity:.7;display:flex;align-items:center;gap:5px}
        .chat-header-status::before{content:'';width:7px;height:7px;background:#1a5c20;border-radius:50%}
        .chat-close{background:rgba(10,22,40,.1);border:none;color:var(--navy);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background .2s}
        .chat-close:hover{background:rgba(10,22,40,.2)}
        .chat-body{flex:1;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;min-height:120px;max-height:240px}
        .chat-msg{max-width:85%;padding:12px 16px;border-radius:16px;font-size:.88rem;line-height:1.6;animation:msgIn .3s ease}
        @keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
        .chat-msg.bot{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);color:var(--text-light);border-bottom-left-radius:4px;align-self:flex-start}
        .chat-msg.bot strong{color:var(--white)}
        .chat-msg.bot a{color:var(--gold);text-decoration:underline}
        .chat-msg.user{background:var(--gold);color:var(--navy);border-bottom-right-radius:4px;align-self:flex-end;font-weight:500}
        .chat-quick-replies{display:flex;flex-direction:column;gap:6px;padding:0 16px 16px;flex-shrink:1;overflow-y:auto;max-height:260px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}
        .chat-quick-btn{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--text-light);padding:10px 16px;border-radius:12px;font-size:.84rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;display:flex;align-items:center;gap:8px;font-family:'Outfit',sans-serif}
        .chat-quick-btn:hover{background:rgba(212,168,83,.1);border-color:rgba(212,168,83,.3);color:var(--gold)}
        .chat-quick-btn-icon{font-size:1rem;flex-shrink:0}
        .chat-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}
        .chat-footer-link{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gold);text-decoration:none;font-size:.82rem;font-weight:600;padding:10px;background:rgba(212,168,83,.08);border:1px solid rgba(212,168,83,.15);border-radius:12px;transition:all .2s}
        .chat-footer-link:hover{background:rgba(212,168,83,.15);border-color:rgba(212,168,83,.3)}
        .chat-typing{display:flex;gap:4px;padding:12px 16px;align-self:flex-start}
        .chat-typing span{width:7px;height:7px;background:rgba(255,255,255,.2);border-radius:50%;animation:ctyp 1.4s ease infinite}
        .chat-typing span:nth-child(2){animation-delay:.2s}
        .chat-typing span:nth-child(3){animation-delay:.4s}
        @keyframes ctyp{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
        @media(max-width:500px){.chat-window{bottom:0;right:0;left:0;width:100%;max-height:85vh;border-radius:20px 20px 0 0}}
        @media(max-width:768px){.alert-bar-inner{padding:8px 40px 8px 14px;font-size:.78rem}}

        /* ─── MAP CONSENT PLACEHOLDER ─── */
        .map-consent-placeholder {
            width: 100%;
            height: 100%;
            min-height: 350px;
            background: rgba(15,33,64,0.6);
            border: 1px dashed rgba(255,255,255,0.15);
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
        }
        .map-consent-inner { padding: 2rem; }
        .map-consent-icon { font-size: 2.5rem; margin-bottom: 0.8rem; display: block; }
        .map-consent-placeholder p {
            font-size: 0.9rem;
            color: var(--text-light);
            margin-bottom: 0.5rem;
        }
        .map-consent-btn {
            margin-top: 1rem;
            padding: 0.7rem 1.5rem;
            background: var(--gold);
            color: var(--navy);
            border: none;
            border-radius: 50px;
            font-family: 'Outfit', sans-serif;
            font-weight: 600;
            font-size: 0.88rem;
            cursor: pointer;
            transition: all 0.3s;
        }
        .map-consent-btn:hover {
            box-shadow: 0 4px 15px rgba(212,168,83,0.4);
            transform: translateY(-1px);
        }

        /* ─── COOKIE CONSENT BANNER ─── */
        .consent-overlay {
            position: fixed;
            inset: 0;
            z-index: 9999;
            background: rgba(6, 14, 28, 0.6);
            backdrop-filter: blur(4px);
            display: flex;
            align-items: flex-end;
            justify-content: center;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.4s, visibility 0.4s;
        }
        .consent-overlay.active { opacity: 1; visibility: visible; }
        .consent-banner {
            width: 100%;
            max-width: 680px;
            background: #0f1d33;
            border: 1px solid rgba(255,255,255,0.08);
            border-bottom: none;
            border-radius: 20px 20px 0 0;
            padding: 2rem 2rem 1.5rem;
            box-shadow: 0 -10px 40px rgba(0,0,0,0.4);
            transform: translateY(20px);
            transition: transform 0.4s;
            font-family: 'Outfit', sans-serif;
            color: rgba(255,255,255,0.8);
        }
        .consent-overlay.active .consent-banner { transform: translateY(0); }
        .consent-banner h3 {
            font-family: 'DM Serif Display', serif;
            font-size: 1.25rem;
            color: #fff;
            margin-bottom: 0.8rem;
        }
        .consent-banner p {
            font-size: 0.85rem;
            line-height: 1.7;
            margin-bottom: 1rem;
        }
        .consent-banner a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
        .consent-toggles {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-bottom: 1.2rem;
        }
        .consent-toggle {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.6rem 0.9rem;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 10px;
            font-size: 0.84rem;
        }
        .consent-toggle-info { display: flex; align-items: center; gap: 8px; }
        .consent-toggle-info strong { color: #fff; font-size: 0.88rem; }
        .consent-toggle-info small { color: rgba(255,255,255,0.4); font-size: 0.72rem; }
        .consent-switch { position: relative; width: 42px; height: 22px; flex-shrink: 0; }
        .consent-switch input { opacity: 0; width: 0; height: 0; }
        .consent-switch .slider {
            position: absolute; inset: 0;
            background: rgba(255,255,255,0.12);
            border-radius: 22px; cursor: pointer; transition: background 0.3s;
        }
        .consent-switch .slider::before {
            content: ''; position: absolute;
            width: 16px; height: 16px; left: 3px; bottom: 3px;
            background: #fff; border-radius: 50%; transition: transform 0.3s;
        }
        .consent-switch input:checked + .slider { background: var(--gold); }
        .consent-switch input:checked + .slider::before { transform: translateX(20px); }
        .consent-switch input:disabled + .slider { opacity: 0.5; cursor: not-allowed; }
        .consent-buttons {
            display: flex; gap: 0.6rem; flex-wrap: wrap;
        }
        .consent-btn {
            flex: 1; min-width: 130px; padding: 0.8rem 1rem;
            border-radius: 50px; font-family: 'Outfit', sans-serif;
            font-weight: 600; font-size: 0.85rem; cursor: pointer;
            transition: all 0.3s; text-align: center; border: none;
        }
        .consent-btn-accept {
            background: linear-gradient(135deg, var(--gold), #e8c47a);
            color: var(--navy);
            box-shadow: 0 4px 15px rgba(212,168,83,0.3);
        }
        .consent-btn-accept:hover { box-shadow: 0 6px 25px rgba(212,168,83,0.5); transform: translateY(-1px); }
        .consent-btn-reject {
            background: rgba(255,255,255,0.06);
            color: rgba(255,255,255,0.7);
            border: 1px solid rgba(255,255,255,0.1);
        }
        .consent-btn-reject:hover { background: rgba(255,255,255,0.1); color: #fff; }
        .consent-btn-save {
            background: rgba(212,168,83,0.12);
            color: var(--gold);
            border: 1px solid rgba(212,168,83,0.25);
        }
        .consent-btn-save:hover { background: rgba(212,168,83,0.22); }
        @media (max-width: 600px) {
            .consent-banner { padding: 1.5rem 1.2rem 1.2rem; }
            .consent-buttons { flex-direction: column; }
            .consent-btn { min-width: 100%; }
        }
    

/* ─── TICKETS PAGE ─── */

        .tix-hero{padding:9rem 2rem 5rem;background:var(--navy);text-align:center;position:relative;overflow:hidden}
        .tix-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(212,168,83,.08) 0%,transparent 65%);pointer-events:none}
        .tix-hero .section-label{justify-content:center}
        .tix-hero h1{font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:1rem}
        .tix-hero p{font-size:1.1rem;color:var(--text-light);max-width:620px;margin:0 auto 2.5rem;line-height:1.7}
        .tix-hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
        .tix-strip{background:var(--navy-light);border-top:1px solid rgba(212,168,83,.12);border-bottom:1px solid rgba(212,168,83,.12)}
        .tix-strip-inner{max-width:1100px;margin:0 auto;padding:1.4rem 2rem;display:flex;justify-content:center;gap:3rem;flex-wrap:wrap}
        .tix-strip-item{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--text-light)}
        .tix-strip-item strong{color:var(--white)}
        .tix-strip-icon{font-size:1.3rem}
        .tix-section{padding:5rem 2rem}
        .tix-section.alt{background:var(--navy-mid)}
        .tix-section.dark{background:var(--navy)}
        .tix-section-head{text-align:center;margin-bottom:3rem}
        .tix-section-head p{color:var(--text-light);max-width:580px;margin:.8rem auto 0;font-size:1rem;line-height:1.7}
        .tix-includes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1000px;margin:0 auto}
        .tix-include-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:2rem;text-align:center;transition:border-color .3s}
        .tix-include-card:hover{border-color:rgba(212,168,83,.25)}
        .tix-include-icon{font-size:2.2rem;margin-bottom:1rem}
        .tix-include-card h3{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:600;margin-bottom:.5rem}
        .tix-include-card p{font-size:.85rem;color:var(--text-light);line-height:1.6}
        .tix-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:1100px;margin:0 auto}
        .tix-step{text-align:center;padding:2rem 1.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:16px}
        .tix-step-num{width:44px;height:44px;background:linear-gradient(135deg,#b8861e,var(--gold));color:var(--navy);border-radius:50%;font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
        .tix-step h3{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:600;margin-bottom:.5rem}
        .tix-step p{font-size:.83rem;color:var(--text-light);line-height:1.6}
        .tix-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}
        .tix-info-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:1.8rem}
        .tix-info-card h3{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:600;margin-bottom:.8rem;display:flex;align-items:center;gap:8px}
        .tix-info-card p,.tix-info-card li{font-size:.88rem;color:var(--text-light);line-height:1.7}
        .tix-info-card ul{list-style:none;padding:0}
        .tix-info-card ul li{padding:4px 0 4px 16px;position:relative}
        .tix-info-card ul li::before{content:'>';position:absolute;left:0;color:var(--gold);font-weight:700}
        .tix-highlight{background:rgba(212,168,83,.08);border:1px solid rgba(212,168,83,.2);border-radius:10px;padding:.8rem 1rem;margin-top:.8rem;font-size:.85rem;color:#f0c060}
        .tix-table{width:100%;border-collapse:collapse;max-width:700px;margin:0 auto;font-size:.9rem}
        .tix-table th{background:rgba(212,168,83,.1);color:var(--gold);font-family:'Outfit',sans-serif;font-weight:600;padding:.8rem 1.2rem;text-align:left;border-bottom:1px solid rgba(212,168,83,.2)}
        .tix-table td{padding:.8rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-light)}
        .tix-table tr:last-child td{border-bottom:none}
        .tix-table td:first-child{color:var(--white);font-weight:500}
        .tix-cta{background:linear-gradient(135deg,#1565a0,var(--navy-mid));text-align:center;padding:5rem 2rem}
        .tix-cta h2{font-size:clamp(1.8rem,3.5vw,2.6rem);margin-bottom:1rem}
        .tix-cta p{font-size:1.05rem;color:rgba(255,255,255,.7);max-width:500px;margin:0 auto 2rem}
        .btn-sec{display:inline-flex;align-items:center;padding:1rem 2rem;border:2px solid rgba(255,255,255,.25);border-radius:50px;color:var(--white);text-decoration:none;font-weight:600;font-size:.95rem;transition:all .3s}
        .btn-sec:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.06)}
        @media(max-width:1024px){.tix-steps{grid-template-columns:repeat(2,1fr)}.tix-includes{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:768px){.tix-hero{padding:8rem 1.5rem 3.5rem}.tix-strip-inner{gap:1.5rem}.tix-steps{grid-template-columns:1fr}.tix-includes{grid-template-columns:1fr}.tix-info-grid{grid-template-columns:1fr}.times-banner{flex-direction:column;text-align:center}}

        /* ─── COOKIE CONSENT BANNER ─── */
        .consent-overlay{position:fixed;inset:0;z-index:9999;background:rgba(6,14,28,.6);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
        .consent-overlay.active{opacity:1;visibility:visible}
        .consent-banner{width:100%;max-width:680px;background:#0f1d33;border:1px solid rgba(255,255,255,.08);border-bottom:none;border-radius:20px 20px 0 0;padding:2rem 2rem 1.5rem;box-shadow:0 -10px 40px rgba(0,0,0,.4);transform:translateY(20px);transition:transform .4s;font-family:'Outfit',sans-serif;color:rgba(255,255,255,.8)}
        .consent-overlay.active .consent-banner{transform:translateY(0)}
        .consent-banner h3{font-family:'DM Serif Display',serif;font-size:1.25rem;color:#fff;margin-bottom:.8rem}
        .consent-banner>p{font-size:.85rem;line-height:1.7;margin-bottom:1rem}
        .consent-banner a{color:#d4a853;text-decoration:underline;text-underline-offset:2px}
        .consent-toggles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.2rem}
        .consent-toggle{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;font-size:.84rem}
        .consent-toggle-info{display:flex;flex-direction:column;gap:1px}
        .consent-toggle-info strong{color:#fff;font-size:.88rem}
        .consent-toggle-info small{color:rgba(255,255,255,.4);font-size:.72rem}
        .consent-switch{position:relative;width:42px;height:22px;flex-shrink:0}
        .consent-switch input{opacity:0;width:0;height:0}
        .consent-switch .slider{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:22px;cursor:pointer;transition:background .3s}
        .consent-switch .slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .3s}
        .consent-switch input:checked+.slider{background:#d4a853}
        .consent-switch input:checked+.slider::before{transform:translateX(20px)}
        .consent-switch input:disabled+.slider{opacity:.5;cursor:not-allowed}
        .consent-buttons{display:flex;gap:.6rem;flex-wrap:wrap}
        .consent-btn{flex:1;min-width:130px;padding:.8rem 1rem;border-radius:50px;font-family:'Outfit',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .3s;text-align:center;border:none}
        .consent-btn-accept{background:linear-gradient(135deg,#d4a853,#e8c47a);color:#0a1628;box-shadow:0 4px 15px rgba(212,168,83,.3)}
        .consent-btn-accept:hover{box-shadow:0 6px 25px rgba(212,168,83,.5);transform:translateY(-1px)}
        .consent-btn-reject{background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.1)}
        .consent-btn-reject:hover{background:rgba(255,255,255,.1);color:#fff}
        .consent-btn-save{background:rgba(212,168,83,.12);color:#d4a853;border:1px solid rgba(212,168,83,.25)}
        .consent-btn-save:hover{background:rgba(212,168,83,.22)}
        @media(max-width:600px){.consent-banner{padding:1.5rem 1.2rem 1.2rem}.consent-buttons{flex-direction:column}.consent-btn{min-width:100%}}
    

/* ─── BLOG ARTICLE PAGES ─── */

        .article-hero{padding:10rem 2rem 4rem;background:var(--navy);text-align:center;position:relative}
        .article-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(transparent,var(--navy-mid))}
        .article-back{display:inline-flex;align-items:center;gap:6px;color:var(--gold);text-decoration:none;font-size:.85rem;font-weight:600;margin-bottom:2rem;transition:gap .2s}
        .article-back:hover{gap:10px}
        .article-meta{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.85rem;color:var(--text-muted);margin-bottom:1.5rem}
        .article-meta .blog-card-cat{font-size:.75rem}
        .article-hero h1{font-size:clamp(1.8rem,4vw,2.8rem);max-width:800px;margin:0 auto 1rem;line-height:1.25}
        .article-hero p{font-size:1.1rem;color:var(--text-light);max-width:600px;margin:0 auto}
        .article-cover{max-width:900px;margin:-2rem auto 0;position:relative;z-index:1;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}
        .article-cover img{width:100%;height:400px;object-fit:cover;display:block}
        .article-body{max-width:720px;margin:0 auto;padding:3rem 2rem 4rem;color:var(--text-light);font-size:1rem;line-height:1.85}
        .article-body h3{font-family:'Outfit',sans-serif;font-size:1.2rem;font-weight:700;color:var(--white);margin:2.5rem 0 .8rem}
        .article-body p{margin-bottom:1.2rem}
        .article-body strong{color:var(--white)}
        .article-body a{color:var(--gold);text-decoration:underline}
        .article-cta{text-align:center;padding:3rem 2rem 5rem;background:var(--navy-mid)}
        .article-cta h3{font-size:1.5rem;margin-bottom:1rem;color:var(--white)}
        .article-cta p{color:var(--text-light);margin-bottom:1.5rem;font-size:1rem}
        .article-related{padding:4rem 2rem;background:var(--navy)}
        .article-related h3{text-align:center;font-size:1.3rem;margin-bottom:2rem;color:var(--white)}
        .article-related .blog-grid{max-width:900px;margin:0 auto}
        @media(max-width:768px){.article-cover img{height:250px}.article-hero{padding:8rem 1.5rem 3rem}}


/* ─── BLOG OVERVIEW PAGE ─── */

        .blog-hero{padding:10rem 2rem 4rem;background:var(--navy);text-align:center}
        .blog-hero h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:.8rem}
        .blog-hero h1 em{color:var(--gold);font-style:italic}
        .blog-hero p{font-size:1.1rem;color:var(--text-light);max-width:550px;margin:0 auto}
        .blog-overview{padding:0 2rem 5rem;background:var(--navy-mid)}
        .blog-overview .blog-grid{max-width:1100px;margin:0 auto}
        .blog-overview .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;padding-top:3rem}
        @media(max-width:1024px){.blog-overview .blog-grid{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:768px){.blog-overview .blog-grid{grid-template-columns:1fr}.blog-hero{padding:8rem 1.5rem 3rem}}

        /* ─── COOKIE CONSENT BANNER ─── */
        .consent-overlay{position:fixed;inset:0;z-index:9999;background:rgba(6,14,28,.6);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
        .consent-overlay.active{opacity:1;visibility:visible}
        .consent-banner{width:100%;max-width:680px;background:#0f1d33;border:1px solid rgba(255,255,255,.08);border-bottom:none;border-radius:20px 20px 0 0;padding:2rem 2rem 1.5rem;box-shadow:0 -10px 40px rgba(0,0,0,.4);transform:translateY(20px);transition:transform .4s;font-family:'Outfit',sans-serif;color:rgba(255,255,255,.8)}
        .consent-overlay.active .consent-banner{transform:translateY(0)}
        .consent-banner h3{font-family:'DM Serif Display',serif;font-size:1.25rem;color:#fff;margin-bottom:.8rem}
        .consent-banner>p{font-size:.85rem;line-height:1.7;margin-bottom:1rem}
        .consent-banner a{color:#d4a853;text-decoration:underline;text-underline-offset:2px}
        .consent-toggles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.2rem}
        .consent-toggle{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;font-size:.84rem}
        .consent-toggle-info{display:flex;flex-direction:column;gap:1px}
        .consent-toggle-info strong{color:#fff;font-size:.88rem}
        .consent-toggle-info small{color:rgba(255,255,255,.4);font-size:.72rem}
        .consent-switch{position:relative;width:42px;height:22px;flex-shrink:0}
        .consent-switch input{opacity:0;width:0;height:0}
        .consent-switch .slider{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:22px;cursor:pointer;transition:background .3s}
        .consent-switch .slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .3s}
        .consent-switch input:checked+.slider{background:#d4a853}
        .consent-switch input:checked+.slider::before{transform:translateX(20px)}
        .consent-switch input:disabled+.slider{opacity:.5;cursor:not-allowed}
        .consent-buttons{display:flex;gap:.6rem;flex-wrap:wrap}
        .consent-btn{flex:1;min-width:130px;padding:.8rem 1rem;border-radius:50px;font-family:'Outfit',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .3s;text-align:center;border:none}
        .consent-btn-accept{background:linear-gradient(135deg,#d4a853,#e8c47a);color:#0a1628;box-shadow:0 4px 15px rgba(212,168,83,.3)}
        .consent-btn-accept:hover{box-shadow:0 6px 25px rgba(212,168,83,.5);transform:translateY(-1px)}
        .consent-btn-reject{background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.1)}
        .consent-btn-reject:hover{background:rgba(255,255,255,.1);color:#fff}
        .consent-btn-save{background:rgba(212,168,83,.12);color:#d4a853;border:1px solid rgba(212,168,83,.25)}
        .consent-btn-save:hover{background:rgba(212,168,83,.22)}
        @media(max-width:600px){.consent-banner{padding:1.5rem 1.2rem 1.2rem}.consent-buttons{flex-direction:column}.consent-btn{min-width:100%}}
    

/* ─── LEGAL PAGES (Impressum, Datenschutz, AGB) ─── */

        .legal-hero{padding:9rem 2rem 3rem;background:var(--navy);text-align:center}
        .legal-hero h1{font-size:clamp(1.8rem,3.5vw,2.5rem);margin-bottom:.5rem}
        .legal-back{display:inline-flex;align-items:center;gap:6px;color:var(--gold);text-decoration:none;font-size:.85rem;font-weight:600;margin-bottom:2rem;transition:gap .2s}
        .legal-back:hover{gap:10px}
        .legal-content{max-width:820px;margin:0 auto;padding:3rem 2rem 5rem;color:var(--text-light);font-size:.95rem;line-height:1.8;background:var(--navy-mid)}
        .legal-content h3{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:700;color:var(--white);margin:2.5rem 0 .8rem}
        .legal-content h3:first-child{margin-top:0}
        .legal-content p{margin-bottom:1rem}
        .legal-content a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
        .legal-content a:hover{color:var(--gold-light,#f0c060)}
        .legal-content ul{list-style:none;padding:0;margin:0 0 1rem}
        .legal-content ul li{padding:4px 0 4px 18px;position:relative}
        .legal-content ul li::before{content:'>';position:absolute;left:0;color:var(--gold);font-weight:700}
        .legal-content strong{color:var(--white)}
        .legal-address{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px 20px;margin:12px 0 20px;line-height:1.9}
        .legal-updated{font-size:.8rem;color:rgba(255,255,255,.4);margin-top:2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06)}

        /* ─── COOKIE CONSENT BANNER ─── */
        .consent-overlay{position:fixed;inset:0;z-index:9999;background:rgba(6,14,28,.6);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
        .consent-overlay.active{opacity:1;visibility:visible}
        .consent-banner{width:100%;max-width:680px;background:#0f1d33;border:1px solid rgba(255,255,255,.08);border-bottom:none;border-radius:20px 20px 0 0;padding:2rem 2rem 1.5rem;box-shadow:0 -10px 40px rgba(0,0,0,.4);transform:translateY(20px);transition:transform .4s;font-family:'Outfit',sans-serif;color:rgba(255,255,255,.8)}
        .consent-overlay.active .consent-banner{transform:translateY(0)}
        .consent-banner h3{font-family:'DM Serif Display',serif;font-size:1.25rem;color:#fff;margin-bottom:.8rem}
        .consent-banner>p{font-size:.85rem;line-height:1.7;margin-bottom:1rem}
        .consent-banner a{color:#d4a853;text-decoration:underline;text-underline-offset:2px}
        .consent-toggles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.2rem}
        .consent-toggle{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;font-size:.84rem}
        .consent-toggle-info{display:flex;flex-direction:column;gap:1px}
        .consent-toggle-info strong{color:#fff;font-size:.88rem}
        .consent-toggle-info small{color:rgba(255,255,255,.4);font-size:.72rem}
        .consent-switch{position:relative;width:42px;height:22px;flex-shrink:0}
        .consent-switch input{opacity:0;width:0;height:0}
        .consent-switch .slider{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:22px;cursor:pointer;transition:background .3s}
        .consent-switch .slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .3s}
        .consent-switch input:checked+.slider{background:#d4a853}
        .consent-switch input:checked+.slider::before{transform:translateX(20px)}
        .consent-switch input:disabled+.slider{opacity:.5;cursor:not-allowed}
        .consent-buttons{display:flex;gap:.6rem;flex-wrap:wrap}
        .consent-btn{flex:1;min-width:130px;padding:.8rem 1rem;border-radius:50px;font-family:'Outfit',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .3s;text-align:center;border:none}
        .consent-btn-accept{background:linear-gradient(135deg,#d4a853,#e8c47a);color:#0a1628;box-shadow:0 4px 15px rgba(212,168,83,.3)}
        .consent-btn-accept:hover{box-shadow:0 6px 25px rgba(212,168,83,.5);transform:translateY(-1px)}
        .consent-btn-reject{background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.1)}
        .consent-btn-reject:hover{background:rgba(255,255,255,.1);color:#fff}
        .consent-btn-save{background:rgba(212,168,83,.12);color:#d4a853;border:1px solid rgba(212,168,83,.25)}
        .consent-btn-save:hover{background:rgba(212,168,83,.22)}
        @media(max-width:600px){.consent-banner{padding:1.5rem 1.2rem 1.2rem}.consent-buttons{flex-direction:column}.consent-btn{min-width:100%}}
    
