/* =========================================================
   Salon du Chocolat Tarbes : sections de pages et shortcodes (charte v1)
   ========================================================= */

/* ---------- Titres utilitaires (widgets Titre Elementor) ---------- */
.sct-titre-h3 .elementor-heading-title { font-size: var(--fs-h3); line-height: var(--lh-h3); }
.sct-texte-lg, .sct-texte-lg p { font-size: var(--fs-body-lg); line-height: var(--lh-body); }
.sct-texte-mesure { max-width: 600px; }

/* ---------- Hero ---------- */
.sct-hero-visuel { position: relative; }
.sct-hero-image {
  aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-drop);
  background: var(--color-creme-200) url("../svg/pattern-clair.svg") repeat; background-size: 120px 120px;
}
.sct-hero-image > .e-con-inner, .sct-hero-image .elementor-widget-image,
.sct-hero-image .elementor-widget-image > .elementor-widget-container { height: 100%; width: 100%; }
.sct-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Visuel provisoire (cœur du logo) : retirer la classe sct-hero-image--logo quand la photo arrive */
.sct-hero-image--logo img { object-fit: contain; padding: 14%; }
.sct-hero-pastille { position: absolute !important; left: -20px; bottom: 28px; z-index: 2; width: auto !important; max-width: none !important; }
@media (max-width: 767px) { .sct-hero-pastille { left: 12px; bottom: 12px; } }

.sct-pastille { margin: 0; }
.sct-pastille span { display: block; }
.sct-pastille--grand { width: 136px; height: 136px; gap: 2px; }
.sct-pastille--grand strong { font-size: 44px; line-height: .95; }
.sct-pastille--grand span { font-size: 15px; }
.sct-pastille--grand span:nth-of-type(1) { font-weight: 700; font-size: 18px; letter-spacing: .04em; }

