/**
 * Theme Name: Theme_pex
 * Theme URI: https://promotions-exceptionnelles.com/
 * Description: Thème personnalisé pour le site promotions-exceptionnelles
 * Version: 1.0.5
 * Author: Nicolas Decaesteker
 * Author URI: https://coqauweb.com
 * Template: blocksy
 * Text Domain: blocksy
 */


@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

/*--------------------------------------------------------------
>>> SOMMAIRE
----------------------------------------------------------------
1.0  Variables (charte graphique dérivée du logo)
2.0  Header
3.0  Accueil
4.0  Fiches
5.0  Actualités
6.0  Contenus éditoriaux
--------------------------------------------------------------*/

/*--------------------------------------------------------------
1.0  VARIABLES — charte graphique
--------------------------------------------------------------*/
:root {
  --pex-teal: #0b7578;
  --pex-teal-clair: #70c2b1;
  --pex-teal-nuit: #064e50;
  --pex-encre: #0d2b30;
  --pex-encre-doux: #4a6668;
  --pex-creme: #fbfcfc;
  --pex-corail: #ef6b4d;
  --pex-corail-fonce: #d8543a;
  --pex-ambre: #f5a623;
  --pex-bordure: #d5e5e6;
  --pex-ombre: 0 10px 30px rgba(11,117,120,.10);
  --pex-ombre-forte: 0 18px 44px rgba(11,117,120,.18);
  --pex-r: 14px;
}


/*--------------------------------------------------------------
1.1  TITRES & LIENS — complément au Customizer Blocksy
--------------------------------------------------------------*/

