        :root {
            --orange: #dc4f0a;
            --orange-dark: #b63e07;
            --orange-light: rgba(220, 79, 10, .08);
            --taupe: #76685f;
            --taupe-dark: #3d3630;
            --taupe-light: #f5f1ee;
            --taupe-border: #ddd5cf;
            --surface: #fcfbf9;
            --white: #ffffff;
            --primary: #76685f;
            --secondary: #dc4f0a;
            --background: #fcfbf9;
            --on-surface: #3d3630;
            --surface-container-low: #f5f1ee;
            --surface-container-high: #ddd5cf;
            --outline-variant: #ddd5cf;
            --anim-duration: 1.2s;
            --anim-ease: cubic-bezier(0.25, 1, 0.5, 1);
        }

        body {
            font-family: 'Barlow Condensed', sans-serif;
            background-color: var(--surface);
            color: var(--taupe-dark);
            overflow-x: hidden;
        }

        .font-display {
            font-family: 'Playfair Display', serif;
            font-weight: 600;
            letter-spacing: 0;
            text-transform: none;
        }

        h1, h2, h3, h4, h5, .font-headline {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 700;
        }

        .text-primary-custom   { color: var(--primary) !important; }
        .text-secondary-custom { color: var(--secondary) !important; }
        .bg-primary-custom     { background-color: var(--primary) !important; }
        .bg-secondary-custom   { background-color: var(--secondary) !important; }
        .border-secondary-custom { border-color: var(--secondary) !important; }

        /* Scrolly Reveal */
        .scrolly-reveal {
            opacity: 0; transform: translateY(40px);
            transition: opacity var(--anim-duration) var(--anim-ease), transform var(--anim-duration) var(--anim-ease);
        }
        .reveal-left  { transform: translateX(-50px); }
        .reveal-right { transform: translateX(50px); }
        .reveal-scale { transform: scale(0.95); }
        .is-visible   { opacity: 1; transform: translate(0) scale(1); }

        /* Hero Ken Burns */
        @keyframes kenBurns { 0% { transform: scale(1); } 100% { transform: scale(1.15); } }
        .ken-burns { animation: kenBurns 20s ease-out forwards; }

        /* Progress Dots */
        #scroll-progress-container {
            position: fixed; right: 2rem; top: 50%; transform: translateY(-50%);
            z-index: 1050; display: flex; flex-direction: column; gap: 1.5rem; align-items: center;
        }
        .progress-dot {
            width: 8px; height: 8px; border-radius: 50%;
            background: rgba(220, 79, 10, 0.2); transition: all .3s ease;
            cursor: pointer; text-decoration: none;
        }
        .progress-dot.active { background: var(--secondary); transform: scale(1.5); }

        header { transition: transform .3s ease-in-out; }
        header.hide { transform: translateY(-100%); }

        /* Horizontal Scroll */
        .horizontal-section-wrapper { overflow: hidden; }
        .horizontal-container { display: flex; width: 300vw; height: 100vh; will-change: transform; }
        .horizontal-item { width: 100vw; height: 100vh; flex-shrink: 0; display: flex; align-items: center; }

        .text-stroke { -webkit-text-stroke: 1px currentColor; color: transparent; }
        .archival-glow { box-shadow: 0 10px 30px rgba(0,0,0,.05); }
        .label-caps { font-family: 'Barlow Condensed'; font-size: 14px; letter-spacing: .1em; font-weight: 600; text-transform: uppercase; }
        .display-hero { font-size: clamp(3rem, 8vw, 5rem); line-height: 1.1; }
        .btn-custom { border-radius: 50px; padding: .5rem 1.5rem; text-transform: uppercase; font-family: 'Barlow Condensed'; font-weight: 600; font-size: 14px; letter-spacing: .05em; }

        /* Ticker d'année */
        .year-ticker-wrap { position: absolute; bottom: 2.5rem; right: 2.5rem; z-index: 3; text-align: right; color: rgba(255,255,255,.85); display: none; }
        .year-ticker-label { display: block; font-family: 'Barlow Condensed', sans-serif; font-size: .72rem; letter-spacing: .35em; text-transform: uppercase; font-weight: 700; color: var(--orange); margin-bottom: .25rem; }
        .year-ticker { font-family: 'Playfair Display', serif; font-weight: 600; font-style: italic; font-size: clamp(2.2rem, 3.5vw, 3.4rem); line-height: 1; display: block; font-variant-numeric: tabular-nums; }

        /* Indicateur scroll horizontal */
        .hscroll-indicator { position: absolute; left: 0; right: 0; bottom: 2rem; padding: 0 clamp(1.5rem, 4vw, 4rem); display: flex; flex-direction: column; gap: .65rem; z-index: 5; pointer-events: none; }
        .hscroll-label { display: flex; justify-content: space-between; align-items: baseline; font-family: 'Barlow Condensed', sans-serif; font-size: .8rem; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; color: var(--taupe); }
        .hscroll-eyebrow { color: var(--orange); }
        .hscroll-label #hscroll-index { color: var(--taupe-dark); font-size: 1.1rem; }
        .hscroll-progress { width: 100%; height: 2px; background: var(--taupe-border); border-radius: 2px; overflow: hidden; }
        .hscroll-progress-bar { width: 100%; height: 100%; background: var(--orange); transform-origin: left center; transform: scaleX(0); transition: transform .1s linear; }

        /* Reduced motion */
        @media (prefers-reduced-motion: reduce) {
            .ken-burns { animation: none; }
            .scrolly-reveal { opacity: 1; transform: none; transition: none; }
            * { animation-duration: 0.001s !important; transition-duration: 0.001s !important; }
        }

        .palais-sticky { position: sticky; top: 25px; }

        /* ═══════════════════════════════════════════════════════════
           MOBILE FIRST OVERHAUL
        ═══════════════════════════════════════════════════════════ */
        @supports (height: 100svh) { #hero { height: 100svh; } }

        @media (max-width: 991.98px) { .year-ticker-wrap { bottom: 1.5rem; right: 1.5rem; } }

        @media (max-width: 767.98px) {
            body { font-size: 15px; }
            .container-xxl { padding-left: 1rem; padding-right: 1rem; }
            #hero { min-height: 100svh; height: auto; }
            .display-hero { font-size: clamp(2.4rem, 11vw, 3.4rem) !important; }
            #hero .h4 { font-size: 1rem !important; }
            #hero-content { padding: 0 1.25rem; }
            #hero i[class*="ri-"].fs-1 { font-size: 2rem !important; }
            .year-ticker-wrap { display: block; bottom: 5.5rem; right: auto; left: 50%; transform: translateX(-50%); text-align: center; }
            .year-ticker-label { font-size: .62rem; letter-spacing: .3em; margin-bottom: .15rem; }
            .year-ticker { font-size: 1.5rem; }
            #scroll-progress-container { display: flex !important; top: auto; bottom: 1rem; right: 50%; transform: translateX(50%); flex-direction: row; gap: .55rem; background: rgba(252,251,249,.92); backdrop-filter: blur(8px); padding: .45rem .8rem; border-radius: 999px; box-shadow: 0 4px 14px rgba(61,54,48,.1); }
            .progress-dot { width: 6px; height: 6px; }
            .progress-dot.active { transform: scale(1.6); }
            .min-vh-100, .min-vh-75, .vh-100 { min-height: 0 !important; height: auto !important; padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
            section { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
            h1, h2, h3 { line-height: 1.15; }
            .display-1 { font-size: clamp(2.6rem, 12vw, 4rem) !important; }
            .display-3 { font-size: clamp(2rem, 9vw, 2.8rem) !important; }
            .display-4 { font-size: clamp(1.75rem, 7.5vw, 2.4rem) !important; }
            .display-5 { font-size: clamp(1.5rem, 6.5vw, 2rem) !important; }
            .h1, h2 { font-size: clamp(1.5rem, 6.5vw, 2rem); }
            #vibrations-title { font-size: clamp(3rem, 18vw, 6rem) !important; white-space: nowrap; }
            #palais-section img[alt="Inauguration 1926"] { height: auto !important; aspect-ratio: 4/3; object-fit: cover; }
            #vibrations-section .col-md-8 { min-height: 0 !important; }
            #vibrations-section img { height: auto !important; aspect-ratio: 4/3; }
            #vibrations-section i[class*="ri-"] { font-size: 2.2rem !important; }
            #vibrations-section .col-md-4 { padding: 1.5rem !important; }
            #saumur-section img { height: auto !important; }
            #volunteers-section img { height: auto !important; }
            #derby-section .position-absolute.display-1 { display: none !important; }
            .horizontal-section-wrapper { overflow: hidden; }
            .horizontal-container { display: flex; width: 300vw; height: 100svh; }
            .horizontal-item { width: 100vw; height: 100svh; padding: 1rem !important; align-items: center; }
            .horizontal-item .row { width: 100%; }
            .horizontal-item img { height: auto !important; aspect-ratio: 3/4; max-height: 55svh; object-fit: cover; }
            .hscroll-indicator { padding: 0 1rem; bottom: 1.25rem; }
            .hscroll-label { font-size: .65rem; letter-spacing: .14em; }
            .hscroll-label #hscroll-index { font-size: .9rem; }
            footer { text-align: left !important; }
            footer .text-md-end { text-align: left !important; }
            footer img { height: 56px !important; }
            .btn-custom { padding: .7rem 1.4rem !important; min-height: 44px; }
            .mb-5 { margin-bottom: 1.5rem !important; }
            .py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
            .g-5 { --bs-gutter-x: 1.25rem; --bs-gutter-y: 1.25rem; }
        }

        @media (max-width: 400px) {
            .display-hero { font-size: clamp(2.1rem, 11vw, 3rem) !important; }
            .display-3 { font-size: 1.85rem !important; }
            .display-4 { font-size: 1.6rem !important; }
            #hero .h4 { font-size: .92rem !important; }
            section { padding-top: 2.75rem !important; padding-bottom: 2.75rem !important; }
            .horizontal-item { padding: .75rem !important; }
            .horizontal-item img { max-height: 50svh; }
            .year-ticker { font-size: 1.3rem; }
            .year-ticker-wrap { bottom: 5.5rem; }
        }

        /* ═══════════════════════════════════════════════════════════
           HEADER + NAVIGATION 7 CHAPITRES
        ═══════════════════════════════════════════════════════════ */
        .chi-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; background: white; color: var(--taupe-dark); transition: transform .35s ease; }
        .chi-header.hide { transform: translateY(-100%); }
        .chi-header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; padding: .75rem clamp(1rem, 3vw, 2rem); max-width: 1700px; margin: 0 auto; }
        .chi-header-logos { display: flex; align-items: center; gap: 1.1rem; min-width: 0; }
        .chi-logo-link { display: inline-flex; align-items: center; }
        .chi-logo { height: 72px; width: auto; background: #fff; border-radius: 0.5rem; padding-right: 22px; }
        .chi-rolex-slot { width: 260px; height: 82px; flex-shrink: 0; }
        .chi-rolex-card { width: 260px; height: 82px; background: #fff; border-radius: 0.5rem; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
        .chi-rolex-card iframe { width: 260px; height: 82px; display: block; border: 0; }
        .chi-ubs { height: 22px; width: auto; opacity: .8; }
        .chi-chapter-dots { display: flex; align-items: center; gap: 12px; justify-self: center; }
        .chap-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: rgba(245,241,238,.25); border: 1px solid var(--taupe-dark); transition: background .2s, transform .2s; }
        .chap-dot.is-active { background: var(--orange); border-color: var(--orange); transform: scale(1.25); }
        a.chap-dot { cursor: pointer; }
        a.chap-dot:hover { background: rgba(245,241,238,.55); }
        .chap-dot.is-locked { cursor: not-allowed; }
        .chi-header-actions { display: flex; align-items: center; gap: .65rem; justify-self: end; }
        .chi-link-back { display: inline-flex; align-items: center; gap: .4rem; color: var(--taupe-dark); text-decoration: none; font-family: 'Barlow Condensed', sans-serif; font-size: .82rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding: .55rem .65rem; transition: color .2s, opacity .2s; min-height: 44px; }
        .chi-link-back:hover { color: var(--orange); }
        .chi-link-back i { font-size: 1.1rem; }
        .chi-menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: transparent; border: 1.5px solid var(--taupe-dark); border-radius: 0.5rem; color: var(--taupe-dark); cursor: pointer; transition: border-color .2s, color .2s; }
        .chi-menu-toggle:hover { border-color: var(--orange); color: var(--orange); }
        .chi-menu-toggle i { font-size: 1.3rem; }

        /* Nav overlay */
        .chapter-nav { position: fixed; inset: 0; background: var(--taupe-dark); color: var(--taupe-light); z-index: 1029; padding-top: 110px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .4s ease, visibility .4s; overflow-y: auto; }
        .chapter-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
        body.chapter-nav-open { overflow: hidden; }
        .chapter-nav-inner { max-width: 980px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3rem); min-height: calc(100% - 110px); display: flex; flex-direction: column; }
        .chapter-nav-eyebrow { display: inline-flex; align-items: center; gap: .55rem; font-family: 'Barlow Condensed', sans-serif; font-size: .82rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--orange); margin-bottom: 2.5rem; }
        .chapter-nav-dash { letter-spacing: 0; }
        .chapter-nav-bullet { opacity: .7; }
        .chapter-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
        .chapter-item { border-bottom: 1px solid rgba(245,241,238,.14); }
        .chapter-item:first-child { border-top: 1px solid rgba(245,241,238,.14); }
        .chapter-link { display: flex; align-items: center; gap: 1.5rem; padding: .8rem .15rem; text-decoration: none; color: rgba(245,241,238,.55); font-family: 'Barlow Condensed', sans-serif; transition: color .25s ease, padding-left .25s ease, background .25s ease; min-height: 50px; }
        a.chapter-link:hover, a.chapter-link:focus { color: var(--taupe-light); padding-left: 1rem; background: linear-gradient(to right, rgba(220,79,10,.06), transparent 80%); }
        .chapter-item.is-active .chapter-link { color: #fff; }
        .chapter-item.is-active .chapter-num { color: var(--orange); }
        .chapter-num { flex-shrink: 0; width: 44px; font-size: .82rem; font-weight: 700; letter-spacing: .14em; color: var(--orange); opacity: .85; }
        .chapter-item.is-locked .chapter-num { color: rgba(245,241,238,.3); }
        .chapter-body { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
        .chapter-title { font-size: clamp(1.4rem, 3vw, 1.95rem); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: 1.1; }
        .chapter-period { font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(245,241,238,.4); font-weight: 500; white-space: nowrap; }
        .chapter-item.is-locked .chapter-link { cursor: not-allowed; }
        .chapter-soon { flex-shrink: 0; display: inline-flex; align-items: center; font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--orange); background: rgba(220,79,10,.12); border: 1px solid rgba(220,79,10,.35); padding: 4px 10px; border-radius: 4px; font-weight: 700; line-height: 1; height: 22px; }
        .chapter-nav-footer { margin-top: auto; padding-top: 3rem; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
        .chapter-nav-copy { font-family: 'Barlow Condensed', sans-serif; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(245,241,238,.4); }
        .chapter-extra { margin-top: 2.5rem; }
        .chapter-extra-eyebrow { display: block; font-family: 'Barlow Condensed', sans-serif; font-size: .82rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: var(--orange); margin-bottom: 1.25rem; }
        .chapter-extra-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
        .chapter-extra-link { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; background: rgba(245,241,238,.04); border: 1px solid rgba(245,241,238,.14); border-radius: 0.5rem; color: rgba(245,241,238,.85); text-decoration: none; font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase; transition: background .25s, border-color .25s, color .25s, transform .25s; min-height: 56px; }
        .chapter-extra-link:hover, .chapter-extra-link:focus { background: rgba(220,79,10,.1); border-color: var(--orange); color: #fff; transform: translateY(-2px); }
        .chapter-extra-link > i:first-child { font-size: 1.2rem; color: var(--orange); flex-shrink: 0; }
        .chapter-extra-link > span { flex: 1; line-height: 1.2; }
        .chapter-extra-arrow { font-size: 1rem; opacity: .5; transition: opacity .2s, transform .25s; }
        .chapter-extra-link:hover .chapter-extra-arrow { opacity: 1; transform: translate(2px, -2px); }
        @media (max-width: 767.98px) { .chapter-extra-list { grid-template-columns: 1fr; gap: .65rem; } .chapter-extra { margin-top: 2rem; } }

        main { margin-top: 98px !important; }

        @media (max-width: 1299.98px) {
            .chi-rolex-slot { width: 200px; height: 63px; }
            .chi-rolex-card { transform: scale(.77); transform-origin: left top; }
            .chi-logo { height: 52px; padding: 0; }
            .chi-header-logos { gap: .85rem; }
        }
        @media (max-width: 1023.98px) {
            .chi-rolex-slot { display: none; }
            .chi-ubs { height: 22px; }
            .chi-logo { height: 52px; }
            main { margin-top: 78px !important; }
            .chapter-nav { padding-top: 78px; }
            .chapter-nav-inner { min-height: calc(100% - 78px); }
        }
        @media (max-width: 767.98px) {
            .chi-header-inner { gap: .5rem; padding: .6rem .75rem; }
            .chi-header-logos { gap: .65rem; }
            .chi-logo { height: 52px; }
            .chi-ubs { height: 22px; opacity: .7; }
            .chi-chapter-dots { gap: 8px; }
            .chap-dot { width: 6px; height: 6px; }
            .chi-link-back .d-md-inline { display: none !important; }
            main { margin-top: 64px !important; }
            .chapter-nav { padding-top: 64px; }
            .chapter-nav-inner { min-height: calc(100% - 64px); }
        }
        @media (max-width: 480px) {
            .chi-logo { height: 56px; }
            .chap-dot { width: 5px; height: 5px; }
            .chi-chapter-dots { gap: 6px; }
            .chapter-link { flex-wrap: wrap; gap: .6rem 1rem; padding: 1rem .25rem; }
            .chapter-num { width: 36px; }
            .chapter-body { flex-direction: column; align-items: flex-start; gap: .25rem; }
            .chapter-title { font-size: 1.15rem; }
            .chapter-period { font-size: .7rem; letter-spacing: .12em; }
            .chapter-soon { order: 3; font-size: .58rem; padding: 3px 8px; height: 20px; margin-left: 36px; }
        }
        @media (max-width: 380px) {
            .chi-ubs { display: none; }
            .chap-dot { width: 4px; height: 4px; }
            .chi-chapter-dots { gap: 5px; }
            .chi-link-back { padding: .55rem .35rem; }
        }

        /* ══════════════════════════════════════════════════════════
           HERO VIDEO
        ══════════════════════════════════════════════════════════ */
        .hero-play-btn { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 1.6rem; background: transparent; border: none; padding: 0; color: #fff; cursor: pointer; outline: none; }
        .hero-play-btn:focus-visible .hero-play-icon { box-shadow: 0 0 0 4px rgba(220,79,10,.35), 0 14px 40px rgba(0,0,0,.5); }
        .hero-play-icon { position: relative; width: 96px; height: 96px; border-radius: 50%; background: var(--orange); display: flex; align-items: center; justify-content: center; font-size: 3rem; line-height: 1; color: #fff; box-shadow: 0 14px 40px rgba(0,0,0,.5), 0 0 0 0 rgba(220,79,10,.55); transition: transform .35s cubic-bezier(.2,.8,.2,1), background .25s; z-index: 2; }
        .hero-play-icon i { margin-left: 6px; }
        .hero-play-btn:hover .hero-play-icon { transform: scale(1.08); background: var(--orange-dark); }
        .hero-play-ring, .hero-play-ring-2 { position: absolute; top: 0; left: 50%; width: 96px; height: 96px; border-radius: 50%; border: 2px solid rgba(220,79,10,.55); transform: translateX(-50%); animation: heroPlayPulse 2.4s cubic-bezier(.2,.8,.2,1) infinite; pointer-events: none; }
        .hero-play-ring-2 { animation-delay: 1.2s; }
        @keyframes heroPlayPulse { 0% { opacity: .7; transform: translateX(-50%) scale(1); } 70% { opacity: 0; transform: translateX(-50%) scale(2.2); } 100% { opacity: 0; transform: translateX(-50%) scale(2.2); } }
        @media (prefers-reduced-motion: reduce) { .hero-play-ring, .hero-play-ring-2 { animation: none; opacity: .3; } }
        .hero-play-label { display: flex; flex-direction: column; align-items: center; gap: .55rem; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
        .hero-play-eyebrow { font-family: 'Barlow Condensed', sans-serif; font-size: .85rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 700; color: var(--orange); }
        .hero-play-title { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(1.2rem, 2.4vw, 1.7rem); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.95); }
        .hero-video-modal { position: fixed; inset: 0; background: rgba(0,0,0,.92); z-index: 2000; opacity: 0; visibility: hidden; display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 3vw, 3rem); transition: opacity .35s ease, visibility .35s; }
        .hero-video-modal.is-open { opacity: 1; visibility: visible; }
        .hero-video-wrap { width: 100%; max-width: 1280px; aspect-ratio: 16/9; box-shadow: 0 30px 80px rgba(0,0,0,.5); border-radius: 0.5rem; overflow: hidden; background: #000; }
        .hero-video-wrap video { width: 100%; height: 100%; display: block; background: #000; }
        .hero-video-close { position: absolute; top: clamp(.75rem, 2vw, 1.5rem); right: clamp(.75rem, 2vw, 1.5rem); width: 48px; height: 48px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, transform .2s; }
        .hero-video-close:hover { background: var(--orange); border-color: var(--orange); transform: rotate(90deg); }
        body.hero-video-open { overflow: hidden; }
        @media (max-width: 575.98px) { .hero-play-icon { width: 78px; height: 78px; font-size: 2.5rem; } .hero-play-ring, .hero-play-ring-2 { width: 78px; height: 78px; } .hero-play-btn { gap: 1.2rem; } }

        /* Scroll horizontal mobile */
        @media (max-width: 767.98px) {
            .horizontal-item img { max-height: 38svh !important; aspect-ratio: 4/3 !important; }
            .horizontal-item .container, .horizontal-item .container-xxl { padding-left: .75rem !important; padding-right: .75rem !important; }
            .horizontal-item .row { --bs-gutter-y: 1rem; --bs-gutter-x: .5rem; }
            .horizontal-item .g-5 { --bs-gutter-x: .75rem; --bs-gutter-y: 1rem; }
            .horizontal-item h2.display-3, .horizontal-item h2.display-4 { font-size: 1.7rem !important; line-height: 1.1 !important; margin-bottom: .5rem !important; }
            .horizontal-item h4.h1, .horizontal-item .h1 { font-size: 1.4rem !important; line-height: 1.15 !important; margin-bottom: .25rem !important; }
            .horizontal-item .h2 { font-size: 1.25rem !important; margin-bottom: .5rem !important; }
            .horizontal-item div[style*="height: 4px"] { height: 2px !important; margin-top: .5rem !important; margin-bottom: 1rem !important; }
            .horizontal-item p.lead { font-size: .92rem !important; line-height: 1.4 !important; margin-top: 1rem !important; margin-bottom: .65rem !important; max-width: 100% !important; }
            .horizontal-item .border-start.border-4 { border-left-width: 3px !important; padding-left: .85rem !important; margin-bottom: .85rem !important; }
            .horizontal-item .border-start .label-caps { font-size: 11px; }
            .horizontal-item .bg-white.p-3 { padding: .55rem .65rem !important; }
            .horizontal-item .bg-white.p-3 .label-caps { font-size: 10px; }
            .horizontal-item .bg-white.p-3 .h5 { font-size: .85rem !important; margin: 0 !important; }
            .horizontal-item .row.g-3.mt-4 { margin-top: .85rem !important; }
            .horizontal-item .text-clamp-mobile { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; text-overflow: ellipsis; }
        }
        @media (max-width: 400px) {
            .horizontal-item img { max-height: 32svh !important; }
            .horizontal-item h2.display-3, .horizontal-item h2.display-4 { font-size: 1.45rem !important; }
            .horizontal-item h4.h1 { font-size: 1.2rem !important; }
            .horizontal-item p.lead { font-size: .85rem !important; }
        }

        /* ══════════════════════════════════════════════════════════
           RETOUR CLIENT — photos d’archive plus recadrées sur grand écran
           Les slides « légendes » imposaient height:70vh + object-fit:cover :
           sur un écran large la colonne devient plus étroite que la photo et
           cover rognait les bords (têtes de chevaux coupées : Gemuseus, d’Oriola).
           On conserve désormais le ratio natif, hauteur plafonnée. Le mobile
           garde son propre cadrage (media queries max-width, non touchées).
        ══════════════════════════════════════════════════════════ */
        @media (min-width: 768px) {
            .horizontal-item img { height: auto !important; max-height: 74vh; object-fit: contain !important; }
        }
