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

        :root {
            --g1: #081A10;
            --g2: #0D2B1A;
            --g3: #132238;
            --p1: #1A0B2E;
            --p2: #2D1050;
            --p3: #3D1B6B;
            --white: #EDE9E0;
            --blanc: #FAF8F5;
            --or: #d4a574;
            --dim: rgba(240,238,232,0.5);
            --dim2: rgba(240,238,232,0.15);
            --light-bg: #F7F5F0;
            --light-bg2: #EDE9E0;
            --dark-text: #0D1A10;
            --dark-dim: rgba(13,26,16,0.55);
            --dark-dim2: rgba(13,26,16,0.12);
            --teal: #0D4F4F;
            --teal-light: #0F6B6B;
            --atlas-bleu: #132F41;
            --p-mauve: #201738;
        }

        html { scroll-behavior: smooth; }

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

        h1, h2, h3, .big {
            font-family: 'Bebas Neue', sans-serif;
            letter-spacing: 2px;
        }

        /* ──────────────────── NOISE GRAIN ──────────────────── */
        body::after {
            content:'';
            position:fixed; inset:0;
            background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
            pointer-events:none; z-index:9999; opacity:0.35;
        }

        /* ──────────────────── NAVBAR ──────────────────── */
        .navbar {
            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 100;
            padding: 20px 40px;
            display: flex;
            align-items: center;
            gap: 14px;
            background: rgba(8,26,16,0.6);
            backdrop-filter: blur(16px);
            border-bottom: 1px solid rgba(240,238,232,0.06);
            transition: all 0.4s ease;
        }
        .navbar.scrolled {
            background: rgba(8,26,16,0.92);
            padding: 14px 40px;
        }
        .navbar-logo {
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
            height: 52px;
            width: auto;
        }
        .navbar-logo img {
            height: 100%; width: auto; object-fit: contain;
        }
        .navbar-name {
            font-family: 'Bebas Neue', sans-serif;
            font-size: 1.1rem;
            letter-spacing: 2px;
            color: var(--white);
            line-height: 1.1;
        }
        .navbar-name strong {
            font-family: 'DM Sans', sans-serif;
            font-weight: 800;
            font-size: 0.95rem;
            letter-spacing: 3px;
            display: inline;
            color: var(--white);
        }
        .navbar-name small {
            display: inline;
            font-family: 'Bebas Neue', sans-serif;
            font-size: 1rem;
            letter-spacing: 2px;
            color: var(--white);
            opacity: 0.85;
        }
        .navbar-links {
            display: flex;
            gap: 32px;
            margin-left: 40px;
        }
        .navbar-links a {
            color: var(--dim);
            text-decoration: none;
            font-size: 0.9rem;
            letter-spacing: 1px;
            transition: color 0.3s ease;
        }
        .navbar-links a:hover,
        .navbar-links a.active {
            color: var(--white);
        }
        .navbar-cta {
            margin-left: auto;
            border: 1px solid rgba(240,238,232,0.25);
            color: var(--white);
            padding: 10px 24px;
            border-radius: 4px;
            text-decoration: none;
            font-family: 'Bebas Neue', sans-serif;
            font-size: 0.95rem;
            letter-spacing: 2px;
            transition: all 0.3s ease;
            background: rgba(255,255,255,0.04);
        }
        .navbar-cta:hover {
            background: var(--white);
            color: var(--p1);
            border-color: var(--white);
        }

        /* ──────────────────── HERO ──────────────────── */
        .hero {
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
            background:
                linear-gradient(150deg, rgba(26,11,46,0.85) 0%, rgba(8,26,16,0.85) 40%, rgba(13,43,26,0.85) 100%),
                url('assets/second-bg-hero.jpg');
            background-size: auto, cover;
            background-position: center, center;
            background-repeat: no-repeat;
        }

        .orb {
            position:absolute;
            border-radius:50%;
            filter:blur(90px);
            pointer-events:none;
        }

        .orb {
            position:absolute; z-index:3;
            border-radius:50%;
            filter:blur(90px);
            pointer-events:none;
        }
        .orb-1 { width:700px; height:700px; background:radial-gradient(circle, rgba(80,20,140,0.45), transparent 70%); top:-200px; right:-250px; animation: floatA 22s ease-in-out infinite; }
        .orb-2 { width:500px; height:500px; background:radial-gradient(circle, rgba(13,43,26,0.7), transparent 70%); bottom:-150px; left:-150px; animation: floatB 18s ease-in-out infinite; }
        .orb-3 { width:350px; height:350px; background:radial-gradient(circle, rgba(61,27,107,0.35), transparent 70%); top:40%; left:30%; animation: floatC 25s ease-in-out infinite; }

        @keyframes floatA { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(-40px,30px) scale(1.05)} 66%{transform:translate(20px,-20px) scale(0.95)} }
        @keyframes floatB { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(30px,-40px) scale(1.08)} }
        @keyframes floatC { 0%,100%{transform:translate(0,0)} 50%{transform:translate(-30px,20px)} }

        .hero-inner {
            position:relative; z-index:2;
            text-align:center;
            padding:80px 24px;
            max-width:960px;
        }

        .eyebrow {
            display:inline-block;
            border:1px solid var(--dim2);
            border-radius:40px;
            padding:10px 28px;
            font-size:0.78rem;
            letter-spacing:4px;
            text-transform:uppercase;
            color:var(--dim);
            margin-bottom:40px;
            opacity:0;
            animation:riseUp 0.9s cubic-bezier(.22,1,.36,1) forwards 0.3s;
            backdrop-filter:blur(6px);
            background:rgba(255,255,255,0.04);
        }

        .hero h1 {
            font-size:clamp(4.5rem,13vw,10rem);
            line-height:0.92;
            margin-bottom:36px;
            opacity:0;
            animation:riseUp 1s cubic-bezier(.22,1,.36,1) forwards 0.55s;
        }

        .hero-slogan {
            font-size:clamp(1rem,2.2vw,1.35rem);
            font-weight:300;
            letter-spacing:3px;
            text-transform:uppercase;
            color:var(--dim);
            margin-bottom:56px;
            opacity:0;
            animation:riseUp 1s cubic-bezier(.22,1,.36,1) forwards 0.8s;
        }

        .hero-buttons {
            display: flex;
            gap: 20px;
            justify-content: center;
            flex-wrap: wrap;
            opacity:0;
            animation:riseUp 1s cubic-bezier(.22,1,.36,1) forwards 1.05s;
        }

        .btn-primary {
            display:inline-block;
            background:var(--white);
            color:var(--p1);
            padding:20px 56px;
            border-radius:6px;
            text-decoration:none;
            font-family:'Bebas Neue',sans-serif;
            font-size:1.25rem;
            letter-spacing:3px;
            transition:all 0.35s cubic-bezier(.22,1,.36,1);
            position:relative; overflow:hidden;
        }
        .btn-primary::before {
            content:'';
            position:absolute; inset:0;
            background:linear-gradient(135deg, var(--p3), var(--g2));
            opacity:0;
            transition:opacity 0.35s ease;
        }
        .btn-primary:hover { color:var(--white); transform:translateY(-4px); box-shadow:0 20px 50px rgba(61,27,107,0.5); }
        .btn-primary:hover::before { opacity:1; }
        .btn-primary span { position:relative; z-index:1; }

        .btn-outline {
            display:inline-block;
            border:1px solid var(--dim2);
            color:var(--white);
            padding:18px 52px;
            border-radius:6px;
            text-decoration:none;
            font-family:'Bebas Neue',sans-serif;
            font-size:1.2rem;
            letter-spacing:3px;
            transition:all 0.35s cubic-bezier(.22,1,.36,1);
            backdrop-filter:blur(4px);
            background:rgba(255,255,255,0.04);
        }
        .btn-outline:hover {
            background:var(--white);
            color:var(--p1);
            border-color:var(--white);
            transform:translateY(-4px);
            box-shadow:0 20px 50px rgba(0,0,0,0.4);
        }

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

        .scroll-line {
            position:absolute; bottom:40px; left:50%;
            transform:translateX(-50%);
            display:flex; flex-direction:column; align-items:center; gap:12px;
            opacity:0; animation:riseUp 1s ease forwards 1.6s;
        }
        .scroll-line span { font-size:0.7rem; letter-spacing:4px; text-transform:uppercase; color:var(--dim); }
        .scroll-line-bar { width:1px; height:60px; background:linear-gradient(to bottom, var(--dim), transparent); animation:lineDown 2s ease-in-out infinite; }
        @keyframes lineDown { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

        /* ──────────────────── SECTIONS CLAIRES (MISSION, FAQ) ──────────────────── */
        .mission.light .mission-text { color: var(--dark-text); }
        .mission.light .mission-text strong { color: var(--p2); }
        .mission.light .mission-orb { background: radial-gradient(circle, rgba(45,16,80,0.08), transparent 70%); }

        section.light .section-title { color: var(--dark-text) !important; }
        .mission.light .mission-title { color: #0D2B1A !important; }
        section.light .label { color: var(--dark-dim) !important; }
        section.light > .container > p:not(.mission-text) { color: var(--dark-dim); }
        section.light .intro-block p { color: var(--dark-dim) !important; }
        .light {
            background: var(--light-bg) !important;
            color: var(--dark-text);
        }
        .light .label { color: var(--dark-dim); }
        .light .section-title { color: var(--dark-text); }
        .light p { color: var(--dark-dim); }
        .light strong { color: var(--dark-text); }
        .light .av-card {
            background: #EDE9E0;
            border-color: var(--dark-dim2);
            box-shadow: 0 4px 24px rgba(0,0,0,0.06);
        }
        .light .av-card:hover {
            background: #EDE9E0;
            border-color: rgba(13,26,16,0.25);
            box-shadow: 0 20px 40px rgba(0,0,0,0.12);
        }
        .light .av-card h4 { color: var(--dark-text); }
        .light .av-card p { color: var(--dark-dim); }
        .light .faq-item { border-bottom-color: var(--dark-dim2); }
        .light .faq-btn { color: var(--dark-text); }
        .light .faq-btn:hover { color: var(--dark-dim); }
        .light .faq-icon { border-color: var(--dark-dim2); }
        .light .faq-btn.open .faq-icon { transform: rotate(45deg); }
        .light .faq-body p { color: var(--dark-dim); }

        /* ──────────────────── CTA STRIP CLAIR ──────────────────── */
        .cta-strip-light {
            position: relative;
            height: 420px;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .cta-strip-bg {
            position: absolute;
            inset: -50px;
            background-image: url('assets/cta-mission.jpg');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            filter: brightness(0.7) saturate(0.9);
            will-change: transform;
            z-index: 0;
        }
        .cta-strip-light::before {
            content:'';
            position:absolute; inset:0;
            background: rgba(13,26,16,0.88);
            z-index:1;
        }
        .cta-strip-light .container { position:relative; z-index:2; padding: 0 32px; }
        .cta-strip-light p { color: var(--dark-dim); font-size:1rem; margin-bottom:28px; letter-spacing:1px; }
        .cta-strip-light::before {
            content:'';
            position:absolute; inset:0;
            background: rgba(13,26,16,0.88);
            z-index:1;
        }
        .cta-strip-light .container { position:relative; z-index:2; }
        .cta-strip-light p { color: var(--dark-dim); font-size:1rem; margin-bottom:28px; letter-spacing:1px; }

        .btn-dark {
            display:inline-block;
            background: var(--p2);
            color: var(--white);
            padding:20px 56px;
            border-radius:6px;
            text-decoration:none;
            font-family:'Bebas Neue',sans-serif;
            font-size:1.25rem;
            letter-spacing:3px;
            transition:all 0.35s cubic-bezier(.22,1,.36,1);
            position:relative; overflow:hidden;
        }
        .btn-dark::before {
            content:'';
            position:absolute; inset:0;
            background:linear-gradient(135deg, var(--g2), var(--p3));
            opacity:0;
            transition:opacity 0.35s ease;
        }
        .btn-dark:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(45,16,80,0.4); }
        .btn-dark:hover::before { opacity:1; }
        .btn-dark span { position:relative; z-index:1; }

        /* ──────────────────── LAYOUT ──────────────────── */
        .container { max-width:1120px; margin:0 auto; padding:0 32px; }
        section { padding:140px 32px; }

        .label {
            font-size:0.72rem; letter-spacing:5px; text-transform:uppercase;
            color:var(--dim); margin-bottom:24px; display:block;
            opacity: 0;
            transform: translateX(-50px);
        }
        .label.visible {
            animation: labelSlideIn 0.7s cubic-bezier(.34,1.56,.64,1) forwards;
        }

        @keyframes labelSlideIn {
            0%   { opacity: 0; transform: translateX(-50px); }
            60%  { opacity: 1; transform: translateX(6px); }
            80%  { opacity: 1; transform: translateX(-4px); }
            100% { opacity: 1; transform: translateX(0); }
        }

        .section-title {
            font-size:clamp(3rem,7vw,6rem);
            line-height:0.95;
            margin-bottom:64px;
        }

        /* ──────────────────── MISSION ──────────────────── */
        .mission { position:relative; overflow:hidden; }

        .mission-orb {
            position:absolute;
            width:500px; height:500px;
            background:radial-gradient(circle, rgba(61,27,107,0.3), transparent 70%);
            border-radius:50%; filter:blur(60px);
            right:-100px; top:50%; transform:translateY(-50%);
            pointer-events:none;
            animation:floatB 20s ease-in-out infinite;
        }

        .mission-text {
            font-size:clamp(1.3rem,2.8vw,1.9rem);
            font-weight:300;
            line-height:1.75;
            max-width:820px;
            position:relative; z-index:1;
        }
        .mission-text strong { font-weight:700; }

        .mission-kicker {
            display:block;
            font-size:0.72rem;
            letter-spacing:5px;
            text-transform:uppercase;
            color:var(--dark-dim);
            margin-bottom:20px;
        }

        .mission-title {
            font-family:'Bebas Neue',sans-serif;
            font-size:clamp(3rem,8vw,7rem);
            line-height:1;
            color:var(--p2);
            margin-bottom:48px;
            letter-spacing:2px;
        }

        .mission-accent {
            color:var(--p2);
        }

        .mission-body {
            font-family:'DM Sans', sans-serif;
            font-size:clamp(1.4rem,3vw,2rem);
            font-weight: 500;
            line-height:1.75;
            color:var(--p2);
            max-width:820px;
        }

        .mission-body strong {
            font-weight: 700;
            color:var(--p2);
            font-style:normal;
        }

        .mission-body em {
            font-style:italic;
            color:var(--p2);
        }

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

        .mission-body .word {
            display:inline-block;
            opacity:0;
            animation:wordReveal 0.6s cubic-bezier(.22,1,.36,1) forwards;
        }

        /* ──────────────────── PILLARS ──────────────────── */
        .pillars { position:relative; }

        .pillars-grid {
            display:grid;
            grid-template-columns:repeat(2,1fr);
            gap:20px;
            margin-top:20px;
        }

        @media(max-width:768px){ .pillars-grid{ grid-template-columns:1fr; } }

        .pillar-card {
            background:rgba(255,255,255,0.04);
            border:1px solid var(--dim2);
            border-radius:20px;
            padding:52px 44px;
            position:relative; overflow:hidden;
            transition:all 0.5s cubic-bezier(.22,1,.36,1);
            opacity:0; transform:translateY(40px);
        }
        .pillar-card.visible { opacity:1; transform:translateY(0); }

        .pillar-card::before {
            content:'';
            position:absolute; inset:0;
            background:linear-gradient(135deg, rgba(61,27,107,0.2), rgba(13,43,26,0.2));
            opacity:0;
            transition:opacity 0.4s ease;
            border-radius:20px;
        }
        .pillar-card:hover { transform:translateY(-8px); border-color:rgba(255,255,255,0.2); box-shadow:0 30px 60px rgba(0,0,0,0.4); }
        .pillar-card:hover::before { opacity:1; }

        .pillar-num {
            font-family:'Bebas Neue',sans-serif;
            font-size:6rem;
            position:absolute;
            top:10px; right:24px;
            line-height:1;
            color:rgba(255,255,255,0.05);
            pointer-events:none;
        }

        .pillar-card h3 {
            font-size:1.6rem;
            margin-bottom:20px;
            position:relative; z-index:1;
        }
        .pillar-card p {
            font-size:1rem;
            line-height:1.8;
            color:var(--dim);
            position:relative; z-index:1;
        }

        /* ──────────────────── PARALLAX ZONE ──────────────────── */
        .parallax-zone {
            position:relative;
            background: linear-gradient(180deg, var(--g2) 0%, var(--p1) 100%);
            overflow:hidden;
        }

        .parallax-zone::before {
            content:'';
            position:absolute; inset:0;
            background: 
                radial-gradient(ellipse at 20% 80%, rgba(13,43,26,0.4) 0%, transparent 50%),
                radial-gradient(ellipse at 80% 20%, rgba(61,27,107,0.3) 0%, transparent 50%);
        }

        .parallax-zone .container {
            position:relative;
            z-index:1;
        }

        .parallax-zone h2 {
            font-size:clamp(2.5rem,6vw,5rem);
            margin-bottom:32px;
        }

        .parallax-zone p {
            font-size:1.15rem;
            line-height:1.85;
            color:var(--dim);
            max-width:700px;
        }

                /* ──────────────────── PROGRAMMATION (Static) ──────────────────── */
        /* ── PROGRAMMATION CAROUSEL (opacity approach) ── */
        .programmation-section {
            position: relative;
            width: 100%;
            background: none;
            padding: 0;
        }

        .programmation-slider {
            position: relative;
            width: 100vw;
            height: 65vh;
            min-height: 480px;
            max-height: 700px;
            overflow: hidden;
            margin-left: calc(50% - 50vw);
            background: #000;
        }
        .programmation-slider::before {
            display: none;
        }

        .programmation-track {
            position: relative;
            width: 100%;
            height: 100%;
        }

        .prog-slide {
            position: absolute;
            inset: 0;
            opacity: 0;
            transition: opacity 0.6s ease;
            pointer-events: none;
        }

        .prog-slide.active {
            opacity: 1;
            pointer-events: auto;
        }

        .prog-slide-img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .prog-slide-overlay {
            position: absolute;
            inset: 0;
            background: rgba(0,0,0,0.4);
        }

        .programmation-track {
            position: relative;
            width: 100%;
            height: 100%;
        }

        .prog-slide {
            position: absolute;
            inset: 0;
            opacity: 0;
            transition: opacity 0.6s ease;
            pointer-events: none;
        }

        .prog-slide.active {
            opacity: 1;
            pointer-events: auto;
        }

        

        .prog-slide-content {
            position: relative;
            z-index: 2;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: space-between;
            height: 100%;
            text-align: center;
            padding: 60px 24px 40px;
        }

        .prog-badge {
            display: inline-block;
            border: 1px solid rgba(255,255,255,0.35);
            border-radius: 40px;
            padding: 8px 28px;
            font-size: 0.7rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: rgba(255,255,255,0.85);
            margin-bottom: 28px;
            backdrop-filter: blur(6px);
            background: rgba(255,255,255,0.06);
        }

        .prog-title {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(4.5rem, 13vw, 11rem);
            line-height: 0.88;
            color: var(--white);
            letter-spacing: 4px;
            text-shadow: 0 2px 24px rgba(0,0,0,0.6);
        }

        /* Arrows */
        .slider-arrow {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: rgba(255,255,255,0.12);
            border: 1px solid rgba(255,255,255,0.3);
            color: var(--white);
            font-size: 1.6rem;
            width: 52px;
            height: 52px;
            border-radius: 50%;
            cursor: pointer;
            z-index: 10;
            transition: background 0.2s;
            display: flex;
            align-items: center;
            justify-content: center;
            backdrop-filter: blur(8px);
        }

        .slider-arrow:hover { background: rgba(255,255,255,0.35); }
        .slider-prev { left: 1.2rem; }
        .slider-next { right: 1.2rem; }

        /* Dots */
        .slider-dots {
            position: absolute;
            bottom: 1.2rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            gap: 10px;
            z-index: 10;
        }

        .prog-dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: none;
            background: rgba(255,255,255,0.4);
            cursor: pointer;
            transition: background 0.2s, transform 0.2s;
            padding: 0;
        }

        .prog-dot.active {
            background: var(--white);
            transform: scale(1.3);
        }

        @media(max-width: 600px) {
            .slider-arrow { width: 42px; height: 42px; font-size: 1.3rem; }
            .prog-title { font-size: clamp(3.5rem, 18vw, 7rem); }
        }

/* ──────────────────── TEAL SECTION (OÙ VA VOTRE ARGENT) ──────────────────── */
        .teal-section {
            background: linear-gradient(180deg, var(--p1) 0%, var(--teal) 50%, var(--g2) 100%);
            position:relative;
        }

        .teal-section::before {
            content:'';
            position:absolute; inset:0;
            background: radial-gradient(ellipse at 50% 0%, rgba(15,107,107,0.3) 0%, transparent 60%);
        }

        .teal-section .container {
            position:relative;
            z-index:1;
        }

        .teal-section .section-title {
            color: var(--white) !important;
        }

        .teal-section .label {
            color: rgba(240,238,232,0.6) !important;
        }

        .teal-cards {
            display:grid;
            grid-template-columns:repeat(2,1fr);
            gap:24px;
        }

        @media(max-width:768px){ .teal-cards{ grid-template-columns:1fr; } }

        .teal-card {
            background:rgba(255,255,255,0.06);
            border:1px solid rgba(255,255,255,0.1);
            border-radius:20px;
            padding:40px 36px;
            transition:all 0.4s cubic-bezier(.22,1,.36,1);
            opacity:0; transform:translateY(30px);
        }
        .teal-card.visible { opacity:1; transform:translateY(0); }

        .teal-card:hover {
            background:rgba(255,255,255,0.1);
            transform:translateY(-6px);
            box-shadow:0 24px 48px rgba(0,0,0,0.3);
        }

        .teal-card h3 {
            font-size:1.4rem;
            margin-bottom:16px;
            display:flex;
            align-items:center;
            gap:12px;
        }
        .teal-card h3 span { font-size:1.6rem; }
        .teal-card p {
            font-size:0.95rem;
            line-height:1.9;
            color:rgba(240,238,232,0.7);
            text-align: left;
            word-break: break-word;
        }

        /* ──────────────────── PARALLAX ══════════════════════════ */
        .parallax-section {
            position: relative;
            height: 420px;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .parallax-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom, transparent 0%, rgba(8,26,16,0.3) 50%, transparent 100%);
            z-index: 1;
            pointer-events: none;
        }
        .parallax-bg {
            position: absolute;
            inset: -50px;
            background-image: url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=1920&q=80');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            filter: brightness(0.4) saturate(0.8);
            will-change: transform;
        }

        /* ──────────────────── PRICING ──────────────────── */
        .pricing { position:relative; }

        .pricing-orb {
            position:absolute;
            width:500px; height:500px;
            background:radial-gradient(circle, rgba(61,27,107,0.35), transparent 70%);
            border-radius:50%; filter:blur(70px);
            right:-100px; bottom:0;
            pointer-events:none;
            animation:floatA 24s ease-in-out infinite;
        }

        .pricing-cards {
            display:grid;
            grid-template-columns:repeat(3,1fr);
            gap:20px;
            margin-bottom:60px;
            position:relative; z-index:1;
        }

        @media(max-width:768px){ .pricing-cards{ grid-template-columns:1fr; } }

        .p-card {
            background:rgba(255,255,255,0.04);
            border:1px solid var(--dim2);
            border-radius:20px;
            padding:52px 36px;
            text-align:center;
            transition:all 0.5s cubic-bezier(.22,1,.36,1);
            opacity:0; transform:translateY(40px);
            position:relative; overflow:hidden;
        }
        .p-card.visible { opacity:1; transform:translateY(0); }

        .p-card::before {
            content:'';
            position:absolute; top:0; left:0; right:0; height:3px;
            background:linear-gradient(90deg, var(--p3), var(--g2), var(--p3));
            transform:scaleX(0);
            transition:transform 0.5s ease;
        }
        .p-card:hover { transform:translateY(-12px); border-color:rgba(255,255,255,0.2); box-shadow:0 40px 80px rgba(0,0,0,0.5); }
        .p-card:hover::before { transform:scaleX(1); }

        .p-card h3 { font-size:1.3rem; color:var(--dim); margin-bottom:32px; letter-spacing:3px; }
        .p-card .price-num { font-family:'Bebas Neue',sans-serif; font-size:6rem; line-height:1; margin-bottom:4px; }
        .p-card .price-per { font-size:0.85rem; color:var(--dim); margin-bottom:32px; letter-spacing:2px; text-transform:uppercase; }
        .p-card .p-desc { font-size:0.9rem; color:var(--dim); line-height:1.7; margin-bottom:40px; min-height:56px; }

        /* ──────────────────── TABLE ──────────────────── */
        .table-section { position:relative; z-index:1; margin-bottom:80px; }

        .table-label { font-size:0.72rem; letter-spacing:4px; text-transform:uppercase; color:var(--dim); margin-bottom:24px; display:block; }

        .table-wrap { overflow-x:auto; border:1px solid var(--dim2); border-radius:16px; }

        table { width:100%; border-collapse:collapse; }

        thead th {
            font-family:'Bebas Neue',sans-serif;
            font-size:1rem; letter-spacing:3px;
            padding:24px 28px;
            text-align:center;
            color:var(--dim);
            background:rgba(255,255,255,0.04);
            border-bottom:1px solid var(--dim2);
        }
        thead th:first-child { text-align:left; }

        tbody tr { transition:background 0.2s ease; }
        tbody tr:hover { background:rgba(255,255,255,0.04); }
        tbody tr:not(:last-child) { border-bottom:1px solid rgba(255,255,255,0.05); }

        tbody td {
            padding:20px 28px;
            text-align:center;
            color:var(--dim);
            font-size:0.92rem;
        }
        tbody td:first-child { text-align:left; color:var(--white); font-weight:500; }

        .check { color:var(--white); font-size:1rem; }
        .dash  { color:rgba(255,255,255,0.15); }

        /* ──────────────────── DONATION ──────────────────── */
        .donation-block {
            background:rgba(255,255,255,0.04);
            border:1px solid var(--dim2);
            border-radius:20px;
            padding:72px 60px;
            text-align:center;
            position:relative; overflow:hidden;
        }
        .donation-block::before {
            content:'';
            position:absolute; inset:0;
            background:radial-gradient(ellipse at 50% 0%, rgba(61,27,107,0.3), transparent 60%);
        }
        .donation-block h3 { font-size:3rem; margin-bottom:16px; position:relative; z-index:1; }
        .donation-block p { color:var(--dim); margin-bottom:44px; font-size:1rem; line-height:1.7; position:relative; z-index:1; }

        .donation-pills {
            display:flex; flex-wrap:wrap; gap:16px;
            justify-content:center;
            position:relative; z-index:1;
        }
        .dpill {
            border:1px solid var(--dim2);
            border-radius:6px;
            padding:16px 36px;
            color:var(--white);
            text-decoration:none;
            font-family:'Bebas Neue',sans-serif;
            font-size:1.2rem;
            letter-spacing:2px;
            transition:all 0.3s cubic-bezier(.22,1,.36,1);
            background:rgba(255,255,255,0.04);
        }
        .dpill:hover { background:var(--white); color:var(--p1); border-color:var(--white); transform:translateY(-4px) scale(1.05); }

        @media(max-width:600px){ .donation-block{ padding:44px 28px; } }

        /* ──────────────────── FAQ ──────────────────── */
        .faq { position:relative; overflow:hidden; background: #EDE9E0 !important; }

        .faq-orb {
            position:absolute;
            width:400px; height:400px;
            background:radial-gradient(circle, rgba(13,43,26,0.4), transparent 70%);
            border-radius:50%; filter:blur(60px);
            right:0; top:50%;
            pointer-events:none;
        }

        .faq-list { max-width:820px; margin-top:60px; position:relative; z-index:1; }

        .faq-item {
            border-bottom:1px solid var(--dim2);
            position:relative;
            overflow:hidden;
        }

        /* Animated glow line — left border */
        .faq-item::before {
            content:'';
            position:absolute;
            left:0; top:0; bottom:0;
            width:3px;
            background: linear-gradient(
                180deg,
                var(--p2) 0%,
                rgba(169,78,169,0.3) 50%,
                var(--p2) 100%
            );
            transform: scaleY(0);
            transform-origin: top;
            transition: transform 0.5s cubic-bezier(.22,1,.36,1);
        }

        .faq-item.open::before {
            transform: scaleY(1);
        }

        .faq-btn {
            width:100%; background:none; border:none;
            color:var(--dark-text); text-align:left;
            padding:32px 0 32px 20px;
            font-family:'DM Sans',sans-serif;
            font-size:1.05rem; font-weight:600;
            cursor:pointer;
            display:flex; justify-content:space-between; align-items:center; gap:24px;
            transition:color 0.2s ease;
            position:relative;
            z-index:1;
        }
        .faq-btn:hover { color:var(--p2); }

        .faq-icon {
            width:32px; height:32px;
            border:1px solid var(--dim2);
            border-radius:50%;
            display:flex; align-items:center; justify-content:center;
            font-size:1.2rem; font-weight:300;
            transition:all 0.35s cubic-bezier(.22,1,.36,1);
            flex-shrink:0;
            position:relative;
            z-index:1;
        }

        /* Icon rotates on open */
        .faq-btn.open .faq-icon {
            transform:rotate(45deg);
        }

        .faq-body {
            max-height:0; overflow:hidden;
            transition:max-height 0.45s cubic-bezier(.22,1,.36,1);
            position:relative;
            z-index:1;
        }
        .faq-body.open { max-height:300px; }
        .faq-body p {
            color:var(--dim);
            line-height:1.85;
            font-size:0.95rem;
            padding:0 20px 32px 20px;
            animation: fadeUp 0.4s ease both;
            font-weight: 300;
        }

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

        /* ──────────────────── CTA FINAL ──────────────────── */
        .cta-final {
            padding:120px 32px;
            text-align:center;
            background: linear-gradient(180deg, var(--g1) 0%, var(--p1) 100%);
            position:relative;
            overflow:hidden;
        }
        .cta-final::before {
            content:'';
            position:absolute; inset:0;
            background: radial-gradient(ellipse at 50% 50%, rgba(61,27,107,0.25), transparent 70%);
        }
        .cta-final .container {
            position:relative;
            z-index:1;
        }
        .cta-final h2 {
            font-size:clamp(2.5rem,6vw,4.5rem);
            margin-bottom:24px;
        }
        .cta-final p {
            font-size:1.15rem;
            color:var(--dim);
            margin-bottom:48px;
            max-width:600px;
            margin-left:auto;
            margin-right:auto;
        }

        /* ──────────────────── FOOTER ──────────────────── */
        footer {
            background:var(--p1);
            padding:100px 32px 48px;
            text-align:center;
            position:relative; overflow:hidden;
        }
        footer::before {
            content:'';
            position:absolute; top:0; left:0; right:0; height:1px;
            background:linear-gradient(90deg, transparent, var(--p3), var(--g2), transparent);
        }

        .footer-orb {
            position:absolute;
            width:600px; height:300px;
            background:radial-gradient(circle, rgba(61,27,107,0.2), transparent 70%);
            border-radius:50%; filter:blur(60px);
            top:0; left:50%; transform:translateX(-50%);
        }

        .footer-content {
            display:flex;
            align-items:center;
            gap:14px;
            justify-content:center;
            margin-bottom:48px;
            position:relative; z-index:1;
        }
        .footer-logo {
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
            height: 100px;
            width: auto;
        }
        .footer-logo img {
            height: 100%; width: auto; object-fit: contain;
        }
        .footer-logo-img {
            width: 64px;
            height: 64px;
            object-fit: contain;
        }
        .footer-name {
            font-family: 'Bebas Neue', sans-serif;
            font-size: 1.3rem;
            letter-spacing: 2px;
            color: var(--white);
            line-height: 1.1;
            text-align:left;
        }
        .footer-name strong {
            font-family: 'DM Sans', sans-serif;
            font-weight: 800;
            font-size: 1.1rem;
            letter-spacing: 3px;
            display: block;
        }

        .footer-mission {
            font-size:clamp(1rem,1.8vw,1.15rem);
            font-style:italic;
            font-weight:300;
            line-height:1.9;
            color:var(--dim);
            max-width:680px;
            margin:0 auto 56px;
            position:relative; z-index:1;
        }

        .footer-contact { margin-bottom:56px; position:relative; z-index:1; }
        .footer-contact a {
            color:var(--white); text-decoration:none;
            margin:0 24px; font-size:0.95rem;
            transition:opacity 0.2s ease;
        }
        .footer-contact a:hover { opacity:0.5; }

        .footer-links {
            margin-bottom:40px;
            position:relative; z-index:1;
        }
        .footer-links a {
            color:var(--dim);
            text-decoration:none;
            margin:0 20px;
            font-size:0.9rem;
            transition:color 0.2s ease;
        }
        .footer-links a:hover { color:var(--white); }

        .footer-copy {
            padding-top:48px;
            border-top:1px solid var(--dim2);
            font-size:0.82rem; color:var(--dim);
            line-height:1.8;
            position:relative; z-index:1;
        }

        @media(max-width:600px) {
            .navbar { padding: 16px 20px; }
            .navbar.scrolled { padding: 12px 20px; }
            .navbar-links,
            .navbar-cta,
            .currency-switcher { display: none; }
            .hero-buttons { flex-direction: column; align-items: center; }
            .teal-cards { grid-template-columns: 1fr; }
            .nav-hamburger { display: flex; }
            .mobile-menu {
                display: none;
                position: fixed;
                top: 0; left: 0; right: 0; bottom: 0;
                background: linear-gradient(160deg, #0D2B1A 0%, #132238 35%, #1A0B2E 65%, #2D1050 100%);
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 24px;
                z-index: 998;
                padding: 40px 20px;
                overflow-y: auto;
            }
            .mobile-menu.open { display: flex; }
            .mobile-menu a {
                font-family: 'Bebas Neue', sans-serif;
                font-size: 2.4rem;
                letter-spacing: 3px;
                text-transform: uppercase;
                color: rgba(237,233,224,0.75);
                text-decoration: none;
                transition: color 0.25s ease, transform 0.25s ease;
                padding: 6px 0;
            }
            .mobile-menu a:hover { color: var(--white); transform: translateX(4px); }
            .mobile-menu a.active { color: var(--white); }
            .mobile-currency {
                display: flex;
                gap: 0;
                border: 1px solid rgba(237,233,224,0.25);
                border-radius: 4px;
                overflow: hidden;
                margin: 8px 0;
            }
            .mobile-currency button {
                background: transparent;
                border: none;
                color: rgba(237,233,224,0.55);
                font-family: 'DM Sans', sans-serif;
                font-size: 0.85rem;
                font-weight: 500;
                letter-spacing: 1px;
                padding: 10px 20px;
                cursor: pointer;
                transition: all 0.2s ease;
            }
            .mobile-currency button:hover { color: var(--white); }
            .mobile-currency button.active {
                background: rgba(255,255,255,0.12);
                color: var(--white);
            }
            .mobile-menu .mobile-cta {
                font-family: 'Bebas Neue', sans-serif;
                font-size: 1.3rem;
                letter-spacing: 3px;
                color: var(--g1);
                background: var(--white);
                border: 1px solid var(--white);
                padding: 14px 48px;
                border-radius: 4px;
                text-decoration: none;
                transition: all 0.3s ease;
                margin-top: 8px;
            }
            .mobile-menu .mobile-cta:hover {
                background: transparent;
                color: var(--white);
            }
        }
/* ── BUTTONS ── */
.btn {
    display: inline-block;
    padding: 14px 32px;
    border-radius: 4px;
    font-family: 'Bebas Neue', sans-serif;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: all 0.3s;
}
.btn-primary {
    background: #d4a574;
    color: var(--p1);
}
.btn-primary:hover {
    background: #e8bc8a;
    transform: translateY(-2px);
}

/* ══════════════════════════════════════════════
   PROGRAMMATION + ATLAS PAGES
   ══════════════════════════════════════════════ */

/* Page hero */
.page-hero {
    padding: 160px 0 80px;
    text-align: center;
    background: linear-gradient(160deg, var(--p1), var(--g2));
}
.page-hero h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(4.5rem, 13vw, 10rem);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    line-height: 0.92;
    color: var(--white);
    margin-bottom: 36px;
}
.page-hero p {
    font-family: 'DM Sans', sans-serif;
    font-size: clamp(1rem, 2.2vw, 1.35rem);
    font-weight: 300;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--dim);
    margin-bottom: 0;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
}