h1,
.fiche-page h1,
.pex-archive-wrap .pex-archive-titre,
.entry-content h1 {color: var(--wp--preset--color--palette-color-7, #123536);}

h2 {
  font-family: 'Fraunces', serif;
  font-weight: 600;
}


.fiche-page a:focus-visible,
.entry-content a:focus-visible,
.term-description a:focus-visible {
  outline: 2px solid var(--wp--preset--color--palette-color-4, #245c57);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .fiche-page a,
  .entry-content a,
  .term-description a {
    transition: none;
  }
}


/*--------------------------------------------------------------
2.0  HEADER
--------------------------------------------------------------*/

  /*--------------------------------------------------------------
  2.1  TITRE DU SITE (header) — effet deux niveaux
  --------------------------------------------------------------*/

.site-title a {
  font-family: 'Bitter', Georgia, serif;
  font-weight: 700;
  line-height: 1.05;
  color: var(--wp--preset--color--palette-color-7, #123536);
  transition: color 0.15s ease;
}

.site-title a:hover,
.site-title a:focus-visible {color: var(--wp--preset--color--palette-color-9, #217b7d);}

.pex-nom-sub {
  display: block;
  font-family: 'Segoe UI', system-ui, sans-serif;
  font-size: 0.6em;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--pex-encre-doux);
}

  /*--------------------------------------------------------------
  2.2  BOUTON CONTACT (header)
  --------------------------------------------------------------*/
 
a.pex-btn-contact {
  background: linear-gradient(45deg, #0b7578 15%, #3b9490 50%, #68bbad 88%);
  color: #fff !important;
  padding: 9px 22px !important;
  border-radius: 999px;
  font-weight: 600;
  display: inline-block;
  transition: border-radius 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
 
a.pex-btn-contact:hover,
a.pex-btn-contact:focus-visible {
  color: #fff !important;
  border-radius: 999px 999px 999px 6px;
}
 
@media (prefers-reduced-motion: reduce) {
  a.pex-btn-contact {transition: none;}
}

  /*--------------------------------------------------------------
  2.3  MENU — survol
  --------------------------------------------------------------*/

.ct-menu-link {
  position: relative;
  transition: color 0.12s ease;
}

.ct-menu-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: #93f1ce;
  transform: scaleX(0);
  transition: transform 0.16s ease;
}

.ct-menu-link:hover,
.ct-menu-link:focus-visible {color: var(--wp--preset--color--palette-color-4, #245c57);}

.ct-menu-link:hover::after,
.ct-menu-link:focus-visible::after {transform: scaleX(1);}


/* Sous-menu déroulant (ex: "Catégories") : jamais stylé jusqu'ici, il
   héritait du rendu par défaut de Blocksy — quasi illisible une fois
   ouvert au-dessus d'un fond coloré comme le bandeau teal des
   actualités. Fond plein + ombre pour qu'il se détache clairement de
   ce qu'il y a derrière, quel que soit le fond de la page. */
.site-navigation .sub-menu,
.ct-header .sub-menu {
  background: #fff !important;
  border-radius: 10px;
  box-shadow: var(--pex-ombre-forte);
  padding: 8px 0 !important;
  border: 1px solid var(--pex-bordure);
  z-index: 50;
}
.site-navigation .sub-menu li a,
.ct-header .sub-menu li a {
  color: var(--pex-encre) !important;
  padding: 10px 22px !important;
  display: block;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  transition: background .12s, color .12s;
}
.site-navigation .sub-menu li a:hover,
.ct-header .sub-menu li a:hover {
  background: var(--pex-creme);
  color: var(--pex-teal) !important;
}

  /*--------------------------------------------------------------
  2.4  ACCESSIBILITÉ — focus clavier
  Le survol seul ne constitue pas un indicateur de focus suffisant.
  --------------------------------------------------------------*/

.site-title a:focus-visible,
a.pex-btn-contact:focus-visible,
.ct-menu-link:focus-visible {
  outline: 2px solid var(--wp--preset--color--palette-color-4, #245c57);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .site-title a,
  a.pex-btn-contact,
  .ct-menu-link,
  .ct-menu-link::after {transition: none;}
}

/*--------------------------------------------------------------
3.0  ACCUEIL
--------------------------------------------------------------*/

  /*--------------------------------------------------------------
  3.1  HERO
  --------------------------------------------------------------*/

.pex-hero {
  position: relative;
  min-height: 520px;
  align-items: center;
}
.pex-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(11,95,98,.40) 0%,
    rgba(11,95,98,.20) 60%,
    rgba(11,95,98,.60) 100%
  );
}
.pex-hero .pex-hero-content {
  position: relative;
  z-index: 2;
  color: #fff;
  max-width: 760px;
  margin-left: auto;
  margin-right: 0;
  text-align: left;
  gap: 0;
  padding-bottom: 60px;
}
/* Accroche au-dessus du titre */
.pex-hero .pex-hero-content p.pex-eyebrow {
  display: inline-block;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .4px;
  padding: 6px 14px;
  border-radius: 999px;
  margin: 20px 0px;
  width: auto;
}
.pex-hero .pex-hero-content h1 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(29px, 4vw, 46px);
  line-height: 1.15;
  color: #fff;
  margin-bottom: 40px;
}

.pex-hero .pex-hero-content h1 .pex-accent {
  color: var(--pex-corail);
  display: block;
}
.pex-hero .pex-hero-content h1 .pex-accent .pex-colon {color: #fff;}

.pex-hero .pex-hero-content p {
  font-size: 18px;
  color: #fff;
  margin-bottom: 28px;
}

  /*--------------------------------------------------------------
  3.2  CARTE DE RECHERCHE (module .rf-*)
  --------------------------------------------------------------*/

.rf-form {
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.32);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 18px;
  box-shadow: var(--pex-ombre-forte);
  padding: 22px;
  max-width: 760px;
}
.rf-form-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #fff;
  margin-bottom: 14px;
}
.rf-form-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-end;
}
.pex-hero .rf-field {
  display: flex;
  flex-direction: column;
}
.rf-autocomplete {position: relative; flex: 1; min-width: 200px;}
.rf-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rf-radio-pill {
  position: relative;
  cursor: pointer;
}
.rf-radio-pill input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.rf-radio-pill span {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1.5px solid var(--pex-bordure);
  background: #fff;
  color: var(--pex-encre);
  font-size: 14px;
  font-weight: 600;
  transition: background .15s, border-color .15s, color .15s;
}
.rf-radio-pill input[type="radio"]:checked + span {
  background: var(--pex-teal);
  border-color: var(--pex-teal);
  color: #fff;
}
.rf-radio-pill input[type="radio"]:focus-visible + span {
  outline: 2px solid var(--pex-teal);
  outline-offset: 2px;
}
.rf-field-rayon  { flex: 0 0 120px; }
.pex-hero .rf-field {
  position: relative;
  display: block;
}

.pex-hero .rf-label {
  position: absolute;
  top: -8px;
  left: 12px;
  z-index: 2;
  background: rgba(13,43,48,.75);
  padding: 0 6px;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .4px;
  color: #fff !important;
  margin: 0 !important;
  line-height: 1.2;
  border-radius: 4px;
}
.pex-hero .rf-input {
  width: 100%;
  height: 52px;
  padding: 0 16px !important;
  font-size: 16px;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  border-radius: 11px !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
  font-family: inherit;
  box-sizing: border-box;
}
.pex-hero .rf-select {
  width: 100%;
  height: 52px;
  padding: 0 16px !important;
  font-size: 16px;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  border-radius: 11px !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
  font-family: inherit;
  box-sizing: border-box;
}
.pex-hero .rf-input::placeholder {color: rgba(255,255,255,.65);}
.pex-hero .rf-input:focus,
.pex-hero .rf-select:focus {
  outline: none;
  border-color: #14c6d8 !important;
  background: rgba(255,255,255,.22) !important;
}
.pex-hero .rf-button {
  height: 52px;
  align-self: flex-end;
  background: var(--pex-corail) !important;
  color: #fff !important;
  border: none !important;
  padding: 0 30px !important;
  font-size: 16px;
  font-weight: 700;
  border-radius: 11px !important;
  font-family: inherit;
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s;
}
.pex-hero .rf-button:hover {background: var(--pex-corail-fonce) !important;}
.rf-geoloc {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: none;
  border: none;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.rf-geoloc:hover { text-decoration: underline; }
.rf-geoloc {
  display: block;
  margin-top: 12px;
}
.rf-field-cat-radio {margin-top: 14px;}
.rf-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: 10px;
  box-shadow: var(--pex-ombre);
  display: none;
  max-height: 260px;
  overflow-y: auto;
}
.rf-suggestion {padding: 9px 12px; cursor: pointer; color: #0d2b30;}
.rf-suggestion:hover {background: rgba(20,198,216,.15);}

  /*--------------------------------------------------------------
  3.3  RUBRIQUES 
  --------------------------------------------------------------*/

/* Conteneur : fond sombre, colonnes accolées */
.pex-rubriques {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding-left: max(24px, calc((100vw - 1140px) / 2));
  padding-right: max(24px, calc((100vw - 1140px) / 2));
  background-color: #0d2b30;
}

.pex-rubriques .wp-block-column {
  padding: 0;
  border-left: none;
}
.pex-rubriques::before {
  content: "Explorer";
  display: flex;
  align-items: center;
  min-height: 260px;
  padding: 26px 32px 26px 0;
  color: #14c6d8;
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  flex: 0 0 auto;
  border-right: 1px solid rgba(255,255,255,.14);
  margin-right: -24px;
}
.pex-rubriques .wp-block-column:last-child {border-right: 1px solid rgba(255,255,255,.14);}

/* La carte devient la zone photo + voile */
.pex-rub-card {
  position: relative;
  overflow: hidden;
  min-height: 260px;
  padding: 26px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-color: #0d2b30;
  align-items: center;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease;
  text-decoration: none;
  outline: none;
}

.pex-rub-card:hover .pex-rub-icone,
.pex-rub-card:focus-visible .pex-rub-icone {box-shadow: 0 0 20px rgba(20,198,216,.9), inset 0 0 10px rgba(20,198,216,.5);}

.pex-rub-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(13,43,48,.50);
  z-index: 1;
}

/* Texte au-dessus du voile */
.pex-rub-card > * {
  position: relative;
  z-index: 2;
}
.pex-rub-card:focus-visible,
.pex-rub-card:hover {outline: none;}

.pex-rub-icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px !important;
  height: 72px !important;
  border-radius: 50%;
  border: 2px solid #14c6d8;
  color: #14c6d8;
  font-size: 28px;
  box-shadow: 0 0 12px rgba(20,198,216,.6), inset 0 0 8px rgba(20,198,216,.3);
  margin-top: 4px !important;
  margin-bottom: 4px !important;
}

.pex-rub-card .wp-block-heading {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -.3px;
  color: #fff;
  margin-top: 6px !important;
  margin-bottom: 3px !important;
}

.pex-rub-card p.wp-block-paragraph {
  font-size: 13px;
  color: rgba(255,255,255,.8);
  margin: 0;
}

/* Une image par colonne — remplace par l'URL réelle dans ta médiathèque */
.wp-block-column:nth-child(1) .pex-rub-card { background-image: url('https://staging-pex.coqauweb.com/wp-content/uploads/2026/09/commerces-services.jpg'); }
.wp-block-column:nth-child(2) .pex-rub-card { background-image: url('https://staging-pex.coqauweb.com/wp-content/uploads/2026/09/activites-loisirs.jpg'); }
.wp-block-column:nth-child(3) .pex-rub-card { background-image: url('https://staging-pex.coqauweb.com/wp-content/uploads/2026/09/restaurants-pubs.jpg'); }


  /*--------------------------------------------------------------
  3.4  BLOC SEO — encadré + liste des dernières promotions
  --------------------------------------------------------------*/

.pex-seo.pex-seo {
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-left: 4px solid var(--pex-teal);
  border-radius: var(--pex-r);
  padding: 34px;
  max-width: 1140px;
  margin-top: 40px !important;
  margin-bottom: 60px;
  margin-left: auto;
  margin-right: auto;
}
.pex-seo h2 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 28px;
  margin-bottom: 16px;
  color: var(--pex-encre);
}
.pex-seo p {
  color: var(--pex-encre-doux);
  margin-bottom: 14px;
}
.pex-seo strong {color: var(--pex-encre);}

/* Liste des dernières promotions (générée par le shortcode) */
.pex-seo .pex-promos {margin-top: 12px;}
.pex-seo .pex-promos-titre {
  font-size: 18px;
  color: var(--pex-encre);
  margin-bottom: 12px;
}
.pex-seo .pex-promos-liste {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.pex-seo .pex-promos-item a {
  display: flex;
  flex-direction: column;
  gap: 5px;
  height: 100%;
  text-decoration: none;
  padding: 16px;
  border: 1px solid rgba(239, 107, 77, 0.35);
  border-radius: 10px;
  background: rgba(239, 107, 77, 0.04);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.pex-seo .pex-promos-item a:hover {
  border-color: var(--pex-corail);
  background: rgba(239, 107, 77, 0.08);
}
.pex-seo .pex-promos-item a::before {
  content: "Offre";
  align-self: flex-start;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #fff;
  background: var(--pex-corail);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 2px;
}
.pex-seo .pex-promos-commerce {
  font-size: 12px;
  font-weight: 600;
  color: var(--pex-teal);
  text-transform: uppercase;
  letter-spacing: .3px;
}
.pex-seo .pex-promos-offre {
  font-weight: 700;
  color: var(--pex-corail);
  font-size: 15px;
  line-height: 1.25;
}
.pex-seo .pex-promos-extrait {display: none;}

@media (max-width: 700px) {
  .pex-seo .pex-promos-liste {grid-template-columns: 1fr;}
}

/* Modale pop-up */
.pex-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(13, 43, 48, .55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.pex-modal-overlay.actif {
  opacity: 1;
  pointer-events: auto;
}
.pex-modal {
  background: #fff;
  border-radius: var(--pex-r);
  max-width: 460px;
  width: 100%;
  padding: 30px;
  position: relative;
  box-shadow: var(--pex-ombre-forte);
  transform: translateY(10px);
  transition: transform .18s ease;
}
.pex-modal-overlay.actif .pex-modal {
  transform: translateY(0);
}
.pex-modal-fermer {
  position: absolute;
  top: 14px;
  right: 14px;
  background: none;
  border: none;
  font-size: 20px;
  line-height: 1;
  color: var(--pex-encre-doux);
  cursor: pointer;
  padding: 4px;
}
.pex-modal-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #fff;
  background: var(--pex-corail);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.pex-modal-commerce {
  font-size: 13px;
  font-weight: 600;
  color: var(--pex-teal);
  text-transform: uppercase;
  letter-spacing: .3px;
  margin-bottom: 6px;
}
.pex-modal-offre {
  font-family: 'Bitter', serif;
  font-weight: 700;
  color: var(--pex-corail-fonce);
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 12px;
}
.pex-modal-extrait {
  font-size: 14px;
  color: var(--pex-encre-doux);
  line-height: 1.6;
  margin-bottom: 22px;
}
.pex-modal-cta {
  display: inline-block;
  background: var(--pex-teal);
  color: #fff;
  text-decoration: none;
  padding: 11px 22px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
}
.pex-modal-cta:hover,
.pex-modal-cta:focus-visible {
  color: #fff;
  background: var(--pex-teal-nuit);
}

  /*--------------------------------------------------------------
  3.5  SLIDERS DE FICHES PAR CATÉGORIE
  --------------------------------------------------------------*/

.pex-slider-section {
  max-width: 1140px;
  margin: 40px auto;
  padding: 0 22px;
}
.pex-slider-head {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 16px;
  flex-wrap: wrap;
}
.pex-slider-titre-bloc {
  gap: 0 !important;
}
h2.pex-slider-tag {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--pex-corail);
  margin-bottom: 0;
}
.pex-slider-head h3 {
  font-family: 'Fraunces', serif;
  font-weight: 600;
  font-size: clamp(28px, 3.8vw, 38px);
  margin-bottom: 0;
  color: var(--pex-encre);
}
.pex-slider-section .wp-block-post h4.ct-dynamic-data {
  display: flex !important;
  align-items: center;
  height: 2.6em;
  overflow: hidden;
  line-height: 1.3;
}
.pex-slider-head .pex-voir-tout {
  color: var(--pex-teal);
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  white-space: nowrap;
}
.pex-slider-head .pex-voir-tout:hover {
  text-decoration: underline;
}

/* --- Cartes du slider --- */

.pex-slider-section .flexy-items {
  align-items: stretch;
}

.pex-slider-section .wp-block-post {
  position: relative;
  background: #fff;
  border-radius: var(--pex-r);
  overflow: hidden;
  box-shadow: var(--pex-ombre);
  padding-bottom: 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.pex-slider-section .flexy-container:not([data-flexy]) .flexy > [class*="flexy-arrow"],
.pex-slider-section .flexy-container[data-flexy*="no"] .flexy > [class*="flexy-arrow"] {
  visibility: visible !important;
}
.pex-slider-section [class*="flexy-arrow"] {
  opacity: 1 !important;
  background: var(--pex-teal);
  color: #fff;
  --flexy-nav-arrow-top-offset: calc(50% - 30px);
  width: 60px;
  height: 60px;
  --translate-x: 0;
  transition: transform .15s ease, background-color .15s ease;
}
.pex-slider-section [class*="flexy-arrow"]:hover {
  background: var(--pex-teal-nuit);
  transform: scale(1.08);
}
.pex-slider-section .flexy-arrow-prev {
  left: -20px;
}
.pex-slider-section .flexy-arrow-next {
  right: -20px;
}

/* Image : coins arrondis en haut uniquement (jonction nette avec le texte).
   !important nécessaire : Blocksy pose un border-radius en style inline. */
.pex-slider-section .wp-block-post img.attachment-full {
  border-top-left-radius: var(--pex-r) !important;
  border-top-right-radius: var(--pex-r) !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  display: block;
  width: 100%;
}

/* --- Contenu dynamique Blocksy (.ct-dynamic-data) ---
   Cette classe est générique chez Blocksy : elle habille aussi bien
   l'extrait que le conteneur des termes. D'où les deux règles ci-dessous. */

.pex-slider-section .ct-dynamic-data {
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.4;
  color: var(--pex-encre-doux);
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  aspect-ratio: unset !important;
}

.pex-slider-section .ct-dynamic-data:has(.ct-term-26) {
  display: block !important;
  overflow: visible !important;
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  width: auto !important;
  height: auto !important;
}

/* Badge "À la une" (terme id 26 de la taxonomie mise_en_avant).
   ATTENTION : si le terme est recréé, son id change — mettre à jour ici. */
.pex-slider-section .ct-term-26 {
  display: inline-block;
  background: var(--pex-ambre);
  color: var(--pex-encre);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
  padding: 5px 13px;
  border-radius: 999px;
  text-decoration: none;
}


/*--------------------------------------------------------------
3.6  SECTION DÉPARTEMENTS
--------------------------------------------------------------*/

.pex-departements.pex-departements {
  background: linear-gradient(145deg, #075557 0%, var(--pex-teal-nuit) 55%, #053e40 100%);
  color: #fff;
  padding: 64px 22px 72px !important;
  margin-top: 80px !important;
  margin-bottom: 80px !important;
}

.pex-departements .pex-dep-tag,
.pex-departements h2 {
  max-width: 1290px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.pex-departements .pex-dep-tag {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--pex-teal-clair);
  margin-bottom: 0 !important;
}
.pex-departements h2 {
  font-size: clamp(24px, 3vw, 32px);
  color: #fff !important;
  margin-top: 0 !important;
  margin-bottom: 30px !important;
  padding: 0 !important;
}

.pex-departements .ct-query-template-grid {
  gap: 14px !important;
}

.pex-departements .wp-block-term,
.pex-departements .pex-dep-tous {
  min-height: 100px;
  box-sizing: border-box;
  padding: 18px 20px;
}

.pex-departements .wp-block-term {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  transition: background .15s, border-color .15s;
}
.pex-departements .wp-block-term:hover {
  background: rgba(255,255,255,.11);
  border-color: var(--pex-teal-clair);
}
.pex-departements .wp-block-term p.ct-dynamic-data {
  margin: 0 0 8px !important;
}
.pex-departements .wp-block-term p.ct-dynamic-data a {
  color: #fff;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 20px;
}
.pex-departements .wp-block-term div.ct-dynamic-data {
  font-size: 14px;
  color: #a9c6c3;
  margin: 0 !important;
}

/* Case "voir tous" : même logique d'alignement que les autres cases
   (contenu collé en haut), gap explicite pour reproduire l'espacement
   des 8px entre titre et compteur ailleurs dans la grille. Réagit au
   survol comme les cases de département (fond éclairci). Le style du
   lien (couleur, gras, pas de soulignement) est appliqué à la fois au
   conteneur .pex-dep-tous-lien et à tout <a> qu'il contient, pour ne
   pas dépendre de la classe posée sur le lien lui-même. */
.pex-departements .pex-dep-tous {
  margin: 0 !important;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--pex-teal-clair);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: background .15s;
}
.pex-departements .pex-dep-tous:hover {
  background: rgba(255,255,255,.11);
}
.pex-departements .pex-dep-tous-lien,
.pex-departements .pex-dep-tous-lien a {
  color: var(--pex-teal-clair);
  text-decoration: none;
  font-weight: 700;
  font-size: 18px;
  margin: 0 !important;
}
.pex-departements .pex-dep-tous-lien:hover,
.pex-departements .pex-dep-tous-lien a:hover {
  color: var(--pex-teal-clair);
  text-decoration: none;
}
.pex-departements .pex-dep-tous-compte {
  font-size: 14px;
  color: #a9c6c3;
  font-weight: 400;
  margin: 0 !important;
}

  /*--------------------------------------------------------------
  3.7  SECTION ACTUALITES
  --------------------------------------------------------------*/
.pex-actus-tag {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--pex-corail);
  margin-bottom: 0px !important;
}

.pex-actus-section h2 {
  font-family: 'Fraunces', serif;
  font-weight: 600;
  font-size: clamp(28px, 3.8vw, 38px);
  color: var(--pex-encre);
  margin-top: 0px;
}

/* Troncature de l'extrait dans les cartes d'actualités */
.pex-actus-section .ct-dynamic-data {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--pex-encre-doux);
}

/* Bouton "Voir tous les articles", sous la grille d'actualités */
.pex-actus-tous.pex-actus-tous a {
  display: inline-block;
  background: var(--pex-teal);
  color: #fff !important;
  text-decoration: none;
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 15px;
  padding: 13px 30px;
  border-radius: 999px;
  margin-top: 12px;
  transition: background .15s;
}
.pex-actus-tous.pex-actus-tous a:hover {
  background: var(--pex-teal-nuit);
  color: #fff !important;
}

/*--------------------------------------------------------------
4.0  FICHES
--------------------------------------------------------------*/

  /*--------------------------------------------------------------
  4.1  ARCHIVE DES FICHES (archive-fiches.php)
  --------------------------------------------------------------*/
.pex-archive-wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 30px 22px 70px;
}
.pex-archive-titre {
  font-family: Georgia, serif;
  font-size: clamp(26px, 3.4vw, 36px);
  color: var(--pex-encre);
  margin-bottom: 6px;
}
.pex-archive-compte {
  font-size: 14px;
  color: var(--pex-encre-doux);
  margin-bottom: 30px;
}

.pex-archive-grille {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.pex-archive-item {
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: var(--pex-r);
  overflow: hidden;
  text-decoration: none;
  display: block;
  transition: transform .15s, box-shadow .15s;
}
.pex-archive-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(11,117,120,.1);
}
.pex-archive-vignette img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}
.pex-archive-corps { padding: 14px 16px 18px; }
.pex-archive-cat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--pex-corail);
}
.pex-archive-corps h2 {
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.3;
  color: var(--pex-encre);
  margin: 6px 0;
}
.pex-archive-dep {
  font-size: 12px;
  color: var(--pex-encre-doux);
}

