/* ==========================================================================
   circuit.css : page unique "Circuit" (template Theme Builder)
   Chargé par inc/enqueue-circuit.php uniquement sur is_singular('circuit')
   Sommaire :
     1. Hero grid (#circuit-hero-grid)
     2. Titre + badges (.col-titre)
     3. Carte prix (.card-prix)
     4. Bloc infos (.infos-grid)
     5. Catégories / pictos (shortcodes)
     6. Mobile (<= 767px)
   ========================================================================== */

  .circuit-categories .circuit-category-item {
    padding: 4px 12px !important;
    border-radius: 999px;
    font-size: .7rem;
    font-family: 'Montserrat';
    font-weight:bold;
    text-transform:uppercase;
    line-height: 1.4;
    color:var( --ft-color-pierre-claire);
     background: var(--st-color-terracota);
    display: inline-block;
  }
  .circuit-categories.circuit-eco .circuit-category-item {
    background: var(--st-color-olive);
    
  }
  .circuit-categories.circuit-eco .circuit-category-item svg {
    width: 14px;
    stroke: white;
     vertical-align: middle;
  }
.circuit-sous-titre-fiche {
  font-family: var( --e-global-typography-eee9b7f-font-family ), Sans-serif;
  font-size: var( --e-global-typography-eee9b7f-font-size );
  font-weight: var( --e-global-typography-eee9b7f-font-weight );
  line-height: var( --e-global-typography-eee9b7f-line-height );
  color:var(--st-color-terracota);
}

body .circuit-itineraire__map-vignette {
  display: grid;
  justify-items: right;
  margin-top: 10px;
}
body .circuit-itineraire__map-vignette .st-card-radius {
 border:1px solid var(--st-color-terracota);
}
/* ==========================================================================
   1. HERO GRID : desktop / tablette (2 colonnes)
   Enfants directs : .col-titre | .col-plus | .card-prix | .infos-grid

   Colonne gauche : titre (ligne 1), "Les +" (ligne 2)
   Colonne droite : carte prix (lignes 1-2), infos (ligne 3)
   ========================================================================== */
#circuit-hero-grid > .col-titre {
  grid-column: 1;
  grid-row: 1;
  align-self: start;         /* le titre reste collé en haut */
}
#circuit-hero-grid > .col-plus {
  grid-column: 1;
  grid-row: 2 / span 2;
  align-self: start;
}
#circuit-hero-grid > .card-prix {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
}
#circuit-hero-grid > .infos-grid {
  grid-column: 2;
  grid-row: 3;
  align-self: start;
}

/* ------------------------*/
/* BLOC Détais du prix inclus/non inclus /
/* ------------------------*/
.details-prix-colonnes {
    display: flex;
    gap: 0;
    flex-wrap: wrap;
    margin-top: 20px;
}

.details-prix-col {
    flex: 1 1 0;
    min-width: 250px;
}

.details-prix-titre {
    margin-bottom: 12px;
    font-weight: 600;
}

.details-prix-liste {
    list-style: none;
    padding: 0;
    margin: 0;
}

.details-prix-liste li {
    padding: 6px 0;
    padding-left: 24px;
    position: relative;
}

