/* Charte du module voyages : liste (products.ejs), fiche (product.ejs), tunnel (views/packages, via .bk--voyage de booking.css).
   Polices et couleurs du site (Poppins / DM Sans, vert #009aad, orange #9abf58), traitées sobrement : fond blanc, filets fins, ombres légères. */
:root{--vy-primary:#009aad;--vy-primary-dark:#1e8284;--vy-primary-deep:#009aad;--vy-primary-soft:#e6f5f7;--vy-accent:#9abf58;--vy-accent-dark:#7fa33f;--vy-ink:#0b0a12;--vy-muted:#747579;--vy-line:#dfdfe3;--vy-ground:#f5f5f6;--vy-radius:var(--radius-lg,12px);--vy-shadow:0 1px 2px rgba(11,10,18,.04),0 6px 20px rgba(11,10,18,.06);--vy-title:Poppins,sans-serif}.vy .breadcrumb{font-size:13px}
.vy .breadcrumb a{text-decoration:none}
/* Fiche : galerie mobile pleine largeur, image recadrée sans bandes */
.vy #carouselExampleControls{border-radius:var(--vy-radius);overflow:hidden;background:#eef1f5}
.vy #carouselExampleControls .carousel-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media (max-width:767.98px){
  /* Fil d'Ariane sur une ligne : le titre du voyage (déjà en h1) est tronqué */
  .vy .breadcrumb{flex-wrap:nowrap;white-space:nowrap}
  .vy .breadcrumb-item.active{min-width:0;overflow:hidden;text-overflow:ellipsis}
}
.vy h1,.vy .widget_title,.vy .card-body h3.fs-5{font-family:var(--vy-title);font-weight:600;}
.vy .form-control,.vy .form-select{border-color:#D9DDD9;border-radius:var(--radius)}
.vy .form-control:focus,.vy .form-select:focus{border-color:var(--vy-primary);box-shadow:0 0 0 3px rgba(0, 154, 173,.12)}
.vy :focus-visible{outline:2px solid var(--vy-primary);outline-offset:2px}


/* Cartes : blanches, filet fin, ombre légère */
.vy .card,.vy .bg-opacite-primary.shadow,.vy .engine{border:1px solid var(--vy-line);border-radius:var(--vy-radius);background:#fff;box-shadow:var(--vy-shadow)!important}
.vy .card-body{line-height:1.65}
@media (min-width:768px){.vy #description .card-body,.vy #tarifs .card-body,.vy .card.mb-3 .card-body,.vy .bg-opacite-primary>.p-3{padding:28px 32px!important}}

/* Liste des voyages : même carte que l'accueil (.home-card de home.css) */

/* Filtres de la liste : pastilles cliquables, effet immédiat */
.vy-filter{display:flex;flex-wrap:wrap;gap:.75rem 2rem;padding:1rem 1.25rem;margin-bottom:1.25rem;background:#fff;border-radius:var(--radius-xl);box-shadow:0 4px 14px rgba(15,41,77,.08)}
.vy-filter-group{display:flex;align-items:center;gap:.75rem;min-width:0;max-width:100%}
.vy-filter-label{flex:none;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.vy-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.vy-chip{display:inline-flex;align-items:center;gap:.3rem;min-height:36px;padding:.375rem .875rem;border:1px solid #dfe3ea;border-radius:var(--radius-pill);background:#fff;font-size:14px;font-weight:500;line-height:1;transition:background-color .15s,border-color .15s,color .15s}
.vy-chip:hover{border-color:var(--vy-primary);color:var(--vy-primary)}
.vy-chip[aria-pressed="true"]{background:var(--vy-primary);border-color:var(--vy-primary);color:#fff}
@media (max-width:767.98px){
  /* Mobile : une seule ligne défilante, sans carte, bord à bord */
  .vy-filter{flex-wrap:nowrap;overflow-x:auto;gap:.75rem;margin:0 calc(var(--bs-gutter-x,1.5rem) * -.5) .75rem;padding:.25rem calc(var(--bs-gutter-x,1.5rem) * .5) .5rem;background:none;border-radius:0;box-shadow:none;scrollbar-width:none}
  .vy-filter::-webkit-scrollbar{display:none}
  .vy-filter-group{flex:none;max-width:none;gap:.5rem}
  .vy-filter-group+.vy-filter-group{padding-left:.75rem;border-left:1px solid #dfe3ea}
  .vy-filter-label{font-size:11px}
  .vy-chips{flex-wrap:nowrap}
  .vy-chip{flex:none;min-height:34px;padding:.3rem .75rem;font-size:13px}
}
.vy-count-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.vy-count{font-size:14px;margin:0}
.vy-reset{border:0;background:none;padding:0;color:var(--vy-primary);font-size:14px;font-weight:600}
.vy-reset:hover{text-decoration:underline}
.vy-noresult{text-align:center;padding:3rem 1rem;}
.vy-noresult .bi{font-size:2rem;color:var(--vy-primary)}
.vy-noresult p{margin:.5rem 0 1rem}
.vy-card{position:relative;display:flex;flex-direction:column;width:100%;background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 14px rgba(15,41,77,.08);transition:transform .2s,box-shadow .2s}
.vy-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(15,41,77,.12)}
.vy-card-media{position:relative;aspect-ratio:4/3;background:#eef1f5;overflow:hidden}
.vy-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.vy-card:hover .vy-card-media img{transform:scale(1.05)}
.vy-card-price{position:absolute;left:.75rem;bottom:.75rem;background:#fff;border-radius:var(--radius);padding:.25rem .625rem;box-shadow:0 4px 14px rgba(15,41,77,.08);line-height:1.2}
.vy-card-price small{display:block;font-size:11px;}
.vy-card-price strong{color:#111;font-size:1.125rem}
.vy-card-badge{position:absolute;top:.75rem;left:.75rem;padding:.2rem .6rem;border-radius:var(--radius-pill);background:var(--vy-primary-soft);color:var(--vy-primary);font-size:12px;font-weight:600}
.vy-card-badge.is-off{background:#fdecec;color:#b42318}
.vy-card-body{padding:.875rem 1rem 1rem;flex:1}
.vy-card-title{font-family:var(--vy-title);font-size:1.0625rem;font-weight:600;margin:0 0 .25rem;line-height:1.3}
.vy-card-title a{text-decoration:none;color:#111}
.vy-card-title a::after{content:"";position:absolute;inset:0;z-index:1}
.vy-card-place{font-size:14px;margin:0}
.vy-card-meta{list-style:none;padding:0;margin:.625rem 0 0;display:grid;gap:.25rem;font-size:13px;}
.vy-card-meta .bi,.vy-card-place .bi{color:var(--vy-primary);margin-right:.25rem}
.vy-card-stars{margin-left:.25rem}
.vy-card-tag{display:flex;align-items:center;gap:.5rem;margin-top:.625rem;padding:.375rem .625rem;border-radius:var(--radius);background:#e6f5f7;color:#1e8284;font-size:13px}
.vy-card-tag .bi{flex:none;color:#009aad}

/* Fiche : en-tête et prix */
.vy .recap-products .card{border:0}

.vy .recap-products .price{color:var(--vy-accent)}

/* Titres de section : trait orange court au lieu des décorations du thème */
.vy .widget_title{margin-bottom:20px;font-size:22px!important}


/* Départs */
.vy .tbody .tr{border:1px solid var(--vy-line);border-radius:var(--radius);background:#fff!important}
.vy .tbody .tr:hover{border-color:var(--vy-primary)}
.vy .tbody .tr .row{align-items:center}

/* Détails prix et programme */
.vy .border-end-border-primary{border-color:var(--vy-line)!important}
.vy .interary-item .icon-left{background:var(--vy-primary)!important;color:#fff!important}
.vy .interary-item .line{background:var(--vy-line)!important}

/* Demande de devis et liste vide */
.vy .quote-card{border:1px solid var(--vy-line);box-shadow:var(--vy-shadow)!important}
.vy .empty-offers{box-shadow:var(--vy-shadow)!important}

@media (prefers-reduced-motion:reduce){.vy *{transition:none!important}.vy-card:hover,.vy-card:hover .vy-card-media img{transform:none}}

/* Fiche voyage : méta (hôtel, lieu, durée) et prix */
.pd-meta { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; font-size: .9rem; color: #333; }
.pd-meta .list-inline-item { margin: 0; }
.pd-meta .bi { margin-right: .25rem; color: #666; }
.pd-price-unit { font-size: .85rem; font-weight: 500; color: #6c757d; }

/* Fiche voyage : tarifs par mois de départ */
.dep-months { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .5rem; margin-bottom: 1rem; scroll-snap-type: x proximity; }
.dep-month { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; min-width: 8.5rem; padding: .6rem .9rem; border: 1px solid #dee2e6; border-radius: .6rem; background: #fff; text-align: left; scroll-snap-align: start; transition: border-color .15s, box-shadow .15s; }
.dep-month:hover { border-color: #009aad; }
.dep-month.active { border-color: #009aad; box-shadow: inset 0 0 0 1px #009aad; background: #f2f7fd; }
.dep-month-label { font-weight: 600; text-transform: capitalize; color: #1f2d3d; }
.dep-month-price { font-size: .85rem; font-weight: 600; color: #e8862f; }
.dep-month-count { font-size: .75rem; color: #6c757d; }
.dep-list { border: 1px solid #e9ecef; border-radius: .6rem; overflow: hidden; }
.dep-row { display: flex; align-items: center; gap: 1rem; padding: .75rem 1rem; border-top: 1px solid #e9ecef; }
.dep-row:first-child, .dep-row[hidden] + .dep-row { border-top: 0; }
.dep-row:not([hidden]) ~ .dep-row:not([hidden]) { border-top: 1px solid #e9ecef; }
.dep-row[hidden] { display: none; }
.dep-row:hover { background: #f8f9fa; }
.dep-date { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dep-date strong { text-transform: capitalize; }
.dep-date small { color: #6c757d; }
.dep-price { white-space: nowrap; text-align: right; }
.dep-price strong { font-size: 1.05rem; }
.dep-price small { color: #6c757d; }
@media (max-width: 575.98px) {
  /* Mobile : date et infos sur toute la largeur, prix + bouton en dessous */
  .dep-row { flex-wrap: wrap; gap: .5rem 1rem; }
  .dep-date { flex: 1 1 100%; }
  .dep-price { flex: 1; text-align: left; }
}