.pex-archive-pagination {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pex-archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--pex-bordure);
  border-radius: 8px;
  text-decoration: none;
  color: var(--pex-encre);
  font-size: 14px;
}
.pex-archive-pagination .page-numbers.current {
  background: var(--pex-teal);
  border-color: var(--pex-teal);
  color: #fff;
}
.pex-archive-pagination a.page-numbers:hover {
  border-color: var(--pex-teal);
  color: var(--pex-teal);
}

.pex-archive-vide {
  color: var(--pex-encre-doux);
  padding: 40px 0;
}

@media (max-width: 900px) {
  .pex-archive-grille { grid-template-columns: repeat(2, 1fr); }
}

  /*--------------------------------------------------------------
  4.2  CARTE DE RECHERCHE — VARIANTE COMPACTE
  --------------------------------------------------------------*/

.rf-form-results {
  background: #fff;
  border: 1px solid var(--pex-bordure);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-radius: 12px;
  box-shadow: var(--pex-ombre);
  padding: 14px 18px;
  max-width: none;
}

.rf-form-results .rf-form-row {
  gap: 10px;
  align-items: center;
}

.rf-form-results .rf-field {
  position: relative;
}

/* Labels conservés pour l'accessibilité, masqués visuellement (barre compacte) */
.rf-form-results .rf-label {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.rf-form-results .rf-autocomplete { min-width: 180px; }

.rf-form-results .rf-input,
.rf-form-results .rf-select {
  height: 42px;
  padding: 0 14px !important;
  font-size: 15px;
  border: 1.5px solid var(--pex-bordure) !important;
  border-radius: 8px !important;
  background: #f7f8f8 !important;
  color: var(--pex-encre) !important;
}

.rf-form-results .rf-input::placeholder {
  color: #8a9296;
}

.rf-form-results .rf-input:focus,
.rf-form-results .rf-select:focus {
  outline: none;
  border-color: var(--pex-teal) !important;
  background: #fff !important;
}

.rf-form-results .rf-field-rayon { flex: 0 0 100px; }

.rf-form-results .rf-button {
  height: 42px;
  align-self: center;
  padding: 0 22px !important;
  font-size: 15px;
  border-radius: 8px !important;
}

.rf-suggestion.rf-suggestion-actif {
  background: rgba(20,198,216,.15);
}

.rf-form-results .rf-field-cat-radio {
  margin-top: 10px;
}

.rf-erreur {
  display: inline-block;
  font-size: 13px !important;
  font-weight: 600;
  color: #fff !important;
  background: var(--pex-corail-fonce);
  padding: 6px 12px;
  border-radius: 6px;
  margin-top: 8px;
}

.rf-form-results .rf-radio-pill span {
  padding: 5px 12px;
  font-size: 13px;
}

  /*--------------------------------------------------------------
  4.3 LISTE DES RÉSULTATS — cartes (page résultats)
  --------------------------------------------------------------*/

.rf-resultats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.rf-resultat-carte {
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: var(--pex-r);
  overflow: hidden;
  text-decoration: none;
  display: block;
  transition: transform .15s, box-shadow .15s;
}

.rf-resultat-carte:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(11,117,120,.1);
}

