        /* ═══ DESIGN TOKENS ═══ */
        :root {
            --teal: #7AC4B8;
            --teal-d: #4EA89C;
            --teal-darker: #2d8a7e;
            --gold: #C8A96E;
            --gold-d: #a8893e;
            --gold-darker: #8a6830;
            --ink: #1A1A18;
            --cream: #F4F3EE;
            --bg: #1A1A18;
            --bg-soft: #222220;
            --bg-card: #1e1e1c;
            --text: #FAFAF8;
            --text-sub: rgba(250,250,248,.72);
            --text-mute: rgba(250,250,248,.55);
            --border: rgba(255,255,255,.1);
            --border-s: rgba(255,255,255,.06);
            --shadow: rgba(0,0,0,.4);
            --nav-bg: rgba(26,26,24,.92);
            --modal-bg: #1e1e1c;
            --input-bg: rgba(255,255,255,.06);
            --serif: 'Playfair Display',Georgia,serif;
            --sans: 'DM Sans',system-ui,sans-serif;
            --quote: 'Cormorant Garamond',Georgia,serif;
            --gutter: clamp(1.25rem,4vw,3rem);
            --section: clamp(4rem,9vw,7rem);
            --radius: 6px;
            --radius-lg: 10px;
            --max-w: 1280px;
        }


        /* ═══ RESET & BASE ═══ */
        *, *::before, *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0
        }

        html {
            scroll-behavior: smooth;
            font-size: 16px;
            -webkit-text-size-adjust: 100%;
            background: #1A1A18;
            color-scheme: dark
        }

        body {
            font-family: var(--sans);
            background: var(--bg);
            color: var(--text);
            line-height: 1.6;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased
        }

        #main {
            background: var(--bg)
        }

        main {
            background: var(--bg)
        }

        img, svg {
            display: block;
            max-width: 100%;
            height: auto
        }

        a {
            color: inherit;
            text-decoration: none
        }

        button {
            font: inherit;
            cursor: pointer;
            background: none;
            border: none;
            color: inherit
        }

        input, textarea, select {
            font: inherit;
            color: inherit
        }

        ul {
            list-style: none
        }

        ::selection {
            background: var(--teal);
            color: var(--ink)
        }

        ::-webkit-scrollbar {
            width: 8px;
            height: 8px
        }

        ::-webkit-scrollbar-track {
            background: transparent
        }

        ::-webkit-scrollbar-thumb {
            background: rgba(122,196,184,.3);
            border-radius: 4px
        }

        /* ═══ ACCESSIBILITY ═══ */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0,0,0,0);
            white-space: nowrap;
            border: 0
        }

        .skip-link {
            position: absolute;
            top: -100px;
            left: 1rem;
            background: var(--teal);
            color: var(--ink);
            padding: .75rem 1.25rem;
            border-radius: 0 0 4px 4px;
            font-weight: 700;
            font-size: .85rem;
            z-index: 9999;
            transition: top .2s
        }

            .skip-link:focus {
                top: 0;
                outline: none
            }

        :focus {
            outline: none
        }

        :focus-visible {
            outline: 2px solid var(--teal);
            outline-offset: 3px;
            border-radius: 3px
        }

        @media (prefers-reduced-motion:reduce) {
            *, *::before, *::after {
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: .01ms !important;
                scroll-behavior: auto !important
            }
        }

        /* ═══ UTILITIES ═══ */
        .inner {
            max-width: var(--max-w);
            margin: 0 auto;
            padding: 0 var(--gutter)
        }

        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: .75rem;
            font-size: .7rem;
            font-weight: 700;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: var(--text-mute);
            margin-bottom: 1.25rem
        }

            .eyebrow::before {
                content: '';
                height: 1px;
                width: 28px;
                background: var(--teal);
                flex-shrink: 0
            }

        h1, h2, h3, h4 {
            font-family: var(--serif);
            font-weight: 700;
            line-height: 1.1;
            letter-spacing: -.02em
        }

            h1 em, h2 em, h3 em {
                font-style: italic;
                color: var(--teal)
            }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: .5rem;
            padding: .85rem 1.6rem;
            border-radius: 4px;
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .1em;
            text-transform: uppercase;
            cursor: pointer;
            text-decoration: none;
            transition: background .2s,color .2s,border-color .2s,transform .15s;
            min-height: 44px;
            border: 1.5px solid transparent
        }

            .btn:hover {
                transform: translateY(-1px)
            }

        .btn-primary {
            background: var(--teal);
            color: var(--ink)
        }

            .btn-primary:hover {
                background: var(--teal-d)
            }

        .btn-secondary {
            background: transparent;
            color: var(--text);
            border-color: var(--border)
        }

            .btn-secondary:hover {
                border-color: var(--gold);
                color: var(--gold)
            }

        /* ═══ EVENT BANNER ═══ */
        #event-banner {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 200;
            background: var(--ink);
            border-bottom: 1px solid rgba(122,196,184,.18);
            height: 38px;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: .75rem;
            padding: 0 1rem;
            font-size: .82rem;
            color: rgba(250,250,248,.85);
            transition: transform .3s
        }

        .banner-hidden #event-banner {
            transform: translateY(-100%)
        }

        #event-banner .eb-dot {
            width: 7px;
            height: 7px;
            border-radius: 50%;
            background: var(--teal);
            animation: pulse 2s ease-in-out infinite;
            flex-shrink: 0
        }

        @keyframes pulse {
            0%,100% {
                opacity: 1;
                transform: scale(1)
            }

            50% {
                opacity: .5;
                transform: scale(.9)
            }
        }

        #event-banner strong {
            color: var(--teal);
            font-weight: 700
        }

        .eb-cta {
            color: var(--teal);
            font-weight: 600;
            text-decoration: underline;
            text-underline-offset: 3px;
            white-space: nowrap
        }

            .eb-cta:hover {
                color: var(--text)
            }

        .eb-close {
            width: 28px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            color: rgba(250,250,248,.5);
            transition: background .2s,color .2s
        }

            .eb-close:hover {
                background: rgba(255,255,255,.08);
                color: var(--text)
            }

        @media (max-width:640px) {
            #event-banner {
                font-size: .72rem;
                padding: 0 .5rem;
                gap: .5rem
            }

            .eb-text-long {
                display: none
            }
        }

        /* ═══ NAVIGATION ═══ */
        #nav {
            position: fixed;
            top: 38px;
            left: 0;
            right: 0;
            z-index: 150;
            height: 68px;
            display: flex;
            align-items: center;
            padding: 0 var(--gutter);
            transition: background .35s,box-shadow .35s,top .3s
        }

            #nav.scrolled {
                background: var(--nav-bg);
                backdrop-filter: blur(20px);
                -webkit-backdrop-filter: blur(20px);
                box-shadow: 0 1px 24px var(--shadow)
            }

        .banner-hidden #nav {
            top: 0
        }

        .nav-logo {
            display: flex;
            align-items: center;
            margin-right: 1.5rem;
            height: 32px;
            transition: opacity .2s
        }

            .nav-logo:hover {
                opacity: .85
            }

        .nav-logo-img {
            height: 32px;
            width: auto;
            display: block;
            border-radius: 3px
        }

        .nav-links {
            display: flex;
            gap: clamp(1rem,2.5vw,2rem);
            margin: 0 auto
        }

            .nav-links a {
                font-size: .82rem;
                font-weight: 600;
                color: var(--text-sub);
                padding: .5rem 0;
                position: relative;
                transition: color .2s
            }

                .nav-links a::after {
                    content: '';
                    position: absolute;
                    bottom: -2px;
                    left: 0;
                    right: 0;
                    height: 1.5px;
                    background: var(--teal);
                    transform: scaleX(0);
                    transform-origin: left;
                    transition: transform .25s
                }

                .nav-links a:hover {
                    color: var(--text)
                }

                    .nav-links a:hover::after {
                        transform: scaleX(1)
                    }

        .nav-right {
            display: flex;
            align-items: center;
            gap: .6rem
        }

        .lang-toggle {
            display: flex;
            border: 1px solid var(--border);
            border-radius: 4px;
            overflow: hidden
        }

        .lang-btn {
            padding: .4rem .7rem;
            font-size: .68rem;
            font-weight: 700;
            letter-spacing: .1em;
            color: var(--text-mute);
            transition: background .2s,color .2s;
            min-height: 32px;
            display: flex;
            align-items: center
        }

            .lang-btn[aria-pressed="true"] {
                background: var(--teal);
                color: var(--ink)
            }

            .lang-btn:hover:not([aria-pressed="true"]) {
                background: var(--bg-soft);
                color: var(--text)
            }


        .nav-cta {
            padding: .5rem 1rem;
            font-size: .72rem;
            font-weight: 700;
            letter-spacing: .08em;
            text-transform: uppercase;
            border-radius: 4px;
            min-height: 38px;
            display: inline-flex;
            align-items: center;
            transition: background .2s,border-color .2s
        }

        .nav-cta-solid {
            background: var(--teal);
            color: var(--ink)
        }

            .nav-cta-solid:hover {
                background: var(--teal-d)
            }

        .nav-cta-ghost {
            border: 1px solid var(--border);
            color: var(--text)
        }

            .nav-cta-ghost:hover {
                border-color: var(--gold);
                color: var(--gold)
            }

        .hamburger {
            display: none;
            width: 38px;
            height: 38px;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 5px;
            border: 1px solid var(--border);
            border-radius: 4px
        }

            .hamburger span {
                display: block;
                width: 18px;
                height: 2px;
                background: var(--text);
                border-radius: 1px;
                transition: transform .3s,opacity .2s
            }

            .hamburger[aria-expanded="true"] span:nth-child(1) {
                transform: translateY(7px) rotate(45deg)
            }

            .hamburger[aria-expanded="true"] span:nth-child(2) {
                opacity: 0
            }

            .hamburger[aria-expanded="true"] span:nth-child(3) {
                transform: translateY(-7px) rotate(-45deg)
            }

        .mobile-menu {
            display: none;
            position: fixed;
            top: calc(38px + 68px);
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--bg);
            z-index: 140;
            padding: 2rem var(--gutter);
            overflow-y: auto;
            flex-direction: column
        }

            .mobile-menu.open {
                display: flex
            }

            .mobile-menu a {
                font-family: var(--sans);
                font-size: 1.15rem;
                font-weight: 600;
                letter-spacing: -.01em;
                padding: 1.1rem 0;
                border-bottom: 1px solid var(--border-s);
                color: var(--text)
            }

                .mobile-menu a:hover {
                    color: var(--teal)
                }

        .mob-ctas {
            display: flex;
            flex-direction: column;
            gap: .75rem;
            margin-top: 2rem
        }

            .mob-ctas .btn {
                font-family: var(--sans);
                font-size: 1.15rem;
                font-weight: 600;
                letter-spacing: -.01em;
                text-transform: none;
                padding: 1rem 1.6rem;
                min-height: 54px
            }

        @media (max-width:1024px) {
            .nav-links {
                gap: 1rem;
                margin: 0 auto
            }

                .nav-links a {
                    font-size: .76rem
                }
        }

        @media (max-width:900px) {
            .nav-links, .nav-cta-ghost, .nav-cta-solid {
                display: none
            }

            .hamburger {
                display: flex
            }
        }

        /* ═══ HERO ═══ */
        #hero {
            position: relative;
            min-height: 100svh;
            display: flex;
            flex-direction: column;
            padding-top: calc(38px + 68px);
            overflow: hidden;
            background: var(--bg)
        }

        .hero-bg {
            position: absolute;
            inset: 0;
            pointer-events: none;
            z-index: 0
        }

        .hero-grid {
            position: absolute;
            inset: 0;
            background-image: linear-gradient(rgba(122,196,184,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(122,196,184,.04) 1px,transparent 1px);
            background-size: 72px 72px;
            mask-image: radial-gradient(ellipse at top right,rgba(0,0,0,.7),transparent 70%)
        }

        .hero-glow {
            position: absolute;
            top: -10%;
            right: -10%;
            width: 60vw;
            height: 60vw;
            max-width: 800px;
            max-height: 800px;
            border-radius: 50%;
            background: radial-gradient(circle,rgba(122,196,184,.08) 0%,transparent 60%)
        }

        .hero-cloud {
            position: absolute;
            top: 0;
            right: 0;
            width: 45%;
            height: 100%;
            z-index: 1;
            pointer-events: none
        }

        .hero-cloud-svg {
            width: 100%;
            height: 100%
        }

        .hc-particle {
            fill: var(--teal);
            opacity: .3
        }

        .hc-label {
            font-family: var(--sans);
            font-weight: 700;
            letter-spacing: .08em;
            text-transform: uppercase;
            font-size: 5px;
            fill: var(--teal);
            opacity: .55
        }

        @media (max-width:900px) {
            .hc-label {
                font-size: 9px;
                letter-spacing: .1em;
                opacity: .6
            }
        }

        .hc-label.gold {
            fill: var(--gold)
        }

        .hero-content {
            position: relative;
            z-index: 2;
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: clamp(2rem,5vw,4rem) var(--gutter);
            max-width: var(--max-w);
            margin: 0 auto;
            width: 100%
        }

        .hero-eyebrow {
            display: inline-flex;
            align-items: center;
            gap: .75rem;
            font-size: .82rem;
            font-weight: 600;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: var(--text-mute);
            margin-bottom: 1.75rem;
            animation: fadeUp .8s .1s both
        }

            .hero-eyebrow::before {
                content: '';
                height: 1px;
                width: 28px;
                background: var(--teal);
                flex-shrink: 0
            }

        .hero-h1 {
            font-size: clamp(2.76rem,8.05vw,5.75rem);
            font-weight: 900;
            line-height: .98;
            margin-bottom: 2rem
        }

            .hero-h1 .line {
                display: block;
                overflow: hidden;
                line-height: 1.15;
                padding-bottom: .05em
            }

                .hero-h1 .line span {
                    display: block;
                    animation: slideUp 1s cubic-bezier(.16,1,.3,1) both
                }

                .hero-h1 .line:nth-child(1) span {
                    animation-delay: .15s
                }

                .hero-h1 .line:nth-child(2) {
                    font-style: italic;
                    font-weight: 400;
                    font-size: .42em;
                    line-height: 1.4;
                    color: var(--teal);
                    letter-spacing: -.01em;
                    margin: .25em 0;
                    overflow: visible
                }

                    .hero-h1 .line:nth-child(2) span {
                        animation-delay: .3s
                    }

                .hero-h1 .line:nth-child(3) span {
                    animation-delay: .45s;
                    color: var(--text);
                    opacity: .2
                }

        @keyframes slideUp {
            from {
                transform: translateY(110%)
            }

            to {
                transform: translateY(0)
            }
        }

        @keyframes fadeUp {
            from {
                opacity: 0;
                transform: translateY(12px)
            }

            to {
                opacity: 1;
                transform: none
            }
        }

        .hero-tagline {
            font-size: clamp(1rem,1.4vw,1.2rem);
            line-height: 1.7;
            color: var(--text-sub);
            max-width: 560px;
            margin-top: 0;
            margin-bottom: 2rem;
            animation: fadeUp .8s .6s both
        }

            .hero-tagline strong {
                color: var(--text);
                font-weight: 600
            }

        .hero-ctas {
            display: flex;
            gap: .75rem;
            flex-wrap: wrap;
            margin-bottom: 3rem;
            animation: fadeUp .8s .75s both
        }

        .hero-stats {
            display: grid;
            grid-template-columns: repeat(3,1fr);
            gap: 1px;
            background: var(--border-s);
            border-radius: 4px;
            overflow: hidden;
            max-width: 640px;
            animation: fadeUp .8s .9s both
        }

        .hero-stat {
            background: var(--bg-card);
            padding: 1.1rem 1.25rem;
            transition: background .3s
        }

            .hero-stat:hover {
                background: var(--bg-soft)
            }

            .hero-stat strong {
                display: block;
                font-family: var(--serif);
                font-size: clamp(1.8rem,3.5vw,2.6rem);
                font-weight: 700;
                line-height: 1;
                color: var(--text);
                margin-bottom: .35rem
            }

                .hero-stat strong sup {
                    font-size: .55em;
                    color: var(--teal);
                    margin-left: .1em
                }

            .hero-stat small {
                display: block;
                font-size: .76rem;
                color: var(--text-mute);
                line-height: 1.4
            }

        .hero-scroll {
            position: absolute;
            bottom: 1.5rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: .4rem;
            color: var(--text-mute);
            font-size: .58rem;
            font-weight: 600;
            letter-spacing: .2em;
            text-transform: uppercase;
            opacity: .5;
            animation: bounce 2.5s ease-in-out infinite
        }

        @keyframes bounce {
            0%,100% {
                transform: translateX(-50%) translateY(0)
            }

            50% {
                transform: translateX(-50%) translateY(6px)
            }
        }

        @media (max-width:900px) {
            .hero-cloud {
                display: none
            }

            .hero-content {
                padding-bottom: 0
            }
        }

        @media (max-width:640px) {
            .hero-stats {
                grid-template-columns: repeat(3,1fr);
                max-width: 100%
            }

            .hero-stat {
                padding: .85rem .6rem
            }

                .hero-stat strong {
                    font-size: clamp(1.4rem,5vw,1.8rem)
                }

                .hero-stat small {
                    font-size: .66rem
                }

            .hero-ctas {
                flex-direction: column
            }

                .hero-ctas .btn {
                    width: 100%
                }
        }

        /* ═══ MARQUEE ═══ */
        .marquee {
            background: var(--cream);
            border-top: 1px solid rgba(26,26,24,.08);
            border-bottom: 1px solid rgba(26,26,24,.08);
            overflow: hidden;
            display: flex;
            align-items: center;
            height: 56px
        }

        .marquee-label {
            flex-shrink: 0;
            padding: 0 1.5rem;
            font-size: .65rem;
            font-weight: 700;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: rgba(26,26,24,.45);
            border-right: 1px solid rgba(26,26,24,.1);
            height: 100%;
            display: flex;
            align-items: center
        }

        .marquee-track-wrap {
            flex: 1;
            overflow: hidden;
            display: flex;
            align-items: center;
            mask-image: linear-gradient(to right,transparent,black 4%,black 96%,transparent);
            -webkit-mask-image: linear-gradient(to right,transparent,black 4%,black 96%,transparent)
        }

        .marquee-track {
            display: flex;
            gap: 1.5rem;
            animation: scroll 45s linear infinite;
            width: max-content
        }

        .marquee:hover .marquee-track {
            animation-play-state: paused
        }

        @keyframes scroll {
            to {
                transform: translateX(-50%)
            }
        }

        .marquee-item {
            padding: 0;
            font-size: .82rem;
            font-weight: 600;
            color: rgba(26,26,24,.65);
            white-space: nowrap;
            display: flex;
            align-items: center;
            gap: 1.5rem
        }

            .marquee-item::after {
                content: '';
                width: 4px;
                height: 4px;
                border-radius: 50%;
                background: rgba(26,26,24,.25)
            }

        @media (max-width:640px) {
            .marquee-label {
                font-size: .58rem;
                padding: 0 1rem
            }

            .marquee-item {
                font-size: .76rem;
                padding: 0;
                gap: 1rem
            }
        }
        /* ═══ FAIR WAY ═══ */
        #fairway {
            background: var(--teal);
            padding: var(--section) 0 0;
            position: relative;
            overflow: hidden
        }

        .section-waves {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0
        }

        .fw-inner {
            max-width: var(--max-w);
            margin: 0 auto;
            padding: 0 var(--gutter);
            display: grid;
            grid-template-columns: 1fr 1.2fr;
            gap: clamp(2.5rem,6vw,6rem);
            align-items: start;
            position: relative;
            z-index: 1;
            padding-bottom: var(--section)
        }

        .fw-eyebrow {
            display: inline-flex;
            align-items: center;
            gap: .75rem;
            font-size: .7rem;
            font-weight: 700;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: rgba(26,26,24,.55);
            margin-bottom: 1.25rem
        }

            .fw-eyebrow::before {
                content: '';
                height: 1px;
                width: 24px;
                background: rgba(26,26,24,.4);
                flex-shrink: 0
            }

        .fw-title {
            font-size: clamp(2rem,4.5vw,3.2rem);
            font-weight: 900;
            line-height: 1.05;
            color: var(--ink);
            margin-bottom: .5rem
        }

        .fw-title-accent {
            display: block;
            font-style: italic;
            font-weight: 400;
            font-size: clamp(2.4rem,5.5vw,4.5rem);
            margin-top: .1em
        }

        .fw-sub {
            font-size: .92rem;
            color: rgba(26,26,24,.65);
            line-height: 1.7;
            max-width: 380px;
            margin-top: 1.5rem
        }

        .fw-pillar {
            border-bottom: 1px solid rgba(26,26,24,.15)
        }

            .fw-pillar:first-child {
                border-top: 1px solid rgba(26,26,24,.15)
            }

        .fw-pillar-header {
            display: grid;
            grid-template-columns: 40px 1fr 30px;
            gap: 1rem;
            align-items: center;
            width: 100%;
            padding: 1.4rem 0;
            text-align: left;
            transition: opacity .2s
        }

        .fw-pillar-num {
            font-family: var(--sans);
            font-size: .68rem;
            font-weight: 700;
            letter-spacing: .12em;
            color: rgba(26,26,24,.4)
        }

        .fw-pillar-name {
            font-family: var(--serif);
            font-size: clamp(1.2rem,2.5vw,1.55rem);
            font-weight: 700;
            color: var(--ink)
        }

        .fw-pillar.open .fw-pillar-name {
            font-weight: 800
        }

        .fw-pillar-arrow {
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: rgba(26,26,24,.45);
            transition: transform .3s
        }

        .fw-pillar.open .fw-pillar-arrow {
            transform: rotate(45deg)
        }

        .fw-pillar-body {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows .4s cubic-bezier(.4,0,.2,1)
        }

        .fw-pillar.open .fw-pillar-body {
            grid-template-rows: 1fr
        }

        @media (hover:hover) {
            .fw-pillar:hover .fw-pillar-body {
                grid-template-rows: 1fr
            }

            .fw-pillar:hover .fw-pillar-arrow {
                transform: rotate(45deg)
            }

            .fw-pillar:hover .fw-pillar-name {
                font-weight: 800
            }
        }

        .fw-pillar-body-inner {
            overflow: hidden;
            padding-left: calc(40px + 1rem)
        }

        .fw-pillar-content {
            padding-bottom: 1.5rem;
            font-size: .9rem;
            color: rgba(26,26,24,.72);
            line-height: 1.75
        }

            .fw-pillar-content strong {
                color: var(--ink);
                font-weight: 600
            }

        .fw-pillar-proof {
            display: inline-flex;
            align-items: center;
            gap: .5rem;
            margin-top: 1rem;
            padding: .4rem .9rem;
            background: rgba(26,26,24,.1);
            border-radius: 100px;
            font-size: .72rem;
            font-weight: 600;
            color: rgba(26,26,24,.7)
        }

            .fw-pillar-proof::before {
                content: '';
                width: 6px;
                height: 6px;
                border-radius: 50%;
                background: var(--ink);
                opacity: .4
            }

        @media (max-width:900px) {
            .fw-inner {
                grid-template-columns: 1fr;
                gap: 2.5rem
            }

            .fw-sub {
                max-width: 100%
            }
        }

        .fw-rse {
            border-top: 1px solid rgba(26,26,24,.18);
            padding: 2rem 0;
            position: relative;
            z-index: 1
        }

        .fw-rse-inner {
            max-width: var(--max-w);
            margin: 0 auto;
            padding: 0 var(--gutter);
            display: grid;
            grid-template-columns: auto 1fr auto;
            gap: 2rem;
            align-items: center
        }

        .fw-rse-badge {
            display: flex;
            align-items: center;
            gap: 1.1rem;
            padding: .85rem 1.25rem;
            background: rgba(26,26,24,.08);
            border: 1px solid rgba(26,26,24,.18);
            border-radius: var(--radius)
        }

        .fw-rse-logo {
            width: 84px;
            height: 84px;
            flex-shrink: 0;
            display: block;
            filter: drop-shadow(0 3px 6px rgba(0,0,0,.18))
        }

        .fw-rse-info {
            display: flex;
            flex-direction: column;
            gap: .3rem
        }

        .fw-rse-name {
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--ink);
            line-height: 1.2
        }

        .fw-rse-rank {
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .08em;
            text-transform: uppercase;
            color: rgba(26,26,24,.75)
        }

        .fw-rse-desc {
            font-size: 1.05rem;
            color: rgba(26,26,24,.8);
            line-height: 1.6;
            max-width: 460px;
            font-weight: 500
        }

        .fw-rse-assos {
            display: flex;
            gap: .6rem;
            flex-wrap: wrap
        }

        .fw-rse-asso {
            display: inline-flex;
            align-items: center;
            gap: .6rem;
            padding: .6rem 1.1rem;
            background: rgba(26,26,24,.08);
            border: 1px solid rgba(26,26,24,.16);
            border-radius: 100px;
            font-size: .88rem;
            font-weight: 600;
            color: rgba(26,26,24,.85);
            transition: background .2s,border-color .2s
        }

            .fw-rse-asso:hover {
                background: rgba(26,26,24,.15);
                border-color: rgba(26,26,24,.3)
            }

            .fw-rse-asso .dot {
                width: 10px;
                height: 10px;
                border-radius: 50%;
                flex-shrink: 0
            }

            .fw-rse-asso.surfrider .dot {
                background: #009FDB
            }

            .fw-rse-asso.urgence .dot {
                background: #3a9c3a
            }

            .fw-rse-asso.mer .dot {
                background: #0060a0
            }

        @media (max-width:900px) {
            .fw-rse-inner {
                grid-template-columns: 1fr;
                gap: 1.25rem
            }

            .fw-rse-desc {
                max-width: 100%
            }

            .fw-rse-logo {
                width: 72px;
                height: 72px
            }
        }

        /* ═══ OFFRES ═══ */
        #offres {
            background: var(--bg);
            padding: var(--section) 0;
            position: relative
        }


        .offres-inner {
            position: relative;
            z-index: 1
        }

        .offres-head {
            margin-bottom: clamp(2.5rem,5vw,4rem)
        }

            .offres-head h2 {
                font-size: clamp(2rem,4vw,3rem);
                color: var(--text)
            }

        .offres-sub {
            font-size: .92rem;
            color: var(--text-sub);
            max-width: 480px;
            margin-top: 1rem;
            line-height: 1.7
        }

        .offres-grid {
            display: grid;
            grid-template-columns: repeat(3,1fr);
            gap: 1.25rem
        }

        .offre-card {
            background: var(--bg-card);
            border: 1px solid var(--border-s);
            border-radius: var(--radius-lg);
            padding: clamp(1.5rem,3vw,2.25rem);
            display: flex;
            flex-direction: column;
            text-align: left;
            cursor: pointer;
            transition: border-color .3s,transform .25s,box-shadow .3s;
            min-height: 420px
        }

            .offre-card:hover {
                transform: translateY(-4px);
                border-color: var(--teal);
                box-shadow: 0 12px 32px var(--shadow),0 0 0 1px rgba(122,196,184,.4),0 0 24px rgba(122,196,184,.2)
            }

            .offre-card.gold {
                border-color: var(--border-s)
            }

                .offre-card.gold:hover {
                    border-color: var(--gold);
                    box-shadow: 0 12px 32px var(--shadow),0 0 0 1px rgba(200,169,110,.4),0 0 24px rgba(200,169,110,.2)
                }

        .offre-tag {
            font-size: .68rem;
            font-weight: 700;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--teal);
            margin-bottom: 1rem
        }

        .offre-card.gold .offre-tag {
            color: var(--gold)
        }

        .offre-title {
            font-family: var(--serif);
            font-size: clamp(1.5rem,2.5vw,2rem);
            font-weight: 700;
            color: var(--text);
            margin-bottom: .5rem
        }

            .offre-title em {
                font-style: italic;
                color: var(--teal)
            }

        .offre-card.gold .offre-title em {
            color: var(--gold)
        }

        .offre-desc {
            font-size: .9rem;
            color: var(--text-sub);
            line-height: 1.65;
            margin-bottom: 1.5rem
        }

        .offre-stats {
            display: flex;
            flex-direction: column;
            gap: .65rem;
            margin-bottom: 1.5rem;
            flex: 1
        }

        .offre-stat {
            display: flex;
            align-items: baseline;
            gap: .65rem;
            padding-bottom: .65rem;
            border-bottom: 1px solid var(--border-s)
        }

            .offre-stat:last-child {
                border-bottom: none
            }

            .offre-stat strong {
                font-family: var(--serif);
                font-size: 1.6rem;
                font-weight: 700;
                color: var(--teal);
                line-height: 1;
                min-width: 80px
            }

        .offre-card.gold .offre-stat strong {
            color: var(--gold)
        }

        .offre-stat span {
            font-size: .82rem;
            color: var(--text-mute)
        }

        .offre-cta {
            display: inline-flex;
            align-items: center;
            gap: .4rem;
            font-size: .76rem;
            font-weight: 700;
            letter-spacing: .08em;
            text-transform: uppercase;
            color: var(--teal);
            padding-top: 1rem;
            border-top: 1px solid var(--border-s);
            transition: gap .2s
        }

        .offre-card.gold .offre-cta {
            color: var(--gold)
        }

        .offre-card:hover .offre-cta {
            gap: .65rem
        }

        @media (max-width:1024px) {
            .offres-grid {
                grid-template-columns: 1fr 1fr
            }
        }

        @media (max-width:640px) {
            .offres-grid {
                grid-template-columns: 1fr
            }

            .offre-card {
                min-height: auto
            }
        }

        /* ═══ COMMUNAUTÉS ═══ */
        #communautes {
            background: var(--bg);
            padding: var(--section) 0
        }

        .eco-head {
            margin-bottom: clamp(2.5rem,5vw,4rem)
        }

            .eco-head h2 {
                font-size: clamp(2rem,4vw,3rem);
                color: var(--text)
            }

        .eco-sub {
            font-size: .92rem;
            color: var(--text-sub);
            max-width: 520px;
            margin-top: 1rem;
            line-height: 1.7
        }

        .eco-grid {
            display: grid;
            grid-template-columns: repeat(4,1fr);
            gap: 1rem
        }

        .eco-card {
            position: relative;
            aspect-ratio: 1/1;
            border-radius: var(--radius-lg);
            overflow: hidden;
            border: 1px solid var(--border);
            cursor: pointer;
            transition: transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .25s;
            background-size: cover;
            background-position: center;
            animation: ecoFloat 9s ease-in-out infinite;
            will-change: transform
        }

        .eco-grid .eco-card:nth-child(1) {
            animation-delay: 0s;
            animation-duration: 8.5s
        }

        .eco-grid .eco-card:nth-child(2) {
            animation-delay: -1.4s;
            animation-duration: 10.2s
        }

        .eco-grid .eco-card:nth-child(3) {
            animation-delay: -2.8s;
            animation-duration: 9.7s
        }

        .eco-grid .eco-card:nth-child(4) {
            animation-delay: -4.1s;
            animation-duration: 11.3s
        }

        .eco-grid .eco-card:nth-child(5) {
            animation-delay: -5.5s;
            animation-duration: 8.8s
        }

        .eco-grid .eco-card:nth-child(6) {
            animation-delay: -6.9s;
            animation-duration: 10.6s
        }

        .eco-grid .eco-card:nth-child(7) {
            animation-delay: -3.2s;
            animation-duration: 9.4s
        }

        @keyframes ecoFloat {
            0%,100% {
                transform: translateY(0) translateX(0)
            }

            25% {
                transform: translateY(-6px) translateX(3px)
            }

            50% {
                transform: translateY(-3px) translateX(-4px)
            }

            75% {
                transform: translateY(-8px) translateX(2px)
            }
        }

        .eco-card:hover {
            animation-play-state: paused
        }

        @media (prefers-reduced-motion:reduce) {
            .eco-card {
                animation: none !important
            }
        }

        .eco-card:hover {
            transform: translateY(-10px) scale(1.02) !important;
            box-shadow: 0 20px 50px var(--shadow);
            border-color: rgba(122,196,184,.4)
        }

        .eco-card.gold:hover {
            border-color: rgba(200,169,110,.4)
        }

        .eco-card::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to top,rgba(10,10,8,.85) 0%,rgba(10,10,8,.4) 50%,rgba(10,10,8,0) 100%);
            z-index: 1;
            pointer-events: none
        }

        .eco-card {
            isolation: isolate;
            background-color: #1a1a18
        }

        .eco-label {
            position: absolute;
            bottom: 1rem;
            left: 1.1rem;
            right: 1rem;
            z-index: 2;
            font-family: var(--serif);
            font-size: clamp(1.6rem,3vw,2.4rem);
            font-weight: 700;
            color: #fff;
            line-height: 1.1
        }

        .eco-label-prefix {
            display: none
        }

        .eco-label em {
            font-style: italic;
            color: var(--teal)
        }

        .eco-card.gold .eco-label em {
            color: var(--gold)
        }

        .eco-product {
            background-image: url('https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=600&q=80')
        }

        .eco-design {
            background-image: url('https://images.unsplash.com/photo-1558655146-9f40138edfeb?auto=format&fit=crop&w=600&q=80')
        }

        .eco-project {
            background-image: url('https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=600&q=80')
        }

        .eco-data {
            background-image: url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=600&q=80')
        }

        .eco-ia {
            background-image: url('https://images.unsplash.com/photo-1677442136019-21780ecad995?auto=format&fit=crop&w=600&q=80')
        }

        .eco-innov {
            background-image: url('https://images.unsplash.com/photo-1519389950473-47ba0277781c?auto=format&fit=crop&w=600&q=80')
        }

        .eco-chain {
            background-image: url('https://images.unsplash.com/photo-1517694712202-14dd9538aa97?auto=format&fit=crop&w=600&q=80')
        }

        @media (max-width:1024px) {
            .eco-grid {
                grid-template-columns: repeat(3,1fr)
            }
        }

        @media (max-width:700px) {
            .eco-grid {
                display: flex;
                flex-wrap: nowrap;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                scroll-snap-type: x mandatory;
                gap: .625rem;
                margin-left: calc(-1 * var(--gutter));
                margin-right: calc(-1 * var(--gutter));
                padding: 0 var(--gutter) 1.25rem;
                scrollbar-width: none
            }

            .eco-grid::-webkit-scrollbar {
                display: none
            }

            .eco-card {
                flex: 0 0 68vw;
                max-width: 260px;
                scroll-snap-align: start;
                aspect-ratio: 3/4
            }

            .eco-label {
                font-size: 1.5rem
            }
        }

        /* ═══ EVENTS ═══ */
        #events {
            background: var(--cream);
            padding: var(--section) 0;
            color: var(--ink)
        }

            #events .eyebrow {
                color: rgba(26,26,24,.55)
            }

                #events .eyebrow::before {
                    background: rgba(26,26,24,.4)
                }

        .ev-head {
            margin-bottom: clamp(2.5rem,5vw,4rem)
        }

            .ev-head h2 {
                font-size: clamp(2rem,4.5vw,3.4rem);
                color: var(--ink)
            }

                .ev-head h2 em {
                    color: var(--teal-darker)
                }

        .ev-sub {
            font-size: .92rem;
            color: rgba(26,26,24,.65);
            max-width: 480px;
            margin-top: 1rem;
            line-height: 1.7
        }

        .ev-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.5rem
        }

        .ev-card {
            background: #fff;
            border-radius: var(--radius-lg);
            overflow: hidden;
            border: 1px solid rgba(26,26,24,.08);
            border-left: 3px solid var(--teal-darker);
            display: flex;
            flex-direction: column;
            transition: transform .3s,box-shadow .3s
        }

            .ev-card:hover {
                transform: translateY(-4px);
                box-shadow: 0 16px 40px rgba(26,26,24,.1)
            }

            .ev-card.gold {
                border-left-color: var(--gold-darker)
            }

        .ev-visual {
            position: relative;
            height: 200px;
            overflow: hidden;
            background: #1a1a18
        }

            .ev-visual img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                opacity: .82;
                transition: transform .4s
            }

        .ev-card:hover .ev-visual img {
            transform: scale(1.05)
        }

        .ev-visual::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to top,rgba(10,10,8,.7),rgba(10,10,8,.1) 70%)
        }

        .ev-tags {
            position: absolute;
            bottom: 1rem;
            left: 1.25rem;
            right: 1rem;
            z-index: 1;
            font-size: .6rem;
            font-weight: 700;
            letter-spacing: .18em;
            text-transform: uppercase;
            color: rgba(255,255,255,.75)
        }

        .ev-body {
            padding: 1.75rem
        }

        .ev-title {
            font-family: var(--serif);
            font-size: 1.4rem;
            font-weight: 700;
            color: var(--ink);
            margin-bottom: .85rem
        }

            .ev-title em {
                font-style: normal;
                color: var(--teal-darker)
            }

        .ev-card.gold .ev-title em {
            color: var(--gold-darker)
        }

        .ev-desc {
            font-size: .88rem;
            color: rgba(26,26,24,.7);
            line-height: 1.7;
            margin-bottom: 1.25rem
        }

        .ev-features {
            display: flex;
            flex-direction: column;
            gap: .55rem;
            margin-bottom: 1.5rem
        }

            .ev-features li {
                display: flex;
                align-items: flex-start;
                gap: .65rem;
                font-size: .82rem;
                color: rgba(26,26,24,.7);
                line-height: 1.5
            }

                .ev-features li::before {
                    content: '';
                    width: 6px;
                    height: 6px;
                    border-radius: 50%;
                    background: var(--teal-darker);
                    flex-shrink: 0;
                    margin-top: .5rem
                }

        .ev-card.gold .ev-features li::before {
            background: var(--gold-darker)
        }

        .ev-cta {
            display: inline-flex;
            align-items: center;
            gap: .4rem;
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .08em;
            text-transform: uppercase;
            color: var(--teal-darker);
            padding-top: 1rem;
            border-top: 1px solid rgba(26,26,24,.08);
            transition: gap .2s
        }

        .ev-card.gold .ev-cta {
            color: var(--gold-darker)
        }

        .ev-card:hover .ev-cta {
            gap: .7rem
        }

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

        /* ═══ SIGNATURE ═══ */


        /* ═══ FOOTER ═══ */
        #footer {
            background: #111110;
            border-top: 1px solid rgba(255,255,255,.05);
            padding: clamp(3rem,6vw,4.5rem) 0 0;
            color: rgba(250,250,248,.6)
        }

        .footer-top {
            max-width: var(--max-w);
            margin: 0 auto;
            padding: 0 var(--gutter);
            display: grid;
            grid-template-columns: 1.4fr 2fr;
            gap: clamp(2.5rem,6vw,5rem);
            margin-bottom: 3rem
        }

        .footer-logo {
            font-family: var(--serif);
            font-size: 1.6rem;
            font-weight: 700;
            color: rgba(250,250,248,.9);
            margin-bottom: 1rem
        }

            .footer-logo em {
                color: var(--teal);
                font-style: italic
            }

        .footer-tagline {
            font-family: var(--quote);
            font-style: italic;
            font-size: 1rem;
            color: rgba(250,250,248,.45);
            margin-bottom: 1rem
        }

        .footer-addr {
            font-size: .82rem;
            color: rgba(250,250,248,.4);
            line-height: 1.7;
            margin-bottom: 1.5rem
        }

        .footer-social {
            display: flex;
            gap: .6rem
        }

            .footer-social a {
                width: 36px;
                height: 36px;
                border-radius: 50%;
                background: rgba(255,255,255,.06);
                border: 1px solid rgba(255,255,255,.08);
                display: flex;
                align-items: center;
                justify-content: center;
                color: rgba(250,250,248,.5);
                transition: background .2s,border-color .2s,color .2s
            }

                .footer-social a:hover {
                    background: rgba(122,196,184,.12);
                    border-color: rgba(122,196,184,.3);
                    color: var(--teal)
                }

        .footer-links {
            display: grid;
            grid-template-columns: repeat(3,1fr);
            gap: 2rem
        }

        .footer-col-title {
            font-size: .72rem;
            font-weight: 700;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: rgba(250,250,248,.35);
            margin-bottom: 1rem;
            display: block
        }

        .footer-col ul {
            display: flex;
            flex-direction: column;
            gap: .55rem
        }

        .footer-col a {
            font-size: .85rem;
            color: rgba(250,250,248,.55);
            transition: color .2s;
            display: inline-block;
            padding: .15rem 0
        }

            .footer-col a:hover {
                color: var(--teal)
            }

        .footer-bottom {
            max-width: var(--max-w);
            margin: 0 auto;
            padding: 1.5rem var(--gutter);
            border-top: 1px solid rgba(255,255,255,.05);
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 1rem
        }

        .footer-copy {
            font-size: .8rem;
            color: rgba(250,250,248,.35)
        }

        .footer-sig {
            font-family: var(--quote);
            font-style: italic;
            font-size: .9rem;
            color: rgba(250,250,248,.4)
        }

        @media (max-width:900px) {
            .footer-top {
                grid-template-columns: 1fr
            }
        }

        @media (max-width:600px) {
            .footer-links {
                grid-template-columns: 1fr 1fr;
                gap: 1.5rem
            }
        }

        /* ═══ MODALS ═══ */
        .modal {
            position: fixed;
            inset: 0;
            z-index: 500;
            background: rgba(0,0,0,.7);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            display: none;
            align-items: center;
            justify-content: center;
            padding: 1rem
        }

            .modal.open {
                display: flex
            }

        .modal-box {
            background: var(--modal-bg);
            border: 1px solid var(--border);
            border-radius: var(--radius-lg);
            padding: clamp(1.5rem,4vw,2.5rem);
            max-width: 540px;
            width: 100%;
            position: relative;
            max-height: 90svh;
            overflow-y: auto;
            animation: modalIn .3s cubic-bezier(.16,1,.3,1)
        }

        @keyframes modalIn {
            from {
                opacity: 0;
                transform: scale(.96) translateY(14px)
            }

            to {
                opacity: 1;
                transform: scale(1) translateY(0)
            }
        }

        .modal-close {
            position: absolute;
            top: .75rem;
            right: .75rem;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--text-mute);
            font-size: 1.4rem;
            transition: background .2s,color .2s
        }

            .modal-close:hover {
                background: var(--border);
                color: var(--text)
            }

        .modal-eyebrow {
            font-size: .65rem;
            font-weight: 700;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: var(--text-mute);
            margin-bottom: .75rem
        }

        .modal-title {
            font-family: var(--serif);
            font-size: clamp(1.4rem,3vw,1.8rem);
            font-weight: 700;
            line-height: 1.15;
            color: var(--text);
            margin-bottom: .75rem
        }

            .modal-title em {
                font-style: italic;
                color: var(--teal)
            }

        .modal-sub {
            font-size: .88rem;
            color: var(--text-sub);
            line-height: 1.65;
            margin-bottom: 1.5rem
        }

        .form-group {
            display: flex;
            flex-direction: column;
            gap: .35rem;
            margin-bottom: .85rem
        }

        .form-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: .75rem;
            margin-bottom: .85rem
        }

        .form-group label {
            font-size: .68rem;
            font-weight: 700;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--text-mute)
        }

            .form-group label .req {
                color: var(--teal)
            }

        .form-group input, .form-group textarea, .form-group select {
            background: var(--input-bg);
            border: 1px solid var(--border);
            border-radius: 4px;
            padding: .75rem .9rem;
            color: var(--text);
            font-size: .9rem;
            min-height: 44px;
            transition: border-color .2s,background .3s
        }

            .form-group input:focus, .form-group textarea:focus, .form-group select:focus {
                border-color: var(--teal);
                outline: none
            }

            .form-group input:required:invalid:not(:placeholder-shown) {
                border-color: rgba(229,99,79,.5)
            }

        .form-group textarea {
            resize: vertical;
            min-height: 100px
        }

        .form-msg {
            margin-top: 1rem;
            padding: .85rem 1rem;
            border-radius: 4px;
            font-size: .85rem;
            display: none
        }

            .form-msg.ok {
                display: block;
                background: rgba(122,196,184,.1);
                border: 1px solid rgba(122,196,184,.3);
                color: var(--teal)
            }

            .form-msg.err {
                display: block;
                background: rgba(229,99,79,.1);
                border: 1px solid rgba(229,99,79,.3);
                color: #e5634f
            }

        @media (max-width:480px) {
            .form-row {
                grid-template-columns: 1fr
            }
        }

        .sim-range {
            margin-bottom: 1.25rem
        }

            .sim-range label {
                display: flex;
                justify-content: space-between;
                align-items: baseline;
                font-size: .85rem;
                color: var(--text-mute);
                margin-bottom: .5rem
            }

                .sim-range label strong {
                    color: var(--teal);
                    font-weight: 700
                }

            .sim-range input[type=range] {
                -webkit-appearance: none;
                appearance: none;
                width: 100%;
                height: 6px;
                background: var(--border);
                border-radius: 3px;
                outline: none
            }

                .sim-range input[type=range]::-webkit-slider-thumb {
                    -webkit-appearance: none;
                    appearance: none;
                    width: 22px;
                    height: 22px;
                    background: var(--teal);
                    border-radius: 50%;
                    cursor: pointer;
                    transition: transform .15s
                }

                    .sim-range input[type=range]::-webkit-slider-thumb:hover {
                        transform: scale(1.15)
                    }

                .sim-range input[type=range]::-moz-range-thumb {
                    width: 22px;
                    height: 22px;
                    background: var(--teal);
                    border-radius: 50%;
                    cursor: pointer;
                    border: none
                }

        .sim-results {
            background: rgba(122,196,184,.06);
            border: 1px solid rgba(122,196,184,.18);
            border-radius: var(--radius);
            padding: 1rem 1.25rem;
            display: flex;
            flex-direction: column;
            gap: .55rem
        }

            .sim-results.gold {
                background: rgba(200,169,110,.06);
                border-color: rgba(200,169,110,.2)
            }

        .sim-row {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            padding: .3rem 0;
            border-bottom: 1px solid rgba(122,196,184,.1)
        }

            .sim-row:last-child {
                border-bottom: none
            }

            .sim-row span {
                font-size: .82rem;
                color: var(--text-mute)
            }

            .sim-row strong {
                font-family: var(--serif);
                font-size: 1.1rem;
                font-weight: 700;
                color: var(--teal)
            }

        .sim-results.gold .sim-row strong {
            color: var(--gold)
        }

        .sim-note {
            font-size: .72rem;
            color: var(--text-mute);
            line-height: 1.5;
            margin-top: .75rem;
            padding-top: .75rem;
            border-top: 1px solid rgba(255,255,255,.06)
        }

        .btn-submit {
            width: 100%;
            margin-top: 1rem
        }

        /* ═══ FAB ═══ */

        /* ═══ MOBILE STICKY BOTTOM NAV ═══ */
        .mob-sticky {
            display: none
        }

        @media (max-width:900px) {
            /* Bouton hero déjà présent dans la sticky — on le masque */
            .hero-ctas .btn-primary {
                display: none
            }

            .mob-sticky {
                display: flex;
                position: fixed;
                bottom: 0;
                left: 0;
                right: 0;
                z-index: 90;
                background: rgba(13,13,11,.98);
                backdrop-filter: blur(20px);
                -webkit-backdrop-filter: blur(20px);
                border-top: 1px solid rgba(122,196,184,.2);
                box-shadow: 0 -8px 32px rgba(0,0,0,.55), inset 0 1px 0 rgba(122,196,184,.08);
                padding: .625rem .75rem calc(.625rem + env(safe-area-inset-bottom,0));
                gap: .5rem;
                align-items: stretch
            }

            .mob-sticky-item {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: .3rem;
                padding: .5rem .75rem;
                color: var(--text-sub);
                text-decoration: none;
                background: rgba(255,255,255,.05);
                border: 1px solid rgba(255,255,255,.08);
                cursor: pointer;
                flex: 1;
                min-height: 58px;
                border-radius: 12px;
                transition: color .2s, background .2s, border-color .2s;
                font-family: var(--sans)
            }

                .mob-sticky-item:hover, .mob-sticky-item:focus-visible {
                    color: var(--teal);
                    background: rgba(122,196,184,.09);
                    border-color: rgba(122,196,184,.25)
                }

                .mob-sticky-item svg {
                    width: 20px;
                    height: 20px;
                    flex-shrink: 0
                }

                .mob-sticky-item span {
                    font-size: .6rem;
                    font-weight: 700;
                    letter-spacing: .06em;
                    text-transform: uppercase;
                    text-align: center;
                    line-height: 1.1
                }

            .mob-sticky-cta {
                flex: 1.6;
                background: linear-gradient(135deg, var(--teal) 0%, var(--teal-d) 100%);
                border: none;
                color: var(--ink);
                border-radius: 12px;
                box-shadow: 0 4px 18px rgba(122,196,184,.3)
            }

                .mob-sticky-cta svg {
                    width: 20px;
                    height: 20px;
                    color: var(--ink)
                }

                .mob-sticky-cta span {
                    color: var(--ink);
                    font-size: .65rem;
                    font-weight: 700
                }

                .mob-sticky-cta:hover, .mob-sticky-cta:focus-visible {
                    background: linear-gradient(135deg, #8dd4c8 0%, var(--teal) 100%);
                    color: var(--ink);
                    border-color: transparent;
                    box-shadow: 0 6px 24px rgba(122,196,184,.45)
                }

            #footer {
                padding-bottom: calc(80px + env(safe-area-inset-bottom,0)) !important
            }
        }

        .fab-cluster {
            position: fixed;
            bottom: 1.5rem;
            right: 1.5rem;
            z-index: 100;
            display: flex;
            align-items: center;
            gap: .5rem
        }

        .fab {
            display: flex;
            align-items: center;
            gap: .6rem;
            padding: .85rem 1.4rem;
            background: var(--teal);
            color: var(--ink);
            border-radius: 100px;
            font-size: .76rem;
            font-weight: 700;
            letter-spacing: .06em;
            box-shadow: 0 6px 28px rgba(122,196,184,.35);
            transition: background .2s,transform .2s,box-shadow .2s;
            min-height: 44px
        }

            .fab:hover {
                background: var(--teal-d);
                transform: translateY(-2px);
                box-shadow: 0 10px 32px rgba(122,196,184,.45)
            }

        .fab-top {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: var(--bg-card);
            color: var(--text);
            border: 1px solid var(--border);
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 16px var(--shadow);
            transition: all .2s;
            opacity: 0;
            visibility: hidden;
            transform: translateY(8px)
        }

            .fab-top.visible {
                opacity: 1;
                visibility: visible;
                transform: translateY(0)
            }

            .fab-top:hover {
                background: var(--teal);
                color: var(--ink);
                border-color: var(--teal);
                transform: translateY(-2px)
            }

        @media (max-width:480px) {
            .fab {
                padding: .8rem;
                border-radius: 50%;
                width: 52px;
                height: 52px;
                justify-content: center
            }

                .fab span {
                    display: none
                }
        }

        @media (max-width:900px) {
            .fab-cluster {
                display: none !important
            }
        }

        /* ═══ REVEAL ═══ */
        .reveal {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity .8s ease,transform .8s ease
        }

            .reveal.visible {
                opacity: 1;
                transform: none
            }

        .d1 {
            transition-delay: .1s
        }

        .d2 {
            transition-delay: .2s
        }

        .d3 {
            transition-delay: .3s
        }

        /* ═══ MODE PRESENTATION ═══ */
        body.mode-rdv #footer, body.mode-rdv #events, body.mode-rdv .marquee, body.mode-rdv #event-banner {
            display: none
        }

        body.mode-rdv #nav {
            top: 0
        }

        .mode-badge {
            position: fixed;
            bottom: 1rem;
            left: 50%;
            transform: translateX(-50%);
            z-index: 9999;
            background: rgba(14,14,12,.92);
            color: var(--teal);
            font-size: .65rem;
            font-weight: 700;
            letter-spacing: .14em;
            text-transform: uppercase;
            padding: .4rem .9rem;
            border-radius: 100px;
            border: 1px solid rgba(122,196,184,.3)
        }