/* Section pad */
.section-pad { padding: 80px 0; }
.bg-vert { background: var(--g1); }
.bg-teal { background: var(--g2); }
.bg-mauve { background: radial-gradient(ellipse at 50% 0%, var(--p-mauve) 40%, var(--teal) 100%); }
.bg-atlas { background: radial-gradient(ellipse at 50% 40%, var(--teal) 0%, var(--g3) 70%); }

/* Container */
.container { max-width: 1120px; margin: 0 auto; padding: 0 32px; }

/* Reveal animation */
.reveal { opacity: 0; transform: translateY(24px); transition: all 0.7s cubic-bezier(.22,1,.36,1); }
.reveal.visible { opacity: 1; transform: none; }

/* Filter buttons */
.filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 56px;
    justify-content: center;
}
.filter-btn {
    background: transparent;
    border: 1px solid rgba(240,238,232,0.2);
    color: rgba(250,248,245,0.6);
    padding: 10px 24px;
    border-radius: 40px;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all 0.25s;
}
.filter-btn:hover { border-color: var(--or); color: var(--or); }
.filter-btn.active { background: var(--or); border-color: var(--or); color: var(--p1); font-weight: 600; }

/* Events grid */
.events-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 32px;
}

/* Event card */
.event-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(240,238,232,0.08);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.35s;
}
.event-card:hover {
    border-color: rgba(212,165,116,0.3);
    transform: translateY(-4px);
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
.event-card.hidden { display: none; }
.event-photo {
    position: relative;
    height: 200px;
    background: var(--g2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.photo-placeholder {
    width: 48px; height: 48px;
    color: rgba(250,248,245,0.3);
}
.photo-label {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 2px;
    color: rgba(250,248,245,0.3);
    margin-top: 8px;
}
.event-body { padding: 28px 24px 32px; }
.event-tag {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--or);
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.event-body h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    color: var(--blanc);
    letter-spacing: 1px;
    margin-bottom: 6px;
}
.event-meta {
    font-size: 0.85rem;
    color: rgba(250,248,245,0.45);
    margin-bottom: 12px;
    font-style: italic;
}
.event-body p {
    font-size: 0.92rem;
    line-height: 1.75;
    color: rgba(250,248,245,0.55);
}

/* Atlas grid */
.atlas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 28px;
}
.atlas-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(240,238,232,0.08);
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.3s;
}
.atlas-card:hover {
    border-color: rgba(212,165,116,0.25);
    transform: translateY(-3px);
}
.atlas-photo {
    height: 160px;
    background: var(--g2);
    display: flex;
    align-items: center;
    justify-content: center;
}
.atlas-body { padding: 20px 22px 26px; }
.atlas-date {
    font-size: 0.78rem;
    color: rgba(250,248,245,0.35);
    letter-spacing: 1px;
    margin-bottom: 6px;
    text-transform: uppercase;
}
.atlas-body h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem;
    color: var(--blanc);
    letter-spacing: 1px;
    margin-bottom: 8px;
}
.atlas-body p {
    font-size: 0.88rem;
    line-height: 1.7;
    color: rgba(250,248,245,0.5);
}
.atlas-body .photo-label {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 2px;
    color: rgba(250,248,245,0.25);
    margin-top: 8px;
}

