.container {
  max-width: 1340px; /* ou 960px selon ton design */
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

/* Impairs = blanc */
.block-region.region-content-home > .block:nth-child(even),
.block-region.region-content      > .block:nth-child(even) {
  background-color: #ffffff;
}

/* Pairs = turquoise */
.block-region.region-content-home > .block:nth-child(odd),
.block-region.region-content      > .block:nth-child(odd) {
  background-color: #c6eded;
}


.region-content > .block {
/*  padding: 60px 15px;
  #padding: 0px 0px; */
  padding : 0px 15px;
}


.vision-block {
  background-image: url("/themes/contrib/tarapro/images/fond-bessancourt.png");
  background-size: cover;
  background-position: center;
  padding: 60px 20px;
  color: white;
  position: relative;
  border-radius: 12px;
  margin-bottom: 30px;
}

.vision-block .overlay {
  background-color: rgba(0, 0, 0, 0.5); /* voile sombre */
  padding: 30px;
  border-radius: 10px;
}

.overlay-glass {
  background: rgba(127, 207, 205, 0.7); /* turquoise avec opacité */
  backdrop-filter: blur(3px);
  color: #000; /* texte foncé sur fond clair */
  padding: 30px;
  border-radius: 12px;
  max-width: 850px;
  margin: 0 auto;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

.equipier-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 20px;
  padding: 20px;
}
/*
.equipier-card {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
*/
.equipier-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  padding: 20px;
  text-align: center;
}
.equipier-photo img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 15px;
  box-shadow: 0 0 0 3px #fff;
}

.equipier-nom {
  font-weight: bold;
  margin-bottom: 5px;
}

.equipier-fonction,
.equipier-categorie {
  font-size: 0.9em;
  color: #555;
  margin-bottom: 8px;
}

.equipier-description {
  font-size: 0.9em;
  color: #333;
  margin: 10px 0;
}

.equipier-priorites {
  margin: 10px 0;
}

.equipier-priorites .badge {
  display: inline-block;
  background: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 12px;
  padding: 5px 10px;
  font-size: 0.8em;
  margin: 2px;
}

.equipier-contact .btn {
  margin-top: 10px;
}

.bouton-futurs-membres {
  display: inline-block;
  background-color: #007c91;
  color: white;
  padding: 12px 24px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease;
}

.bouton-futurs-membres:hover {
  background-color: #005f6b;
  text-decoration: none;
}

.agenda-campagne {
  padding: 1em;
  background-color: #f9f9f9;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  font-family: sans-serif;
}

.agenda-campagne h2 {
  color: #2c3e50;
  margin-bottom: 0.5em;
}

.agenda-campagne table.agenda-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1em;
}

.agenda-campagne table.agenda-table th,
.agenda-campagne table.agenda-table td {
  border: 1px solid #ccc;
  padding: 0.75em;
  text-align: left;
}

.agenda-campagne table.agenda-table th {
  background-color: #34495e;
  color: white;
}

.agenda-campagne table.agenda-table tr:nth-child(even) {
  background-color: #ecf0f1;
}

.soutien-carte {
  background: white;
  padding: 30px;
  border-radius: 20px;
  max-width: 500px;
  margin: auto;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  text-align: center;
  font-family: 'Segoe UI', sans-serif;
}

.soutien-carte h2 {
  color: #1e4a72;
  margin-bottom: 10px;
}

.soutien-carte p {
  color: #333;
  margin-bottom: 20px;
}

.soutien-carte .montants {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 20px;
}

.soutien-carte .montants button {
  flex: 1;
  padding: 12px;
  background-color: #1e4a72;
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 16px;
  cursor: pointer;
}

.soutien-carte .montants button:hover {
  background-color: #163553;
}

.soutien-carte .montant-libre input {
  width: 100%;
  padding: 12px;
  border: 2px solid #ccc;
  border-radius: 10px;
  font-size: 16px;
  margin-bottom: 20px;
}

