/**
 * Theme Name:  TTF Thème Enfant
 * Description: Thème enfant de TwentyTwentyFive (TTF). Il s'appuie sur TwentyTwentyFive comme thème parent : corrections de sécurité et mises à jour du thème parent s'appliquent automatiquement dès que vous mettez à jour TwentyTwentyFive depuis Apparence › Thèmes. Toutes les personnalisations de ce thème enfant sont préservées et ne sont jamais écrasées lors de ces mises à jour.
 * Template:    twentytwentyfive
 * Version:     1.0.0
 * License:     GNU General Public License v2 or later
 * Text Domain: child-twentytwentyfive
 */

/* =============================================================
   VARIABLES GLOBALES
   ============================================================= */
:root {
  --msyver-teal:        #1a9e90;
  --msyver-teal-dark:   #0d6e63;
  --msyver-teal-light:  #b8ece6;
  --msyver-section-bg:  #eeeeee;
}

/* =============================================================
   HEADER – filet teal en bas
   ============================================================= */
.wp-block-template-part[data-slug="header"] > *:first-child,
header.wp-block-template-part {
  border-bottom: 4px solid var(--msyver-teal);
}

/* =============================================================
   HERO GALLERY – 4 photos d'églises côte à côte
   Images carrées, affichées EN ENTIER (pas de crop)
   ============================================================= */
.msyver-hero-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  width: 100%;
  margin-bottom: 0;
}

.msyver-hero-gallery__item {
  display: block;
  position: relative;
  overflow: hidden;
  text-decoration: none !important;
  background: #f0ede8;
}

/* Pas de zoom, pas de rognage — image entière visible */
.msyver-hero-gallery__item img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: #f0ede8;
  transition: opacity 0.25s ease;
}

.msyver-hero-gallery__item:hover img {
  opacity: 0.88;
}

.msyver-hero-gallery__item figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.50);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 500;
  text-align: center;
  padding: 5px 8px;
}

/* figcaption avec 2 lignes : nom + hint toujours visible */
.msyver-hero-gallery__item figcaption {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 3px !important;
  padding: 7px 10px 9px !important;
}

.msyver-hero-gallery__name {
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}

.msyver-hero-gallery__hint {
  font-size: 0.9rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

@media (max-width: 640px) {
  .msyver-hero-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =============================================================
   LAYOUT HOMEPAGE – split gauche (cartes) / droite (calendrier)
   ============================================================= */
.msyver-home-split {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  background-color: var(--msyver-section-bg);
}

.msyver-home-split__cards {
  flex: 0 0 62%;
  max-width: 62%;
}

.msyver-home-split__calendar {
  flex: 0 0 38%;
  max-width: 38%;
  min-width: 0;           /* flex child : ne pas grossir hors du 38% */
  overflow: hidden;       /* empeche le debordement sur les 8 boutons */
  background: #f4f4f4;
  border-left: 4px solid #333;
  display: flex;
  align-items: stretch;
}

/* Widget calendrier */
.msyver-home-calendar {
  width: 100%;
  display: flex;
  flex-direction: column;
  padding: 20px 16px 16px;
  box-sizing: border-box;
}

.msyver-home-calendar__title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  text-align: center;
  margin: 0 0 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.msyver-home-calendar__iframe {
  display: block;
  width: 100%;
  flex: 1;
  min-height: 320px;
  border: none;
  border-radius: 6px;
  background: #fff;
}

.msyver-home-calendar__link {
  display: block;
  text-align: center;
  margin-top: 10px;
  font-size: 0.78rem;
  color: var(--msyver-teal-dark) !important;
  text-decoration: underline !important;
}

.msyver-home-calendar__link:hover {
  color: #1a1a1a !important;
}

@media (max-width: 860px) {
  .msyver-home-split {
    flex-direction: column;
  }
  .msyver-home-split__cards,
  .msyver-home-split__calendar {
    flex: 1 1 auto;
    max-width: 100%;
  }
  .msyver-home-calendar__iframe {
    min-height: 280px;
  }
}

/* =============================================================
   SECTION CARTES – grille 4×2 sur fond gris
   ============================================================= */
.msyver-cards-section {
  background-color: var(--msyver-section-bg);
  padding: 40px 20px;
  width: 100%;
  box-sizing: border-box;
}

.msyver-cards-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-bottom: 14px;
}

.msyver-cards-row:last-child {
  margin-bottom: 0;
}

/* Carte de base – la carte entière est un lien <a> */
.msyver-card {
  flex: 1 1 0;
  min-width: 0;
  border-width: 2px;
  border-style: solid;
  border-radius: 12px;
  padding: 16px 10px;
  text-align: center;
  box-sizing: border-box;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.msyver-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  transform: translateY(-2px);
  text-decoration: none;
}

/* Icône ronde avec image */
.msyver-card__icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  border: 2px solid rgba(0,0,0,0.1);
  background: rgba(255,255,255,0.5);
  flex-shrink: 0;
}

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

.msyver-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 8px;
  line-height: 1.3;
  color: inherit;
}

.msyver-card__desc {
  font-size: 0.88rem;
  margin: 0;
  line-height: 1.4;
  opacity: 0.8;
  color: inherit;
}