.rf-resultat-vignette img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}

.rf-resultat-corps {
  flex: 1;
  padding: 14px 16px 18px;
}

.rf-resultat-cat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--pex-corail);
}

.rf-resultat-corps h2 {
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.3;
  color: var(--pex-encre);
  margin: 6px 0;
  text-decoration: none;
  height: 42px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.rf-resultat-distance {
  font-size: 12px;
  color: var(--pex-encre-doux);
}

@media (max-width: 900px) {
  .rf-resultats { grid-template-columns: repeat(2, 1fr); }
}

/*--------------------------------------------------------------
4.4  ANNUAIRE DES DÉPARTEMENTS (page /departements/)
--------------------------------------------------------------*/

.pex-dep-annuaire {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.pex-dep-annuaire-carte {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: var(--pex-r);
  padding: 16px 18px;
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s;
}

.pex-dep-annuaire-carte:hover {
  border-color: var(--pex-teal);
  box-shadow: var(--pex-ombre);
}

.pex-dep-annuaire-nom {
  font-family: Georgia, serif;
  font-size: 16px;
  color: var(--pex-encre);
}

.pex-dep-annuaire-compte {
  font-size: 12px;
  color: var(--pex-encre-doux);
}

@media (max-width: 900px) {
  .pex-dep-annuaire { grid-template-columns: repeat(2, 1fr); }
}

  /*--------------------------------------------------------------
4.2  SINGLE FICHE (single-fiches.php)
--------------------------------------------------------------*/

.fiche-page {
  background: #fbfcfc;
  padding: 40px 0 70px;
  color: var(--pex-encre);
}

.fiche-page .wrap {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}

@media (max-width: 600px) {
  .fiche-page .wrap {
    padding: 0 16px;
  }
  .fiche-page {
    padding: 24px 0 48px;
  }
}

.fiche-page .ariane {
  font-size: 13px;
  margin-bottom: 24px;
  color: var(--pex-encre-doux);
}

.fiche-page .ariane a {
  color: var(--pex-teal);
  text-decoration: none;
}

.fiche-page .ariane a:hover {
  text-decoration: underline;
}

/* En-tête : vignette carrée à gauche, identité à droite */
.fiche-entete {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 44px;
  align-items: start;
  margin-bottom: 32px;
}

@media (max-width: 900px) {
  .fiche-entete {
    grid-template-columns: 1fr;
    gap: 26px;
  }
}

.fiche-entete .vignette {
  aspect-ratio: 1 / 1;
  background: linear-gradient(140deg, #dfe8e9, #c9dadc);
  border-radius: 24px;
  overflow: hidden;
}

.fiche-entete .vignette img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.chips {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.chip {
  font-family: 'Bitter', serif;
  font-size: 13px;
  font-weight: 600;
  padding: 5px 16px;
  border-radius: 999px;
  text-decoration: none;
  display: inline-block;
}

.chip-cat {
  background: rgba(20, 198, 216, 0.15);
  color: var(--pex-cyan-fonce);
}

.chip-dep {
  background: rgba(112, 194, 177, 0.2);
  color: var(--pex-teal);
}

.fiche-entete h1 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.2;
  margin: 0 0 8px;
}

.fiche-entete .lieu {
  font-family: 'Bitter', serif;
  font-size: 16px;
  color: var(--pex-encre-doux);
  margin-bottom: 20px;
}

.fiche-entete .chapo {
  font-size: 17px;
  color: var(--pex-encre-doux);
  margin-bottom: 22px;
}

.promo-entete {
  background: rgba(245, 166, 35, 0.18);
  border: 2px solid var(--pex-ambre);
  border-radius: 18px;
  padding: 18px 22px;
  margin-bottom: 48px;
}

.promo-entete .aside-titre {
  color: var(--pex-corail-fonce);
}

/* Corps : contenu + colonne latérale */
.colonnes {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  align-items: start;
}

@media (max-width: 900px) {
  .colonnes {
    grid-template-columns: 1fr;
  }
}

.bloc {
  margin-bottom: 30px;
}

.bloc h2 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 23px;
  margin-bottom: 12px;
}

.bloc p {
  color: var(--pex-encre-doux);
  margin-bottom: 12px;
  line-height: 1.7;
}

.galerie {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 600px) {
  .galerie {
    grid-template-columns: repeat(2, 1fr);
  }
}

.galerie div {
  aspect-ratio: 1;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(140deg, #e4edee, #cfdbdc);
}

.galerie img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.aside-bloc {
  background: #fff;
  border: 2px solid var(--pex-bordure);
  border-radius: 20px;
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: var(--pex-ombre);
}

.aside-titre {
  font-family: 'Bitter', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--pex-teal);
  margin-bottom: 12px;
}

.contact-libre {
  font-size: 15px;
  color: var(--pex-encre-doux);
  line-height: 1.6;
}

.contact-libre strong {
  color: var(--pex-encre);
}

.contact-libre a {
  color: var(--pex-teal);
}

.btn {
  display: block;
  text-align: center;
  padding: 13px;
  background: var(--pex-cyan);
  color: #04333a;
  text-decoration: none;
  border-radius: 12px;
  font-family: 'Bitter', serif;
  font-size: 15px;
  font-weight: 700;
  margin-top: 14px;
}

.btn-sec {
  background: none;
  border: 2px solid var(--pex-teal);
  color: var(--pex-teal);
}

/*--------------------------------------------------------------
5.0  PAGE ACTUALITÉS (home.php)
--------------------------------------------------------------*/

/* Même page-cadre que l'archive des fiches (.pex-archive-wrap,
   .pex-archive-titre, .pex-archive-compte, .pex-archive-pagination) :
   pas de fond ni de bandeau différents. Seule la présentation des
   cartes change, ci-dessous. */

/* Cartes horizontales (image à gauche, texte à droite) plutôt que la
   grille de vignettes carrées des fiches : format éditorial, plus
   proche d'un article de blog qu'une fiche commerce. */
.pex-actus-liste {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 30px;
}
.pex-actus-item {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: var(--pex-r);
  overflow: hidden;
  text-decoration: none;
  transition: transform .15s, box-shadow .15s;
}
.pex-actus-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--pex-ombre);
}
.pex-actus-vignette {
  aspect-ratio: 1 / 1;
  align-self: start;
  background: linear-gradient(140deg, #dfe8e9, #c9dadc);
}
.pex-actus-vignette img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pex-actus-corps {
  padding: 12px 20px 0px 0;
}
.pex-actus-cat {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--pex-cyan-fonce);
  background: rgba(20, 198, 216, 0.12);
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.pex-actus-corps h2 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 19px;
  line-height: 1.3;
  color: var(--pex-encre);
  margin: 0 0 4px;
}
.pex-actus-date {
  font-size: 12px;
  color: var(--pex-encre-doux);
  margin-bottom: 4px;
}
.pex-actus-extrait {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--pex-encre-doux);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}

