:root {
    --gap-cards: 1.25rem;
  }


/**************************************************************************/
/**************************************************************************/
/***************************************************** CARD / LIST FILTER */
/**************************************************************************/
/**************************************************************************/

.dv-sejour-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 1rem;
}
.dv-sejour-filter__label {
    font-weight: 600;
}
.dv-sejour-filter__input {
    padding: 6px 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
}
.dv-sejour-filter__range {
    color: #666;
    font-size: 0.9rem;
}
.dv-sejour-filter__submit {
    padding: 6px 12px;
    border: 1px solid #222;
    background: #222;
    color: #fff;
    border-radius: 6px;
    cursor: pointer;
}
.dv-sejour-filter__reset {
    color: #333;
    text-decoration: underline;
    font-size: 0.9rem;
}

/**************************************************************************/
/**************************************************************************/
/************************************************************ CARD / LIST */
/**************************************************************************/
/**************************************************************************/

.dv-sejour-liste-container {
    display: flex;
    gap: var(--gap-cards)
}

/* MODE LISTE */
.dv-sejour-liste-container.dv-layout-list {
    flex-direction: column;
}

/* MODE GRILLE */
.dv-sejour-liste-container.dv-layout-grid {
    display: grid;
    grid-template-columns: 1fr;
}

/* MODE CAROUSEL (sans JS, scroll-snap) */
.dv-sejour-liste-container.dv-layout-carousel {
    container-type: inline-size;
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    align-items: stretch;
    gap: var(--gap-cards);
    scroll-padding-inline: 0.75rem;
    padding: var(--gap-cards) 0.75rem; /* évite de rogner 1ère/dernière carte */
    scrollbar-width: none; /* Firefox */
}
.dv-sejour-liste-container.dv-layout-carousel::-webkit-scrollbar {
    display: none; /* Chrome, Edge, Safari */
}

/* Boutons de navigation du carrousel */
.dv-carousel {
    position: relative;
}
.dv-carousel .dv-carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    background: rgba(0,0,0,0.5);
    color: #fff;
    border: 0;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    cursor: pointer;
    padding:0;
}
.dv-carousel .dv-carousel-prev { left: .5rem; }
.dv-carousel .dv-carousel-next { right: .5rem; }

.dv-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    transition: transform .2s ease, box-shadow .2s ease;
    height: 100%;
}
.dv-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.10);
}
.dv-card a {
    display: flex;
    flex-direction:row;
    color: inherit;
    text-decoration: none;
}

/* Carte en grille ou carrousel: empilement vertical */
.dv-layout-grid .dv-card a,
.dv-layout-carousel .dv-card a {
    flex-direction: column;
    height:100%;
}
.dv-card-vignette {
    flex:0 0 30%;
    background-size:cover;
}

/* Ratio image pour grille & carrousel */
.dv-layout-grid .dv-card-vignette,
.dv-layout-carousel .dv-card-vignette {
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
    width: 100%;
}

.dv-sejour-liste-container.dv-layout-carousel .dv-card {
    flex: 0 0 calc((100% - 0 * var(--gap-cards)) / 1);
    scroll-snap-align: start;
    scroll-snap-stop: always;
    display: flex;
    flex-direction: column;
}

/* Paliers selon largeur du CONTENEUR */
@container (min-width: 576px) {
    .dv-sejour-liste-container.dv-layout-carousel .dv-card {
        flex: 0 0 calc((100% - 1 * var(--gap-cards)) / 2);
    }
}
  
/* ≥ 992px → 3 cartes */
@container (min-width: 992px) {
    .dv-sejour-liste-container.dv-layout-carousel .dv-card {
        flex: 0 0 calc((100% - 2 * var(--gap-cards)) / 3);
    }
}

/* ≥ 1280px → 4 cartes */
@container (min-width: 1280px) {
    .dv-sejour-liste-container.dv-layout-carousel .dv-card {
        flex: 0 0 calc((100% - 3 * var(--gap-cards)) / 4);
    }
}



.dv-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex:1;
}
.dv-card-title {
    margin: 0;
    font-weight: 700;
    font-size: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
}

.dv-layout-carousel .dv-card-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.dv-card-excerpt {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dv-card-sejour-meta {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    color: #333;
    font-size: 0.9rem;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}
.dv-card-sejour-meta li { margin: 0; }

/**************************************************************************/
/**************************************************************************/
/********************************************************* FICHE / SINGLE */
/**************************************************************************/
/**************************************************************************/

main.dv-sejour-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}
.sejour-content, .sejour-header {
    max-width:var(--content-max-width);
    padding-left:var(--content-padding-left-sm);
    padding-right:var(--content-padding-right-sm);
    margin-left:auto;
    margin-right:auto;
}
.sejour-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-bottom:50px;
}
.sejour-section-content {
    display:flex;
    flex-direction:column;
    gap:1.25rem;
    position:relative;
}
.sejour-section-content.col2 > div {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding:25px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

/* === Grille des médias importés (dv_medias) === */
.dv-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
    margin: 20px 0;
  }
  .dv-media-grid__item {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0;
    transition: transform .2s ease;
  }
  .dv-media-grid__img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    display: block;
  }
  .dv-media-grid__item:hover { transform: scale(1.02); }


/**************************************************************************/
/**************************************************************************/
/************************************************************* RESPONSIVE */
/**************************************************************************/
/**************************************************************************/

/* Small ≥576px */
@media (min-width: 576px) {
    .dv-sejour-liste-container.dv-layout-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Medium ≥768px */
@media (min-width: 768px) {
    .sejour-content, .sejour-header {
        padding-left:var(--content-padding-left);
        padding-right:var(--content-padding-right);
    }
    .dv-sejour-liste-container.dv-layout-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Large ≥992px */
@media (min-width: 992px) {
    .sejour-content {
        grid-template-columns: 1fr 40%; align-items: start;
    }

    .dv-media-grid {
        grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
    }
    .dv-media-grid__img { height: 70px; }

    .dv-sejour-liste-container.dv-layout-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}


@media (min-width: 1280px) {}