/* ---------- Infos clés (bandeau foncé) ---------- */
.sct-infos-cles { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
@media (min-width: 768px) { .sct-infos-cles { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.sct-infos-cles__item { display: flex; gap: 14px; align-items: flex-start; }
.sct-infos-cles__icone {
  flex: none; width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--color-cacao-800); color: var(--color-caramel-300);
}
.sct-infos-cles__principal {
  display: block; font-family: var(--font-info); font-weight: 700; font-size: 22px; line-height: 1.1;
  text-transform: uppercase; color: var(--color-creme-100);
}
.sct-infos-cles__secondaire { display: block; margin-top: 4px; font-size: 14px; color: var(--color-creme-300); }

/* ---------- Compte à rebours ---------- */
.sct-compte__grille { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.sct-compte--integre { padding: 0; background: transparent; border-radius: 0; }
.sct-compte__titre {
  margin: 0; font-family: var(--font-info); font-weight: 600; font-size: var(--fs-overline);
  letter-spacing: var(--ls-overline); text-transform: uppercase; color: var(--color-caramel-300);
}
.sct-compte__date { margin: 0; font-size: 14px; color: var(--color-creme-300); }
.sct-compte__message { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); line-height: 1.2; color: var(--color-creme-100); }

/* ---------- Horaires et billetterie ---------- */
.sct-horaires { height: 100%; }
.sct-horaires__titre { margin: 0 0 6px; }
.sct-horaires__ligne { margin: 0; }
.sct-billetterie { height: 100%; }
.sct-billetterie .sct-billetterie__prix { margin: 0; color: var(--color-creme-100); }

/* ---------- Cartes du bloc « Préparer sa visite » ---------- */
.sct-carte-lieu { height: 100%; }
.sct-carte-lieu .elementor-widget-text-editor p { margin: 0; }

/* ---------- Aperçu exposants ---------- */
.sct-exposants-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.sct-exposant__ville { margin: 0; }
.sct-exposant__ville .sct-icone { width: 18px; height: 18px; }
.sct-exposant--provisoire .sct-exposant__nom { color: var(--color-lait-600); font-style: italic; }
.sct-exposants-note { margin: 16px 0 0; font-size: var(--fs-small); color: var(--color-text-muted); }

/* ---------- Bandeau solidaire ---------- */
.sct-coeur-solidaire { width: 56px; height: 56px; }\n.sct-coeur-solidaire svg { display: block; width: 56px; height: 56px; max-width: none; }\n.elementor-widget-html:has(.sct-coeur-solidaire) { flex: none; }

/* ---------- Partenaires (emplacements de logos) ---------- */
.sct-partenaire { border: 2px dashed var(--color-border-field); }
.sct-partenaire.a-logo { border-style: solid; border-color: transparent; }
.sct-partenaire .elementor-widget-image img { max-height: 80px; width: auto; }
.sct-partenaire .elementor-heading-title { font-size: 14px; font-weight: 700; color: var(--color-text); }

/* ---------- Appel exposants ---------- */
.sct-appel { border-radius: var(--radius-lg); }

/* =========================================================
   Galerie « Le salon en images » (widget Galerie basique + classe sct-galerie)
   Grille uniforme : 2 x 3 sur mobile, 3 x 2 dès 768 px. Prévue pour 6 photos.
   Sur ordinateur, la hauteur des tuiles suit celle de l'écran pour que la section tienne en un écran.
   Étiquette = légende de l'image (médiathèque).
   ========================================================= */
.sct-galerie .gallery { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 !important; }
.sct-galerie .gallery > br { display: none; }
.sct-galerie .gallery-item {
  position: relative; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
  border-radius: var(--radius-lg); overflow: hidden; background: var(--color-creme-50); box-shadow: var(--shadow-sm);
}
.sct-galerie .gallery-icon { aspect-ratio: 1 / 1; overflow: hidden; }
.sct-galerie .gallery-icon a { position: relative; display: block; height: 100%; }
.sct-galerie .gallery-icon img {
  display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover;
  border: 0 !important; transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}

/* Étiquette : sous la photo sur mobile (lue en entier)... */
.sct-galerie .gallery-item .gallery-caption {
  display: block; margin: 0; padding: 8px 12px 10px;
  font: 500 13px/1.35 var(--font-body); color: var(--color-cacao-900); text-align: left !important;
}

@media (min-width: 768px) {
  .sct-galerie .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .sct-galerie .gallery-item { background: var(--color-creme-200); }
  .sct-galerie .gallery-icon { aspect-ratio: 4 / 3; }
  /* ... pastille crème posée sur la photo à partir de la tablette */
  .sct-galerie .gallery-item .gallery-caption {
    position: absolute; left: 12px; bottom: 12px; z-index: 2;
    width: fit-content; max-width: calc(100% - 24px); max-height: calc(2.7em + 12px);
    padding: 6px 12px; border-radius: var(--radius-pill);
    background: var(--color-creme-50); box-shadow: var(--shadow-sm); pointer-events: none;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
}
@media (min-width: 1024px) {
  .sct-galerie .gallery { gap: 20px; }
  .sct-galerie .gallery-icon { aspect-ratio: auto; height: clamp(180px, calc((100vh - 330px) / 2), 250px); }
  .sct-galerie .gallery-item .gallery-caption { font-size: 14px; }
}
@supports (height: 100svh) {
  @media (min-width: 1024px) { .sct-galerie .gallery-icon { height: clamp(180px, calc((100svh - 330px) / 2), 250px); } }
}

/* Survol : zoom doux + voile cacao + loupe */
.sct-galerie .gallery-icon a::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: rgba(62, 23, 12, .28); opacity: 0; transition: opacity .25s ease;
}
.sct-galerie .gallery-icon a::before {
  content: ""; position: absolute; top: 50%; left: 50%; z-index: 1; width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: 50%; pointer-events: none; opacity: 0; transform: scale(.8);
  background: var(--color-creme-50) url("../svg/icone-loupe.svg") no-repeat center / 22px 22px;
  transition: opacity .25s ease, transform .25s ease;
}
.sct-galerie .gallery-icon a:hover img, .sct-galerie .gallery-icon a:focus-visible img { transform: scale(1.04); }
.sct-galerie .gallery-icon a:hover::after, .sct-galerie .gallery-icon a:focus-visible::after { opacity: 1; }
.sct-galerie .gallery-icon a:hover::before, .sct-galerie .gallery-icon a:focus-visible::before { opacity: 1; transform: none; }
.sct-galerie .gallery-icon a:focus-visible { box-shadow: inset 0 0 0 3px var(--color-creme-100), inset 0 0 0 5px var(--color-focus); }

/* Cascade d'apparition des tuiles (classe sct-apparition sur la section) */
.sct-apparition-active .sct-apparition .sct-galerie .gallery-item { transition: opacity .45s cubic-bezier(.2, .8, .2, 1), transform .45s cubic-bezier(.2, .8, .2, 1); }
.sct-apparition-active .sct-apparition:not(.est-visible) .sct-galerie .gallery-item { opacity: 0; transform: translateY(16px); }
.sct-galerie .gallery-item:nth-child(2) { transition-delay: 60ms; }
.sct-galerie .gallery-item:nth-child(3) { transition-delay: 120ms; }
.sct-galerie .gallery-item:nth-child(4) { transition-delay: 180ms; }
.sct-galerie .gallery-item:nth-child(5) { transition-delay: 240ms; }
.sct-galerie .gallery-item:nth-child(n+6) { transition-delay: 300ms; }

/* En-tête compact de la galerie et lien de partage */
.sct-galerie-partage p { margin: 0; }
.sct-galerie-partage .sct-lien { white-space: normal; }
.sct-galerie-intro p { margin: 0; }
/* ---------- Compte à rebours en direct ---------- */
.sct-compte [hidden] { display: none !important; }
.sct-compte__valeur {
  position: relative; display: block; overflow: hidden; height: 1em; line-height: 1;
  font-family: var(--font-display); font-weight: 800; font-size: 40px; font-variant-numeric: tabular-nums;
  text-align: center; color: var(--color-creme-100);
}
.sct-compte__chiffre { display: block; transition: transform .25s cubic-bezier(.2, .8, .2, 1), opacity .25s ease; }
.sct-compte__chiffre.est-sortant { position: absolute; inset: 0; transform: translateY(-100%); opacity: 0; }
.sct-compte__chiffre.est-entrant { transform: translateY(100%); opacity: 0; }
@media (max-width: 479px) { .sct-compte__valeur { font-size: 32px; } .sct-compte__unite { padding: 12px 4px; } }

.sct-compte__pied { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
/* Bouton pause : cible de 36 px, contour crème (prioritaire sur les boutons du thème et du kit) */
body .sct-compte .sct-compte__pause {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; min-height: 36px; padding: 0; margin: 0;
  border: 2px solid var(--color-creme-300); border-radius: 50%;
  background: transparent; color: var(--color-creme-100); cursor: pointer;
}
body .sct-compte .sct-compte__pause:hover, body .sct-compte .sct-compte__pause:focus { background: var(--color-cacao-800); color: var(--color-caramel-300); border-color: var(--color-caramel-300); }
body .sct-compte .sct-compte__pause:focus-visible { box-shadow: 0 0 0 2px var(--color-cacao-900), 0 0 0 4px var(--color-creme-100); }
.sct-compte__icone-lecture { display: none; }
.sct-compte__pause.est-en-pause .sct-compte__icone-pause { display: none; }
.sct-compte__pause.est-en-pause .sct-compte__icone-lecture { display: block; }
/* États ouverts : le titre passe en caramel vif */
.sct-compte--samedi .sct-compte__titre, .sct-compte--dimanche .sct-compte__titre { color: var(--color-caramel-300); }
.sct-compte--fini .sct-compte__titre { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); letter-spacing: 0; text-transform: none; color: var(--color-creme-100); }
/* =========================================================
   Diaporama du hero (widget Galerie basique + classe sct-diaporama)
   Fondu 1,2 s toutes les 6 s, zoom lent, points + pause en bas à droite.
   ========================================================= */
.sct-hero-image { position: relative; }
.sct-diaporama, .sct-diaporama > .elementor-widget-container, .sct-diaporama .elementor-image-gallery { position: relative; width: 100%; height: 100%; }
.sct-diaporama .gallery { position: relative; height: 100%; margin: 0 !important; display: block !important; }
.sct-diaporama .gallery > br { display: none; }
.sct-diaporama .gallery-item {
  position: absolute !important; inset: 0; width: 100% !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important; opacity: 0; transition: opacity 1.2s ease;
}
.sct-diaporama .gallery-item:first-child { opacity: 1; } /* sans JS : 1re photo seule */
.sct-diaporama.est-actif .gallery-item { opacity: 0; }
.sct-diaporama.est-actif .gallery-item.est-courante { opacity: 1; z-index: 1; }
.sct-diaporama .gallery-icon { height: 100%; }
.sct-diaporama .gallery-icon img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border: 0 !important; }
.sct-diaporama .gallery-caption { display: none; }
/* Zoom lent (Ken Burns 6 %) sur la photo affichée */
.sct-diaporama.est-actif .gallery-item.est-courante img { animation: sct-ken-burns 7.2s linear forwards; }
.sct-diaporama.est-actif .gallery-item.est-sortante img { animation: sct-ken-burns 7.2s linear forwards; animation-play-state: paused; }
.sct-diaporama.est-fige .gallery-item img { animation-play-state: paused !important; }
@keyframes sct-ken-burns { from { transform: scale(1); } to { transform: scale(1.06); } }

/* Contrôles */
.sct-diaporama__controles {
  position: absolute; right: 14px; bottom: 14px; z-index: 3;
  display: flex; align-items: center; gap: 2px; padding: 4px 6px;
  border-radius: var(--radius-pill); background: rgba(62, 23, 12, .6);
}
body .sct-hero-image .sct-diaporama__point,
body .sct-hero-image .sct-diaporama__pause {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%;
  background: transparent; color: var(--color-creme-50); cursor: pointer;
}
body .sct-hero-image .sct-diaporama__point { width: 24px; height: 24px; }
body .sct-hero-image .sct-diaporama__point::before {
  content: ""; width: 8px; height: 8px; border-radius: var(--radius-pill);
  background: var(--color-creme-300); transition: width .25s ease, background-color .25s ease;
}
body .sct-hero-image .sct-diaporama__point[aria-current="true"]::before { width: 18px; background: var(--color-creme-50); }
body .sct-hero-image .sct-diaporama__point:hover::before { background: var(--color-caramel-300); }
body .sct-hero-image .sct-diaporama__pause { width: 28px; height: 28px; margin-left: 4px; border: 2px solid var(--color-creme-300); }
body .sct-hero-image .sct-diaporama__pause:hover,
body .sct-hero-image .sct-diaporama__pause:focus,
body .sct-hero-image .sct-diaporama__point:hover,
body .sct-hero-image .sct-diaporama__point:focus { background: transparent; color: var(--color-caramel-300); }
body .sct-hero-image .sct-diaporama__pause:hover { border-color: var(--color-caramel-300); }
.sct-hero-image :is(.sct-diaporama__point, .sct-diaporama__pause):focus-visible { outline: 2px solid transparent; box-shadow: 0 0 0 2px var(--color-cacao-900), 0 0 0 4px var(--color-creme-100); }
.sct-diaporama__icone-lecture { display: none; }
.sct-diaporama__pause.est-en-pause .sct-diaporama__icone-pause { display: none; }
.sct-diaporama__pause.est-en-pause .sct-diaporama__icone-lecture { display: block; }

@media (prefers-reduced-motion: reduce) {
  .sct-diaporama .gallery-item { transition: none; }
  .sct-diaporama .gallery-item img { animation: none !important; }
}
/* =========================================================
   Hero : fond beige + photo de la halle fondue (image réglée dans Elementor,
   Style > Arrière-plan du conteneur). La photo prend la teinte crème (fusion « luminosité »)
   et se révèle vers la droite ; le bas fond dans le beige.
   ========================================================= */
.sct-hero--fond {
  position: relative; isolation: isolate;
  background-color: var(--color-creme-100);
  background-blend-mode: luminosity;
}
.sct-hero--fond::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    linear-gradient(0deg, rgba(250, 236, 216, 1) 0%, rgba(250, 236, 216, 0) 24%),
    linear-gradient(90deg, rgba(250, 236, 216, .96) 0%, rgba(250, 236, 216, .9) 42%, rgba(250, 236, 216, .62) 72%, rgba(250, 236, 216, .5) 100%);
}
.sct-hero--fond > .e-con-inner { position: relative; z-index: 1; }
/* Tablette et mobile : texte en haut, diaporama en bas, dégradé vertical */
@media (max-width: 1023px) {
  .sct-hero--fond::after {
    background: linear-gradient(180deg, rgba(250, 236, 216, .96) 0%, rgba(250, 236, 216, .9) 45%, rgba(250, 236, 216, .6) 100%);
  }
}
/* Effet de profondeur (ordinateur, photo présente, mouvement non réduit) */
.sct-hero--fond.a-parallaxe { background-position: center calc(50% + var(--sct-parallaxe, 0px)) !important; }
/* ---------- Pastille « Une initiative du Lions Club » (hero) ---------- */
body a.sct-initiative {
  display: inline-flex; align-items: center; gap: 10px; max-width: 100%;
  padding: 6px 16px 6px 6px; border: 1px solid var(--color-creme-300); border-radius: var(--radius-pill);
  background: var(--color-creme-50); box-shadow: var(--shadow-sm);
  color: var(--color-cacao-900); text-decoration: none; font: 400 14px/1.35 var(--font-body);
  transition: border-color .2s ease, box-shadow .2s ease;
}
body a.sct-initiative:hover { border-color: var(--color-caramel-500); box-shadow: var(--shadow-md); color: var(--color-cacao-900); }
.sct-initiative__logo { flex: none; display: block; width: 32px; height: 32px; object-fit: contain; }
.sct-initiative strong { font-weight: 700; color: var(--color-cacao-800); }
.sct-initiative__fleche { flex: none; color: var(--color-lait-600); opacity: 0; transform: translateX(-4px); transition: opacity .2s ease, transform .2s ease; }
.sct-initiative:hover .sct-initiative__fleche, .sct-initiative:focus-visible .sct-initiative__fleche { opacity: 1; transform: none; }
@media (max-width: 767px) {
  body a.sct-initiative { display: flex; width: 100%; border-radius: var(--radius-lg); padding-right: 14px; }
  .sct-initiative__logo { width: 28px; height: 28px; }
  .sct-initiative__fleche { opacity: 1; transform: none; margin-left: auto; }
}
/* =========================================================
   Page Infos pratiques
   ========================================================= */
