/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.12.6.1777559679
Updated: 2026-04-30 16:34:39

*/

/* =====================================================
   ACCUEIL - SECTION NOS MISSIONS RESPONSIVE
===================================================== */

@media (max-width: 1024px) {
  .nos-missions,
  .section-nos-missions,
  .missions-home {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .nos-missions .missions-grid,
  .section-nos-missions .missions-grid,
  .missions-home .missions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
  }
}

@media (max-width: 767px) {
  .nos-missions .missions-grid,
  .section-nos-missions .missions-grid,
  .missions-home .missions-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .nos-missions .mission-card,
  .section-nos-missions .mission-card,
  .missions-home .mission-card {
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    padding: 30px 24px !important;
  }

  .nos-missions .mission-card h3,
  .section-nos-missions .mission-card h3,
  .missions-home .mission-card h3 {
    font-size: 24px !important;
    line-height: 1.2 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .nos-missions .mission-card p,
  .section-nos-missions .mission-card p,
  .missions-home .mission-card p {
    font-size: 16px !important;
    line-height: 1.65 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
}

/* =====================================================
   NOS MISSIONS – TYPO RESPONSIVE PROPRE
===================================================== */

@media (max-width: 767px) {

  /* TITRE DES CARTES (ACCOMPAGNEMENT, INSERTION...) */
  .mission-card h4,
  .nos-missions h4,
  .section-nos-missions h4 {
    font-size: clamp(20px, 5vw, 26px) !important;
    line-height: 1.2 !important;
    letter-spacing: 1px !important;
	max-width: 220px;
  	margin-left: auto;
  	margin-right: auto;

    /* Empêche les coupures moches */
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  /* SOUS-TITRE (Accompagner individuellement) */
  .mission-card h4 {
    font-size: clamp(16px, 4.2vw, 20px) !important;
    line-height: 1.3 !important;
  }

  /* TEXTE */
  .mission-card p {
    font-size: 15.5px !important;
    line-height: 1.6 !important;
  }
	
	/* 📲 Tablette */
	@media (min-width: 768px) and (max-width: 1024px) {

  .mission-card h3 {
    font-size: clamp(22px, 3vw, 28px);
    line-height: 1.25;
  }

  .mission-card h4 {
    font-size: 18px;
  }

  .mission-card p {
    font-size: 16px;
  }

}
	
	/* TITRES CARTES - correction forte */
@media (max-width: 767px) {

  .mission-card h3,
  .elementor-widget-heading h3,
  .elementor-heading-title {

    font-size: 22px !important;
    line-height: 1.2 !important;
    letter-spacing: 1px !important;

    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

}
	
	/* CONTACTS - centrage mobile */
@media (max-width: 767px) {

  .contacts-grid {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .contacts-utiles .contact-card {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
  }

}

	
/* =========================================
   FIX SOUS-MENU CLIQUABLE — ASTRA
========================================= */

/* Le header passe toujours au-dessus du hero */
.site-header,
.main-header-bar,
.ast-primary-header-bar {
  position: relative !important;
  z-index: 99999 !important;
}

/* Le menu parent garde le hover */
.main-header-menu .menu-item-has-children {
  position: relative !important;
}

/* Sous-menu visible et cliquable */
.main-header-menu .menu-item-has-children > .sub-menu {
  display: block !important;
  opacity: 0 !important;
  visibility: hidden !important;

  position: absolute !important;
  top: calc(100% - 2px) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(8px) !important;

  z-index: 999999 !important;
  pointer-events: none !important;

  margin-top: 0 !important;
  padding: 14px 0 !important;

  background: rgba(255,255,255,0.96) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 45px rgba(36,47,139,0.18) !important;

  transition: opacity .2s ease, transform .2s ease, visibility .2s ease !important;
}

/* Zone invisible pour combler le petit vide entre le menu et le sous-menu */
.main-header-menu .menu-item-has-children > .sub-menu::before {
  content: "" !important;
  position: absolute !important;
  top: -36px !important;
  left: 0 !important;
  width: 100% !important;
  height: 36px !important;
  background: transparent !important;
}

/* Affichage au survol */
.main-header-menu .menu-item-has-children:hover > .sub-menu,
.main-header-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(-50%) translateY(0) !important;
  pointer-events: auto !important;
}

/* Liens du sous-menu */
.main-header-menu .sub-menu a {
  white-space: nowrap !important;
  padding: 14px 28px !important;
  color: #242F8B !important;
  font-weight: 700 !important;
}

/* Le hero ne doit jamais passer devant le menu */
.elementor,
.elementor-section,
.elementor-container,
.e-con {
  z-index: auto !important;
}

/*========PARTIE HISTORIQUE=============*/
/* Amélioration centrage cartes histoire */
section article {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Limiter largeur texte pour meilleur rendu */
section article p {
  max-width: 320px;
}

/* Harmonisation titres */
section article h4 {
  text-align: center;
}

/* Images parfaitement centrées */
section article img {
  margin-left: auto;
  margin-right: auto;
}

/* =========================
   RECRUTEMENT - CORRECTION PROPRE
========================= */

/* ===== HERO RECRUTEMENT ===== */

.hero-content.hero-recrutement {
  position: relative;
  z-index: 2;
  max-width: 760px;
  width: 100%;
  margin: clamp(60px, 10vh, 140px) auto 0;
  padding: 28px 30px 26px;

  background: rgba(255,255,255,0.62);
  border: 1px solid rgba(36,47,139,0.10);
  border-radius: 28px;

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  box-shadow:
    0 18px 40px rgba(36,47,139,0.08),
    0 4px 14px rgba(0,0,0,0.03);

  overflow: hidden;

  opacity: 0;
  transform: translateY(18px);
  animation: recrutementFadeUp 0.8s ease forwards;
}

.hero-content.hero-recrutement::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 180px;
  height: 5px;
  border-radius: 0 0 12px 12px;
  background: linear-gradient(90deg, #833556, #242F8B);
  transform: translateX(-50%);
}

.hero-content.hero-recrutement h1 {
  margin: 0 0 18px;
  color: #24308b;
  font-size: clamp(38px, 4.8vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.4px;
  text-align: center;
}

.hero-content.hero-recrutement p {
  margin: 0;
  color: #4a4f6a;
  font-size: 18px;
  line-height: 1.7;
}

.hero-content.hero-recrutement p strong {
  color: #2f3552;
  font-weight: 800;
}

.hero-content.hero-recrutement p:last-child {
  margin-top: 18px;
  font-style: italic;
  font-weight: 600;
  color: #4f5672;
}

@keyframes recrutementFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.recrutement-wrapper{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;
  gap:28px !important;
  max-width:1240px !important;
  margin:70px auto !important;
  padding:0 24px !important;
}

.carte-recrutement{
  position:relative !important;
  background:#ffffff !important;
  border-radius:26px !important;
  padding:34px 30px !important;
  box-shadow:0 18px 45px rgba(36,47,139,0.10) !important;
  border:1px solid rgba(36,47,139,0.10) !important;
  overflow:hidden !important;
}

.carte-recrutement::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:140px !important;
  height:5px !important;
  border-radius:0 0 999px 999px !important;
  background:linear-gradient(90deg,#8A333F,#242F8B) !important;
}

.carte-recrutement h3{
  color:#242F8B !important;
  font-size:clamp(28px,3vw,42px) !important;
  line-height:1.08 !important;
  font-weight:800 !important;
  text-align:center !important;
  margin:0 0 26px !important;
}

.carte-recrutement p,
.carte-recrutement li{
  color:#373B47 !important;
  font-size:17px !important;
  line-height:1.75 !important;
}

.carte-recrutement ul{
  padding-left:20px !important;
}

.lien-offre{
  text-align:center !important;
  margin-top:28px !important;
}

.lien-offre a,
.carte-recrutement a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:14px 26px !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,#8A333F,#242F8B) !important;
  color:#ffffff !important;
  text-decoration:none !important;
  font-weight:700 !important;
  box-shadow:0 12px 28px rgba(36,47,139,0.22) !important;
}

/* Offre fermée */
.offre-fermee{
  text-align:center !important;
}

.offre-fermee-visuel{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:14px !important;
  margin:24px 0 !important;
}

.offre-fermee-icon{
  width:110px !important;
  height:110px !important;
  border-radius:50% !important;
  background:rgba(138,51,63,0.08) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.offre-fermee-icon svg{
  width:76px !important;
  height:76px !important;
}

.of-ring{
  fill:none !important;
  stroke:#8A333F !important;
  stroke-width:7 !important;
}

.of-bar{
  fill:#242F8B !important;
}

.offre-fermee-label{
  display:inline-flex !important;
  padding:8px 14px !important;
  border-radius:999px !important;
  background:rgba(138,51,63,0.10) !important;
  color:#8A333F !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  font-size:12px !important;
  letter-spacing:.06em !important;
}

.offre-fermee-texte{
  color:#4f5672 !important;
  font-style:italic !important;
}

/* Blocs bénévolat / stage Elementor */
.autres-engagements{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:32px !important;
  max-width:1240px !important;
  margin:70px auto !important;
  padding:0 24px !important;
}

.autres-engagements > *{
  background:#ffffff !important;
  border-radius:26px !important;
  padding:40px 34px !important;
  box-shadow:0 18px 45px rgba(36,47,139,0.10) !important;
}

.autres-engagements h2,
.autres-engagements h3{
  color:#242F8B !important;
  font-size:clamp(32px,4vw,58px) !important;
  line-height:1.05 !important;
  font-weight:800 !important;
}

.autres-engagements p,
.autres-engagements li{
  color:#373B47 !important;
  font-size:18px !important;
  line-height:1.75 !important;
}

@media(max-width:767px){
  .recrutement-wrapper,
  .autres-engagements{
    grid-template-columns:1fr !important;
    padding:0 18px !important;
  }
}

/* ===== FIX RECRUTEMENT : OFFRES UNIQUEMENT ===== */

.recrutement-wrapper{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:32px !important;
  max-width:1240px !important;
  margin:70px auto !important;
  padding:0 24px !important;
}

.carte-recrutement{
  width:100% !important;
  min-width:0 !important;
}

/* stoppe l’effet colonnes trop étroites sur bénévolat / stage */
.autres-engagements{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(420px, 1fr)) !important;
  gap:32px !important;
  max-width:1240px !important;
  margin:70px auto !important;
  padding:0 24px !important;
}

.autres-engagements > *{
  width:100% !important;
  min-width:0 !important;
}

/* empêche les mots de se casser verticalement */
.autres-engagements,
.autres-engagements *,
.carte-recrutement,
.carte-recrutement *{
  word-break:normal !important;
  overflow-wrap:normal !important;
  white-space:normal !important;
}

/* mobile */
@media(max-width:900px){
  .recrutement-wrapper,
  .autres-engagements{
    grid-template-columns:1fr !important;
  }
}

/* =====================================================
   FIX RECRUTEMENT — BÉNÉVOLAT / STAGE
===================================================== */

.autres-engagements{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:32px !important;
  max-width:1240px !important;
  margin:70px auto !important;
  padding:0 24px !important;
  overflow:visible !important;
}

/* cible les colonnes Elementor */
.autres-engagements > .elementor-container,
.autres-engagements > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:32px !important;
  width:100% !important;
  max-width:1240px !important;
}

/* chaque bloc devient une vraie carte */
.autres-engagements .elementor-column,
.autres-engagements .e-con,
.autres-engagements .elementor-widget-wrap{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}

/* carte interne */
.autres-engagements .elementor-widget-wrap,
.autres-engagements .e-con{
  background:#ffffff !important;
  border-radius:26px !important;
  padding:40px 34px !important;
  box-shadow:0 18px 45px rgba(36,47,139,0.10) !important;
  border:1px solid rgba(36,47,139,0.10) !important;
}

/* empêche les titres/textes de se couper */
.autres-engagements *,
.autres-engagements h2,
.autres-engagements h3,
.autres-engagements p,
.autres-engagements li{
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  writing-mode:horizontal-tb !important;
}

.autres-engagements h2,
.autres-engagements h3{
  color:#242F8B !important;
  font-size:clamp(32px,4vw,56px) !important;
  line-height:1.05 !important;
  text-align:center !important;
  margin-bottom:26px !important;
}

.autres-engagements p,
.autres-engagements li{
  color:#373B47 !important;
  font-size:18px !important;
  line-height:1.75 !important;
}

/* mobile */
@media(max-width:900px){
  .autres-engagements,
  .autres-engagements > .elementor-container,
  .autres-engagements > .e-con-inner{
    grid-template-columns:1fr !important;
  }
}

/* ===============================
   NOS MISSIONS - GRILLE 6 CARTES
================================ */

.missions-grid,
.missions-cards,
.section-missions .elementor-container,
.section-missions .e-con-inner {
  max-width: 1180px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(280px, 1fr)) !important;
  gap: 34px !important;
  justify-content: center !important;
  align-items: stretch !important;
}

/* cartes */
.mission-card,
.section-missions article,
.section-missions .elementor-widget-wrap {
  width: 100% !important;
  max-width: 380px !important;
  margin: 0 auto !important;
  height: 100% !important;
}

/* tablette : 2 colonnes */
@media (max-width: 1100px) {
  .missions-grid,
  .missions-cards,
  .section-missions .elementor-container,
  .section-missions .e-con-inner {
    grid-template-columns: repeat(2, minmax(280px, 1fr)) !important;
    max-width: 820px !important;
    gap: 28px !important;
  }
}

/* mobile : 1 colonne */
@media (max-width: 700px) {
  .missions-grid,
  .missions-cards,
  .section-missions .elementor-container,
  .section-missions .e-con-inner {
    grid-template-columns: 1fr !important;
    max-width: 420px !important;
    gap: 24px !important;
  }

  .mission-card,
  .section-missions article,
  .section-missions .elementor-widget-wrap {
    max-width: 100% !important;
  }
}

/* =====================================================
   RESPONSIVE GLOBAL — MAISON SAINT-MARTIN
===================================================== */

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

section {
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  section {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  h1,
  .elementor-heading-title {
    font-size: clamp(36px, 7vw, 58px) !important;
    line-height: 1.05 !important;
  }

  h2 {
    font-size: clamp(32px, 6vw, 50px) !important;
    line-height: 1.1 !important;
  }

  h3 {
    font-size: clamp(24px, 5vw, 36px) !important;
  }
}

@media (max-width: 767px) {
  section {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }

  p,
  li {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  .elementor-container,
  .e-con-inner,
  .container {
    max-width: 100% !important;
  }

  [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  [style*="display:grid"] {
    gap: 24px !important;
  }

  article {
    max-width: 100% !important;
  }

  .mission-card,
  .carte-recrutement,
  .equipe-card {
    max-width: 100% !important;
  }
}
	
.footer-contact {
  text-align: center;
  max-width: 420px;
  margin: 0 auto;
  padding: 20px;
}

.footer-org {
  font-size: 20px;
  margin-bottom: 12px;
}

.footer-address,
.footer-phone {
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 10px;
  color: #555;
}

/* 👉 EMAIL PROPRE */
.footer-email {
  display: inline-block;
  max-width: 100%;
  font-size: 16px;
  color: #242F8B;
  text-decoration: none;

  /* 🔥 le plus important */
  word-break: break-word;
  overflow-wrap: anywhere;

  line-height: 1.4;
}

/* 👉 Hover propre */
.footer-email:hover {
  text-decoration: underline;
}

/* 📱 MOBILE */
@media (max-width: 600px) {

  .footer-contact {
    padding: 16px;
  }

  .footer-org {
    font-size: 18px;
  }

  .footer-address,
  .footer-phone {
    font-size: 15px;
  }

 .footer-email {
  display: inline-block;
  max-width: 100%;

  color: #242F8B;
  text-decoration: none;

  /* 🔥 taille adaptative qui réduit vraiment */
  font-size: clamp(12px, 3vw, 18px);

  /* ❌ interdit le retour à la ligne */
  white-space: nowrap;

  /* évite débordement visuel */
  overflow: hidden;
  text-overflow: ellipsis;
}

	/* Articles et Commentaires */
	.single-post .entry-meta:has(.ast-terms-link) {
    display: none !important;
}
	.single-post .ast-terms-link,
.single-post .comments-link,
.single-post .posted-by,
.single-post .byline,
.single-post .cat-links,
.single-post .entry-meta {
    display: none !important;
}
	
	/* Réduire l’espace entre le titre de l’article et le bloc de contenu */
.single-post.ast-separate-container #primary {
    margin-top: 15px !important;
}

/* Réduire l’espace intérieur en haut du bloc blanc */
.single-post.ast-separate-container .ast-article-single {
    padding-top: 35px !important;
}
	/* Galerie article - images non rognées */
.single-post .galerie-nettoyage {
    margin: 40px auto 45px auto !important;
}

.single-post .galerie-nettoyage.wp-block-gallery.has-nested-images {
    gap: 28px !important;
    align-items: stretch !important;
}

.single-post .galerie-nettoyage.wp-block-gallery.has-nested-images figure.wp-block-image {
    margin: 0 !important;
    background: #f4f4f4 !important;
    border-radius: 18px !important;
    padding: 12px !important;
    box-shadow: 0 12px 30px rgba(20, 31, 80, 0.14) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.single-post .galerie-nettoyage.wp-block-gallery.has-nested-images figure.wp-block-image img {
    width: 100% !important;
    height: auto !important;
    max-height: 420px !important;
    object-fit: contain !important;
    border-radius: 12px !important;
    display: block !important;
}

/* Version mobile */
@media (max-width: 768px) {
    .single-post .galerie-nettoyage.wp-block-gallery.has-nested-images {
        display: block !important;
    }

    .single-post .galerie-nettoyage.wp-block-gallery.has-nested-images figure.wp-block-image {
        width: 100% !important;
        margin-bottom: 22px !important;
    }

    .single-post .galerie-nettoyage.wp-block-gallery.has-nested-images figure.wp-block-image img {
        max-height: none !important;
    }
}
	/* Galerie article - images non rognées */
/* Style des photos de l'article nettoyage */
.single-post .photo-nettoyage {
    background: #ffffff !important;
    border-radius: 18px !important;
    padding: 12px !important;
    box-shadow: 0 12px 30px rgba(20, 31, 80, 0.14) !important;
    margin-bottom: 30px !important;
}

.single-post .photo-nettoyage img {
    width: 100% !important;
    height: auto !important;
    border-radius: 12px !important;
    display: block !important;
}