/* ============================================================
   ACCUEIL — Hub des trois univers + mur de logos clients
   ------------------------------------------------------------
   .home-univers : trois portes d'entrée (mariage, entreprise,
                   événement & association), juste après le hero.
   .home-clients : bandeau pleine largeur des logos clients pros,
                   qui défilent en continu, en blanc sur le bleu nuit
                   du mode sombre du site (accueil + page pro).
   Logos : 2src/xrefphotos/social-proof/logos-clients/*.webp,
   silhouettes blanches sur fond transparent. Chaque <img> porte
   sa largeur d'affichage dans --w (calculée pour que tous les
   logos pèsent visuellement pareil, quel que soit leur format).
   ============================================================ */

/* Phrase sous le titre du hero : dit tout de suite à qui s'adresse le site.
   Placée en absolu sous le titre : le titre garde exactement sa position
   d'origine, sous le logo de fin de la vidéo, sans être poussé vers le haut. */
.scroll-video-sticky .text-section .hero-kicker {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0.5rem auto 0;
    color: var(--text-color);
    /* Même famille que l'accroche de la page mathieu-randon : Georgia italique,
       pour contraster avec le titre en Bahnschrift gras sans le concurrencer. */
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1rem, 1.45vw, 1.3rem);
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.4;
    opacity: 0.85;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.85);
}

[data-theme="dark"] .scroll-video-sticky .text-section .hero-kicker {
    text-shadow: 0 0 12px rgba(16, 0, 63, 0.9);
}

/* Téléphone : la vidéo fait 600 px (sous l'en-tête de 64 px) ; la flèche de
   défilement restait collée au bas de l'écran et tombait sur le bandeau de logos. */
@media (max-width: 768px) {
    #scroll-to-concept.scroll-down-home {
        top: 594px;
        bottom: auto;
    }
}

@media (max-width: 768px) {
    .scroll-video-sticky .text-section .hero-kicker {
        max-width: 22rem;
        font-size: 0.92rem;
    }
}