.soutien-carte .don-button {
  width: 100%;
  padding: 14px;
  background-color: #1abc9c;
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 18px;
  cursor: pointer;
}

.soutien-carte .don-button:hover {
  background-color: #16a085;
}

.soutien-carte .mentions {
  margin-top: 20px;
  font-size: 13px;
  color: #777;
}

.texte-presentation {
  font-size: 16px;
  line-height: 1.6;
  color: #333;
  padding: 20px;
}

.texte-presentation ul {
  margin: 10px 0 20px 20px;
  padding-left: 0;
}

.texte-presentation li {
  margin-bottom: 8px;
}

.paiement-lydia {
  background-color: #f0f8ff;
  padding: 20px;
  border-radius: 16px;
  text-align: center;
  max-width: 500px;
  margin: auto;
}

.paiement-lydia h3 {
  color: #1e4a72;
}

.paiement-lydia p {
  font-size: 16px;
  margin-bottom: 20px;
}

.lydia-button {
  display: inline-block;
  background-color: #1abc9c;
  color: white;
  padding: 14px 30px;
  font-size: 18px;
  border-radius: 50px;
  text-decoration: none;
  transition: background 0.3s ease;
}

.lydia-button:hover {
  background-color: #16a085;
}

.qr-lydia img {
  margin-top: 10px;
  border: 1px solid #ccc;
  border-radius: 10px;
}

.mentions-legales {
  background-color: #f9f9f9;
 /* border-left: 6px solid #1e4a72; */
  padding: 20px;
  border-radius: 12px;
  margin-top: 30px;
  font-size: 15px;
  color: #333;
}

.mentions-legales h3 {
  margin-top: 0;
  color: #1e4a72;
}

.mentions-legales ul {
  list-style: none;
  padding-left: 0;
}

.mentions-legales li {
  margin-bottom: 10px;
  padding-left: 1.2em;
  position: relative;
}

.mentions-legales li::before {
  content: "✔️";
  position: absolute;
  left: 0;
}

#breadcrumb.block {
  background-color: #f9f6f3;
  padding: 1rem 1.5rem;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.ed-bloc {
  background-color: #ffffff;
  border: 1px solid #ddd;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  padding: 2rem;
  margin-bottom: 2rem;
}

.ed-bloc h2 {
  background-color: #343a40;
  color: white;
  padding: 0.75rem 1rem;
  border-radius: 8px 8px 0 0;
  margin-top: -2rem;
  margin-left: -2rem;
  margin-right: -2rem;
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
}

.ed-bloc h2::before {
  content: "🧑‍💼";
  margin-right: 0.75rem;
}

#bloc-2 h2::before {
  content: "🎓";
}


#bloc-1 h2::before { content: "🧑‍💼"; margin-right: 0.75rem; }
#bloc-2 h2::before { content: "🎓"; margin-right: 0.75rem; }
#bloc-3 h2::before { content: "💼"; margin-right: 0.75rem; }
#bloc-4 h2::before { content: "💡"; margin-right: 0.75rem; }
#bloc-5 h2::before { content: "🗳"; margin-right: 0.75rem; }

