.elementor-kit-142{--e-global-color-primary:#b7995d;--e-global-color-secondary:#ffffff;--e-global-color-text:#364153;--e-global-color-accent:#6b5f3a;--e-global-color-dark:#101828;--e-global-color-darker:#0a1016;--e-global-color-muted:#6a7282;--e-global-color-border:#e5e7eb;--e-global-color-cardbg:#f8f7f3;--e-global-color-c840721:#00000000;--e-global-typography-primary-font-family:"Work Sans";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Urbanist";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Urbanist";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Work Sans";--e-global-typography-accent-font-weight:600;background-color:var( --e-global-color-secondary );color:var( --e-global-color-text );font-family:"Urbanist", Sans-serif;font-size:17px;font-weight:400;line-height:28px;}.elementor-kit-142 button,.elementor-kit-142 input[type="button"],.elementor-kit-142 input[type="submit"],.elementor-kit-142 .elementor-button{background-color:var( --e-global-color-primary );font-family:"Urbanist", Sans-serif;font-size:16px;font-weight:600;line-height:24px;letter-spacing:0.3px;color:var( --e-global-color-secondary );box-shadow:0px 4px 6px 0px rgba(0,0,0,0.1);border-radius:2px 2px 2px 2px;padding:14px 28px 14px 28px;}.elementor-kit-142 button:hover,.elementor-kit-142 button:focus,.elementor-kit-142 input[type="button"]:hover,.elementor-kit-142 input[type="button"]:focus,.elementor-kit-142 input[type="submit"]:hover,.elementor-kit-142 input[type="submit"]:focus,.elementor-kit-142 .elementor-button:hover,.elementor-kit-142 .elementor-button:focus{background-color:var( --e-global-color-accent );}.elementor-kit-142 e-page-transition{background-color:#FFBC7D;}.elementor-kit-142 a{color:var( --e-global-color-primary );}.elementor-kit-142 a:hover{color:var( --e-global-color-accent );}.elementor-kit-142 h1{color:var( --e-global-color-dark );font-family:"Work Sans", Sans-serif;font-size:60px;font-weight:700;line-height:75px;letter-spacing:-1.5px;}.elementor-kit-142 h2{color:var( --e-global-color-dark );font-family:"Work Sans", Sans-serif;font-size:40px;font-weight:700;line-height:48px;letter-spacing:-1px;}.elementor-kit-142 h3{color:var( --e-global-color-dark );font-family:"Work Sans", Sans-serif;font-size:30px;font-weight:600;line-height:36px;letter-spacing:-0.5px;}.elementor-kit-142 h4{color:var( --e-global-color-dark );font-family:"Work Sans", Sans-serif;font-size:22px;font-weight:600;line-height:28px;}.elementor-kit-142 h5{color:var( --e-global-color-dark );font-family:"Work Sans", Sans-serif;font-size:18px;font-weight:600;line-height:24px;}.elementor-kit-142 h6{color:var( --e-global-color-primary );font-family:"Work Sans", Sans-serif;font-size:16px;font-weight:600;line-height:22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-142 h1{font-size:48px;line-height:58px;}.elementor-kit-142 h2{font-size:32px;line-height:40px;}.elementor-kit-142 h3{font-size:26px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-142 h1{font-size:36px;line-height:44px;}.elementor-kit-142 h2{font-size:28px;line-height:36px;}.elementor-kit-142 h3{font-size:22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;500;600;700;800&family=Urbanist:wght@300;400;500;600;700&display=swap');

/* ═══════════════════════════════════════════════════════════════════
   COUVRELLES — DESIGN SYSTEM CSS
   ═══════════════════════════════════════════════════════════════════ */

:root {
  --c-primary:   #b7995d;
  --c-secondary: #ffffff;
  --c-text:      #364153;
  --c-accent:    #6b5f3a;
  --c-dark:      #101828;
  --c-darker:    #0a1016;
  --c-muted:     #6a7282;
  --c-navtext:   #4a5565;
  --c-border:    #e5e7eb;
  --c-cardbg:    #f8f7f3;
  --c-graybg:    #f9fafb;
}

/* ── Global smoothing ──────────────────────────────────────────────── */
body, html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ═══════════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════════ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
}
/* ⚠️ Force la typographie du nav-menu au cas où Elementor ne l'applique pas
   via menu_typography_* (selon version). */