.home-univers,
.home-clients__head,
.home-clients__foot {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

.home-univers *,
.home-univers *::before,
.home-univers *::after,
.home-clients *,
.home-clients *::before,
.home-clients *::after {
    box-sizing: border-box;
}

/* ---------- En-tête ---------- */
.home-univers {
    margin-top: clamp(2.4rem, 6vw, 4.5rem);
    margin-bottom: 0;
    scroll-margin-top: 90px;
}

.home-univers__head {
    display: grid;
    justify-items: center;
    max-width: 760px;
    margin: 0 auto clamp(1.3rem, 3vw, 2rem);
    text-align: center;
}

.home-univers__eyebrow {
    width: fit-content;
    margin-bottom: 0.6rem;
    padding: 0.28rem 0.78rem;
    border: 1px solid rgba(105, 82, 227, 0.18);
    border-radius: 999px;
    color: #6952df;
    background: rgba(255, 255, 255, 0.62);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.home-univers__head h2 {
    margin: 0;
    color: #171326;
    font-size: clamp(1.8rem, 3.6vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.home-univers__head h2 span {
    color: #7057e6;
}

/* Note Google en pastille sous le titre du hub (même rendu que
   .pricing-google-rating des pages mariage, pricing-card-choice.css). */
.home-univers__head .pricing-google-rating,
.pro-reviews__head .pricing-google-rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0.85rem 0 0;
    padding: 6px 14px;
    border: 1px solid rgba(102, 111, 236, 0.22);
    border-radius: 999px;
    color: #1e1b4b;
    background: rgba(255, 255, 255, 0.75);
    box-shadow: 0 6px 16px rgba(102, 111, 236, 0.1);
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-univers__head .pricing-google-rating:hover,
.home-univers__head .pricing-google-rating:focus-visible,
.pro-reviews__head .pricing-google-rating:hover,
.pro-reviews__head .pricing-google-rating:focus-visible {
    border-color: #666fec;
    box-shadow: 0 10px 22px rgba(102, 111, 236, 0.18);
    transform: translateY(-1px);
}

.home-univers__head .pricing-google-rating__stars,
.pro-reviews__head .pricing-google-rating__stars {
    color: #f5a623;
    letter-spacing: 1px;
}

[data-theme="dark"] .home-univers__head .pricing-google-rating,
[data-theme="dark"] .pro-reviews__head .pricing-google-rating {
    border-color: rgba(167, 139, 250, 0.3);
    color: #e8e4ff;
    background: rgba(255, 255, 255, 0.08);
}

/* Même voix que la phrase sous le titre du hero (.hero-kicker) : Georgia italique. */
.home-univers__head p {
    margin: 0.7rem 0 0;
    color: rgba(23, 19, 38, 0.8);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.45;
}

/* ---------- Cartes ---------- */
.home-univers__grid {
    display: grid;
    /* Deux portes : mariage, et entreprises & événements (une seule page pro). */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 1.8vw, 22px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-univers__card {
    position: relative;
    display: flex;
    align-items: flex-end;
    aspect-ratio: 5 / 4;
    overflow: hidden;
    border-radius: 26px;
    color: #fff;
    text-decoration: none;
    background: #10003f;
    box-shadow: 0 18px 48px rgba(48, 32, 112, 0.18);
    isolation: isolate;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.home-univers__card img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.home-univers__card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(180deg, rgba(16, 0, 63, 0) 30%, rgba(16, 0, 63, 0.55) 58%, rgba(12, 0, 46, 0.92) 100%);
}

.home-univers__body {
    display: grid;
    gap: 0.55rem;
    width: 100%;
    padding: clamp(1.1rem, 2vw, 1.6rem);
}

.home-univers__tag {
    width: fit-content;
    padding: 0.3rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-transform: uppercase;
}

.home-univers__card--mariage .home-univers__tag {
    background: rgba(236, 167, 255, 0.28);
}

.home-univers__card--pro .home-univers__tag {
    background: rgba(102, 111, 236, 0.5);
}

.home-univers__body strong {
    display: block;
    font-size: clamp(1.2rem, 1.7vw, 1.5rem);
    line-height: 1.15;
    letter-spacing: -0.015em;
    text-shadow: 0 2px 14px rgba(8, 0, 30, 0.35);
}

.home-univers__text {
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.95rem;
    line-height: 1.45;
}

.home-univers__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    margin-top: 0.35rem;
    padding: 0.62rem 1rem;
    border-radius: 999px;
    color: #1b0f4d;
    background: #fff;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.2;
    box-shadow: 0 8px 22px rgba(8, 0, 30, 0.25);
}

.home-univers__cta::after {
    content: "→";
    transition: transform 0.25s ease;
}

.home-univers__card:hover,
.home-univers__card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 26px 60px rgba(48, 32, 112, 0.26);
}

.home-univers__card:hover img,
.home-univers__card:focus-visible img {
    transform: scale(1.04);
}

.home-univers__card:hover .home-univers__cta::after,
.home-univers__card:focus-visible .home-univers__cta::after {
    transform: translateX(3px);
}

.home-univers__card:focus-visible {
    outline: 3px solid #a259ff;
    outline-offset: 3px;
}

/* Liseré de 2 px des cartes. Au repos : un filet clair qui cadre la photo.
   Au survol : une lumière fait une fois le tour du cadre, puis le dégradé reste.
   Mariage : violet → rose poudré (la future mariée). Pro : violets → bleu nuit,
   jamais de rose (palette B2B). */
@property --univers-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

.home-univers__card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    padding: 2px;
    border-radius: inherit;
    background: rgba(255, 255, 255, 0.28);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
}

.home-univers__card--mariage {
    --univers-ring: #666fec, #b07cff, #ff9bd8, #ffd1ec, #ff9bd8, #b07cff, #666fec;
    --univers-glow: rgba(255, 120, 200, 0.24);
}

.home-univers__card--pro {
    --univers-ring: #666fec, #8fa0ff, #c3c7ff, #8fa0ff, #4b3cc9, #10003f, #666fec;
    --univers-glow: rgba(102, 111, 236, 0.3);
}

@media (hover: hover) {
    .home-univers__card {
        transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease;
    }

    .home-univers__card:hover::before,
    .home-univers__card:focus-visible::before {
        background: conic-gradient(from var(--univers-angle), var(--univers-ring));
        animation: universRing 1.4s cubic-bezier(.3, 0, .2, 1) both;
    }

    .home-univers__card:hover,
    .home-univers__card:focus-visible {
        box-shadow: 0 26px 60px rgba(48, 32, 112, 0.22), 0 18px 44px var(--univers-glow);
    }

    /* Le voile sombre se lève un peu : on voit davantage la photo. */
    .home-univers__card::after {
        transition: opacity 0.45s ease;
    }

    .home-univers__card:hover::after,
    .home-univers__card:focus-visible::after {
        opacity: 0.86;
    }

    /* Le bouton prend la couleur de l'univers. */
    .home-univers__cta {
        transition: color 0.25s ease, box-shadow 0.25s ease;
    }

    .home-univers__card--mariage:hover .home-univers__cta {
        color: #6a3fd8;
        box-shadow: 0 8px 22px rgba(8, 0, 30, 0.25), 0 0 0 3px rgba(255, 155, 216, 0.45);
    }

    .home-univers__card--pro:hover .home-univers__cta {
        color: #4b3cc9;
        box-shadow: 0 8px 22px rgba(8, 0, 30, 0.25), 0 0 0 3px rgba(143, 160, 255, 0.45);
    }

    /* L'autre porte s'efface légèrement : un seul choix à la fois. */
    .home-univers__grid:hover .home-univers__card:not(:hover) {
        filter: saturate(0.75) brightness(0.92);
    }
}

@keyframes universRing {
    from { --univers-angle: -90deg; }
    to { --univers-angle: 270deg; }
}

@media (prefers-reduced-motion: reduce) {
    .home-univers__card:hover::before,
    .home-univers__card:focus-visible::before {
        animation: none;
    }
}

[data-theme="dark"] .home-univers__head h2 {
    color: #f5f1ff;
}

[data-theme="dark"] .home-univers__head h2 span {
    color: #b9a6ff;
}

[data-theme="dark"] .home-univers__head p {
    color: rgba(245, 241, 255, 0.74);
}

[data-theme="dark"] .home-univers__eyebrow {
    color: #c5b4ff;
    border-color: rgba(190, 165, 255, 0.2);
    background: rgba(255, 255, 255, 0.045);
}

/* ---------- Bandeau de logos (pleine largeur, défilement continu) ----------
   Deux listes identiques à la suite (la seconde en aria-hidden) glissent de
   -50 % : la boucle ne se voit pas. Un clic met en pause / relance
   (1assets/home-clients.js) ; au survol, le logo brille. Si le visiteur a demandé
   moins d'animations, les logos s'affichent fixes, sur plusieurs lignes. */
.home-clients {
    --logo-scale: 1.18;
    --clients-gap: clamp(40px, 5vw, 76px);
    position: relative;
    box-sizing: border-box;
    width: 100%;
    margin: clamp(2.6rem, 5.5vw, 4.4rem) 0;
    padding: clamp(1.8rem, 4vw, 3rem) 0 clamp(1.6rem, 3.6vw, 2.6rem);
    overflow: hidden;
    border-top: 1px solid rgba(162, 137, 255, 0.2);
    border-bottom: 1px solid rgba(162, 137, 255, 0.2);
    color: #fff;
    background:
        radial-gradient(ellipse at 0% 0%, rgba(128, 101, 255, 0.34), transparent 45%),
        radial-gradient(ellipse at 100% 100%, rgba(162, 89, 255, 0.24), transparent 42%),
        linear-gradient(135deg, #1b0b5c 0%, #10003f 55%, #0b002e 100%);
}

.home-clients__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.6rem;
    margin-bottom: clamp(1.4rem, 3.2vw, 2.4rem);
}

.home-clients__head h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.45rem, 2.6vw, 2.2rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.home-clients__head h2 span {
    color: #c7b8ff;
}

.home-clients__head p {
    max-width: 900px;
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    line-height: 1.45;
}

.home-clients__marquee {
    overflow: hidden;
    /* De la place en haut et en bas pour que le halo du logo survolé ne soit pas coupé. */
    margin: -28px 0;
    padding: 28px 0;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}

.home-clients__rail {
    display: flex;
    width: max-content;
    animation: home-clients-defile 52s linear infinite;
}

.home-clients__marquee {
    cursor: pointer;
}

.home-clients__marquee.is-paused .home-clients__rail {
    animation-play-state: paused;
}

.home-clients__marquee:focus-visible {
    outline: 2px solid #c7b8ff;
    outline-offset: 4px;
}

@keyframes home-clients-defile {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.home-clients__list {
    display: flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: var(--clients-gap);
    margin: 0;
    padding: 0 calc(var(--clients-gap) / 2);
    list-style: none;
}

.home-clients__item {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    min-width: 130px;
    text-align: center;
}

.home-clients__marks {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 84px;
}

.home-clients__marks img {
    display: block;
    width: calc(var(--w) * var(--logo-scale));
    max-width: none;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.88;
    transition: opacity 0.3s ease, filter 0.3s ease;
}

/* Le logo survolé s'illumine. */
.home-clients__item:hover img,
.home-clients__item.is-featured img {
    opacity: 1;
    filter: brightness(0) invert(1) drop-shadow(0 0 6px rgba(255, 255, 255, 0.75)) drop-shadow(0 0 16px rgba(199, 184, 255, 0.85));
}

.home-clients__item:hover .home-clients__name {
    color: #fff;
}

.home-clients__sector {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    max-width: 220px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.3;
    white-space: normal;
}

.home-clients__name {
    color: rgba(255, 255, 255, 0.88);
}

/* Le département et sa petite pastille restent discrets sous le nom. */
.home-clients__location {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    color: #c8bce9;
    font-size: 0.7rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1.4;
}

.home-clients__place {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.home-clients__code {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    padding: 2px 6px;
    border: 1px solid rgba(199, 184, 255, 0.2);
    border-radius: 999px;
    background: rgba(199, 184, 255, 0.07);
    color: #ded5ff;
    font-size: 0.625rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.home-clients__separator {
    color: rgba(199, 184, 255, 0.5);
}

/* ---------- Signature « QR-cadre × client » ----------
   Le logo QR-cadre et une croix restent fixes au centre ; le logo client qui
   passe dessous (.is-featured, posé par 1assets/home-clients.js) s'illumine en
   comme au survol et son nom brille : la colonne se lit « QR-cadre × client ».
   Logo QR-cadre : la version brillante officielle (shinnylogo-mini.png). */
.home-clients__lockup {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    margin: 0 auto 0.55rem;
    pointer-events: none;
}

.home-clients__lockup img {
    display: block;
    width: clamp(130px, 13vw, 168px);
    height: auto;
}

.home-clients__x {
    color: #a9aef7;
    font-size: 1.45rem;
    font-weight: 300;
    line-height: 1;
    text-shadow: 0 0 10px rgba(140, 147, 242, 0.8);
}

/* Les autres logos s'effacent un peu pour laisser la colonne parler. */
.home-clients.has-lockup .home-clients__marks img {
    opacity: 0.55;
    transition: opacity 0.45s ease, filter 0.45s ease;
}

.home-clients.has-lockup .home-clients__sector {
    opacity: 0.86;
    transition: opacity 0.45s ease;
}

.home-clients.has-lockup .home-clients__item.is-featured img,
.home-clients.has-lockup .home-clients__item:hover img {
    opacity: 1;
}

.home-clients.has-lockup .home-clients__item.is-featured .home-clients__sector,
.home-clients.has-lockup .home-clients__item:hover .home-clients__sector {
    opacity: 1;
}

/* Nom du client : reflet qui balaie le texte, blanc et #666fec éclairci. */
.home-clients__item.is-featured .home-clients__name {
    color: transparent;
    background: linear-gradient(100deg, #ffffff 0%, #ffffff 30%, #b4b9ff 42%, #ffffff 50%, #8c93f2 58%, #ffffff 70%, #ffffff 100%) 0 0 / 250% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    font-weight: 800;
    animation: home-clients-shine 2.6s linear infinite;
}

@keyframes home-clients-shine {
    from { background-position: 100% 0; }
    to { background-position: -150% 0; }
}

.home-clients__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.8rem 1.5rem;
    margin-top: clamp(1.5rem, 3.4vw, 2.4rem);
}

.home-clients__proof {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.9rem;
    line-height: 1.35;
}

.home-clients__proof strong {
    color: #fff;
}

.home-clients__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.62rem 1.05rem;
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.78);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
    opacity: 0.65;
    transform: translateY(3px);
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: opacity 0.4s ease, background-color 0.4s ease, color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}

.home-clients.has-logo-hover .home-clients__link,
.home-clients.is-projects-visible .home-clients__link,
.home-clients:focus-within .home-clients__link,
.home-clients__link:hover {
    color: #1b0f4d;
    background: #fff;
    opacity: 1;
    transform: translateY(0);
    box-shadow: 0 6px 20px rgba(8, 0, 30, 0.2);
}

.home-clients__link::after {
    content: "→";
    transition: transform 0.25s ease;
}

.home-clients__link:hover,
.home-clients__link:focus-visible {
    box-shadow: 0 10px 26px rgba(8, 0, 30, 0.35);
}

.home-clients__link:hover::after,
.home-clients__link:focus-visible::after {
    transform: translateX(3px);
}

.home-clients__link:focus-visible {
    outline: 3px solid #c7b8ff;
    outline-offset: 3px;
}

/* Accueil : le bandeau suit directement la vidéo d'ouverture, sans vide. */
.scroll-video-section ~ .home-clients#flecharlo {
    margin-top: 0;
}

/* En mode sombre, la page est déjà bleu nuit : on éclaircit le bandeau. */
[data-theme="dark"] .home-clients {
    border-color: rgba(190, 165, 255, 0.24);
    background:
        radial-gradient(ellipse at 0% 0%, rgba(128, 101, 255, 0.4), transparent 48%),
        linear-gradient(135deg, #24106e 0%, #1a0a55 60%, #14064a 100%);
}

/* « Un regard humain » : plus de bouton sous la photo, la photo occupe la hauteur
   du texte voisin (titre + paragraphe + liste des univers). */
@media (min-width: 1025px) {
    .section-concept .container-imageetbtn1 {
        display: flex;
        flex: 0 0 50%;
        align-items: center;
        justify-content: center;
    }

    .section-concept .container-imageetbtn1 #concept-video {
        width: 100%;
        max-width: 470px;
        height: auto;
        margin: 0 auto;
    }
}

/* ---------- Coulisses et conseils (bas de page, compact) ---------- */
.home-coulisses {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 32px));
    margin: clamp(2.4rem, 5vw, 3.6rem) auto clamp(1.6rem, 3vw, 2.4rem);
}

