/* ==========================================================================
   MCO2 Serv'Ice — base de mise en page du contenu (classes mco-…), à la charte « Le bloc ».
   Reprend la structure de l'ancienne CSS du personnaliseur (sections, cartes, colonnes, étapes,
   FAQ, tableaux, bloc devis, formulaire, pied de page) avec les jetons de mco2-tokens.css.
   Charge après mco2-effets.css. Aucune ombre, aucun dégradé, angles 6 à 8 px, filets de 3 px.
   ========================================================================== */

:root {
  --gutter: 16px;
  --section: 48px;
  --section-lg: 64px;
  --mco2-ligne: #D5DEE6;            /* filet discret sur fond blanc (tableaux, séparateurs) */
  --mco2-champ: var(--mco2-ardoise); /* bord des champs : contraste ≥ 3:1 exigé pour un composant */
  --mco2-sur-nuit: #BFD0E3;         /* texte secondaire sur bleu nuit */
  --mco2-erreur: #B3261E;
  --mco2-btn-taille: 1.1875rem;     /* 19 px gras : « grand texte », blanc sur orange conforme AA */
  --mco2-logo-hauteur: 53px;        /* 100 px de large : taille minimale du logo (96 px) */
}
@media (min-width: 768px) {
  :root { --gutter: 32px; --section: 64px; --section-lg: var(--mco2-section); }
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
body {
  font-family: var(--mco2-texte);
  font-size: var(--mco2-t-corps);
  line-height: 1.6;
  color: var(--mco2-encre);
  background: var(--mco2-blanc);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--mco2-nuit); text-decoration: none; }
a:hover, a:focus { color: var(--mco2-nuit); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, .wp-block-button__link:focus-visible {
  outline: 3px solid var(--mco2-orange);
  outline-offset: 3px;
}
h1, h2, h3, h4, .mco-chiffre {
  font-family: var(--mco2-titres);
  font-weight: 400;
  color: var(--mco2-nuit);
  margin: 0 0 16px;
  letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.125rem, 4.2vw, 3rem); line-height: 1.08; }