/* Puce verte (✓) pour les inclus */
.details-prix-inclus li::before {
    content: "✓";
    color: #2e7d32;
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* Puce rouge (✕) pour les non-inclus */
.details-prix-non-inclus li::before {
    content: "✕";
    color:var(--st-color-terracota);
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* Responsive : empile les colonnes sur mobile */
@media (max-width: 767px) {
    .details-prix-colonnes {
        flex-direction: column;
        gap: 20px;
    }
}

/* ==========================================================================
   2. TITRE + BADGES
   ========================================================================== */
.col-titre .circuit-sous-titre-fiche {
  margin: 0 0 12px;
  line-height: 1.15;
  color:var(--st-color-terracota);
}

/* ==========================================================================
   3. CARTE PRIX
   ========================================================================== */
.card-prix {
  background: var(--st-color-sable);
  border-radius: var(--st-radius-sable);
  padding: clamp(1.25rem, -0.1786rem + 2.9762vw, 2.5rem);
}
#duree.card-prix h3 {
  color:var(--st-color-terracota);
}
.card-prix .a-propos {
  text-decoration:underline;
}
.card-prix .a-propos:hover {
  text-decoration:none;
}
.card-prix .circuit-prix-duree {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}
.card-prix .circuit-duree-item,
.card-prix .circuit-prix-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.card-prix .circuit-prix {
  font-size: 1.8em;
  font-weight: 700;
  line-height: 1.1;
}
.card-prix .circuit-prix small {
  font-weight: normal;
  font-size: 1rem;
}
.card-prix .circuit-duree {
  font-weight: 600;
}
.card-prix a {
  display: inline-block;
  margin-top: 6px;
}

.card-prix .st-btn {
  width: 100%;
  margin-top: 25px;
}

/* ==========================================================================
   4. BLOC INFOS (grid Elementor : .infos-grid)
   Chaque cellule = conteneur enfant (label + shortcode)
   Desktop : 1 colonne (liste verticale comme la maquette)
   ========================================================================== */
.infos-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.infos-grid > .e-con {
  border-bottom: 1px solid rgba(0, 0, .15);
  padding: 12px 0;
}
.infos-grid .elementor-heading-title {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.elementor-shortcode > .circuit-categories { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; }

/* ==========================================================================
   5. CATEGORIES / PICTOS (sorties des shortcodes)
   ========================================================================== */
.circuit-categories, .circuit-categories:first-child .circuit-category-item:first-child {
  list-style: none;
  margin: 0 2px 0 0;
  padding: 0;
}
.circuit-categories:first-child .circuit-category-item {
  margin:0;
}

.circuit-categories--pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.circuit-categories--pills .circuit-category-item span {
  display: inline-block;
  padding: 4px 12px;
  font-size: 13px;
  line-height: 1.4;
}

.circuit-plus-experience ul {
  margin: 0;
  /*padding-left: 1.2em;*/
}
.circuit-plus-experience li {
  margin-bottom: 6px;

}
.circuit-plus-experience li:before {
  content: "";
  position: absolute;
  left: .3rem;
  top: .9rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--st-color-terracota);
}

.circuit-hebergement {
  display: block;
}

/* ==========================================================================
   6. MOBILE (<= 767px)
   1 colonne. Ordre : titre > prix > infos > "Les +"
   ========================================================================== */
@media (max-width: 767px) {

  #circuit-hero-grid {
    grid-template-columns: 1fr;
  }

  /* On neutralise le placement desktop */
  #circuit-hero-grid > .col-titre,
  #circuit-hero-grid > .col-plus,
  #circuit-hero-grid > .card-prix,
  #circuit-hero-grid > .infos-grid {
    grid-column: 1;
    grid-row: auto;
  }

  /* Ordre d'affichage mobile */
  #circuit-hero-grid > .col-titre  { order: 1; }
  #circuit-hero-grid > .card-prix  { order: 2; }
  #circuit-hero-grid > .infos-grid { order: 3; }
  #circuit-hero-grid > .col-plus   { order: 4; }

  /* Infos : 2 colonnes en mobile (comme la capture) */
  .infos-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
  }
}

/* ==========================================================================
   7. DÉTAIL DU PRIX
   ========================================================================== */
.circuit-details-prix {
  margin-top: 24px;
}

.details-prix-description {
  margin-bottom: 32px;
}

.details-prix-colonnes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.details-prix-col {
  min-width: 0;
  padding: 0 32px;
}

.details-prix-col:first-child {
  padding-left: 0;
}

.details-prix-col + .details-prix-col {
  border-left: 1px dashed var(--st-color-terracota);
}

.details-prix-col summary {
  font-family:var(--font-heading);
  display: flex;
  gap: 10px;
  list-style: none;
  cursor: default;
  pointer-events: none;
  font-size:var(--st-titre-h3);
}

.details-prix-col summary::-webkit-details-marker {
  display: none;
}

.details-prix-icon {
  display: inline-grid;
  width: 1.25em;
  height: 1.25em;
  place-items: center;
  font-weight: 700;
}

.details-prix-col--inclus .details-prix-icon {
  color:var(--st-color-olive);
}

.details-prix-col--non-inclus .details-prix-icon {
  color:var(--st-color-terracota);
}
.details-prix-col--inclus .details-prix-icon, .details-prix-col--non-inclus .details-prix-icon {
    font-size:26px;
}