.header-nav .elementor-nav-menu li a,
.header-nav .elementor-nav-menu--main a.elementor-item {
  font-family: 'Urbanist', sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 24px !important;
  color: var(--c-navtext) !important;
  letter-spacing: 0 !important;
  padding: 8px 0 !important;
  transition: color 0.2s ease;
}
.header-nav .elementor-nav-menu li a:hover,
.header-nav .elementor-nav-menu--main a.elementor-item:hover,
.header-nav .elementor-nav-menu--main a.elementor-item.elementor-item-active {
  color: var(--c-primary) !important;
}
.header-site-title a {
  text-decoration: none !important;
}

/* Bouton Contact du header : pas de grosse ombre */
.header-contact-btn .elementor-button {
  font-weight: 400 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   HEROES (2 patterns)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero PUBLIC : centré + overlay plat rgba(0,0,0,0.3) ─────────── */
.hero-public {
  position: relative;
  overflow: hidden;
}
.hero-public .hero-title {
  color: #ffffff;
}
.hero-public .hero-subtitle p {
  color: rgba(255,255,255,0.9);
}

/* ── Hero INTERNAL : aligné à gauche + gradient 3-stops ─────────── */
.hero-internal {
  position: relative;
  overflow: hidden;
}
/* 3-stop gradient noir bottom → transparent top (match exact Figma) */
.hero-internal::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.8) 0%,
    rgba(0, 0, 0, 0.4) 50%,
    rgba(0, 0, 0, 0) 100%
  );
  z-index: 1;
  pointer-events: none;
}
.hero-internal > * {
  position: relative;
  z-index: 2;
}
.hero-internal .hero-title {
  color: #ffffff !important;
  text-align: left !important;
}
.hero-internal .hero-subtitle p {
  color: rgba(255, 255, 255, 0.95);
  text-align: left !important;
  margin: 0;
}
.hero-internal-inner {
  width: 100%;
}

/* Étiquette (badge catégorie en haut du hero) —
   style exact Figma : Urbanist SemiBold 14px uppercase 0.35 tracking,
   padding 4px 12px, fond doré, PAS de border-radius */