.mco-hero--display h1 { font-size: var(--mco2-t-hero); line-height: var(--mco2-interligne-titre); }
h2 { font-size: var(--mco2-t-h2); line-height: 1.1; }
h3 { font-size: var(--mco2-t-h3); line-height: 1.2; }
h4 { font-size: 1.125rem; line-height: 1.3; }
p { margin: 0 0 16px; }
.entry-content > *:last-child { margin-bottom: 0; }
strong { font-weight: 700; }
mark.mco-todo { background: #fff3cd; color: #7a4d00; padding: 0 4px; border-radius: 3px; }

/* Liens dans le texte : soulignement orange, pointillé au survol */
.entry-content :is(p, li, td, dd, figcaption, .mco-encart) a:not(.wp-block-button__link):not(.mco-link):not(.mco-tel) {
  color: var(--mco2-nuit);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--mco2-orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
}
.entry-content :is(p, li, td, dd, figcaption, .mco-encart) a:not(.wp-block-button__link):not(.mco-link):not(.mco-tel):hover {
  text-decoration-style: dotted;
}
/* Sur fond bleu nuit, les liens du texte restent blancs (le soulignement orange demeure) */
.entry-content :is(.mco-card--nuit, .mco-aside, .mco-hero--dark, .mco-band--nuit, .mco2-a-retenir, .mco2-entete-bloc, .mco2-confirmation) :is(p, li, td, dd, figcaption) a:not(.wp-block-button__link):not(.mco-link):not(.mco-tel) {
  color: #fff;
}

/* --------------------------------------------------------------------------
   En-tête (GeneratePress) : fond blanc, logo à gauche, liens Archivo 600
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--mco2-blanc);
  border-bottom: 1px solid var(--mco2-givre);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.inside-header { padding: 10px var(--gutter); max-width: var(--mco2-conteneur); margin: 0 auto; }
.site-logo img.mco2-logo { height: var(--mco2-logo-hauteur); width: auto; display: block; }
.inside-header .site-logo { margin-right: 24px; }
.main-navigation { background: transparent; }
.main-navigation .main-nav ul li a {
  font-family: var(--mco2-texte);
  font-size: 15px;
  font-weight: 600;
  color: var(--mco2-encre);
  line-height: 48px;
  padding: 0 10px;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a,
.main-navigation .main-nav ul li.sfHover > a {
  color: var(--mco2-nuit);
  background: transparent;
  text-decoration: underline;
  text-decoration-color: var(--mco2-orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.main-navigation ul ul {
  background: var(--mco2-blanc);
  border: 1px solid var(--mco2-givre);
  border-top: var(--mco2-filet) solid var(--mco2-nuit);
  border-radius: 0 0 var(--mco2-rayon) var(--mco2-rayon);
  box-shadow: none;
  width: 280px;
  padding: 8px 0;
}
.main-navigation ul ul li a { line-height: 24px; padding: 10px 20px; font-size: 15px; }
.main-navigation .main-nav ul li.menu-item-has-children > a .dropdown-menu-toggle { padding-left: 4px; padding-right: 0; }
/* Boutons du menu : classes posées sur les entrées de menu */
.main-navigation .main-nav ul li.mco-nav-tel > a,
.main-navigation .main-nav ul li.mco-nav-cta > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  line-height: 44px;
  padding: 0 16px;
  border-radius: var(--mco2-rayon);
  font-weight: 700;
  font-size: 15px;
  margin-top: 2px;
  text-decoration: none;
}
.main-navigation .main-nav ul li.mco-nav-tel { margin-left: 6px; }
.main-navigation .main-nav ul li.mco-nav-tel > a {
  border: 2px solid var(--mco2-nuit);
  color: var(--mco2-nuit);
  font-variant-numeric: tabular-nums;
}
.main-navigation .main-nav ul li.mco-nav-tel > a::before {
  content: "";
  width: 20px;
  height: 20px;
  background: url("../svg/icones/telephone.svg") no-repeat center / contain;
}
.main-navigation .main-nav ul li.mco-nav-tel > a:hover { background: var(--mco2-givre); color: var(--mco2-nuit); }
.main-navigation .main-nav ul li.mco-nav-cta { margin-left: 8px; }
.main-navigation .main-nav ul li.mco-nav-cta > a {
  position: relative;
  background: var(--mco2-orange);
  color: #fff;
  font-size: var(--mco2-btn-taille);
}
.main-navigation .main-nav ul li.mco-nav-cta > a:hover { background: #E84400; color: #fff; }
@media (max-width: 768px) {
  .main-navigation .main-nav ul li.mco-nav-tel,
  .main-navigation .main-nav ul li.mco-nav-cta { margin: 8px 16px; }
  .main-navigation .main-nav ul li.mco-nav-tel > a,
  .main-navigation .main-nav ul li.mco-nav-cta > a { justify-content: center; }
  .menu-toggle { font-family: var(--mco2-texte); font-weight: 700; color: var(--mco2-nuit); }
}

/* Barre basse mobile (56 px) : le bouton « Demander un devis » toujours visible */
.mco2-barre-mobile { display: none; }
@media (max-width: 768px) {
  .mco2-barre-mobile {
    display: flex;
    align-items: center;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 300;
    height: 56px;
    padding: 0 var(--gutter);
    background: var(--mco2-blanc);
    border-top: 1px solid var(--mco2-givre);
  }
  .mco2-barre-mobile { transition: transform var(--mco2-moyen) var(--mco2-courbe), visibility 0s; }
  .mco2-barre-mobile.est-cachee { transform: translateY(100%); visibility: hidden; transition: transform var(--mco2-moyen) var(--mco2-courbe), visibility 0s linear var(--mco2-moyen); }
  .mco2-barre-mobile .mco2-btn { width: 100%; justify-content: center; min-height: 44px; padding-top: 0; padding-bottom: 0; font-size: var(--mco2-btn-taille); }
  body { padding-bottom: 56px; }
  .cc-window.cc-bottom, .cc-revoke.cc-bottom { bottom: 56px !important; }
}

/* --------------------------------------------------------------------------
   Gabarit de page : sections et conteneurs
   -------------------------------------------------------------------------- */
.full-width-content .inside-article,
.full-width-content .entry-content { padding: 0; margin: 0; }
.site-main { margin: 0; }
.mco-wrap { max-width: var(--mco2-conteneur); margin-left: auto; margin-right: auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.mco-section { padding-top: var(--section-lg); }
.mco-section--first { padding-top: 32px; }
.entry-content > .mco-section:last-child, .entry-content > .mco-section:has(+ script:last-child) { padding-bottom: var(--section-lg); }
.mco-band { background: var(--mco2-givre-2); padding: var(--section) 0; margin-top: var(--section-lg); }
.mco-band--glace { background: var(--mco2-givre); }
.mco-band--nuit { background: var(--mco2-nuit); color: #fff; }
.mco-band--nuit h1, .mco-band--nuit h2, .mco-band--nuit h3, .mco-band--nuit p { color: #fff; }
.mco-band--nuit .mco-lab { color: var(--mco2-sur-nuit); }
.mco-band--nuit a { color: #fff; }
.mco-prose { max-width: 680px; }
.mco-prose-wide { max-width: 800px; }
.mco-prose-wide .wp-block-table { max-width: 100%; }
.mco-lab {
  font-size: 13px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mco2-ardoise);
  margin-bottom: 12px;
}
.mco-lead { font-size: 1.1875rem; line-height: 1.5; max-width: 680px; }
.mco-cap { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--mco2-ardoise); }
.mco-sm { font-size: var(--mco2-t-petit); line-height: 1.45; }
.mco-chiffre {
  font-size: 2.75rem;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  margin: 0 0 6px;
}

/* Premier écran */
.mco-hero { padding-top: 32px; }
.mco-hero .mco-lab { margin-bottom: 16px; }
.mco-hero h1 { margin-bottom: 20px; }
.mco-hero .wp-block-buttons { margin-top: 8px; }
.wp-block-buttons + .mco-cap { margin-top: 12px; }
.mco-hero--dark { background: var(--mco2-nuit); padding: 32px 0 56px; }
.mco-hero--dark h1, .mco-hero--dark p { color: #fff; }
.mco-hero--dark .mco-lab, .mco-hero--dark .mco-cap { color: var(--mco2-sur-nuit); }
.mco-hero--dark .mco-breadcrumb, .mco-hero--dark .mco-breadcrumb a { color: var(--mco2-sur-nuit); }
.mco-hero--dark .mco-breadcrumb .breadcrumb_last { color: #fff; }
.mco-hero--dark .mco-lead a { color: #fff; text-decoration: underline; text-decoration-color: var(--mco2-orange); }
.mco-hero--dark .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background) { border-color: #fff; color: #fff; background: transparent; }
.mco-hero--dark .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background):hover { background: rgba(255, 255, 255, 0.12); color: #fff; border-color: #fff; }
.mco-breadcrumb { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--mco2-ardoise); margin-bottom: 24px; }
.mco-breadcrumb a { color: var(--mco2-ardoise); }
.mco-breadcrumb a:hover { color: var(--mco2-nuit); text-decoration: underline; text-decoration-color: var(--mco2-orange); }
.mco-breadcrumb .breadcrumb_last { color: var(--mco2-encre); }

/* Colonnes (bloc Colonnes) */
.mco-cols { gap: 24px; }
.mco-cols.wp-block-columns { margin-bottom: 0; }
.mco-cols.wp-block-columns + .mco-cols.wp-block-columns { margin-top: 24px; }
.mco-cols.wp-block-columns + .wp-block-buttons, .mco-cols.wp-block-columns + p, .mco-cols.wp-block-columns + .wp-block-heading, .mco-cols.wp-block-columns + .wp-block-list { margin-top: 24px; }
.mco-cols--wide { gap: 48px; }
.mco-cols--center { align-items: center; }
.mco-cols--third { justify-content: center; }
@media (min-width: 782px) {
  .mco-cols--wide { gap: 64px; }
  .wp-block-columns.mco-cols--2-1 > .wp-block-column:first-child { flex-basis: 66%; }
  .wp-block-columns.mco-cols--2-1 > .wp-block-column:last-child { flex-basis: 34%; }
  .wp-block-columns.mco-cols--1-2 > .wp-block-column:first-child { flex-basis: 34%; }
  .wp-block-columns.mco-cols--1-2 > .wp-block-column:last-child { flex-basis: 66%; }
  .wp-block-columns.mco-cols--third > .wp-block-column { flex: 0 0 calc(33.333% - 16px); }
}
.wp-block-column > *:last-child { margin-bottom: 0; }

/* Cartes : pas d'ombre ; filet haut bleu nuit qui passe orange au survol */
.mco-card {
  background: var(--mco2-givre-2);
  border: 0;
  border-top: var(--mco2-filet) solid var(--mco2-nuit);
  border-radius: 0 0 var(--mco2-rayon) var(--mco2-rayon);
  padding: 24px;
  height: 100%;
  box-sizing: border-box;
  transition: border-color var(--mco2-vite), transform var(--mco2-moyen) var(--mco2-courbe);
}
.mco-card:hover { border-top-color: var(--mco2-orange); transform: translateY(-2px); }
.mco-card--white { background: var(--mco2-blanc); border: 1px solid var(--mco2-givre); border-top: var(--mco2-filet) solid var(--mco2-nuit); }
.mco-band .mco-card--white, .mco-band--glace .mco-card--white { border-color: transparent; border-top-color: var(--mco2-nuit); }
.mco-card--white:hover { border-top-color: var(--mco2-orange); }
.mco-card--nuit { background: var(--mco2-nuit); border-top-color: var(--mco2-orange); color: #fff; }
.mco-card--nuit h3, .mco-card--nuit p, .mco-card--nuit a { color: #fff; }
.mco-card--nuit .mco-lab { color: var(--mco2-sur-nuit); }
.mco-card h3 { font-size: 1.25rem; line-height: 1.25; margin: 0 0 8px; }
.mco-card p { font-size: var(--mco2-t-petit); line-height: 1.45; margin-bottom: 8px; }
.mco-card p:last-child { margin-bottom: 0; }
.mco-card .mco-lab { margin-bottom: 8px; }
.mco-card .mco-link, .mco-link {
  display: inline-block;
  margin-top: 4px;
  padding: 10px 0;
  font-weight: 700;
  font-size: var(--mco2-t-petit);
  line-height: 24px;
  color: var(--mco2-nuit);
}
.mco-link:hover, .mco-link:focus-visible { text-decoration: underline; text-decoration-color: var(--mco2-orange); text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.mco-card--icon::before {
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  margin-bottom: 12px;
  background: no-repeat center / contain;
}
.mco-icon-camion::before { background-image: url("../svg/icones/livraison.svg"); }
.mco-icon-flacon::before { background-image: url("../svg/icones/laboratoire.svg"); }
.mco-icon-nettoyage::before { background-image: url("../svg/icones/nettoyage-cryogenique.svg"); }
.mco-icon-evenement::before { background-image: url("../svg/icones/evenementiel.svg"); }
.mco-icon-doc::before { background-image: url("../svg/icones/devis.svg"); }
/* Pas d'icône « industrie » dans le kit : pictogramme d'usine redessiné au trait bleu nuit 2 px */
.mco-icon-usine::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2A4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2z'/%3E%3Cpath d='M17 18h1'/%3E%3Cpath d='M12 18h1'/%3E%3Cpath d='M7 18h1'/%3E%3C/svg%3E"); }

/* Emplacements photo : bloc givre « [photo à produire] » */
.mco-ph {
  background: var(--mco2-givre);
  border-radius: var(--mco2-rayon-bloc);
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  margin-bottom: 8px;
}
.mco-ph--tall { min-height: 260px; }
@media (min-width: 768px) { .mco-ph--tall { min-height: 420px; } }
.mco-ph--short { min-height: 200px; }
.mco-ph p { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--mco2-ardoise); margin: 0; }

/* Photos (bloc Image) */
.wp-block-image.mco-photo { margin: 0 0 8px; }
.wp-block-image.mco-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--mco2-rayon); }
.wp-block-image.mco-photo--short img { aspect-ratio: 3 / 2; }
.wp-block-image.mco-photo--square img { aspect-ratio: 1 / 1; }
.wp-block-image.mco-photo--portrait img { aspect-ratio: 4 / 5; }
.wp-block-image figcaption, .wp-element-caption { font-size: 13px; line-height: 18px; color: var(--mco2-ardoise); }

/* Bandeau des engagements (bloc synchronisé) : un bloc bleu nuit */
.mco-engagements {
  background: var(--mco2-nuit);
  border-radius: var(--mco2-rayon-bloc);
  padding: 32px 24px;
  margin-top: 48px;
}
@media (min-width: 768px) { .mco-engagements { padding: 32px 40px; margin-top: 64px; } }
.mco-engagements .wp-block-columns { gap: 24px; margin: 0; }
.mco-engagements .mco-chiffre, .mco-engagements p.mco-chiffre { color: #fff; font-size: 2.75rem; line-height: 1.05; margin-bottom: 6px; }
.mco-engagements p { color: var(--mco2-givre); font-size: var(--mco2-t-petit); line-height: 1.45; margin: 0; }
@media (min-width: 782px) {
  .mco-engagements .wp-block-columns { gap: 40px; }
  .mco-engagements .wp-block-column + .wp-block-column { border-left: 1px solid rgba(255, 255, 255, 0.2); padding-left: 40px; }
}
@media (max-width: 767px) {
  .mco-engagements .wp-block-column + .wp-block-column { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
}
.mco-hero--dark .mco-engagements { background: transparent; border-radius: 0; border-top: 1px solid rgba(255, 255, 255, 0.2); padding: 32px 0 0; margin-top: 40px; }

/* Étapes numérotées : le numéro dans un petit bloc */
ol.mco-steps { list-style: none; margin: 0; padding: 0; counter-reset: etape; }
ol.mco-steps li { position: relative; padding-left: 56px; margin-bottom: 20px; counter-increment: etape; min-height: 40px; }
ol.mco-steps li::before {
  content: counter(etape);
  position: absolute;
  left: 0;
  top: -2px;
  width: 40px;
  height: 40px;
  border-radius: var(--mco2-rayon);
  background: var(--mco2-nuit);
  color: #fff;
  font-family: var(--mco2-titres);
  font-size: 1.0625rem;
  font-variant-numeric: tabular-nums;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Listes */
.entry-content ul:not(.mco-plain):not(.wp-block-list-plain) { padding-left: 22px; margin: 0 0 16px; }
.entry-content ul li { margin-bottom: 8px; }
.entry-content ul li::marker { color: var(--mco2-nuit); }
.mco-check { list-style: none; padding-left: 0 !important; }
.mco-check li { padding-left: 30px; position: relative; }
.mco-check li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2A4A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Tableaux : filets givre, chiffres tabulaires, première colonne ardoise */
.wp-block-table { margin: 0 0 24px; }
.wp-block-table table { border: 0; border-collapse: collapse; width: 100%; font-size: var(--mco2-t-petit); line-height: 1.45; font-variant-numeric: tabular-nums; }
.wp-block-table th, .wp-block-table td { border: 0; border-bottom: 1px solid var(--mco2-ligne); padding: 12px 14px 12px 0; text-align: left; vertical-align: top; }
.wp-block-table th, .wp-block-table thead td { background: transparent; color: var(--mco2-nuit); font-family: var(--mco2-texte); font-weight: 700; border-bottom: var(--mco2-filet) solid var(--mco2-nuit); }
.wp-block-table td:first-child { color: var(--mco2-ardoise); font-weight: 600; }
.wp-block-table th:first-child, .wp-block-table td:first-child { min-width: 9.5em; }
.wp-block-table thead { border-bottom: 0; }
.wp-block-table tbody tr:nth-child(even) td { background: transparent; }
@media (max-width: 767px) {
  .wp-block-table table { font-size: 14px; line-height: 20px; }
  .wp-block-table th, .wp-block-table td { padding: 10px 10px 10px 0; hyphens: manual; overflow-wrap: normal; word-break: normal; }
}
/* Tableaux à deux colonnes : sur mobile, une ligne = étiquette + valeur */
@media (max-width: 599px) {
  .wp-block-table.mco-t2 table, .wp-block-table.mco-t2 tbody, .wp-block-table.mco-t2 tr, .wp-block-table.mco-t2 td { display: block; width: 100%; }
  .wp-block-table.mco-t2 thead { display: none; }
  .wp-block-table.mco-t2 tr { border-bottom: 1px solid var(--mco2-ligne); padding: 8px 0; }
  .wp-block-table.mco-t2 td { border: 0; min-width: 0; padding: 2px 0; }
  .wp-block-table.mco-t2 td:first-child { font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; }
}

/* Boutons (bloc Boutons) : un seul bouton orange par écran, le second en contour */
.wp-block-buttons { gap: 12px; }
.wp-block-button .wp-block-button__link:not(.has-background),
.wp-block-button__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 24px;
  border-radius: var(--mco2-rayon);
  font-family: var(--mco2-texte);
  font-size: var(--mco2-btn-taille);
  line-height: 1.2;
  font-weight: 700;
  background: var(--mco2-orange);
  color: #fff;
  border: 2px solid var(--mco2-orange);
  transition: background var(--mco2-vite), border-color var(--mco2-vite), transform var(--mco2-vite) var(--mco2-courbe);
}
.wp-block-button .wp-block-button__link:not(.has-background):hover,
.wp-block-button__link:hover { background: #E84400; border-color: #E84400; color: #fff; transform: translateY(-1px); }
/* Au survol du bouton orange, trois particules s'échappent (même effet que .mco2-btn--orange du kit) */
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after,
.main-navigation .main-nav ul li.mco-nav-cta > a::after {
  content: "";
  position: absolute;
  top: -6px;
  right: -6px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, var(--mco2-orange) 0 3px, transparent 3.5px) 0 0 / 14px 14px no-repeat;
  pointer-events: none;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover::after,
.main-navigation .main-nav ul li.mco-nav-cta > a:hover::after { animation: mco2-echappe .7s var(--mco2-courbe) forwards; }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background),
.is-style-outline .wp-block-button__link { background: transparent; color: var(--mco2-nuit); border-color: var(--mco2-nuit); }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background):hover,
.is-style-outline .wp-block-button__link:hover { background: var(--mco2-givre); color: var(--mco2-nuit); border-color: var(--mco2-nuit); }
.mco-btn-tel .wp-block-button__link { font-variant-numeric: tabular-nums; }
.mco-btn-tel .wp-block-button__link::before {
  content: "";
  width: 20px;
  height: 20px;
  background: url("../svg/icones/telephone.svg") no-repeat center / contain;
}
/* Sur fond bleu nuit, l'icône (tracée en bleu nuit) prend la couleur du texte : blanc */
.mco-hero--dark .mco-btn-tel .wp-block-button__link::before {
  background: currentColor;
  -webkit-mask: url("../svg/icones/telephone.svg") no-repeat center / contain;
  mask: url("../svg/icones/telephone.svg") no-repeat center / contain;
}

/* FAQ (bloc Détails) */
.mco-faq { background: var(--mco2-blanc); border: 1px solid var(--mco2-givre); border-left: var(--mco2-filet) solid var(--mco2-nuit); border-radius: 0 var(--mco2-rayon) var(--mco2-rayon) 0; padding: 0; margin-bottom: 12px; }
.mco-faq summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 52px 18px 20px;
  font-family: var(--mco2-texte);
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.4;
  color: var(--mco2-nuit);
  position: relative;
}
.mco-faq summary::-webkit-details-marker { display: none; }
.mco-faq summary::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 20px;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2A4A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat center / contain;
  transition: transform var(--mco2-vite);
}
.mco-faq[open] { border-left-color: var(--mco2-orange); }
.mco-faq[open] summary::after { transform: rotate(180deg); }
.mco-faq[open] summary { border-bottom: 1px solid var(--mco2-givre); }
.mco-faq > *:not(summary) { padding: 16px 20px 0; font-size: var(--mco2-t-petit); line-height: 1.5; }
.mco-faq > *:last-child { padding-bottom: 18px; margin-bottom: 0; }
.wp-block-details.mco-faq p:last-child { margin-bottom: 0; }

/* Bloc devis (formulaire + aparté téléphone) */
.mco-devis {
  background: var(--mco2-givre);
  border-radius: var(--mco2-rayon-bloc);
  padding: 24px;
  margin-top: var(--section-lg);
}
@media (min-width: 768px) { .mco-devis { padding: 48px; } }
.mco-devis h2 { margin-bottom: 8px; }
.mco-devis .wp-block-columns { margin: 0; gap: 32px; }
@media (min-width: 782px) {
  .mco-devis .wp-block-columns { gap: 48px; }
  .mco-devis .wp-block-columns > .wp-block-column:last-child { flex-basis: 360px; flex-grow: 0; }
}
.mco-aside {
  background: var(--mco2-nuit);
  border-radius: var(--mco2-rayon-bloc);
  padding: 32px;
  color: #fff;
  height: 100%;
  box-sizing: border-box;
}
.mco-aside .mco-lab { color: var(--mco2-sur-nuit); }
.mco-aside p { color: var(--mco2-givre); font-size: var(--mco2-t-petit); line-height: 1.45; }
.mco-tel, .mco-aside .mco-tel { font-family: var(--mco2-titres); font-size: 1.875rem; line-height: 1.2; color: #fff; display: block; margin-bottom: 12px; font-variant-numeric: tabular-nums; }
.mco-tel:hover, .mco-aside .mco-tel:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--mco2-orange); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.mco-stack .mco-card { height: auto; margin-bottom: 16px; }
.mco-aside ul { list-style: none; padding: 20px 0 0 !important; margin: 0; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.mco-aside ul li { color: var(--mco2-givre); font-size: var(--mco2-t-petit); line-height: 1.45; margin-bottom: 10px; }
.mco-aside ul li strong { color: #fff; }

/* Formulaire (WPForms) : grille, libellés, champs nets, focus orange */
.wpforms-container .wpforms-field-label {
  font-family: var(--mco2-texte) !important;
  font-size: 13px !important;
  line-height: 18px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--mco2-nuit) !important;
  margin-bottom: 8px !important;
}
.wpforms-container-full .wpforms-form .wpforms-field-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.wpforms-container-full .wpforms-form .wpforms-field-large, .wpforms-container-full .wpforms-form .wpforms-field-textarea,
.wpforms-container-full .wpforms-form .wpforms-field-checkbox, .wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox { grid-column: span 2; }
@media (max-width: 600px) { .wpforms-container-full .wpforms-form .wpforms-field-container { grid-template-columns: minmax(0, 1fr); } .wpforms-container-full .wpforms-form .wpforms-field { grid-column: span 1 !important; } }
.wpforms-container-full .wpforms-form input.wpforms-field-medium, .wpforms-container-full .wpforms-form select.wpforms-field-medium,
.wpforms-container-full .wpforms-form input.wpforms-field-large, .wpforms-container-full .wpforms-form select.wpforms-field-large,
.wpforms-container-full .wpforms-form textarea.wpforms-field-medium, .wpforms-container-full .wpforms-form .wpforms-field-medium { max-width: 100% !important; width: 100% !important; }
.wpforms-container-full .wpforms-form .wpforms-field-checkbox label.wpforms-field-label-inline { font-size: var(--mco2-t-petit); line-height: 1.45; color: var(--mco2-encre); }
.wpforms-container-full .wpforms-form .wpforms-submit-container { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.wpforms-container-full .wpforms-form .wpforms-required-label { color: var(--mco2-erreur); }
.wpforms-container input[type="text"], .wpforms-container input[type="email"], .wpforms-container input[type="tel"],
.wpforms-container select, .wpforms-container textarea {
  border: 1.5px solid var(--mco2-champ) !important;
  border-radius: var(--mco2-rayon) !important;
  background: var(--mco2-blanc) !important;
  font-family: var(--mco2-texte) !important;
  font-size: 16px !important;
  color: var(--mco2-encre) !important;
  min-height: 48px !important;
  padding: 0 16px !important;
  box-shadow: none !important;
}
.wpforms-container textarea { padding: 12px 16px !important; }
.wpforms-container input:focus, .wpforms-container textarea:focus, .wpforms-container select:focus { border-color: var(--mco2-orange) !important; box-shadow: 0 0 0 1px var(--mco2-orange) !important; outline: none; }
.wpforms-container .wpforms-field { padding: 8px 0 !important; }
.wpforms-container .wpforms-field-description, .wpforms-container .wpforms-field-sublabel { font-size: 13px !important; color: var(--mco2-ardoise) !important; }
.wpforms-container .wpforms-submit,
.wpforms-container button[type="submit"] {
  position: relative;
  background: var(--mco2-orange) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--mco2-rayon) !important;
  font-family: var(--mco2-texte) !important;
  font-size: var(--mco2-btn-taille) !important;
  font-weight: 700 !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 12px 24px !important;
}
.wpforms-container .wpforms-submit:hover, .wpforms-container button[type="submit"]:hover { background: #E84400 !important; }
.wpforms-container .wpforms-error { color: var(--mco2-erreur) !important; }

/* Avis et cas clients */
.mco-avis-head { margin: 0 0 4px; font-size: 14px; line-height: 20px; color: var(--mco2-ardoise); }
.mco-avis-head strong { display: block; font-family: var(--mco2-texte); font-weight: 700; font-size: 1.0625rem; line-height: 24px; color: var(--mco2-nuit); }
.mco-stars { color: var(--mco2-nuit); letter-spacing: 2px; font-size: 16px; margin-bottom: 10px; }
.mco-stars em { font-style: normal; letter-spacing: 0; font-size: 13px; color: var(--mco2-ardoise); margin-left: 6px; }
.mco-card .mco-avis-quote { margin-bottom: 0; }
.mco-note-google { display: flex; align-items: center; gap: 12px; }
.mco-note-google .mco-chiffre { margin: 0; }
.mco-note-google strong { font-family: var(--mco2-titres); font-weight: 400; font-size: 1.875rem; line-height: 1.2; color: var(--mco2-nuit); margin-right: 8px; }

/* Divers */
.mco-docs a { font-weight: 700; }
.mco-map { border-radius: var(--mco2-rayon); overflow: hidden; border: 1px solid var(--mco2-ligne); }
.mco-encart { border-left: var(--mco2-filet) solid var(--mco2-nuit); padding: 4px 0 4px 20px; color: var(--mco2-ardoise); font-size: var(--mco2-t-petit); line-height: 1.5; }
.entry-content .wp-block-group__inner-container { display: contents; }

/* --------------------------------------------------------------------------
   Pied de page : bleu nuit, logo sans bloc (le support est le bloc)
   -------------------------------------------------------------------------- */
.site-footer { background: var(--mco2-nuit); }
.footer-widgets { background: var(--mco2-nuit); color: var(--mco2-givre); padding: 56px 0 32px; font-size: var(--mco2-t-petit); line-height: 1.5; }
/* Grille alignée sur le conteneur du contenu : même bord gauche que le reste de la page.
   GeneratePress décale la zone de −40 px et ajoute 40 px à chaque colonne : on neutralise les deux,
   avec des sélecteurs du même poids que les siens. */
.site-footer .footer-widgets-container { max-width: none; padding-left: 0; padding-right: 0; }
.site-footer .footer-widgets-container .inside-footer-widgets {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr));
  gap: 0 32px;
  max-width: var(--mco2-conteneur);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}
.footer-widgets .inside-footer-widgets > div { flex: none; width: auto; margin: 0; padding: 0; }
.footer-widgets .widget { margin-bottom: 24px; padding: 0; }
.site-footer .footer-widgets-container .inner-padding { padding: 0; }
.footer-widgets .widget-title, .footer-widgets h2, .footer-widgets h3 {
  font-family: var(--mco2-texte);
  font-size: 13px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mco2-sur-nuit);
  margin-bottom: 8px;
  white-space: nowrap;
}
.footer-widgets p { color: var(--mco2-givre); margin-bottom: 12px; }
.footer-widgets a { color: #fff; }
.footer-widgets a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--mco2-orange); text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.footer-widgets ul { list-style: none; margin: 0; padding: 0; }
.footer-widgets ul li { margin: 0; line-height: 24px; }
.footer-widgets ul li a, .footer-widgets .mco-footer-mail, .footer-bar a { display: inline-block; padding: 10px 0; }
.footer-widgets img { width: 180px; height: auto; margin-bottom: 16px; }
/* Le fichier du logo « fond bleu nuit » garde la marge du bloc à gauche (28/400 de sa largeur) : on la compense */
.footer-widgets img[src*="MCO2-logo-fond-bleu-nuit"] { margin-left: -13px; }
.footer-widgets .mco-footer-tel { color: #fff; font-family: var(--mco2-titres); font-size: 1.25rem; font-variant-numeric: tabular-nums; display: inline-block; padding: 8px 0; }
.footer-widgets .mco-footer-mail { color: #fff; }
.site-info { background: var(--mco2-nuit); border-top: 1px solid rgba(255, 255, 255, 0.2); color: var(--mco2-sur-nuit); font-size: 13px; line-height: 18px; }
.inside-site-info { max-width: var(--mco2-conteneur); margin: 0 auto; padding: 12px var(--gutter); align-items: center; }
.site-info a { color: var(--mco2-sur-nuit); }
.site-info a:hover { color: #fff; }
.footer-bar ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0 24px; flex-wrap: wrap; }
.footer-bar ul li { display: flex; align-items: center; min-height: 44px; margin: 0; }
.footer-bar .widget { margin: 0; }
.copyright-bar { font-size: 0; }
.copyright-bar .copyright { font-size: 13px; }

/* Pied de page : adaptations par largeur d'écran (après les règles générales) */
@media (max-width: 1199px) {
  .site-footer .footer-widgets-container .inside-footer-widgets { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer-widgets .inside-footer-widgets > .footer-widget-1 { grid-column: 1 / -1; max-width: 560px; }
}
@media (max-width: 768px) {
  .site-footer .footer-widgets .footer-widgets-container .inside-footer-widgets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; margin: 0; }
  .site-footer .site-info .inside-site-info { flex-direction: column; align-items: flex-start; text-align: left; gap: 4px; padding: 12px var(--gutter) 20px; }
  .footer-bar ul { justify-content: flex-start; gap: 0 20px; }
  .site-info, .site-info .copyright-bar { margin: 0; text-align: left; }
}

/* Bandeau de consentement aux cookies : aux couleurs de la charte */
.cc-window { font-family: var(--mco2-texte) !important; background: var(--mco2-nuit) !important; color: #fff !important; border-radius: var(--mco2-rayon-bloc) !important; }
.cc-window .cc-message, .cc-window .cc-switch-label, .cc-window .cc-link { color: #fff !important; }
.cc-window .cc-link { text-decoration: underline !important; text-decoration-color: var(--mco2-orange) !important; opacity: 1 !important; }
.cc-window .cc-btn { border-radius: var(--mco2-rayon) !important; font-weight: 700 !important; min-height: 44px; }
.cc-window .cc-btn.cc-allow, .cc-window .cc-btn.cc-allowall, .cc-window .cc-btn.cc-save, .cc-window .cc-btn.cc-savesettings { background: #fff !important; color: var(--mco2-nuit) !important; border: 2px solid #fff !important; }
.cc-window .cc-slider { background: var(--mco2-ardoise) !important; }
.cc-window .cc-input-checkbox-switch:checked + .cc-slider, .cc-window .cc-slider.disabled { background: var(--mco2-orange) !important; }
.cc-window .cc-btn.cc-deny { background: transparent !important; color: #fff !important; border: 2px solid #fff !important; }
.cc-revoke, .cc-revoke.cc-bottom { background: var(--mco2-nuit) !important; color: #fff !important; font-family: var(--mco2-texte) !important; font-size: 12px !important; line-height: 16px !important; padding: 6px 12px !important; border-radius: var(--mco2-rayon) var(--mco2-rayon) 0 0 !important; opacity: .9; right: 16px !important; left: auto !important; }
.cc-revoke:hover { opacity: 1; }

/* --------------------------------------------------------------------------
   Compositions de la charte (accueil, puis réutilisées page par page)
   -------------------------------------------------------------------------- */

/* Un mot orange dans un titre : format « surlignage » natif de l'éditeur (couleur Orange de la palette) */
:is(h1, h2, h3) mark.has-inline-color { background: transparent !important; }
:is(h1, h2, h3) .has-mco2-orange-color, .mco2-accent { color: var(--mco2-orange) !important; }

/* Apparition au défilement, décalage par classe (60 ms, jamais plus de trois éléments) */
.mco2-reveal.mco2-delai-1 { transition-delay: 60ms; }
.mco2-reveal.mco2-delai-2 { transition-delay: 120ms; }
.mco2-reveal.mco2-delai-3 { transition-delay: 180ms; }

/* Hero : le logo animé occupe le visuel */
.mco2-hero-visuel { margin: 0; }
.mco2-hero-visuel svg { display: block; width: 100%; height: auto; max-width: 560px; margin-left: auto; overflow: visible; }
@media (max-width: 781px) { .mco2-hero-visuel svg { max-width: 360px; margin: 8px auto 0; } }

/* Bandeau de réassurance (bloc partagé « engagements ») : fond givre, icônes du kit, chiffres animés */
.mco-engagements.mco2-reassurance { background: var(--mco2-givre); }
.mco2-reassurance .mco-chiffre, .mco2-reassurance p.mco-chiffre { color: var(--mco2-nuit); }
.mco2-reassurance p { color: var(--mco2-encre); }
@media (min-width: 782px) {
  .mco2-reassurance .wp-block-column + .wp-block-column { border-left-color: rgba(15, 42, 74, 0.15); }
}
@media (max-width: 767px) {
  .mco2-reassurance .wp-block-column + .wp-block-column { border-top-color: rgba(15, 42, 74, 0.15); }
}
.mco2-reassurance .wp-block-column[class*="mco2-ico-"]::before {
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  margin-bottom: 12px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.mco2-ico-livraison::before { background-image: url("../svg/icones/livraison.svg"); }
.mco2-ico-conseil::before { background-image: url("../svg/icones/conseil.svg"); }
.mco2-ico-prix::before { background-image: url("../svg/icones/prix-tout-compris.svg"); }
/* Dans un premier écran bleu nuit, le bandeau reste transparent, en blanc, sans icône */
.mco-hero--dark .mco-engagements.mco2-reassurance { background: transparent; }
.mco-hero--dark .mco2-reassurance .mco-chiffre, .mco-hero--dark .mco2-reassurance p { color: #fff; }
.mco-hero--dark .mco2-reassurance .wp-block-column[class*="mco2-ico-"]::before { display: none; }
.mco-hero--dark .mco2-reassurance .wp-block-column + .wp-block-column { border-color: rgba(255, 255, 255, 0.2); }

/* Grand bloc bleu nuit (section « équipe » de l'accueil) : bord bas qui se sublime */
/* 80 px de bord qui se sublime + de l'air, pour que l'encadré qui déborde du bloc devis ne touche pas les points */
.mco-band--nuit.mco2-sublime { margin-bottom: calc(80px + var(--mco2-s8)); }
.mco-band--nuit .mco-link { color: #fff; }
.mco-band--nuit .mco-link:hover { text-decoration-color: var(--mco2-orange); }
.mco-band--nuit .wp-block-image.mco-photo img { border-radius: var(--mco2-rayon); }

/* Bloc devis : l'encadré bleu nuit sort par le haut du bloc formulaire (le franchissement) */
@media (min-width: 782px) {
  .mco-devis .wp-block-columns > .wp-block-column:last-child { margin-top: calc(-48px - var(--mco2-s4)); }
  .mco-devis .mco-aside { position: relative; z-index: 2; }
}

/* En-tête de page en bloc bleu nuit (pages produits) : contenu dans la largeur du site,
   titre à gauche, visuel à droite qui sort du bloc par la droite, bord bas qui se sublime */
.mco2-entete.mco-hero { padding-bottom: 0; }
.mco2-entete-bloc.mco-hero--dark { border-radius: var(--mco2-rayon-bloc); padding: 24px; }
.mco2-entete-bloc.mco2-sublime { border-radius: var(--mco2-rayon-bloc) var(--mco2-rayon-bloc) 0 0; margin-bottom: calc(80px + var(--mco2-s6)); }
.mco2-entete-bloc .mco-breadcrumb { margin-bottom: 16px; }
.mco2-entete-bloc h1 { margin-bottom: 16px; }
@media (min-width: 782px) {
  .mco2-entete-bloc.mco-hero--dark { padding: 40px 48px 48px; }
  .mco2-entete-bloc .mco2-sort--droite { margin-right: calc(-48px - var(--gutter)); }
}
@media (min-width: 1300px) {
  .mco2-entete-bloc .mco2-sort--droite { margin-right: calc(-48px - var(--mco2-s8)); }
}
/* Panneau givre : visible sur le bleu nuit comme sur le blanc, pour que le débordement se lise */
.mco2-trio-formats {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 8px;
  background: var(--mco2-givre);
  border-radius: var(--mco2-rayon-bloc);
  padding: 32px 24px;
}
.mco2-trio-formats svg { display: block; width: 33%; max-width: 150px; height: auto; }
.mco2-trio-formats.mco2-format-seul { padding: 40px 32px; }
.mco2-trio-formats.mco2-format-seul svg { width: 70%; max-width: 280px; }
.mco2-trio-formats.mco2-icone-seule svg { width: 40%; max-width: 160px; stroke-width: 1.25; } /* icône agrandie : trait affiné */

/* Photo d'en-tête qui sort du bloc : même débordement que le panneau des formats */
.mco2-entete-bloc .wp-block-image.mco2-sort--droite { max-width: none; } /* WordPress limite les images à 100 % de leur colonne */
.mco2-entete-bloc .wp-block-image.mco2-sort--droite img { border-radius: var(--mco2-rayon-bloc); }
.mco2-entete-bloc .wp-block-image.mco2-sort--droite + .mco-cap { color: var(--mco2-sur-nuit); }

/* Pages application : un bloc par bénéfice (4 au plus), icône du kit, filet haut */
.wp-block-column.mco2-benefice {
  background: var(--mco2-givre-2);
  border-top: var(--mco2-filet) solid var(--mco2-nuit);
  border-radius: 0 0 var(--mco2-rayon-bloc) var(--mco2-rayon-bloc);
  padding: 32px 24px;
}
@media (min-width: 782px) { .wp-block-column.mco2-benefice { padding: 40px; } }
.mco2-benefice[class*="mco2-ico-"]::before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  margin-bottom: 16px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.mco2-ico-nettoyage::before { background-image: url("../svg/icones/nettoyage-cryogenique.svg"); }
.mco2-ico-laboratoire::before { background-image: url("../svg/icones/laboratoire.svg"); }
.mco2-ico-transport::before { background-image: url("../svg/icones/transport-froid.svg"); }
.mco2-ico-evenementiel::before { background-image: url("../svg/icones/evenementiel.svg"); }
.mco2-ico-temperature::before { background-image: url("../svg/icones/temperature.svg"); }
.mco2-ico-sans-residu::before { background-image: url("../svg/icones/sans-residu.svg"); }
.mco2-ico-horloge::before { background-image: url("../svg/icones/horloge.svg"); }
.mco2-ico-industrie::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2A4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2z'/%3E%3Cpath d='M17 18h1'/%3E%3Cpath d='M12 18h1'/%3E%3Cpath d='M7 18h1'/%3E%3C/svg%3E"); }
.mco2-benefice h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); line-height: 1.15; }
.mco2-benefice .mco-prose { max-width: none; }

/* Cas client anonymisé : citation sur fond givre, sans photo */
.mco-band.mco2-cas-client { background: var(--mco2-givre); }
.mco2-cas-client .mco-prose p {
  font-size: clamp(1.1875rem, 1.8vw, 1.375rem);
  line-height: 1.45;
  font-weight: 500;
  color: var(--mco2-nuit);
  border-left: var(--mco2-filet) solid var(--mco2-orange);
  padding-left: 24px;
}

/* --------------------------------------------------------------------------
   Guides : lecture à 68 caractères, Archivo 18 px, interligne 1,6 ; sommaire collant ; encadré « à retenir »
   -------------------------------------------------------------------------- */
.mco2-guide .mco-prose { max-width: 68ch; font-size: 1.125rem; line-height: 1.6; }
.mco2-guide .mco-prose li { margin-bottom: 10px; }
.mco2-guide .mco-section h2, .mco2-guide .mco-band h2 { max-width: 780px; scroll-margin-top: 96px; }
.mco2-guide .entry-content { position: relative; }

.mco2-sommaire-rail { display: none; }
@media (min-width: 1200px) {
  .mco2-sommaire-rail {
    display: block;
    position: absolute;
    z-index: 3;
    width: 260px;
    right: max(var(--gutter), calc((100% - var(--mco2-conteneur)) / 2 + var(--gutter)));
  }
}
.mco2-sommaire { position: sticky; top: 104px; border-left: var(--mco2-filet) solid var(--mco2-givre); padding-left: 16px; }
.mco2-sommaire-titre { font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mco2-ardoise); margin: 0 0 8px; }
.mco2-sommaire ol { list-style: none; margin: 0; padding: 0; }
.mco2-sommaire li { margin: 0; }
.entry-content .mco2-sommaire a { display: block; position: relative; padding: 6px 0; font-size: var(--mco2-t-petit); line-height: 1.35; font-weight: 500; color: var(--mco2-ardoise); text-decoration: none !important; }
.entry-content .mco2-sommaire a:hover { color: var(--mco2-nuit); text-decoration: underline !important; text-decoration-color: var(--mco2-orange) !important; }
.entry-content .mco2-sommaire a[aria-current] { color: var(--mco2-nuit); font-weight: 700; }
.mco2-sommaire a[aria-current]::before { content: ""; position: absolute; left: -19px; top: 6px; bottom: 6px; width: var(--mco2-filet); background: var(--mco2-orange); }

/* Encadré « à retenir » : un bloc bleu nuit à la largeur de lecture, bord bas qui se sublime */
.mco-wrap.mco2-a-retenir {
  background: var(--mco2-nuit);
  color: #fff;
  border-radius: var(--mco2-rayon-bloc) var(--mco2-rayon-bloc) 0 0;
  padding: 32px 24px;
  margin-left: var(--gutter);
  margin-right: var(--gutter);
  margin-bottom: 80px;
  max-width: 780px;
}
.entry-content .mco2-a-retenir ul:not(.mco-plain), .entry-content .mco2-a-retenir ul li:last-child,
.mco2-a-retenir .mco-prose { margin-bottom: 0; }
@media (min-width: 782px) { .mco-wrap.mco2-a-retenir { padding: 40px 48px; } }
@media (min-width: 1200px) { .mco-wrap.mco2-a-retenir { margin-left: calc((100% - var(--mco2-conteneur)) / 2 + var(--gutter)); margin-right: auto; } }
.mco-band.mco2-sans-fond { background: transparent; }
.mco2-a-retenir h2 { color: #fff; }
.mco2-a-retenir h3, .mco2-a-retenir p, .mco2-a-retenir td, .mco2-a-retenir th { color: #fff; }
.mco2-a-retenir .wp-block-table th, .mco2-a-retenir .wp-block-table td { border-bottom-color: rgba(255, 255, 255, 0.2); }
.mco2-a-retenir .wp-block-table th { border-bottom-color: var(--mco2-orange); }
.mco2-a-retenir .wp-block-table td:first-child { color: var(--mco2-sur-nuit); }
.entry-content .mco2-a-retenir ol.mco-steps li::before { background: var(--mco2-orange); }
.mco2-a-retenir .mco-prose, .mco2-a-retenir li { color: #fff; }
.entry-content .mco2-a-retenir ul li::marker { color: var(--mco2-orange); }
mark.mco2-insecable { white-space: nowrap; } /* « 24 h » ne se coupe pas en fin de ligne */
.mco2-a-retenir .mco-check li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF4D00' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }

/* Chronologie (page « L'équipe ») : une pastille orange par étape, reliées par un filet givre */
.entry-content ul.mco2-chronologie { list-style: none; padding-left: 0 !important; }
.entry-content .mco2-chronologie li { position: relative; padding: 0 0 20px 32px; margin: 0; }
.mco2-chronologie li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 12px; height: 12px; border-radius: 50%; background: var(--mco2-orange); }
.mco2-chronologie li::after { content: ""; position: absolute; left: 5px; top: calc(0.45em + 18px); bottom: 2px; width: 2px; background: rgba(15, 42, 74, 0.2); }
.mco2-chronologie li:last-child { padding-bottom: 0; }
.mco2-chronologie li:last-child::after { display: none; }
.mco2-chronologie li strong { color: var(--mco2-nuit); font-family: var(--mco2-titres); font-weight: 400; }

/* Composition « bloc chiffres » : bloc bleu nuit, chiffres clés animés (lus dans le texte), filet orange, bord qui se sublime */
.mco2-chiffres { background: var(--mco2-nuit); border-radius: var(--mco2-rayon-bloc) var(--mco2-rayon-bloc) 0 0; padding: 32px 24px; margin-bottom: 80px; }
@media (min-width: 782px) { .mco2-chiffres { padding: 48px; } }
.mco2-chiffres h2 { color: #fff; }
.mco2-chiffres .mco-lab { color: var(--mco2-sur-nuit); }
.mco2-chiffres .wp-block-columns { margin-top: 32px; }
.mco2-chiffres .wp-block-column { border-top: var(--mco2-filet) solid var(--mco2-orange); padding-top: 16px; }
.mco2-chiffres p.mco-chiffre { color: #fff; font-size: 2.5rem; line-height: 1.05; margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.mco2-chiffres .wp-block-column p:not(.mco-chiffre) { color: var(--mco2-sur-nuit); font-size: var(--mco2-t-petit); margin: 0; }

/* Composition « bandeau devis » : bloc bleu nuit étroit, le bouton orange déborde en bas (le franchissement) */
.mco2-bandeau-devis { background: var(--mco2-nuit); border-radius: var(--mco2-rayon-bloc); padding: 32px 24px 0; max-width: 780px; margin-left: auto; margin-right: auto; text-align: center; }
@media (min-width: 782px) { .mco2-bandeau-devis { padding: 48px 48px 0; } }
.mco2-bandeau-devis h2, .mco2-bandeau-devis p { color: #fff; }
.mco2-bandeau-devis .wp-block-buttons.mco2-sort--bas { justify-content: center; margin-top: 24px; margin-bottom: -28px; }

/* Composition « trois formats » : illustration du kit sur panneau givre, carte à filet haut (mco2-carte du kit) */
.mco2-carte .mco2-format-illus { display: flex; justify-content: center; align-items: center; background: var(--mco2-givre); border-radius: var(--mco2-rayon); padding: 24px; margin-bottom: 16px; }
.mco2-carte .mco2-format-illus svg { display: block; width: 70%; max-width: 180px; height: auto; }

/* Anciennes pages sans les blocs du site (mentions légales, azote) : largeur de lecture */
.mco2-page-simple .entry-content { max-width: 72ch; }
.mco2-texte-brut .entry-content { white-space: pre-line; margin-top: -1lh; } /* le texte commence par un retour à la ligne */

/* Page contact : le bas du bloc formulaire se sublime en points givre */
.mco-devis.mco2-sublime { border-radius: var(--mco2-rayon-bloc) var(--mco2-rayon-bloc) 0 0; margin-bottom: 80px; }

/* Confirmation d'envoi : un bloc bleu nuit d'où s'échappent trois particules (une fois), jamais derrière le texte */
.mco-wrap.mco2-confirmation {
  position: relative;
  background: var(--mco2-nuit);
  border-radius: var(--mco2-rayon-bloc);
  padding: 32px 24px;
  width: calc(100% - 2 * var(--gutter));
  max-width: calc(var(--mco2-conteneur) - 2 * var(--gutter));
  box-sizing: border-box;
}
@media (min-width: 782px) { .mco-wrap.mco2-confirmation { padding: 48px; } }
.mco2-confirmation h1 { color: #fff; }
.mco2-confirmation .mco-lead { color: #fff; }
.mco2-confirmation::after {
  content: "";
  position: absolute;
  top: -30px;
  right: 40px;
  width: 44px;
  height: 40px;
  background:
    radial-gradient(circle, var(--mco2-orange) 0 5px, transparent 5.5px) 0 22px / 12px 12px no-repeat,
    radial-gradient(circle, var(--mco2-orange) 0 3.5px, transparent 4px) 18px 6px / 10px 10px no-repeat,
    radial-gradient(circle, var(--mco2-orange) 0 2.5px, transparent 3px) 34px 18px / 8px 8px no-repeat;
  animation: mco2-particules-montent 1.8s var(--mco2-courbe) .5s both;
  pointer-events: none;
}
@keyframes mco2-particules-montent { 0% { opacity: 0; transform: translateY(18px); } 40% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .mco2-confirmation::after { animation: none; } }

/* Page 404 : « Cette page s'est sublimée. », le bloc sans le 2, les particules qui s'éloignent (une fois) */
.error404 .site-content { padding: 0; }
.error404 .grid-container.site, .error404 .site.grid-container { max-width: none; }
.mco2-404 { padding-top: var(--section-lg); padding-bottom: var(--section-lg); }
.mco2-404-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; }
@media (min-width: 782px) { .mco2-404-grille { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; } }
.mco2-404-boutons { display: flex; flex-wrap: wrap; gap: 12px; }
.mco2-404 h1 { font-size: var(--mco2-t-hero); line-height: var(--mco2-interligne-titre); margin-bottom: 32px; }
.mco2-404 mark { background: transparent; }
.mco2-404-visuel svg { display: block; width: 100%; height: auto; max-width: 520px; margin-left: auto; overflow: visible; }
.mco2-404-visuel circle { animation: mco2-s-eloigne 1.6s var(--mco2-courbe) both; }
.mco2-404-visuel circle:nth-child(2) { animation-delay: .1s; }
.mco2-404-visuel circle:nth-child(3) { animation-delay: .2s; }
.mco2-404-visuel circle:nth-child(4) { animation-delay: .3s; }
.mco2-404-visuel circle:nth-child(5) { animation-delay: .4s; }
@keyframes mco2-s-eloigne { from { opacity: 0; transform: translate(-24px, 24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mco2-404-visuel circle { animation: none; } }
@media (max-width: 781px) { .mco2-404-visuel svg { max-width: 320px; margin: 24px auto 0; } }

/* Mouvement réduit : rien ne bouge */
@media (prefers-reduced-motion: reduce) {
  .mco-card, .wp-block-button__link, .mco2-barre-mobile, .mco2-barre-mobile.est-cachee { transition: none; }
  .mco-card:hover, .wp-block-button__link:hover { transform: none; }
  .wp-block-button .wp-block-button__link:hover::after,
  .main-navigation .main-nav ul li.mco-nav-cta > a:hover::after { animation: none; }
}