/* Variantes de couleur */
.msyver-card--yellow { background: #fef6c8; border-color: #c8a800; color: #5a4800; }
.msyver-card--yellow .msyver-card__icon { background: #fde88a; border-color: #c8a800; }

.msyver-card--teal   { background: #b8ece6; border-color: #1a9e90; color: #0d5e57; }
.msyver-card--teal   .msyver-card__icon { background: #7dd8cf; border-color: #1a9e90; }

.msyver-card--indigo { background: #eae6ff; border-color: #5840c8; color: #221060; }
.msyver-card--indigo .msyver-card__icon { background: #c8b8f8; border-color: #5840c8; }

/* Rose-orangé vif pour les feuilles d'information */
.msyver-card--coral  { background: #ffd0b8; border-color: #e05520; color: #7a2010; }
.msyver-card--coral  .msyver-card__icon { background: #ffb094; border-color: #e05520; }

.msyver-card--pink   { background: #ffd0dc; border-color: #c83858; color: #6b1028; }
.msyver-card--pink   .msyver-card__icon { background: #ffaec0; border-color: #c83858; }

.msyver-card--orange { background: #ffdcc0; border-color: #d06020; color: #6a2e08; }
.msyver-card--orange .msyver-card__icon { background: #ffc090; border-color: #d06020; }

.msyver-card--green  { background: #c8edb0; border-color: #409820; color: #1e4a0a; }
.msyver-card--green  .msyver-card__icon { background: #a0d880; border-color: #409820; }

.msyver-card--blue   { background: #c0dff5; border-color: #2060a8; color: #0a2e5a; }
.msyver-card--blue   .msyver-card__icon { background: #90c4ee; border-color: #2060a8; }

.msyver-card--beige  { background: #f5efdf; border-color: #a08850; color: #4a3c1a; }
.msyver-card--beige  .msyver-card__icon { background: #e8d8b0; border-color: #a08850; }

.msyver-card--gray   { background: #e5e5e5; border-color: #909090; color: #303030; }
.msyver-card--gray   .msyver-card__icon { background: #c8c8c8; border-color: #909090; }

@media (max-width: 768px) {
  .msyver-card {
    flex: 1 1 140px;
    max-width: 180px;
    padding: 14px 10px;
  }
}

@media (max-width: 480px) {
  .msyver-cards-row {
    gap: 12px;
  }
  .msyver-card {
    flex: 1 1 120px;
    max-width: 160px;
  }
}

/* =============================================================
   SÉPARATEUR + LOGO CENTRÉ
   ============================================================= */
.msyver-separator {
  text-align: center;
  padding: 32px 0;
}

.msyver-separator hr {
  border: none;
  border-top: 1px solid #cccccc;
  margin-bottom: 24px;
}

.msyver-separator img {
  height: 60px;
  width: auto;
}

/* =============================================================
   MAIN HOMEPAGE – padding horizontal pour aligner les titres
   ============================================================= */
.msyver-main {
  padding: 0;  /* Chaque section gere son propre indent */
}

/* La query actu herite un indent de 40px identique aux headings */
.msyver-main .wp-block-query {
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

/* Pagination actu : centree, pas de padding supplementaire */
.msyver-main .wp-block-query-pagination {
  padding: 12px 0 24px;
  text-align: center;
}

@media (max-width: 768px) {
  .msyver-main .wp-block-query {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* =============================================================
   TITRE DE SECTION – texte aligné gauche + trait pleine largeur
   ============================================================= */
/* Ancienne structure (conservé pour compatibilité) */
.msyver-section-title-wrapper { padding: 40px 24px 0; max-width: 1200px; margin: 0 auto 20px; }

/* ---------------------------------------------------------------
   Titres de section homepage (wp:heading)
   --------------------------------------------------------------- */
h2.msyver-section-heading {
  font-size: 2.2rem !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: #1a1a1a !important;
  text-align: left !important;
  padding-bottom: 14px !important;
  border-bottom: 4px solid #1a1a1a !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  /* Marges explicites : 40px gauche/droite pour que le titre
     ne parte pas du bord de l'écran, quel que soit le contexte. */
  margin-top: 40px !important;
  margin-bottom: 22px !important;
  margin-left: 40px !important;
  margin-right: 40px !important;
  display: block !important;
  width: auto !important;
}

/* =============================================================
   GALERIE ÉVÉNEMENTS – 6 photos carrées
   ============================================================= */
/* =============================================================
   GALERIE FALLBACK ÉVÉNEMENTS – 4 cartes image + titre
   ============================================================= */
.msyver-events-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  padding: 0 24px 24px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Version avec caption */
.msyver-events-gallery--with-caption .msyver-events-gallery__item {
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #e8e8e8;
  background: #fff;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
}

.msyver-events-gallery--with-caption .msyver-events-gallery__item:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  transform: translateY(-3px);
}

.msyver-events-gallery--with-caption .msyver-events-gallery__item a:first-child {
  display: block;
  overflow: hidden;
}

.msyver-events-gallery--with-caption .msyver-events-gallery__item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.msyver-events-gallery--with-caption .msyver-events-gallery__item:hover img {
  transform: scale(1.04);
}

.msyver-events-gallery__caption {
  padding: 10px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.msyver-events-gallery__caption-date {
  font-size: 0.72rem;
  color: #999;
  font-style: italic;
}

.msyver-events-gallery__caption-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a1a !important;
  text-decoration: none !important;
  line-height: 1.3;
}

.msyver-events-gallery__caption-title:hover {
  color: #0066cc !important;
  text-decoration: underline !important;
}

.msyver-events-gallery__caption-desc {
  font-size: 0.88rem;
  color: #444;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

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

@media (max-width: 480px) {
  .msyver-events-gallery { grid-template-columns: 1fr; }
}

/* =============================================================
   ÉVÉNEMENTS RÉCENTS – grille d'articles (catégorie "reportages")
   ============================================================= */
.msyver-reportages-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding: 0 40px 32px;   /* même indentation que les headings */
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  width: 100%;
}

.msyver-reportages-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1.5px solid #1a1a1a !important;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none !important;
  color: inherit;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.msyver-reportages-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}

.msyver-reportages-card__img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f0ede8;
}

.msyver-reportages-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.msyver-reportages-card:hover .msyver-reportages-card__img img {
  transform: scale(1.05);
}

.msyver-reportages-card__noimg {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e8f5f3 0%, #b8ece6 100%);
}

.msyver-reportages-card__body {
  padding: 12px 14px 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.msyver-reportages-card__date {
  font-size: 0.72rem;
  color: #888;
  font-style: italic;
}

.msyver-reportages-card__title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.msyver-reportages-card__excerpt {
  font-size: 0.85rem;
  color: #444;
  margin: 4px 0 0 !important;
  line-height: 1.5;
}

.msyver-reportages-see-all {
  text-align: right;
  padding: 0 40px 40px;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
}

.msyver-reportages-see-all__link {
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a1a !important;
  text-decoration: none !important;
  border-bottom: 2px solid #1a1a1a;
}

.msyver-reportages-see-all__link:hover {
  text-decoration: underline !important;
}

.msyver-reportages-empty {
  text-align: center;
  color: #888;
  padding: 24px;
  font-size: 0.9rem;
}

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

@media (max-width: 480px) {
  .msyver-reportages-grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   PAGES INTERIEURES – styles hérités (voir section "EN-TÊTE DE PAGE" plus bas)
   ============================================================= */

/* Contenu des pages : listes, liens, titres */
.msyver-page-content {
  padding: 0 24px 48px;
  max-width: 860px;
  margin: 0 auto;
}

.msyver-page-content h2 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 32px 0 10px;
  padding-bottom: 6px;
  border-bottom: 2px solid #1a1a1a;
}

.msyver-page-content h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #333;
  margin: 20px 0 8px;
}

.msyver-page-content ul {
  padding-left: 20px;
  margin: 0 0 16px;
}

.msyver-page-content ul li {
  margin-bottom: 6px;
  line-height: 1.5;
}

.msyver-page-content a {
  color: #1a1a1a;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.msyver-page-content a:hover {
  opacity: 0.8;
}

/* =============================================================
   PAGE PAROISSES – logos colorés
   ============================================================= */
.msyver-paroisses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 24px;
  margin: 32px 0;
}

.msyver-paroisse-item {
  text-align: center;
  text-decoration: none;
  color: inherit;
}

.msyver-paroisse-item img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: block;
  margin: 0 auto 10px;
  transition: transform 0.2s;
}

.msyver-paroisse-item:hover img {
  transform: scale(1.05);
}

.msyver-paroisse-item span {
  font-weight: 600;
  font-size: 0.9rem;
}

/* =============================================================
   BANNIÈRE FEUILLES D'INFORMATION
   ============================================================= */
.msyver-fis-banner {
  background: linear-gradient(135deg, var(--msyver-teal) 0%, var(--msyver-teal-dark) 100%);
  padding: 28px 24px;
  text-align: center;
  margin: 0;
}

.msyver-fis-banner a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  color: #fff;
  text-decoration: none !important;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  flex-wrap: wrap;
}

.msyver-fis-banner a:hover { opacity: 0.85; }

.msyver-fis-banner img {
  height: 60px;
  width: auto;
  filter: brightness(0) invert(1);
}

/* =============================================================
   ACTUALITÉS – cartes d'articles
   ============================================================= */
.msyver-actualites-title {
  font-size: 1.4rem !important;
  color: #1a1a1a !important;
  padding: 32px 0 8px;
  margin-bottom: 8px !important;
}

/* Wrapper 90% de large pour la section actualités */
/* Grille actu : 4 colonnes dans la homepage
   Le wp-block-query n'a pas de wrapper specifique, on cible
   directement le post-template dans .msyver-main. */
.msyver-main .wp-block-query {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
}

.msyver-main .wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  align-items: start !important;
  gap: 18px !important;
  padding: 0 0 24px !important;
}

@media (max-width: 900px) {
  .msyver-main .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 540px) {
  .msyver-main .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }
}

.msyver-actu-card {
  border-radius: 10px;
  overflow: hidden;
  border: 1.5px solid #1a1a1a;
  background: #fff;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  /* Hauteur uniforme entre cards d'une même rangée */
  display: flex !important;
  flex-direction: column !important;
  /* Pour le pseudo-élément de clic global */
  position: relative;
}

.msyver-actu-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  transform: translateY(-3px);
}

/* Zone texte : prend tout l'espace restant sous l'image */
.msyver-actu-card__body {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 14px 16px 16px !important; /* évite le texte collé aux bords */
}

/* Titre de la carte : un peu plus grand */
.msyver-actu-card .wp-block-post-title a {
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

/* Image : hauteur fixe, contenu visible sans recadrage excessif */
.msyver-actu-card .wp-block-post-featured-image {
  overflow: hidden;
  flex-shrink: 0;
  background: #f5f5f5;
}

.msyver-actu-card .wp-block-post-featured-image img {
  width: 100% !important;
  height: 180px !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
  background: #f0f0f0;
}

/* Titre de la carte */
.msyver-actu-card .wp-block-post-title {
  margin-top: 4px !important;
  margin-bottom: 6px !important;
}

.msyver-actu-card .wp-block-post-title a {
  color: #1a1a1a !important;
  text-decoration: none !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Rendre TOUTE la carte cliquable ──────────────────────
   Le lien sur le titre s'étale via ::after sur toute la carte */
.msyver-actu-card .msyver-actu-card__title a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: 10px;
}

/* Les éléments interactifs à l'intérieur restent cliquables */
.msyver-actu-card .wp-block-post-featured-image a {
  position: relative;
  z-index: 3;
}

.msyver-actu-card .wp-block-post-title a:hover {
  color: #1a1a1a !important;
}

/* Extrait : 2 lignes max, pas de bouton "lire la suite" */
.msyver-actu-card .wp-block-post-excerpt__excerpt {
  font-size: 0.95rem !important;
  color: #333 !important;
  line-height: 1.55 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0 !important;
}

.msyver-actu-card .wp-block-post-excerpt__more-link {
  display: none !important;
}

/* Date */
.msyver-actu-card .wp-block-post-date {
  font-size: 0.8rem !important;
  color: #888 !important;
  margin-bottom: 4px !important;
}

/* =============================================================
   TITRE DU SITE dans le header (fallback si le logo ne charge pas)
   ============================================================= */
.wp-block-site-title a {
  text-decoration: none !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
}

/* =============================================================
   HEADER LOGO
   ============================================================= */
.msyver-header {
  background: #ffffff;
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.msyver-header__inner {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.msyver-header__logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  flex-shrink: 0;
}

.msyver-header__logo {
  height: 110px !important;
  width: auto !important;
  max-width: 360px;
  display: block;
}

@media (max-width: 640px) {
  .msyver-header__logo {
    height: 64px !important;
    max-width: 230px;
  }
}

/* ---------------------------------------------------------------
   Navigation principale : taille de texte
   --------------------------------------------------------------- */
.msyver-header__nav .wp-block-navigation__container > li > a,
.msyver-header__nav .wp-block-navigation__container > li > .wp-block-navigation-item__content {
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  color: #1a1a1a !important;
  white-space: nowrap !important;
}

/* ---------------------------------------------------------------
   Cacher dans le nav WP les items "diocèse" et "intranet"
   (ils sont maintenant hardcodés comme boutons ext dans header.html)
   --------------------------------------------------------------- */
.msyver-header__nav .wp-block-navigation__container > li:nth-last-child(-n+2) {
  display: none !important;
}

/* ---------------------------------------------------------------
   Boutons externes hardcodés : Site du diocèse + Intranet
   --------------------------------------------------------------- */
.msyver-header__ext-links {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  flex-shrink: 0;
  margin-left: 24px;
  align-items: center;
}

.msyver-header__ext-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 10px 20px !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  border: 2px solid #1a1a1a;
  border-radius: 6px;
  background: transparent;
  color: #1a1a1a !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
  line-height: 1.3;
}

.msyver-header__ext-btn:hover {
  background: var(--msyver-teal) !important;
  color: #fff !important;
}

.msyver-header__ext-btn--intranet {
  border-color: var(--msyver-teal-dark);
  color: var(--msyver-teal-dark) !important;
}

.msyver-header__ext-btn--intranet:hover {
  background: var(--msyver-teal-dark) !important;
  color: #fff !important;
}

/* =============================================================
   IFRAME CALENDRIER (embed de la prod en remplacement de [my_calendar])
   ============================================================= */
.msyver-calendar-embed {
  margin: 24px 0;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid var(--msyver-teal-light);
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}

.msyver-calendar-iframe {
  display: block;
  width: 100%;
  height: 720px;
  border: none;
}

.msyver-calendar-note {
  background: var(--msyver-teal-light);
  color: var(--msyver-teal-dark) !important;
  font-size: 0.8rem;
  text-align: center;
  padding: 8px 16px;
  margin: 0 !important;
}

.msyver-calendar-note a {
  color: var(--msyver-teal-dark) !important;
  font-weight: 600;
  text-decoration: underline;
}

/* Legacy – lien simple (non utilisé si iframe disponible) */
.msyver-calendar-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--msyver-teal-light);
  border: 2px solid #1a1a1a;
  color: var(--msyver-teal-dark) !important;
  border-radius: 8px;
  padding: 10px 20px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.15s;
}

.msyver-calendar-link:hover {
  background: var(--msyver-teal);
  color: #fff !important;
}

/* =============================================================
   AMÉLIORATION LISTES DE PDFs dans les pages intérieures
   ============================================================= */
.msyver-page-content ul li a[href$=".pdf"],
.msyver-page-content ul li a[href*="%pdf"],
.msyver-page-content ul li a[href*="_pdf"] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px 5px 10px;
  background: #f0f9f8;
  border: 1px solid var(--msyver-teal-light);
  border-radius: 6px;
  font-size: 0.875rem;
  transition: background 0.15s;
}

.msyver-page-content ul li a[href$=".pdf"]:before,
.msyver-page-content ul li a[href*="%pdf"]:before,
.msyver-page-content ul li a[href*="_pdf"]:before {
  content: '';
  font-size: 0.9rem;
}

.msyver-page-content ul li a[href$=".pdf"]:hover,
.msyver-page-content ul li a[href*="%pdf"]:hover,
.msyver-page-content ul li a[href*="_pdf"]:hover {
  background: var(--msyver-teal-light);
  text-decoration: none;
}

/* =============================================================
   ENCADRÉ "RETOUR" dans les pages activités/sacrements
   ============================================================= */
.msyver-page-content .wp-block-heading + p > a:only-child,
.msyver-page-content h2 + p > a:only-child,
.msyver-page-content h3 + p > a:only-child {
  display: inline-block;
  margin-top: 6px;
}

/* lien retour (typiquement "Retour aux étapes de la vie de foi") */
.msyver-page-content a[href*="retour"],
.msyver-page-content p:last-of-type > a:only-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #1a1a1a !important;
  font-weight: 600;
  border-bottom: 2px solid #1a1a1a;
  padding-bottom: 2px;
  text-decoration: none !important;
}

.msyver-page-content a[href*="retour"]::before,
.msyver-page-content p:last-of-type > a:only-child::before {
  content: '←';
}

/* =============================================================
   GRILLE PAROISSES (page les-paroisses)
   ============================================================= */
.msyver-paroisses-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin: 24px 0;
}

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

.msyver-paroisse-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none !important;
  color: #333;
  padding: 16px;
  border-radius: 12px;
  border: 2px solid #e8e8e8;
  transition: box-shadow 0.2s, transform 0.2s;
  text-align: center;
  font-weight: 600;
  font-size: 0.875rem;
}

.msyver-paroisse-item:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  transform: translateY(-3px);
  border-color: var(--msyver-teal-light);
}

.msyver-paroisse-item img {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50%;
  object-fit: contain;
}

/* =============================================================
   NAVIGATION INTER-PAROISSES (bas de chaque page paroisse)
   ============================================================= */
.msyver-paroisses-nav {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #eee;
}

.msyver-paroisses-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none !important;
  color: #333;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
}

.msyver-paroisses-nav a img {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50%;
  transition: transform 0.2s;
}

.msyver-paroisses-nav a:hover img { transform: scale(1.1); }

/* =============================================================
   LAYOUT HERO D'UNE PAGE PAROISSE (prêtre + carte côte à côte)
   ============================================================= */
.msyver-paroisse-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 32px;
}

@media (max-width: 640px) {
  .msyver-paroisse-hero { grid-template-columns: 1fr; }
}

.msyver-paroisse-logo {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50%;
  display: block;
  margin: 0 auto 8px;
}

.msyver-paroisse-priest-photo {
  width: 120px !important;
  height: auto !important;
  border-radius: 50%;
  display: block;
  margin: 12px auto;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.msyver-paroisse-priest { text-align: center; }
.msyver-paroisse-priest h2 { font-size: 1.2rem !important; }

/* =============================================================
   HORAIRES BOX – encadré vert avec horaires et bouton messes.info
   ============================================================= */
.msyver-horaires-box {
  background: #f6f6f6;
  border-left: 5px solid #555;
  border-radius: 8px;
  padding: 20px 24px;
  margin: 24px 0;
}

.msyver-horaires-box h2 {
  font-size: 1.15rem !important;
  color: #1a1a1a !important;
  margin: 0 0 12px 0 !important;
}

.msyver-horaires-box ul {
  margin: 0 0 14px 0;
  padding-left: 20px;
}

.msyver-horaires-box ul li {
  margin-bottom: 6px;
  font-size: 1rem;
  color: #222;
}

/* Bouton "Tous les horaires sur messes.info" – neutre foncé */
.msyver-messes-btn {
  display: inline-block;
  background: #333;
  color: #fff !important;
  text-decoration: none !important;
  padding: 9px 20px;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  transition: background 0.2s ease;
}

.msyver-messes-btn:hover {
  background: #111 !important;
  color: #fff !important;
}

/* =============================================================
   PAGE PAROISSE – style prêtre / activités habituelles
   ============================================================= */
.msyver-page-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.msyver-page-content table td,
.msyver-page-content table th {
  padding: 6px 10px;
  border: 1px solid #ddd;
}

.msyver-page-content table tr:nth-child(even) {
  background: #f5f5f5;
}

/* Calendrier mensuel (widget The Events Calendar) */
.tribe-events-calendar {
  font-size: 0.85rem !important;
}

/* =============================================================
   RESPONSIVE GLOBAL
   ============================================================= */
@media (max-width: 768px) {
  .msyver-page-content { padding: 0 16px 32px; }
  .msyver-cards-section { padding: 32px 16px; }
  .msyver-fis-banner a { font-size: 1rem; gap: 12px; }
  .msyver-fis-banner img { height: 44px; }
}

/* =============================================================
   PAGE SOS – formulaire
   ============================================================= */
.msyver-page-content .wpcf7-form {
  max-width: 600px;
  margin: 0 auto;
}

.msyver-page-content .wpcf7-form input,
.msyver-page-content .wpcf7-form textarea,
.msyver-page-content .wpcf7-form select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.95rem;
  margin-bottom: 12px;
  box-sizing: border-box;
}

.msyver-page-content .wpcf7-form input:focus,
.msyver-page-content .wpcf7-form textarea:focus {
  border-color: #1a1a1a;
  outline: none;
}

.msyver-page-content .wpcf7-submit {
  background: var(--msyver-teal) !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 32px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
}

.msyver-page-content .wpcf7-submit:hover {
  opacity: 0.85 !important;
}

/* =============================================================
   PAGE LASTFIS – liste PDF par paroisse
   ============================================================= */
.msyver-fis-paroisse {
  margin-bottom: 32px;
}

.msyver-fis-paroisse-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
}

.msyver-fis-paroisse-header img {
  width: 50px;
  height: 50px;
  border-radius: 50%;
}

.msyver-fis-paroisse-header h3 {
  margin: 0 !important;
  border: none !important;
  font-size: 1.05rem !important;
}

.msyver-fis-paroisse ul {
  background: #f8f8f8;
  border-radius: 8px;
  padding: 12px 20px;
  list-style: none;
}

.msyver-fis-paroisse ul li a {
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 6px;
}

.msyver-fis-paroisse ul li a::before {
  content: '';
  font-size: 0.8rem;
}

/* =============================================================
   FIS – boutons sur les pages paroisses
   ============================================================= */
.msyver-fis-boutons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 24px var(--msyver-page-pad, 24px);
  background: var(--msyver-section-bg);
  border-top: 3px solid #1a1a1a;
}

.msyver-fis-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: box-shadow 0.18s, transform 0.18s;
}

.msyver-fis-btn:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.14);
  transform: translateY(-2px);
}

.msyver-fis-btn--last {
  background: var(--msyver-teal);
  color: #fff !important;
  border: 2px solid #1a1a1a;
}

.msyver-fis-btn--all {
  background: #fff;
  color: #1a1a1a !important;
  border: 2px solid #1a1a1a;
}

/* Badge date dans le bouton "Dernière feuille" */
.msyver-fis-btn__date {
  display: inline-block;
  margin-left: 6px;
  background: rgba(255,255,255,0.22);
  border-radius: 12px;
  padding: 1px 8px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  vertical-align: middle;
  border: 1px solid rgba(255,255,255,0.35);
}

/* =============================================================
   FIS – liste triée par date (page lastfis)
   ============================================================= */
.msyver-fis-list {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}

.msyver-fis-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid #eee;
  font-size: 0.875rem;
}

