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

        :root {
            --sand: #F5F0E8;
            --sand-dark: #E8E0CE;
            --stone: #C4B49A;
            --stone-dark: #8C7B62;
            --charcoal: #2A2520;
            --charcoal-mid: #3D3730;
            --cream: #FAF7F2;
            --sea: #4A7C8E;
            --sea-light: #7AACBC;
            --sea-muted: #D0E4EA;
            --gold: #C9A96E;
            --gold-light: #E8D5B0;
            --white: #FFFFFF;
        }

        html {
            scroll-behavior: smooth;
            overflow-x: hidden;
        }

        body {
            font-family: 'Inter', sans-serif;
            background: var(--charcoal);
            color: var(--cream);
            overflow-x: hidden;
            max-width: 100vw;
            line-height: 1.6;
        }

        /* NAV */
        nav {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 202;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.6rem 4rem;
            background: #ffffff;
            box-shadow: 0 1px 0 rgba(0,0,0,0.08);
        }

        .nav-logo {
            display: flex;
            align-items: center;
        }

        .nav-logo img {
            height: 56px;
            width: auto;
            display: block;
        }

        .nav-links {
            display: flex;
            gap: 2.5rem;
        }

            .nav-links a {
                font-size: 0.72rem;
                letter-spacing: 0.2em;
                text-transform: uppercase;
                color: var(--charcoal);
                text-decoration: none;
                opacity: 0.7;
                transition: opacity 0.2s, color 0.2s;
                position: relative;
            }

                .nav-links a::after {
                    content: '';
                    position: absolute;
                    bottom: -3px;
                    left: 0;
                    width: 100%;
                    height: 0.5px;
                    background: var(--gold);
                    transform: scaleX(0);
                    transform-origin: left;
                    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
                }

                .nav-links a:hover {
                    opacity: 1;
                    color: var(--gold);
                }

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

        .nav-cta {
            font-size: 0.7rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            padding: 0.6rem 1.5rem;
            border: 0.5px solid var(--gold);
            color: var(--gold);
            text-decoration: none;
            transition: all 0.2s;
            background: transparent;
            cursor: pointer;
        }

            .nav-cta:hover {
                background: var(--gold);
                color: var(--charcoal);
            }

        /* HERO */
        .hero {
            min-height: 100vh;
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            background: var(--charcoal);
        }

        .hero-bg {
            position: absolute;
            inset: 0;
            background-image: url('/images/hero.webp');
            background-size: cover;
            background-position: center center;
            background-repeat: no-repeat;
        }

        .hero-texture {
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom, rgba(10,8,6,0.1) 0%, rgba(10,8,6,0.05) 25%, rgba(10,8,6,0.5) 50%, rgba(10,8,6,0.95) 75%, rgba(10,8,6,1) 100%);
        }

        .hero-line-top {
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0.5px;
            height: 120px;
            background: linear-gradient(to bottom, transparent, var(--gold));
            opacity: 0.4;
        }

        .hero-content {
            position: relative;
            text-align: center;
            padding: 2rem 2rem 6vh;
            max-width: 960px;
            margin-top: 46vh;
        }

        .hero-eyebrow {
            font-size: 0.65rem;
            letter-spacing: 0.35em;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 2rem;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 1.5rem;
        }

            .hero-eyebrow::before, .hero-eyebrow::after {
                content: '';
                display: block;
                width: 40px;
                height: 0.5px;
                background: var(--gold);
                opacity: 0.5;
            }

        .hero-title {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(4.2rem, 9vw, 9rem);
            font-weight: 300;
            line-height: 0.92;
            color: var(--cream);
            margin-bottom: 1.5rem;
            letter-spacing: -0.01em;
        }

            .hero-title em {
                font-style: italic;
                color: var(--gold);
                display: block;
            }

        .hero-subtitle {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(1.1rem, 2.2vw, 1.55rem);
            font-weight: 300;
            font-style: italic;
            color: var(--stone);
            margin-bottom: 3.5rem;
            letter-spacing: 0.04em;
            line-height: 1.6;
        }

        .hero-divider {
            width: 60px;
            height: 0.5px;
            background: var(--gold);
            margin: 0 auto 3rem;
            opacity: 0.6;
        }

        .hero-stats {
            display: flex;
            justify-content: center;
            gap: 4rem;
            margin-bottom: 3.5rem;
        }

        .hero-stat {
            text-align: center;
        }

        .hero-stat-number {
            font-family: 'Cormorant Garamond', serif;
            font-size: 2.2rem;
            font-weight: 400;
            color: var(--gold);
            display: block;
            line-height: 1;
        }

        .hero-stat-label {
            font-size: 0.62rem;
            letter-spacing: 0.25em;
            text-transform: uppercase;
            color: var(--stone);
            display: block;
            margin-top: 0.4rem;
        }

        .hero-ctas {
            display: flex;
            gap: 1.5rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        .btn-primary {
            padding: 1rem 2.5rem;
            background: var(--gold);
            color: var(--charcoal);
            font-size: 0.72rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            border: none;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            transition: all 0.25s;
            font-family: 'Inter', sans-serif;
        }

            .btn-primary:hover {
                background: var(--gold-light);
                box-shadow: 0 4px 20px rgba(201,169,110,0.2);
            }

        .btn-secondary {
            padding: 1rem 2.5rem;
            background: transparent;
            color: var(--cream);
            font-size: 0.72rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            border: 0.5px solid rgba(250,247,242,0.3);
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            transition: all 0.25s;
            font-family: 'Inter', sans-serif;
        }

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

        .hero-scroll {
            position: absolute;
            bottom: 3rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.5rem;
            opacity: 0.4;
        }

            .hero-scroll span {
                font-size: 0.6rem;
                letter-spacing: 0.3em;
                text-transform: uppercase;
                color: var(--stone);
            }

        .scroll-line {
            width: 0.5px;
            height: 40px;
            background: var(--stone);
            animation: scrollAnim 2s ease-in-out infinite;
        }

        @keyframes scrollAnim {
            0%,100% {
                transform: scaleY(1);
                opacity: 0.4
            }

            50% {
                transform: scaleY(0.5);
                opacity: 0.8
            }
        }

        /* SECTION BASE */
        section {
            padding: 7rem 4rem;
        }

        .section-inner {
            max-width: 1100px;
            margin: 0 auto;
            min-width: 0;
        }

        .normandie-grid > *,
        .histoire-layout > *,
        .form-layout > * {
            min-width: 0;
        }

        .section-tag {
            font-size: 0.62rem;
            letter-spacing: 0.35em;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 1.5rem;
            display: flex;
            align-items: center;
            gap: 1rem;
        }

            .section-tag::after {
                content: '';
                display: block;
                width: 30px;
                height: 0.5px;
                background: var(--gold);
                opacity: 0.5;
            }

        .section-title {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(2rem, 4vw, 3rem);
            font-weight: 400;
            color: var(--cream);
            line-height: 1.15;
            margin-bottom: 1.5rem;
        }

            .section-title em {
                font-style: italic;
                color: var(--gold);
            }

        .section-body {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.15rem;
            font-weight: 300;
            color: var(--stone);
            line-height: 1.9;
            max-width: 600px;
        }

        /* NORMANDIE */
        .normandie-section {
            background: var(--charcoal-mid);
        }

        .normandie-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 5rem;
            align-items: center;
        }

        .normandie-visual {
            position: relative;
            height: 480px;
        }

        .normandie-frame {
            position: absolute;
            inset: 0;
            border: 0.5px solid rgba(201,169,110,0.2);
        }

        .normandie-img-placeholder {
            width: 100%;
            height: 100%;
            background-image: url('/images/normandie.webp');
            background-size: cover;
            background-position: center;
            position: relative;
            display: flex;
            align-items: flex-end;
            padding: 2rem;
        }

        .normandie-img-placeholder::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(10,8,6,0.6) 0%, transparent 50%);
            pointer-events: none;
        }

        .normandie-caption {
            font-size: 0.62rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: var(--sea-light);
            opacity: 0.7;
        }

        .normandie-features {
            display: flex;
            flex-direction: column;
            gap: 2rem;
            margin-top: 2.5rem;
        }

        .normandie-feat {
            display: flex;
            gap: 1.5rem;
            align-items: flex-start;
            padding-bottom: 2rem;
            border-bottom: 0.5px solid rgba(196,180,154,0.15);
        }

            .normandie-feat:last-child {
                border-bottom: none;
                padding-bottom: 0;
            }

        .feat-number {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.8rem;
            color: var(--gold);
            opacity: 0.4;
            line-height: 1;
            min-width: 2.5rem;
        }

        .feat-text h4 {
            font-size: 0.78rem;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            color: var(--cream);
            margin-bottom: 0.3rem;
            font-weight: 400;
        }

        .feat-text p {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1rem;
            color: var(--stone);
            font-weight: 300;
            line-height: 1.7;
        }

        /* HISTOIRE */
        .histoire-section {
            background: var(--charcoal);
            padding: 0;
        }

        .histoire-parallax {
            position: relative;
            height: 100vh;
            overflow: hidden;
        }

        .histoire-parallax-img {
            position: absolute;
            top: -15%;
            left: 0;
            width: 100%;
            height: 130%;
            object-fit: cover;
            object-position: center center;
            will-change: transform;
        }

        .histoire-parallax-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom, rgba(10,8,6,0.15) 0%, rgba(10,8,6,0.35) 50%, rgba(10,8,6,0.75) 100%);
        }

        .histoire-parallax-title {
            position: absolute;
            bottom: 5rem;
            left: 0;
            right: 0;
            text-align: center;
            z-index: 2;
            padding: 0 2rem;
        }

        .histoire-parallax-title .section-tag {
            flex-direction: column;
            align-items: center;
        }

        .histoire-content {
            padding: 7rem 4rem;
        }

        .histoire-layout {
            display: grid;
            grid-template-columns: 1fr 2fr;
            gap: 6rem;
        }

        .timeline-slider-wrap {
            display: flex;
            flex-direction: column;
        }

        .histoire-timeline {
            display: flex;
            flex-direction: row;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            -ms-overflow-style: none;
        }

        .histoire-timeline::-webkit-scrollbar {
            display: none;
        }

        .timeline-item {
            flex: 0 0 100%;
            scroll-snap-align: start;
            padding: 2.5rem 0.5rem 2rem;
            position: relative;
            border-top: 0.5px solid var(--accent, rgba(201,169,110,0.3));
            background: var(--bg, transparent);
            transition: opacity 0.5s ease, transform 0.5s ease;
            opacity: 0.12;
            transform: translateY(8px);
        }

        .timeline-item.active {
            opacity: 1;
            transform: translateY(0);
        }

        .timeline-nav {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 1.5rem;
            margin-top: 2rem;
        }

        .timeline-dots {
            display: flex;
            gap: 0.6rem;
            justify-content: center;
        }

        .timeline-dot {
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: rgba(201,169,110,0.2);
            cursor: pointer;
            transition: background 0.35s, transform 0.35s;
            border: none;
            padding: 0;
        }

        .timeline-dot.active {
            background: var(--gold);
            transform: scale(1.5);
        }

        .timeline-arrow {
            background: none;
            border: 0.5px solid rgba(201,169,110,0.25);
            color: var(--gold);
            width: 38px;
            height: 38px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 1rem;
            transition: border-color 0.25s, opacity 0.25s;
            flex-shrink: 0;
            font-family: 'Inter', sans-serif;
        }

            .timeline-arrow:hover {
                border-color: var(--gold);
            }

            .timeline-arrow:disabled {
                opacity: 0.18;
                cursor: default;
            }

        .timeline-year {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(2.8rem, 5vw, 4.5rem);
            font-weight: 300;
            color: var(--accent, var(--gold));
            margin-bottom: 1rem;
            line-height: 1;
            letter-spacing: -0.01em;
        }

        .timeline-desc {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.1rem;
            color: var(--stone);
            line-height: 1.85;
        }

        .histoire-quote {
            padding: 3rem;
            border-left: 2px solid var(--gold);
            background: rgba(201,169,110,0.04);
            margin-bottom: 2.5rem;
        }

            .histoire-quote blockquote {
                font-family: 'Cormorant Garamond', serif;
                font-size: 1.5rem;
                font-style: italic;
                font-weight: 300;
                color: var(--cream);
                line-height: 1.6;
                margin-bottom: 1rem;
            }

            .histoire-quote cite {
                font-size: 0.65rem;
                letter-spacing: 0.2em;
                text-transform: uppercase;
                color: var(--stone);
            }

        /* LOGEMENTS */
        .logements-section {
            background: linear-gradient(180deg, #1E1C19 0%, var(--charcoal-mid) 100%);
        }

        .logements-header {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            margin-bottom: 4rem;
            padding-bottom: 2.5rem;
            border-bottom: 0.5px solid rgba(196,180,154,0.12);
        }

        .rarity-badge {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 0.5rem 0 1.5rem;
        }

        .rarity-number {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(5rem, 10vw, 8rem);
            font-weight: 300;
            color: var(--gold);
            line-height: 0.85;
            letter-spacing: -0.02em;
        }

        .rarity-label {
            font-size: 0.6rem;
            letter-spacing: 0.35em;
            text-transform: uppercase;
            color: var(--stone);
            margin-top: 0.75rem;
        }

        .logements-slider-wrap {
            display: flex;
            flex-direction: column;
        }

        .logements-grid {
            display: flex;
            flex-direction: row;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            -ms-overflow-style: none;
            gap: 1.5px;
        }

        .logements-grid::-webkit-scrollbar {
            display: none;
        }

        .logements-dots {
            display: flex;
            gap: 0.6rem;
            margin-top: 1.5rem;
            justify-content: center;
        }

        .logements-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: rgba(201,169,110,0.25);
            cursor: pointer;
            transition: background 0.25s, transform 0.25s;
            border: none;
            padding: 0;
        }

        .logements-dot.active {
            background: var(--gold);
            transform: scale(1.4);
        }

        .logement-card {
            flex: 0 0 calc(33.333% - 1px);
            scroll-snap-align: start;
            background: rgba(196,180,154,0.05);
            border: 0.5px solid rgba(196,180,154,0.12);
            padding: 2.5rem 2rem;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
            overflow: hidden;
            min-height: 280px;
        }

            .logement-card::before {
                content: '';
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                height: 2px;
                background: var(--gold);
                transform: scaleX(0);
                transition: transform 0.3s;
            }

            .logement-card:hover {
                background: rgba(201,169,110,0.06);
                transform: translateY(-3px);
            }

                .logement-card:hover::before {
                    transform: scaleX(1);
                }

        .logement-card {
            text-align: center;
        }

        .logement-type {
            font-size: 0.6rem;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 1rem;
        }

            .logement-type::after {
                content: '';
                display: block;
                width: 20px;
                height: 0.5px;
                background: var(--gold);
                opacity: 0.5;
                margin: 0.6rem auto 0;
            }

        .logement-surface {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(2.2rem, 4vw, 3rem);
            font-weight: 300;
            color: var(--cream);
            line-height: 1;
            letter-spacing: -0.01em;
            margin-bottom: 0.6rem;
        }

        .logement-prix {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.05rem;
            color: var(--stone);
            font-style: italic;
            letter-spacing: 0.02em;
        }

        .logement-detail {
            margin-top: 1.5rem;
            padding-top: 1.5rem;
            border-top: 0.5px solid rgba(196,180,154,0.12);
            font-size: 0.65rem;
            color: var(--stone-dark);
            letter-spacing: 0.15em;
            text-transform: uppercase;
        }

        .disponible {
            display: inline-block;
            padding: 0.25rem 1rem;
            border: 0.5px solid rgba(74,124,142,0.4);
            color: var(--sea-light);
            font-size: 0.58rem;
            letter-spacing: 0.25em;
            text-transform: uppercase;
            margin-top: 1rem;
        }

        /* SUNDAY TRIP */
        .sunday-section {
            background: var(--charcoal);
        }

        .sunday-hero-text {
            text-align: center;
            max-width: 700px;
            margin: 0 auto 5rem;
        }

            .sunday-hero-text .section-body {
                max-width: 100%;
                margin: 0 auto;
                text-align: center;
            }

        .programme-header {
            display: flex;
            align-items: center;
            gap: 2rem;
            margin-bottom: 3rem;
        }

            .programme-header::before,
            .programme-header::after {
                content: '';
                flex: 1;
                height: 0.5px;
                background: rgba(201,169,110,0.2);
            }

        .programme-label {
            font-size: 0.6rem;
            letter-spacing: 0.45em;
            text-transform: uppercase;
            color: var(--gold);
            opacity: 0.75;
            white-space: nowrap;
        }

        .sunday-steps {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 0;
            position: relative;
            margin-bottom: 5rem;
        }

            .sunday-steps::before {
                content: '';
                position: absolute;
                top: 2.5rem;
                left: 12.5%;
                right: 12.5%;
                height: 0.5px;
                background: rgba(201,169,110,0.2);
                z-index: 0;
            }

        .sunday-step {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            padding: 0 1rem;
            position: relative;
            z-index: 1;
        }

        .step-dot {
            width: 5rem;
            height: 5rem;
            border: 0.5px solid rgba(201,169,110,0.3);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1.5rem;
            background: var(--charcoal);
            position: relative;
            flex-shrink: 0;
        }

        .step-dot-inner {
            width: 2.5rem;
            height: 2.5rem;
            background: rgba(201,169,110,0.1);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .step-dot-icon {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1rem;
            color: var(--gold);
        }

        .step-body {
            flex: 1;
            min-width: 0;
        }

        .step-time {
            font-size: 0.62rem;
            letter-spacing: 0.25em;
            text-transform: uppercase;
            color: var(--gold);
            opacity: 0.8;
            margin-bottom: 0.4rem;
        }

        .step-title {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.15rem;
            color: var(--cream);
            margin-bottom: 0.4rem;
            letter-spacing: 0.02em;
        }

        .step-desc {
            font-family: 'Cormorant Garamond', serif;
            font-size: 0.92rem;
            color: var(--stone);
            line-height: 1.65;
        }

        .sunday-cta-block {
            text-align: center;
            padding: 4rem;
            border: 0.5px solid rgba(201,169,110,0.2);
            background-image: url('/images/spa-interieur-luxe-manoir-piscine-sauna-ambiance-chaleureuse.webp');
            background-size: cover;
            background-position: center;
            position: relative;
            overflow: hidden;
        }

        .sunday-cta-block::before {
            content: '';
            position: absolute;
            inset: 0;
            background: rgba(10,8,6,0.72);
        }

        .sunday-cta-block > * {
            position: relative;
            z-index: 1;
        }

            .sunday-cta-block p {
                font-family: 'Cormorant Garamond', serif;
                font-size: 1.2rem;
                font-style: italic;
                color: var(--stone);
                margin-bottom: 2rem;
            }

        /* FORMULAIRE */
        .form-section {
            background: linear-gradient(180deg, #1A1208 0%, #080604 100%);
        }

        .form-layout {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 6rem;
            align-items: start;
        }

        .form-intro .section-body {
            max-width: 100%;
        }

        .form-trust {
            margin-top: 3rem;
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }

        .trust-item {
            display: flex;
            align-items: center;
            gap: 1rem;
            font-size: 0.78rem;
            color: var(--stone);
            letter-spacing: 0.04em;
        }

        .trust-dot {
            width: 5px;
            height: 5px;
            background: var(--gold);
            border-radius: 50%;
            flex-shrink: 0;
            opacity: 0.85;
        }

        .form-card {
            background: rgba(201,169,110,0.055);
            border: 0.5px solid rgba(201,169,110,0.18);
            border-top: 1.5px solid rgba(201,169,110,0.38);
            padding: 3rem;
        }

        .form-title {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.3rem;
            color: var(--cream);
            margin-bottom: 0.5rem;
        }

        .form-subtitle {
            font-family: 'Cormorant Garamond', serif;
            font-size: 0.95rem;
            font-style: italic;
            color: var(--stone);
            margin-bottom: 2.5rem;
        }

        .form-group {
            margin-bottom: 1.5rem;
        }

        .form-label {
            display: block;
            font-size: 0.62rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 0.6rem;
        }

        .form-input, .form-select {
            width: 100%;
            background: rgba(8,6,4,0.65);
            border: 0.5px solid rgba(196,180,154,0.14);
            color: var(--cream);
            padding: 0.85rem 1rem;
            font-family: 'Inter', sans-serif;
            font-size: 0.85rem;
            appearance: none;
            outline: none;
            transition: border-color 0.25s, background 0.25s;
        }

            .form-input:focus, .form-select:focus {
                border-color: rgba(201,169,110,0.55);
                background: rgba(12,9,6,0.8);
            }

            .form-select option {
                background: #1A1208;
            }

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

        .form-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .chip {
            padding: 0.4rem 1rem;
            border: 0.5px solid rgba(196,180,154,0.2);
            font-size: 0.68rem;
            letter-spacing: 0.1em;
            color: var(--stone);
            cursor: pointer;
            transition: all 0.2s;
            user-select: none;
        }

            .chip:hover, .chip.active {
                border-color: var(--gold);
                color: var(--gold);
                background: rgba(201,169,110,0.08);
                transform: translateY(-1px);
            }

        .form-submit {
            width: 100%;
            padding: 1.1rem;
            background: var(--gold);
            color: var(--charcoal);
            font-family: 'Inter', sans-serif;
            font-size: 0.72rem;
            letter-spacing: 0.25em;
            text-transform: uppercase;
            border: none;
            cursor: pointer;
            margin-top: 0.5rem;
            transition: all 0.25s;
            font-weight: 500;
        }

            .form-submit:hover {
                background: var(--gold-light);
                box-shadow: 0 6px 24px rgba(201,169,110,0.18);
            }

        .form-note {
            text-align: center;
            font-size: 0.65rem;
            color: var(--stone-dark);
            margin-top: 1rem;
            letter-spacing: 0.05em;
        }

        .form-section-label {
            font-family: 'Cormorant Garamond', serif;
            font-size: 0.88rem;
            color: var(--gold);
            letter-spacing: 0.14em;
            text-transform: uppercase;
            margin: 2.5rem 0 1.5rem;
            padding-bottom: 0.6rem;
            border-bottom: 0.5px solid rgba(201,169,110,0.2);
        }

        .form-sublabel {
            font-size: 0.75rem;
            color: var(--stone);
            font-style: italic;
            margin-top: -0.8rem;
            margin-bottom: 1.2rem;
        }

        .form-required {
            color: var(--gold);
            opacity: 0.75;
        }

        .form-textarea {
            resize: vertical;
            min-height: 88px;
            line-height: 1.6;
        }

        .form-group-rgpd {
            margin-top: 0.5rem;
        }

        .form-checkbox-label {
            display: flex;
            gap: 0.8rem;
            align-items: flex-start;
            cursor: pointer;
        }

        .form-checkbox {
            width: 14px;
            height: 14px;
            flex-shrink: 0;
            margin-top: 3px;
            accent-color: var(--gold);
            cursor: pointer;
        }

        .form-checkbox-label span {
            font-size: 0.72rem;
            color: var(--stone);
            line-height: 1.65;
            letter-spacing: 0.02em;
        }

        .form-programme {
            margin: 0.5rem 0 2rem;
            background: rgba(201,169,110,0.04);
            border-left: 2px solid rgba(201,169,110,0.2);
            padding: 1.1rem 1.4rem;
        }

        .form-programme-label {
            font-size: 0.58rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: var(--stone-dark);
            margin-bottom: 0.75rem;
        }

        .form-programme-list {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
        }

        .form-programme-list li {
            font-size: 0.75rem;
            color: var(--stone);
            padding-left: 1.1rem;
            position: relative;
        }

        .form-programme-list li::before {
            content: '—';
            position: absolute;
            left: 0;
            color: var(--gold);
            opacity: 0.45;
            font-size: 0.6rem;
            top: 3px;
        }

        /* FOOTER */
        footer {
            background: #0F0D0B;
            padding: 4rem;
            border-top: 0.5px solid rgba(196,180,154,0.1);
        }

        .footer-inner {
            max-width: 1100px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .footer-logo {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1rem;
            color: var(--gold);
            letter-spacing: 0.15em;
            text-transform: uppercase;
        }

            .footer-logo span {
                font-style: italic;
                color: var(--stone);
                font-size: 0.85em;
            }

        .footer-links {
            display: flex;
            gap: 2rem;
        }

            .footer-links a {
                font-size: 0.65rem;
                letter-spacing: 0.15em;
                text-transform: uppercase;
                color: var(--stone);
                text-decoration: none;
                opacity: 0.65;
                transition: opacity 0.2s, color 0.2s;
            }

                .footer-links a:hover {
                    opacity: 1;
                    color: var(--gold);
                }

        .footer-hco {
            font-size: 0.65rem;
            color: var(--stone-dark);
            letter-spacing: 0.1em;
            opacity: 0.5;
        }

        /* VIDEO SECTION */
        .video-section {
            background: #0F0D0B;
            padding: 5rem 4rem;
        }

        .video-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr;
            grid-template-rows: 240px 240px;
            gap: 2px;
        }

        .video-item {
            position: relative;
            overflow: hidden;
            cursor: pointer;
            background: #1A1612;
        }

            .video-item:first-child {
                grid-row: 1 / 3;
            }

        .video-placeholder {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 1rem;
            background: rgba(10,8,6,0.45);
        }

        .play-btn {
            width: 56px;
            height: 56px;
            border: 0.5px solid rgba(201,169,110,0.4);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.25s;
        }

        .video-item:hover .play-btn {
            border-color: var(--gold);
            background: rgba(201,169,110,0.1);
        }

        .play-icon {
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 8px 0 8px 14px;
            border-color: transparent transparent transparent var(--gold);
            margin-left: 2px;
        }

        .video-label {
            font-size: 0.6rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: var(--stone);
        }

        .video-bg-1 {
            background-image: url('/images/video-main.webp');
            background-size: cover;
            background-position: center;
        }

        .video-bg-2 {
            background-image: url('/images/salle-cinema-privee-luxe.webp');
            background-size: cover;
            background-position: center;
        }

        .video-bg-3 {
            background-image: url('/images/salle-billard-luxe-manoir-bibliotheque-bois-cheminee.webp');
            background-size: cover;
            background-position: center;
        }

        .video-bg-4 {
            background: linear-gradient(135deg, #1E1A16, #2A2218);
        }

        /* SUNDAY CTA BUTTONS */
        .sunday-cta-btns {
            display: flex;
            gap: 1.5rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        /* STICKY BAR MOBILE */
        .sticky-bar {
            display: none;
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 200;
            background: linear-gradient(
                to bottom,
                rgba(48, 42, 35, 0.72) 0%,
                rgba(26, 22, 18, 0.96) 100%
            );
            border-top: 0.5px solid rgba(201,169,110,0.28);
            backdrop-filter: blur(18px) saturate(160%);
            -webkit-backdrop-filter: blur(18px) saturate(160%);
            padding-bottom: env(safe-area-inset-bottom, 0px);
            box-shadow: 0 -4px 24px rgba(0,0,0,0.45);
        }

        .sticky-btn {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.3rem;
            padding: 0.8rem 0.3rem;
            text-decoration: none;
            font-family: 'Inter', sans-serif;
            font-size: 0.55rem;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: var(--stone);
            position: relative;
            overflow: hidden;
            border-right: 0.5px solid rgba(196,180,154,0.1);
            -webkit-tap-highlight-color: transparent;
            transition: color 0.25s, background 0.25s;
        }

        /* Reflet glossy commun */
        .sticky-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 50%;
            background: linear-gradient(
                to bottom,
                rgba(255,255,255,0.07) 0%,
                rgba(255,255,255,0.01) 100%
            );
            pointer-events: none;
            border-radius: inherit;
        }

            .sticky-btn:last-child {
                border-right: none;
            }

        .sticky-btn svg {
            width: 19px;
            height: 19px;
            fill: none;
            stroke: currentColor;
            stroke-width: 1.5;
            stroke-linecap: round;
            stroke-linejoin: round;
            flex-shrink: 0;
            transition: stroke 0.25s, transform 0.25s;
        }

        /* Bouton Candidater — doré glossy, CTA dominant */
        .sticky-btn-candidater {
            flex: 1.6;
            padding: 0.9rem 0.4rem;
            font-size: 0.6rem;
            letter-spacing: 0.18em;
            background: linear-gradient(
                160deg,
                #e8c47a 0%,
                #c9a96e 45%,
                #b08040 100%
            );
            color: var(--charcoal);
            font-weight: 500;
            border-left: 0.5px solid rgba(201,169,110,0.35);
            border-right: none;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.24),
                        inset 0 -1px 0 rgba(0,0,0,0.2),
                        -4px 0 16px rgba(0,0,0,0.25);
        }

            .sticky-btn-candidater::before {
                background: linear-gradient(
                    to bottom,
                    rgba(255,255,255,0.22) 0%,
                    rgba(255,255,255,0.04) 100%
                );
            }

            .sticky-btn-candidater svg {
                stroke: var(--charcoal);
                width: 22px;
                height: 22px;
            }

        /* Hover — Candidater */
        .sticky-btn-candidater:hover,
        .sticky-btn-candidater:active {
            background: linear-gradient(
                160deg,
                #eecf88 0%,
                #ddb96a 40%,
                #c9a96e 100%
            );
            color: var(--charcoal);
        }

        /* Bouton Appeler — bleu glossy */
        .sticky-btn-appeler:hover,
        .sticky-btn-appeler:active {
            background: linear-gradient(
                160deg,
                rgba(90,155,175,0.28) 0%,
                rgba(74,124,142,0.22) 100%
            );
            color: var(--sea-light);
            box-shadow: inset 0 1px 0 rgba(122,172,188,0.15),
                        inset 0 -1px 0 rgba(0,0,0,0.12);
        }

            .sticky-btn-appeler:hover svg,
            .sticky-btn-appeler:active svg {
                transform: scale(1.1) rotate(-8deg);
            }

        /* Bouton Rendez-vous — écume glossy */
        .sticky-btn-rdv:hover,
        .sticky-btn-rdv:active {
            background: linear-gradient(
                160deg,
                rgba(196,180,154,0.2) 0%,
                rgba(140,123,98,0.15) 100%
            );
            color: var(--gold-light);
            box-shadow: inset 0 1px 0 rgba(201,169,110,0.12),
                        inset 0 -1px 0 rgba(0,0,0,0.1);
        }

            .sticky-btn-rdv:hover svg,
            .sticky-btn-rdv:active svg {
                transform: scale(1.1);
            }

        /* BURGER */
        .burger {
            display: none;
            flex-direction: column;
            justify-content: center;
            gap: 5px;
            width: 36px;
            height: 36px;
            background: none;
            border: none;
            cursor: pointer;
            padding: 0;
            z-index: 201;
        }

        .burger span {
            display: block;
            width: 24px;
            height: 1.5px;
            background: var(--charcoal);
            transition: transform 0.3s, opacity 0.3s;
            transform-origin: center;
        }

        .burger.open span:nth-child(1) {
            transform: translateY(6px) rotate(45deg);
        }

        .burger.open span:nth-child(2) {
            opacity: 0;
        }

        .burger.open span:nth-child(3) {
            transform: translateY(-6px) rotate(-45deg);
        }

        /* MOBILE MENU OVERLAY */
        .mobile-menu {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 200;
            background: var(--charcoal);
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 2.5rem;
        }

        .mobile-menu.open {
            display: flex;
        }

        .mobile-menu a {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.8rem;
            font-weight: 400;
            letter-spacing: 0.08em;
            color: var(--cream);
            text-decoration: none;
            opacity: 0.85;
            transition: opacity 0.2s, color 0.2s;
        }

        .mobile-menu a:hover {
            opacity: 1;
            color: var(--gold);
        }

        .mobile-menu .mobile-menu-cta {
            font-family: 'Inter', sans-serif;
            font-size: 0.72rem;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            padding: 0.8rem 2.2rem;
            border: 0.5px solid var(--gold);
            color: var(--gold);
            margin-top: 1rem;
        }

        .mobile-menu .mobile-menu-cta:hover {
            background: var(--gold);
            color: var(--charcoal);
            opacity: 1;
        }

        body.menu-open {
            overflow: hidden;
        }

        /* RESPONSIVE — Tablette (≤ 900px) */
        @media (max-width: 900px) {
            nav {
                padding: 0.5rem 1.5rem;
            }

            .nav-logo img {
                height: 44px;
            }

            nav .nav-links {
                display: none;
            }

            .nav-cta {
                display: none;
            }

            .burger {
                display: flex;
            }

            section {
                padding: 5rem 1.5rem;
            }

            .video-section {
                padding: 4rem 1.5rem;
            }

            .histoire-parallax-title {
                bottom: 3rem;
            }

            .histoire-content {
                padding: 5rem 1.5rem;
            }

            .normandie-grid,
            .histoire-layout,
            .form-layout {
                grid-template-columns: 1fr;
                gap: 3rem;
            }

            .normandie-visual {
                height: 320px;
            }

            .sunday-steps {
                grid-template-columns: 1fr 1fr;
                gap: 3rem 2rem;
            }

            .sunday-steps::before {
                display: none;
            }

            .sunday-cta-block {
                padding: 2.5rem 1.5rem;
            }

            .logement-card {
                flex: 0 0 calc(50% - 1px);
            }

            .rarity-number {
                font-size: clamp(4rem, 12vw, 6rem);
            }

            .video-grid {
                grid-template-columns: 1fr;
                grid-template-rows: auto;
            }

            .video-item:first-child {
                grid-row: auto;
                height: 260px;
            }

            .video-item {
                height: 180px;
            }

            .histoire-quote {
                padding: 2rem;
            }

            .footer-inner {
                flex-direction: column;
                gap: 2rem;
                text-align: center;
            }

            .footer-links {
                flex-wrap: wrap;
                justify-content: center;
            }

            .sticky-bar {
                display: flex;
            }

            footer {
                padding-bottom: calc(3rem + 68px);
            }
        }

        /* RESPONSIVE — Mobile (≤ 600px) */
        @media (max-width: 600px) {
            nav {
                padding: 0.4rem 1rem;
                left: 0;
                right: 0;
                max-width: 100%;
                box-sizing: border-box;
            }

            .nav-logo img {
                height: 38px;
            }

            section {
                padding: 4rem 1.2rem;
            }

            .video-section {
                padding: 3rem 1.2rem;
            }

            footer {
                padding: 3rem 1.2rem;
            }

            /* HERO */
            .hero-content {
                padding: 1.2rem 1.2rem 7rem;
            }

            .hero-title {
                font-size: clamp(2.8rem, 11vw, 4.2rem);
                line-height: 1.0;
            }

            .hero-subtitle {
                font-size: 1rem;
                margin-bottom: 2.5rem;
            }

            .hero-eyebrow {
                font-size: 0.6rem;
                letter-spacing: 0.2em;
                gap: 0.8rem;
            }

            .hero-eyebrow::before,
            .hero-eyebrow::after {
                width: 24px;
            }

            .hero-divider {
                margin-bottom: 2rem;
            }

            .hero-stats {
                gap: 1.5rem;
                margin-bottom: 2.5rem;
                flex-wrap: wrap;
            }

            .hero-stat-number {
                font-size: 1.8rem;
            }

            .hero-stat-label {
                font-size: 0.58rem;
                letter-spacing: 0.15em;
            }

            .hero-ctas {
                flex-direction: column;
                gap: 0.8rem;
                align-items: stretch;
            }

            .btn-primary,
            .btn-secondary {
                display: block;
                width: 100%;
                text-align: center;
                padding: 0.9rem 1.5rem;
                letter-spacing: 0.1em;
                box-sizing: border-box;
            }

            .sunday-cta-btns {
                flex-direction: column;
                align-items: stretch;
                gap: 0.8rem;
            }

            /* NORMANDIE */
            .normandie-section {
                padding-top: 0;
            }

            .normandie-section .section-title {
                font-size: clamp(1.4rem, 5.5vw, 2rem);
                margin-bottom: 1rem;
            }

            .normandie-section .section-tag {
                margin-bottom: 1rem;
            }

            .normandie-section .section-body {
                font-size: 1rem;
                line-height: 1.8;
            }

            .normandie-features {
                gap: 1.5rem;
                margin-top: 2rem;
            }

            .normandie-feat {
                padding-bottom: 1.5rem;
            }

            .normandie-visual {
                height: 240px;
                margin-left: -1.2rem;
                margin-right: -1.2rem;
            }

            /* HISTOIRE */
            .histoire-quote {
                padding: 1.5rem;
            }

            .histoire-quote blockquote {
                font-size: 1.2rem;
            }

            .timeline-arrow {
                width: 32px;
                height: 32px;
                font-size: 0.85rem;
            }

            .timeline-year {
                font-size: clamp(2rem, 8vw, 3rem);
            }

            /* LOGEMENTS */
            .logement-card {
                flex: 0 0 100%;
            }

            .logements-header {
                padding-bottom: 1.5rem;
            }

            .rarity-number {
                font-size: clamp(3.5rem, 13vw, 5rem);
            }

            .logement-card {
                padding: 2rem 1.5rem;
            }

            /* SUNDAY TRIP */
            .programme-header {
                gap: 1.2rem;
                margin-bottom: 2rem;
            }

            .sunday-steps {
                grid-template-columns: 1fr;
                gap: 0;
            }

            .sunday-step {
                flex-direction: row;
                align-items: flex-start;
                text-align: left;
                gap: 1.2rem;
                padding: 1.5rem 0 1.5rem 1.2rem;
                border-left: 1px solid rgba(201,169,110,0.22);
                border-bottom: 0.5px solid rgba(201,169,110,0.08);
            }

            .sunday-step:last-child {
                border-bottom: none;
            }

            .step-dot {
                width: 3rem;
                height: 3rem;
                margin: 0;
            }

            .step-dot-inner {
                width: 1.6rem;
                height: 1.6rem;
            }

            .step-dot-icon {
                font-size: 0.82rem;
            }

            .sunday-cta-block {
                padding: 2rem 1.2rem;
            }

            .sunday-cta-block > div[style] {
                flex-direction: column;
                align-items: stretch;
                gap: 0.8rem;
            }

            .sunday-hero-text {
                margin-bottom: 3.5rem;
            }

            /* FORMULAIRE */
            .form-card {
                padding: 2rem 1.2rem;
            }

            .form-grid {
                grid-template-columns: 1fr;
                gap: 0;
            }

            .form-chips {
                gap: 0.4rem;
            }

            .chip {
                font-size: 0.65rem;
                padding: 0.5rem 0.8rem;
            }

            .histoire-content {
                padding: 4rem 1.2rem;
            }

            /* SECTION COMMUNE */
            .section-title {
                font-size: clamp(1.8rem, 7vw, 2.5rem);
            }

            .section-body {
                font-size: 1.05rem;
            }
        }