.details-prix-titre {
  font-weight: 600;
}

.details-prix-liste {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}

.details-prix-liste li {
  position: relative;
  padding: 6px 0 6px 26px;
}

.details-prix-liste li::before {
  position: absolute;
  left: 0;
  top:10px;
  font-family: "Sport Travel Icons" !important;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

.details-prix-col--inclus .details-prix-liste li::before {
  content: "\e905";
  color:var(--st-color-olive);
}

.details-prix-col--non-inclus .details-prix-liste li::before {
  content: "\e902";
  color:var(--st-color-terracota);
}

@media (max-width: 767px) {
  .details-prix-colonnes {
    display: block;
  }

  .details-prix-col,
  .details-prix-col:first-child {
    padding: 0;
  }

  .details-prix-col + .details-prix-col {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(201, 122, 78, 0.35);
    border-left: 0;
  }

  .details-prix-col summary {
    min-height: 44px;
    cursor: pointer;
    pointer-events: auto;
  }

  .details-prix-col summary::after {
    font-family: "Sport Travel Icons" !important;
    content: "\\e905";
    margin-left: auto;
    color: var(--st-color-terracota);
    font-size: 1.25rem;
    line-height: 1;
  }

  .details-prix-col[open] summary::after {
    content: "⌃";
  }
}

/*
 * Grille [circuit_infos_grid] — à coller dans style.css du thème enfant.
 *
 * Desktop : une colonne, avec une ligne séparatrice par information.
 * Mobile (même breakpoint que circuit.css) : deux colonnes ; destination et
 * hébergement restent en pleine largeur via .circuit-info--wide.
 */
.circuit-infos-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100%;

}

/* Chaque information reste autonome et ne force pas la largeur de la grille. */
.circuit-infos-grid .circuit-info {
  min-width: 0;
  padding: 12px 0;
  border-bottom: 1px solid rgba(0, 0, .15);
}

/* Petit libellé, conformément aux titres de .infos-grid dans circuit.css. */
.circuit-infos-grid .circuit-info > .circuit-titre {
  display: block;
  color:var(--st-color-noir-volcanique);
  letter-spacing: .1em;
  line-height: 1.3;
  text-transform: uppercase;
  font-weight: bold;
  opacity: .6;
}

/* Valeurs : police et couleur déjà utilisées par le thème enfant. */
.circuit-infos-grid .circuit-info > :not(.circuit-titre) {
  color:var(--st-color-noir-volcanique);
  line-height: 1.5;
  font-weight: bold;
}

/* Les taxonomies sont rendues en pastilles par le shortcode PHP. */
/*.circuit-infos-grid .circuit-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.circuit-infos-grid .circuit-pill {
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid rgba(0, 0, .15);
  border-radius: 999px;
  font-size: .9em;
  line-height: 1.4;
}*/

/* Niveau : conserve les classes générées par circuits-acf-shortcodes.php. */
.circuit-infos-grid .circuit-niveau {
  white-space: nowrap;
}
/*
.circuit-infos-grid .circuit-botte {
  display: inline-block;
  margin-right: 4px;
  font-size: 1.05em;
}
*/
/*
 * Mobile <= 767px : deux colonnes. Seuls destination et hébergement sont
 * explicitement larges ; l'âge reste donc dans une cellule simple.
 */
@media (max-width: 767px) {
  .circuit-infos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
  }

  .circuit-infos-grid .circuit-info {
    padding: 12px 0;
  }

  .circuit-infos-grid .circuit-info--wide {
    grid-column: 1 / -1;
  }
}

/* =========================================================================
   BLOC ITINÉRAIRE / CARTE MODALE (fusionné depuis la version générée)
   ========================================================================= */

