/*
 * Ce qui remplace Slider Revolution, FlexSlider et PrettyPhoto. Le reste du rendu vient tel quel
 * des feuilles du thème Retro (skin 4, rose), comme en 2019.
 */

/* --- Diaporama ------------------------------------------------------------------------------ */
.cir-diaporama { position: relative; overflow: hidden; margin: 0 auto; width: 100%; max-width: 1110px; }
.cir-scene { position: absolute; left: 0; top: 0; width: 1110px; height: 491px; transform-origin: 0 0; perspective: 900px; }
/* Les diapositives inactives restent dessinées mais transparentes : avec `visibility: hidden`,
   Chrome ne repeignait parfois pas les images d'une diapositive réaffichée pendant son fondu
   (diapositive vide plusieurs secondes, alors que tout était en place dans la page). */
.cir-diapo { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.cir-fond { position: absolute; inset: 0; background-size: cover; background-position: center; }
.cir-diapo.active { opacity: 1; z-index: 2; }
.cir-diapo.sortante { opacity: 1; z-index: 1; }
.cir-calque { position: absolute; line-height: 1.2; }
.cir-calque img { display: block; max-width: none; }
.cir-mot { position: relative; }
.cir-bloc { position: absolute; inset: 0; transform: scaleX(0); pointer-events: none; }

/* Flèches et puces : le style « retro » de Slider Revolution n'est pas archivé ; on reprend les
   couleurs que skin.css lui donnait (bordure #724539, survol #e67778). */
.cir-navigation { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 5; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.cir-puce, .cir-precedent, .cir-suivant {
  pointer-events: auto; cursor: pointer; width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid #c9a99a; background: #f3dfd2; color: #724539;
  font: 400 15px/26px Satisfy, cursive; text-align: center; padding: 0;
}
.cir-puce[aria-current="true"], .cir-puce:hover { border-color: #724539; background: #e67778; color: #fff; }
.cir-precedent, .cir-suivant { position: absolute; bottom: 0; }
.cir-precedent { left: 20px; } .cir-suivant { right: 20px; }
.cir-precedent:hover, .cir-suivant:hover { background: #e67778; color: #fff; border-color: transparent; }

/* --- Carrousel des glaces -------------------------------------------------------------------- */
.portfolio-carousel .flex-viewport { overflow: hidden; }
.portfolio-carousel .slides > li { flex: 0 0 auto; margin-right: 20px; }
/* Le thème masque les vignettes tant que FlexSlider ne s'est pas lancé. */
.portfolio-carousel.flexslider .slides > li { display: block; }

/* --- Galerie photo des fiches glace (FlexSlider en fondu dans l'original) -------------------- */
.flexslider:not(.carousel) .slides > li.cir-active { display: block; animation: cir-fondu 0.8s ease; }
@keyframes cir-fondu { from { opacity: 0; } to { opacity: 1; } }

/* --- Visionneuse ----------------------------------------------------------------------------- */
.cir-visionneuse { border: 0; padding: 0; background: transparent; max-width: 92vw; max-height: 92vh; }
.cir-visionneuse::backdrop { background: rgba(60, 30, 25, 0.8); }
.cir-visionneuse img { display: block; max-width: 92vw; max-height: 88vh; border: 6px solid #fff; }
.cir-fermer { position: absolute; top: 4px; right: 8px; border: 0; background: none; color: #fff; font-size: 34px; cursor: pointer; }

/* --- Divers ---------------------------------------------------------------------------------- */
.device-menu .sf-menu.cir-ouvert { display: block !important; }
.cir-note { margin-top: 8px; font-size: 13px; color: #723f32; }

/* --- Carte de la zone d'activité (Leaflet) ---------------------------------------------------- */
.cir-cliquable { cursor: pointer; }
.cir-carte { border: 0; padding: 16px 18px 14px; width: min(760px, 94vw); max-height: 94vh; background: #fbf3ea; color: #723f32; box-shadow: 0 6px 30px rgba(60, 30, 25, 0.5); }
.cir-carte::backdrop { background: rgba(60, 30, 25, 0.8); }
.cir-carte .cir-fermer { color: #723f32; top: 2px; }
.cir-carte__titre { margin: 0 34px 12px; text-align: center; font: 30px/1.1 BazarMedium, sans-serif; color: #723f32; text-transform: uppercase; }
.cir-carte__plan { height: min(470px, 62vh); border: 6px solid #fff; box-shadow: 0 1px 4px rgba(60, 30, 25, 0.3); background: #f3dfd2; }
/* Fond OpenStreetMap ramené au rose et au brun du thème. */
.cir-carte .leaflet-tile-pane { filter: grayscale(1) sepia(0.55) hue-rotate(-30deg) saturate(1.7) brightness(1.06) contrast(0.9); }
.cir-carte .cir-dep { fill: #e67778; fill-opacity: 0.18; stroke: #723f32; stroke-width: 2; stroke-dasharray: 6 4; }
.cir-carte .cir-dep--gratuit { fill-opacity: 0.5; stroke-dasharray: none; stroke-width: 3; }
.cir-carte .leaflet-tooltip.cir-dep__nom { background: none; border: 0; box-shadow: none; padding: 0; font: 22px Satisfy, cursive; color: #723f32; text-shadow: 0 0 3px #fff, 0 0 8px #fff, 0 0 12px #fff; }
.cir-carte .leaflet-tooltip.cir-dep__nom::before { display: none; }
.cir-repere img { display: block; width: 56px; height: 56px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(60, 30, 25, 0.45); }
.cir-carte .leaflet-control-attribution { font-size: 10px; background: rgba(251, 243, 234, 0.85); }
.cir-carte__legende { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 24px; font: 14px/1.4 Georgia, serif; }
.cir-carte__legende li { background: none; padding: 0; margin: 0; }
.cir-carte__cle { display: inline-block; width: 16px; height: 12px; margin-right: 8px; vertical-align: -1px; border: 2px dashed #723f32; background: rgba(230, 119, 120, 0.18); }
.cir-carte__cle--gratuit { border-style: solid; background: rgba(230, 119, 120, 0.5); }
@media (max-width: 600px) { .cir-carte__titre { font-size: 22px; } .cir-carte .leaflet-tooltip.cir-dep__nom { font-size: 16px; } }

/* --- Module Facebook (chargé au clic) ---------------------------------------------------------- */
.cir-fb { max-width: 500px; background: #fff; border: 1px solid #dddfe2; font: 12px/1.35 Helvetica, Arial, sans-serif; color: #1d2129; }
.cir-fb__entete { display: flex; gap: 8px; align-items: center; padding: 6px; border-bottom: 1px solid #e9ebee; }
.cir-fb__entete img { border: 1px solid #000; }
.cir-fb__nom { display: block; font-size: 18px; color: #365899; text-decoration: none; }
.cir-fb__suivre { display: inline-block; margin-top: 4px; padding: 2px 8px; border: 1px solid #ced0d4; border-radius: 2px; background: #f6f7f9; color: #4b4f56; font-weight: bold; text-decoration: none; }
.cir-fb__corps { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px; background: #f5f6f7; text-align: center; }
.cir-fb__charger { padding: 8px 14px; border: 0; border-radius: 4px; background: #4267b2; color: #fff; font-weight: bold; cursor: pointer; }
.cir-fb__charger:hover { background: #365899; }
.cir-fb__note { margin: 0; color: #606770; }
.cir-fb__cadre { display: block; border: 0; max-width: 100%; }

/* --- Bandeau photo (bas de l'accueil) ---------------------------------------------------------- */
.cir-bandeau { overflow: hidden; padding: 26px 0 34px; }
.cir-bandeau__piste { display: flex; width: max-content; animation: cir-defile 45s linear infinite; }
.cir-bandeau:hover .cir-bandeau__piste, .cir-bandeau:focus-within .cir-bandeau__piste { animation-play-state: paused; }
.cir-bandeau__suite { display: flex; gap: 26px; padding-right: 26px; }
.cir-bandeau a { flex: none; display: block; padding: 6px; background: #fff; box-shadow: 0 2px 6px rgba(60, 30, 25, 0.25); }
.cir-bandeau img { display: block; height: 220px; width: auto; max-width: none; }
@keyframes cir-defile { to { transform: translateX(-50%); } }
@media (max-width: 767px) { .cir-bandeau img { height: 150px; } }
@media (prefers-reduced-motion: reduce) {
  .cir-bandeau { overflow-x: auto; }
  .cir-bandeau__piste { animation: none; }
  .cir-bandeau__suite[aria-hidden] { display: none; }
}

/* --- Cards de l'accueil : même hauteur, texte long replié ------------------------------------- */
@media (min-width: 768px) {
  .cir-cartes { display: flex; flex-wrap: wrap; }
  .cir-cartes::before, .cir-cartes::after { display: none; }
  .cir-cartes > .vc_column_container { display: flex; float: none; }
  .cir-cartes .vc_column-inner, .cir-cartes .wpb_wrapper, .cir-cartes .teaser_wrap, .cir-cartes .teaser_box { display: flex; flex-direction: column; flex: 1 0 auto; }
  .cir-cartes .teaser_more_area { margin-top: auto; }
  /* « Lire plus » descend au pied de la card, juste au-dessus du lien : alignés d'une card à l'autre. */
  .cir-cartes .cir-lire-plus { margin-top: auto; }
  .cir-cartes .cir-lire-plus + .teaser_more_area { margin-top: 6px; }
  .cir-cartes--ouverte { align-items: flex-start; }
}
.teaser_entry { transition: max-height 0.4s ease; }
.teaser_entry.cir-replie { overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.teaser_entry:not(.cir-replie)[style*="max-height"] { overflow: hidden; }
.cir-lire-plus { display: block; margin: 8px auto 0; padding: 2px 6px; border: 0; background: none; cursor: pointer; font: 20px Satisfy, cursive; color: #e67778; }
.cir-lire-plus::after { content: ' ▾'; font-size: 14px; }
.cir-lire-plus[aria-expanded="true"]::after { content: ' ▴'; }
.cir-lire-plus:hover, .cir-lire-plus:focus-visible { color: #723f32; }

/* --- Pied de page ------------------------------------------------------------------------------ */
.footer-area .widget + .widget { margin-top: 34px; }
.footer-area .widget_text a { color: #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.5); text-decoration: none; }
.footer-area .widget_text a:hover { border-bottom-color: #fff; }
.cir-pied-zone p { margin: 0 0 12px; font: italic 15px/1.45 Georgia, serif; color: #fff; text-shadow: 0 1px 1px rgba(114, 63, 50, 0.35); }
.cir-pied-zone__carte {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px 6px 12px; border: 0; border-radius: 2px; cursor: pointer;
  background: #f3dfd2; color: #723f32; font: 20px/1 BazarMedium, sans-serif; letter-spacing: 0.5px; text-transform: uppercase;
  box-shadow: 0 2px 0 rgba(114, 63, 50, 0.35);
}
.cir-pied-zone__carte::before { content: ''; width: 10px; height: 10px; border: 3px solid #e67778; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.cir-pied-zone__carte:hover, .cir-pied-zone__carte:focus-visible { background: #fff; }
/* Résultats de la recherche, sous le champ. */
.cir-resultats { list-style: none; margin: 10px 0 0; padding: 0; }
.cir-resultats li { margin: 0 0 6px; padding: 0; background: none; }
.cir-resultats a { display: block; padding: 8px 10px; background: rgba(243, 223, 210, 0.95); color: #723f32; text-decoration: none; box-shadow: 0 1px 0 rgba(114, 63, 50, 0.3); }
.cir-resultats a:hover, .cir-resultats a:focus-visible { background: #fff; }
.cir-resultats strong { display: block; font: 18px/1.1 BazarMedium, sans-serif; text-transform: uppercase; }
.cir-resultats span { display: block; margin-top: 3px; font: 12px/1.4 Georgia, serif; color: #8a6a5e; }
.cir-resultats__vide { font: italic 14px Georgia, serif; color: #fff; }
/* Barre du bas : copyright à gauche, réseaux à droite, sur une même ligne. */
footer > .row { display: flex; align-items: center; justify-content: space-between; min-height: 113px; }
footer > .row::before, footer > .row::after { display: none; }
footer .grid_6 { float: none; width: auto; }
footer .copyright { padding: 0 0 0 3px; }
footer .footer-content-area .entry-content { width: auto; display: flex; gap: 10px; }
@media (max-width: 767px) {
  footer > .row { flex-direction: column-reverse; justify-content: center; gap: 14px; padding: 20px 0; }
  footer .copyright { padding: 0; text-align: center; }
}