@media (max-width: 780px) {
  .pex-actus-liste {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .pex-actus-item {
    grid-template-columns: 1fr;
  }
  .pex-actus-corps {
    padding: 14px 16px 18px;
  }
}


/*--------------------------------------------------------------
5.1  SINGLE ARTICLE (single.php)
--------------------------------------------------------------*/

/* Pas d'aside sur un article : une seule colonne, pleine largeur
   (identique par ailleurs à .colonnes des fiches). */
.pex-article-colonnes {
  grid-template-columns: 1fr;
}

.pex-article-corps h2 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.3;
  margin: 32px 0 12px;
  color: var(--pex-encre);
}

.pex-article-corps h3 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 26px;
  line-height: 1.3;
  margin: 26px 0 10px;
  color: var(--pex-encre);
}

.pex-article-corps h4 {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.3;
  margin: 22px 0 8px;
  color: var(--pex-encre);
}

.pex-article-corps p {
  color: var(--pex-encre-doux);
  line-height: 1.7;
  margin-bottom: 16px;
}

.pex-article-corps ul,
.pex-article-corps ol {
  color: var(--pex-encre-doux);
  line-height: 1.7;
  margin: 0 0 16px 22px;
}

.pex-article-corps li {
  margin-bottom: 6px;
}

.pex-article-corps a {
  color: var(--pex-teal);
}