/* Itinéraire : carte sticky à gauche + timeline éditoriale */
.circuit-itineraire { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(28px,5vw,80px); align-items:start; }
.circuit-itineraire__map-column { position:sticky; top:190px; }
.circuit-itineraire__map { --map-scale:1; position:relative; overflow:hidden; background:#eee7df; }
.circuit-itineraire__map-image { display:block; width:100%; height:auto; }
.circuit-itineraire__map-lines { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
/*.circuit-itineraire__map-lines polyline { 
  fill:none; 
  stroke:var(--st-color-terracota); 
  stroke-width:calc(4 * var(--map-scale)); 
  stroke-dasharray:calc(6 * var(--map-scale)) calc(6 * var(--map-scale)); 
   stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect:non-scaling-stroke; 
}*/
.circuit-itineraire__map-lines polyline {  fill: none;  stroke: var(--st-color-terracota);  stroke-width: 3px !important;  stroke-dasharray: 5px 10px !important; /* petits traits espacés ; avec round = points */  stroke-linecap: round;  stroke-linejoin: round;  vector-effect: non-scaling-stroke;}
.circuit-itineraire__map-marker { position:absolute; transform:translate(-50%,-50%); flex:0 0 calc(28px * var(--map-scale)); width:calc(28px * var(--map-scale)); min-width:calc(28px * var(--map-scale)); height:calc(28px * var(--map-scale)); min-height:calc(28px * var(--map-scale)); padding:0; box-sizing:border-box; border:calc(2px * var(--map-scale)) solid var(--ft-color-pierre-claire); border-radius:50% !important; background:var(--st-color-noir-volcanique); color:var(--ft-color-pierre-claire) !important; font:600 calc(11px * var(--map-scale))/calc(24px * var(--map-scale)) inherit; box-shadow:0 calc(2px * var(--map-scale)) calc(8px * var(--map-scale)) var(--st-color-noir-volcanique)55; cursor:pointer; z-index:2; }
.circuit-itineraire__map-marker.is-active { background:var(--st-color-terracota); transform:translate(-50%,-50%) scale(1.3); border-radius:50% }
.circuit-itineraire__map-marker-label { position:absolute; transform:translate(calc(16px * var(--map-scale)),-50%); z-index:1; max-width:calc(100% - 34px * var(--map-scale)); padding:calc(2px * var(--map-scale)) calc(4px * var(--map-scale)); color:var(--st-color-noir-volcanique); font-size:calc(12px * var(--map-scale)); font-weight:600; line-height:1.25; text-shadow:0 1px 0 var(--ft-color-pierre-claire); pointer-events:none; }
.circuit-itineraire__map-expand { position:absolute; right:12px; bottom:12px; border:0; padding:9px 12px; background:var(--ft-color-pierre-claire); color:var(--st-color-noir-volcanique); font:600 12px inherit; cursor:pointer; }
.circuit-itineraire__timeline { position:relative; padding-left:54px; }
.circuit-itineraire__timeline:before { content:""; position:absolute; left:14px; top:12px; bottom:40px; border-left:1px dashed var(--st-color-terracota); }
.circuit-itineraire__day { position:relative; padding:0 0 48px; }
.circuit-itineraire__day-marker { position:absolute; left:-54px; top:0; width:30px; height:30px; border:1px solid var(--st-color-terracota); border-radius:50%; background:var(--ft-color-pierre-claire); color:var(--st-color-terracota); text-align:center; z-index:1; padding: 2px 0 0 0;}
.circuit-itineraire__day.is-active .circuit-itineraire__day-marker { background:var(--st-color-terracota); color:var(--ft-color-pierre-claire); }
.circuit-itineraire__label { margin:0 0 8px; color:var(--st-color-terracota); font-size:11px; font-weight:700; letter-spacing:.16em; }
.circuit-itineraire__content h3 { margin:0 0 12px; color:var(--st-color-noir-volcanique); font-family: 'Fraunces';  font-size:var(--st-titre-h3)}
.circuit-itineraire__day.is-active .circuit-itineraire__content h3 {color:var(--st-color-terracota)}
.circuit-itineraire__description { color:var(--st-color-noir-volcanique); line-height:1.65; }
.circuit-itineraire__image { margin-top:22px; aspect-ratio:16/9; overflow:hidden; }
.circuit-itineraire__image img { width:100%; height:100%; object-fit:cover; display:block; }
.circuit-itineraire__icons { display:flex; flex-wrap:wrap; gap:13px 22px; margin-top:10px; }
.circuit-itineraire__icon-row { display:inline-flex; align-items:center; gap:8px; color:var(--st-color-noir-volcanique); font-size:13px; }
.circuit-itineraire__icon-row img { width:22px; height:22px; object-fit:contain; }
/*.circuit-itineraire__toggle { border:1px solid var(--st-color-terracota); background:transparent; color:var(--st-color-terracota); padding:12px 16px; cursor:pointer; font-weight:600; }*/
.circuit-itineraire__day.is-collapsed { display:none; }
.circuit-itineraire.is-expanded .circuit-itineraire__day.is-collapsed { display:block; }
.circuit-itineraire__map-modal[hidden] { display:none; }
.circuit-itineraire__map-modal { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:4vh 6vw; background:#201613ee; }
.circuit-itineraire__map-modal-dialog { position:relative; width:auto; max-width:90vw; max-height:90vh; }
.circuit-itineraire__map-modal .circuit-itineraire__map { display:inline-block; width:auto; max-width:90vw; max-height:90vh; overflow:visible; background:transparent; }
.circuit-itineraire__map-modal .circuit-itineraire__map-image { width:auto; height:auto; max-width:90vw; max-height:90vh; }
.circuit-itineraire__map-modal-close { position:absolute; top:10px; right:10px; z-index:4; border:0; padding:9px 12px; background:var(--ft-color-pierre-claire); color:var(--st-color-noir-volcanique); cursor:pointer; }
@media (max-width:767px) { .circuit-itineraire { display:flex; flex-direction:column; gap:30px; } .circuit-itineraire__map-column { position:relative; top:auto; width:100%; order:0; } .circuit-itineraire__timeline { width:100%; padding-left:44px; } .circuit-itineraire__day-marker { left:-44px; } .circuit-itineraire__timeline:before { left:14px; } }



/* ==========================================================================
   Carrousel d'avis : puces façon mobile-carousel + flèches masquées en mobile
   Classe à poser sur le widget : avis-carousel
   Largeur des slides (1,15 en mobile) gérée par avis-carousel.js (Swiper)
   ========================================================================== */

/* Variables locales (mêmes valeurs que mobile-carousel.css) */
/* ==========================================================================
   Carrousel d'avis : puces façon mobile-carousel + flèches masquées en mobile
   Classe à poser sur le widget : avis-carousel
   Largeur des slides (1,15 en mobile) gérée par avis-carousel.js (Swiper)
   ========================================================================== */

/* Variables locales (mêmes valeurs que mobile-carousel.css) */
.avis-carousel {
    --avis-dot: #c9c5bb;
    --avis-dot-active:var(--st-color-terracota);
}

/* Conteneur : coupe ce qui dépasse, aucun décalage forcé */
.avis-carousel .swiper,
.avis-carousel .swiper-container {
    overflow: hidden;
    padding-bottom: 0;
}

/* Conteneur des puces : dans le flux, centré sous le slider.
Les !important neutralisent le positionnement absolu + translateX(-50%) d'Elementor */
.avis-carousel .swiper-pagination,
.avis-carousel .swiper-pagination.swiper-pagination-bullets,
.avis-carousel .swiper-pagination.swiper-pagination-horizontal {
    position: relative !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px;                          /* espacement entre puces */
    width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 24px 0 16px !important;    /* 16px en bas : évite la coupe */
    padding: 0 !important;
    box-sizing: border-box;
}

/* Puce inactive : vrai rond de 10px, avec transition fluide */
.avis-carousel .swiper-pagination .swiper-pagination-bullet,
.avis-carousel .elementor-swiper-pagination .swiper-pagination-bullet,
.avis-carousel .swiper-pagination-bullets .swiper-pagination-bullet {
    display: block !important;
    flex: 0 0 auto !important;
    width: 10px;                       /* sans !important : permet l'animation */
    min-width: 10px;
    height: 10px !important;
    min-height: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--avis-dot);
    opacity: 1 !important;
    transform: none !important;
    will-change: width, background-color;
    transition: width .3s cubic-bezier(.4, 0, .2, 1),
                min-width .3s cubic-bezier(.4, 0, .2, 1),
                background-color .3s ease !important;
}

/* Puce active : pastille allongée terracotta (la largeur s'anime) */
.avis-carousel .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,
.avis-carousel .swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
    width: 32px;
    min-width: 32px;
    background: var(--avis-dot-active);
}

/* dektop : plus aucune puces */
@media (min-width: 768px) {
    body .elementor-element.avis-carousel .swiper-pagination,
    body .elementor-element.avis-carousel .swiper-pagination-bullets {
        display: none !important;
    }
}

/* Mobile : plus aucune flèche */
@media (max-width: 767px) {
    .avis-carousel .elementor-swiper-button,
    .avis-carousel .elementor-swiper-button-prev,
    .avis-carousel .elementor-swiper-button-next {
        display: none !important;
    }
}


.st-filtres {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  position: relative;
}
.st-filtres__count {
  position: static;   /* annule l'absolute */
  order: 99;          /* passe après les boutons */
  margin-left: auto;  /* poussé à droite */
  white-space: nowrap;
}




/* ===== Galerie circuit [st_galerie] (sans titre) ===== */
.st-galerie {
    --st-gal-gap: 16px;
    --st-gal-margin: 20px;   /* marge gauche du slider = marge container */
    overflow: hidden;
}

/* Barre compteur + flèches, alignée à droite sous le titre */
.st-galerie__bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
  /*  padding: 0 var(--st-gal-margin);*/
    margin-bottom: 24px;
    color:var(--st-color-brun);
    font-weight: 600;
}
.st-galerie__arrow { display: none; }  /* flèches : dès 1024px */