.msyver-fis-list li:last-child {
  border-bottom: none;
}

.msyver-fis-list li a {
  color: #1a1a1a !important;
  text-decoration: none;
  font-weight: 500;
}

.msyver-fis-list li a:hover {
  text-decoration: underline;
}

.msyver-fis-list__date {
  font-size: 0.78rem;
  color: #888;
  white-space: nowrap;
  flex-shrink: 0;
}

.msyver-fis-empty {
  color: #888;
  font-style: italic;
  font-size: 0.875rem;
}

/* FIS page : 4 paroisses pleine largeur, alignées à gauche */
.msyver-fis-page {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(340px, 1fr)) !important;
  gap: 24px !important;
  align-items: start !important;
  max-width: 100% !important;
  width: 100% !important;
  margin: 20px 0 !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

/* ---------------------------------------------------------------
   Page lastfis : pleine largeur – brise tous les containers WP
   --------------------------------------------------------------- */
body.page-slug-lastfis .msyver-page-content {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.page-slug-lastfis .msyver-page-content.is-layout-constrained > *,
body.page-slug-lastfis .wp-block-post-content.is-layout-constrained > * {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.page-slug-lastfis .wp-block-post-content {
  max-width: 100% !important;
  padding: 0 !important;
}

body.page-slug-lastfis main.wp-block-group.is-layout-constrained > :not(.msyver-page-header) {
  max-width: 100% !important;
}

.msyver-fis-page .msyver-fis-paroisse {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 0;
}

.msyver-fis-page .msyver-fis-paroisse-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e8f5f3;
}

.msyver-fis-page .msyver-fis-paroisse-header img {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  object-fit: contain;
  flex-shrink: 0;
}

.msyver-fis-page .msyver-fis-paroisse-header h3 {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  margin: 0 !important;
  color: var(--msyver-teal-dark) !important;
  line-height: 1.3 !important;
}

@media (max-width: 900px) {
  .msyver-fis-page {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 540px) {
  .msyver-fis-page {
    grid-template-columns: 1fr !important;
  }
}

/* =============================================================
   CALENDRIER (The Events Calendar) – intégration homepage
   ============================================================= */
.msyver-home-split__calendar .tribe-events,
.msyver-home-split__calendar .tribe-events-calendar,
.msyver-home-split__calendar .tribe-events-loop {
  font-size: 0.82rem !important;
  color: #fff !important;
}

.msyver-home-split__calendar .tribe-events a,
.msyver-home-split__calendar .tribe-event-url {
  color: #d4f0ec !important;
}

.msyver-home-split__calendar .tribe-events-list-event-title {
  font-size: 0.88rem !important;
}

.msyver-home-split__calendar .tribe_events_cat,
.msyver-home-split__calendar .tribe-events-schedule {
  font-size: 0.76rem !important;
  opacity: 0.85;
}

.msyver-home-calendar__title + .tribe-events,
.msyver-home-calendar__title + * {
  flex: 1;
}

.msyver-cal-empty {
  color: #444;
  font-style: italic;
  font-size: 0.88rem;
  padding: 12px 0;
  text-align: center;
}

/* Fallback quand My Calendar n'est pas installe */
.msyver-cal-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 16px 12px;
  text-align: center;
}

.msyver-cal-admin-hint {
  font-size: 0.75rem;
  color: #888;
  margin: 8px 0 0 !important;
}

/* Bouton admin "Ajouter un événement" */
.msyver-cal-add-btn {
  display: inline-block;
  margin-top: 8px;
  padding: 6px 14px;
  background: rgba(255,255,255,0.15);
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.2s;
}

.msyver-cal-add-btn:hover {
  background: rgba(255,255,255,0.28);
}

/* Liste calendrier custom */
.msyver-cal-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.msyver-cal-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

.msyver-cal-item:last-child {
  border-bottom: none;
}

.msyver-cal-item__datebox {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.18);
  border-radius: 8px;
  min-width: 42px;
  padding: 4px 6px;
  flex-shrink: 0;
  line-height: 1.15;
}