.bloc-soutien {
  max-width: 1300px;
  margin: auto;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

.banniere {
  background-image: url('/sites/default/files/images/votre-soutien.jpg');
  background-size: cover;
  background-position: center;
  height: 250px;
}

.titre-separateur {
  background-color: #f97316; /* orange APB */
  padding: 15px 20px;
  text-align: center;
}

.titre-separateur h2 {
  margin: 0;
  font-size: 2em;
  color: white;
  text-transform: uppercase;
}

.contenu-texte {
  background-color: #1e6b68;
  color: white;
  padding: 30px;
}

.orange {
  color: #f97316;
}


/* Variables d’espacement : ajuste à ton goût */
:root{
  --block-pad-x: 1rem;     /* 16px */
  --block-pad-y: 0.75rem;  /* 12px */
  --block-gap:   0.75rem;  /* espace vertical entre éléments */
}

/* Padding pour tout le contenu des blocs */
.block .block-content:not(.no-pad){
  padding: var(--block-pad-y) var(--block-pad-x);
}

/* Un peu d’air entre les éléments dans un bloc (paragraphes, titres, etc.) */
.block .block-content > * + *{
  margin-top: var(--block-gap);
}

/* Images alignées : éviter qu’elles collent au texte ou au bord */
.block .block-content img.align-left{
  margin-left: 0.25rem;
  margin-right: 1rem;
}
.block .block-content img.align-right{
  margin-right: 0.25rem;
  margin-left: 1rem;
}

/* (Option) décaler légèrement tout le bloc par rapport au bord de la page
   -> si tu veux aussi déplacer le fond/bordure du bloc
*/
/*.block:not(.no-pad){
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}*/

/* Responsive : un peu moins de padding sur petit écran */
@media (max-width: 640px){
  :root{ --block-pad-x: .75rem; --block-pad-y: .5rem; --block-gap: .5rem; }
}


/* --- Menu principal : 1 ligne + espacement propre --- */
@media (min-width: 992px){ /* seulement desktop/tablette large */
  /* le <ul> du menu principal */
  .menu--main .menu,
  .region-primary-menu .menu {
    display: flex;           /* s’assure que c’est flex */
    flex-wrap: nowrap;       /* pas de retour à la ligne */
    align-items: center;
    gap: 1.25rem;            /* espace entre les items (ajuste) */
    margin-left: -16px;
  }

  /* chaque lien de menu */
  .menu--main .menu a,
  .region-primary-menu .menu a {
    white-space: nowrap;     /* garde "Notre équipe" / "Elie DOMERGUE" sur 1 ligne */
    line-height: 1.2;
    padding: .25rem 0;       /* un peu d’air vertical */
  }

  /* si le thème n’utilise pas gap, on double avec une marge sur <li> */
  .menu--main .menu > li,
  .region-primary-menu .menu > li {
    margin-inline: .5rem;    /* retire ou ajuste si double-espacement */
  }

  /* option : ajuste l’espace/typo de façon fluide pour éviter l’overflow */
  .menu--main .menu,
  .region-primary-menu .menu {
    gap: clamp(.6rem, 1vw, 1.25rem);
  }
  .menu--main .menu a,
  .region-primary-menu .menu a {
    font-size: clamp(.95rem, 1vw, 1.05rem);
  }
}

/* Mobile : on laisse le burger gérer, pas d’obligation 1 ligne */
@media (max-width: 991.98px){
  .menu--main .menu a,
  .region-primary-menu .menu a { white-space: normal; }
}

/* --- taille du logo (desktop) --- */
:root{
  --logo-height: 80px;   /* ajuste la valeur (ex: 72, 80, 96…) */
}

@media (min-width: 992px){
  /* sélecteurs courants Drupal/tarapro : on couvre large */
  .site-branding__logo img,
  .navbar-brand img,
  .branding img,
  header .logo img {
    height: var(--logo-height);
    width: auto;               /* garde les proportions */
  }

  /* laisse de la place au menu quand le logo grandit */
  .region-primary-menu { flex: 1 1 auto; }
  .site-branding, .navbar-brand, .branding, header .logo { flex: 0 0 auto; margin-right: 1rem; }
}

/* --- mobile : logo un peu plus petit pour éviter l’overflow --- */
@media (max-width: 991.98px){
  .site-branding__logo img,
  .navbar-brand img,
  .branding img,
  header .logo img {
    height: 56px;   /* ajuste si besoin */
  }
}


.venue-info-block {
  background-color: #f9f9f9;
  border-left: 5px solid #007BFF;
  padding: 20px;
  margin: 20px 0;
  border-radius: 8px;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
}

.venue-info-block h2 {
  color: #0056b3;
  margin-top: 0;
}

.venue-info-block a {
  color: #0056b3;
  text-decoration: none;
}

.venue-info-block a:hover {
  text-decoration: underline;
}

.transport-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 20px;
}

