/* ===== RESET & BASE ===== */
    .veille-page * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    .veille-page {
        font-family: 'Open Sans', sans-serif;
        background: #f6eedc;
        color: #222222;
        line-height: 1.6;
    }

    .veille-container {
        max-width: 1200px;
        margin: 0 auto;
    }

    /* ===== SECTIONS ===== */
    .veille-section {
        padding: 80px 20px;
    }

    /* ===== TITRES ===== */
    .veille-title {
        font-family: 'Abril Fatface', serif;
        font-size: 72px;
        color: #222222;
        margin-bottom: 30px;
        line-height: 1.1;
    }

    .veille-title .highlight {
        color: #DD9933;
    }

    .veille-subtitle {
        font-family: 'Abril Fatface', serif;
        font-size: 56px;
        color: #222222;
        margin-bottom: 30px;
        margin-top: 80px;
        line-height: 1.1;
    }

    .veille-subtitle .highlight {
        color: #DD9933;
    }

    /* ===== TEXTE INTRO ===== */
    .intro-text {
        font-size: 18px;
        color: #666666;
        max-width: 900px;
        line-height: 1.9;
        margin-bottom: 40px;
    }

    .intro-text strong {
        color: #222222;
    }

    /* ===== CARTES COMMUNES ===== */
    .veille-card {
        background: white;
        border-radius: 24px;
        padding: 50px;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
        margin-bottom: 30px;
    }

    .veille-card p {
        font-size: 18px;
        color: #666666;
        line-height: 1.9;
    }

    .veille-card strong {
        color: #222222;
    }

    /* ===== SECTION SUJET (avec logo) ===== */
    .sujet-card {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 50px;
        align-items: center;
    }

    .sujet-logo {
        width: 150px;
        height: 150px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sujet-logo img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

    /* ===== CARROUSEL OUTILS ===== */
    .carousel-container {
        max-width: 1000px;
        margin: 0 auto;
        position: relative;
        padding: 20px 0;
    }

    .carousel-wrapper {
        overflow: hidden;
        border-radius: 20px;
    }

    .carousel-track {
        display: flex;
        transition: transform 0.5s ease-in-out;
    }

    .carousel-slide {
        min-width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 20px;
    }

    .carousel-card {
        background: white;
        border-radius: 24px;
        padding: 50px;
        width: 100%;
        max-width: 500px;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
        text-align: center;
        transition: all 0.3s ease;
    }

    .carousel-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
    }

    .carousel-logo {
        width: 120px;
        height: 120px;
        margin: 0 auto 25px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 20px;
        overflow: hidden;
    }

    .carousel-logo img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

    .carousel-logo svg {
        width: 80px;
        height: 80px;
    }

    .carousel-title {
        font-family: 'Abril Fatface', serif;
        font-size: 26px;
        color: #222222;
        margin-bottom: 15px;
    }

    .carousel-desc {
        font-size: 18px;
        color: #666666;
        line-height: 1.7;
        margin-bottom: 25px;
    }

    /* ===== BOUTONS (unifiés) ===== */
    .btn-veille {
        display: inline-block;
        background: linear-gradient(135deg, #DD9933 0%, #c4872d 100%);
        color: white !important;
        padding: 14px 32px;
        border-radius: 30px;
        text-decoration: none !important;
        font-weight: 600;
        font-size: 16px;
        transition: all 0.3s ease;
        box-shadow: 0 4px 15px rgba(221, 153, 51, 0.3);
    }

    .btn-veille:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 25px rgba(221, 153, 51, 0.4);
        color: white !important;
    }

    .btn-veille.disabled {
        background: #D9D2CB;
        box-shadow: none;
        cursor: default;
        pointer-events: none;
    }

    /* ===== FLÈCHES CARROUSEL ===== */
    .carousel-arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 55px;
        height: 55px;
        background: white;
        border: none;
        border-radius: 50%;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.3s ease;
        z-index: 10;
    }

    .carousel-arrow:hover {
        background: linear-gradient(135deg, #DD9933 0%, #c4872d 100%);
    }

    .carousel-arrow:hover svg {
        fill: white;
    }

    .carousel-arrow svg {
        width: 24px;
        height: 24px;
        fill: #222222;
        transition: all 0.3s ease;
    }

    .carousel-arrow.prev {
        left: -30px;
    }

    .carousel-arrow.next {
        right: -30px;
    }

    /* ===== DOTS CARROUSEL ===== */
    .carousel-dots {
        display: flex;
        justify-content: center;
        gap: 12px;
        margin-top: 35px;
    }

    .carousel-dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: #D9D2CB;
        border: none;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .carousel-dot.active {
        background: #DD9933;
        transform: scale(1.3);
    }

    .carousel-dot:hover {
        background: #DD9933;
    }

    /* ===== TIMELINE ===== */
    .timeline {
        position: relative;
        padding: 20px 0;
        max-width: 1200px;
        margin: 0 auto;
    }

    .timeline::before {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 4px;
        height: 100%;
        background: linear-gradient(to bottom, #DD9933, #c4872d);
        border-radius: 2px;
    }

    .timeline-item {
        display: flex;
        justify-content: flex-end;
        padding-right: 50%;
        position: relative;
        margin-bottom: 50px;
    }

    .timeline-item:nth-child(even) {
        justify-content: flex-start;
        padding-right: 0;
        padding-left: 50%;
    }

    .timeline-item::before {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 20px;
        height: 20px;
        background: #DD9933;
        border: 4px solid #f6eedc;
        border-radius: 50%;
        z-index: 2;
    }

    .timeline-card {
        background: white;
        border-radius: 16px;
        padding: 25px 30px;
        width: 92%;
        margin-right: 25px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
        position: relative;
        transition: all 0.3s ease;
    }

    .timeline-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    }

    .timeline-item:nth-child(even) .timeline-card {
        margin-right: 0;
        margin-left: 25px;
    }

    .timeline-card::after {
        content: '';
        position: absolute;
        right: -10px;
        top: 30px;
        width: 0;
        height: 0;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-left: 10px solid white;
    }

    .timeline-item:nth-child(even) .timeline-card::after {
        right: auto;
        left: -10px;
        border-left: none;
        border-right: 10px solid white;
    }

    .timeline-date {
        font-family: 'Abril Fatface', serif;
        font-size: 18px;
        color: #DD9933;
        margin-bottom: 12px;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .timeline-date::before {
        content: '';
        width: 8px;
        height: 8px;
        background: #DD9933;
        border-radius: 50%;
    }

    .timeline-title {
        font-family: 'Abril Fatface', serif;
        font-size: 22px;
        color: #222222;
        margin-bottom: 15px;
        line-height: 1.3;
    }

    .timeline-desc {
        font-family: 'Open Sans', sans-serif;
        font-size: 18px;
        color: #666666;
        line-height: 1.7;
        margin-bottom: 20px;
    }

    .timeline-btn {
        font-family: 'Open Sans', sans-serif;
        display: inline-block;
        background: #DD9933;
        color: white !important;
        padding: 10px 24px;
        border-radius: 25px;
        text-decoration: none !important;
        font-weight: 600;
        font-size: 14px;
        transition: all 0.3s ease;
    }

    .timeline-btn:hover {
        background: #c4872d;
        transform: scale(1.05);
        color: white !important;
        text-decoration: none !important;
    }

    /* ===== RESPONSIVE ===== */
    @media (max-width: 900px) {
        .veille-title {
            font-size: 56px;
        }

        .veille-subtitle {
            font-size: 42px;
        }

        .sujet-card {
            grid-template-columns: 1fr;
            text-align: center;
        }

        .sujet-logo {
            margin: 0 auto;
            order: -1;
        }

        .carousel-arrow {
            width: 45px;
            height: 45px;
        }

        .carousel-arrow.prev {
            left: 10px;
        }

        .carousel-arrow.next {
            right: 10px;
        }

        .carousel-card {
            padding: 35px 25px;
        }

        .carousel-logo {
            width: 100px;
            height: 100px;
        }

        .carousel-title {
            font-size: 22px;
        }

        .carousel-desc {
            font-size: 16px;
        }
    }

    @media (max-width: 768px) {
        .timeline::before {
            left: 20px;
        }

        .timeline-item {
            padding-right: 0;
            padding-left: 50px;
            justify-content: flex-start;
        }

        .timeline-item:nth-child(even) {
            padding-left: 50px;
        }

        .timeline-item::before {
            left: 20px;
        }

        .timeline-card {
            width: 100%;
            margin-right: 0;
            margin-left: 0;
        }

        .timeline-item:nth-child(even) .timeline-card {
            margin-left: 0;
        }

        .timeline-card::after {
            left: -10px;
            right: auto;
            border-left: none;
            border-right: 10px solid white;
        }

        .timeline-item:nth-child(even) .timeline-card::after {
            left: -10px;
            border-right: 10px solid white;
        }
    }

    @media (max-width: 600px) {
        .veille-title {
            font-size: 42px;
        }

        .veille-subtitle {
            font-size: 32px;
        }

        .veille-card {
            padding: 35px 25px;
        }
    }