/* Carte chargée au clic */
.sct-carte-acces { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-lg); background: var(--color-creme-200) url("../svg/pattern-clair.svg") repeat; background-size: 120px 120px; box-shadow: var(--shadow-sm); }
@media (min-width: 768px) { .sct-carte-acces { aspect-ratio: 16 / 10; } }
.sct-carte-acces__facade { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; }
.sct-carte-acces__pin { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--color-cacao-800); color: var(--color-creme-50); box-shadow: var(--shadow-md); }
.sct-carte-acces__pin .sct-icone { width: 30px; height: 30px; }
.sct-carte-acces__adresse { margin: 0; color: var(--color-text); }
.sct-carte-acces__adresse strong { font-family: var(--font-display); font-size: 22px; color: var(--color-text-strong); }
.sct-carte-acces__note { margin: 0; font-size: 13px; color: var(--color-text-muted); }
.sct-carte-acces iframe { display: block; width: 100%; height: 100%; border: 0; }
.sct-carte-acces__credit { margin: 8px 0 0; font-size: 12px; color: var(--color-text-muted); }
.sct-itineraire { margin-top: 20px; }
.sct-itineraire .sct-surtitre { margin: 0 0 10px; }
.sct-itineraire__liens { display: flex; flex-wrap: wrap; gap: 10px; }
.sct-itineraire__liens .sct-btn { min-height: 44px; padding: 0 18px; font-size: 15px; }