.hero-etiquette {
  display: inline-block;
  padding: 4px 12px;
  background: var(--c-primary);
  color: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0.35px;
  text-transform: uppercase;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.hero-etiquette a {
  color: inherit !important;
  text-decoration: none !important;
}

/* ── Hero HOME (gros cinematic avec CTA) ───────────────────────── */
.hero-home {
  position: relative;
  overflow: hidden;
}
.hero-home .elementor-heading-title,
.hero-home p { color: #ffffff; }

/* Contraintes de largeur des inner-containers des heros (max-width CSS
   au lieu de content_width:boxed qui est interdit sur les inner containers) */
.hero-internal-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
.hero-public-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
.hero-home-inner {
  max-width: 896px;
  width: 100%;
  margin: 0 auto;
}

/* ═══════════════════════════════════════════════════════════════════
   PROPOSITION CARDS — 292×297 Figma Component 1
   Utilisées sur Adultes, Jeunes pros, Étudiants, Lycéens
   ═══════════════════════════════════════════════════════════════════ */
.prop-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
.prop-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}
/* Sur la card, tous les textes/boutons passent au-dessus de l'overlay */
.prop-card > .e-con-inner > * {
  position: relative;
  z-index: 2;
}
.prop-card-title .elementor-heading-title {
  color: #ffffff !important;
  text-align: left !important;
}
.prop-card-desc p {
  color: rgba(255, 255, 255, 0.92) !important;
  margin: 0;
}
.prop-card-btn .elementor-button {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Layout grid : 5 cards centrées avec un gap de 26px, wrap sur mobile */
.prop-grid {
  flex-wrap: wrap !important;
  justify-content: center !important;
}
@media (max-width: 1024px) {
  .prop-grid {
    flex-wrap: wrap !important;
  }
  .prop-card {
    flex-basis: calc(33.333% - 20px) !important;
    min-width: 260px;
  }
}
@media (max-width: 640px) {
  .prop-card {
    flex-basis: 100% !important;
    width: 100% !important;
  }
}

/* ── Card public (image + overlay + titre + bouton centré) ────────── */
.is-public-card {
  position: relative;
  overflow: hidden;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
  transition: transform .3s ease;
}
.is-public-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 1;
  transition: background .3s ease;
}
.is-public-card:hover { transform: translateY(-4px); }
.is-public-card:hover::before { background: rgba(0,0,0,0.45); }
.is-public-card > * { position: relative; z-index: 2; }

/* ── Card événement (archive) ─────────────────────────────────────── */
.is-event-card {
  background: var(--c-secondary);
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -4px rgba(0,0,0,0.05);
  transition: transform .3s ease, box-shadow .3s ease;
  overflow: hidden;
}
.is-event-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.12), 0 10px 10px -5px rgba(0,0,0,0.06);
}

/* ── Badge statut événement ───────────────────────────────────────── */
.event-badge {
  display: inline-block;
  padding: 4px 12px;
  font-family: 'Urbanist', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: var(--c-primary);
  color: var(--c-secondary);
  border-radius: 4px;
}
.event-badge--open { background: #2d8659; }
.event-badge--soon { background: var(--c-primary); }
.event-badge--full { background: #b84040; }

/* ── Étiquette méta événement (type, public) ──────────────────────── */
.event-label {
  display: inline-block;
  padding: 6px 16px;
  font-family: 'Urbanist', sans-serif;
  font-size: 14px;
  font-weight: 500;
  background: rgba(183,153,93,0.2);
  color: var(--c-primary);
  border: 1px solid var(--c-primary);
  border-radius: 4px;
}

/* ═══════════════════════════════════════════════════════════════════
   TIMELINE PATRIMOINE
   Design : ligne verticale continue centrale, cards alternées, dots
            gold (20px solid + halo 14px couleur fond pour couper la ligne).
   Responsive : < 1025px, la ligne passe à gauche, tout le contenu à droite.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Section timeline : fond #f9fafb (gris très clair, important pour
   que les H2 et les dots cachent la ligne via leur bg assorti) ───── */
.timeline-section {
  background: #f9fafb;
}

/* ── Wrapper qui contient TOUTES les sections et porte la ligne ── */
.timeline-wrapper {
  position: relative;
  z-index: 0;
}
.timeline-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: rgba(183, 153, 93, 0.28);
  transform: translateX(-50%);
  z-index: 0;
  pointer-events: none;
}

/* ── Titre de section : fond #f9fafb qui cut la ligne au passage ── */
.tl-section-title-wrap {
  position: relative;
  z-index: 2;
}
.tl-section-h2 {
  position: relative;
  z-index: 2;
}
.tl-section-h2 .elementor-heading-title {
  display: inline-block;
  padding: 0 32px;
  background: #f9fafb;
}

/* ── Container items d'une section ─────────────────────────────── */
.tl-section-items {
  position: relative;
  z-index: 1;
}

/* ── Un item (row : card + image) ──────────────────────────────── */
.timeline-item {
  position: relative;
  z-index: 1;
}

/* ── Le dot central : 20px gold solide + "halo" 14px #f9fafb
   (grâce à border-width 14px même couleur que le fond, on coupe
   proprement la ligne tout en donnant l'aspect d'un point isolé) */
.timeline-item::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 20px;
  background: var(--c-primary);
  border: 14px solid #f9fafb;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-sizing: content-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
  z-index: 3;
  pointer-events: none;
}