.msyver-cal-item__datebox strong {
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  display: block;
}

.msyver-cal-item__datebox span {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255,255,255,0.85);
}

.msyver-cal-item__title {
  color: #d4f0ec !important;
  font-size: 0.85rem !important;
  font-weight: 500;
  text-decoration: none !important;
  line-height: 1.35;
}

.msyver-cal-item__title:hover {
  color: #fff !important;
  text-decoration: underline !important;
}

/* =============================================================
   HEADER – amélioration visuelle
   ============================================================= */

/* Fond blanc, ombre légère, sticky – fallback (msyver-header gère le header custom) */
.wp-block-template-part[data-slug="header"],
header.wp-block-template-part {
  background: #ffffff;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}

/* Nav links */
.wp-block-navigation a {
  font-weight: 500;
  font-size: 0.92rem;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  transition: color 0.15s;
}

.wp-block-navigation a:hover {
  color: #1a1a1a !important;
}

/* Dropdown sous-menus */
.wp-block-navigation .wp-block-navigation__submenu-container {
  border-top: 3px solid #1a1a1a;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

/* =============================================================
   FOOTER – nouvelle version avec boutons paroisses
   ============================================================= */

/* Conteneur footer général */
.msyver-footer,
.wp-block-template-part[data-slug="footer"],
footer.wp-block-template-part {
  background: var(--msyver-teal-dark) !important;
  color: rgba(255,255,255,0.9) !important;
  border-top: none;
  padding: 0 !important;
}

/* Filet décoratif haut du footer */
.msyver-footer__divider {
  width: 100%;
  height: 4px;
  background: var(--msyver-teal);
}

/* Grille des 4 boutons paroisses */
.msyver-footer__parishes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  padding: 28px 24px 20px;
}

.msyver-footer__parish-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none !important;
  color: rgba(255,255,255,0.9) !important;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: center;
  min-width: 90px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  transition: background 0.2s, transform 0.15s;
}