/* Cartes d'accès */
.sct-acces .elementor-widget-html .sct-info-pratique__icone .sct-icone { width: 26px; height: 26px; }
.sct-info-pratique { background: var(--color-surface); }
.sct-info-pratique p { margin: 0; }
.sct-info-pratique .sct-info-pratique__titre { margin: 0 0 6px; font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--color-text-strong); }

/* Mentions à confirmer : bien visibles avant la mise en ligne */
.sct-a-confirmer { padding: 1px 6px; border-radius: 4px; background: #FFE8A3; color: #5A3A00; font-style: normal; font-weight: 600; }

/* Questions fréquentes (détails / résumé natifs, accessibles au clavier) */
.sct-faq { display: flex; flex-direction: column; gap: 10px; }
.sct-faq details { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); }
.sct-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 12px 20px;
  list-style: none; cursor: pointer; font-family: var(--font-display); font-weight: 600; font-size: 18px; color: var(--color-text-strong); border-radius: inherit;
}
.sct-faq summary::-webkit-details-marker { display: none; }
.sct-faq summary::after { content: "+"; flex: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--color-creme-200); font: 700 20px/1 var(--font-body); color: var(--color-cacao-800); transition: transform .2s ease; }
.sct-faq details[open] summary::after { content: "−"; }
.sct-faq summary:hover { color: var(--color-lait-600); }
.sct-faq details > div { padding: 0 20px 18px; }
.sct-faq details > div p { margin: 0; }

/* Section Lions Club */
.sct-lions-chiffres { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sct-lions-chiffres li { flex: 1 1 140px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--color-cacao-800); }
.sct-lions-chiffres strong { display: block; font-family: var(--font-display); font-weight: 800; font-size: 30px; line-height: 1.1; color: var(--color-caramel-300); }
.sct-lions-chiffres span { font-size: 14px; color: var(--color-creme-300); }
.sct-lions-logo img { display: block; width: 84px; height: 84px; object-fit: contain; padding: 8px; border-radius: 50%; background: var(--color-creme-50); box-shadow: var(--shadow-md); }
.sct-info-pratique .sct-info-pratique__titre .elementor-heading-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--color-text-strong); }
.sct-info-pratique .elementor-widget-text-editor p { margin: 0; font-size: 16px; }

/* Infos pratiques : boîtes de l'essentiel détachées du fond crème */
.sct-essentiel .sct-horaires,
.sct-essentiel .sct-carte-lieu {
  background: var(--color-surface); border: 1px solid var(--color-creme-300);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-md);
}
.sct-essentiel .sct-billetterie { box-shadow: var(--shadow-md); }

/* Images arrondies : prioritaire sur le style par défaut des images Elementor */
.elementor-widget-image.sct-image-goutte img { border-radius: var(--radius-drop); }
.elementor-widget-image.sct-image-arrondie img { border-radius: var(--radius-lg); }
#lions-club .sct-image-goutte img { box-shadow: var(--shadow-lg); }
/* Boîtes de l'essentiel : même hauteur sur une rangée */
.sct-essentiel .e-con > .elementor-widget-shortcode { flex-grow: 1; }
.sct-essentiel .elementor-widget-shortcode > .elementor-widget-container, .sct-essentiel .elementor-shortcode { height: 100%; }

/* =========================================================
   Infos pratiques : optimisations mobile
   ========================================================= */
/* 1. Itinéraire : lignes pleine largeur sur mobile, en ligne sur ordinateur */
.sct-itineraire__liens { display: grid; grid-template-columns: 1fr; gap: 10px; }
body a.sct-itineraire__lien {
  display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 16px;
  border: 2px solid var(--color-creme-300); border-radius: var(--radius-md);
  background: var(--color-surface); color: var(--color-cacao-800);
  font: 600 16px/1.2 var(--font-body); text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease;
}
body a.sct-itineraire__lien:hover { border-color: var(--color-caramel-500); background: var(--color-creme-200); color: var(--color-cacao-800); }
.sct-itineraire__ico { flex: none; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--color-creme-200); color: var(--color-cacao-800); }
.sct-itineraire__fleche { flex: none; margin-left: auto; color: var(--color-lait-600); }
@media (min-width: 1024px) {
  .sct-itineraire__liens { display: flex; flex-wrap: wrap; gap: 10px; }
  body a.sct-itineraire__lien { min-height: 46px; padding: 0 14px 0 8px; border-radius: var(--radius-pill); gap: 8px; font-size: 15px; }
  .sct-itineraire__ico { width: 30px; height: 30px; }
  .sct-itineraire__fleche { margin-left: 2px; }
}
/* Sur mobile et tablette, l'itinéraire passe avant la carte */
@media (max-width: 1023px) {
  .sct-itineraire-widget { order: -1; margin-bottom: 20px; }
  .sct-itineraire-widget .sct-itineraire { margin-top: 0; }
}