/* ── Card (inner col) ──────────────────────────────────────────── */
.tl-card {
  position: relative !important;
  overflow: visible !important;
  z-index: 2;
}

/* ── Alignement texte dans la card selon le côté ──────────────── */
.tl-card--left .elementor-widget-heading .elementor-heading-title,
.tl-card--left .elementor-widget-text-editor .elementor-widget-container,
.tl-card--left .tl-link {
  text-align: right;
}
.tl-card--right .elementor-widget-heading .elementor-heading-title,
.tl-card--right .elementor-widget-text-editor .elementor-widget-container,
.tl-card--right .tl-link {
  text-align: left;
}

/* ── Badge époque ─────────────────────────────────────────────── */
.tl-badge {
  position: absolute;
  top: -14px;
  display: inline-block;
  padding: 6px 16px;
  background: var(--c-primary);
  color: #ffffff;
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 14px;
  line-height: 20px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
  z-index: 4;
  white-space: nowrap;
}
.tl-card--left .tl-badge {
  right: 24px;
}
.tl-card--right .tl-badge {
  left: 24px;
}

/* ── Lien "Voir plus ⌄" ──────────────────────────────────────── */
.tl-link {
  margin: 0;
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 24px;
}
.tl-link a {
  color: var(--c-primary) !important;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s ease, gap 0.2s ease;
}
.tl-link a:hover {
  color: var(--c-accent) !important;
  gap: 10px;
}
.tl-link i {
  font-size: 14px;
  transition: transform 0.2s ease;
}
.tl-link a:hover i {
  transform: translateY(2px);
}