/* Piste */
.st-galerie__track {
    display: flex;
    gap: var(--st-gal-gap);
    padding: 0 var(--st-gal-margin);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--st-gal-margin);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.st-galerie__track::-webkit-scrollbar { display: none; }
.st-galerie__item {
    flex: 0 0 85%;                 /* mobile : 1 image + aperçu de la suivante */
    margin: 0;
    scroll-snap-align: start;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
    overflow: hidden;
}
.st-galerie__link { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.st-galerie__item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Puces mobile */
.st-galerie__dots { display: flex; justify-content: center; gap: 8px; margin-top: 20px; }
.st-galerie__dots .st-carousel-dot {
    width: 10px; height: 10px; border-radius: 10px;
    background: #D6D0C8; transition: width .2s, background .2s;
}
.st-galerie__dots .st-carousel-dot.is-active { width: 28px; background:var(--st-color-terracota); }

/* Tablette */
@media (min-width: 768px) {
    .st-galerie { --st-gal-margin: 40px; }
    .st-galerie__item { flex-basis: 45%; aspect-ratio: 3 / 4; }
}

/* Laptop+ : flèches visibles, puces masquées, images 410px */
@media (min-width: 1024px) {
    .st-galerie { --st-gal-margin: 48px; }
    .st-galerie__dots { display: none; }
    .st-galerie__item { flex: 0 0 410px; aspect-ratio: 3 / 4; border-radius: 20px; }
    .st-galerie__arrow {
        display: inline-flex; align-items: center; justify-content: center;
        width: 48px; height: 48px; padding: 0;
        border: 1px solid var(--st-color-brun); 
        border-radius: 50% !important;
        background: transparent; color: var(--st-color-brun); cursor: pointer;
        transition: background .2s, color .2s;
    }
    .st-galerie__arrow--next svg path {stroke:var(--ft-color-pierre-claire);}
    .st-galerie__arrow--next { background: var(--st-color-brun); color: var(--ft-color-pierre-claire); }
    .st-galerie__arrow:hover { background: var(--st-color-terracota); border-color: var(--st-color-terracota); color: var(--ft-color-pierre-claire); }
    .st-galerie__arrow:hover svg path {stroke:var(--ft-color-pierre-claire);}
}

/* XL : alignement sur la marge gauche du container (1280px + 80px) */
@media (min-width: 1280px) {
    .st-galerie { --st-gal-margin: max(80px, calc((100vw - 1280px) / 2 + 80px)); }
}



/* ===== Liste des départs (grille 2 colonnes) ===== */
.st-departs-liste {
    display: grid;
    grid-template-columns: 1fr;            /* mobile : 1 colonne */
    gap: 0 48px;
}

.st-departs-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid #E7DCCF;
    font-family: 'Montserrat', sans-serif;
}