/* 2. Bouton « Devenir partenaire » : contour crème sur fond foncé */
body .sct-btn--contour-clair .elementor-button {
  min-height: 48px; padding: 0 22px; border: 2px solid var(--color-creme-300);
  background: transparent; color: var(--color-creme-50);
}
body .sct-btn--contour-clair .elementor-button:hover,
body .sct-btn--contour-clair .elementor-button:focus { background: var(--color-creme-50); border-color: var(--color-creme-50); color: var(--color-cacao-900); }

/* 3. Cartes d'accès sur mobile : pictogramme à côté du titre, texte pleine largeur */
@media (max-width: 767px) {
  .sct-acces .sct-info-pratique { display: grid !important; grid-template-columns: 40px 1fr; gap: 8px 12px; align-items: center; }
  .sct-acces .sct-info-pratique > .e-con { display: contents; }
  .sct-acces .sct-info-pratique .elementor-widget-text-editor { grid-column: 1 / -1; }
  .sct-acces .sct-info-pratique__icone { width: 40px; height: 40px; }
  .sct-acces .elementor-widget-html .sct-info-pratique__icone .sct-icone { width: 20px; height: 20px; }
}

/* 4. Chiffres clés du Lions Club sur mobile : lignes régulières */
@media (max-width: 767px) {
  .sct-lions-chiffres { flex-direction: column; gap: 8px; }
  .sct-lions-chiffres li { flex: none; display: flex; align-items: baseline; gap: 12px; padding: 12px 16px; }
  .sct-lions-chiffres strong { flex: none; font-size: 24px; }
}

/* 5. Liens isolés : zone de toucher de 44 px */
.elementor-widget-text-editor p > a.sct-lien:only-child { display: inline-flex; align-items: center; min-height: 44px; }

/* 6. Bandeaux d'appel : bouton pleine largeur sur mobile */
@media (max-width: 767px) {
  .sct-appel .elementor-widget-button { align-self: stretch; width: 100%; }
}

/* 7. F.A.Q. : largeur de lecture confortable, centrée */
.sct-faq { width: 100%; max-width: 800px; margin-inline: auto; }
/* Carte sur mobile : la hauteur s'adapte au contenu de l'aperçu (plus rien de coupé) */
@media (max-width: 767px) {
  .sct-carte-acces { aspect-ratio: auto; min-height: 240px; }
  .sct-carte-acces__facade { position: static; min-height: 240px; padding: 24px 16px; gap: 10px; }
  .sct-carte-acces__pin { width: 52px; height: 52px; }
  .sct-carte-acces__pin .sct-icone { width: 24px; height: 24px; }
  .sct-carte-acces__adresse strong { font-size: 20px; }
  .sct-carte-acces.est-chargee { height: 320px; }
}
/* =========================================================
   Page Partenaires
   ========================================================= */
.sct-part-cartes { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .sct-part-cartes:not(.sct-part-cartes--large) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sct-part-carte {
  display: flex; flex-direction: column; gap: 18px; padding: 28px;
  border: 1px solid var(--color-creme-300); border-radius: var(--radius-lg);
  background: var(--color-surface); box-shadow: var(--shadow-sm);
}
.sct-part-carte__logo { display: flex; align-items: center; height: 80px; }
.sct-part-carte__logo img { max-height: 80px; width: auto; max-width: 220px; object-fit: contain; }
.sct-part-carte__corps { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.sct-part-carte .sct-part-carte__nom { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1.2; color: var(--color-text-strong); }
.sct-part-carte__texte { margin: 0; color: var(--color-text); }
.sct-part-carte__liens { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0; }
.sct-part-carte__liens .sct-lien { display: inline-flex; align-items: center; min-height: 44px; }
/* Organisateur : carte large, logo à gauche */
@media (min-width: 768px) {
  .sct-part-carte--large { flex-direction: row; align-items: center; gap: 36px; padding: 36px 40px; }
  .sct-part-carte--large .sct-part-carte__logo { flex: none; justify-content: center; width: 160px; height: 160px; border-radius: 50%; background: var(--color-creme-100); }
  .sct-part-carte--large .sct-part-carte__logo img { max-height: 120px; max-width: 120px; }
  .sct-part-carte--large .sct-part-carte__nom { font-size: 30px; }
}

/* Grille de logos (soutiens, accueil) */
.sct-logos { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(170px, 230px)); justify-content: center; list-style: none; margin: 0; padding: 0; }
.sct-logos__item, .sct-logo-invitation {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  height: 140px; padding: 16px; border-radius: var(--radius-md); text-align: center; text-decoration: none;
}
.sct-logos__item { background: var(--color-surface); border: 1px solid var(--color-creme-300); }
.sct-logos__item img { max-height: 70px; width: auto; max-width: 100%; object-fit: contain; }
body .sct-logos__nom { font-size: 13px; font-weight: 700; line-height: 1.3; color: var(--color-text); }
a.sct-logos__item:hover { border-color: var(--color-caramel-500); box-shadow: var(--shadow-md); }
body a.sct-logo-invitation { border: 2px dashed var(--color-border-field); color: var(--color-lait-600); font-weight: 700; }
body a.sct-logo-invitation:hover { border-color: var(--color-caramel-500); background: var(--color-creme-200); color: var(--color-cacao-800); }
.sct-logo-invitation__plus { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--color-creme-200); font-size: 24px; line-height: 1; color: var(--color-cacao-800); }
.sct-logo-invitation__sous { font-size: 13px; font-weight: 500; color: var(--color-text-muted); }

/* Types de soutien */
.sct-soutien .sct-soutien__ico { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--color-creme-200); color: var(--color-cacao-800); }
.sct-soutien .sct-soutien__ico .sct-icone { width: 26px; height: 26px; }
.sct-soutien .elementor-heading-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--color-text-strong); }
.sct-soutien .elementor-widget-text-editor p { margin: 0; }