.pex-article-corps blockquote {
  border-left: 3px solid var(--pex-cyan);
  padding: 4px 20px;
  margin: 20px 0;
  font-style: italic;
  color: var(--pex-encre-doux);
}

.pex-article-corps img {
  max-width: 100%;
  height: auto;
  border-radius: var(--pex-r);
  margin: 20px 0;
}

.pex-article-corps strong {
  color: var(--pex-encre);
}

/* Maillage interne : navigation vers l'article précédent/suivant */
.pex-article-nav {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
  padding-top: 24px;
  border-top: 2px solid var(--pex-bordure);
}

.pex-article-nav a {
  font-family: 'Bitter', serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--pex-teal);
  text-decoration: none;
}

.pex-article-nav a:hover {
  text-decoration: underline;
}

.pex-article-nav-next {
  text-align: right;
}

@media (max-width: 500px) {
  .pex-article-nav {
    flex-direction: column;
    gap: 10px;
  }
  .pex-article-nav-next {
    text-align: left;
  }
}


/*--------------------------------------------------------------
6.0  CONTENUS ÉDITORIAUX (fiches + articles)
--------------------------------------------------------------*/

/* Déclinaison PEX du snippet commun "modifs alegra" : mêmes classes,
   couleurs et polices de la charte. Titres = color9 du Customizer
   Blocksy (#217b7d), liens = color1 (#366d67). */

/* tableau */
.reg-table {
  width: 100%;
  border-collapse: separate; /* collapse ignorerait les border-radius des th */
  border-spacing: 0;
  margin-top: 24px;
  font-size: 14px;
}
.reg-table th {
  text-align: left;
  padding: 12px 16px;
  background: var(--pex-teal);
  color: #fff;
  font-family: 'Bitter', serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.reg-table th:first-child { border-radius: 8px 0 0 0; }
.reg-table th:last-child { border-radius: 0 8px 0 0; }
.reg-table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--pex-bordure);
  color: var(--pex-encre);
  vertical-align: top;
}
.reg-table tr:nth-child(even) td { background: rgba(20, 198, 216, .05); }

/* faq */
.faq-section { padding: 64px 24px; }
.faq-container { max-width: 900px; margin: 0 auto; }
.faq-label {
  font-family: 'Bitter', serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pex-teal);
  margin-bottom: 10px;
}
.faq-title {
  font-family: 'Bitter', serif;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--theme-palette-color-9, #217b7d);
  margin: 0 0 16px;
}
.faq-intro {
  font-size: 16px;
  color: var(--pex-encre-doux);
  max-width: 620px;
  margin-bottom: 40px;
}
.faq-details {
  border: 1px solid var(--pex-bordure);
  border-radius: 12px;
  background: #fff;
  margin-bottom: 10px;
  overflow: hidden;
}
.faq-summary {
  font-family: 'Bitter', serif;
  font-size: 15px;
  font-weight: 600;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--pex-encre);
}
.faq-summary::-webkit-details-marker { display: none; }
.faq-summary::after {
  content: '+';
  font-size: 20px;
  color: var(--pex-cyan-fonce);
  font-weight: 400;
  flex-shrink: 0;
  margin-left: 12px;
}
.faq-details[open] .faq-summary::after { content: '−'; }
.faq-answer {
  padding: 0 20px 18px;
  font-size: 14px;
  color: var(--pex-encre-doux);
  line-height: 1.7;
}
.faq-answer a {
  color: var(--theme-palette-color-1, #366d67);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* bulles */
.bulles-section {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 2rem 0;
}
.bulle-container {
  flex: 1 1 140px;
  background: var(--pex-teal-nuit);
  border-radius: var(--pex-r);
  padding: 1.2rem;
  text-align: center;
}
.bulle-title {
  font-family: 'Bitter', serif;
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--pex-ambre);
}
.bulle-text {
  font-size: .8rem;
  color: #fff;
  opacity: .85;
  margin-top: .2rem;
}

/* grille */
.grille-section {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.2rem;
  margin-top: 1.8rem;
}
.grille-container {
  background: #fff;
  border: 1px solid var(--pex-bordure);
  border-radius: var(--pex-r);
  padding: 1.4rem 1.2rem;
  box-shadow: var(--pex-ombre);
}
.grille-title {
  font-family: 'Bitter', serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pex-encre);
  margin-bottom: .3rem;
}
.grille-text {
  font-size: .9rem;
  color: var(--pex-encre-doux);
}

