/*
Theme Name: Cleandy
Theme URI: https://cleandy-theme.dev
Author: ATM Dev
Author URI: https://cleandy-theme.dev
Description: Cleandy - Cleaning Services WordPress Theme. A custom theme based on the Cleandy HTML template, fully compatible with Elementor page builder. Features custom post types for Services, Testimonials, and Team, along with custom Elementor widgets for pixel-perfect design reproduction.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cleandy
Tags: cleaning, services, elementor, custom-widgets, one-page, portfolio, business
*/

/* =========================================================
   Correctifs personnalisés ATMS Services 86
   (ce fichier est chargé APRÈS le CSS principal du thème,
    il permet donc de surcharger les styles sans les casser)
   ========================================================= */

/* La barre de navigation (.mil-top-panel) est fixée en haut avec
   une hauteur de 15rem (10rem en mobile). Les gabarits Service et
   archive utilisent .mil-banner sans marge haute : on décale donc
   la bannière pour qu'elle ne passe plus sous l'en-tête. */
.mil-banner {
  padding-top: 18rem;
}

@media (max-width: 992px) {
  .mil-banner {
    padding-top: 13rem;
  }
}

/* Largeur maximale du texte d'introduction du hero (page d'accueil) */
.mil-hero-text {
  max-width: 500px;
}

/* Icône / picto du service (détail) : petit accent centré.
   Se règle par service dans « URL de l'icône du service ».
   Laisser le champ vide pour ne pas l'afficher du tout. */
.mil-service-icon {
  text-align: center;
}

.mil-service-icon img {
  display: inline-block;
  max-width: 90px;
  height: auto;
}

/* Image mise en avant du détail service : style soigné.
   Coins arrondis + ombre douce, proportions de l'image conservées
   (pas de recadrage : on ne coupe pas le sujet de la photo). */
.single-cleandy_service .mil-cover {
  overflow: hidden;
  border-radius: 1.6rem;
  box-shadow: 0 1.8rem 4rem rgba(24, 26, 31, 0.12);
}

.single-cleandy_service .mil-cover img {
  display: block;
  width: 100%;
  height: auto;
}

/* Texte courant en NOIR au lieu du gris clair (#8792a4) d'origine,
   aussi bien sur l'accueil que sur les pages de détail.
   Le :not(i) évite de toucher les icônes (ex. étoiles vides des avis).
   Le footer garde son texte blanc (couleurs définies à part). */
body {
  color: #181a1f;
}

.mil-m-2:not(i) {
  color: #181a1f;
}

/* Contenu riche du détail service : rétablit la mise en forme saisie
   dans l'éditeur. Le thème supprime les puces partout via
   « ul li { list-style:none } » : on les remet ici, avec l'indentation
   et l'espacement des listes/paragraphes. */
.mil-post-content ul,
.mil-post-content ol {
  padding-left: 2.4rem;
  margin: 0 0 2.5rem;
}

.mil-post-content ul li {
  list-style-type: disc;
}

.mil-post-content ol li {
  list-style-type: decimal;
}

.mil-post-content li {
  margin-bottom: 0.8rem;
}

.mil-post-content p {
  margin: 0 0 2rem;
}

.mil-post-content > *:last-child {
  margin-bottom: 0;
}

/* =========================================================
   Sections de service "one-page" — shortcode [cleandy_service_section]
   Retours graphiques Thibault.
   ========================================================= */

/* Trèfle de marque inséré dans le titre (mène le 2e bout, comme la maquette) :
   remonté légèrement sur le haut du texte et collé/chevauchant le mot suivant. */
.mil-service-section-icon {
  display: inline-block;
  width: 4.5rem;
  height: 4.5rem;
  margin: -19px -3.4rem 0 0;
  vertical-align: middle;
  position: relative;
  top: -1.2rem;
}

/* Photo "pastille" insérée dans le titre (comme le hero). */
.mil-service-section .mil-title-image {
  display: inline-block;
  width: 16rem;
  height: 6rem;
  margin: 0 0.8rem;
  border-radius: 8rem;
  object-fit: cover;
  object-position: center;
  vertical-align: middle;
}

@media (min-width: 992px) {
  /* Largeur du texte : assez large mais pas étalé sur toute la colonne. */
  .mil-service-section .mil-content-image-text {
    max-width: 56rem;
  }

  /* Image à droite : texte calé sur le bord gauche, espace vers l'image à droite. */
  .mil-service-section:not(.mil-reversed) .mil-content-image-text {
    padding-right: 4rem;
  }
  /* Image à gauche : MIROIR exact — texte calé sur le bord droit
     (margin-left:auto), même espace vers l'image (à gauche cette fois). */
  .mil-service-section.mil-reversed .mil-content-image-text {
    margin-left: auto;
    padding-left: 4rem;
  }
}