/* ── Image container : radius + overflow hidden ─────────────── */
.tl-image {
  overflow: hidden !important;
  border-radius: 10px !important;
}
.tl-image .tl-image-img,
.tl-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 10px;
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — ligne à GAUCHE, tout le contenu à DROITE
   Breakpoint Elementor par défaut : tablette ≤ 1024px
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  /* Ligne verticale repositionnée à 20px du bord gauche */
  .timeline-wrapper::before {
    left: 20px;
    transform: none;
  }

  /* H2 sections alignées à gauche, avec retrait pour dégager la ligne */
  .tl-section-title-wrap {
    text-align: left;
    padding-left: 56px !important;
  }
  .tl-section-h2 .elementor-heading-title {
    padding: 0 16px 0 0;
    text-align: left;
  }

  /* Chaque item : la card et l'image passent en colonne, alignées à droite
     de la ligne grâce au padding-left */
  .timeline-item {
    padding-left: 56px !important;
  }
  .timeline-item > .e-con-inner {
    gap: 24px;
  }

  /* Tous les textes reviennent en gauche (lecture naturelle) */
  .tl-card--left .elementor-widget-heading .elementor-heading-title,
  .tl-card--left .elementor-widget-text-editor .elementor-widget-container,
  .tl-card--left .tl-link,
  .tl-card--right .elementor-widget-heading .elementor-heading-title,
  .tl-card--right .elementor-widget-text-editor .elementor-widget-container,
  .tl-card--right .tl-link {
    text-align: left !important;
  }

  /* Badge : toujours à gauche en haut de la card */
  .tl-card--left .tl-badge,
  .tl-card--right .tl-badge {
    left: 24px !important;
    right: auto !important;
  }

  /* Le dot aligné sur le haut de la card (y=40) plutôt que centré */
  .timeline-item::after {
    left: 20px !important;
    top: 48px !important;
    border-width: 10px;
    width: 16px;
    height: 16px;
  }

  /* Image plus courte en mobile */
  .tl-image {
    min-height: 240px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE SERRÉ (< 540px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 540px) {
  .timeline-wrapper::before { left: 16px; }
  .tl-section-title-wrap { padding-left: 44px !important; }
  .timeline-item { padding-left: 44px !important; }
  .timeline-item::after {
    left: 16px !important;
    border-width: 8px;
    width: 14px;
    height: 14px;
  }
  .tl-card { padding: 24px 20px !important; }
  .tl-badge {
    font-size: 13px;
    padding: 5px 12px;
    top: -12px;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   GALERIE (section sous la timeline)
   ═══════════════════════════════════════════════════════════════════ */
.gallery-accent {
  width: 96px;
  height: 4px;
  background: var(--c-primary);
  margin: 0 auto;
}
.gallery-item {
  overflow: hidden;
  transition: transform 0.3s ease;
}
.gallery-item:hover {
  transform: translateY(-2px);
}
.gallery-img,
.gallery-item img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  display: block;
}

/* ── Galerie photographique (carrelage 2×2) ───────────────────────── */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 767px) {
  .gallery-grid { grid-template-columns: 1fr; }
}
.gallery-item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  transition: transform .3s ease;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item:hover { transform: scale(1.02); }

/* ── Sidebar event (détails pratiques) ───────────────────────────── */
.event-sidebar {
  background: var(--c-secondary);
  border: 1px solid var(--c-border);
  padding: 32px;
}
.event-sidebar h3 { margin-bottom: 24px; }
.event-detail {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
  align-items: flex-start;
}
.event-detail:last-child { margin-bottom: 0; }
.event-detail svg,
.event-detail i {
  color: var(--c-primary);
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 4px;
}
.event-detail-label {
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 16px;
  color: var(--c-dark);
  display: block;
  margin-bottom: 4px;
}
.event-detail-value {
  font-family: 'Urbanist', sans-serif;
  font-weight: 400;
  font-size: 15px;
  color: var(--c-text);
  line-height: 24px;
}

/* ── Liste "Ce qui vous attend" (coche dans rond doré) ───────────── */
.ce-qui-vous-attend {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ce-qui-vous-attend li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
  font-family: 'Urbanist', sans-serif;
  font-size: 17px;
  line-height: 27px;
  color: var(--c-text);
}
.ce-qui-vous-attend li::before {
  content: '✓';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  background: rgba(183,153,93,0.15);
  color: var(--c-primary);
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
  margin-top: 0;
}

/* ── Programme indicatif (étape avec pastille) ────────────────────── */
.programme-indicatif {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.programme-indicatif li {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.programme-indicatif .prog-dot {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-primary);
  color: var(--c-secondary);
  border-radius: 50%;
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 15px;
}
.programme-indicatif .prog-body {
  background: var(--c-cardbg);
  padding: 20px 24px;
  border-left: 3px solid var(--c-primary);
  flex-grow: 1;
}
.programme-indicatif .prog-body h4 {
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 18px;
  color: var(--c-dark);
  margin: 0 0 8px;
}
.programme-indicatif .prog-body p {
  font-family: 'Urbanist', sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: var(--c-text);
  margin: 0;
}

/* ── Header responsive (burger mobile) ─────────────────────────────── */
@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown {
    background: rgba(255,255,255,0.97);
  }
}

/* ── Boutons — héritage commun ────────────────────────────────────── */
.elementor-button {
  transition: background .3s ease, color .3s ease, transform .15s ease;
  letter-spacing: 0.3px;
}
.elementor-button:hover { transform: translateY(-1px); }

/* ── Witness testimonial card ─────────────────────────────────────── */
.is-testimonial-card {
  background: var(--c-secondary);
  padding: 32px;
  border: 1px solid var(--c-border);
  min-height: 363px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* ── Utility: aspect ratios ───────────────────────────────────────── */
.ratio-16-9 { aspect-ratio: 16/9; }
.ratio-4-3 { aspect-ratio: 4/3; }
.ratio-1-1 { aspect-ratio: 1/1; }

/* ── Footer ───────────────────────────────────────────────────────── */
.is-footer {
  background: var(--c-darker);
  color: var(--c-secondary);
}
.is-footer a { color: var(--c-secondary); opacity: 0.85; }
.is-footer a:hover { color: var(--c-primary); opacity: 1; }
.is-footer h4 { color: var(--c-secondary); }
.is-footer .elementor-icon-list-text { color: var(--c-secondary); opacity: 0.85; }
.footer-inner {
  max-width: 1680px;
  width: 100%;
  margin: 0 auto;
}

/* ── Mobile optimisations ──────────────────────────────────────────── */
@media (max-width: 767px) {
  .is-hero { min-height: 450px; }
  .is-public-card { min-height: 280px; }
}

/* ── Page modèle : étiquette ACF + wrapper hero ───────────────────── */
.page-etiquette {
  display: inline-block;
  padding: 6px 16px;
  font-family: 'Urbanist', sans-serif;
  font-size: 14px;
  font-weight: 600;
  background: rgba(183,153,93,0.9);
  color: var(--c-secondary);
  letter-spacing: 0.3px;
  margin-bottom: 8px;
}
.page-hero-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}

/* ── Proposition card (page adultes/jeunes pros/étudiants/lycéens) ─ */
.proposition-card {
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}
.proposition-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.1);
}
.proposition-image-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.proposition-image {
  width: 100%;
  height: 100%;
}
.proposition-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.proposition-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 6px 14px;
  background: var(--c-primary);
  color: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.3px;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.proposition-link {
  margin: 0;
  font-family: 'Urbanist', sans-serif;
  font-size: 15px;
  font-weight: 600;
}
.proposition-link a {
  color: var(--c-primary);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap .2s ease, color .2s ease;
}
.proposition-link a:hover {
  color: var(--c-accent);
  gap: 10px;
}

