

/* === FSE Slider – Styles utiles uniquement === */

/* Carte individuelle (utilisée comme item du slider) */
.gr_simartclassic_post_card {
  flex: 0 0 auto;
  width: calc((100% - ((var(--cols, 4) - 1) * var(--slider-gap, 0px))) / var(--cols, 4));
  scroll-snap-align: start;
  /*  background: #ffffff;
  border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); overflow: hidden;*/
  
  transition: transform 0.3s;
}
/**/
.gr_simartclassic_post_card:hover {
  transform: translateY(-6px);
}

/* === Slider container === */
.gr_simartclassic_slider_container {
  position: relative;
  overflow-x: visible;
  overflow-y: hidden;
  margin: 30px auto;
  width: 100%;
  max-width: 1200px;
}

/* === Slider horizontal === */
.gr_simartclassic_slider {
  /* defaults; can be overridden by JS via --cols and by classes like gr_cols6 */
  --cols: 4;
  --slider-gap: 16px;
  --slider-pad: 0px;

  display: flex;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 10px;
  gap: var(--slider-gap);
  padding-inline: var(--slider-pad);
  /* make snap start align to first card considering left padding */
  scroll-padding-inline-start: var(--slider-pad);
  scroll-padding-inline-end: var(--slider-pad);

  scrollbar-width: none; /* Firefox */
  width: 100%;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain; /* évite le scroll global pendant le swipe */
}

.gr_simartclassic_slider .wp-block-post {
  list-style: none;
}
.gr_simartclassic_slider .wp-block-post::marker {
  content: '';
}

.gr_simartclassic_slider::-webkit-scrollbar { display: none; }

/* Les cards dans le slider n'ont pas de marge propre */
.gr_simartclassic_slider .gr_simartclassic_post_card { margin: 0; }

/* Boutons de navigation */
.gr_simartclassic_nav_wrapper {
  display: flex;
  justify-content: flex-start;
  gap: 1rem;
  margin: 0.5rem 0 0.5rem 0;
  padding: 0 20px;
}

.gr_simartclassic_nav_left,
.gr_simartclassic_nav_right {
  background-color: #444444;
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  opacity: 1;
  transition: opacity 0.3s ease, transform 0.2s ease;
  cursor: pointer;
  touch-action: pan-y; /* laisse le scroll vertical natif sur mobile */
  user-select: none;
  border: none;
  position: relative;
  z-index: 10;
}

.gr_simartclassic_nav_left:hover,
.gr_simartclassic_nav_right:hover {
  opacity: 0.85;
  transform: scale(1.08);
}

/* États d’interaction (drag/swipe) */
.gr_simartclassic_slider.gr_dragging,
.gr_simartclassic_slider.gr_touching { user-select: none; }

.is-swiping .gr_simartclassic_nav_left,
.is-swiping .gr_simartclassic_nav_right { pointer-events: none; }

/* Renforce l’intention horizontale */
.gr_simartclassic_post_card,
.gr_simartclassic_post_card * { touch-action: pan-x; }

/* Empêche le drag natif des images */
.gr_simartclassic_slider img { -webkit-user-drag: none; }

/* === Responsive === */
@media (max-width: 1024px) {
  .gr_simartclassic_slider { --cols: 2; --slider-gap: 16px; --slider-pad: 16px; }
}

@media (max-width: 600px) {
  .gr_simartclassic_slider { --cols: 1; --slider-gap: 15px; --slider-pad: 16px; }
  .gr_simartclassic_post_card { padding: 0; }
}

/* Paragraphs inside slider content: remove top and bottom margin */
.gr_simartclassic_slider p {
  margin-block-start: 0em;
  margin-block-end: 0em;
}
.gr_simartclassic_slider h3 {
  margin-block-start: 0em;
  margin-block-end: 0em;
}

/* Normaliser le titre des cards dans le slider (cards Gutenberg, avec ou sans .gr_card_glo) */
.gr_simartclassic_slider .wp-block-group.tw-stretched-link .wp-block-post-title,
.gr_simartclassic_slider .wp-block-group.tw-stretched-link .wp-block-post-title a {
  font-size: 0.9rem;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
  margin: 0;
}

/* Si le theme applique une decoration de lien sur les titres */
.gr_simartclassic_slider .wp-block-group.tw-stretched-link .wp-block-post-title a {
  text-decoration: none;
}

/* Harmoniser le rendu global des cards dans le slider, sans dependre de .gr_card_glo */
.gr_simartclassic_slider .wp-block-group.tw-stretched-link {
  border-radius: 15px;
  overflow: hidden;
}

/* Supprimer les espacements verticaux parasites entre groupes internes */
.gr_simartclassic_slider .wp-block-group.tw-stretched-link > .wp-block-group {
  margin-top: 0;
  margin-bottom: 0;
}