/* Formulaire Fluent Forms aux couleurs de la charte */
.sct-formulaire { padding: 32px; border-radius: var(--radius-lg); background: var(--color-surface); border: 1px solid var(--color-creme-300); box-shadow: var(--shadow-md); }
@media (max-width: 767px) { .sct-formulaire { padding: 20px; } }
body .sct-formulaire .fluentform .ff-el-group { margin-bottom: 18px; }
body .sct-formulaire .fluentform .ff-el-input--label label { font: 700 15px/1.3 var(--font-body); color: var(--color-text); }
body .sct-formulaire .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--color-error-600); }
body .sct-formulaire .fluentform .ff-el-form-control {
  min-height: 52px; padding: 12px 16px; border: 2px solid var(--color-border-field); border-radius: 12px;
  background: #fff; color: var(--color-text); font: 400 16px/1.5 var(--font-body); box-shadow: none;
}
body .sct-formulaire .fluentform textarea.ff-el-form-control { min-height: 140px; }
body .sct-formulaire .fluentform .ff-el-form-control:focus { border-color: var(--color-focus); box-shadow: 0 0 0 3px var(--color-creme-200); outline: 2px solid transparent; }
body .sct-formulaire .fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--color-error-600); }
body .sct-formulaire .fluentform .error, body .sct-formulaire .fluentform .text-danger { color: var(--color-error-600); font-size: 14px; font-weight: 600; }
body .sct-formulaire .fluentform .ff_gdpr_field + span, body .sct-formulaire .fluentform .ff-el-tc label { font-size: 14px; font-weight: 400; line-height: 1.5; color: var(--color-text); }
body .sct-formulaire .fluentform .ff-btn-submit {
  min-height: 52px; padding: 0 28px; border: 0; border-radius: var(--radius-pill);
  background: var(--color-cacao-800); color: var(--color-creme-50); font: 700 16px/1.2 var(--font-body);
}
body .sct-formulaire .fluentform .ff-btn-submit:hover, body .sct-formulaire .fluentform .ff-btn-submit:focus { background: var(--color-lait-600); color: var(--color-creme-50); opacity: 1; }
body .sct-formulaire .ff-message-success { padding: 20px 24px; border: 0; border-radius: var(--radius-md); background: var(--color-success-50); color: var(--color-success-600); box-shadow: none; }
@media (max-width: 767px) { body .sct-formulaire .fluentform .ff-btn-submit { width: 100%; } }
.sct-formulaire--centre { width: 100%; max-width: 760px; margin-inline: auto; }

/* Section « Un salon solidaire » : illustration dans un médaillon crème */
.elementor-widget-image.sct-solidaire-illustration { flex: none; width: 200px; height: 200px; padding: 22px; border-radius: 50%; background: var(--color-creme-100); box-shadow: var(--shadow-lg); }
.elementor-widget-image.sct-solidaire-illustration > .elementor-widget-container { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.elementor-widget-image.sct-solidaire-illustration img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; box-shadow: none; }
@media (max-width: 767px) {
  .elementor-widget-image.sct-solidaire-illustration { width: 160px; height: 160px; padding: 18px; align-self: center; }
  .sct-solidaire-bouton { align-self: center; width: 100%; max-width: 320px; }
}
/* Médaillon solidaire v2 : cercle plus petit, illustration plus grande qui déborde du cercle */
.elementor-widget-image.sct-solidaire-illustration { position: relative; width: 220px; height: auto; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.elementor-widget-image.sct-solidaire-illustration::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 170px; height: 170px; transform: translate(-50%, -50%);
  border-radius: 50%; background: var(--color-creme-100); box-shadow: var(--shadow-lg);
}
.elementor-widget-image.sct-solidaire-illustration > .elementor-widget-container { position: relative; z-index: 1; height: auto; }
.elementor-widget-image.sct-solidaire-illustration img { position: relative; z-index: 1; display: block; width: 100%; height: auto; }
@media (max-width: 767px) {
  .elementor-widget-image.sct-solidaire-illustration { width: 180px; height: auto; padding: 0; }
  .elementor-widget-image.sct-solidaire-illustration::before { width: 140px; height: 140px; }
}
/* =========================================================
   Page Contact
   ========================================================= */
/* Choix « Votre demande » en pastilles (vrais boutons radio, accessibles au clavier) */
body .sct-formulaire .sct-choix-pastilles .ff-el-input--content { display: flex; flex-wrap: wrap; gap: 8px; }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check { margin: 0; }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-label {
  position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; margin: 0;
  border: 2px solid var(--color-creme-300); border-radius: var(--radius-pill); background: #fff;
  font: 600 15px/1.2 var(--font-body); color: var(--color-cacao-800); cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-label:hover { border-color: var(--color-caramel-500); background: var(--color-creme-200); }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-label:has(input:checked) { border-color: var(--color-cacao-800); background: var(--color-cacao-800); color: var(--color-creme-50); }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-label:has(input:focus-visible) { box-shadow: 0 0 0 2px var(--color-creme-50), 0 0 0 4px var(--color-focus); }
body .sct-formulaire .sct-choix-pastilles .ff-el-form-check-label span { pointer-events: none; }

/* Carte des coordonnées */
.sct-coord { padding: 32px; border-radius: var(--radius-lg); background: var(--color-creme-200); }
@media (max-width: 767px) { .sct-coord { padding: 24px 20px; } }
.sct-coord .sct-coord__h { margin: 0 0 20px; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); line-height: var(--lh-h3); color: var(--color-text-strong); }
.sct-coord__liste { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; list-style: none; }
.sct-coord__ligne { display: flex; gap: 14px; align-items: flex-start; }
.sct-coord__ico { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--color-surface); color: var(--color-cacao-800); }
.sct-coord__ico .sct-icone { width: 20px; height: 20px; }
.sct-coord__titre { margin: 0 0 2px; font-family: var(--font-info); font-weight: 700; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.sct-coord__ligne p { margin: 0; }
.sct-coord__ligne .sct-lien { display: inline-flex; align-items: center; min-height: 32px; overflow-wrap: anywhere; }
.sct-coord__orga { display: flex; align-items: center; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--color-creme-300); }
.sct-coord__orga p { margin: 0; font-size: 15px; }
.sct-coord__logo { flex: none; width: 52px; height: 52px; object-fit: contain; padding: 4px; border-radius: 50%; background: var(--color-surface); }