.home-coulisses *,
.home-coulisses *::before,
.home-coulisses *::after {
    box-sizing: border-box;
}

.home-coulisses__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.4rem 1rem;
    margin-bottom: 1rem;
}

.home-coulisses__head h2 {
    margin: 0;
    color: #171326;
    font-size: clamp(1.3rem, 2.2vw, 1.7rem);
    letter-spacing: -0.02em;
}

.home-coulisses__head h2 span {
    color: #7057e6;
}

.home-coulisses__all {
    color: #5038ca;
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
}

.home-coulisses__all::after {
    content: " →";
}

.home-coulisses__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-coulisses__card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    height: 100%;
    padding: 0.6rem;
    border: 1px solid rgba(105, 82, 227, 0.14);
    border-radius: 18px;
    color: #171326;
    background: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    transition: border-color 0.25s ease, transform 0.25s ease;
}

.home-coulisses__card:hover,
.home-coulisses__card:focus-visible {
    border-color: rgba(105, 82, 227, 0.4);
    transform: translateY(-2px);
}

.home-coulisses__card:focus-visible {
    outline: 3px solid #a259ff;
    outline-offset: 2px;
}

.home-coulisses__card img {
    flex: 0 0 auto;
    width: 96px;
    height: 72px;
    border-radius: 12px;
    object-fit: cover;
}