.transport-card {
  background-color: #ffffff;
  border: 1px solid #ddd;
/*  border-left: 5px solid #007BFF; */
  border-radius: 8px;
  padding: 15px;
  width: calc(50% - 10px); /* 2 cartes par ligne */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.transport-card h3 {
  margin-top: 0;
  color: #007BFF;
}

.venue-info-block img {
  border: 1px solid #ccc;
  border-radius: 5px;
  margin-top: 10px;
  max-width: 100%;
  height: auto;
}

/* Responsive pour mobile */
@media (max-width: 768px) {
  .transport-card {
    width: 100%;
  }
}
.meeting-rules {
  background-color: #f9f9f9;
  padding: 25px;
  margin: 30px auto;
  border-radius: 10px;
  max-width: 1300px;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.7;
  color: #333;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.meeting-rules h2 {
  color: #0056b3;
  font-size: 1.8em;
  margin-top: 0;
}

.meeting-rules h3 {
  color: #007BFF;
  margin-top: 25px;
  font-size: 1.2em;
}

.meeting-rules ul {
  padding-left: 20px;
  margin-top: 10px;
}

.meeting-rules ul li {
  margin-bottom: 8px;
}

.meeting-rules p {
  margin-top: 10px;
}
.apb-hero {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
  padding: 48px 24px;
  text-align: center;
  max-width: 1200px;
  margin: 32px auto 0;
}
.apb-hero__inner {
  max-width: 900px;
  margin: 0 auto;
}
.apb-hero__title {
  margin: 0 0 0.25rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: clamp(28px, 4vw, 40px);
  color: #0f172a; /* slate-900 */
}
.apb-hero__kicker {
  margin: 0 0 0.5rem;
  font-weight: 700;
  color: #0f172a;
}
.apb-hero__lead {
  color: #475569; /* slate-600 */
  line-height: 1.7;
  max-width: 800px;
  margin: 0 auto;
}
.apb-band {
  height: 72px;
  background: #cfeff0; /* cyan clair */
  margin-top: -24px;
}

#block-tarapro-sallepaulbonneville .block__content,
#block-tarapro-reglementinterieurreunionpublique .block__content{
  background-color:#f7f7f7; /* ta couleur */
  padding:1rem; border-radius:.5rem;
}
/* 1) Si la région slider est vide, on la masque complètement */
.region-slider:empty {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 2) (Ceinture & bretelles) Si ton <section class="slider"> existe encore sans contenu, masque-le */
section.slider:has(.region-slider:empty) {
  display: none !important;
}

/* 3) Corrige toute largeur/hauteur foireuse héritée du thème */
section.slider,
.region-slider {
  width: 100% !important;   /* surtout pas 100vh */
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}


#footer {
  background: #c6eded;
  padding: 2rem 1rem;
}

/* Harmoniser les couleurs pour fond clair */
.footer-about,
.footer-links,
.footer-contact {
  color: #000; /* texte noir */
}

.footer-about a,
.footer-links a,
.footer-contact a {
  color: #003333; /* liens légèrement foncés */
}

.footer-about a:hover,
.footer-links a:hover,
.footer-contact a:hover {
  color: #000;
}

/* Donne le fond au conteneur footer et neutralise le fond du wrapper thème */
footer#footer {
  background: #c6eded;
  padding: 2rem 1rem;
}

/* Le wrapper du thème "tarapro" a souvent un fond : on l'annule */
footer#footer .footer {
  background: transparent !important;
}

/* Par sécurité, on neutralise aussi les sections internes si elles forcent un fond */
footer#footer .footer-top,
footer#footer .footer-blocks,
footer#footer .footer-bottom-middle,
footer#footer .block-region {
  background: transparent !important;
}

/* Fond pour tout le bandeau haut */
.header-top {
  background-color: #c6eded important!;
  padding: 0.5rem 0;
}

/* Texte à l'intérieur */
.header-top p {
  color: #000;
  letter-spacing: .2rem;
  margin: 0;
}

/* Icônes réseaux sociaux */
.header-top .social-icons a {
  color: #000;
}
.header-top .social-icons a:hover {
  color: #003333;
}