/* Cartes « Vous êtes… » */
.sct-profil .sct-profil__ico { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--color-creme-200); color: var(--color-cacao-800); }
.sct-profil .sct-profil__ico .sct-icone { width: 26px; height: 26px; }
.sct-profil .elementor-heading-title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--color-text-strong); }
.sct-profil .elementor-widget-text-editor p { margin: 0; }
.sct-profil .elementor-widget-text-editor:last-child { margin-top: auto; }
/* Cartes « Vous êtes… » : 4 par ligne sur ordinateur, 2 sur tablette, 1 sur mobile, hauteurs égales */
body .e-con > .sct-profil { flex: 1 1 0; width: auto; min-width: 0; }
@media (max-width: 1023px) { body .e-con > .sct-profil { flex: 1 1 calc(50% - 10px); } }
@media (max-width: 767px) { body .e-con > .sct-profil { flex: 1 1 100%; } }

/* Contact : erreur des pastilles sur sa propre ligne */
body .sct-formulaire .sct-choix-pastilles .ff-el-input--content > .error, body .sct-formulaire .sct-choix-pastilles .ff-el-input--content > .text-danger { flex-basis: 100%; margin-top: 2px; }

/* =========================================================
   Page Devenir exposant
   ========================================================= */
/* Blocs du formulaire (Vous / Votre activité / Votre stand) */
body .sct-formulaire .fluentform .ff-el-section-break { margin: 28px 0 14px; }
body .sct-formulaire .fluentform .ff-el-group:first-child.ff-el-section-break, body .sct-formulaire .fluentform form > .ff-el-section-break:first-of-type { margin-top: 0; }
body .sct-formulaire .fluentform .ff-el-section-title {
  margin: 0 0 6px; padding-bottom: 10px; border-bottom: 2px solid var(--color-creme-300);
  font-family: var(--font-info); font-weight: 700; font-size: 18px; letter-spacing: .1em; text-transform: uppercase; color: var(--color-caramel-700);
}
body .sct-formulaire .fluentform .ff-el-section-break hr { display: none; }

/* Pastilles d'information de l'en-tête */
.sct-infos-pastilles { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sct-infos-pastilles li { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: var(--radius-pill); background: var(--color-surface); border: 1px solid var(--color-creme-300); font: 700 15px/1.2 var(--font-body); color: var(--color-cacao-800); }
.sct-infos-pastilles .sct-icone { width: 18px; height: 18px; color: var(--color-caramel-700); }

/* Tableau des conditions */
.sct-conditions { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--color-creme-300); border-radius: var(--radius-lg); background: var(--color-surface); }
.sct-conditions th, .sct-conditions td { padding: 16px 20px; border-bottom: 1px solid var(--color-creme-300); text-align: left; vertical-align: top; }
.sct-conditions tr:last-child th, .sct-conditions tr:last-child td { border-bottom: 0; }
.sct-conditions th { width: 32%; font-family: var(--font-info); font-weight: 700; font-size: 17px; letter-spacing: .04em; text-transform: uppercase; color: var(--color-cacao-800); background: var(--color-creme-100); }
.sct-conditions td { font-size: 16px; color: var(--color-text); }
@media (max-width: 767px) {
  .sct-conditions, .sct-conditions tbody, .sct-conditions tr, .sct-conditions th, .sct-conditions td { display: block; width: 100%; }
  .sct-conditions th { padding-bottom: 6px; border-bottom: 0; }
  .sct-conditions td { padding-top: 6px; }
}

/* Étapes numérotées */
.sct-etapes { display: grid; gap: 20px; grid-template-columns: 1fr; margin: 0; padding: 0; list-style: none; counter-reset: etape; }
@media (min-width: 768px) { .sct-etapes { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .sct-etapes { grid-template-columns: repeat(4, 1fr); } }
.sct-etapes li { position: relative; padding: 24px; border-radius: var(--radius-lg); background: var(--color-cacao-800); color: var(--color-creme-100); counter-increment: etape; }
.sct-etapes li::before { content: counter(etape); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 14px; border-radius: 50%; background: var(--color-caramel-300); font: 800 22px/1 var(--font-display); color: var(--color-cacao-900); }
.sct-etapes strong { display: block; margin-bottom: 6px; font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--color-creme-50); }
.sct-etapes span { font-size: 15px; line-height: 1.55; color: var(--color-creme-300); }
.sct-fond-fonce .sct-etapes li { background: var(--color-cacao-800); }
/* =========================================================
   Espace presse
   ========================================================= */