/* alert */
.alert-container {
  background: rgba(239, 107, 77, .07);
  border: 1px solid rgba(239, 107, 77, .4);
  border-radius: 8px;
  padding: 1rem 1.3rem;
  margin: 1.5rem 0;
  font-size: .93rem;
}
.alert-container strong { color: var(--pex-corail-fonce); }

/* notice */
.notice-container {
  background: linear-gradient(135deg, rgba(20, 198, 216, .08), rgba(112, 194, 177, .16));
  border-radius: var(--pex-r);
  padding: 1.8rem 2rem;
  margin: 2rem 0;
}
.notice-title {
  font-family: 'Bitter', serif;
  font-weight: 700;
  color: var(--theme-palette-color-9, #217b7d);
  margin-bottom: .6rem;
}

@media (max-width: 600px) {
  .faq-section { padding: 40px 0; }
  .notice-container { padding: 1.4rem 1.2rem; }
}


/*--------------------------------------------------------------
7.0  PAGE CONTACT (page-contact.php + Fluent Forms)
--------------------------------------------------------------*/

/* Même cadre que les autres pages (.pex-archive-wrap / .pex-archive-titre).
   Tout l'habillage Fluent Forms est préfixé par .pex-contact-form : il ne
   touche que ce formulaire-là, pas d'éventuels autres formulaires du site. */

.pex-contact-intro {
  max-width: 760px;
  margin: 0 0 34px;
}
.pex-contact-intro p {
  font-size: 17px;
  color: var(--pex-encre-doux);
  margin: 0 0 12px;
}

.pex-contact-colonnes {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 36px;
  align-items: start;
}
@media (max-width: 900px) {
  .pex-contact-colonnes { grid-template-columns: 1fr; }
}

/* carte du formulaire */
.pex-contact-form {
  background: #fff;
  border: 2px solid var(--pex-bordure);
  border-radius: 20px;
  padding: 30px 32px;
  box-shadow: var(--pex-ombre);
}
@media (max-width: 600px) {
  .pex-contact-form { padding: 22px 18px; }
}
.pex-contact-form h2 {
  font-family: 'Bitter', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--theme-palette-color-9, #217b7d);
  margin: 0 0 4px;
}
.pex-contact-sous-titre {
  font-size: 14px;
  color: var(--pex-encre-doux);
  margin: 0 0 22px;
}

/* cartes latérales (même principe que .aside-bloc de la fiche) */
.pex-contact-aside .aside-bloc {
  background: #fff;
  border: 2px solid var(--pex-bordure);
  border-radius: 20px;
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: var(--pex-ombre);
}
.pex-contact-aside .aside-titre {
  font-family: 'Bitter', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--pex-teal);
  margin-bottom: 10px;
}
.pex-contact-aside p {
  font-size: 15px;
  color: var(--pex-encre-doux);
  margin: 0 0 12px;
}
.pex-contact-atouts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 2px;
  padding: 0;
  list-style: none;
}
.pex-contact-atouts li {
  font-family: 'Bitter', serif;
  font-size: 13px;
  font-weight: 600;
  padding: 4px 13px;
  border-radius: 999px;
  background: rgba(20, 198, 216, 0.15);
  color: var(--pex-cyan-fonce);
  margin: 0;
}
.pex-contact-coord {
  font-size: 15px;
  font-style: normal;
  color: var(--pex-encre-doux);
  line-height: 1.6;
}
.pex-contact-coord strong { color: var(--pex-encre); }
a.pex-contact-tel {
  display: block;
  text-align: center;
  margin-top: 14px;
  padding: 12px;
  border: 2px solid var(--pex-teal);
  border-radius: 12px;
  color: var(--pex-teal);
  font-family: 'Bitter', serif;
  font-weight: 700;
  text-decoration: none;
}
a.pex-contact-tel:hover { background: rgba(11, 117, 120, .06); }