/* charger ce fichier APRÈS les CSS Tarapro */
#header, .header, .header-top {
  background: #c6eded !important;
  background-color: #c6eded !important; /* utile si un reset remet un bg transparent */
}

header.header {
  background-color: #ffffff !important;
}

/* Centre la modale verticalement & horizontalement, et gère les petits écrans */
.soon-modal {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 4vh 16px !important; /* un peu d’air autour, utile en mobile */
}

.soon-modal__dialog {
  margin: 0 !important;                /* annule le 10vh */
  width: min(520px, 92vw) !important;  /* évite le débordement horizontal */
  max-height: 85vh !important;         /* évite le débordement vertical */
  overflow: auto !important;           /* scroll interne si contenu long */
}


/* ---- Modal "Bientôt disponible" : décalage vers le bas ---- */
:root{
  --modal-offset: 22vh;          /* ⇦ ajuste cette valeur (ex: 26vh, 30vh…) */
}

.soon-modal{
  display: flex !important;
  align-items: flex-start !important;  /* on part du haut… */
  justify-content: center !important;  /* …centré horizontalement */
  padding: var(--modal-offset) 16px 4vh !important; /* …et on pousse vers le bas */
}

.soon-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 0;                    /* overlay derrière le dialog */
}

.soon-modal__dialog{
  position: relative;
  z-index: 1;                    /* au-dessus de l’overlay */
  margin: 0 !important;          /* annule margin: 10vh auto */
  width: min(520px, 92vw) !important;
  max-height: calc(100vh - (var(--modal-offset) + 6vh)) !important;
  overflow: auto !important;     /* scroll interne si contenu long */
  border-radius: 12px;
}

/* Un peu moins d’offset sur mobile si besoin */
@media (max-width: 640px){
  :root{ --modal-offset: 16vh; }
}

