/* =============================================================================
   Bloc « Univerture · Nos magasins » (blocs_uni-stores-locator) — 25/09/2026
   La scène (grande fiche `uni-store-feature--wide`, stores.css pour la fiche
   vitrine de base) au-dessus de la liste de cartes. Mêmes jetons que le bloc
   Réseau (--uni-net-*). Pas de container-type ici (piège de la fiche vitrine :
   des éléments flex dimensionnés par le contenu tombent à 0 px) : la fiche
   large passe en une colonne par retour à la ligne flex.
   ========================================================================== */

.uni-stores-locator {
    --uni-net-primary: var(--atb-primary, #0099DD);
    --uni-net-navy: var(--atb-neutral, #192743);
    --uni-net-red: var(--atb-danger, #F04957);
    --uni-net-grey: var(--atb-grey, #6C7993);
    --uni-net-surface: #f4f5f7;
    --uni-locator-gap: 1.5rem;

    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 1.5rem + 2vw, 3rem);
    color: var(--uni-net-navy);
}

/* ------------------------------------------------------------- la scène */

.uni-stores-locator__stage {
    /* Sous le header collant quand le JS la ramène à l'écran. */
    scroll-margin-top: 7rem;
    outline: none;
}

.uni-stores-locator__stage[hidden] {
    display: none;
}

.uni-stores-locator__stage.is-entering > * {
    animation: uni-locator-in 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

@keyframes uni-locator-in {
    from {
        opacity: 0;
        transform: translateY(0.5rem);
    }
}

/* Fiche large : textes | carte. wrap-reverse : quand la place manque, la
   carte (2e ligne) passe AU-DESSUS des textes. */
.uni-store-feature--wide {
    display: flex;
    flex-wrap: wrap-reverse;
    overflow: hidden;
    color: var(--uni-net-navy);
}

.uni-store-feature--wide .uni-store-feature__body {
    order: 1;
    flex: 1 1 24rem;
    min-width: 0;
    gap: 1rem;
    padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
}

.uni-store-feature--wide .uni-store-feature__media {
    order: 2;
    flex: 1 1 22rem;
    min-width: 0;
    aspect-ratio: auto;
    min-height: clamp(15rem, 12rem + 12vw, 24rem);
}

/* Carte à gauche : l'ordre visuel s'inverse, le retour à la ligne aussi. */
.uni-stores-locator--map-left .uni-store-feature--wide {
    flex-direction: row-reverse;
}

.uni-store-feature--wide .uni-store-feature__title {
    font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
}

.uni-store-feature--wide .uni-store-feature__accroche {
    font-size: 1rem;
}

.uni-store-feature--wide .uni-store-feature__labels img {
    height: 2.5rem;
}

.uni-store-feature--wide .uni-store-feature__buttons {
    flex-direction: row;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 0.5rem;
}

.uni-store-feature--wide .uni-store-feature__cta,
.uni-store-feature--wide .uni-store-feature__actions {
    flex: 1 1 10rem;
    padding-top: 0;
}

/* Le bouton du bloc, plus long, prend la place qu'il lui faut sur une ligne. */
.uni-store-feature--wide .uni-store-feature__cta {
    flex: 2 1 auto;
}

.uni-store-feature--wide .uni-store-feature__cta .at-btn,
.uni-store-feature--wide .uni-store-feature__actions .at-btn {
    height: 100%;
    white-space: nowrap;
}

/* ------------------------------------------------------------- la liste */

.uni-stores-locator__list-title {
    margin: 0;
    text-align: center;
    font-family: var(--atb-font-heading, inherit);
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
    font-weight: 800;
    line-height: 1.2;
    color: var(--uni-net-navy);
}

/* --uni-locator-cols colonnes au plus, jamais plus étroites que 16rem. */
.uni-stores-locator__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, max(16rem, (100% - (var(--uni-locator-cols, 2) - 1) * var(--uni-locator-gap)) / var(--uni-locator-cols, 2))), 1fr));
    gap: var(--uni-locator-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

.uni-stores-locator__item {
    display: flex;
    margin: 0;
}

.uni-stores-locator__card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    color: var(--uni-net-navy);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
    .uni-stores-locator__card:hover {
        transform: translateY(-2px);
    }
}

.uni-stores-locator__card.is-current {
    box-shadow: 0 0 0 2px var(--uni-net-primary), var(--atb-shadow-lg, 0 10px 30px rgba(25, 39, 67, 0.12));
}

.uni-stores-locator__media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--uni-net-surface);
}

.uni-stores-locator__media .uni-stores-locator__map {
    position: absolute;
    inset: 0;
    height: 100%;
    border-radius: 0;
    /* Carte figée : le clic va à la carte magasin entière. */
    pointer-events: none;
}

.uni-stores-locator__media .uni-store-feature__brand {
    left: 1rem;
    bottom: 0.75rem;
    font-size: 0.7rem;
}

.uni-stores-locator__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.25rem 1.5rem 1.5rem;
}

.uni-stores-locator__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
}

.uni-stores-locator__title {
    margin: 0;
    font-family: var(--atb-font-heading, inherit);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--uni-net-navy);
}

.uni-stores-locator__infos {
    font-size: 0.85rem;
}

/* Les liens de la carte passent au-dessus du bouton étendu. */
.uni-stores-locator__infos a {
    position: relative;
    z-index: 1;
}

.uni-stores-locator__accroche {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--uni-net-grey);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.uni-stores-locator__pick {
    display: inline-flex;
    align-self: flex-start;
    margin-top: auto;
    padding: 0.35rem 0 0;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--uni-net-primary);
    text-align: left;
    background: none;
    border: 0;
    cursor: pointer;
}

/* Toute la carte est la cible du bouton. */
.uni-stores-locator__pick::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
}

.uni-stores-locator__pick:focus-visible {
    outline: none;
}

.uni-stores-locator__pick:focus-visible::after {
    outline: 2px solid var(--uni-net-primary);
    outline-offset: -2px;
}

.uni-stores-locator__pick-label,
.uni-stores-locator__pick-current {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.uni-stores-locator__pick-label .fa-arrow-right {
    font-size: 0.8em;
    transition: transform 0.2s ease;
}

@media (hover: hover) {
    .uni-stores-locator__card:hover .uni-stores-locator__pick-label .fa-arrow-right {
        transform: translateX(3px);
    }
}

.uni-stores-locator__pick-current,
.uni-stores-locator__card.is-current .uni-stores-locator__pick-label {
    display: none;
}

.uni-stores-locator__card.is-current .uni-stores-locator__pick-current {
    display: inline-flex;
}

@media (prefers-reduced-motion: reduce) {
    .uni-stores-locator__card,
    .uni-stores-locator__pick-label .fa-arrow-right {
        transition: none;
    }
}

/* L'enseigne ne capte pas le clic destiné à la carte entière. */
.uni-stores-locator__media .uni-store-feature__brand {
    pointer-events: none;
}