/* ── Team portraits (page à propos) ───────────────────────────────── */
.team-portrait {
  width: 200px;
  height: 200px;
  margin: 0 auto;
}
.team-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* ═══════════════════════════════════════════════════════════════════
   ÉVÉNEMENT UNIQUE — page produit WooCommerce
   ═══════════════════════════════════════════════════════════════════ */

/* Hero événement */
.event-etiquette {
  display: inline-block;
  padding: 8px 18px;
  background: rgba(183,153,93,0.95);
  color: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.event-etiquette a { color: var(--c-secondary) !important; text-decoration: none; }

.event-hero-subtitle {
  color: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 28px;
  max-width: 640px;
  margin: 0;
}

/* À propos : description WooCommerce */
.event-description p {
  font-family: 'Urbanist', sans-serif;
  font-size: 17px;
  line-height: 28px;
  color: var(--c-text);
  margin-bottom: 16px;
}
.event-description h3,
.event-description h4 {
  margin-top: 24px;
  margin-bottom: 12px;
}

/* Galerie duo (2 images) */
.event-gallery-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
@media (max-width: 767px) {
  .event-gallery-duo { grid-template-columns: 1fr; gap: 16px; }
}
.event-gallery-duo-item img {
  width: 100%;
  height: 256px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

/* Sidebar : icônes des détails */
.event-detail svg, .event-detail i {
  color: var(--c-primary);
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 4px;
  width: 24px;
  text-align: center;
}
.event-detail-note {
  margin-top: 10px;
  margin-bottom: 0;
  font-size: 13px;
  color: var(--c-muted);
  line-height: 18px;
  font-style: italic;
}

/* CTA principale */
.event-cta-wrap {
  border-top: 1px solid var(--c-border);
  padding-top: 24px;
  text-align: center;
}
.event-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 16px 32px;
  background: var(--c-primary);
  color: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-weight: 600;
  font-size: 17px;
  text-decoration: none;
  transition: background .2s ease, transform .15s ease;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.event-cta:hover { background: var(--c-accent); color: var(--c-secondary); transform: translateY(-1px); }
.event-cta-note {
  margin: 12px 0 0;
  font-size: 13px;
  color: var(--c-muted);
  text-align: center;
}

/* Sticky sidebar sur desktop */
@media (min-width: 1025px) {
  .event-sidebar.is-sticky {
    position: sticky;
    top: 100px;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   ARCHIVE CATÉGORIE — barre filtres + grille + liste compacte
   ═══════════════════════════════════════════════════════════════════ */

.event-filter-bar {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.event-search-form {
  position: relative;
  flex: 1;
  max-width: 420px;
}
.event-search-form i {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--c-muted);
  font-size: 16px;
}
.event-search-form input {
  width: 100%;
  padding: 14px 20px 14px 48px;
  border: 1px solid var(--c-border);
  background: var(--c-secondary);
  font-family: 'Urbanist', sans-serif;
  font-size: 15px;
  color: var(--c-text);
  outline: none;
  transition: border-color .2s ease;
}
.event-search-form input:focus {
  border-color: var(--c-primary);
}

.event-date-filter {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 24px;
  background: var(--c-secondary);
  border: 1px solid var(--c-border);
  color: var(--c-text);
  font-family: 'Urbanist', sans-serif;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: all .2s ease;
}
.event-date-filter:hover,
.event-date-filter.is-open {
  border-color: var(--c-primary);
  color: var(--c-primary);
}
.event-date-filter i { color: var(--c-primary); }

/* ═══════════════════════════════════════════════════════════════════
   LOOP ITEM — cards événement + article
   ═══════════════════════════════════════════════════════════════════ */

/* Card événement (horizontal : image gauche + contenu droite) */
.event-loop-card {
  min-height: 240px;
  overflow: hidden;
}
.event-loop-image-wrap {
  position: relative;
  flex-shrink: 0;
}
.event-loop-image-wrap .event-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
}
.event-loop-image-wrap .event-loop-img,
.event-loop-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 240px;
}
.event-loop-date {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Urbanist', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--c-muted);
}
.event-loop-date i { color: var(--c-primary); font-size: 14px; }

.event-loop-title a {
  color: var(--c-dark);
  text-decoration: none;
}
.event-loop-title a:hover { color: var(--c-primary); }

.event-loop-link {
  margin: 0;
  font-family: 'Urbanist', sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.event-loop-link a {
  color: var(--c-primary);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap .2s ease;
}
.event-loop-link a:hover { gap: 10px; color: var(--c-accent); }

@media (max-width: 767px) {
  .event-loop-card .e-con-inner,
  .event-loop-card { flex-direction: column !important; }
  .event-loop-image-wrap { width: 100% !important; }
  .event-loop-image-wrap img { aspect-ratio: 16/9; }
}

/* Card article (vertical : image haut + contenu bas) */
.article-loop-card .article-loop-img img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}
.article-loop-category {
  font-family: 'Urbanist', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-primary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.article-loop-title a { color: var(--c-dark); text-decoration: none; }
.article-loop-title a:hover { color: var(--c-primary); }
.article-loop-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 16px;
  border-top: 1px solid var(--c-border);
  margin-top: 8px;
  font-family: 'Urbanist', sans-serif;
  font-size: 13px;
}
.article-date { color: var(--c-muted); }
.article-date i { color: var(--c-primary); margin-right: 4px; font-size: 12px; }
.article-loop-link {
  color: var(--c-primary);
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.article-loop-link:hover { color: var(--c-accent); gap: 10px; }

/* ═══════════════════════════════════════════════════════════════════
   PAGE 404
   ═══════════════════════════════════════════════════════════════════ */
.is-404 {
  min-height: 70vh;
}
.error-404-number {
  font-family: 'Work Sans', sans-serif;
  font-weight: 800;
  font-size: 180px;
  line-height: 1;
  color: var(--c-primary);
  text-align: center;
  letter-spacing: -4px;
  margin-bottom: 8px;
  opacity: 0.9;
}
@media (max-width: 767px) {
  .error-404-number { font-size: 120px; }
}/* End custom CSS */