/* Neutraliser un espace possible entre l image et le bloc texte si une couleur differente apparait */
.gr_simartclassic_slider .wp-block-group.tw-stretched-link .wp-block-group.has-base-2-background-color {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* Horizontal rules inside slider content: force full width */
.gr_simartclassic_slider hr {
  width: 100%;
}



/* ==========================================================
   Slider – Responsive overrides via classes on the Query Loop
   Usage on the Query Loop wrapper (parent of the injected slider container):
   - Desktop (>=1025px): gr_colsN
   - Tablet  (<=1024px): gr_tab_colsN
   - Mobile  (<=600px):  gr_mob_colsN
   - Hide arrows per breakpoint: gr_no_arrows_desktop / gr_no_arrows_tablet / gr_no_arrows_mobile
   Notes:
   - If no class is set for a breakpoint, defaults remain: 4 (desktop), 2 (tablet), 1 (mobile).
   gr_boucle_slider_services gr_slider_dyn gr_int2 → 4 / 2 / 1 
   gr_boucle_slider_prestation gr_cols6 gr_tab_cols4 gr_mob_cols2 gr_slider_dyn gr_int1 → 6 / 4 / 2 
========================================================== */

/* Desktop presets (>=1025px) */
@media (min-width: 1025px) {
  .gr_cols1  .gr_simartclassic_slider { --cols: 1; }
  .gr_cols2  .gr_simartclassic_slider { --cols: 2; }
  .gr_cols3  .gr_simartclassic_slider { --cols: 3; }
  .gr_cols4  .gr_simartclassic_slider { --cols: 4; }
  .gr_cols5  .gr_simartclassic_slider { --cols: 5; }
  .gr_cols6  .gr_simartclassic_slider { --cols: 6; }
  .gr_cols7  .gr_simartclassic_slider { --cols: 7; }
  .gr_cols8  .gr_simartclassic_slider { --cols: 8; }

  /* Hide arrows only on desktop */
  .gr_no_arrows_desktop .gr_simartclassic_nav_left,
  .gr_no_arrows_desktop .gr_simartclassic_nav_right { display: none !important; }
}

/* Tablet overrides (<=1024px) */
@media (max-width: 1024px) {
  .gr_tab_cols1 .gr_simartclassic_slider { --cols: 1; }
  .gr_tab_cols2 .gr_simartclassic_slider { --cols: 2; }
  .gr_tab_cols3 .gr_simartclassic_slider { --cols: 3; }
  .gr_tab_cols4 .gr_simartclassic_slider { --cols: 4; }
  .gr_tab_cols5 .gr_simartclassic_slider { --cols: 5; }
  .gr_tab_cols6 .gr_simartclassic_slider { --cols: 6; }

  /* Hide arrows only on tablet */
  .gr_no_arrows_tablet .gr_simartclassic_nav_left,
  .gr_no_arrows_tablet .gr_simartclassic_nav_right { display: none !important; }
}

/* Mobile overrides (<=600px) */
@media (max-width: 600px) {
  .gr_mob_cols1 .gr_simartclassic_slider { --cols: 1; }
  .gr_mob_cols2 .gr_simartclassic_slider { --cols: 2; }
  .gr_mob_cols3 .gr_simartclassic_slider { --cols: 3; }
  .gr_mob_cols4 .gr_simartclassic_slider { --cols: 4; }

  /* Hide arrows only on mobile */
  .gr_no_arrows_mobile .gr_simartclassic_nav_left,
  .gr_no_arrows_mobile .gr_simartclassic_nav_right { display: none !important; }
}

/* Fin styles slider */


/* ==========================================================
   SLIDER – LISTE DES CLASSES DE CUSTOMISATION
   (référence rapide – ne pas supprimer)
==========================================================*/
.gr_simartclassic_post_card{padding-top: 25px;}
.gr_simartclassic_post_card > .wp-block-group {
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease,
    opacity 0.25s ease;
    
}
.gr_simartclassic_post_card:hover > .wp-block-group {
  transform: translateY(-6px);
  opacity: 0.9;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.15);
  filter: brightness(0.97);
}

/* CONTENEUR GLOBAL
.gr_simartclassic_slider_container { }

PISTE DU SLIDER
.gr_simartclassic_slider {}

CARD INDIVIDUELLE
.gr_simartclassic_post_card {}
.gr_simartclassic_post_card:hover {}



STRUCTURE GUTENBERG INTERNE
.wp-block-group.tw-stretched-link {}

IMAGE FEATURED
.wp-block-post-featured-image img {}

TITRE
.wp-block-post-title {}
.wp-block-post-title a {}

ZONE TITRE (hauteur mini 35px, alignement bas)
.wp-block-group:has(> .wp-block-post-title) {}

METAS / TEXTE
.gr_simartclassic_slider p {}

SEPARATEUR
.gr_simartclassic_slider hr {}

NAVIGATION
.gr_simartclassic_nav_wrapper {}
.gr_simartclassic_nav_left {}
.gr_simartclassic_nav_right {}

ETATS INTERACTIFS
.gr_simartclassic_slider.gr_dragging {}
.gr_simartclassic_slider.gr_touching {}
.is-swiping {}

RESPONSIVE (via classes sur la Query)
.gr_colsN .gr_simartclassic_slider {}
.gr_tab_colsN .gr_simartclassic_slider {}
.gr_mob_colsN .gr_simartclassic_slider {}

SHORTCODE UNIQUEMENT
.gr_simartclassic_slider_container.gr_from_shortcode {}


.gr_simartclassic_slider {
  padding-top: 14px;
 
}
========================================================== */

.gr_simartclassic_post_card {
  overflow: visible;
}

.gr_simartclassic_post_card > .wp-block-group.tw-stretched-link {
  overflow: hidden;
  border-radius: 15px;
}


.gr_simartclassic_slider .wp-block-post-featured-image,
.gr_simartclassic_slider .wp-block-post-featured-image__wrapper {
  width: 100%;
  aspect-ratio: 1.7777778;
  overflow: hidden;
}

.gr_simartclassic_slider .wp-block-post-featured-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 50%;
}

/* Support du rendu custom (a.tw-hover-fade > img) : zone 16/9 + recadrage sans déformation */
.gr_simartclassic_slider a.tw-hover-fade {
  display: block;
  width: 100%;
  aspect-ratio: 1.7777778;
  overflow: hidden;
}

.gr_simartclassic_slider a.tw-hover-fade img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 50%;
  /* Neutralise les styles inline du HTML (height:auto + aspect-ratio sur le img) */
  aspect-ratio: auto !important;
}