/* Bloc « À réserver autour » — fiches activité et pages catégorie (offres-proches.js) */
.offres-proches[hidden] { display: none; }

.op-liste {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
}
.op-card { min-width: 0; }
.op-card__lien {
    display: flex; flex-direction: column; height: 100%;
    border: 1px solid #e3e6ea; border-radius: 10px; overflow: hidden; background: #fff;
    color: inherit; text-decoration: none;
    transition: box-shadow .15s ease, border-color .15s ease;
}
.op-card__lien:hover { border-color: #cfd5db; box-shadow: 0 4px 14px rgba(0, 0, 0, .08); }
.op-card__lien:focus-visible { outline: 3px solid #9bd08a; outline-offset: 2px; }

.op-card__media { position: relative; display: block; aspect-ratio: 3 / 2; background: #eef1f4; overflow: hidden; }
.op-card__media--vide {
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #e8f3e4 0%, #dfeaf3 100%); color: #8fb58a; font-size: 2rem;
}
.op-card__media .photo-credit {
    position: absolute; right: 0; bottom: 0; max-width: 100%; padding: 1px 6px;
    font-size: .68rem; line-height: 1.4; color: #fff; background: rgba(0, 0, 0, .45);
    border-top-left-radius: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.op-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.op-card__lien:hover .op-card__media img { transform: scale(1.04); }

.op-card__body { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px 12px; flex: 1; }
.op-card__lieu { font-size: .8rem; color: #6b747d; }
.op-card__ville { text-transform: uppercase; letter-spacing: .02em; font-size: .76rem; }
.op-card__titre {
    font-weight: 600; font-size: .95rem; line-height: 1.3; color: #1d2329;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.op-card__note { font-size: .85rem; color: #4a535c; }
.op-card__note span[aria-hidden] { color: #f5a623; }
.op-card__nb { color: #7a838c; }
.op-card__prix { margin-top: auto; padding-top: 4px; font-size: .85rem; color: #6b747d; }
.op-card__prix strong { font-size: 1.1rem; color: #1d2329; white-space: nowrap; }

@media (max-width: 768px) {
    .op-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 1 ou 2 offres : cartes horizontales, photo à gauche */
.op-liste--ligne { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.op-liste--une { grid-template-columns: minmax(0, 1fr); }
.op-liste--ligne .op-card__lien { flex-direction: row; }
.op-liste--ligne .op-card__media { flex: 0 0 40%; aspect-ratio: auto; min-height: 140px; }
.op-liste--une .op-card__media { flex: 0 0 300px; aspect-ratio: 3 / 2; min-height: 0; align-self: stretch; }
/* Bas de carte en ligne : prix à gauche, appel à l'action à droite */
.op-card__bas { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.op-card__bas .op-card__prix { margin-top: 0; }
.op-card__cta { display: none; }
.op-liste--ligne .op-card__cta {
    display: inline-block; padding: 7px 16px; border-radius: 8px; font-weight: 600; font-size: .9rem;
    background: #2a8514; color: #fff; white-space: nowrap; transition: background .15s ease;
}
.op-liste--ligne .op-card__lien:hover .op-card__cta { background: #1f6410; }
/* Accroche : seulement quand les cartes sont en ligne (1 ou 2 offres) */
.op-card__accroche { display: none; font-size: .88rem; line-height: 1.45; color: #4a535c; }
.op-liste--ligne .op-card__accroche {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.op-liste--une .op-card__accroche { -webkit-line-clamp: 4; }
.op-liste--une .op-card__body { padding: 16px 20px; gap: 6px; }
.op-liste--une .op-card__titre { font-size: 1.05rem; }
.op-liste--ligne .op-card__body { padding: 12px 14px; }

/* Mobile : carrousel horizontal, une carte et demie visible */
@media (max-width: 576px) {
    .op-liste {
        display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px;
        padding-bottom: 6px; margin-right: -16px; padding-right: 16px;
    }
    .op-card { flex: 0 0 68%; scroll-snap-align: start; }
    /* 1 ou 2 offres : pas de carrousel, cartes horizontales empilées */
    .op-liste.op-liste--ligne { display: grid; grid-template-columns: minmax(0, 1fr); overflow: visible; margin-right: 0; padding-right: 0; }
    .op-liste--ligne .op-card__media, .op-liste--une .op-card__media { flex-basis: 38%; min-height: 110px; }
}

/* Mention (la fiche n'a pas forcément la section « Réserver » et sa CSS) */
.offres-proches .offres-mention { margin: 10px 0 0; font-size: .8rem; line-height: 1.4; color: #7a838c; }