/* Couleurs “par défaut” (toutes pages) */
.equipier-grid .equipier-card:nth-child(odd)  { background: var(--bg-odd, #f7f7f7); }
.equipier-grid .equipier-card:nth-child(even) { background: var(--bg-even, #ffffff); }

/* Inversion UNIQUEMENT sur /NE grâce à la classe html.path-ne */
html.path-ne .equipier-grid .equipier-card:nth-child(odd)  { background: var(--bg-even, #ffffff); }
html.path-ne .equipier-grid .equipier-card:nth-child(even) { background: var(--bg-odd,  #f7f7f7); }

/* (Optionnel) si un autre sélecteur est plus spécifique, on peut ajouter un léger boost */
html.path-ne body .equipier-grid .equipier-card:nth-child(odd),
html.path-ne body .equipier-grid .equipier-card:nth-child(even) { /* rien, juste pour la spécificité */ }

/* ========= Alternance par BLOC dans la région de contenu ========= */
/* Couleurs par défaut (toutes pages) */
.region-content > .block:nth-child(odd)  { background: var(--bg-odd, #f7f7f7); }
.region-content > .block:nth-child(even) { background: var(--bg-even, #ffffff); }

/* Inversion UNIQUEMENT pour l'URL /NE grâce à la classe html.path-ne */
html.path-ne .region-content > .block:nth-child(odd)  { background: var(--bg-even, #ffffff); }
html.path-ne .region-content > .block:nth-child(even) { background: var(--bg-odd,  #f7f7f7); }

/* Optionnel : un peu d’air dans chaque bloc alterné */
.region-content > .block { padding: 1.5rem 0; }

/* ========= (Option) si tu veux striper TOUS les blocs de TOUTES les régions du layout ========= */
/*
.block-region > .block:nth-child(odd)  { background: var(--bg-odd, #f7f7f7); }
.block-region > .block:nth-child(even) { background: var(--bg-even, #ffffff); }

html.path-ne .block-region > .block:nth-child(odd)  { background: var(--bg-even, #ffffff); }
html.path-ne .block-region > .block:nth-child(even) { background: var(--bg-odd,  #f7f7f7); }
*/
.video-teaser {
  text-align: center;
}

.video-teaser__thumbnail img {
  border-radius: 6px;
}

.video-teaser__actions {
  margin-top: 10px;
}

/* --- Page node vidéo (style APB) --- */
.apb-video-article{
  --brand:#0ea5a6;
  --brand-2:#e11d48;
  --ink:#111827;
  --muted:#6b7280;
  --bg:#ffffff;
  --card:#f5f7f9;
  --ring:rgba(14,165,166,.2);
  color:var(--ink);
}

.apb-video-wrap{
  max-width: 980px;
  margin: 0 auto;
  background: var(--bg);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  overflow: hidden;
  padding: clamp(16px, 3vw, 28px);
}

.apb-video-kicker{
  font-size:.9rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--brand);
  margin: 0 0 6px;
}

.apb-video-title{
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  line-height: 1.15;
  margin: 0 0 14px;
}

.apb-video-player{
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--ring);
  background: linear-gradient(0deg,#fff,#f8fbfb);
}

.apb-video-player iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.apb-video-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin: 16px 0 8px;
}

.apb-video-btn{
  appearance:none;
  border:0;
  border-radius:12px;
  padding:12px 16px;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:transform .04s ease, box-shadow .2s ease;
}

.apb-video-btn.primary{
  background:var(--brand);
  color:#fff;
  box-shadow:0 6px 14px rgba(14,165,166,.28);
}

.apb-video-btn.primary:hover{
  transform:translateY(-1px);
}

.apb-video-btn.ghost{
  background:#fff;
  color:var(--ink);
  border:1px solid #e5e7eb;
}

.apb-video-body{
  margin-top: 10px;
  color: var(--muted);
  max-width: 75ch;
}

/* ===============================
   Teasers vidos  Titres rduits
   =============================== */

.path-mes-videos .apb-video-title {
  font-size: 0.95rem;          /* plus petit */
  line-height: 1.25;
  margin: 10px 0 8px;
  font-weight: 600;
}

/* Limite  2 lignes avec ellipsis */
.path-mes-videos .apb-video-title a {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}

/* Encore plus compact sur mobile */
@media (max-width: 576px) {
  .path-mes-videos .apb-video-title {
    font-size: 0.9rem;
  }
}

/* ===============================
   Bouton "Regarder la vidéo"
   =============================== */

.path-mes-videos .apb-video-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(135deg, #0ea5a6, #14b8a6);
  box-shadow: 0 6px 14px rgba(14,165,166,.35);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.path-mes-videos .apb-video-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(14,165,166,.45);
  filter: brightness(1.05);
}

/* Icône play */
.path-mes-videos .apb-video-btn-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  font-size: 0.75rem;
  line-height: 1;
}

/* Mobile : bouton full width */
@media (max-width: 576px) {
  .path-mes-videos .apb-video-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Bouton vidéo – version propre sans bug UTF-8 */
.path-mes-videos .apb-video-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px 10px 44px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(135deg, #0ea5a6, #14b8a6);
  box-shadow: 0 6px 14px rgba(14,165,166,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}

/* Icône play en CSS (zéro problème d’encodage) */
.path-mes-videos .apb-video-btn::before {
  content: "";
  position: absolute;
  left: 14px;
  width: 20px;
  height: 20px;
  background: rgba(255,255,255,.25);
  border-radius: 50%;
  clip-path: polygon(35% 25%, 35% 75%, 75% 50%);
}

/* Hover */
.path-mes-videos .apb-video-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(14,165,166,.45);
}

/* ===============================
   Titres vidéos – 2 lignes max
   =============================== */

.path-mes-videos .apb-video-title {
  font-size: 0.95rem;
  line-height: 1.3;
  font-weight: 600;
  margin: 10px 0 10px;
  min-height: calc(1.3em * 2); /* réserve la place pour 2 lignes */
}

.path-mes-videos .apb-video-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* 👈 EXACTEMENT 2 lignes */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
}





/* ===============================
   Cartes vidéos – contour discret
   =============================== */

.path-mes-videos .apb-video-card {
  border: 1px solid rgba(14, 165, 166, 0.25); /* teal léger */
  border-radius: 16px;
  padding: 14px;
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}

/* Hover subtil */
.path-mes-videos .apb-video-card:hover {
  border-color: rgba(14, 165, 166, 0.6);
  box-shadow: 0 6px 18px rgba(14, 165, 166, 0.15);
  transform: translateY(-2px);
}

/* Intro page Mes vidéos */
.path-mes-videos .apb-videos-intro {
  max-width: 900px;
  margin: 0 auto 24px;
}

.path-mes-videos .apb-videos-intro h1 {
  font-size: 1.6rem;
  margin-bottom: 8px;
}

.path-mes-videos .apb-videos-intro p {
  font-size: 1rem;
  color: #4b5563;
  max-width: 70ch;
}

/* Hero /mes-videos dans le style APB articles */
.path-mes-videos .apb-videos-hero{
  --brand:#0ea5a6;
  --brand-2:#e11d48;
  --ink:#111827;
  --muted:#6b7280;
  --bg:#ffffff;
  --card:#f5f7f9;
  --ring:rgba(14,165,166,.2);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
  color:var(--ink);
  background:var(--bg);
  border:1px solid #e5e7eb;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  overflow:hidden;
  margin: 0 auto 22px;
}

.path-mes-videos .apb-videos-wrap{
  padding: clamp(14px, 2.4vw, 22px);
}

.path-mes-videos .apb-kicker{
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--brand);
  margin: 0 0 6px;
}

.path-mes-videos .apb-title{
  font-size: clamp(1.3rem, 2.2vw, 1.8rem);
  line-height: 1.15;
  margin: .2rem 0 .55rem;
}

.path-mes-videos .apb-lead{
  font-size: 1rem;
  color: var(--muted);
  max-width: 80ch;
  margin: 0;
}

.path-mes-videos .apb-cta{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin: 14px 0 0;
}

.path-mes-videos .apb-btn{
  appearance:none;
  border:0;
  border-radius:12px;
  padding:10px 14px;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:transform .04s ease, box-shadow .2s ease;
}

.path-mes-videos .apb-btn.primary{
  background:var(--brand);
  color:#fff;
  box-shadow:0 6px 14px rgba(14,165,166,.28);
}

.path-mes-videos .apb-btn.primary:hover{
  transform:translateY(-1px);
}

.path-mes-videos .apb-btn.ghost{
  background:#fff;
  color:var(--ink);
  border:1px solid #e5e7eb;
}

/* Header /mes-videos dans le style article APB */
.path-mes-videos .apb-article.apb-videos {
  margin: 0 auto 22px;
}

.path-mes-videos .apb-article.apb-videos .apb-wrap {
  padding: clamp(16px, 3vw, 24px);
}

/* Option : icônes plus “bulle” comme tes articles */
.path-mes-videos .apb-article.apb-videos .apb-info .icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: #0ea5a6;
  color: #fff;
  font-weight: 800;
}

/* Date dans les teasers vidéo */
.path-mes-videos .apb-video-date{
  font-size: 0.8rem;
  color: #6b7280;
  margin: 8px 0 4px;
  font-weight: 600;
}

/* Date + heure dans les teasers vidéo */
.path-mes-videos .apb-video-date{
  font-size: 0.8rem;
  color: #6b7280;
  margin: 8px 0 4px;
  font-weight: 600;
}

/* Page node vidéo */
.apb-video-node{
  margin: 0 auto;
  max-width: 1100px;
}

.apb-video-kicker{
  font-size:.9rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#0ea5a6;
  margin:0 0 8px;
}

.apb-video-node-title{
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  margin: 0 0 14px;
}

/* Player responsive 16:9 */
.apb-video-player{
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(14,165,166,.25);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  background: #000;
}

.apb-video-player iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Liens */
.apb-video-node-links{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin: 14px 0 0;
}

.apb-video-body{
  margin-top: 18px;
}