.msyver-footer__parish-btn:hover {
  background: rgba(255,255,255,0.12);
  transform: translateY(-2px);
}

.msyver-footer__parish-btn img {
  width: 54px !important;
  height: 54px !important;
  border-radius: 50%;
  object-fit: contain;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  transition: transform 0.2s;
}

.msyver-footer__parish-btn:hover img {
  transform: scale(1.08);
}

/* Zone bas : adresse + legal – pleine largeur grâce au layout:default du footer */
.msyver-footer__bottom {
  background: rgba(0,0,0,0.25);
  padding: 16px 32px;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.msyver-footer__address,
.msyver-footer__links,
.msyver-footer__legal {
  margin: 4px 0 !important;
  font-size: 0.86rem;
  color: rgba(255,255,255,0.80) !important;
  line-height: 1.8;
}

.msyver-footer__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 6px;
  align-items: center;
}

.msyver-footer__sep {
  opacity: 0.5;
}

.msyver-footer__bottom a {
  color: var(--msyver-teal-light) !important;
  text-decoration: none;
}

.msyver-footer__bottom a:hover {
  text-decoration: underline;
}

@media (max-width: 640px) {
  .msyver-footer__parishes { gap: 10px 14px; }
  .msyver-footer__parish-btn { min-width: 70px; font-size: 0.72rem; }
  .msyver-footer__parish-btn img { width: 44px !important; height: 44px !important; }
}

/* =============================================================
   CONTENU DES PAGES – centrage et largeur
   ============================================================= */