/* =========================================================
   Hero (accueil) — "première photo" : format CARRÉ, centrée
   verticalement sur le bloc titre + texte (ni en haut, ni en bas).
   Uniquement en disposition côte à côte.
   ========================================================= */
@media (min-width: 1200px) {
  .mil-hero-3 .col-lg-5 {
    display: flex;
    align-items: center;
  }
  .mil-hero-3 .mil-hero-right-image {
    height: auto;
    aspect-ratio: 1 / 1;
  }
}

/* =========================================================
   Pages de contenu classiques (mentions légales, cookies,
   politique de confidentialité…) : mise en page lisible et aérée.
   ========================================================= */
.mil-page-content {
  max-width: 82rem;
  font-size: 1.7rem;
  line-height: 1.85;
  color: #181a1f;
}

.mil-page-content h2 {
  font-size: 2.8rem;
  line-height: 1.25;
  margin: 4.5rem 0 1.5rem;
  padding-left: 1.5rem;
  border-left: 0.4rem solid #52b588;
}

.mil-page-content h2:first-child {
  margin-top: 0;
}

.mil-page-content h3 {
  font-size: 2.1rem;
  margin: 3rem 0 1.2rem;
}

.mil-page-content p {
  margin: 0 0 1.8rem;
}

.mil-page-content ul,
.mil-page-content ol {
  padding-left: 2.4rem;
  margin: 0 0 1.8rem;
}

.mil-page-content ul li {
  list-style-type: disc;
  margin-bottom: 0.8rem;
}

.mil-page-content ol li {
  list-style-type: decimal;
  margin-bottom: 0.8rem;
}

.mil-page-content a {
  color: #52b588;
  text-decoration: underline;
}

.mil-page-content > *:last-child {
  margin-bottom: 0;
}

/* =========================================================
   Page Contact — la Google Map remplit toute la hauteur dispo
   (= hauteur du formulaire). La colonne devient flex pour que la
   carte s'étire (le height:100% ne se résout pas dans un flex-item). 
   ========================================================= */
@media (min-width: 992px) {
  /* La colonne (étirée à la hauteur du formulaire par la ligne flex)
       sert de référence ; la carte la remplit ENTIÈREMENT en absolu :
       toute la largeur ET toute la hauteur de la partie droite. */
  .mil-map-col {
    position: relative;
    min-height: 50rem;
  }
  .mil-map-col .mil-map-frame {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    height: auto;
  }
}

/* =========================================================
   Popup « rappel » alimenté par un formulaire Contact Form 7
   (option « Shortcode CF7 du rappel »).

   Le CSS CF7 du thème (cf7-cleandy.css) masque tous les <label>
   « .wpcf7 form label { display:none } », car le formulaire de contact
   principal n'utilise que des placeholders. Si le formulaire de rappel
   met ses champs DANS des <label> (ex. « <label>Nom [text*…]</label> »),
   les champs deviennent invisibles. Filet de sécurité : on réaffiche les
   labels — donc les champs — uniquement dans ce popup. L'habillage des
   champs reste géré par cf7-cleandy.css.
   (Idéal : construire le formulaire CF7 avec la structure du thème —
    .cleandy-form-field / .cleandy-icon-* / .cleandy-form-submit.) */
.cleandy-cf7-callback .wpcf7 form label {
  display: block;
  margin-bottom: 1.5rem;
}
.cleandy-cf7-callback .wpcf7-response-output {
  margin: 1rem 0 0;
  border-radius: 1rem;
  font-size: 1.4rem;
}

/* Elementor force « .elementor iframe { width:100%; max-width:100% } », ce qui
   écrase le centrage de la carte (width:200% + décalage -50%) : l'iframe ne
   couvre alors que la moitié gauche du cadre → vide à droite. On rétablit le
   centrage en !important pour passer devant Elementor. */
.mil-map-frame iframe {
  width: 200% !important;
  height: 200% !important;
  max-width: none !important;
  top: -50% !important;
  left: -50% !important;
}

/* Le style des formulaires Contact Form 7 est géré entièrement dans
   assets/css/cf7-cleandy.css (champs avec icônes + bouton « pastille ».
   L'ancien bloc qui se trouvait ici (bouton teal #16a085) faisait double
   emploi et créait un deuxième bouton superposé : il a été retiré. */