.st-departs-date {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
   /* font-size: 1.125rem;*/
    font-weight: 500;
    color: var(--st-color-brun);
    white-space: nowrap;
}

.st-departs-icon { flex-shrink: 0; }

.st-departs-places {
    flex: 1 1 auto;
  /* font-size: 1.125rem;*/
    font-weight: 700;
    color: var(--st-color-terracota);
}

/*
.st-departs-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0 32px;
    border-radius: 999px;
    background: var(--st-color-terracota);
    border: 2px solid var(--st-color-terracota);
    color: var(--ft-color-pierre-claire);
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s ease, color .2s ease;
}
.st-departs-btn:hover,
.st-departs-btn:focus-visible {
    background: transparent;
    color: var(--st-color-terracota);
}
*/
/* Tablette et + : 2 colonnes (breakpoint 768px de la charte) */
@media (min-width: 768px) {
    .st-departs-liste { grid-template-columns: repeat(2, 1fr); }
}

/* Mobile : on autorise le retour à la ligne pour éviter le débordement */
@media (max-width: 767px) {
    .st-departs-item { flex-wrap: wrap; }
    .st-departs-places { flex: 1 1 100%; order: 3; }
    .st-departs-btn { margin-left: auto; }
}



/* ===== Barre sticky circuit ===== */
#st-sticky-bar.is-sticky {
    position: fixed;
    left: 0;
    right: 0;
    z-index: 9990; /* sous le modal carte (99999) */
    background: var(--ft-color-pierre-claire);
    box-shadow: 0 -4px 16px rgba(39, 36, 36, .12);
    transition: transform .3s ease, opacity .3s ease;
}
#st-sticky-bar.sticky--bottom {
    bottom: 0;
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
}
#st-sticky-bar.sticky--bottom.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.st-sticky__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 8px 20px;
    min-height: 64px;
}
.st-sticky__infos {
    display: contents; /* conserve la disposition desktop existante */
}
.st-sticky__title {
    font-family: 'Montaga', serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size:1.6rem;
}
.st-sticky__prix-duree {
  display:flex;
  flex:1;

}
.st-sticky__duree {
   margin-left: 20px;
   margin-top: 4px;
}
.st-sticky__prix {
    font-family: var(--font-body);
    font-size: 1.2rem;
}
.st-sticky__prix small {
    font-size: .9rem;
   
}
.st-sticky__prix strong {
    color: var(--st-color-terracota);
    font-weight: 700;
}
/*
.st-sticky__cta {
    display: inline-flex;
    align-items: center;
    height: 48px;
    padding: 0 32px;
    border-radius: 999px;
    border: 1px solid var(--st-color-terracota);
    background: var(--st-color-terracota);
    color: var(--ft-color-pierre-claire) !important;
    font: bolder 1rem 'Montserrat', sans-serif !important;
    text-decoration: none;
    white-space: nowrap;
}
.st-sticky__cta:hover,
.st-sticky__cta:focus-visible {
    background: transparent;
    color: var(--st-color-terracota) !important;
}
*/
/* Mobile : durée et prix empilés à gauche, CTA à droite */
@media (max-width: 767px) {
    .st-sticky__inner {
        gap: 10px;
        padding: 8px 14px;
        justify-content: space-between;
    }
    .st-sticky__infos {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        min-width: 0;
    }
    .st-sticky__prix-duree { display: contents; }
    .st-sticky__title { display: none; }
    .st-sticky__duree {
        margin: 0;
        white-space: nowrap;
        font-size: 14px;
        line-height: 1.2;
    }
    .st-sticky__prix {
        display: flex;
        align-items: baseline;
        gap: 3px;
        white-space: nowrap;
        font-size: 12px;
        line-height: 1.2;
    }
    .st-sticky__prix small { font-size: 10px; }
    .st-sticky__prix strong { font-size: 16px; }
    .st-sticky__prix .st-sticky__pers { font-size: 10px; font-weight: 400; }
    .st-sticky__cta {
        flex: 0 0 auto;
        height: 44px;
        padding: 0 13px;
        font-size: 13px;
    }
    body.single-circuit { padding-bottom: 64px; } /* évite de masquer le bas de page */
}
@media (prefers-reduced-motion: reduce) {
    #st-sticky-bar.is-sticky { transition: none; }
}