       :root {
            --blanc: #ffffff;
            --ivoire: #fffdf8;
            --beige: #f4efe5;
            --beige-fonce: #e8dfd0;
            --or: #b08a45;
            --or-clair: #d1b477;
            --texte: #393631;
            --texte-clair: #777169;
            --brun: #6b5943;
            --ombre: rgba(65, 52, 35, 0.10);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            background: var(--ivoire);
            color: var(--texte);
            font-family: Georgia, "Times New Roman", serif;
            line-height: 1.8;
        }

        img {
            max-width: 100%;
            display: block;
        }

        a {
            color: inherit;
        }


        /* =====================================================
           HEADER
        ===================================================== */

        header {
            position: fixed;
            top: 0;
            left: 0;

            width: 100%;
            z-index: 1000;

            background: rgba(255, 255, 255, 0.96);
            backdrop-filter: blur(10px);

            border-bottom: 1px solid var(--beige-fonce);

            transition: all 0.35s ease;
        }

        .header-inner {
            max-width: 1250px;
            margin: auto;

            padding: 17px 30px;

            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 30px;
        }


        /* LOGO */

        .logo {
            text-decoration: none;
            display: flex;
            flex-direction: column;
            line-height: 1.1;
        }

        .logo-main {
            font-size: 1.45rem;
            letter-spacing: 2px;
            color: var(--texte);
        }

        .logo-main span {
            color: var(--or);
        }

        .logo-sub {
            font-family: Arial, sans-serif;
            font-size: 0.58rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--texte-clair);
            margin-top: 5px;
        }


        /* NAVIGATION */

        nav {
            display: flex;
            align-items: center;
            gap: 25px;
        }

        nav a {
            text-decoration: none;

            font-family: Arial, sans-serif;
            font-size: 0.72rem;
            letter-spacing: 1.5px;
            text-transform: uppercase;

            color: var(--texte);

            transition: 0.3s;
        }

        nav a:hover {
            color: var(--or);
        }


        /* RETOUR ACCUEIL */

        .home-button {
            padding: 10px 18px;

            border: 1px solid var(--or);

            color: var(--brun);

            transition: 0.3s;
        }

        .home-button:hover {
            background: var(--or);
            color: white;
        }


        /* =====================================================
           HERO
        ===================================================== */

        .hero {
            min-height: 92vh;

            padding-top: 90px;

            display: flex;
            align-items: center;
            justify-content: center;

            text-align: center;

            background:
                linear-gradient(
                    rgba(255,255,255,0.80),
                    rgba(244,239,229,0.90)
                ),
                url("images/cathedrale-beauvais.jpg")
                center / cover no-repeat;

            position: relative;
        }

        .hero-content {
            max-width: 900px;
            padding: 50px 30px;
        }

        .small-title {
            font-family: Arial, sans-serif;

            text-transform: uppercase;
            letter-spacing: 4px;

            font-size: 0.72rem;

            color: var(--or);

            margin-bottom: 20px;
        }

        .hero h1 {
            font-size: clamp(3.3rem, 8vw, 7rem);

            font-weight: normal;

            line-height: 1;

            color: var(--texte);

            margin-bottom: 30px;
        }

        .hero h1 span {
            color: var(--or);
        }

        .hero-description {
            max-width: 680px;

            margin: auto;

            font-size: 1.2rem;

            color: var(--texte-clair);
        }

        .hero-button {
            display: inline-block;

            margin-top: 38px;

            padding: 14px 30px;

            background: var(--or);

            color: white;

            text-decoration: none;

            font-family: Arial, sans-serif;

            font-size: 0.75rem;

            letter-spacing: 2px;

            text-transform: uppercase;

            transition: 0.3s;

            box-shadow: 0 10px 25px rgba(176,138,69,0.20);
        }

        .hero-button:hover {
            background: var(--brun);

            transform: translateY(-3px);
        }


        /* =====================================================
           SECTIONS
        ===================================================== */

        section {
            padding: 110px 7%;
        }

        .section-heading {
            max-width: 800px;

            margin: 0 auto 65px;

            text-align: center;
        }

        .chapter {
            font-family: Arial, sans-serif;

            text-transform: uppercase;

            letter-spacing: 3px;

            font-size: 0.7rem;

            color: var(--or);
        }

        h2 {
            font-size: clamp(2.5rem, 5vw, 4rem);

            line-height: 1.1;

            font-weight: normal;

            color: var(--texte);

            margin: 15px 0 25px;
        }

        .section-heading p {
            color: var(--texte-clair);
            font-size: 1.05rem;
        }


        /* =====================================================
           INTRODUCTION
        ===================================================== */

        .intro {
            background: var(--blanc);
        }

        .intro-grid {
            max-width: 1150px;

            margin: auto;

            display: grid;

            grid-template-columns: 1fr 1fr;

            gap: 75px;

            align-items: center;
        }

        .image-frame {
            position: relative;

            padding: 15px;

            border: 1px solid var(--beige-fonce);
        }

        .image-frame img {
            width: 100%;

            height: 580px;

            object-fit: cover;
        }

        .image-frame::after {
            content: "";

            position: absolute;

            width: 100px;
            height: 100px;

            border-top: 2px solid var(--or);
            border-right: 2px solid var(--or);

            top: -8px;
            right: -8px;

            pointer-events: none;
        }

        .intro-text h3 {
            font-size: 2.4rem;

            font-weight: normal;

            line-height: 1.2;

            margin-bottom: 25px;
        }

        .intro-text p {
            margin-bottom: 20px;

            color: var(--texte-clair);
        }

        .quote {
            margin-top: 30px;

            padding: 20px 25px;

            border-left: 3px solid var(--or);

            background: var(--beige);

            font-size: 1.15rem;

            font-style: italic;

            color: var(--brun);
        }


        /* =====================================================
           CHIFFRES
        ===================================================== */

        .numbers {
            background: var(--beige);
        }

        .numbers-grid {
            max-width: 1100px;

            margin: auto;

            display: grid;

            grid-template-columns: repeat(4, 1fr);

            border-top: 1px solid var(--beige-fonce);
            border-bottom: 1px solid var(--beige-fonce);
        }

        .number {
            padding: 45px 20px;

            text-align: center;

            border-right: 1px solid var(--beige-fonce);
        }

        .number:last-child {
            border-right: none;
        }

        .number strong {
            display: block;

            font-size: 3.5rem;

            font-weight: normal;

            color: var(--or);

            line-height: 1.1;
        }

        .number span {
            display: block;

            margin-top: 12px;

            font-family: Arial, sans-serif;

            font-size: 0.65rem;

            letter-spacing: 1.5px;

            text-transform: uppercase;

            color: var(--texte-clair);
        }


        /* =====================================================
           CHRONOLOGIE
        ===================================================== */

        .timeline-section {
            background: var(--ivoire);
        }

        .timeline {
            max-width: 950px;

            margin: auto;

            position: relative;
        }

        .timeline::before {
            content: "";

            position: absolute;

            left: 50%;

            top: 0;
            bottom: 0;

            width: 1px;

            background: var(--beige-fonce);
        }

        .timeline-item {
            width: 50%;

            padding: 30px 50px;

            position: relative;
        }

        .timeline-item:nth-child(even) {
            margin-left: 50%;
        }

        .timeline-item:nth-child(odd) {
            text-align: right;
        }

        .timeline-dot {
            width: 13px;
            height: 13px;

            position: absolute;

            top: 43px;

            border-radius: 50%;

            background: var(--or);

            box-shadow:
                0 0 0 5px var(--ivoire),
                0 0 0 6px var(--or-clair);
        }

        .timeline-item:nth-child(odd) .timeline-dot {
            right: -6px;
        }

        .timeline-item:nth-child(even) .timeline-dot {
            left: -6px;
        }

        .timeline-year {
            color: var(--or);

            font-size: 2.1rem;

            line-height: 1;

            margin-bottom: 10px;
        }

        .timeline-item h3 {
            font-size: 1.6rem;

            font-weight: normal;

            margin-bottom: 8px;

            color: var(--texte);
        }

        .timeline-item p {
            color: var(--texte-clair);
        }


        /* =====================================================
           CITATION / MOMENT FORT
        ===================================================== */

        .highlight {
            background: var(--blanc);

            text-align: center;

            border-top: 1px solid var(--beige-fonce);
            border-bottom: 1px solid var(--beige-fonce);
        }

        .highlight-inner {
            max-width: 850px;
            margin: auto;
        }

        .highlight-number {
            font-size: 6rem;

            line-height: 1;

            color: var(--or);

            opacity: 0.25;
        }

        .highlight h2 {
            margin-top: -20px;
        }


        /* =====================================================
           HISTOIRE DES EFFONDREMENTS
        ===================================================== */

        .catastrophes {
            background: var(--beige);
        }

        .cards {
            max-width: 1100px;

            margin: auto;

            display: grid;

            grid-template-columns: 1fr 1fr;

            gap: 30px;
        }

        .card {
            background: white;

            padding: 45px;

            border: 1px solid var(--beige-fonce);

            transition: 0.35s;

            box-shadow: 0 10px 35px rgba(70,50,20,0.04);
        }

        .card:hover {
            transform: translateY(-7px);

            border-color: var(--or);

            box-shadow: 0 20px 45px var(--ombre);
        }

        .card-year {
            font-family: Arial, sans-serif;

            font-size: 0.7rem;

            letter-spacing: 3px;

            color: var(--or);

            text-transform: uppercase;
        }

        .card h3 {
            font-size: 2rem;

            font-weight: normal;

            margin: 15px 0;
        }

        .card p {
            color: var(--texte-clair);

            margin-bottom: 15px;
        }


        /* =====================================================
           BASSE OEUVRE
        ===================================================== */

        .basse-oeuvre {
            background: white;
        }

        .basse-grid {
            max-width: 1100px;

            margin: auto;

            display: grid;

            grid-template-columns: 1.1fr .9fr;

            gap: 70px;

            align-items: center;
        }

        .basse-grid img {
            width: 100%;

            height: 500px;

            object-fit: cover;
        }

        .basse-grid h3 {
            font-size: 2.6rem;

            font-weight: normal;

            line-height: 1.2;

            margin-bottom: 25px;
        }

        .basse-grid p {
            color: var(--texte-clair);

            margin-bottom: 20px;
        }

        .facts {
            display: grid;

            grid-template-columns: repeat(3, 1fr);

            margin-top: 35px;

            border-top: 1px solid var(--beige-fonce);
            border-bottom: 1px solid var(--beige-fonce);
        }

        .fact {
            padding: 20px 10px;

            text-align: center;

            border-right: 1px solid var(--beige-fonce);
        }

        .fact:last-child {
            border-right: none;
        }

        .fact strong {
            display: block;

            color: var(--or);

            font-size: 1.6rem;
        }

        .fact span {
            font-family: Arial, sans-serif;

            font-size: 0.62rem;

            text-transform: uppercase;

            letter-spacing: 1px;

            color: var(--texte-clair);
        }


        /* =====================================================
           RESTAURATION
        ===================================================== */

        .restoration {
            background: var(--beige);
        }

        .restoration-box {
            max-width: 1000px;

            margin: auto;

            padding: 60px;

            background: white;

            border: 1px solid var(--beige-fonce);

            position: relative;
        }

        .restoration-label {
            display: inline-block;

            padding: 7px 15px;

            background: var(--or);

            color: white;

            font-family: Arial, sans-serif;

            font-size: 0.65rem;

            letter-spacing: 2px;

            text-transform: uppercase;

            margin-bottom: 25px;
        }

        .restoration-box h3 {
            font-size: 2.6rem;

            font-weight: normal;

            margin-bottom: 20px;
        }

        .restoration-box p {
            color: var(--texte-clair);

            margin-bottom: 15px;
        }


        /* =====================================================
           SOURCES
        ===================================================== */

        .sources {
            background: var(--ivoire);
        }

        .sources-list {
            max-width: 850px;

            margin: auto;
        }

        .source {
            padding: 25px 0;

            border-bottom: 1px solid var(--beige-fonce);
        }

        .source:first-child {
            border-top: 1px solid var(--beige-fonce);
        }

        .source strong {
            display: block;

            color: var(--brun);

            margin-bottom: 5px;
        }

        .source span {
            color: var(--texte-clair);

            font-size: 0.95rem;
        }


        /* =====================================================
           CONCLUSION
        ===================================================== */

        .conclusion {
            padding: 140px 7%;

            background:
                linear-gradient(
                    rgba(255,255,255,0.90),
                    rgba(244,239,229,0.95)
                ),
                url("images/cathedrale-soir.jpg")
                center / cover;

            text-align: center;
        }

        .conclusion-inner {
            max-width: 800px;
            margin: auto;
        }

        .conclusion h2 {
            font-size: clamp(3rem, 7vw, 5.5rem);
        }

        .conclusion p {
            color: var(--texte-clair);

            font-size: 1.15rem;
        }


        /* =====================================================
           FOOTER
        ===================================================== */

        footer {
            padding: 45px 7%;

            background: var(--texte);

            color: #ddd;

            text-align: center;
        }

        .footer-logo {
            font-size: 1.4rem;

            letter-spacing: 2px;

            margin-bottom: 8px;
        }

        .footer-logo span {
            color: var(--or-clair);
        }

        footer p {
            font-family: Arial, sans-serif;

            font-size: 0.72rem;

            color: #aaa;
        }


        /* =====================================================
           ANIMATIONS
        ===================================================== */

        .reveal {
            opacity: 0;

            transform: translateY(35px);

            transition:
                opacity 0.8s ease,
                transform 0.8s ease;
        }

        .reveal.visible {
            opacity: 1;

            transform: translateY(0);
        }


        /* =====================================================
           RESPONSIVE
        ===================================================== */

        @media (max-width: 850px) {

            .header-inner {
                padding: 15px 20px;
            }

            nav a:not(.home-button) {
                display: none;
            }

            .hero {
                min-height: 85vh;
            }

            section {
                padding: 80px 6%;
            }

            .intro-grid,
            .basse-grid {
                grid-template-columns: 1fr;
            }

            .image-frame img {
                height: 400px;
            }

            .numbers-grid {
                grid-template-columns: 1fr 1fr;
            }

            .number {
                border-bottom: 1px solid var(--beige-fonce);
            }

            .number:nth-child(2) {
                border-right: none;
            }

            .cards {
                grid-template-columns: 1fr;
            }

            .timeline::before {
                left: 10px;
            }

            .timeline-item,
            .timeline-item:nth-child(even) {
                width: 100%;

                margin-left: 0;

                padding-left: 45px;
                padding-right: 0;

                text-align: left;
            }

            .timeline-item:nth-child(odd) .timeline-dot,
            .timeline-item:nth-child(even) .timeline-dot {
                left: 4px;
                right: auto;
            }

            .restoration-box {
                padding: 35px 25px;
            }
        }

        @media (max-width: 550px) {

            .logo-main {
                font-size: 1.1rem;
            }

            .logo-sub {
                font-size: 0.45rem;
            }

            .home-button {
                padding: 8px 10px;
            }

            .numbers-grid {
                grid-template-columns: 1fr;
            }

            .number,
            .number:nth-child(2) {
                border-right: none;
            }

            .facts {
                grid-template-columns: 1fr;
            }

            .fact,
            .fact:last-child {
                border-right: none;
                border-bottom: 1px solid var(--beige-fonce);
            }

            .fact:last-child {
                border-bottom: none;
            }

            .hero h1 {
                font-size: 3.2rem;
            }
        }