.msyver-page-content {
  max-width: 1000px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Les images dans les pages (non-portrait) doivent être centrées et larges */
.msyver-page-content .wp-block-image:not(.alignleft):not(.alignright) {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

.msyver-page-content .wp-block-image:not(.alignleft):not(.alignright) img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

/* =============================================================
   EN-TÊTE DE PAGE – icône gauche + titre droite
   ============================================================= */
.msyver-page-header {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 24px !important;
  /* Pleine largeur : le padding s'ajuste pour centrer le contenu
     à l'intérieur comme s'il était dans une colonne de 1000px */
  padding: 20px max(32px, calc((100% - 1000px) / 2)) !important;
  background: #f8fffe !important;
  border-bottom: 2px solid #e8f5f3;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Icône ronde */
.msyver-page-icon,
.msyver-page-header .wp-block-post-featured-image {
  flex-shrink: 0 !important;
  margin: 0 !important;
}

.msyver-page-icon img,
.msyver-page-header .wp-block-post-featured-image img {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50% !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
  background: #fff;
}

/* Titre de la page : aligné à gauche */
.msyver-page-title,
.msyver-page-header h1.wp-block-post-title {
  font-size: clamp(1.3rem, 3vw, 2rem) !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-align: left !important;
}

/* Trait décoratif sous le titre dans le header */
.msyver-page-header__divider {
  width: 48px;
  height: 3px;
  background: var(--msyver-teal);
  border-radius: 2px;
  margin-top: 8px;
}

@media (max-width: 600px) {
  .msyver-page-header {
    flex-direction: column !important;
    text-align: center !important;
    gap: 12px !important;
    padding: 20px 16px !important;
    justify-content: center !important;
  }
  .msyver-page-title,
  .msyver-page-header h1.wp-block-post-title {
    text-align: center !important;
  }
  .msyver-page-header__divider {
    margin: 8px auto 0;
  }
}

/* =============================================================
   COULEURS PAR PAROISSE – classes utilitaires
   (pour usage inline dans le contenu des pages paroisses)
   ============================================================= */
.msyver-nda { color: #2e7d32; }   /* Vert – NDA */
.msyver-sp  { color: #e65100; }   /* Orange – Saint-Paul */
.msyver-smm { color: #1565c0; }   /* Bleu – Sainte-Marie-Madeleine */
.msyver-se  { color: #b71c1c; }   /* Rouge – Saint-Esprit */

/* =============================================================
   IMAGES DANS LES PAGES : limiter la largeur des photos portrait
   (prêtres, illustrations)
   ============================================================= */
.msyver-page-content .wp-block-image img {
  border-radius: 8px;
  max-width: 100%;
  height: auto;
}

/* Portrait prêtre : centré, taille max 200px */
.msyver-page-content figure.aligncenter img,
.msyver-page-content .elementor-align-center img {
  display: block;
  margin: 0 auto;
}

/* =============================================================
   BREADCRUMB DE CATÉGORIE (en-tête des pages sacrements/jeunes)
   Reproduit le comportement Elementor : icône + label de rubrique
   ============================================================= */
.msyver-page-category-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f5f5f5;
  border-radius: 8px;
  padding: 8px 16px;
  margin-bottom: 8px;
}

.msyver-page-category-breadcrumb img {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50%;
  flex-shrink: 0;
}

.msyver-page-category-breadcrumb span {
  font-size: 0.9rem;
  color: #555;
  font-style: italic;
  font-weight: 500;
}

/* =============================================================
   CITATION BIBLIQUE
   ============================================================= */
.msyver-citation {
  border-left: 3px solid #1a1a1a !important;
  padding: 12px 16px !important;
  margin: 16px 0 24px !important;
  color: #555 !important;
  font-style: italic !important;
  background: #fafafa;
  border-radius: 0 6px 6px 0;
}

/* =============================================================
   LIEN RETOUR EN BAS DE PAGE
   ============================================================= */
.msyver-retour {
  margin-top: 32px !important;
  padding-top: 16px;
  border-top: 1px solid #eee;
}

.msyver-retour a {
  color: #1a1a1a !important;
  font-weight: 600;
  text-decoration: none !important;
}

.msyver-retour a:hover { text-decoration: underline !important; }

/* =============================================================
   TITRE AVANT LE FORMULAIRE
   ============================================================= */
.msyver-form-intro {
  margin-top: 32px !important;
  padding-top: 20px;
  border-top: 1px solid #eee;
  font-size: 1rem !important;
  color: #333 !important;
}

/* =============================================================
   FIX ICÔNES ELEMENTOR TROP GRANDES
   Les icônes de section (etapes01, jeunes01, etc.) doivent rester
   petites. Elementor les affiche en pleine largeur quand son CSS
   n'est pas régénéré pour le nouveau thème.
   ============================================================= */

/* Icônes circulaires des pages intérieures */
.msyver-page-content img[src*="etapes01"],
.msyver-page-content img[src*="jeunes01"],
.msyver-page-content img[src*="activites01"],
.msyver-page-content img[src*="calendrier01"],
.msyver-page-content img[src*="paroisses01"],
.msyver-page-content img[src*="revenir01"],
.msyver-page-content img[src*="question01"],
.msyver-page-content img[src*="don01"],
.msyver-page-content img[src*="LOGO_NDA"],
.msyver-page-content img[src*="LOGO_St-paul"],
.msyver-page-content img[src*="LOGO_St-Esprit"],
.msyver-page-content img[src*="LOGO_Ste-MM"],
.msyver-page-content img[src*="-150x150"],
.msyver-page-content img[src*="-100x100"] {
  max-width: 130px !important;
  max-height: 130px !important;
  width: auto !important;
  height: auto !important;
  display: block;
  margin: 0 auto 8px;
}

/* Première section Elementor (header de page) : limiter la hauteur */
.msyver-page-content .elementor-top-section:first-of-type {
  padding: 16px 0 8px !important;
}

.msyver-page-content .elementor-top-section:first-of-type .elementor-widget-image img {
  max-width: 140px !important;
  max-height: 140px !important;
  width: auto !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

/* Texte de catégorie sous l'icône (ex: "Les étapes de la vie de foi") */
.msyver-page-content .elementor-top-section:first-of-type .elementor-widget-text-editor p,
.msyver-page-content .elementor-top-section:first-of-type .elementor-widget-heading .elementor-heading-title {
  font-size: 0.9rem !important;
  color: #666 !important;
  text-align: center !important;
  font-style: italic;
  margin: 0 !important;
}

/* Bandeau image (Bandeau-KT-2.jpg etc.) : pleine largeur autorisée */
.msyver-page-content img[src*="Bandeau"],
.msyver-page-content img[src*="bandeau"],
.msyver-page-content .elementor-top-section:nth-of-type(2) img {
  max-width: 100% !important;
  max-height: none !important;
  width: 100% !important;
  border-radius: 6px;
}

/* =============================================================
   GOOGLE MAPS EMBED dans les pages paroisses
   ============================================================= */
.msyver-page-content .elementor-widget-google_maps iframe,
.msyver-page-content iframe[src*="google.com/maps"],
.msyver-page-content iframe[src*="maps.google"] {
  width: 100%;
  max-width: 600px;
  height: 300px;
  border-radius: 10px;
  border: 2px solid var(--msyver-teal-light);
  display: block;
  margin: 16px auto;
}

/* =============================================================
   CONTACT FORM 7 – style amélioré
   ============================================================= */
.msyver-page-content .wpcf7,
.wpcf7 {
  max-width: 640px;
  margin: 24px auto 0;
  padding: 24px;
  background: #f8fffe;
  border: 1px solid var(--msyver-teal-light);
  border-radius: 12px;
}

.wpcf7-form label {
  display: block;
  font-weight: 600;
  font-size: 0.875rem;
  margin-bottom: 4px;
  color: #333;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea,
.wpcf7-form select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 0.95rem;
  font-family: inherit;
  margin-bottom: 14px;
  box-sizing: border-box;
  transition: border-color 0.15s;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-color: #1a1a1a;
  outline: none;
  box-shadow: 0 0 0 3px rgba(26,158,144,0.15);
}

.wpcf7-form textarea { min-height: 120px; resize: vertical; }

.wpcf7-submit {
  background: var(--msyver-teal) !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 32px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  font-family: inherit !important;
  transition: background 0.15s !important;
  letter-spacing: 0.02em !important;
}

.wpcf7-submit:hover {
  background: var(--msyver-teal-dark) !important;
}

.wpcf7-response-output {
  border-radius: 8px !important;
  padding: 10px 14px !important;
  margin-top: 10px !important;
  font-size: 0.9rem !important;
}

/* =============================================================
   SKIP LINK (accessibilité) – masqué visuellement
   ============================================================= */
.skip-link { position: absolute; top: -100px; }
.skip-link:focus { top: 8px; }

/* =============================================================
   SCROLL DOUX
   ============================================================= */
html { scroll-behavior: smooth; }

/* =============================================================
   SINGLE POST / ARTICLES – mise en page et typographie
   ============================================================= */

/* Conteneur principal de l'article */
.msyver-single-main {
  margin-top: 0 !important;
}

.msyver-article-wrapper {
  max-width: 1000px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* En-tête article */
.msyver-article-header {
  padding: 48px 24px 32px !important;
  text-align: center;
}

/* Catégorie en badge */
.msyver-article-category {
  display: flex !important;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px !important;
}

.msyver-article-category a,
.msyver-article-header .wp-block-post-terms a {
  display: inline-block;
  background: var(--msyver-teal-light) !important;
  color: var(--msyver-teal-dark) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 20px;
  text-decoration: none !important;
}

/* Titre de l'article */
.msyver-article-title,
.msyver-article-header h1.wp-block-post-title {
  font-size: clamp(1.6rem, 4vw, 2.6rem) !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
  line-height: 1.25 !important;
  margin: 0 0 16px !important;
  text-align: center !important;
}

/* Date */
.msyver-article-date,
.msyver-article-header .wp-block-post-date {
  font-size: 0.85rem !important;
  color: #888 !important;
  font-style: italic;
  text-align: center;
  display: block;
  margin-bottom: 20px !important;
}

/* Trait décoratif sous l'en-tête */
.msyver-article-header__divider {
  width: 64px;
  height: 4px;
  background: var(--msyver-teal);
  border-radius: 2px;
  margin: 0 auto;
}

/* Corps de l'article */
.msyver-article-body {
  padding: 0 32px 40px !important;
}

/* Première image dans le contenu : jolie présentation hero */
.msyver-article-body .wp-block-post-content > .wp-block-image:first-child,
.msyver-article-body .wp-block-post-content > figure.wp-block-image:first-child {
  margin: 0 -32px 32px !important;
}

.msyver-article-body .wp-block-post-content > .wp-block-image:first-child img,
.msyver-article-body .wp-block-post-content > figure.wp-block-image:first-child img {
  width: 100% !important;
  max-height: 480px;
  object-fit: contain !important;
  background: #f0f0f0;
  border-radius: 0 !important;
}

/* Typographie du corps */
.msyver-article-body p,
.msyver-article-body .wp-block-post-content p {
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: #2a2a2a !important;
  margin-bottom: 1.4em !important;
}

/* Titres dans l'article */
.msyver-article-body h2,
.msyver-article-body .wp-block-post-content h2 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--msyver-teal-dark) !important;
  margin-top: 2em !important;
  margin-bottom: 0.6em !important;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--msyver-teal-light);
}

.msyver-article-body h3,
.msyver-article-body .wp-block-post-content h3 {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin-top: 1.6em !important;
  margin-bottom: 0.5em !important;
}

/* Images dans le corps */
.msyver-article-body figure,
.msyver-article-body .wp-block-image {
  margin: 28px auto !important;
  text-align: center;
}

.msyver-article-body .wp-block-image img {
  border-radius: 8px !important;
  max-width: 100% !important;
  height: auto !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  display: block;
  margin: 0 auto;
}

.msyver-article-body figcaption,
.msyver-article-body .wp-element-caption {
  font-size: 0.82rem !important;
  color: #888 !important;
  font-style: italic;
  margin-top: 8px !important;
  text-align: center;
}

/* Blocs quote */
.msyver-article-body blockquote,
.msyver-article-body .wp-block-quote {
  border-left: 4px solid var(--msyver-teal) !important;
  padding: 14px 20px !important;
  margin: 24px 0 !important;
  background: #f8fffe;
  border-radius: 0 8px 8px 0;
  color: #444 !important;
  font-style: italic;
}

/* Séparateur */
.msyver-article-body hr,
.msyver-article-body .wp-block-separator {
  border: none !important;
  border-top: 2px solid var(--msyver-teal-light) !important;
  margin: 32px auto !important;
  max-width: 200px;
}

/* Tags en bas */
.msyver-article-tags {
  padding: 0 32px 24px !important;
  border-top: 1px solid #eee;
  margin-top: 8px !important;
}

.msyver-article-tags .wp-block-post-terms {
  font-size: 0.82rem;
  color: #888;
}

.msyver-article-tags .wp-block-post-terms a {
  color: #1a1a1a !important;
  text-decoration: none;
}

/* Navigation précédent/suivant */
.msyver-article-wrapper .wp-block-post-navigation-link a {
  color: #1a1a1a !important;
  font-weight: 600;
  text-decoration: none !important;
}

/* Responsive */
@media (max-width: 768px) {
  .msyver-article-header { padding: 32px 16px 24px !important; }
  .msyver-article-body { padding: 0 16px 32px !important; }
  .msyver-article-tags { padding: 0 16px 20px !important; }
  .msyver-article-wrapper .wp-block-post-featured-image img { max-height: 280px !important; }
}


/* =============================================================
   TEXTE MOINS VERT – noir par défaut, teal réservé aux accents
   ============================================================= */

/* Titres et corps de contenu → noir */
.msyver-page-title,
.msyver-page-header h1.wp-block-post-title,
.msyver-article-title,
.msyver-article-header .wp-block-post-title {
  color: #1a1a1a !important;
}

.msyver-article-body h2,
.msyver-article-body h3,
.msyver-article-body h4,
.msyver-article-body p,
.msyver-article-body li,
.msyver-page-content h2,
.msyver-page-content h3,
.msyver-page-content p,
.msyver-page-content li {
  color: #1a1a1a !important;
}

/* Liens dans le corps : bleu classique web, SAUF boutons qui ont leur propre style */
.msyver-article-body a,
.msyver-page-content a:not(.msyver-fis-btn):not(.msyver-card):not(.msyver-messes-btn) {
  color: #0066cc !important;
}
.msyver-article-body a:hover,
.msyver-page-content a:not(.msyver-fis-btn):not(.msyver-card):not(.msyver-messes-btn):hover {
  color: #0052a3 !important;
  text-decoration: underline !important;
}

/* Bouton messes.info : fond sombre, texte blanc – ne pas appliquer le bleu des liens */
.msyver-messes-btn,
.msyver-messes-btn:link,
.msyver-messes-btn:visited {
  color: #fff !important;
  background: #333 !important;
}
.msyver-messes-btn:hover,
.msyver-messes-btn:focus {
  color: #fff !important;
  background: #111 !important;
  text-decoration: none !important;
}

/* Boutons FIS sur les pages paroisse : texte blanc sur fond teal/vert */
.msyver-page-content .msyver-fis-btn--last,
.msyver-page-content .msyver-fis-btn--last:hover {
  color: #fff !important;
}
.msyver-page-content .msyver-fis-btn--all {
  color: #1a1a1a !important;
}

/* Titres des cards articles → noir */
.msyver-actu-card .wp-block-post-title a {
  color: #1a1a1a !important;
}
.msyver-actu-card .wp-block-post-title a:hover {
  color: #1a1a1a !important;
}

/* Titres des reportages → noir */
.msyver-reportages-card__title {
  color: #1a1a1a !important;
}

/* En-têtes paroisse dans FIS → noir */
.msyver-fis-paroisse-header h3 {
  color: #1a1a1a !important;
}

/* Image à la une dans un article – propre, sans zoom */
.msyver-article-featured-image img,
.msyver-article-wrapper .wp-block-post-featured-image img {
  max-width: 100%;
  max-height: 480px;
  object-fit: contain;
  background: #f0ede8;
  border-radius: 6px;
  display: block;
  margin: 0 auto 28px;
}

/* =============================================================
   COULEURS PAR PAGE DE SECTION – bandeau d'en-tête coloré
   selon le bouton de navigation correspondant
   ============================================================= */

/* Les quatre paroisses → jaune doré */
body.page-slug-les-paroisses .msyver-page-header {
  background: #fef6c8 !important;
  border-bottom-color: #d4a800 !important;
}
body.page-slug-les-paroisses .msyver-page-header__divider { background: #d4a800 !important; }

/* Feuilles d'information → rose-orangé (coral) */
body.page-slug-lastfis .msyver-page-header {
  background: #ffe8e0 !important;
  border-bottom-color: #d45030 !important;
}
body.page-slug-lastfis .msyver-page-header__divider { background: #d45030 !important; }

/* Vie de foi → rose */
body.page-slug-vie_de_foi .msyver-page-header {
  background: #f8e8f4 !important;
  border-bottom-color: #9b2c6d !important;
}
body.page-slug-vie_de_foi .msyver-page-header__divider { background: #9b2c6d !important; }

/* Les activités → orange */
body.page-slug-les-activites .msyver-page-header {
  background: #fff3e0 !important;
  border-bottom-color: #d46b00 !important;
}
body.page-slug-les-activites .msyver-page-header__divider { background: #d46b00 !important; }

/* Pour les jeunes → vert */
body.page-slug-pour-les-jeunes .msyver-page-header {
  background: #e8f5e9 !important;
  border-bottom-color: #2e7d32 !important;
}
body.page-slug-pour-les-jeunes .msyver-page-header__divider { background: #2e7d32 !important; }

/* Revenir dans l'Église → bleu */
body.page-slug-revenir-dans-leglise .msyver-page-header {
  background: #e3f0fb !important;
  border-bottom-color: #1a5c8e !important;
}
body.page-slug-revenir-dans-leglise .msyver-page-header__divider { background: #1a5c8e !important; }

/* Une question ? → beige chaud */
body.page-slug-sos .msyver-page-header {
  background: #faf4ec !important;
  border-bottom-color: #9b7440 !important;
}
body.page-slug-sos .msyver-page-header__divider { background: #9b7440 !important; }

/* Faire un don → gris neutre */
body.page-slug-don .msyver-page-header {
  background: #f5f5f5 !important;
  border-bottom-color: #555 !important;
}
body.page-slug-don .msyver-page-header__divider { background: #555 !important; }

/* =============================================================
   COULEURS PAR PAGE DE PAROISSE – couleur du logo de chaque église
   ============================================================= */

/* Notre-Dame de l'Assomption – vert (logo rond vert) */
body.page-slug-par-nda .msyver-page-header {
  background: #e8f5ee !important;
  border-bottom-color: #2e7d32 !important;
}
body.page-slug-par-nda .msyver-page-header__divider { background: #2e7d32 !important; }

/* Saint-Paul – ORANGE (logo rond orange sur le prod) */
body.page-slug-par-sp .msyver-page-header {
  background: #fff3e0 !important;
  border-bottom-color: #e06500 !important;
}
body.page-slug-par-sp .msyver-page-header__divider { background: #e06500 !important; }

/* Saint-Esprit – ROUGE (logo rond rouge sur le prod) */
body.page-slug-par-se .msyver-page-header {
  background: #fdecea !important;
  border-bottom-color: #c0392b !important;
}
body.page-slug-par-se .msyver-page-header__divider { background: #c0392b !important; }

/* Sainte-Marie-Madeleine – BLEU (logo rond bleu sur le prod) */
body.page-slug-par-smm .msyver-page-header {
  background: #e3f0fb !important;
  border-bottom-color: #1a5c8e !important;
}
body.page-slug-par-smm .msyver-page-header__divider { background: #1a5c8e !important; }

/* =============================================================
   MY CALENDAR – styles natifs dans le widget teal
   ============================================================= */
.msyver-mc-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.msyver-mc-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  flex-wrap: wrap;
}

.msyver-mc-item:last-child {
  border-bottom: none;
}

.msyver-mc-item__date {
  font-size: 0.75rem;
  font-weight: 700;
  color: rgba(255,255,255,0.75);
  white-space: nowrap;
  flex-shrink: 0;
}

.msyver-mc-item__title {
  font-size: 0.85rem !important;
  color: #d4f0ec !important;
  text-decoration: none !important;
  line-height: 1.35;
}

.msyver-mc-item__title:hover {
  color: #fff !important;
  text-decoration: underline !important;
}

/* =====================================================================
   ACCESSIBILITÉ – Public âgé / difficulté de lecture
   Texte plus grand et plus sombre partout
   ===================================================================== */

/* Texte courant des pages et articles */
.msyver-page-content p,
.msyver-page-content li,
.msyver-article-body p,
.msyver-article-body li {
  font-size: 1.05rem !important;
  line-height: 1.75 !important;
  color: #1a1a1a !important;
}

/* Dates, métadonnées : moins foncé mais lisible */
.msyver-actu-card .wp-block-post-date,
.msyver-article-header__meta,
.msyver-events-gallery__caption-date,
.msyver-mc-item__date {
  font-size: 0.88rem !important;
  color: #555 !important;
}

/* Extraits d'articles : plus clairs que le titre mais lisibles */
.msyver-actu-card .wp-block-post-excerpt__excerpt {
  color: #333 !important;
}

/* Description sous les titres des 8 boutons */
.msyver-card__desc {
  opacity: 1 !important;
  color: inherit !important;
  font-size: 0.9rem !important;
}

/* Tous les textes gris foncés trop pâles → valeur minimale #444 */
.msyver-events-gallery__caption-desc { color: #444 !important; }
.msyver-footer__address,
.msyver-footer__legal { color: rgba(255,255,255,0.9) !important; }

/* Logo FIS fallback dans le header page lastfis
   (si le thumbnail n'est pas encore défini) */
body.page-slug-lastfis .msyver-page-header .wp-block-post-featured-image {
  display: none !important; /* masqué : on utilise le ::before ci-dessous */
}
body.page-slug-lastfis .msyver-page-header::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  min-width: 80px;
  background: url('https://massy-verrieres.catho91.fr/wp-content/uploads/2023/02/fis.png')
              center / contain no-repeat;
  border-radius: 50%;
  margin-right: 20px;
}

/* Table des horaires paroisses : texte lisible */
.msyver-page-content table td,
.msyver-page-content table th {
  font-size: 0.97rem !important;
  color: #111 !important;
}

/* =====================================================================
   FIX EMOJI ÉNORMES dans les articles (ex: /demande-cate/)
   TwentyTwentyFive rend les h2 à ~2rem par défaut → emoji géants.
   On contrôle la taille des titres dans le corps de l'article.
   ===================================================================== */
.msyver-article-body h1,
.msyver-article-body .wp-block-heading:is(h1) {
  font-size: 1.7rem !important;
  line-height: 1.3 !important;
  margin-top: 1.5rem !important;
}
.msyver-article-body h2,
.msyver-article-body .wp-block-heading:is(h2) {
  font-size: 1.35rem !important;
  line-height: 1.35 !important;
  margin-top: 1.4rem !important;
}
.msyver-article-body h3,
.msyver-article-body .wp-block-heading:is(h3) {
  font-size: 1.15rem !important;
  line-height: 1.4 !important;
  margin-top: 1.2rem !important;
}
/* Les emoji héritent de ces tailles raisonnables */

/* =====================================================================
   RESPONSIVE – events récents grid (même breakpoints que actu grid)
   ===================================================================== */
@media (max-width: 1024px) {
  .msyver-reportages-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .msyver-main .wp-block-query {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (max-width: 640px) {
  .msyver-reportages-grid {
    grid-template-columns: 1fr !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .msyver-main .wp-block-query {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* =====================================================================
   RESPONSIVE – Tablette (≤ 1024px) et Mobile (≤ 640px)
   Toutes les règles responsive principales centralisées ici
   ===================================================================== */

/* ── Tablette (≤ 1024px) ─────────────────────────────────────────── */
@media (max-width: 1024px) {

  /* Header : logo + nav empilés, ext-buttons en dessous */
  .msyver-header__inner {
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding: 10px 16px !important;
  }
  .msyver-header__nav {
    order: 3;
    width: 100% !important;
  }
  .msyver-header__ext-links {
    order: 2;
    margin-left: auto !important;
  }

  /* Hero gallery : 2 colonnes */
  .msyver-hero-gallery {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Grille actualités : 2 colonnes */
  .msyver-main .wp-block-post-template.is-flex-container,
  .msyver-main .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Events gallery : 2 colonnes */
  .msyver-events-gallery {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Split news/calendar : empilé */
  .msyver-home-split {
    flex-direction: column !important;
  }
  .msyver-home-split__calendar {
    max-width: 100% !important;
    width: 100% !important;
    border-left: none !important;
    border-top: 4px solid #333 !important;
  }
  .msyver-home-split__news {
    width: 100% !important;
  }

  /* FIS page : 2 colonnes */
  .msyver-fis-page {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Titres section : un peu plus petits + marges réduites */
  h2.msyver-section-heading {
    font-size: 1.8rem !important;
    margin-left: 20px !important;
    margin-right: 20px !important;
  }
}

/* ── Mobile (≤ 640px) ────────────────────────────────────────────── */
@media (max-width: 640px) {

  /* Header */
  .msyver-header__inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 10px 14px 6px !important;
    gap: 8px !important;
  }
  .msyver-header__logo {
    height: 72px !important;
  }
  .msyver-header__ext-links {
    flex-direction: row !important;
    margin-left: 0 !important;
    gap: 8px !important;
    width: 100%;
    flex-wrap: wrap;
  }
  .msyver-header__ext-btn {
    font-size: 0.8rem !important;
    padding: 7px 12px !important;
    flex: 1 1 auto;
    justify-content: center;
  }
  .msyver-header__nav {
    width: 100% !important;
  }

  /* Hero gallery : 1 colonne sur mobile étroit, 2 sur moyen */
  .msyver-hero-gallery {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  /* Grille actualités : 1 colonne */
  .msyver-main .wp-block-post-template.is-flex-container,
  .msyver-main .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }

  /* Events gallery : 1 colonne */
  .msyver-events-gallery {
    grid-template-columns: 1fr !important;
    max-width: 480px;
    margin: 0 auto;
  }
  .msyver-events-gallery__item {
    flex-direction: row !important;
    align-items: flex-start;
  }
  .msyver-events-gallery__item img {
    width: 110px !important;
    height: 90px !important;
    flex-shrink: 0;
  }

  /* FIS page : 1 colonne */
  .msyver-fis-page {
    grid-template-columns: 1fr !important;
  }

  /* Cartes navigation 8 boutons : 2 colonnes serrées */
  .msyver-cards-row {
    justify-content: center !important;
    gap: 10px !important;
  }
  .msyver-card {
    flex: 1 1 42% !important;
    max-width: 48% !important;
    padding: 12px 8px !important;
  }
  .msyver-card__title {
    font-size: 0.88rem !important;
  }
  .msyver-card__desc {
    font-size: 0.78rem !important;
  }

  /* Section heading plus petit sur mobile */
  h2.msyver-section-heading {
    font-size: 1.5rem !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
  }

  /* Split layout : empilé + calendar compact */
  .msyver-home-split {
    flex-direction: column !important;
  }
  .msyver-home-split__calendar {
    max-width: 100% !important;
    width: 100% !important;
    border-left: none !important;
    border-top: 4px solid #333 !important;
  }
  .msyver-home-calendar__iframe {
    min-height: 220px !important;
  }

  /* Page paroisse header sur mobile */
  .msyver-page-header {
    padding: 20px 16px !important;
  }
  .msyver-page-header__title {
    font-size: 1.5rem !important;
  }

  /* Article single */
  .msyver-article-header {
    padding: 16px !important;
  }
  .msyver-article-title {
    font-size: 1.4rem !important;
  }
  .msyver-article-body {
    padding: 0 8px !important;
  }

  /* Footer : boutons paroisses compacts */
  .msyver-footer__parishes {
    gap: 8px 16px !important;
  }
  .msyver-footer__parish-btn {
    min-width: 70px !important;
    font-size: 0.8rem !important;
  }
  .msyver-footer__parish-btn img {
    width: 44px !important;
    height: 44px !important;
  }
}