.home-coulisses__copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.home-coulisses__tag {
    color: #6952df;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.home-coulisses__copy strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.9rem;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.home-coulisses__copy time {
    color: rgba(23, 19, 38, 0.6);
    font-size: 0.76rem;
}

[data-theme="dark"] .home-coulisses__head h2 { color: #f5f1ff; }
[data-theme="dark"] .home-coulisses__head h2 span { color: #b9a6ff; }
[data-theme="dark"] .home-coulisses__all { color: #c7b8ff; }
[data-theme="dark"] .home-coulisses__card {
    border-color: rgba(190, 165, 255, 0.18);
    color: #f5f1ff;
    background: rgba(255, 255, 255, 0.05);
}
[data-theme="dark"] .home-coulisses__tag { color: #c5b4ff; }
[data-theme="dark"] .home-coulisses__copy time { color: rgba(245, 241, 255, 0.6); }

@media (max-width: 899px) {
    .home-coulisses__list {
        grid-template-columns: 1fr;
    }
}

/* ---------- Tablette et téléphone ---------- */
@media (max-width: 899px) {
    .home-univers__grid {
        grid-template-columns: 1fr;
    }

    .home-univers__card {
        aspect-ratio: 16 / 10;
        min-height: 260px;
    }

    .home-univers__card img {
        object-position: center 40%;
    }

    .home-clients {
        --logo-scale: 1;
        --clients-gap: 44px;
    }
}

@media (max-width: 560px) {
    .home-clients {
        --logo-scale: 0.86;
        --clients-gap: 36px;
    }

    .home-clients__marquee {
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
    }

    .home-univers__card {
        aspect-ratio: auto;
        min-height: 300px;
    }

    .home-univers__text {
        font-size: 0.9rem;
    }

    .home-clients__item {
        min-width: 110px;
    }

    .home-clients__marks {
        min-height: 70px;
    }

    .home-clients__foot {
        flex-direction: column;
        align-items: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    /* Logos fixes sur plusieurs lignes : pas de colonne centrale à suivre. */
    .home-clients__lockup {
        display: none;
    }

    .home-univers__card,
    .home-univers__card img,
    .home-univers__cta::after,
    .home-clients__link,
    .home-clients__link::after {
        transition: none;
    }

    .home-univers__card:hover,
    .home-univers__card:focus-visible {
        transform: none;
    }

    .home-univers__card:hover img,
    .home-univers__card:focus-visible img {
        transform: none;
    }

    .home-clients__link {
        transform: none;
    }

    .home-clients__marquee {
        -webkit-mask-image: none;
        mask-image: none;
    }

    .home-clients__rail {
        display: block;
        width: auto;
        animation: none;
    }

    .home-clients__list {
        flex-wrap: wrap;
        justify-content: center;
        row-gap: 1.6rem;
        width: min(1180px, calc(100% - 32px));
        margin: 0 auto;
        padding: 0;
    }

    .home-clients__list[aria-hidden="true"] {
        display: none;
    }
}

/* Lueur décorative de l'accueil : sans les classes de fondu d'animate.css (retirées le
   07/10/2026), le conteneur n'isolait plus son image, qui passait par-dessus le bandeau
   de logos et captait la souris. On recrée l'isolation et l'image ignore la souris. */
.cadre-lueur-container {
    isolation: isolate;
}

.cadre-lueur-container .lueur-image {
    pointer-events: none;
}