.sct-presse-carte { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--color-creme-300); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.sct-presse-carte__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: var(--color-creme-200) url("../svg/pattern-clair.svg") repeat; background-size: 120px 120px; }
.sct-presse-carte__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sct-presse-carte--logo .sct-presse-carte__media { background: var(--color-creme-100); }
.sct-presse-carte--logo .sct-presse-carte__media img { width: 70%; height: 70%; object-fit: contain; }
.sct-presse-carte__vide { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--color-surface); color: var(--color-cacao-800); box-shadow: var(--shadow-sm); }
.sct-presse-carte__vide .sct-icone { width: 32px; height: 32px; }
.sct-presse-carte__corps { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; flex: 1; padding: 22px 24px 24px; }
.sct-presse-carte__corps .sct-surtitre { margin: 0; }
.sct-presse-carte .sct-presse-carte__titre { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 22px; line-height: 1.25; color: var(--color-text-strong); }
.sct-presse-carte__texte { margin: 0; font-size: 15px; color: var(--color-text-muted); }
.sct-presse-carte__bouton, .sct-presse-carte__bientot { margin-top: auto !important; }
body a.sct-presse-carte__bouton { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 20px; font-size: 15px; }
.sct-presse-carte__bouton .sct-icone { width: 18px; height: 18px; }
.sct-presse-carte__format { font-weight: 500; opacity: .85; }
.sct-presse-carte__bientot { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border: 2px dashed var(--color-creme-300); border-radius: var(--radius-pill); font-weight: 700; font-size: 15px; color: var(--color-text-muted); }
.sct-presse-grille { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .sct-presse-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sct-presse-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sct-presse-contact { padding: 28px 32px; border-radius: var(--radius-lg); background: var(--color-creme-200); }
.sct-presse-contact__cta { margin: 20px 0 0; }
@media (max-width: 767px) { .sct-presse-contact { padding: 24px 20px; } .sct-presse-contact__cta .sct-btn { width: 100%; justify-content: center; } }
/* Section solidaire : le texte prend la place restante (plus de débordement du bouton entre 1024 et 1130 px) */
@media (min-width: 768px) {
  :is(.e-con, .e-con-inner):has(> .sct-solidaire-illustration) > .e-con { flex: 1 1 0; width: auto; min-width: 0; }
  :is(.e-con, .e-con-inner):has(> .sct-solidaire-illustration) > .sct-solidaire-bouton { flex: none; }
}

/* =========================================================
   Titre animé du hero : mot sur pastille cacao, texte caramel
   ========================================================= */
.sct-titre-anime { margin: 0; }
.sct-titre-anime__ligne { display: block; }
.sct-mot {
  position: relative; display: inline-block; vertical-align: top; box-sizing: content-box;
  height: 1.12em; margin: .06em 0 .1em -.06em; padding: 0 .28em; overflow: hidden;
  border-radius: .22em; background: var(--color-cacao-800); color: var(--color-caramel-300);
  font-style: italic; box-shadow: var(--shadow-md);
  transition: width .45s cubic-bezier(.2, .8, .2, 1);
}
.sct-mot__texte { display: inline-block; white-space: nowrap; line-height: 1.12em; }
.sct-mot.est-js .sct-mot__texte {
  position: absolute; left: .28em; top: 0;
  transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .45s ease, filter .45s ease;
}
.sct-mot__texte.est-entrant { transform: translateY(85%); opacity: 0; filter: blur(6px); }
.sct-mot__texte.est-sortant { transform: translateY(-85%); opacity: 0; filter: blur(6px); }
@media (prefers-reduced-motion: reduce) { .sct-mot, .sct-mot.est-js .sct-mot__texte { transition: none; } }
/* Titre du hero agrandi : 72 px sur grand écran, 44 px sur mobile, progression fluide entre les deux */
.sct-hero .sct-titre-anime { font-size: 44px; line-height: 1.04; letter-spacing: -.01em; }
@media (min-width: 768px) { .sct-hero .sct-titre-anime { font-size: clamp(44px, 7vw, 60px); } }
/* Ordinateur : taille calculée pour que « au pied des Pyrénées » tienne toujours sur une ligne (3 lignes au total) */
@media (min-width: 1024px) { .sct-hero .sct-titre-anime { font-size: clamp(48px, 4.9vw, 68px); } }

/* Très petits téléphones : titre du hero à 40 px pour garder « Deux jours de » sur une ligne */
@media (max-width: 359px) { .sct-hero .sct-titre-anime { font-size: 36px; } }

/* Bouton avec flèche qui glisse au survol (même geste que le bouton du header) */
.sct-btn--fleche .elementor-button-text::after { content: "\2192" / ""; display: inline-block; margin-left: .5em; transition: transform .2s ease; }
.sct-btn--fleche .elementor-button:hover .elementor-button-text::after, .sct-btn--fleche .elementor-button:focus-visible .elementor-button-text::after { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .sct-btn--fleche .elementor-button-text::after { transition: none; } }
.sct-bouton-section { margin-top: 12px; }
/* Section ciblée par une ancre : pas de contour au focus programmé */
[id][tabindex="-1"]:focus:not(:focus-visible) { outline: none; }

/* Sections ciblées par une ancre sur mobile : un peu d'air sous le header collant */
@media (max-width: 767px) { .e-con[id] { scroll-margin-top: 20px; } }

/* Grille de logos : toujours pleine largeur, même dans une section centrée */
.elementor-widget-shortcode:has(.sct-logos) { align-self: stretch; width: 100%; }

/* =========================================================
   Fond commun des en-têtes (image réglée dans le Personnaliseur)
   Image à 35 % sur beige + dégradé beige ; version allégée sur mobile.
   ========================================================= */
.sct-entete-fond { position: relative; isolation: isolate; background-color: var(--color-creme-100); }
.e-con.sct-entete-fond::before {
  content: "" !important; display: block; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--sct-fond-entete-mobile, none) center / cover no-repeat; opacity: .35; mix-blend-mode: normal;
}
@media (min-width: 768px) { .e-con.sct-entete-fond::before { background-image: var(--sct-fond-entete, none); } }
.sct-entete-fond > .e-con-inner, .sct-entete-fond > .elementor-element { position: relative; z-index: 1; }
/* Pages intérieures (titre centré) : beige dense au centre, halle visible sur les bords, fondu vers le bas */
.sct-entete-fond--centre::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    linear-gradient(0deg, rgba(250, 236, 216, 1) 0%, rgba(250, 236, 216, 0) 32%),
    radial-gradient(ellipse 58% 80% at 50% 45%, rgba(250, 236, 216, .95) 0%, rgba(250, 236, 216, .88) 45%, rgba(250, 236, 216, .45) 100%);
}
@media (max-width: 767px) {
  .sct-entete-fond--centre::after { background: linear-gradient(0deg, rgba(250, 236, 216, 1) 0%, rgba(250, 236, 216, 0) 35%), rgba(250, 236, 216, .82); }
}
/* Lions Club : boutons sous la photo, de même largeur */
.sct-lions-actions > .elementor-widget-button { flex: 1 1 0; min-width: 0; }
.sct-lions-actions .elementor-button { width: 100%; justify-content: center; }
@media (max-width: 767px) { .sct-lions-actions > .elementor-widget-button { flex: none; width: 100%; } }

/* Lions Club : photo et boutons légèrement plus bas que le centre (ordinateur) */
@media (min-width: 1024px) { #lions-club > .e-con-inner > .e-con:last-child, #lions-club > .e-con:last-child { margin-top: 80px; } }

/* =========================================================
   Allègement mobile (mémoire graphique des téléphones)
   ========================================================= */
@media (max-width: 767px) {
  /* Diaporama : fondu conservé, sans zoom lent permanent */
  .sct-diaporama .gallery-item img { animation: none !important; transform: none !important; }
  /* Mot animé du titre : sans flou */
  .sct-mot__texte.est-entrant, .sct-mot__texte.est-sortant { filter: none; }
  .sct-mot.est-js .sct-mot__texte { transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .45s ease; }
  /* Photos : simple fondu à l'apparition (pas de rideau ni de dézoom) */
  .sct-anim-active .sct-a--image img, .sct-anim-active .sct-a--image:not(.est-vu) img { clip-path: none; transform: none; transition: none; }
  .sct-anim-active .sct-a--image { transition: opacity .5s ease var(--sct-a-delai, 0ms); }
  .sct-anim-active .sct-a--image:not(.est-vu) { opacity: 0; }
}