/* --- Fluent Forms : libellés et champs --- */
.pex-contact-form .ff-el-input--label label {
  font-family: 'Bitter', serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--pex-encre);
  margin-bottom: 6px;
}
.pex-contact-form .ff-el-is-required.asterisk-right label::after {
  color: var(--pex-corail-fonce);
}
.pex-contact-form .fluentform .ff-el-form-control {
  font-size: 15px;
  color: var(--pex-encre);
  background: #fbfcfc;
  border: 1.5px solid var(--pex-bordure);
  border-radius: 10px;
  padding: 11px 14px;
  box-shadow: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pex-contact-form .fluentform textarea.ff-el-form-control {
  min-height: 150px;
  resize: vertical;
}
.pex-contact-form .fluentform .ff-el-form-control::placeholder { color: #8aa1a3; }
.pex-contact-form .fluentform .ff-el-form-control:focus {
  outline: none;
  background: #fff;
  border-color: var(--pex-cyan);
  box-shadow: 0 0 0 4px rgba(20, 198, 216, .18);
}
.pex-contact-form .ff-el-help-message {
  font-size: 12.5px;
  font-style: normal;
  color: var(--pex-encre-doux);
  margin-top: 4px;
}

/* --- "Vous êtes" : boutons radio en pastilles --- */
.pex-contact-form .ff-el-form-check-inline {
  display: inline-block;
  position: relative;
  margin: 0 8px 8px 0;
}
.pex-contact-form .ff-el-form-check-inline label {
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.pex-contact-form .ff-el-form-check-inline input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.pex-contact-form .ff-el-form-check-inline span {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1.5px solid var(--pex-bordure);
  background: #fff;
  font-size: 14px;
  color: var(--pex-encre);
  transition: border-color .15s, background .15s, color .15s;
}
.pex-contact-form .ff-el-form-check-inline input:checked + span {
  border-color: var(--pex-teal);
  background: var(--pex-teal);
  color: #fff;
}
.pex-contact-form .ff-el-form-check-inline input:focus-visible + span {
  box-shadow: 0 0 0 4px rgba(20, 198, 216, .25);
}

/* --- consentement RGPD --- */
.pex-contact-form .ff-el-tc label,
.pex-contact-form .ff_tc_label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 400;
  color: var(--pex-encre-doux);
}
.pex-contact-form .fluentform input[type="checkbox"] {
  accent-color: var(--pex-teal);
  width: 16px;
  height: 16px;
  margin-top: 3px;
  flex-shrink: 0;
}
.pex-contact-form .ff-el-tc a { color: var(--theme-palette-color-1, #366d67); }

/* --- bouton d'envoi : même traitement que le bouton Contact du header.
   !important nécessaire : Fluent Forms pose la couleur du bouton en
   style inline depuis les réglages du formulaire. --- */
.pex-contact-form .fluentform .ff-btn-submit {
  font-family: 'Bitter', serif;
  font-size: 16px;
  font-weight: 700;
  color: #fff !important;
  background: linear-gradient(45deg, #0b7578 15%, #3b9490 50%, #68bbad 88%) !important;
  border: 0 !important;
  padding: 13px 34px;
  border-radius: 999px !important;
  cursor: pointer;
  opacity: 1;
  transition: border-radius .22s cubic-bezier(.4, 0, .2, 1);
}
.pex-contact-form .fluentform .ff-btn-submit:hover,
.pex-contact-form .fluentform .ff-btn-submit:focus-visible {
  border-radius: 999px 999px 999px 6px !important;
  opacity: 1;
  outline: none;
}
@media (prefers-reduced-motion: reduce) {
  .pex-contact-form .fluentform .ff-btn-submit { transition: none; }
}

/* --- erreurs de saisie --- */
.pex-contact-form .ff-el-is-error .ff-el-form-control {
  border-color: var(--pex-corail-fonce);
  background: #fff;
}
.pex-contact-form .ff-el-is-error .text-danger {
  font-size: 12.5px;
  color: var(--pex-corail-fonce);
  margin-top: 4px;
}

/* --- confirmation d'envoi --- */
.pex-contact-form .ff-message-success {
  border: 1.5px solid var(--pex-teal-clair);
  background: rgba(112, 194, 177, .14);
  border-radius: var(--pex-r);
  padding: 22px 24px;
  color: var(--pex-encre);
  box-shadow: none;
}
.pex-contact-form .ff-message-success strong {
  display: block;
  font-family: 'Bitter', serif;
  font-size: 17px;
  color: var(--pex-teal);
  margin-bottom: 4px;
}


/*--------------------------------------------------------------
8.0  FOOTER (builder Blocksy + widgets HTML personnalisés)
--------------------------------------------------------------*/

/* Structure : rangée du haut = Footer Widget Area 1 (logo + réseaux),
   rangée du milieu = Widget Areas 2 à 4 (3 colonnes),
   rangée du bas = Copyright + menu footer.
   La mise en colonnes et l'empilement mobile restent gérés par le builder ;
   ce chapitre ne règle que les couleurs et le contenu des widgets. */

/* --- fonds des rangées (!important : Blocksy pose les siens depuis le
   Customizer, avec une spécificité plus forte) --- */
.ct-footer,
.ct-footer [data-row*="top"],
.ct-footer [data-row*="middle"] {
  background-color: var(--pex-teal-nuit) !important;
}
.ct-footer [data-row*="bottom"] {
  background-color: #053f41 !important;
}
.ct-footer [data-row*="middle"] {
  border-top: 1px solid rgba(255, 255, 255, .12);
}

/* --- textes et liens --- */
.ct-footer {
  color: #c9e4df;
}
.ct-footer a {
  color: #fff;
  text-decoration: none;
}
.ct-footer a:hover,
.ct-footer a:focus-visible {
  color: #93f1ce;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ct-footer p {
  font-size: 15px;
  margin: 0 0 14px;
}

/* --- rangée du haut : logo + réseaux, centrés --- */
.pex-footer-identite {
  text-align: center;
}
a.pex-footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
a.pex-footer-logo:hover,
a.pex-footer-logo:focus-visible {
  text-decoration: none;
}
.pex-footer-logo img {
  width: 160px;
  height: 160px;
  object-fit: contain;
  flex-shrink: 0;
}
.pex-footer-nom {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.05;
  color: #fff;
  text-align: left;
}
.pex-footer-nom span {
  display: block;
  font-family: inherit;
  font-weight: 400;
  font-size: 12.5px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #a9cfc8;
  margin-top: 4px;
}

/* réseaux sociaux : carrés aux couleurs officielles, retournement 3D au survol */
.pex-footer-reseaux {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.pex-footer-reseaux li {
  margin: 0;
}
.ct-footer .pex-footer-reseaux a {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: #fff;
  transform: perspective(300px) rotateY(0deg) scale(1);
  transition: transform .6s cubic-bezier(.4, 0, .2, 1), box-shadow .3s;
}
.ct-footer .pex-footer-reseaux a[aria-label="Facebook"] {
  background: #0866ff;
}
.ct-footer .pex-footer-reseaux a[aria-label="Instagram"] {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}
.ct-footer .pex-footer-reseaux a:hover,
.ct-footer .pex-footer-reseaux a:focus-visible {
  color: #fff;
  text-decoration: none;
  transform: perspective(300px) rotateY(360deg) scale(1.12);
  box-shadow: 0 8px 18px rgba(0, 0, 0, .3);
}
.pex-footer-reseaux i {
  font-size: 19px;
  line-height: 1;
}
.pex-footer-reseaux svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
}

/* --- rangée du milieu : titres de colonnes --- */
.pex-footer-titre {
  position: relative;
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 17px;
  color: #fff;
  margin: 0 0 16px;
  padding-bottom: 10px;
}
.pex-footer-titre::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34px;
  height: 3px;
  border-radius: 3px;
  background: #93f1ce;
}

/* colonne 1 : actualités */
.pex-footer-lien-fleche {
  font-family: 'Bitter', serif;
  font-weight: 700;
}

/* colonne 2 : coordonnées */
.pex-footer-coord {
  font-style: normal;
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 10px;
}
.pex-footer-tel {
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 17px;
}

/* colonne 3 : Google */
.ct-footer a.pex-footer-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 2px 0 12px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, .5);
  font-family: 'Bitter', serif;
  font-weight: 700;
  font-size: 15px;
  transition: background .15s, border-color .15s, color .15s;
}
.pex-footer-btn svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
  flex-shrink: 0;
}
.ct-footer a.pex-footer-btn:hover,
.ct-footer a.pex-footer-btn:focus-visible {
  background: #93f1ce;
  border-color: #93f1ce;
  color: var(--pex-teal-nuit);
  text-decoration: none;
}
.pex-footer-avis {
  display: block;
  width: fit-content;
  font-size: 14px;
}

/* --- rangée du bas : copyright + menu légal --- */
.ct-footer [data-row*="bottom"],
.ct-footer [data-row*="bottom"] .ct-footer-copyright {
  color: #a9cfc8;
  font-size: 13.5px;
}
.ct-footer [data-row*="bottom"] .ct-footer-copyright p {
  margin: 0;
  font-size: 13.5px;
}
.ct-footer [data-row*="bottom"] .ct-menu-link {
  color: #fff;
  font-size: 13.5px;
}
.ct-footer [data-row*="bottom"] .ct-menu-link:hover,
.ct-footer [data-row*="bottom"] .ct-menu-link:focus-visible {
  color: #93f1ce;
}

/* --- animations désactivées si le visiteur l'a demandé --- */
@media (prefers-reduced-motion: reduce) {
  .ct-footer .pex-footer-reseaux a,
  .ct-footer a.pex-footer-btn {
    transition: none;
  }
  .ct-footer .pex-footer-reseaux a:hover,
  .ct-footer .pex-footer-reseaux a:focus-visible {
    transform: none;
  }
}