/* CTA section */
.cta-section {
    text-align: center;
    padding: 100px 32px;
    background: linear-gradient(160deg, var(--p1), var(--g2));
}
.cta-section h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2rem, 5vw, 3.5rem);
    color: var(--blanc);
    letter-spacing: 3px;
    margin-bottom: 16px;
}
.cta-section p {
    font-size: 1rem;
    color: rgba(250,248,245,0.6);
    margin-bottom: 40px;
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 14px 32px;
    border-radius: 4px;
    font-family: 'DM Sans', sans-serif;
    font-weight: 500;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s;
    cursor: pointer;
    border: none;
}
.btn-primary {
    background: var(--or);
    color: var(--p1);
}
.btn-primary:hover {
    background: #e8bc8a;
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(212,165,116,0.3);
}
.btn-sm { padding: 10px 22px; font-size: 0.88rem; }


/* Hamburger */
.nav-hamburger {
    display: none;
    cursor: pointer;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9999;
    background: none;
    border: none;
    padding: 4px;
    flex-direction: column;
    gap: 5px;
}
.nav-hamburger.visible { display: flex; }
.nav-hamburger span {
    display: block;
    width: 22px; height: 2px;
    background: rgba(250,248,245,0.7);
    margin: 0;
    transition: all 0.3s;
}
.nav-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.is-open span:nth-child(2) { opacity: 0; }
.nav-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-links.open { display: flex !important; }
