/* =========================================================
   CityCleaner — CSS additionnel GLOBAL (V20)
   Passe : consolidation sécurisée — 05
   Changements de cette passe :
   - formalisation documentaire des décisions canoniques
   - aucune modification visuelle volontaire sur le runtime
   - cc-fitx confirmé comme canon ; cc-fit conservé en shim legacy
   - Archive V2 confirmé comme couche archive active du fichier
   - header mobile Astra maintenu gelé en couche runtime dédiée
   - DS mis à jour pour refléter ces décisions
   ========================================================= */

/* =========================================================
   GOUVERNANCE CSS — DÉCISIONS CANONIQUES EN V20
   - FOUNDATION : canonique
   - HOMEPAGE HERO : variante Elementor HTML canonique
   - HOMEPAGE FIT : cc-fitx canonique
   - LEGACY COMPAT : cc-fit maintenu en shim temporaire hors homepage
   - ARCHIVE : V2 = couche active du fichier
   - ASTRA MOBILE HEADER : runtime gelé, hors refactor dans cette passe
   - RÈGLE DE MAINTENANCE : ne plus réintroduire de variante parallèle
     sans l’isoler explicitement en legacy ou runtime override
   ========================================================= */

/* =========================================================
CITYCLEANER — CSS ADDITIONNEL GLOBAL (TOKENS) — v1.3 (COMPLET)

IMPORTANT
- Cette version est un remplacement COMPLET.
- Elle inclut TOUS les tokens (espacements, containers, etc.).
- Elle ajoute : alternance de fonds par section + halos soft + chips standard.
- Elle évite la casse “cartes collées / gaps à 0” (qui arrive si les tokens manquent).

RÈGLE D’OR
Toute section CityCleaner doit dériver d’un composant existant
et respecter les tokens (pas d’ombres/espacements “à la main”).
========================================================= */

/* =========================================================
   01 — FOUNDATION / TOKENS / GLOBAL PRIMITIVES — CANONIQUE
   ========================================================= */

/* -----------------------------
0) TOKENS (source of truth)
----------------------------- */
:root{
  /* Brand */
  --cc-navy:#012148;
  --cc-turq:#27CFA9;
  --cc-sky:#46D9FF;
  --cc-violet:#8958FE;

  /* Surfaces */
  --cc-bg:#ffffff;
  --cc-bgSoft:#F7F9FB;

  /* Ink */
  --cc-ink78: rgba(1,33,72,.78);
  --cc-ink62: rgba(1,33,72,.62);
  --cc-ink50: rgba(1,33,72,.50);
  --cc-ink28: rgba(1,33,72,.28);
  --cc-ink18: rgba(1,33,72,.18);
  --cc-ink10: rgba(1,33,72,.10);
  --cc-ink08: rgba(1,33,72,.08);

  /* 8pt system (COMPLET) */
  --cc-4: 4px;
  --cc-8: 8px;
  --cc-12: 12px;
  --cc-16: 16px;
  --cc-20: 20px;
  --cc-24: 24px;
  --cc-28: 28px;
  --cc-32: 32px;
  --cc-36: 36px;
  --cc-40: 40px;
  --cc-48: 48px;
  --cc-56: 56px;
  --cc-64: 64px;
  --cc-72: 72px;
  --cc-96: 96px;
  --cc-120: 120px;

  /* Radius */
  --cc-r14: 14px;
  --cc-r16: 16px;
  --cc-r18: 18px;
  --cc-r22: 22px;
  --cc-r24: 24px;
  --cc-r999: 999px;

  /* Containers */
  --cc-container: min(1120px, calc(100% - 32px)); /* 16px padding latéral */
  --cc-container-narrow: min(760px, calc(100% - 32px));
  --cc-process: 720px;

  /* Shadows (fonctionnelles) */
  --cc-shadow-card: 0 10px 26px rgba(1,33,72,0.06);
  --cc-shadow-cta:  0 10px 24px rgba(1,33,72,0.12);
  --cc-shadow-ctaHover: 0 14px 30px rgba(1,33,72,0.16);
}

/* -----------------------------
1) Base typographique + rendu
----------------------------- */
html{
  -webkit-text-size-adjust:100%;
  text-rendering:optimizeLegibility;
}

body,
button, input, select, textarea,
h1,h2,h3,h4,h5,h6{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}

body{
  color: var(--cc-navy);
  background: var(--cc-bg);
}

strong{ font-weight:900; }
a{ color:inherit; }
img{ max-width:100%; height:auto; }

/* Focus visible sobre */
:focus-visible{
  outline:2px solid rgba(1,33,72,.22);
  outline-offset:4px;
}

a,button{ -webkit-tap-highlight-color: transparent; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    transition:none !important;
    scroll-behavior:auto !important;
  }
}

/* -----------------------------
2) Fond global premium (calme)
----------------------------- */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(1200px 700px at 10% -10%, rgba(1,33,72,0.065), transparent 60%),
    radial-gradient(1100px 650px at 90% 20%, rgba(39,207,169,0.065), transparent 60%),
    #FCFDFE;
}

/* -----------------------------
3) Normalisation Astra/Elementor (anti-surprises)
----------------------------- */
.elementor-section,
.elementor-widget,
.elementor-widget-wrap,
.elementor-column-wrap{
  box-sizing:border-box;
}

.elementor-widget-heading .elementor-heading-title{
  letter-spacing:inherit;
}

/* NOTE: on évite ici de forcer box-shadow:none sur .elementor-element,
   car cela peut tuer des ombres voulues sur des cards CityCleaner. */

/* -----------------------------
4) Containers CityCleaner (unifiés)
----------------------------- */
.cc-hero__inner,
.cc-delegate3__inner,
.cc-proof__inner,
.cc-plans__inner,
.cc-consumables__inner,
.cc-fitx__inner, /* CANON */
.cc-ops__inner,
.cc-faq__inner,
.cc-cta-final__inner{
  width:var(--cc-container) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.cc-cta-final__inner{ width:var(--cc-container-narrow) !important; }
.cc-ops__grid,
.cc-faq__list{ max-width:var(--cc-process) !important; }

/* -----------------------------
5) BACKGROUNDS OFFICIELS PAR SECTION
(ton ordre réel de page)
----------------------------- */
.cc-hero{ background: var(--cc-bg); }
.cc-delegate3{ background: var(--cc-bgSoft); }
.cc-plans{ background: var(--cc-bg); }
.cc-fitx{ background: var(--cc-bgSoft); }
.cc-proof{ background: var(--cc-bg); }
.cc-ops{ background: var(--cc-bgSoft); }
.cc-faq{ background: var(--cc-bg); }
.cc-cta-final{ background: var(--cc-bgSoft); }

/* Halos premium ultra discrets UNIQUEMENT sur fonds soft */
.cc-delegate3,
.cc-fitx, /* CANON */
.cc-ops,
.cc-cta-final{
  background:
    radial-gradient(900px 420px at 12% 10%, rgba(70,217,255,.07), transparent 60%),
    radial-gradient(760px 380px at 88% 15%, rgba(137,88,254,.06), transparent 55%),
    var(--cc-bgSoft);
}

/* -----------------------------
6) UI Family (classes réutilisables)
----------------------------- */
.cc-kicker{
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--cc-ink62);
  white-space:nowrap;
}

.cc-lead{
  font-size:16px;
  line-height:1.65;
  color:var(--cc-ink78);
  max-width:62ch;
}

.cc-body{
  font-size:15px;
  line-height:1.55;
  color:var(--cc-ink78);
  font-weight:650;
}

.cc-fine{
  font-size:14px;
  line-height:1.6;
  color:var(--cc-ink62);
  font-weight:650;
  font-style:normal;
}

.cc-hairline{ border-top:1px solid var(--cc-ink10); }

/* -----------------------------
7) CARDS — standards officiels
- Ombre uniquement pour les “cards primaires” (fonctionnel)
----------------------------- */
.cc-card{
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r24);
  box-shadow:none;
}

/* Card primaire (sections clés) */
.cc-card--elevated{
  box-shadow: var(--cc-shadow-card);
  border-radius: var(--cc-r18);
}

/* Auto-élévation : uniquement ce qui est vraiment “card” */
.cc-heroCard,
.cc-delegate3Card,
.cc-proofCard,
.cc-plan,
.cc-plansCard{
  box-shadow: var(--cc-shadow-card) !important;
  border-radius: var(--cc-r18) !important;
}

/* IMPORTANT : chips/tags NE DOIVENT PAS flotter */
.cc-chip,
.cc-delegate3__tag,
.cc-tag{
  box-shadow:none !important;
}

/* -----------------------------
8) CHIPS / TAGS — standard
----------------------------- */
.cc-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px 10px;
  border-radius:var(--cc-r999);
  border:1px solid var(--cc-ink10);
  color:var(--cc-ink62);
  background:transparent;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

/* -----------------------------
9) CTA — standard sobre (optionnel)
----------------------------- */
.cc-ctaPrimary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:16px 18px;
  min-height:56px;
  border-radius:var(--cc-r16);
  text-decoration:none;
  font-weight:800;
  color:#fff !important;

  background: linear-gradient(90deg, var(--cc-navy), #06306A);
  border:1px solid rgba(1,33,72,0.15);
  box-shadow: var(--cc-shadow-cta);
  transition: transform 140ms ease, box-shadow 140ms ease;
  text-align:center;
}

.cc-ctaPrimary:hover{
  transform: translateY(-1px);
  box-shadow: var(--cc-shadow-ctaHover);
}

/* -----------------------------
10) Desktop “sans designer” (mise en colonne stable)
----------------------------- */
@media (min-width: 900px){
  .cc-hero__inner{
    display:grid;
    grid-template-columns: 1.1fr .9fr;
    gap: var(--cc-40);
    align-items:start;
  }

  .cc-delegate3__grid{ grid-template-columns:1fr 1fr; }
  .cc-proof__grid{ grid-template-columns:1fr 1fr; }
  .cc-fitx__grid{ grid-template-columns:1fr 1fr; }
  .cc-plans__grid{ grid-template-columns:repeat(4,1fr); }

  .cc-cta-final__inner{
    width:min(860px, calc(100% - 64px)) !important;
  }
}

/* -----------------------------
11) WhatsApp FAB — foundation legacy retiré
Le FAB canonique est défini plus bas dans la couche HOMEPAGE / runtime.
Ici, on ne garde plus de variante concurrente.
----------------------------- */

/* -----------------------------
12) Footer premium (utilitaire)
----------------------------- */
.cc-footer-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;

  font-size: 13px;
  letter-spacing: .01em;
  color: var(--cc-ink62);
}

.cc-footer-left{
  font-weight: 600;
  color: var(--cc-ink62);
}

.cc-footer-right{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.cc-footer-right a{
  color: var(--cc-ink62);
  text-decoration: none;
  font-weight: 600;
}

.cc-footer-right a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cc-sep{ color: var(--cc-ink28); }

@media (max-width: 640px){
  .cc-footer-inner{
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 18px 16px;
  }
}
/* =========================================================
CityCleaner — RYTHME VERTICAL GLOBAL (DS)
Objectif : même respiration sur toutes les sections principales
Desktop ≈ 120px haut/bas | Mobile ≈ 72px haut/bas
CTA final : plus d’air pour “clôturer” (desktop 160px | mobile 96px)
IMPORTANT : on NE TOUCHE PAS au HERO (il garde sa mise en scène)
========================================================= */
:root{
  --cc-section-py-mobile: 72px;
  --cc-section-py-desktop: 120px;

  --cc-section-py-cta-mobile: 96px;
  --cc-section-py-cta-desktop: 160px;
}

/* Sections principales (hors Hero) */
.cc-delegate3__inner,
.cc-plans__inner,
.cc-fitx__inner,
.cc-proof__inner,
.cc-ops__inner,
.cc-faq__inner{
  padding-top: var(--cc-section-py-mobile) !important;
  padding-bottom: var(--cc-section-py-mobile) !important;
}

/* CTA final (effet “conclusion”) */
.cc-cta-final__inner{
  padding-top: var(--cc-section-py-cta-mobile) !important;
  padding-bottom: var(--cc-section-py-cta-mobile) !important;
}

@media (min-width: 900px){
  .cc-delegate3__inner,
  .cc-plans__inner,
  .cc-fitx__inner,
  .cc-proof__inner,
  .cc-ops__inner,
  .cc-faq__inner{
    padding-top: var(--cc-section-py-desktop) !important;
    padding-bottom: var(--cc-section-py-desktop) !important;
  }

  .cc-cta-final__inner{
    padding-top: var(--cc-section-py-cta-desktop) !important;
    padding-bottom: var(--cc-section-py-cta-desktop) !important;
  }
}

/* ===== Styles composants récupérés de la homepage (source of truth) ===== */

/* =========================================================
   03 — HOMEPAGE COMPONENTS — OFFICIEL
   Règles :
   - le HERO Elementor HTML reste la seule référence runtime
   - le support global du HERO legacy aligné DELEGATE3 a été retiré
     de ce fichier pour éviter une double autorité sur .cc-hero*
   - la homepage de référence conserve encore ce hero legacy dans un
     conteneur Elementor masqué sur desktop / tablet / mobile, avec
     son propre style inline local
   ========================================================= */

/* =========================================================
   LEGACY HERO — support global retiré en V18
   Motif : variante masquée sur tous les devices dans la homepage de
   référence + style local déjà embarqué dans le widget HTML legacy.
   Le HERO Elementor HTML ci-dessous reste le seul hero runtime canonique.
   ========================================================= */

/* =========
       CITYCLEANER HERO (Elementor HTML)
       ========= */

    .cc-hero {
      --navy: #012148;
      --turq: #27CFA9;
      --blue: #46D9FF;
      --violet: #8958FE;
      --text: #0B1B33;
      --muted: #5C6B84;
      --line: rgba(1, 33, 72, 0.10);
      --card: #ffffff;

      padding: clamp(40px, 6vw, 88px) 0;
      background: radial-gradient(1200px 600px at 10% 10%, rgba(70, 217, 255, 0.10), transparent 60%),
                  radial-gradient(900px 500px at 90% 10%, rgba(137, 88, 254, 0.08), transparent 55%),
                  linear-gradient(#ffffff, #ffffff);
      color: var(--text);
    }

    .cc-hero__inner {
      width: min(1120px, 92vw);
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1.2fr 0.8fr;
      gap: clamp(18px, 4vw, 56px);
      align-items: start;
    }

    .cc-hero__kicker {
      font-size: 12px;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 14px;
      font-weight: 700;
    }

    .cc-hero__title {
      font-size: clamp(34px, 4.2vw, 56px);
      line-height: 1.05;
      margin: 0 0 18px 0;
      color: var(--navy);
      font-weight: 800;
    }

    .cc-hero__title--accent {
      color: var(--navy);
      position: relative;
      display: inline-block;
    }

    .cc-hero__title--accent::after {
      content: "";
      display: block;
      height: 8px;
      margin-top: 10px;
      width: 62%;
      background: linear-gradient(90deg, rgba(39, 207, 169, 0.55), rgba(70, 217, 255, 0.35));
      border-radius: 999px;
    }

    .cc-hero__subtitle {
      font-size: 16px;
      line-height: 1.6;
      margin: 0 0 18px 0;
      color: var(--text);
      max-width: 62ch;
    }

    .cc-hero__bullets {
      margin: 0 0 26px 0;
      padding-left: 18px;
      color: var(--muted);
      line-height: 1.8;
      font-size: 14px;
    }

    .cc-hero__ctaRow {
      display: grid;
      gap: 12px;
      max-width: 520px;
    }

    .cc-hero__cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;

      padding: 16px 18px;
      min-height: 56px;
      border-radius: 16px;
      text-decoration: none;
      font-weight: 800;
      color: #ffffff !important;
      background: linear-gradient(90deg, var(--navy), #06306A);
      border: 1px solid rgba(1, 33, 72, 0.15);
      box-shadow: 0 10px 24px rgba(1, 33, 72, 0.12);
      transition: transform 140ms ease, box-shadow 140ms ease;
      text-align: center;
    }

    .cc-hero__cta:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 30px rgba(1, 33, 72, 0.16);
    }

    /* Icône WhatsApp (blanc, discrète) */
    .cc-hero__ctaIco{
      display:inline-flex;
      width:18px;
      height:18px;
      flex:0 0 18px;
    }
    .cc-hero__ctaIco svg{
      width:18px;
      height:18px;
      color:#ffffff;
    }

    .cc-hero__micro {
      font-size: 12px;
      color: var(--muted);
      line-height: 1.4;
    }

    /* Card (scopée hero pour éviter conflit avec ton système global) */
    .cc-heroCard {
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 22px;
      box-shadow: 0 10px 26px rgba(1, 33, 72, 0.06);
    }

    .cc-card__title {
      font-size: 12px;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 16px;
      font-weight: 800;
    }

    .cc-card__item {
      display: grid;
      grid-template-columns: 32px 1fr;
      gap: 12px;
      align-items: start;
      padding: 10px 0;
    }

    .cc-ico {
      width: 32px;
      height: 32px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 12px;
      background: rgba(39, 207, 169, 0.10);
      border: 1px solid rgba(39, 207, 169, 0.18);
      color: var(--navy);
    }

    .cc-ico svg {
      width: 18px;
      height: 18px;
      stroke: var(--navy);
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .cc-card__label {
      font-weight: 900;
      color: var(--navy);
      font-size: 14px;
      line-height: 1.2;
      margin-bottom: 4px;
    }

    .cc-card__desc {
      font-size: 13px;
      color: var(--muted);
      line-height: 1.45;
    }

    .cc-card__divider {
      height: 1px;
      background: var(--line);
      margin: 6px 0;
    }

    /* Responsive */
    @media (max-width: 920px) {
      .cc-hero__inner { grid-template-columns: 1fr; }
      /* Décision : on cache "Inclus" sur mobile + tablette */
      .cc-hero__right { display: none; }
    }

/* =========================================================
       DELEGATE3 — aligné HERO (calme, premium, continuité)
       ========================================================= */

    .cc-delegate3{
      background: transparent;
    }

    .cc-delegate3__inner{
      padding: var(--cc-56) 0 var(--cc-64);
    }

    .cc-delegate3__title{
      margin:0 0 var(--cc-16);
      font-weight:950;
      font-size: clamp(26px, 6.2vw, 40px);
      line-height:1.1;
      color: var(--cc-navy);
      text-wrap: balance;
    }

    .cc-delegate3__lead{
      margin:0;
      max-width:62ch;
      font-size:16px;
      line-height:1.65;
      color: var(--cc-ink78);
    }

    .cc-delegate3__grid{
      margin-top: var(--cc-32);
      display:grid;
      gap: var(--cc-16);
      grid-template-columns: 1fr;
      align-items: start;
    }

    /* Carte — plus proche du HERO */
    .cc-delegate3Card{
      background: var(--cc-bg);
      border: 1px solid var(--cc-ink10);
      border-radius: 18px; /* proche hero */
      overflow: hidden;
      box-shadow: 0 10px 26px rgba(1, 33, 72, 0.06); /* hero-like */
    }

    /* Header carte — on enlève le gros bloc gris, on garde une légère teinte */
    .cc-delegate3Card__top{
      padding: 22px 20px 14px;
      background: transparent;
      border-bottom: 1px solid var(--cc-ink10);
    }

    .cc-delegate3Card__kicker{
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .10em;
      text-transform: uppercase;
      color: var(--cc-ink62);
      margin-bottom: 10px;
      white-space: nowrap;
    }

    .cc-delegate3Card__head{
      display:flex;
      gap: 12px;
      align-items:flex-start;
    }

    .cc-delegate3Card__ico{
      width: 28px;
      height: 28px;
      flex: 0 0 28px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius: 12px;
      background: rgba(39, 207, 169, 0.10);
      border: 1px solid rgba(39, 207, 169, 0.18);
      margin-top: 1px;
    }

    .cc-delegate3Card__ico svg{
      width: 18px;
      height: 18px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8; /* align hero */
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-delegate3Card__h{
      margin:0;
      font-size: 18px;
      font-weight: 900;
      line-height: 1.25;
      color: var(--cc-navy);
    }

    .cc-delegate3Card__list{
      list-style:none;
      margin:0;
      padding: 16px 20px 20px;
      display:grid;
      gap: 14px;
    }

    .cc-delegate3Card__list li{
      display:flex;
      gap: 12px;
      font-size: 15px;
      line-height: 1.55;
      color: var(--cc-ink78);
      font-weight: 650;
    }

    .cc-delegate3Card__miniIco{
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top: 1px;
      opacity: .95;
    }

    .cc-delegate3Card__miniIco svg{
      width: 20px;
      height: 20px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8; /* align hero */
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-delegate3__statement{
      margin-top: var(--cc-40);
      padding-top: var(--cc-16);
      border-top: 1px solid var(--cc-ink10);
      display:flex;
      gap: 12px;
      max-width: 720px;
    }

    .cc-delegate3__statementIco{
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top: 1px;
      opacity: .95;
    }

    .cc-delegate3__statementIco svg{
      width: 20px;
      height: 20px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-delegate3__statementLine,
    .cc-delegate3__optionCopy{
      font-size: 15px;
      line-height: 1.55;
      font-weight: 650;
      color: var(--cc-ink78);
    }

    .cc-delegate3__optionLine{
      margin-top: var(--cc-8);
      display:flex;
      align-items:center;
      flex-wrap:wrap;
      gap: var(--cc-8);
    }

    .cc-delegate3__tag{
      padding: 4px 8px;
      font-size: 12px;
      font-weight: 900;
      border-radius: var(--cc-r999);
      border: 1px solid var(--cc-ink10);
      color: var(--cc-ink62);
      background: transparent;
      white-space: nowrap;
    }

    @media (min-width:900px){
      .cc-delegate3__grid{
        grid-template-columns: 1fr 1fr;
      }
    }

/* =========================================================
       CC PLANS — Scoped CSS (cohérence avec HERO)
       ========================================================= */

    .cc-plans{
      /* Palette (alignée avec CityCleaner) */
      --cc-navy:#012148;
      --cc-turq:#27CFA9;
      --cc-blue:#46D9FF;
      --cc-violet:#8958FE;

      --cc-ink:#0B1B33;
      --cc-ink78:rgba(11,27,51,.78);
      --cc-ink62:rgba(11,27,51,.62);
      --cc-line:rgba(1,33,72,.10);

      --cc-bg:#ffffff;
      --cc-bgSoft:#F7F9FB;

      /* Rayons / ombres */
      --cc-r16:16px;
      --cc-r18:18px;
      --cc-r999:999px;
      --cc-shadow:0 10px 26px rgba(1,33,72,.06);
      --cc-shadowHover:0 14px 30px rgba(1,33,72,.07);

      /* Espacements (fallback, au cas où le global n’existe pas) */
      --cc-8:8px;
      --cc-10:10px;
      --cc-12:12px;
      --cc-14:14px;
      --cc-16:16px;
      --cc-18:18px;
      --cc-20:20px;
      --cc-24:24px;
      --cc-28:28px;
      --cc-32:32px;
      --cc-40:40px;
      --cc-56:56px;
      --cc-64:64px;

      color:var(--cc-ink);
      background: transparent;
    }

    /* Fond doux si alternance de sections */
    .cc-plans[data-bg="soft"]{
      background:
        radial-gradient(900px 500px at 12% 10%, rgba(70,217,255,.06), transparent 55%),
        radial-gradient(900px 520px at 88% 10%, rgba(137,88,254,.05), transparent 55%),
        linear-gradient(var(--cc-bgSoft), var(--cc-bgSoft));
    }
    .cc-plans[data-bg="white"]{ background:var(--cc-bg); }

    .cc-plans__inner{
      width:min(1120px, 92vw);
      margin:0 auto;
      padding:clamp(40px, 6vw, 88px) 0;
    }

    .cc-plans__header{ max-width:72ch; }

    .cc-plans__kicker{
      font-size:12px;
      letter-spacing:.10em;
      text-transform:uppercase;
      color:var(--cc-ink62);
      margin-bottom:var(--cc-14);
      font-weight:800;
    }

    .cc-plans__title{
      margin:0 0 var(--cc-12);
      color:var(--cc-navy);
      font-weight:950;
      letter-spacing:-.01em;
      line-height:1.08;
      font-size:clamp(26px, 4.2vw, 40px);
      text-wrap:balance;
    }

    .cc-plans__lead{
      margin:0;
      color:var(--cc-ink78);
      font-size:16px;
      line-height:1.65;
    }
    .cc-plans__lead strong{ color:var(--cc-navy); font-weight:900; }

    .cc-plans__radio{
      position:absolute; opacity:0;
      width:1px; height:1px;
      pointer-events:none;
    }

    /* Sélecteur (mobile) */
    .cc-plans__pick{
      margin:var(--cc-20) 0 0;
      padding:var(--cc-8);
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:var(--cc-8);
      border:1px solid var(--cc-line);
      border-radius:var(--cc-r16);
      background:var(--cc-bg);
      box-shadow:0 8px 18px rgba(1,33,72,.04);
    }
    .cc-plans__legend{
      position:absolute;width:1px;height:1px;
      padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);
      border:0;white-space:nowrap;
    }
    .cc-plans__seg{
      display:flex;align-items:center;justify-content:center;
      min-height:40px;
      padding:10px 8px;
      border-radius:var(--cc-r16);
      border:1px solid transparent;
      background:transparent;
      color:var(--cc-ink78);
      font-weight:900;
      font-size:14px;
      letter-spacing:.02em;
      cursor:pointer;
      user-select:none;
    }
    #ccp-studio:checked ~ .cc-plans__pick label[for="ccp-studio"],
    #ccp-t1:checked     ~ .cc-plans__pick label[for="ccp-t1"],
    #ccp-t2:checked     ~ .cc-plans__pick label[for="ccp-t2"],
    #ccp-t3:checked     ~ .cc-plans__pick label[for="ccp-t3"]{
      background:rgba(1,33,72,.04);
      border-color:rgba(1,33,72,.10);
      color:var(--cc-navy);
    }

    /* Grid pricing */
    .cc-plans__grid{
      margin-top:var(--cc-16);
      display:grid;
      grid-template-columns:1fr;
      gap:var(--cc-16);
    }

    .cc-onlyMobile{ display:block; }
    .cc-onlyDesktop{ display:none; }

    /* Mobile : une seule carte affichée (sans JS) */
    .cc-plans__card{ display:none; }
    #ccp-studio:checked ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(1){ display:block; }
    #ccp-t1:checked     ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(2){ display:block; }
    #ccp-t2:checked     ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(3){ display:block; }
    #ccp-t3:checked     ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(4){ display:block; }

    /* Card (cohérente avec le HERO : border fin + ombre douce) */
    .cc-plans__card{
      overflow:hidden;
      background:var(--cc-bg);
      border:1px solid var(--cc-line);
      border-radius:var(--cc-r18);
      box-shadow:var(--cc-shadow);
      transition:transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
    }
    @media (hover:hover){
      .cc-plans__card:hover{
        transform:translateY(-1px);
        box-shadow:var(--cc-shadowHover);
        border-color:rgba(1,33,72,.14);
      }
    }

    .cc-plans__cardTop{
      padding:28px var(--cc-24) var(--cc-18);
      background:var(--cc-bgSoft);
      border-bottom:1px solid var(--cc-line);
    }

    .cc-plans__planKicker{
      margin:0 0 var(--cc-12);

          font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-size:12px;
      color:rgba(1,33,72,.70);
      white-space:nowrap;
    }

    .cc-plans__priceRow{
      display:flex;
      align-items:baseline;
      gap:var(--cc-16);
      margin:0 0 var(--cc-10);
    }
    .cc-plans__amount{
      font-size:44px;
      line-height:1;
      letter-spacing:-.03em;
      font-weight:950;
      color:var(--cc-navy);
      font-variant-numeric:tabular-nums;
    }
    .cc-plans__unit{
      font-size:14px;
      font-weight:750;
      color:rgba(1,33,72,.60);
      letter-spacing:.05em;
      white-space:nowrap;
    }

    .cc-plans__meta{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:10px;
    }
    .cc-plans__pill{
      display:inline-flex;
      align-items:center;
      font-size:14px;
      font-weight:900;
      color:rgba(1,33,72,.78);
      padding:10px 12px;
      border-radius:var(--cc-r999);
      background:var(--cc-bg);
      border:1px solid var(--cc-line);
      white-space:nowrap;
    }
    .cc-plans__extraInline{
      font-size:13px;
      color:rgba(1,33,72,.62);
      font-weight:650;
      white-space:nowrap;
    }
    .cc-plans__extraInline strong{ color:var(--cc-navy); font-weight:900; }

    .cc-plans__hint{
      padding:12px var(--cc-24) 14px;
      color:rgba(1,33,72,.62);
      font-size:13px;
      font-weight:650;
      line-height:1.5;
      background:var(--cc-bg);
    }

    /* Ligne “Inclus…” (desktop) + SVG */
    .cc-plans__includedLine{
      margin-top:var(--cc-12);
      display:flex;
      align-items:flex-start;
      gap:10px;
      color:var(--cc-ink62);
      font-size:14px;
      line-height:1.55;
      font-weight:650;
    }
    .cc-plans__includedLine strong{ color:var(--cc-navy); font-weight:900; }

    .cc-plans__includedIco{
      width:22px;height:22px;
      flex:0 0 22px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top:2px;
      color:var(--cc-navy);
      opacity:.86;
    }
    .cc-plans__includedIco svg{
      width:22px;height:22px;
      stroke:currentColor;
      fill:none;
      stroke-width:2.2;
      stroke-linecap:round;
      stroke-linejoin:round;
      vector-effect:non-scaling-stroke;
    }

    /* CTA (identique HERO : sobre, non agressif, mais ferme) */
    .cc-plans__ctaSolo{
      margin-top:var(--cc-16);
      display:grid;
      gap:10px;
      max-width:760px;
    }
    .cc-plans__ctaFine{
      font-size:14px;
      color:var(--cc-ink62);
      font-weight:650;
    }
    .cc-plans__ctaBtn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding:16px 18px;
      min-height:56px;
      border-radius:16px;
      text-decoration:none !important;
      font-weight:900;
      color:#ffffff !important;
      background:linear-gradient(90deg, var(--cc-navy), #06306A);
      border:1px solid rgba(1,33,72,.15);
      box-shadow:0 10px 24px rgba(1,33,72,.12);
      transition:transform 140ms ease, box-shadow 140ms ease;
      text-align:center;
      width:fit-content;
    }
    .cc-plans__ctaBtn:hover{
      transform:translateY(-1px);
      box-shadow:0 14px 30px rgba(1,33,72,.16);
    }

    /* Mobile : CTA full-width + respiration avant l’accordéon */

    /* Mobile : version “compact” (anti-bloc de texte) */
    @media (max-width:899px){
      .cc-plans__includedLine{ display:none !important; }
      .cc-plans__hint{ display:none; } /* remplacé par les chips */
      .cc-plans__ctaSolo{ gap:8px; }
      .cc-plans__micro{ font-size:12px; }
    }

    /* Chips (mobile) */
    .cc-plans__chips{
      margin-top:14px;
      display:grid;
      align-items:stretch;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      align-items:stretch;
      gap:10px;
    }
    
    .cc-plans__chip{
      display:flex;
      align-items:center;
      gap:10px;
      padding:11px 12px;
      border:1px solid var(--cc-line);
      border-radius:14px;
      background:#ffffff;
      box-shadow:0 8px 18px rgba(1,33,72,.04);
      color:var(--cc-ink78);
      font-size:13px;
      font-weight:750;
      min-height:52px;               /* même hauteur visuelle */
    }
    
    /* Chips : grille parfaite + pas de coupure de mots (override thèmes) */
    .cc-plans__chip{ width:100%; }
    .cc-plans__chip span{
      min-width:0;                 /* autorise le wrap dans une grille */
      display:-webkit-box;
      -webkit-line-clamp:2;        /* max 2 lignes */
      -webkit-box-orient:vertical;
      line-height:1.25;
      white-space:normal;
      overflow:hidden;
      text-overflow:ellipsis;
      overflow-wrap:break-word;    /* évite le dépassement */
      word-break:normal;
      hyphens:auto;                /* autorise coupure propre en FR si besoin */
    }
    
    .cc-plans__chip strong{ color:var(--cc-navy); font-weight:900; }
    .cc-plans__chipIco{
      width:28px;height:28px;
      flex:0 0 28px;
      display:grid;
      place-items:center;
      border-radius:12px;
      background:rgba(39,207,169,.10);
      border:1px solid rgba(39,207,169,.18);
      color:var(--cc-navy);
      overflow:hidden;
      line-height:0; /* évite tout décalage */
    }
    .cc-plans__chipIco svg{
      display:block;
      transform-box: fill-box;
      transform-origin: center;
      transform-box: fill-box;
      transform-origin:center;
      transform:translateY(0.9px);
      width:18px;height:18px;
      margin:0;
      stroke:currentColor;
      fill:none;
      stroke-width:2.2;
      stroke-linecap:round;
      stroke-linejoin:round;
      vector-effect:non-scaling-stroke;
      opacity:.92;
    }

    /* Accordéon : aérer sans ajouter de texte */
    @media (max-width:899px){
      .cc-plans__detailsBody{ padding:14px 14px 16px; }
      .cc-plans__detailsGrid{ gap:14px; }
      .cc-plans__detailsKicker{ margin-bottom:6px; }
      .cc-plans__list{ gap:10px; font-size:13px; }
      .cc-plans__detailsFoot{ font-size:13px; }
    }

    @media (max-width:899px){
      .cc-plans__ctaBtn{
        width:100%;
        justify-content:center;
      }
      .cc-plans__details{ margin-top:28px; }
    }

    .cc-plans__ctaIco{ display:inline-flex; width:18px;height:18px; flex:0 0 18px; color:#fff; }
    .cc-plans__ctaIco svg{ width:18px;height:18px; color:#fff; }

    .cc-plans__micro{
  font-size:12px;
  color:var(--cc-ink62);
  line-height:1.4;
}

/* Mobile : réduire la densité de texte autour du CTA */
@media (max-width:899px){
  .cc-plans__ctaFine{ display:none; }
  .cc-plans__micro{ max-width:48ch; }
  .cc-plans__hint{ font-size:12.5px; }
}

/* Details (secondaire) : accordéon natif, sobre */
    .cc-plans__details{
      margin-top:var(--cc-16);
      overflow:hidden;
      background:var(--cc-bg);
      border:1px solid var(--cc-line);
      border-radius:var(--cc-r18);
      box-shadow:var(--cc-shadow);
    }
    .cc-plans__summary{
      list-style:none;
      cursor:pointer;
      padding:16px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      color:var(--cc-navy);
      font-weight:900;
      border-bottom:1px solid var(--cc-line);
      background:rgba(1,33,72,.02);
    }
    .cc-plans__summary::-webkit-details-marker{ display:none; }
    .cc-plans__summaryTitle{ font-size:14px; }
    .cc-plans__summaryIco{
      width:28px;height:28px;
      flex:0 0 28px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:12px;
      background:rgba(39,207,169,.10);
      border:1px solid rgba(39,207,169,.18);
      color:var(--cc-navy);
    }
    .cc-plans__summaryIco svg{
      width:18px;height:18px;
      stroke:currentColor;
      fill:none;
      stroke-width:2.2;
      stroke-linecap:round;
      stroke-linejoin:round;
      vector-effect:non-scaling-stroke;
    }

    /* Accessibilité : focus visible */
    .cc-plans__seg:focus-visible,
    .cc-plans__ctaBtn:focus-visible,
    .cc-plans__summary:focus-visible{
      outline:3px solid rgba(70,217,255,.55);
      outline-offset:3px;
      border-radius:14px;
    }

    /* Respect préférence utilisateur */
    @media (prefers-reduced-motion: reduce){
      .cc-plans__card,
      .cc-plans__ctaBtn{ transition:none !important; }
      .cc-plans__ctaBtn:hover{ transform:none !important; }
    }

    .cc-plans__chev{ color:rgba(1,33,72,.62); font-weight:900; }
    details[open] .cc-plans__chev{ transform:rotate(180deg); }

    .cc-plans__detailsBody{ padding:16px 18px 18px; background:var(--cc-bgSoft); }
    .cc-plans__detailsGrid{ display:grid; gap:16px; }
    .cc-plans__detailsKicker{
      font-size:12px;
      letter-spacing:.08em;
      font-weight:900;
      text-transform:uppercase;
      color:var(--cc-ink62);
      margin-bottom:8px;
      white-space:nowrap;
    }

    
    /* Amélioration mobile : items CADRE en cartes lisibles */
    .cc-plans__list--muted li{
      background:#ffffff;
      border:1px solid var(--cc-line);
      border-radius:14px;
      padding:12px 14px;
      margin-bottom:8px;
    }
    .cc-plans__list--muted li::before{ display:none; }

    @media (min-width:900px){
      .cc-plans__list--muted li{
        background:transparent;
        border:none;
        padding-left:16px;
        margin-bottom:0;
      }
      .cc-plans__list--muted li::before{ display:block; }
    }

    /* Lists */
    .cc-plans__list strong{ color:var(--cc-navy); font-weight:900; }

    .cc-plans__list{
      list-style:none;
      margin:0;
      padding:0;
      display:grid;
      gap:10px;
      color:var(--cc-ink78);
      font-size:14px;
      line-height:1.55;
      font-weight:650;
    }
    .cc-plans__list li{ position:relative; padding-left:16px; }
    .cc-plans__list li::before{
      content:"";
      position:absolute;
      left:0;
      top:.62em;
      width:6px;height:6px;
      border-radius:999px;
      background:rgba(39,207,169,.55);
    }
    .cc-plans__list--muted li::before{ background:rgba(1,33,72,.18); }

    
    /* Mobile : INCLUS aussi en “mini-cartes” (meilleure lecture + symétrie) */
    @media (max-width:899px){
      .cc-plans__list--icons li{
        background:#ffffff;
        border:1px solid var(--cc-line);
        border-radius:14px;
        padding:12px 14px;
      }
      .cc-plans__ico{ margin-top:0; }
    }
    @media (min-width:900px){
      .cc-plans__list--icons li{
        background:transparent;
        border:none;
        border-radius:0;
        padding:0;
      }
    }

    
    /* Cadre : alignement visuel premium (évite l’effet “puces bas de gamme”) */
    .cc-plans__list--cadre li{
      font-weight:650;
    }
    @media (max-width:899px){
      .cc-plans__list--cadre li{
        padding:12px 14px;
      }
      .cc-plans__list--cadre li span{ line-height:1.45; }
    }

    
    .cc-plans__itemText{
      display:flex;
      flex-direction:column;
      gap:4px;
      min-width:0;
    }
    .cc-plans__sub{
      color:var(--cc-ink62);
      font-size:13px;
      font-weight:650;
      line-height:1.35;
    }

    /* Mobile : INCLUS ultra-compact (pas de sous-ligne) */
    @media (max-width:899px){
      .cc-plans__sub{ display:none; }
      .cc-plans__list--icons li{ padding:12px 12px; }
      .cc-plans__list--icons{ gap:10px; }
    }

    /* Icons list (only INCLUS) */
    .cc-plans__list--icons li{
      padding-left:0;
      display:flex;
      gap:12px;
      align-items:flex-start;
    }
    .cc-plans__list--icons li::before{ display:none; }
    .cc-plans__ico{
      width:24px;height:24px;
      flex:0 0 24px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top:1px;
    }
    .cc-plans__ico--cadre{
      border-radius:12px;
      background:rgba(70,217,255,.10);
      border:1px solid rgba(70,217,255,.20);
    }
    .cc-plans__ico svg{
      display:block;
      width:24px;height:24px;
      transform-box: fill-box;
      transform-origin: center;
      transform:translateY(0.7px);
      stroke:var(--cc-navy);
      fill:none;
      stroke-width:2.2;
      stroke-linecap:round;
      stroke-linejoin:round;
      vector-effect:non-scaling-stroke;
      opacity:.92;
    }

    .cc-plans__detailsFoot{
      margin-top:14px;
      padding-top:14px;
      border-top:1px solid var(--cc-line);
      color:var(--cc-ink62);
      font-size:14px;
      line-height:1.55;
      font-weight:650;
      display:grid;
      gap:6px;
    }
    .cc-plans__detailsFoot strong{ color:var(--cc-navy); font-weight:900; }

    /* Desktop */
    @media (min-width:900px){
      .cc-plans__pick{ display:none; }

      .cc-plans__card{ display:block; }
      .cc-plans__grid{ grid-template-columns:repeat(4, 1fr); }

      .cc-onlyMobile{ display:none; }
      .cc-onlyDesktop{ display:flex; }

      .cc-plans__detailsGrid{ grid-template-columns:1fr 1fr; gap:18px; }

      .cc-plans__ctaSolo{ margin-top:var(--cc-24); }
      .cc-plans__details{ margin-top:var(--cc-24); }
    }
  
    /* Mobile : éviter la répétition — masquer INCLUS dans l’accordéon (déjà visible via les chips) */
    @media (max-width:899px){
      .cc-plans__detailsCol:first-child{
        display:none;
      }
    }

  
    @media (max-width:380px){
      .cc-plans__chip{ font-size:12.5px; }
    }

  
    /* Hairline visible (élément réel) — robust against theme overrides */
    .cc-plans .cc-plans__hairline{
      display:block !important;
      width:100% !important;
      height:1px !important;
      background:rgba(1,33,72,.18) !important;
      box-shadow:0 1px 0 rgba(255,255,255,.70) inset !important;
      margin:-4px 0 14px !important;
      opacity:1 !important;
    }

    /* Top meta “Apple” : plus léger, plus propre */
    .cc-plans .cc-plans__topmeta{
      color:rgba(1,33,72,.55) !important;
      font-weight:700 !important;
      letter-spacing:.08em !important;
    }

  
/* Divider (hairline) — robust Elementor-safe */
.cc-plans .cc-plans__divider{
  margin-left:var(--cc-24) !important;
  width:calc(100% - (var(--cc-24) * 2)) !important;
  border:0 !important;
  height:1px !important;
  margin:6px 0 14px !important;
  background:rgba(1,33,72,.16) !important;
  display:block !important;
}


.cc-plans__ctaMicro{
  display:block;
  font-size:12px;
  color:rgba(1,33,72,.55);
  margin-top:6px;
}


/* Mobile : cartes "Cadre" compactes (max 2 lignes) */
@media (max-width: 768px){
  .cc-plans__detailsCol .cc-plans__cardText,
  .cc-plans__detailsCol p,
  .cc-plans__detailsCol span{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}


/* Fix mobile: icônes bien contenues dans les blocs */
@media (max-width:768px){
  .cc-plans__detailsCol .cc-card,
  .cc-plans__detailsCol .cc-plans__card{
    padding-left:20px !important;
  }

  .cc-plans__ico{
    margin-left:2px;
    overflow:hidden;
  }
}

/* =========================================================
       cc-fitx — PATCH DS v1.3 (tokens only, no container overrides)
       CANON HOMEPAGE : cc-fitx
       NOTE : le legacy cc-fit est désormais isolé plus bas dans un shim de compatibilité.
       ========================================================= */

    .cc-fitx{
      background: transparent;
    }

    .cc-fitx__inner{
      padding: var(--cc-56) 0 var(--cc-64);
    }

    .cc-fitx__header{
      margin-bottom: var(--cc-32);
    }

    .cc-fitx__title{
      margin:0 0 var(--cc-16);
      font-weight:950;
      font-size: clamp(26px, 6.2vw, 40px);
      line-height:1.1;
      color: var(--cc-navy);
      text-wrap: balance;
      letter-spacing:-0.01em;
    }

    .cc-fitx__lead{
      margin:0;
      max-width:62ch;
      font-size:16px;
      line-height:1.65;
      color: var(--cc-ink78);
      text-wrap: pretty;
    }
    .cc-fitx__lead strong{ color: var(--cc-navy); font-weight:900; }

    .cc-fitx__grid{
      display:grid;
      grid-template-columns: 1fr;
      gap: var(--cc-16);
      align-items: stretch;
    }
    @media (min-width:900px){
      .cc-fitx__grid{ grid-template-columns: 1fr 1fr; }
    }

    .cc-fitxCard{
      background: var(--cc-bg);
      border: 1px solid var(--cc-ink10);
      border-radius: var(--cc-r18);
      box-shadow: var(--cc-shadow-card);
      overflow: hidden;
      display:flex;
      flex-direction:column;
      min-height:100%;
    }

    .cc-fitxCard__top{
      padding: 22px 20px 14px;
      background: transparent;
      border-bottom: 1px solid var(--cc-ink10);
    }

    .cc-fitxCard__kicker{
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .10em;
      text-transform: uppercase;
      color: var(--cc-ink62);
      margin-bottom: 10px;
      white-space: nowrap;
    }

    .cc-fitxCard__head{
      display:flex;
      gap: 12px;
      align-items:flex-start;
    }

    .cc-fitxCard__ico{
      width: 28px;
      height: 28px;
      flex: 0 0 28px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius: 12px;
      background: rgba(39, 207, 169, 0.10);
      border: 1px solid rgba(39, 207, 169, 0.18);
      margin-top: 1px;
    }

    .cc-fitxCard--nofit .cc-fitxCard__ico{
      background: rgba(1,33,72,0.04);
      border: 1px solid var(--cc-ink10);
    }

    .cc-fitxCard__ico svg{
      width: 18px;
      height: 18px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-fitxCard__title{
      margin:0;
      font-size: 18px;
      font-weight: 900;
      line-height: 1.25;
      color: var(--cc-navy);
      letter-spacing:-0.01em;
    }

    .cc-fitxCard__body{
      padding: 16px 20px 20px;
      display:flex;
      flex-direction:column;
      flex:1 1 auto;
    }

    .cc-fitxCard__section-title{
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .10em;
      text-transform: uppercase;
      color: var(--cc-ink62);
      margin: 0 0 16px;
      white-space: nowrap;
    }

    .cc-fitxCard__list{
      list-style:none;
      margin:0;
      padding:0;
      display:grid;
      gap: 14px;
      max-width:62ch;
    }

    .cc-fitxCard__li{
      display:flex;
      gap: 12px;
      font-size: 15px;
      line-height: 1.55;
      color: var(--cc-ink78);
      font-weight: 650;
    }

    .cc-fitxCard__miniIco{
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top: 1px;
      opacity: .95;
    }

    .cc-fitxCard__miniIco svg{
      width: 20px;
      height: 20px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-fitxCard__fine{
      margin-top:auto;
      padding-top: 16px;
      border-top: 1px solid var(--cc-ink10);
      margin-bottom:0;
      font-size: 14px;
      line-height: 1.6;
      color: var(--cc-ink62);
      font-weight: 650;
      font-style: normal;
    }

    /* =========================================================
       LEGACY COMPAT SHIM — cc-fit
       Statut : shim transitoire de compatibilité uniquement.
       - la homepage runtime charge désormais cc-fitx uniquement
       - aucun nouveau template ne doit repartir sur cc-fit
       - ce shim conserve un rendu non cassant si un ancien template
         référence encore cc-fit hors homepage
       - à supprimer après inventaire complet des anciens templates
       ========================================================= */

    .cc-fit{
      background:
        radial-gradient(900px 420px at 12% 10%, rgba(70,217,255,.07), transparent 60%),
        radial-gradient(760px 380px at 88% 15%, rgba(137,88,254,.06), transparent 55%),
        var(--cc-bgSoft);
    }

    .cc-fit__inner{
      width:var(--cc-container) !important;
      margin-left:auto !important;
      margin-right:auto !important;
      padding-top: var(--cc-section-py-mobile) !important;
      padding-bottom: var(--cc-section-py-mobile) !important;
    }

    .cc-fit__grid{
      display:grid;
      grid-template-columns:1fr;
      gap:var(--cc-16);
      align-items:stretch;
    }

    @media (min-width:900px){
      .cc-fit__inner{
        padding-top: var(--cc-section-py-desktop) !important;
        padding-bottom: var(--cc-section-py-desktop) !important;
      }

      .cc-fit__grid{
        grid-template-columns:1fr 1fr;
      }
    }












    /* =========================================================
       CityCleaner — PROOF (scopé, compatible CSS additionnel global)
       - Pas de container local
       ========================================================= */

    .cc-proof{ background: transparent; }

    .cc-proof__inner{
      padding: var(--cc-56) 0 var(--cc-56);
    }

    .cc-proof__title{
      margin: 0 0 var(--cc-16);
      font-weight: 950;
      font-size: clamp(28px, 5.6vw, 42px);
      line-height: 1.08;
      color: var(--cc-navy);
      letter-spacing: -0.01em;
      text-wrap: balance;
    }

    .cc-proof__lead{
      margin: 0;
      color: var(--cc-ink78);
      font-size: 16px;
      line-height: 1.7;
      max-width: 62ch;
    }

    .cc-proof__grid{
      margin-top: var(--cc-32);
      display: grid;
      gap: var(--cc-16);
      grid-template-columns: 1fr;
      align-items: stretch;
    }

    .cc-proofCard{
      background: var(--cc-bg);
      border: 1px solid var(--cc-ink10);
      border-radius: var(--cc-r18);
      overflow: hidden;
      display:flex;
      flex-direction:column;
      min-height:100%;
    }

    .cc-proofCard__top{
      padding: 22px 20px 14px;
      background: transparent;
      border-bottom: 1px solid var(--cc-ink10);
    }

    .cc-proofCard__kicker{
      font-size: 12px;
      letter-spacing: .10em;
      font-weight: 900;
      text-transform: uppercase;
      color: var(--cc-ink62);
      margin-bottom: var(--cc-12);
      white-space: nowrap;
    }

    .cc-proofCard__head{
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }

    .cc-proofCard__badge{
      width: 28px;
      height: 28px;
      flex: 0 0 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 12px;
      background: rgba(39, 207, 169, 0.10);
      border: 1px solid rgba(39, 207, 169, 0.18);
      margin-top: 1px;
    }

    .cc-proofCard__badge svg{
      width: 18px;
      height: 18px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-proofCard__h{
      margin: 0;
      font-size: 18px;
      font-weight: 900;
      color: var(--cc-navy);
      line-height: 1.25;
      padding-top: 2px;
      letter-spacing:-0.01em;
    }

    .cc-proofCard__list{
      list-style: none;
      margin: 0;
      padding: var(--cc-16) 20px var(--cc-16);
      display: grid;
      gap: var(--cc-14, 14px);
    }

    .cc-proofCard__list li{
      display: flex;
      gap: 12px;
      font-size: 15px;
      line-height: 1.55;
      font-weight: 650;
      color: var(--cc-ink78);
    }

    .cc-proofCard__ico{
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 1px;
      opacity: .95;
    }

    .cc-proofCard__ico svg{
      width: 20px;
      height: 20px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-proofCard__bottom{
      margin-top:auto;
      padding: var(--cc-16) 20px 20px;
      border-top: 1px solid var(--cc-ink10);
      background: var(--cc-bg);
    }

    .cc-proofCard__fine{
      margin: 0;
      font-size: 14px;
      line-height: 1.6;
      color: var(--cc-ink62);
      font-style: normal;
      font-weight: 650;
    }

    @media (min-width: 900px){
      .cc-proof__grid{ grid-template-columns: 1fr 1fr; }
      .cc-proofCard:nth-child(3){ grid-column: 1 / -1; }
    }

/* =========================================================
   NOTE ARCHIVÉE — TEXTE BRUT NEUTRALISÉ
   Anciennes notes éditoriales retirées du flux CSS actif.
   Motif : éviter qu’un texte non commenté invalide le sélecteur .cc-ops.
   ========================================================= */


    /* =========================================================
       OPS — 3 principes (CSS scopé)
       Compatible CSS additionnel (tokens --cc-*)
       Utilise .cc-card global (border/radius/no shadow)
       ========================================================= */

    .cc-ops{ background: transparent; }
    .cc-ops__inner{ padding: var(--cc-56) 0 var(--cc-56); }

    .cc-ops__title{
      margin: 0 0 var(--cc-16);
      color: var(--cc-navy);
      font-weight: 950;
      line-height: 1.1;
      font-size: clamp(26px, 6.2vw, 40px);
      text-wrap: balance;
      letter-spacing: -0.01em;
    }

    .cc-ops__lead{
      margin: 0;
      color: var(--cc-ink78);
      font-size: 16px;
      line-height: 1.65;
      max-width: 62ch;
    }

    .cc-ops__kicker{
      margin-top: var(--cc-32);
      font-size: 12px;
      letter-spacing: .10em;
      font-weight: 900;
      text-transform: uppercase;
      color: var(--cc-ink62);
      white-space: nowrap;
    }

    .cc-ops__grid{
      margin-top: var(--cc-16);
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--cc-16);
      align-items: stretch;
    }

    @media (min-width: 900px){
      .cc-ops__grid{ grid-template-columns: 1fr 1fr 1fr; }
    }

    .cc-ops__card{
      padding: var(--cc-24);
      display: flex;
      flex-direction: column;
      gap: var(--cc-12);
      min-height: 100%;
    }

    .cc-ops__top{
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }

    .cc-ops__badge{
      width: 32px;
      height: 32px;
      flex: 0 0 32px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 12px;
      background: rgba(39, 207, 169, 0.10);
      border: 1px solid rgba(39, 207, 169, 0.18);
      margin-top: 1px;
    }

    .cc-ops__badge svg{
      width: 18px;
      height: 18px;
      stroke: var(--cc-navy);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }

    .cc-ops__cardTitle{
      margin: 0;
      color: var(--cc-navy);
      font-weight: 900;
      font-size: 18px;
      line-height: 1.25;
      letter-spacing: -0.01em;
      padding-top: 2px;
    }

    .cc-ops__cardText{
      margin: 0;
      color: var(--cc-ink78);
      font-size: 15px;
      line-height: 1.55;
      font-weight: 650;
      max-width: 62ch;
    }

    .cc-ops__closing{
      margin-top: var(--cc-24);
      border: 1px solid var(--cc-ink10);
      border-radius: var(--cc-r24);
      background: var(--cc-bgSoft);
      padding: var(--cc-16) 20px;
    }

    .cc-ops__closingText{
      margin: 0;
      font-size: 14px;
      line-height: 1.6;
      color: var(--cc-ink62);
      font-weight: 650;
      font-style: normal;
    }

/* FAQ — Phase 2 (CSS mince + rotation chevron) */

    .cc-faq{ background:transparent; }
    .cc-faq__inner{ padding:var(--cc-48) 0 var(--cc-56); }

    .cc-faq__header{ margin-bottom:var(--cc-16); }

    .cc-faq__title{
      margin:0 0 var(--cc-16);
      color:var(--cc-navy);
      font-weight:950;
      line-height:1.1;
      font-size:clamp(26px,6.2vw,40px);
      text-wrap:balance;
      letter-spacing:-.01em;
    }

    .cc-faq__lead{
      margin:0;
      color:var(--cc-ink78);
      font-size:16px;
      line-height:1.65;
      max-width:60ch;
    }

    /* max-width géré par global via .cc-faq__list */
    .cc-faq__list{
      display:grid;
      gap:var(--cc-16);
      margin:0;
      padding:0;
    }

    .cc-faq__item{
      background:var(--cc-bg);
      border:1px solid var(--cc-ink10);
      border-radius:var(--cc-r24);
      overflow:hidden;
    }

    .cc-faq__item[open] .cc-faq__summary{
      background:var(--cc-bgSoft);
      border-bottom:1px solid var(--cc-ink10);
    }

    .cc-faq__summary{
      list-style:none;
      cursor:pointer;
      padding:var(--cc-16) var(--cc-24);
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:var(--cc-16);

      color:var(--cc-navy);
      font-weight:900;
      font-size:16px;
      line-height:1.35;
    }
    .cc-faq__summary::-webkit-details-marker{ display:none; }

    .cc-faq__summary:focus-visible{
      outline:2px solid rgba(1,33,72,.22);
      outline-offset:4px;
      border-radius:var(--cc-r16);
    }

    .cc-faq__q{
      display:block;
      min-width:0;
      flex:1 1 auto;
    }

    .cc-faq__chev{
      width:24px;height:24px;
      display:flex;align-items:center;justify-content:center;
      flex:0 0 24px;
      margin-top:2px;
      opacity:.75;
    }

    .cc-faq__chev svg{
      width:20px;height:20px;
      stroke:var(--cc-navy);
      fill:none;
      stroke-width:2.2;
      stroke-linecap:round;
      stroke-linejoin:round;
      transform:rotate(0deg);
      transition:transform 140ms linear;
      transform-origin:50% 50%;
      vector-effect:non-scaling-stroke;
    }

    .cc-faq__item[open] .cc-faq__chev{ opacity:1; }
    .cc-faq__item[open] .cc-faq__chev svg{ transform:rotate(180deg); }

    .cc-faq__content{
      padding:var(--cc-12) var(--cc-24) var(--cc-16);
      color:var(--cc-ink78);
      font-size:15px;
      line-height:1.65;
      font-weight:650;
      padding-bottom:calc(var(--cc-16) + var(--cc-24)); /* safe-zone WA flottant */
    }

    .cc-faq__content p{ margin:10px 0; }
    .cc-faq__content strong{ color:var(--cc-navy); font-weight:900; }

    /* Bullets cohérents (silencieux, propres) */
    .cc-faq__bullets{
      margin:8px 0 0;
      padding:0;
      list-style:none;
      display:grid;
      gap:8px;
    }
    .cc-faq__bullets li{
      position:relative;
      padding-left:18px;
      margin:0;
    }
    .cc-faq__bullets li::before{
      content:"";
      position:absolute;
      left:0;
      top:.62em;
      width:4px;height:4px;
      border-radius:999px;
      background:rgba(1,33,72,.38);
    }

    /* Phrase clé (style “Proof-like”) */
    .cc-faq__key{
      margin-top:10px;
      color:var(--cc-ink62);
      font-size:14px;
      line-height:1.6;
      font-weight:650;
    }

    .cc-faq__note{ margin:10px 0 0; color:var(--cc-ink78); }

    @media (max-width:767px){
      .cc-faq__inner{ padding:44px 0 var(--cc-56); }
      .cc-faq__summary{ padding:14px 16px; font-size:15.5px; }
      .cc-faq__content{ padding:10px 16px 14px; padding-bottom:calc(14px + var(--cc-24)); }
    }

    @media (prefers-reduced-motion: reduce){
      .cc-faq__chev svg{ transition:none; }
    }

/* =========================================================
   02 — GLOBAL RHYTHM — CANONIQUE
   Note : cette couche porte les respirations de sections et les
   patches d'espacement validés (FAQ / CTA final).
   ========================================================= */

/* cc-patch-007 — Design System Espacements v1 (FAQ) */
    .cc-faq.cc-patch-007 .cc-faq__inner{
      width:min(1280px, calc(100% - 40px));
      margin:0 auto;
      padding-top:120px;
      padding-bottom:120px;
    }

    .cc-faq.cc-patch-007 .cc-faq__header{
      margin-bottom:40px;
    }

    .cc-faq.cc-patch-007 .cc-faq__title{
      margin-bottom:24px;
    }

    .cc-faq.cc-patch-007 .cc-faq__list{
      gap:24px;
    }

    .cc-faq.cc-patch-007 .cc-faq__summary{
      padding-left:32px;
      padding-right:32px;
      padding-top:20px;
      padding-bottom:20px;
    }

    .cc-faq.cc-patch-007 .cc-faq__content{
      padding-left:32px;
      padding-right:32px;
      padding-bottom:calc(20px + var(--cc-24));
    }

    @media (max-width: 767px){
      .cc-faq.cc-patch-007 .cc-faq__inner{
        width:calc(100% - 40px);
        padding-top:72px;
        padding-bottom:72px;
      }

      .cc-faq.cc-patch-007 .cc-faq__header{
        margin-bottom:28px;
      }

      .cc-faq.cc-patch-007 .cc-faq__title{
        margin-bottom:20px;
      }

      .cc-faq.cc-patch-007 .cc-faq__list{
        gap:20px;
      }

      .cc-faq.cc-patch-007 .cc-faq__summary{
        padding-left:24px;
        padding-right:24px;
        padding-top:16px;
        padding-bottom:16px;
      }

      .cc-faq.cc-patch-007 .cc-faq__content{
        padding-left:24px;
        padding-right:24px;
        padding-bottom:calc(16px + var(--cc-24));
      }
    }

.cc-cta-final{ background:transparent; }

    .cc-cta-final__inner{
      padding:var(--cc-56) 0;
      text-align:center;
    }

    .cc-cta-final__text{
      margin:0 auto var(--cc-24);
      color:var(--cc-navy);
      font-size:16px;
      line-height:1.65;
      font-weight:650;
      max-width:62ch;
      padding-bottom:0; /* géré par le rythme vertical global */
    }
    .cc-cta-final__text strong{ font-weight:900; }

    .cc-cta-final__ctaRow{
      display:grid;
      gap:12px;
      justify-items:center;
    }

    /* IMPORTANT : le style du bouton vient de .cc-ctaPrimary (CSS additionnel).
       Ici, on ne gère que largeur / alignement spécifiques à la section. */
    .cc-cta-final__cta{
      max-width:560px;
      width:auto;
      font-size:16px;
      line-height:1.2;
    }

    .cc-cta-final__cta:focus-visible{
      outline:2px solid rgba(1,33,72,.22);
      outline-offset:4px;
    }

    .cc-cta-final__ico{
      display:inline-flex;
      width:18px;
      height:18px;
      flex:0 0 18px;
    }
    .cc-cta-final__ico svg{
      width:18px;
      height:18px;
      color:#ffffff;
    }

    .cc-cta-final__micro{
      font-size:12px;
      color:var(--cc-ink62);
      line-height:1.4;
      max-width:62ch;
    }

    @media (max-width:767px){
      .cc-cta-final__cta{
        width:100%;
        max-width:520px;
      }
    }

/* cc-patch-008 — Design System Espacements v1 (CTA Final) */
    .cc-cta-final.cc-patch-008 .cc-cta-final__inner{
      width:min(1280px, calc(100% - 40px));
      margin:0 auto;
      padding-top:120px;
      padding-bottom:120px;
    }

    .cc-cta-final.cc-patch-008 .cc-cta-final__text{
      margin-bottom:40px;
    }

    .cc-cta-final.cc-patch-008 .cc-cta-final__ctaRow{
      gap:16px;
    }

    .cc-cta-final.cc-patch-008 .cc-cta-final__cta{
      max-width:620px;
    }

    @media (max-width:767px){
      .cc-cta-final.cc-patch-008 .cc-cta-final__inner{
        width:calc(100% - 40px);
        padding-top:72px;
        padding-bottom:72px;
      }

      .cc-cta-final.cc-patch-008 .cc-cta-final__text{
        margin-bottom:28px;
      }

      .cc-cta-final.cc-patch-008 .cc-cta-final__ctaRow{
        gap:12px;
      }

      .cc-cta-final.cc-patch-008 .cc-cta-final__cta{
        max-width:520px;
      }
    }

:root{
    --cc-navy:#012148;
    --cc-shadow: 0 10px 28px rgba(1,33,72,.16);
  }

  .cc-fab{
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(34px, env(safe-area-inset-bottom));
    z-index: 999999;

    display: flex;
    align-items: center;
    gap: 10px;

    /* Invisible reveal: ultra subtle */
    opacity: 0;
    transform: translate3d(0, 6px, 0) scale(.985);
    filter: blur(0.2px);
    pointer-events: none;

    transition:
      opacity .65s cubic-bezier(.22, 1, .36, 1),
      transform .75s cubic-bezier(.22, 1, .36, 1),
      filter .75s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform, filter;
  }

  .cc-fab.is-visible{
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    pointer-events: auto;
  }

  /* Ghost button */
  .cc-fab__btn{
    width: 56px;
    height: 56px;
    border-radius: 999px;

    background: transparent;
    border: 2.5px solid var(--cc-navy);
    box-shadow: var(--cc-shadow);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    outline: none;

    /* micro feedback, premium */
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  }

  .cc-fab__btn:focus-visible{
    box-shadow: var(--cc-shadow), 0 0 0 4px rgba(1,33,72,.18);
  }

  /* Optional: tiny hover only for devices that support it (no label on hover) */
  @media (hover:hover){
    .cc-fab__btn:hover{
      transform: translateY(-1px);
      box-shadow: 0 12px 32px rgba(1,33,72,.18);
    }
  }

  .cc-fab__icon{
    width: 24px;
    height: 24px;
    display: block;
  }

  /* Label: tap only */
  .cc-fab__label{
    max-width: min(72vw, 320px);
    background: rgba(1,33,72,.96);
    color: #fff;

    border-radius: 14px;
    padding: 10px 12px;

    font-size: 14px;
    line-height: 1.2;
    letter-spacing: .1px;

    box-shadow: var(--cc-shadow);
    border: 1px solid rgba(255,255,255,.10);

    opacity: 0;
    transform: translateX(10px);
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .cc-fab.is-open .cc-fab__label{
    opacity: 1;
    transform: translateX(0);
  }

  @media (max-width: 360px){
    .cc-fab__btn{ width: 52px; height: 52px; }
    .cc-fab__icon{ width: 22px; height: 22px; }
    .cc-fab__label{ font-size: 13px; padding: 9px 11px; }
  }

  /* Respect reduced motion */
  @media (prefers-reduced-motion: reduce){
    .cc-fab{
      transition: opacity .01s linear;
      transform: none;
      filter: none;
    }
    .cc-fab__btn,
    .cc-fab__label{
      transition: none;
    }
  }








/* =========================================================
   05 — SEO PAGES ONLY — SCOPED / SAFE
   ========================================================= */

/* =========================================================
CITYCLEANER — SEO PAGES ONLY (SAFE PATCH)
IMPORTANT:
- N'affecte PAS la homepage
- S'applique UNIQUEMENT aux pages SEO construites via Page Factory
- Requiert d’ajouter la classe "cc-seo-page" sur le wrapper HTML principal
========================================================= */

.cc-seo-page .cc-section{
  width:100%;
  margin:0;
  padding:0;
}

.cc-seo-page .cc-section__inner{
  width:min(1120px, calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
  padding-left:16px;
  padding-right:16px;
}

@media (min-width:900px){
  .cc-seo-page .cc-section__inner{
    padding-left:24px;
    padding-right:24px;
  }
}

/* stacks */
.cc-seo-page .cc-stack{ display:flex; flex-direction:column; gap:16px; }
.cc-seo-page .cc-stack--lg{ display:flex; flex-direction:column; gap:24px; }

/* grids */
@media (min-width:900px){
  .cc-seo-page .cc-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
  .cc-seo-page .cc-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .cc-seo-page .cc-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
}

/* prose */
.cc-seo-page .cc-prose{ max-width:68ch; }








/* =========================================================
   04 — BLOG / ARTICLE / ARCHIVE
   ========================================================= */

/* How-to steps */
.cc-article__steps{
  margin: var(--cc-24) 0;
  padding: var(--cc-16);
  border-radius: var(--cc-r24);
  background: var(--cc-bg);
  box-shadow: var(--cc-shadow-card);
}
@media (min-width: 900px){ .cc-article__steps{ padding: var(--cc-20); } }
.cc-article__stepsTitle{ margin: 0 0 var(--cc-12); }

/* Checklist */
.cc-article__checklist{
  margin: var(--cc-24) 0;
  padding: var(--cc-16);
  border-radius: var(--cc-r24);
  background: var(--cc-bgSoft);
  box-shadow: var(--cc-shadow-card);
}
@media (min-width: 900px){ .cc-article__checklist{ padding: var(--cc-20); } }
.cc-article__checklistTitle{ margin: 0 0 var(--cc-12); }





























/* =========================================================
   CITYCLEANER — BLOG SYSTEM — FUSION WP SAFE (V1)
   Contient :
   - BLOG LAYOUT LAYER (V2) — version WP SAFE (sans clamp())
   - BLOG LAYER FINAL (icons typographiques, aucun SVG)
   Compatible Customizer WordPress strict
   Scoped uniquement à .cc-article
   ========================================================= */

/* =========================================================
   1) BLOG LAYOUT LAYER (V2) — WP SAFE
   ========================================================= */

/* Article rhythm */
.cc-article{
  padding-top:56px;
  padding-bottom:56px;
}
@media (min-width:900px){
  .cc-article{
    padding-top:96px;
    padding-bottom:96px;
  }
}

/* Reading width */
.cc-article__container{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
}
@media (min-width:900px){
  .cc-article__container{
    padding-left:32px;
    padding-right:32px;
  }
}

/* Header spacing */
.cc-article__header{margin-bottom:56px;}
@media (min-width:900px){
  .cc-article__header{margin-bottom:104px;}
}

.cc-article__lede{
  margin-top:24px;
  font-size:1.125rem;
  line-height:1.7;
  opacity:.82;
}

/* Sections vertical rhythm */
.cc-article__section{
  padding-top:72px;
  padding-bottom:72px;
  position:relative;
  z-index:0;
  background:transparent !important;
}
@media (min-width:900px){
  .cc-article__section{
    padding-top:120px;
    padding-bottom:120px;
  }
}

/* Full bleed alternance */
.cc-article__section:nth-child(even)::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
  background:var(--cc-bgSoft);
  z-index:-1;
}

.cc-article__section + .cc-article__section{
  border-top:1px solid rgba(1,33,72,.06);
}

/* Typographic rhythm */
.cc-article h2{margin-bottom:28px;}
.cc-article h3{margin-top:36px;margin-bottom:18px;}
.cc-article p{margin-bottom:20px;}
.cc-article ul,.cc-article ol{margin-bottom:24px;padding-left:1.2em;}
.cc-article li{margin-bottom:10px;}

/* Mass blocks */
.cc-article__keypoints,
.cc-article__callout,
.cc-article__steps,
.cc-article__checklist,
.cc-article__compare,
.cc-article__decision{
  margin-top:56px;
  margin-bottom:56px;
  padding:24px;
  border-radius:20px;
  border:1px solid rgba(1,33,72,.08);
  background:#ffffff;
  box-shadow:0 10px 30px rgba(1,33,72,.05);
}
@media (min-width:900px){
  .cc-article__keypoints,
  .cc-article__callout,
  .cc-article__steps,
  .cc-article__checklist,
  .cc-article__compare,
  .cc-article__decision{
    padding:40px;
  }
}

/* Separator */
.cc-article__sep{
  height:1px;
  margin-top:80px;
  margin-bottom:80px;
  background:linear-gradient(
    to right,
    transparent,
    rgba(1,33,72,.15),
    transparent
  );
}

/* FAQ */
.cc-article__faq{margin-top:56px;}
.cc-article__faq-item{
  padding:24px 0;
  border-bottom:1px solid rgba(1,33,72,.08);
}

/* Accent H2 (barre turquoise) */
.cc-article h2{
  position:relative;
  padding-left:var(--cc-16);
}
.cc-article h2::before{
  content:"";
  position:absolute;
  left:0;
  top:0.15em;
  width:4px;
  height:1.1em;
  border-radius:var(--cc-r999);
  background:var(--cc-turq);
  opacity:.95;
}

/* =========================================================
   2) BLOG LAYER — ICONS + STRUCTURE (NO SVG)
   ========================================================= */

/* Keypoints */
.cc-article__keypointsTitle{
  font-size:12px;
  letter-spacing:.08em;
  font-weight:900;
  text-transform:uppercase;
  color:var(--cc-ink62);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.cc-article__keypointsTitle::before{
  content:"✦";
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:rgba(70,217,255,.14);
  border:1px solid rgba(70,217,255,.20);
  font-weight:900;
  font-size:13px;
}

/* Checklist grid */
.cc-article__checklist ul{
  list-style:none;
  padding-left:0;
  margin:0;
}

.cc-article__checklist li{
  display:grid;
  grid-template-columns:22px minmax(110px,170px) 1fr;
  column-gap:14px;
  align-items:start;
  margin-bottom:12px;
  line-height:1.55;
}

.cc-article__checklist li::before{
  content:"✓";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:8px;
  background:rgba(39,207,169,.12);
  border:1px solid rgba(39,207,169,.18);
  font-weight:900;
}

.cc-article__checklist li>strong:first-child{
  grid-column:2;
  margin:0;
}
.cc-article__checklist li>strong:first-child~*{
  grid-column:3;
}

/* Callout */
.cc-article__callout{
  position:relative;
  padding-left:calc(var(--cc-24) + 32px);
  padding-top:24px;
  padding-bottom:24px;
}

.cc-article__callout::before{
  content:"";
  position:absolute;
  left:var(--cc-24);
  top:24px;
  bottom:24px;
  width:2px;
  border-radius:999px;
  background:rgba(1,33,72,.18);
}

.cc-article__callout::after{
  content:"i";
  position:absolute;
  left:calc(var(--cc-24) + 8px);
  top:26px;
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:rgba(1,33,72,.06);
  border:1px solid rgba(1,33,72,.10);
  font-weight:900;
  font-size:13px;
}

.cc-article__callout strong:first-child{
  display:block;
  font-weight:900;
  margin-bottom:8px;
}

/* =========================================================
   FIN — BLOG SYSTEM FUSION WP SAFE
   ========================================================= */

.cc-article h2{
  font-weight:900;
  font-size:28px;
}

@media (min-width:900px){
  .cc-article h2{
    font-size:32px;
  }
}








































/* =========================================================
   CityCleaner — BLOG FAQ ALIGNMENT (Homepage FAQ parity)
   Scope: .cc-article__faq only
   - Sans calc()
   - Conserve le trait turquoise du H2 (ne touche pas h2::before)
   ========================================================= */

/* 1) Reset du rythme "article" dans la zone FAQ */
.cc-article .cc-article__faq h3{
  margin: 0;
  font-family: inherit;
}

/* 2) Gap entre items (homepage patch : 24px / mobile:20px) */
.cc-article .cc-article__faq h3:not(:first-of-type){
  margin-top: 24px;
}
@media (max-width: 767px){
  .cc-article .cc-article__faq h3:not(:first-of-type){
    margin-top: 20px;
  }
}

/* 3) Header carte (équivalent summary "open") */
.cc-article .cc-article__faq h3{
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  padding: 20px 52px 20px 32px;

  background: var(--cc-bgSoft);
  color: var(--cc-navy);

  font-weight: 900;
  font-size: 16px;
  line-height: 1.35;

  border: 1px solid var(--cc-ink10);
  border-top-left-radius: var(--cc-r24);
  border-top-right-radius: var(--cc-r24);
}

/* 4) Chevron décoratif (sans SVG) */
.cc-article .cc-article__faq h3::after{
  content: "";
  position: absolute;
  right: 32px;
  top: 50%;
  width: 10px;
  height: 10px;

  border-right: 2.2px solid var(--cc-navy);
  border-bottom: 2.2px solid var(--cc-navy);

  transform: translateY(-50%) rotate(225deg);
  transform-origin: 50% 50%;
}

/* 5) Corps carte (équivalent .cc-faq__content)
      -> Sans calc() : padding-bottom fixe */
.cc-article .cc-article__faq h3 + .cc-body{
  margin: 0;

  padding: 12px 32px 44px 32px; /* 44px = (20px + ~24px) sans calc */

  background: var(--cc-bg);
  color: var(--cc-ink78);

  font-size: 15px;
  line-height: 1.65;
  font-weight: 650;

  border-left: 1px solid var(--cc-ink10);
  border-right: 1px solid var(--cc-ink10);
  border-bottom: 1px solid var(--cc-ink10);

  border-bottom-left-radius: var(--cc-r24);
  border-bottom-right-radius: var(--cc-r24);
}

/* 6) Mobile parity (homepage patch) */
@media (max-width: 767px){
  .cc-article .cc-article__faq h3{
    padding: 16px 48px 16px 24px;
    font-size: 15.5px;
  }

  .cc-article .cc-article__faq h3::after{
    right: 24px;
  }

  .cc-article .cc-article__faq h3 + .cc-body{
    padding: 10px 24px 40px 24px; /* 40px = (16px + ~24px) sans calc */
  }
}

/* 7) Garde-fou : plusieurs .cc-body consécutifs */
.cc-article .cc-article__faq h3 + .cc-body + .cc-body{
  margin-top: -10px;
  padding-top: 0;
}

/* 8) Neutralisation de l'ancien style non canonique (si jamais présent) */
.cc-article .cc-article__faq .cc-article__faq-item{
  padding: 0;
  border: 0;
}









































.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision{
  box-shadow:none;
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r24);
  padding:var(--cc-16);
  margin:var(--cc-40) 0;
}

@media (min-width:900px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    padding:var(--cc-20);
  }
}

.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle{
  margin:0 0 var(--cc-8);
  padding:0 var(--cc-8);
  font-size:12px;
  letter-spacing:.08em;
  font-weight:900;
  text-transform:uppercase;
  color:var(--cc-ink62);
  display:block;
}

.cc-article .cc-article__keypointsTitle::before,
.cc-article .cc-article__callout::after{
  content:none;
}

/* Keypoints */
.cc-article .cc-article__keypoints ul{
  list-style:none;
  margin:0;
  padding:0;
}
.cc-article .cc-article__keypoints li{
  margin:0;
  padding:var(--cc-16) var(--cc-8);
  border-top:1px solid var(--cc-ink10);
  font-size:15px;
  line-height:1.55;
  font-weight:650;
  color:var(--cc-ink78);
}
.cc-article .cc-article__keypoints li:first-child{border-top:none;}

/* Steps */
.cc-article .cc-article__steps ol{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:ccStep;
}
.cc-article .cc-article__steps li{
  margin:0;
  padding:var(--cc-16) var(--cc-8);
  border-top:1px solid var(--cc-ink10);
  display:flex;
  align-items:flex-start;
  font-size:15px;
  line-height:1.55;
  font-weight:650;
  color:var(--cc-ink78);
  counter-increment:ccStep;
}
.cc-article .cc-article__steps li:first-child{border-top:none;}
.cc-article .cc-article__steps li::before{
  content:counter(ccStep);
  width:24px;
  height:24px;
  margin:1px var(--cc-16) 0 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(70,217,255,0.10);
  border:1px solid rgba(70,217,255,0.20);
  font-weight:900;
  font-size:13px;
  color:var(--cc-navy);
  flex:0 0 24px;
}

/* Checklist */
.cc-article .cc-article__checklist ul{
  list-style:none;
  margin:0;
  padding:0;
}
.cc-article .cc-article__checklist li{
  margin:0;
  padding:var(--cc-16) var(--cc-8);
  border-top:1px solid var(--cc-ink10);
  display:flex;
  align-items:flex-start;
  font-size:15px;
  line-height:1.55;
  font-weight:650;
  color:var(--cc-ink78);
}
.cc-article .cc-article__checklist li:first-child{border-top:none;}
.cc-article .cc-article__checklist li::before{
  content:"✓";
  width:24px;
  height:24px;
  margin:1px var(--cc-16) 0 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(39,207,169,0.12);
  border:1px solid rgba(39,207,169,0.18);
  font-weight:900;
  font-size:13px;
  color:var(--cc-navy);
  flex:0 0 24px;
}
.cc-article .cc-article__checklist li strong{
  font-weight:900;
  color:var(--cc-navy);
}

/* Callout */
.cc-article .cc-article__callout{
  position:relative;
  padding-left:48px;
}
.cc-article .cc-article__callout::before{
  content:"";
  position:absolute;
  left:var(--cc-16);
  top:var(--cc-16);
  bottom:var(--cc-16);
  width:2px;
  border-radius:999px;
  background:var(--cc-ink18);
}
.cc-article .cc-article__callout p{margin:0;}
.cc-article .cc-article__callout p + p{margin-top:var(--cc-12);}

/* Decision */
.cc-article .cc-article__decision{
  background:var(--cc-bgSoft);
}
.cc-article .cc-article__decision p{
  margin:0;
  font-size:15px;
  line-height:1.55;
  font-weight:650;
  color:var(--cc-ink78);
}
.cc-article .cc-article__decision strong{
  font-weight:900;
  color:var(--cc-navy);
}















































/* CityCleaner BLOG components parity - WordPress Customizer safe (no markup, ASCII only) */

.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision{
  background: var(--cc-bg);
  border: 1px solid var(--cc-ink10);
  border-radius: var(--cc-r24);
  box-shadow: none;
  padding: var(--cc-16);
  margin: var(--cc-40) 0;
}

@media (min-width: 900px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    padding: var(--cc-20);
  }
}

.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle{
  margin: 0 0 var(--cc-8);
  padding: 0 var(--cc-8);
  font-size: 12px;
  letter-spacing: .08em;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--cc-ink62);
  display: block;
}

.cc-article .cc-article__keypointsTitle.cc-hairline{
  border-top: 1px solid var(--cc-ink10);
  padding-top: var(--cc-12);
}

.cc-article .cc-article__keypointsTitle::before,
.cc-article .cc-article__calloutTitle::before,
.cc-article .cc-article__stepsTitle::before,
.cc-article .cc-article__checklistTitle::before{
  content: none;
  display: none;
}

.cc-article .cc-article__keypoints ul,
.cc-article .cc-article__checklist ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

.cc-article .cc-article__keypoints li,
.cc-article .cc-article__checklist li{
  margin: 0;
  padding: var(--cc-16) var(--cc-8);
  border-top: 1px solid var(--cc-ink10);
  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
  color: var(--cc-ink78);
}

.cc-article .cc-article__keypoints li:first-child,
.cc-article .cc-article__checklist li:first-child{
  border-top: none;
}

.cc-article .cc-article__checklist li{
  display: flex;
  align-items: flex-start;
  gap: var(--cc-16);
}

.cc-article .cc-article__checklist li::before{
  content: "\2713";
  width: 24px;
  height: 24px;
  margin-top: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(39,207,169,0.12);
  border: 1px solid rgba(39,207,169,0.18);
  font-weight: 900;
  font-size: 13px;
  color: var(--cc-navy);
  flex: 0 0 24px;
}

.cc-article .cc-article__checklist li strong{
  font-weight: 900;
  color: var(--cc-navy);
}

.cc-article .cc-article__steps ol{
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: ccStep;
}

.cc-article .cc-article__steps li{
  margin: 0;
  padding: var(--cc-16) var(--cc-8);
  border-top: 1px solid var(--cc-ink10);
  display: flex;
  align-items: flex-start;
  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
  color: var(--cc-ink78);
  counter-increment: ccStep;
}

.cc-article .cc-article__steps li:first-child{
  border-top: none;
}

.cc-article .cc-article__steps li::before{
  content: counter(ccStep);
  width: 24px;
  height: 24px;
  margin: 1px var(--cc-16) 0 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(70,217,255,0.10);
  border: 1px solid rgba(70,217,255,0.20);
  font-weight: 900;
  font-size: 13px;
  color: var(--cc-navy);
  flex: 0 0 24px;
}

.cc-article .cc-article__callout{
  position: static;
}

.cc-article .cc-article__callout::before,
.cc-article .cc-article__callout::after{
  content: none;
  display: none;
}

.cc-article .cc-article__callout p{
  margin: 0;
  color: var(--cc-ink78);
  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
}

.cc-article .cc-article__decision p{
  margin: 0;
  color: var(--cc-ink78);
  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
}












































/* =========================================================
   CityCleaner BLOG — Alignement STRICT sur "Ce que vous déléguez vraiment"
   Scope: .cc-article uniquement
   1 seul bloc, Customizer-safe (pas de clamp/min/data-uri/mask)
========================================================= */

/* ========== 1) CARD SHELL (surface + hairline + radius + ombre) ========== */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision{
  background: var(--cc-bg);
  border: 1px solid var(--cc-ink10);
  border-radius: 18px;          /* = modèle homepage */
  box-shadow: var(--cc-shadow-card);
  overflow: hidden;              /* = modèle homepage */
  padding: 0;                    /* header + body gèrent l’espace */
  margin: var(--cc-40) 0;
}

/* Neutralise les styles "callout barre" hérités */
.cc-article .cc-article__callout{ padding-left: 0; position: static; }
.cc-article .cc-article__callout::before,
.cc-article .cc-article__callout::after{ content: none; display: none; }

/* ========== 2) HEADER DE CARTE (kicker + séparation hairline) ========== */
/* Titres déjà typés */
.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle{
  display: block;
  margin: 0;
  padding: 22px 20px 14px;       /* top spacing homepage */
  border-top: 0;
  border-bottom: 1px solid var(--cc-ink10); /* hairline interne */
  background: transparent;

  font-size: 12px;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--cc-ink62);
  white-space: nowrap;
}

/* Décision rapide : le titre n’a PAS de classe dédiée -> on cible "le 1er cc-hairline du bloc" */
.cc-article .cc-article__decision > p.cc-hairline:first-child{
  display: block;
  margin: 0;
  padding: 22px 20px 14px;
  border-top: 0;
  border-bottom: 1px solid var(--cc-ink10);
  background: transparent;

  font-size: 12px;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--cc-ink62);
  white-space: nowrap;
}

/* Anti double-hairline (si cc-hairline injecte une ligne) */
.cc-article .cc-hairline.cc-article__keypointsTitle,
.cc-article .cc-hairline.cc-article__calloutTitle,
.cc-article .cc-hairline.cc-article__stepsTitle,
.cc-article .cc-hairline.cc-article__checklistTitle,
.cc-article .cc-article__decision > p.cc-hairline:first-child{
  border-top: 0;
}

/* ========== 3) BODY PADDING (comme la liste homepage) ========== */
/* Paragraphes (callout + décision) */
.cc-article .cc-article__callout > p.cc-body,
.cc-article .cc-article__decision > p.cc-body{
  margin: 0;
  padding: 16px 20px 20px;

  color: var(--cc-ink78);
  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
}

/* ========== 4) LIST STYLE HOMEPAGE (grid + gap, sans séparateurs, icône simple) ========== */
.cc-article .cc-article__keypoints ul.cc-body,
.cc-article .cc-article__checklist ul.cc-body,
.cc-article .cc-article__steps ol.cc-body{
  list-style: none;
  margin: 0;
  padding: 16px 20px 20px;

  display: grid;
  gap: 14px;                     /* = modèle homepage */
}

/* Items = flex gap 12, pas de border-top, pas de padding row */
.cc-article .cc-article__keypoints li,
.cc-article .cc-article__checklist li,
.cc-article .cc-article__steps li{
  margin: 0;
  padding: 0;
  border: 0;

  display: flex;
  align-items: flex-start;
  gap: 12px;

  font-size: 15px;
  line-height: 1.55;
  font-weight: 650;
  color: var(--cc-ink78);
}

/* Override : l’ancien CSS mettait des pastilles + border-top -> on force le style "icone simple" */
.cc-article .cc-article__steps ol.cc-body{ counter-reset: ccStep; }
.cc-article .cc-article__steps li{ counter-increment: ccStep; }

/* Faux "pictos" (fallback sans SVG, alignés 24x24 comme homepage) */
.cc-article .cc-article__keypoints li::before,
.cc-article .cc-article__checklist li::before,
.cc-article .cc-article__steps li::before{
  width: 24px;
  height: 24px;
  flex: 0 0 24px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin-top: 1px;
  opacity: .95;

  color: var(--cc-navy);
  font-weight: 900;
  line-height: 1;

  background: transparent;  /* supprime l’effet pastille */
  border: 0;                /* supprime l’effet pastille */
  border-radius: 0;
}

/* Keypoints = chevron sobre */
.cc-article .cc-article__keypoints li::before{ content: "›"; font-size: 20px; }

/* Checklist = check sobre */
.cc-article .cc-article__checklist li::before{ content: "✓"; font-size: 18px; }

/* Steps = numéro sobre (sans cercle) */
.cc-article .cc-article__steps li::before{ content: counter(ccStep); font-size: 14px; }

/* Accent typographique interne */
.cc-article .cc-article__keypoints li strong,
.cc-article .cc-article__checklist li strong,
.cc-article .cc-article__steps li strong,
.cc-article .cc-article__decision strong{
  font-weight: 900;
  color: var(--cc-navy);
}

/* ========== 5) MOBILE COMPACT (mêmes règles, spacing réduit) ========== */
@media (max-width: 640px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    margin: var(--cc-32) 0;
  }

  .cc-article .cc-article__keypointsTitle,
  .cc-article .cc-article__calloutTitle,
  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle,
  .cc-article .cc-article__decision > p.cc-hairline:first-child{
    padding: 18px 16px 12px;
  }

  .cc-article .cc-article__callout > p.cc-body,
  .cc-article .cc-article__decision > p.cc-body{
    padding: 14px 16px 16px;
  }

  .cc-article .cc-article__keypoints ul.cc-body,
  .cc-article .cc-article__checklist ul.cc-body,
  .cc-article .cc-article__steps ol.cc-body{
    padding: 14px 16px 16px;
    gap: 12px;
  }
}






/* =========================================================
   CityCleaner BLOG — Titres blocs unifiés (Apple-like, alignés homepage)
   Scope: .cc-article uniquement
   Objectif: même sensation que “Ce que vous déléguez vraiment”
========================================================= */

/* Kicker header (uniformisé) */
.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle,
.cc-article .cc-article__decisionTitle,
.cc-article .cc-article__decision > p.cc-hairline:first-child{
  /* Layout */
  display: block;                 /* évite les micro-décalages de baseline en flex */
  margin: 0;
  padding: 22px 20px 14px;

  /* Hairline interne identique pattern card */
  border-top: 0;
  border-bottom: 1px solid var(--cc-ink10);
  background: transparent;

  /* Typo (verrouillée) */
  font-size: 12px !important;
  line-height: 1.15 !important;   /* baseline plus “net” */
  font-weight: 900 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
  color: var(--cc-ink62) !important;

  /* Rendu Apple+++ */
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

/* Sécurité : si .cc-hairline injecte une ligne en haut */
.cc-article .cc-hairline.cc-article__keypointsTitle,
.cc-article .cc-hairline.cc-article__calloutTitle,
.cc-article .cc-hairline.cc-article__stepsTitle,
.cc-article .cc-hairline.cc-article__checklistTitle,
.cc-article .cc-article__decision > p.cc-hairline:first-child{
  border-top: 0;
}

/* MOBILE compact (mêmes proportions, padding réduit) */
@media (max-width: 640px){
  .cc-article .cc-article__keypointsTitle,
  .cc-article .cc-article__calloutTitle,
  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle,
  .cc-article .cc-article__decisionTitle,
  .cc-article .cc-article__decision > p.cc-hairline:first-child{
    padding: 18px 16px 12px;
    font-size: 12px !important;
    line-height: 1.15 !important;
  }
}






















/* CityCleaner — Article : icône “badge” comme homepage (cercle + navy) */
.cc-article .cc-article__title--ico{
  display: flex;
  align-items: center;
  gap: 10px; /* espace badge -> texte */
}

/* Le badge circulaire */
.cc-article .cc-article__title--ico .cc-article__ico{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;

  /* fond + bordure façon homepage (ajuste si besoin) */
  background: rgba(39, 207, 169, 0.10);   /* turquoise très léger */
  border: 1px solid rgba(39, 207, 169, 0.25);

  flex: 0 0 auto;
}

/* Le SVG : navy net, jamais gris, centré */
.cc-article .cc-article__title--ico .cc-article__ico svg,
.cc-article .cc-article__title--ico .cc-article__ico svg *{
  stroke: #012148 !important;
  fill: none !important;
  opacity: 1 !important;
  filter: none !important;
  vector-effect: non-scaling-stroke;
}

/* Option : fixe la taille si Elementor la modifie */
.cc-article .cc-article__title--ico .cc-article__ico svg{
  width: 18px !important;
  height: 18px !important;
}





























/* FIX Methode — WP safe */
.cc-article .cc-article__steps li{
  display:flex !important;
  align-items:flex-start !important;
}

.cc-article .cc-article__steps li::before{
  flex:0 0 24px !important;
}

.cc-article .cc-article__steps li > *{
  flex:1 1 auto !important;
  min-width:0 !important;
}

.cc-article .cc-article__steps li p{
  margin:0 !important;
}


/* =========================================================
CityCleaner — PATCH BLOG V5
Objectif : verrouiller les titres de cartes éditoriales, le CTA final
et le rendu blog canonique demandé par le pipeline V2.
========================================================= */

/* Titre de carte : le texte reste stable même si le SVG / flex change */
.cc-article .cc-article__title--ico .cc-article__titleText{
  display:inline-block;
  min-width:0;
}

/* Sécurité : si .cc-hairline est présent sur le titre décision */
.cc-article .cc-hairline.cc-article__decisionTitle{
  border-top:0;
}

/* CTA final blog : vraie clôture d’article, indépendante du système homepage */
.cc-article .cc-article__ctaEnd{
  padding-top:var(--cc-section-py-mobile);
  padding-bottom:var(--cc-section-py-mobile);
}

.cc-article .cc-article__ctaEnd .cc-article__container{
  display:flex;
  justify-content:center;
  padding-top:var(--cc-32);
  border-top:1px solid var(--cc-ink10);
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  width:fit-content;
}

@media (min-width: 900px){
  .cc-article .cc-article__ctaEnd{
    padding-top:var(--cc-section-py-cta-mobile);
    padding-bottom:var(--cc-section-py-cta-mobile);
  }

  .cc-article .cc-article__ctaEnd .cc-article__container{
    padding-top:var(--cc-40);
  }
}


/* =========================================================
CityCleaner — PATCH BLOG V6
Objectif : finaliser la clôture d’article avec texte de transition,
CTA final orienté selon l’intention et icône WhatsApp blog-safe.
Ce patch complète V5 sans casser l’historique.
========================================================= */

/* Clôture d’article : texte passerelle + CTA final unique */
.cc-article .cc-article__ctaEnd .cc-article__container{
  flex-direction:column;
  align-items:flex-start;
  gap:var(--cc-16);
}

.cc-article .cc-article__ctaEnd .cc-body{
  margin:0;
  max-width:62ch;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  width:fit-content;
  max-width:100%;
}

.cc-article .cc-article__ctaEnd .cc-article__ctaIco{
  display:inline-flex;
  width:18px;
  height:18px;
  flex:0 0 18px;
  align-items:center;
  justify-content:center;
}

.cc-article .cc-article__ctaEnd .cc-article__ctaIco svg{
  width:18px;
  height:18px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

@media (max-width: 639px){
  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:100%;
    justify-content:center;
  }
}


/* =========================================================
CityCleaner — PATCH BLOG V7
Objectif : finaliser la clôture d’article après QA approfondie.
- texte passerelle lisible et naturel
- CTA final aligné avec sa destination réelle
- icône WhatsApp strictement réservée au bouton final externe
========================================================= */

.cc-article .cc-article__ctaEnd .cc-body{
  color:var(--cc-ink78);
}

.cc-article .cc-article__ctaEnd .cc-body + .cc-ctaPrimary{
  margin-top:4px;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary .cc-article__ctaIco{
  margin-right:2px;
}

@media (min-width:900px){
  .cc-article .cc-article__ctaEnd .cc-body{
    max-width:56ch;
  }
}


/* =========================================================
CityCleaner — PATCH BLOG V8
Objectif : rendre le rendu article définitivement lisible et stable.
- CTA final centré et espacé proprement
- icône WhatsApp rendue visible même si le SVG inline varie
- corps d’article plus confortable (lead-like, mais scoped article)
- liens éditoriaux visibles au repos et navy au survol
- cartes éditoriales avec un relief légèrement plus lisible
========================================================= */

/* 1) CTA final : vraie pile verticale centrée */
.cc-article .cc-article__ctaEnd .cc-article__container{
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:var(--cc-20) !important;
}

.cc-article .cc-article__ctaEnd .cc-body{
  margin:0 auto !important;
  max-width:60ch !important;
  text-align:center !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  align-self:center !important;
  justify-content:center !important;
}

.cc-article .cc-article__ctaEnd .cc-body + .cc-ctaPrimary{
  margin-top:0 !important;
}

/* 2) Icône WhatsApp : fallback CSS visuel définitif */
.cc-article .cc-article__ctaEnd .cc-article__ctaIco{
  position:relative;
  display:inline-flex !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  flex:0 0 18px !important;
  align-items:center !important;
  justify-content:center !important;
  margin-right:2px !important;
}

.cc-article .cc-article__ctaEnd .cc-article__ctaIco svg{
  display:none !important;
}

.cc-article .cc-article__ctaEnd .cc-article__ctaIco::before{
  content:"";
  display:block;
  width:18px;
  height:18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M20.52 3.48A11.87 11.87 0 0 0 12.07 0C5.5 0 .16 5.34.16 11.91c0 2.1.55 4.15 1.59 5.96L0 24l6.32-1.66a11.9 11.9 0 0 0 5.75 1.47h.01c6.57 0 11.91-5.34 11.91-11.91 0-3.18-1.24-6.16-3.47-8.42Z'/%3E%3Cpath fill='%23012148' d='M17.06 14.5c-.28-.14-1.67-.82-1.93-.91-.26-.09-.45-.14-.64.14-.19.28-.73.91-.9 1.09-.16.19-.33.21-.61.07-.28-.14-1.16-.43-2.2-1.37-.81-.72-1.36-1.61-1.52-1.89-.16-.28-.02-.43.12-.57.12-.12.28-.33.42-.49.14-.16.19-.28.28-.47.09-.19.05-.35-.02-.49-.07-.14-.64-1.54-.88-2.12-.23-.55-.47-.47-.64-.48h-.55c-.19 0-.49.07-.75.35-.26.28-.98.96-.98 2.34 0 1.37 1 2.69 1.14 2.88.14.19 1.96 3 4.75 4.2.66.28 1.18.45 1.58.58.66.21 1.26.18 1.73.11.53-.08 1.67-.68 1.9-1.34.23-.65.23-1.21.16-1.33-.07-.12-.26-.19-.54-.33Z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* 3) Corps d’article : confort proche du lead, sans toucher au global */
.cc-article p.cc-body,
.cc-article .cc-article__callout > p.cc-body,
.cc-article .cc-article__decision > p.cc-body,
.cc-article .cc-article__faq h3 + .cc-body,
.cc-article ul.cc-body,
.cc-article ol.cc-body,
.cc-article li{
  font-size:16px !important;
  line-height:1.68 !important;
  color:var(--cc-ink78) !important;
  font-weight:560 !important;
}

.cc-article .cc-article__lede .cc-body{
  font-size:16px !important;
  line-height:1.68 !important;
  font-weight:560 !important;
}

/* 4) Gras utile : plus lisible, jamais agressif */
.cc-article .cc-body strong,
.cc-article .cc-lead strong,
.cc-article li strong{
  color:var(--cc-navy) !important;
  font-weight:780 !important;
}

/* 5) Liens de corps d’article : visibles au repos, navy au hover/focus */
.cc-article .cc-body a,
.cc-article .cc-lead a,
.cc-article li a{
  color:var(--cc-navy) !important;
  font-weight:760 !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(1,33,72,.22) !important;
  box-shadow:inset 0 -0.08em 0 rgba(39,207,169,.14);
  transition:color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.cc-article .cc-body a:hover,
.cc-article .cc-body a:focus,
.cc-article .cc-lead a:hover,
.cc-article .cc-lead a:focus,
.cc-article li a:hover,
.cc-article li a:focus,
.cc-article .cc-body a:visited,
.cc-article .cc-lead a:visited,
.cc-article li a:visited{
  color:var(--cc-navy) !important;
  border-bottom-color:var(--cc-navy) !important;
  box-shadow:inset 0 -0.08em 0 rgba(1,33,72,.12);
}

/* 6) Cartes éditoriales : un relief un peu plus lisible, sans agressivité */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision{
  border-color:rgba(1,33,72,.10) !important;
  box-shadow:0 14px 34px rgba(1,33,72,.08) !important;
}

@media (max-width: 639px){
  .cc-article p.cc-body,
  .cc-article .cc-article__callout > p.cc-body,
  .cc-article .cc-article__decision > p.cc-body,
  .cc-article .cc-article__faq h3 + .cc-body,
  .cc-article ul.cc-body,
  .cc-article ol.cc-body,
  .cc-article li{
    font-size:15.5px !important;
    line-height:1.66 !important;
  }

  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:100% !important;
  }
}


/* =========================================================
PATCH V11 — ARTICLE MOBILE HARDENING + FAQ INTERACTIVE + FAB SAFETY
Objectif :
- aucun débordement horizontal
- cartes plus verticales et lisibles
- FAQ interactive mobile-safe
- lecture premium sur smartphone
- disparition du floating WhatsApp sur article mobile
========================================================= */
@media (max-width: 767px){
  .cc-article,
  .cc-article *{
    box-sizing:border-box;
    min-width:0;
  }

  .cc-article{
    overflow-x:clip;
  }

  .cc-article .cc-article__container{
    width:min(100%, 680px);
    overflow-x:clip;
  }

  .cc-article h1,
  .cc-article h2,
  .cc-article h3,
  .cc-article p,
  .cc-article li,
  .cc-article a,
  .cc-article strong,
  .cc-article summary,
  .cc-article button{
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }

  .cc-article .cc-body,
  .cc-article .cc-body li,
  .cc-article .cc-body p{
    font-size:16.5px !important;
    line-height:1.72 !important;
    letter-spacing:-0.005em;
    font-weight:560 !important;
  }

  .cc-article .cc-lead{
    font-size:17px !important;
    line-height:1.70 !important;
  }

  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    padding:20px 18px !important;
    border-radius:18px !important;
  }

  .cc-article .cc-article__checklist li,
  .cc-article .cc-article__steps li{
    display:block !important;
    padding-left:0 !important;
    min-width:0;
  }

  .cc-article .cc-article__checklist li strong,
  .cc-article .cc-article__steps li strong{
    display:inline !important;
    margin-right:6px;
    min-width:0;
  }

  .cc-article .cc-article__faq details,
  .cc-article .cc-faq__item{
    overflow:hidden;
    border-radius:18px;
  }

  .cc-article .cc-article__faq summary,
  .cc-article .cc-faq__trigger{
    list-style:none;
    cursor:pointer;
    display:block;
    width:100%;
  }

  .cc-article .cc-article__faq summary::-webkit-details-marker,
  .cc-article .cc-faq__trigger::-webkit-details-marker{
    display:none;
  }

  .cc-article .cc-article__ctaEnd .cc-article__container{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:18px !important;
  }

  .cc-article .cc-article__ctaEnd .cc-body{
    max-width:36ch;
    margin:0 auto !important;
  }

  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:100%;
    max-width:320px;
    justify-content:center;
  }

  body.single-post .cc-fab,
  body.single .cc-fab,
  body.blog .cc-fab{
    display:none !important;
  }
}

.cc-article .cc-body a,
.cc-article .cc-lead a,
.cc-article li a{
  color:var(--cc-ink) !important;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1.5px;
}

.cc-article .cc-body a:hover,
.cc-article .cc-body a:focus,
.cc-article .cc-body a:visited,
.cc-article .cc-lead a:hover,
.cc-article .cc-lead a:focus,
.cc-article li a:hover,
.cc-article li a:focus{
  color:var(--cc-ink) !important;
}


/* =====================================================================
CityCleaner PATCH V12 — article mobile runtime fixes
Scope: article only. No homepage selectors touched.
Fixes:
1) kicker mobile wrap
2) editorial cards vertical reading on smartphone
3) article FAQ parity on current blog markup
4) runtime safety against floating WhatsApp overlap on article pages
===================================================================== */

/* FAQ article — canonical styling on actual blog markup */
.cc-article .cc-faq__item{
  margin:0;
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r24);
  overflow:hidden;
}

.cc-article .cc-faq__item + .cc-faq__item{
  margin-top:24px;
}

.cc-article .cc-faq__item[open] .cc-faq__trigger{
  background:var(--cc-bgSoft);
  border-bottom:1px solid var(--cc-ink10);
}

.cc-article .cc-faq__trigger{
  list-style:none;
  cursor:pointer;
  display:block;
  width:100%;
  margin:0;
  padding:20px 52px 20px 32px;
  position:relative;

  color:var(--cc-navy);
  font-weight:900;
  font-size:16px;
  line-height:1.35;
}

.cc-article .cc-faq__trigger::-webkit-details-marker{
  display:none;
}

.cc-article .cc-faq__trigger::after{
  content:"";
  position:absolute;
  right:32px;
  top:50%;
  width:10px;
  height:10px;
  border-right:2.2px solid var(--cc-navy);
  border-bottom:2.2px solid var(--cc-navy);
  transform:translateY(-60%) rotate(45deg);
  transform-origin:50% 50%;
  opacity:.78;
}

.cc-article .cc-faq__item[open] .cc-faq__trigger::after{
  transform:translateY(-40%) rotate(225deg);
  opacity:1;
}

.cc-article .cc-faq__panel{
  padding:12px 32px calc(20px + var(--cc-24));
  color:var(--cc-ink78);
}

.cc-article .cc-faq__panel .cc-body{
  margin:0;
  font-size:15px;
  line-height:1.65;
  font-weight:650;
}

/* Runtime safety — article reading always wins over floating widgets */
body.single-post .cc-fab,
body.single .cc-fab{
  display:none !important;
}

@supports selector(body:has(.cc-article)){
  body:has(.cc-article) .cc-fab{
    display:none !important;
  }
}

@media (max-width:767px){

  /* 1) Kicker — allow wrapping on article mobile only */
  .cc-article .cc-kicker{
    white-space:normal !important;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  /* 2) Editorial cards — keep vertical reading, avoid pseudo-columns */
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    padding:20px 18px !important;
    border-radius:18px !important;
  }

  .cc-article .cc-article__keypoints ul.cc-body,
  .cc-article .cc-article__checklist ul.cc-body,
  .cc-article .cc-article__steps ol.cc-body{
    padding:14px 0 0 !important;
    display:grid !important;
    gap:14px !important;
  }

  .cc-article .cc-article__keypoints li,
  .cc-article .cc-article__checklist li,
  .cc-article .cc-article__steps li{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
    min-width:0;
    padding:0 !important;
    border:0 !important;
    overflow-wrap:anywhere;
  }

  .cc-article .cc-article__keypoints li::before,
  .cc-article .cc-article__checklist li::before,
  .cc-article .cc-article__steps li::before{
    flex:0 0 24px !important;
    margin:2px 0 0 0 !important;
  }

  .cc-article .cc-article__keypoints li > *,
  .cc-article .cc-article__checklist li > *,
  .cc-article .cc-article__steps li > *{
    min-width:0;
  }

  /* 3) FAQ article — homepage-like spacing on current article classes */
  .cc-article .cc-faq__item{
    border-radius:18px;
  }

  .cc-article .cc-faq__item + .cc-faq__item{
    margin-top:20px;
  }

  .cc-article .cc-faq__trigger{
    padding:16px 48px 16px 24px;
    font-size:15.5px;
  }

  .cc-article .cc-faq__trigger::after{
    right:24px;
  }

  .cc-article .cc-faq__panel{
    padding:10px 24px calc(16px + var(--cc-24));
  }
}


/* =====================================================================
CityCleaner PATCH V14 — readability + anti-hyphenation + article finish (no HTML post-edit)
Scope: article only. Extends V12 without touching homepage.
Targets:
1) reduce aggressive auto-hyphenation on mobile
2) restore lead/body hierarchy
3) de-columnise 'Profils non compatibles'
4) soften CTA ending into a more editorial closure
5) keep FAQ trigger readable without requiring any HTML post-edit
===================================================================== */


@media (max-width:767px){

  /* 1) Anti-hyphenation — no premium article should read like broken syllables */
  .cc-article h1,
  .cc-article h2,
  .cc-article h3,
  .cc-article p,
  .cc-article li,
  .cc-article a,
  .cc-article strong,
  .cc-article summary,
  .cc-article button{
    overflow-wrap:break-word !important;
    word-break:normal !important;
    hyphens:none !important;
  }

  @supports (text-wrap: balance){
    .cc-article h1,
    .cc-article h2,
    .cc-article h3,
    .cc-article .cc-kicker{
      text-wrap:balance;
    }
  }

  @supports (text-wrap: pretty){
    .cc-article p,
    .cc-article li,
    .cc-article summary,
    .cc-article .cc-body,
    .cc-article .cc-lead{
      text-wrap:pretty;
    }
  }

  /* 2) Lead / body hierarchy — close, but not flattened */
  .cc-article .cc-body,
  .cc-article .cc-body li,
  .cc-article .cc-body p{
    font-size:16px !important;
    line-height:1.74 !important;
    letter-spacing:-0.004em;
    font-weight:500 !important;
  }

  .cc-article .cc-lead{
    font-size:17.25px !important;
    line-height:1.68 !important;
    letter-spacing:-0.006em;
    font-weight:620 !important;
  }

  /* 3) Checklist block — remove any last pseudo-column behaviour */
  .cc-article .cc-article__checklist ul.cc-body{
    display:grid !important;
    gap:16px !important;
    padding-top:14px !important;
  }

  .cc-article .cc-article__checklist li{
    display:block !important;
    padding:0 !important;
    min-width:0;
    border:0 !important;
  }

  .cc-article .cc-article__checklist li::before{
    display:none !important;
    content:none !important;
  }

  .cc-article .cc-article__checklist li strong{
    display:block !important;
    margin:0 0 6px 0 !important;
    font-size:15px !important;
    line-height:1.25 !important;
    hyphens:none !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }

  /* 4) CTA end — less campaign, more editorial finish */
  .cc-article .cc-article__ctaEnd .cc-article__container{
    align-items:flex-start !important;
    justify-content:flex-start !important;
    text-align:left !important;
    gap:14px !important;
  }

  .cc-article .cc-article__ctaEnd .cc-body{
    max-width:40ch !important;
    margin:0 !important;
  }

  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:min(100%, 360px) !important;
    max-width:360px !important;
    justify-content:center !important;
  }
}


/* =====================================================================
CityCleaner PATCH V15 — last-mile list integrity + mobile title polish
Scope: article only. No HTML post-edit required.
Targets:
1) kill anonymous-flex-item breaks inside keypoints/checklist items
2) keep short threshold terms (ex: "4 biens") readable in-flow
3) keep checklist labels + colon semantically tied on mobile
4) slightly reduce over-tall H2 blocks on smartphone
===================================================================== */

/* Keypoints + checklist: never use flex on inline-rich list items */
.cc-article .cc-article__keypoints ul.cc-body,
.cc-article .cc-article__checklist ul.cc-body{
  display:grid !important;
  gap:14px !important;
  padding-left:0 !important;
  margin-left:0 !important;
  list-style:none !important;
}

.cc-article .cc-article__keypoints li,
.cc-article .cc-article__checklist li{
  display:block !important;
  position:relative !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 0 0 32px !important;
  border:0 !important;
  overflow:visible !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.cc-article .cc-article__keypoints li::before,
.cc-article .cc-article__checklist li::before{
  position:absolute !important;
  left:0 !important;
  top:.14em !important;
  margin:0 !important;
  flex:none !important;
  transform:none !important;
}

.cc-article .cc-article__keypoints li strong,
.cc-article .cc-article__checklist li strong{
  display:inline !important;
  margin:0 !important;
  font-size:inherit !important;
  line-height:inherit !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.cc-article .cc-article__keypoints li strong{
  font-weight:800 !important;
}

.cc-article .cc-article__checklist li strong{
  font-weight:800 !important;
}

/* Mobile polish */
@media (max-width:767px){

  /* keep list items readable without pseudo-column feel */
  .cc-article .cc-article__keypoints ul.cc-body,
  .cc-article .cc-article__checklist ul.cc-body{
    gap:16px !important;
    padding-top:14px !important;
  }

  .cc-article .cc-article__keypoints li,
  .cc-article .cc-article__checklist li{
    padding-left:30px !important;
    font-size:16px !important;
    line-height:1.72 !important;
  }

  .cc-article .cc-article__keypoints li::before,
  .cc-article .cc-article__checklist li::before{
    top:.18em !important;
  }

  /* prevent the checklist label from looking detached from its description */
  .cc-article .cc-article__checklist li strong{
    display:inline !important;
  }

  /* slightly calmer mobile H2 rhythm without flattening hierarchy */
  .cc-article h2{
    font-size:clamp(26px, 6.6vw, 31px) !important;
    line-height:1.16 !important;
    letter-spacing:-0.018em !important;
  }

  /* make the final button feel anchored to the editorial closure */
  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    align-self:flex-start !important;
  }
}







/* Masquer la ligne meta au-dessus des articles */
.single-post .entry-meta,
.single-post .post-meta,
.single-post .ast-single-post-meta,
.single-post .ast-above-title-meta,
.single-post .ast-breadcrumbs,
.single-post .elementor-post-info,
.single-post .cat-links,
.single-post .byline,
.single-post .posted-on,
.single-post .comments-link {
  display: none !important;
}








/* =========================================================
CITYCLEANER — SHARE BLOCK ARTICLE
Objectif : bloc de partage discret, premium, aligné article
À coller tout en bas du CSS additionnel
========================================================= */

.single-post .entry-content .sharedaddy,
.single-post .entry-content .wp-block-jetpack-sharing-buttons{
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--cc-ink10);
}

.single-post .entry-content .sharedaddy h3.sd-title,
.single-post .entry-content .wp-block-jetpack-sharing-buttons .wp-block-jetpack-sharing-buttons__label{
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  letter-spacing: -.01em;
  color: var(--cc-ink62) !important;
}

.single-post .entry-content .sharedaddy ul,
.single-post .entry-content .jetpack-sharing-buttons__services-list{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.single-post .entry-content .sharedaddy li,
.single-post .entry-content .jetpack-sharing-buttons__services-list li{
  margin: 0 !important;
}

.single-post .entry-content .sharedaddy a,
.single-post .entry-content .jetpack-sharing-buttons__services-list a{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 42px;
  padding: 0 14px !important;
  border: 1px solid var(--cc-ink10) !important;
  border-radius: var(--cc-r14) !important;
  background: var(--cc-bg) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 600 !important;
  color: var(--cc-navy) !important;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.single-post .entry-content .sharedaddy a:hover,
.single-post .entry-content .jetpack-sharing-buttons__services-list a:hover{
  background: var(--cc-bgSoft) !important;
  border-color: var(--cc-ink18) !important;
  transform: translateY(-1px);
}

.single-post .entry-content .sharedaddy a:focus-visible,
.single-post .entry-content .jetpack-sharing-buttons__services-list a:focus-visible{
  outline: 2px solid rgba(1,33,72,.22);
  outline-offset: 4px;
}

.single-post .entry-content .sharedaddy svg,
.single-post .entry-content .jetpack-sharing-buttons__services-list svg{
  width: 16px;
  height: 16px;
}

@media (max-width: 640px){
  .single-post .entry-content .sharedaddy,
  .single-post .entry-content .wp-block-jetpack-sharing-buttons{
    margin-top: 24px;
    padding-top: 16px;
  }

  .single-post .entry-content .sharedaddy a,
  .single-post .entry-content .jetpack-sharing-buttons__services-list a{
    min-height: 40px;
    padding: 0 12px !important;
    font-size: 13.5px !important;
  }
}




/* CITYCLEANER — micro-ajustements bloc partage */

.single-post .entry-content .sharedaddy,
.single-post .entry-content .wp-block-jetpack-sharing-buttons{
  margin-top: 18px !important;
  padding-top: 14px !important;
}

.single-post .entry-content .sharedaddy h3.sd-title,
.single-post .entry-content .wp-block-jetpack-sharing-buttons .wp-block-jetpack-sharing-buttons__label{
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--cc-ink50) !important;
  margin-bottom: 10px !important;
}

/* Masquer le lien d’admin/personnalisation si affiché */
.single-post .entry-content .sd-title + a,
.single-post .entry-content a.sharing-anchor,
.single-post .entry-content .sharedaddy .sharing-hidden + a,
.single-post .entry-content .sharedaddy .sd-content ul + a{
  display: none !important;
}

.single-post .entry-content .sharedaddy,
.single-post .entry-content .wp-block-jetpack-sharing-buttons{
  margin-top: 14px !important;
  padding-top: 12px !important;
}









/* =========================================================
   Archive cleanup legacy retiré en V18
   - pré-pack archive redondant supprimé du runtime
   - les anciens blocs "PAGE ARTICLES ONLY" et fix hover séparé
     sont absorbés dans le canon archive ci-dessous
   - Archive V2 reste la seule couche archive canonique
   ========================================================= */

/* =========================================================
CANON — ARCHIVE COHERENCE PACK V2
Objectif : cette couche reste la référence archive active du fichier.
Révision V18 : calibration liste éditoriale desktop + smartphone.
Note maintenance : étendre ce bloc uniquement ; ne pas réintroduire
de pré-pack archive parallèle.
========================================================= */

/* 1) Archive blog : ambiance globale calme et cohérente site */
.blog,
.archive{
  background:
    radial-gradient(1200px 700px at 10% -10%, rgba(1,33,72,0.045), transparent 60%),
    radial-gradient(1100px 650px at 90% 20%, rgba(39,207,169,0.045), transparent 60%),
    #FCFDFE;
}

/* 2) Conteneur : une seule logique de largeur / éviter la double gouttière */
.blog .site-content,
.archive .site-content,
.blog main,
.archive main{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.blog .site-main,
.archive .site-main{
  width: var(--cc-container);
  margin-left: auto;
  margin-right: auto;
  padding-top: clamp(28px, 4vw, 40px);
  padding-bottom: var(--cc-64);
}

.blog .content-area,
.archive .content-area{
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 !important;
}

/* 3) Carte article archive : shell éditorial, plus tendu, moins massif */
.blog article,
.archive article{
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: 920px;
  margin: 0 auto 24px auto;
  background: var(--cc-bg);
  border: 1px solid var(--cc-ink10);
  border-radius: var(--cc-r22);
  box-shadow: 0 8px 22px rgba(1,33,72,.035);
  padding: clamp(26px, 2.7vw, 36px) clamp(24px, 3vw, 38px);
}

.blog article:last-of-type,
.archive article:last-of-type{
  margin-bottom: 0;
}

.blog article .entry-header,
.archive article .entry-header,
.blog article .entry-content,
.archive article .entry-content,
.blog article .entry-summary,
.archive article .entry-summary{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 4) Titre archive : hiérarchie liste éditoriale, plus hero-like */
.blog article .entry-title,
.archive article .entry-title,
.blog article .entry-title a,
.archive article .entry-title a{
  margin: 0 0 14px 0 !important;
  color: var(--cc-navy) !important;
  text-decoration: none !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: clamp(26px, 2.55vw, 34px) !important;
  line-height: 1.10 !important;
  font-weight: 800 !important;
  letter-spacing: -0.026em;
  text-wrap: balance;
}

.blog article .entry-title a:hover,
.archive article .entry-title a:hover,
.blog article .entry-title a:focus,
.archive article .entry-title a:focus,
.blog article .entry-title a:visited,
.archive article .entry-title a:visited{
  color: var(--cc-navy) !important;
  text-decoration: none !important;
}

/* 5) Extrait : confort premium mais plus léger et plus scannable */
.blog article .entry-content,
.archive article .entry-content,
.blog article .entry-summary,
.archive article .entry-summary,
.blog article .entry-content p,
.archive article .entry-content p,
.blog article .entry-summary p,
.archive article .entry-summary p{
  max-width: 62ch;
  color: var(--cc-ink78) !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 16.5px !important;
  line-height: 1.66 !important;
  font-weight: 500 !important;
}

.blog article p:last-child,
.archive article p:last-child,
.blog article .entry-content > *:last-child,
.archive article .entry-content > *:last-child,
.blog article .entry-summary > *:last-child,
.archive article .entry-summary > *:last-child{
  margin-bottom: 0 !important;
}

/* 6) Meta archive : sécurité totale */
.blog .posted-on,
.blog .byline,
.blog .cat-links,
.blog .comments-link,
.blog .entry-meta,
.blog .ast-above-title-meta,
.blog .ast-single-post-order,
.archive .posted-on,
.archive .byline,
.archive .cat-links,
.archive .comments-link,
.archive .entry-meta,
.archive .ast-above-title-meta,
.archive .ast-single-post-order{
  display: none !important;
}

/* 7) Lire la suite : lien éditorial premium, navy stable */
.blog a.more-link,
.archive a.more-link,
.blog .read-more,
.archive .read-more{
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  margin-top: 18px !important;
  color: var(--cc-navy) !important;
  text-decoration: none !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  border-bottom: 1px solid rgba(1,33,72,.16);
  padding-bottom: 2px;
  transition: border-color .18s ease, transform .18s ease, color .18s ease;
}

.blog a.more-link *,
.archive a.more-link *,
.blog .read-more *,
.archive .read-more *{
  color: inherit !important;
}

.blog a.more-link:hover,
.archive a.more-link:hover,
.blog .read-more:hover,
.archive .read-more:hover,
.blog a.more-link:focus,
.archive a.more-link:focus,
.blog .read-more:focus,
.archive .read-more:focus,
.blog a.more-link:active,
.archive a.more-link:active,
.blog .read-more:active,
.archive .read-more:active,
.blog a.more-link:visited,
.archive a.more-link:visited,
.blog .read-more:visited,
.archive .read-more:visited{
  color: var(--cc-navy) !important;
  border-bottom-color: rgba(1,33,72,.30) !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.blog a.more-link:hover,
.archive a.more-link:hover,
.blog .read-more:hover,
.archive .read-more:hover{
  transform: translateY(-1px);
}

/* 8) Si un thème ajoute une vignette avant le titre */
.blog .post-thumbnail,
.archive .post-thumbnail,
.blog .entry-header .post-thumb,
.archive .entry-header .post-thumb{
  margin-bottom: var(--cc-24);
}

/* 9) Footer : respiration propre */
.blog .site-footer,
.archive .site-footer{
  margin-top: var(--cc-48);
}

/* 10) Archive mobile : lisibilité, rythme, zéro overlay flottant */
.blog .cc-fab,
.archive .cc-fab,
.blog .cc-waFloat,
.archive .cc-waFloat,
.blog .cc-waFab,
.archive .cc-waFab,
.blog .cc-whatsapp-float,
.archive .cc-whatsapp-float{
  display: none !important;
}

@media (max-width: 921px){

  .blog .site-main,
  .archive .site-main{
    padding-top: 24px;
    padding-bottom: 32px;
  }

  .blog article,
  .archive article{
    max-width: none;
    margin-bottom: 18px;
    border-radius: var(--cc-r18);
    padding: 22px 20px 20px;
  }

  .blog article .entry-title,
  .archive article .entry-title,
  .blog article .entry-title a,
  .archive article .entry-title a{
    font-size: clamp(24px, 7.2vw, 30px) !important;
    line-height: 1.10 !important;
    text-wrap: pretty;
  }

  .blog article .entry-content,
  .archive article .entry-content,
  .blog article .entry-summary,
  .archive article .entry-summary,
  .blog article .entry-content p,
  .archive article .entry-content p,
  .blog article .entry-summary p,
  .archive article .entry-summary p{
    max-width: none;
    font-size: 16px !important;
    line-height: 1.64 !important;
    font-weight: 500 !important;
  }

  .blog a.more-link,
  .archive a.more-link,
  .blog .read-more,
  .archive .read-more{
    margin-top: 16px !important;
    font-size: 15px !important;
  }
}

@media (max-width: 640px){

  .blog .site-main,
  .archive .site-main{
    width: min(100% - 20px, 100%);
    padding-top: 20px;
    padding-bottom: 28px;
  }

  .blog article,
  .archive article{
    padding: 20px 18px 18px;
    margin-bottom: 16px;
  }

  .blog article .entry-title,
  .archive article .entry-title,
  .blog article .entry-title a,
  .archive article .entry-title a{
    font-size: clamp(23px, 7.6vw, 28px) !important;
    line-height: 1.08 !important;
  }

  .blog article .entry-content,
  .archive article .entry-content,
  .blog article .entry-summary,
  .archive article .entry-summary,
  .blog article .entry-content p,
  .archive article .entry-content p,
  .blog article .entry-summary p,
  .archive article .entry-summary p{
    font-size: 15.8px !important;
    line-height: 1.62 !important;
  }
}



/* =========================================================
   06 — ASTRA / ELEMENTOR RUNTIME OVERRIDES — GELÉ
   Important : couche de compatibilité thème/builder.
   Ne pas simplifier ni baisser la spécificité dans cette passe.
   ========================================================= */

/* ========================================================================== 
   CityCleaner — Patch final burger menu mobile (Astra / off-canvas)
   Périmètre strict : menu mobile uniquement
   Breakpoint : Astra mobile <= 921px

   IMPORTANT
   - Remplacer le bloc actuel dédié au burger / off-canvas mobile.
   - Ne pas empiler ce patch par-dessus les anciens doublons burger.
   - Ce patch ne touche ni la homepage hors menu mobile, ni l'article, ni l'archive.
   ========================================================================== */

@media (max-width: 921px) {

  /* ------------------------------------------------------------------------
     P0 — Assainissement / scope strict mobile Astra
     ------------------------------------------------------------------------ */

  #ast-mobile-header,
  #ast-mobile-header * {
    -webkit-tap-highlight-color: transparent;
  }

  /* ------------------------------------------------------------------------
     P1 — Trigger fermé : conserver la direction actuelle, stabiliser la famille
     ------------------------------------------------------------------------ */

  #ast-mobile-header .ast-button-wrap .menu-toggle,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle,
  #ast-mobile-header .ast-mobile-menu-trigger-minimal,
  #ast-mobile-header .ast-mobile-menu-trigger-minimal .menu-toggle {
    background: var(--cc-navy, #012148) !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: var(--cc-r24, 24px) !important;
    box-shadow: 0 8px 24px rgba(1, 33, 72, 0.12) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle {
    min-width: 64px !important;
    min-height: 64px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition:
      background-color .22s ease,
      box-shadow .22s ease,
      transform .18s ease !important;
  }

  #ast-mobile-header .menu-toggle .ast-mobile-svg,
  #ast-mobile-header .menu-toggle .ahfb-svg-iconset,
  #ast-mobile-header .menu-toggle svg {
    fill: currentColor !important;
    color: #ffffff !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:hover,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:hover {
    background: var(--cc-navy, #012148) !important;
    box-shadow: 0 10px 28px rgba(1, 33, 72, 0.14) !important;
    transform: translateY(-1px) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:active,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:active {
    transform: translateY(0) scale(0.98) !important;
    box-shadow: 0 6px 18px rgba(1, 33, 72, 0.14) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:focus,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus {
    outline: none !important;
    box-shadow: 0 8px 24px rgba(1, 33, 72, 0.12) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:focus-visible,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus-visible {
    outline: 2px solid rgba(39, 207, 169, 0.55) !important;
    outline-offset: 3px !important;
  }

  /* ------------------------------------------------------------------------
     P1 — Drawer off-canvas : surface premium, calme, cohérente homepage
     ------------------------------------------------------------------------ */

  .ast-mobile-popup-drawer {
    background: rgba(1, 33, 72, 0.18) !important;
    backdrop-filter: saturate(120%) blur(2px);
    -webkit-backdrop-filter: saturate(120%) blur(2px);
  }

  .ast-mobile-popup-drawer .ast-mobile-popup-inner {
    background: linear-gradient(
      180deg,
      #ffffff 0%,
      var(--cc-bg, #f7f9fb) 100%
    ) !important;
    width: min(88vw, 400px) !important;
    max-width: 400px !important;
    border-left: 1px solid rgba(1, 33, 72, 0.08) !important;
    box-shadow:
      -16px 0 40px rgba(1, 33, 72, 0.10),
      -2px 0 10px rgba(1, 33, 72, 0.06) !important;
    position: relative !important;
  }

  /* option de continuité haute discrète */
  .ast-mobile-popup-drawer .ast-mobile-popup-inner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      rgba(39, 207, 169, 0),
      rgba(39, 207, 169, 0.35),
      rgba(39, 207, 169, 0)
    );
    pointer-events: none;
  }

  /* ------------------------------------------------------------------------
     P1 — Zone haute du drawer / close : calmer l'objet, rétablir la parenté
     ------------------------------------------------------------------------ */

  .ast-mobile-popup-header {
    padding: 22px 22px 12px !important;
    background: transparent !important;
    border-bottom: 0 !important;
  }

  .ast-mobile-popup-header .menu-toggle-close,
  .ast-mobile-popup-header .close-drawer,
  .ast-mobile-popup-header .ast-close-popup {
    min-width: 56px !important;
    min-height: 56px !important;
    width: 56px !important;
    height: 56px !important;
    padding: 0 !important;
    border-radius: var(--cc-r24, 24px) !important;
    border: 1px solid rgba(1, 33, 72, 0.10) !important;
    background: rgba(255, 255, 255, 0.82) !important;
    color: var(--cc-navy, #012148) !important;
    box-shadow:
      0 6px 20px rgba(1, 33, 72, 0.06),
      inset 0 1px 0 rgba(255, 255, 255, 0.75) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition:
      background-color .22s ease,
      border-color .22s ease,
      box-shadow .22s ease,
      transform .18s ease !important;
  }

  .ast-mobile-popup-header .menu-toggle-close svg,
  .ast-mobile-popup-header .close-drawer svg,
  .ast-mobile-popup-header .ast-close-popup svg,
  .ast-mobile-popup-header .menu-toggle-close .ahfb-svg-iconset,
  .ast-mobile-popup-header .close-drawer .ahfb-svg-iconset,
  .ast-mobile-popup-header .ast-close-popup .ahfb-svg-iconset {
    fill: currentColor !important;
    color: var(--cc-navy, #012148) !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:hover,
  .ast-mobile-popup-header .close-drawer:hover,
  .ast-mobile-popup-header .ast-close-popup:hover {
    background: #ffffff !important;
    border-color: rgba(39, 207, 169, 0.28) !important;
    box-shadow: 0 10px 24px rgba(1, 33, 72, 0.08) !important;
    transform: translateY(-1px) !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:active,
  .ast-mobile-popup-header .close-drawer:active,
  .ast-mobile-popup-header .ast-close-popup:active {
    transform: scale(0.98) !important;
    box-shadow: 0 5px 14px rgba(1, 33, 72, 0.08) !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:focus,
  .ast-mobile-popup-header .close-drawer:focus,
  .ast-mobile-popup-header .ast-close-popup:focus {
    outline: none !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:focus-visible,
  .ast-mobile-popup-header .close-drawer:focus-visible,
  .ast-mobile-popup-header .ast-close-popup:focus-visible {
    outline: 2px solid rgba(39, 207, 169, 0.55) !important;
    outline-offset: 3px !important;
  }

  /* ------------------------------------------------------------------------
     P2 — Corps du menu : hiérarchie plus premium, moins “bloc système”
     ------------------------------------------------------------------------ */

  .ast-mobile-popup-content,
  .ast-mobile-popup-content .ast-builder-menu-mobile,
  .ast-mobile-popup-content .main-navigation,
  .ast-mobile-popup-content nav {
    background: transparent !important;
  }

  .ast-mobile-popup-content {
    padding: 6px 0 22px !important;
  }

  .ast-mobile-popup-content .main-header-menu,
  .ast-mobile-popup-content .menu,
  .ast-mobile-popup-content ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  .ast-mobile-popup-content .menu-item,
  .ast-mobile-popup-content .page_item {
    margin: 0 !important;
    position: relative !important;
  }

  .ast-mobile-popup-content .menu-item + .menu-item,
  .ast-mobile-popup-content .page_item + .page_item {
    border-top: 1px solid rgba(1, 33, 72, 0.08) !important;
  }

  .ast-mobile-popup-content .menu-link,
  .ast-mobile-popup-content .main-header-menu a,
  .ast-mobile-popup-content .menu-item > a,
  .ast-mobile-popup-content .page_item > a {
    display: block !important;
    padding: 20px 24px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--cc-navy, #012148) !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    transition:
      background-color .18s ease,
      color .18s ease,
      padding-left .18s ease !important;
  }

  /* sous-texte visuel léger via indentation premium au survol/focus */
  .ast-mobile-popup-content .menu-link:hover,
  .ast-mobile-popup-content .main-header-menu a:hover,
  .ast-mobile-popup-content .menu-item > a:hover,
  .ast-mobile-popup-content .page_item > a:hover {
    background: rgba(39, 207, 169, 0.07) !important;
    color: var(--cc-navy, #012148) !important;
    padding-left: 28px !important;
  }

  /* ------------------------------------------------------------------------
     P3 — États interactifs unifiés
     ------------------------------------------------------------------------ */

  .ast-mobile-popup-content .menu-link:focus,
  .ast-mobile-popup-content .main-header-menu a:focus,
  .ast-mobile-popup-content .menu-item > a:focus,
  .ast-mobile-popup-content .page_item > a:focus {
    outline: none !important;
    background: rgba(39, 207, 169, 0.07) !important;
    color: var(--cc-navy, #012148) !important;
  }

  .ast-mobile-popup-content .menu-link:focus-visible,
  .ast-mobile-popup-content .main-header-menu a:focus-visible,
  .ast-mobile-popup-content .menu-item > a:focus-visible,
  .ast-mobile-popup-content .page_item > a:focus-visible {
    outline: 2px solid rgba(39, 207, 169, 0.46) !important;
    outline-offset: -2px !important;
    background: rgba(39, 207, 169, 0.08) !important;
  }

  .ast-mobile-popup-content .menu-link:active,
  .ast-mobile-popup-content .main-header-menu a:active,
  .ast-mobile-popup-content .menu-item > a:active,
  .ast-mobile-popup-content .page_item > a:active {
    background: rgba(1, 33, 72, 0.06) !important;
    color: var(--cc-navy, #012148) !important;
  }

  .ast-mobile-popup-content .current-menu-item > a,
  .ast-mobile-popup-content .current_page_item > a,
  .ast-mobile-popup-content .current-menu-ancestor > a,
  .ast-mobile-popup-content .current_page_ancestor > a {
    background: rgba(1, 33, 72, 0.05) !important;
    color: var(--cc-navy, #012148) !important;
    font-weight: 800 !important;
  }

  /* neutralisation ciblée des résidus Astra trop visibles */
  .ast-mobile-popup-content .menu-item > a:focus,
  .ast-mobile-popup-content .menu-link:focus,
  .ast-mobile-popup-header button:focus,
  #ast-mobile-header .menu-toggle:focus {
    border-color: transparent !important;
    box-shadow: none !important;
  }

  /* ------------------------------------------------------------------------
     P4 — Sous-menus / toggles éventuels (sécurisation cohérente)
     ------------------------------------------------------------------------ */

  .ast-mobile-popup-content .ast-menu-toggle,
  .ast-mobile-popup-content .submenu-with-border .ast-menu-toggle {
    color: var(--cc-navy, #012148) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .ast-mobile-popup-content .ast-menu-toggle:hover,
  .ast-mobile-popup-content .ast-menu-toggle:focus,
  .ast-mobile-popup-content .ast-menu-toggle:focus-visible {
    color: var(--cc-navy, #012148) !important;
    background: rgba(39, 207, 169, 0.07) !important;
    outline: none !important;
    box-shadow: none !important;
  }

  /* ------------------------------------------------------------------------
     P5 — Micro-ajustements petits écrans
     ------------------------------------------------------------------------ */

  @media (max-width: 420px) {
    .ast-mobile-popup-drawer .ast-mobile-popup-inner {
      width: 88vw !important;
    }

    .ast-mobile-popup-header {
      padding: 18px 18px 10px !important;
    }

    .ast-mobile-popup-header .menu-toggle-close,
    .ast-mobile-popup-header .close-drawer,
    .ast-mobile-popup-header .ast-close-popup {
      min-width: 52px !important;
      min-height: 52px !important;
      width: 52px !important;
      height: 52px !important;
    }

    .ast-mobile-popup-content .menu-link,
    .ast-mobile-popup-content .main-header-menu a,
    .ast-mobile-popup-content .menu-item > a,
    .ast-mobile-popup-content .page_item > a {
      padding: 18px 20px !important;
      font-size: 15.5px !important;
    }

    .ast-mobile-popup-content .menu-link:hover,
    .ast-mobile-popup-content .main-header-menu a:hover,
    .ast-mobile-popup-content .menu-item > a:hover,
    .ast-mobile-popup-content .page_item > a:hover {
      padding-left: 24px !important;
    }
  }
}


/* ========================================================================
   CITYCLEANER — V17 MICRO-CORRECTION FINALE BURGER MOBILE
   Cible : 1) supprimer halo repos, 2) masquer trigger à l’ouverture,
           3) stabiliser le drawer, 4) rapprocher le close du trigger
   ======================================================================== */
@media (max-width: 921px) {
  /* 1) Halo turquoise au repos : neutralisation du wrapper + état fermé propre */
  #ast-mobile-header [data-section="section-header-mobile-trigger"],
  #ast-mobile-header .ast-mobile-menu-trigger-wrap,
  #ast-mobile-header .ast-builder-layout-element[data-section="section-header-mobile-trigger"],
  #ast-mobile-header .ast-button-wrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle {
    outline: none !important;
    border: 0 !important;
    box-shadow: 0 10px 24px rgba(1, 33, 72, 0.12) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:focus,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus {
    outline: none !important;
    border: 0 !important;
    box-shadow: 0 10px 24px rgba(1, 33, 72, 0.12) !important;
  }

  #ast-mobile-header .ast-button-wrap .menu-toggle:focus-visible,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus-visible {
    outline: 2px solid rgba(1, 33, 72, 0.14) !important;
    outline-offset: 2px !important;
    box-shadow: 0 10px 24px rgba(1, 33, 72, 0.12) !important;
  }

  /* 2) Quand le drawer est ouvert, le trigger ne doit plus polluer visuellement */
  .ast-mobile-popup-drawer.active ~ #masthead #ast-mobile-header .menu-toggle,
  .ast-mobile-popup-drawer.active ~ #ast-mobile-header .menu-toggle,
  body.ast-main-header-nav-open #ast-mobile-header .menu-toggle,
  body.ast-popup-nav-open #ast-mobile-header .menu-toggle,
  body.ast-mobile-popup-active #ast-mobile-header .menu-toggle,
  body.ast-off-canvas-menu-open #ast-mobile-header .menu-toggle {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: scale(0.92) !important;
    box-shadow: none !important;
  }

  /* Sécurisation des couches : le drawer et son overlay doivent passer clairement devant */
  .ast-mobile-popup-drawer {
    z-index: 999999 !important;
    background: rgba(1, 33, 72, 0.24) !important;
    backdrop-filter: saturate(118%) blur(2px) !important;
    -webkit-backdrop-filter: saturate(118%) blur(2px) !important;
  }

  /* 3) Drawer moins "carte flottante", plus panneau assumé */
  .ast-mobile-popup-drawer .ast-mobile-popup-inner {
    width: min(94vw, 420px) !important;
    max-width: 420px !important;
    min-height: 100dvh !important;
    height: 100dvh !important;
    background: #ffffff !important;
    border-left: 1px solid rgba(1, 33, 72, 0.07) !important;
    box-shadow:
      -20px 0 44px rgba(1, 33, 72, 0.12),
      -2px 0 10px rgba(1, 33, 72, 0.05) !important;
  }

  .ast-mobile-popup-drawer .ast-mobile-popup-inner::before {
    opacity: .55 !important;
  }

  .ast-mobile-popup-header {
    padding: 18px 18px 10px !important;
  }

  .ast-mobile-popup-content {
    padding-top: 2px !important;
  }

  /* 4) Close encore plus frère du burger : moins autonome, plus compact */
  .ast-mobile-popup-header .menu-toggle-close,
  .ast-mobile-popup-header .close-drawer,
  .ast-mobile-popup-header .ast-close-popup {
    min-width: 52px !important;
    min-height: 52px !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(1, 33, 72, 0.09) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 4px 14px rgba(1, 33, 72, 0.06) !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:hover,
  .ast-mobile-popup-header .close-drawer:hover,
  .ast-mobile-popup-header .ast-close-popup:hover {
    background: #ffffff !important;
    border-color: rgba(1, 33, 72, 0.12) !important;
    box-shadow: 0 8px 18px rgba(1, 33, 72, 0.08) !important;
    transform: translateY(-1px) !important;
  }

  .ast-mobile-popup-header .menu-toggle-close:focus-visible,
  .ast-mobile-popup-header .close-drawer:focus-visible,
  .ast-mobile-popup-header .ast-close-popup:focus-visible {
    outline: 2px solid rgba(1, 33, 72, 0.14) !important;
    outline-offset: 2px !important;
  }

  /* Liens : un peu moins de vide en tête pour calmer l’effet de grande sheet blanche */
  .ast-mobile-popup-content .menu-link,
  .ast-mobile-popup-content .main-header-menu a,
  .ast-mobile-popup-content .menu-item > a,
  .ast-mobile-popup-content .page_item > a {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  @media (max-width: 420px) {
    .ast-mobile-popup-drawer .ast-mobile-popup-inner {
      width: 96vw !important;
    }
  }
}
/* ========================================================================
   CITYCLEANER — V18 ULTRA-FINITION BURGER MOBILE
   Cible : effacer le liseré gris résiduel autour du burger fermé,
           sans toucher au drawer ni au close.
   ======================================================================== */
@media (max-width: 921px) {
  /* 1) Neutraliser tout halo de wrapper autour du trigger */
  #ast-mobile-header [data-section="section-header-mobile-trigger"],
  #ast-mobile-header .ast-builder-layout-element[data-section="section-header-mobile-trigger"],
  #ast-mobile-header .ast-mobile-menu-trigger-wrap,
  #ast-mobile-header .ast-button-wrap,
  #ast-mobile-header .ast-mobile-menu-buttons {
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    filter: none !important;
  }

  /* 2) État fermé / après fermeture : un seul volume navy, sans double liseré */
  body:not(.ast-main-header-nav-open):not(.ast-popup-nav-open):not(.ast-mobile-popup-active):not(.ast-off-canvas-menu-open) #ast-mobile-header .ast-button-wrap .menu-toggle,
  body:not(.ast-main-header-nav-open):not(.ast-popup-nav-open):not(.ast-mobile-popup-active):not(.ast-off-canvas-menu-open) #ast-mobile-header .menu-toggle.main-header-menu-toggle,
  body:not(.ast-main-header-nav-open):not(.ast-popup-nav-open):not(.ast-mobile-popup-active):not(.ast-off-canvas-menu-open) #ast-mobile-header .ast-mobile-menu-trigger-minimal,
  body:not(.ast-main-header-nav-open):not(.ast-popup-nav-open):not(.ast-mobile-popup-active):not(.ast-off-canvas-menu-open) #ast-mobile-header .ast-mobile-menu-trigger-minimal .menu-toggle {
    border: 0 !important;
    outline: 0 !important;
    filter: none !important;
    background-clip: padding-box !important;
    box-shadow: 0 6px 16px rgba(1, 33, 72, 0.10) !important;
  }

  /* 3) Pas de sur-signalisation au tap/click standard */
  #ast-mobile-header .ast-button-wrap .menu-toggle:hover,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:hover,
  #ast-mobile-header .ast-button-wrap .menu-toggle:focus,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus,
  #ast-mobile-header .ast-button-wrap .menu-toggle:active,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:active {
    border: 0 !important;
    outline: none !important;
    box-shadow: 0 6px 16px rgba(1, 33, 72, 0.10) !important;
  }

  /* 4) Le focus visible reste accessible, mais nettement plus discret */
  #ast-mobile-header .ast-button-wrap .menu-toggle:focus-visible,
  #ast-mobile-header .menu-toggle.main-header-menu-toggle:focus-visible {
    outline: 2px solid rgba(1, 33, 72, 0.10) !important;
    outline-offset: 2px !important;
    box-shadow: 0 6px 16px rgba(1, 33, 72, 0.10) !important;
  }
}


/* =========================================================
   CityCleaner — BLOG MOBILE PATCH V16
   Objectif :
   - sécuriser les blocs steps/checklists sur smartphone
   - neutraliser les vieux patterns pseudo-colonnaires
   - réduire la hauteur perçue des titres de blocs
   - préserver le desktop et le HTML existant
   ========================================================= */

@media (max-width: 640px){

  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist{
    padding: 14px !important;
    margin: 28px 0 !important;
    overflow: hidden !important;
  }

  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle{
    padding: 16px 14px 12px !important;
    white-space: normal !important;
    line-height: 1.35 !important;
    font-size: 11.5px !important;
    letter-spacing: .07em !important;
  }

  .cc-article .cc-article__steps ol,
  .cc-article .cc-article__checklist ul{
    margin: 0 !important;
    padding: 0 !important;
  }

  .cc-article .cc-article__steps li,
  .cc-article .cc-article__checklist li{
    display: flex !important;
    grid-template-columns: none !important;
    column-gap: 0 !important;
    gap: 12px !important;
    align-items: flex-start !important;
    min-width: 0 !important;
    padding: 14px 0 !important;
    line-height: 1.58 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto !important;
  }

  .cc-article .cc-article__steps li::before,
  .cc-article .cc-article__checklist li::before{
    margin: 1px 0 0 0 !important;
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
  }

  .cc-article .cc-article__checklist li > strong:first-child,
  .cc-article .cc-article__checklist li > strong:first-child ~ *{
    grid-column: auto !important;
  }

  .cc-article .cc-article__steps li strong,
  .cc-article .cc-article__checklist li strong{
    display: inline !important;
    margin: 0 !important;
    font-weight: 800 !important;
  }
}










/* =========================================================
CityCleaner — PATCH V17
Objet : corriger définitivement les cassures mobiles sur blocks
steps / checklist / decision quand le contenu utilise
un label en gras suivi d'une description.
À coller TOUT EN BAS du CSS additionnel actuel.
========================================================= */

@media (max-width: 640px){

  /* 1) piles mobiles stables */
  .cc-seo-page .cc-article .cc-article__checklist ul.cc-body,
  .cc-seo-page .cc-article .cc-article__steps ol.cc-body,
  .cc-seo-page .cc-article .cc-article__decision ul.cc-body,
  .cc-seo-page .cc-article .cc-article__decision ol.cc-body{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin:0 !important;
    padding:14px 0 0 !important;
    list-style:none !important;
  }

  /* 2) IMPORTANT : sortir du flex mobile pour les items textuels inline
        sinon le label en gras + le texte deviennent des pseudo-colonnes anonymes */
  .cc-seo-page .cc-article .cc-article__checklist li,
  .cc-seo-page .cc-article .cc-article__steps li,
  .cc-seo-page .cc-article .cc-article__decision ul.cc-body li,
  .cc-seo-page .cc-article .cc-article__decision ol.cc-body li{
    display:block !important;
    position:relative !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 0 0 32px !important;
    border:0 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
    hyphens:none !important;
    font-size:15.5px !important;
    line-height:1.66 !important;
  }

  /* 3) pictos / numéros ancrés en absolu, sans réduire la largeur utile du texte */
  .cc-seo-page .cc-article .cc-article__checklist li::before,
  .cc-seo-page .cc-article .cc-article__steps li::before{
    position:absolute !important;
    left:0 !important;
    top:.14em !important;
    width:22px !important;
    height:22px !important;
    margin:0 !important;
    flex:none !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }

  /* 4) le label reste inline : plus de labels empilés au-dessus de la description */
  .cc-seo-page .cc-article .cc-article__checklist li strong,
  .cc-seo-page .cc-article .cc-article__steps li strong,
  .cc-seo-page .cc-article .cc-article__decision li strong,
  .cc-seo-page .cc-article .cc-body strong{
    display:inline !important;
    margin:0 !important;
    padding:0 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
  }

  /* 5) si Elementor injecte des wrappers, ils doivent reprendre toute la ligne */
  .cc-seo-page .cc-article .cc-article__checklist li > *,
  .cc-seo-page .cc-article .cc-article__steps li > *,
  .cc-seo-page .cc-article .cc-article__decision li > *{
    min-width:0 !important;
    max-width:100% !important;
  }

  .cc-seo-page .cc-article .cc-article__checklist li p,
  .cc-seo-page .cc-article .cc-article__steps li p,
  .cc-seo-page .cc-article .cc-article__decision li p{
    margin:0 !important;
  }

  /* 6) titres de cartes un peu plus compacts */
  .cc-seo-page .cc-article .cc-article__stepsTitle,
  .cc-seo-page .cc-article .cc-article__checklistTitle,
  .cc-seo-page .cc-article .cc-article__decisionTitle{
    font-size:12px !important;
    line-height:1.2 !important;
    letter-spacing:.08em !important;
    margin:0 0 10px !important;
  }
}





























/* =========================================================
   CITYCLEANER — TEMPLATE ARCHIVE ÉDITORIAL PREMIUM
   Base : extension alignée DS / homepage
   Inspiration : Neuralflow blog v3 (transposition, pas clone)
   Statut : couche template archive, à charger après les tokens globaux
   NOTE : cette couche remplace l’archive Astra stylée pour la page Articles.
   ========================================================= */

/* =========================================================
   0) GOUVERNANCE
   - Extension du canon Archive_V2
   - Réutilise les tokens DS existants
   - N’introduit aucune palette concurrente
   - Remplace les grosses cartes mono-bloc par une archive éditoriale composée
   ========================================================= */

/* =========================
   1) RESET ARCHIVE THÈME
   ========================= */
.blog .ast-archive-description,
.archive .ast-archive-description,
.blog .page-header,
.archive .page-header,
.blog .ast-archive-entry-banner,
.archive .ast-archive-entry-banner,
.blog .site-main > header,
.archive .site-main > header{
  display:none !important;
}

.blog .site-content,
.archive .site-content,
.blog main,
.archive main{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.blog .site-main,
.archive .site-main{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

.blog .content-area,
.archive .content-area,
.blog #primary,
.archive #primary{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* =========================
   2) WRAPPER GLOBAL
   ========================= */
.cc-archive{
  position:relative;
  background:
    radial-gradient(1180px 620px at 8% 0%, rgba(70,217,255,.075), transparent 60%),
    radial-gradient(860px 520px at 92% 8%, rgba(137,88,254,.055), transparent 58%),
    #FCFDFE;
}

.cc-archive__inner{
  width:var(--cc-container);
  margin:0 auto;
  padding: clamp(44px, 5vw, 72px) 0 var(--cc-section-py-desktop);
}

/* =========================
   3) HEADER
   ========================= */
.cc-archiveHero{
  margin:0 0 clamp(32px, 5vw, 56px);
}

.cc-archiveHero__kicker{
  margin:0 0 12px;
}

.cc-archiveHero__title{
  margin:0 0 18px;
  max-width: 14ch;
  color:var(--cc-navy);
  font-size: clamp(38px, 5vw, 66px);
  line-height:1.02;
  letter-spacing:-0.04em;
  font-weight:900;
  text-wrap:balance;
}

.cc-archiveHero__lead{
  max-width:64ch;
  margin:0;
}

/* =========================
   4) META COMMUNE
   ========================= */
.cc-archiveMeta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.cc-archiveMeta .cc-chip{
  color:var(--cc-navy);
  border-color:rgba(1,33,72,.20);
  background:rgba(255,255,255,.78);
  backdrop-filter: blur(4px);
}

.cc-archiveMeta__date{
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  color:var(--cc-ink62);
  text-transform:uppercase;
  letter-spacing:.03em;
}

/* =========================
   5) FEATURED GRID
   ========================= */
.cc-archiveFeatured{
  display:grid;
  grid-template-columns: 1.28fr .72fr;
  gap: var(--cc-24);
  align-items:stretch;
  margin:0 0 clamp(56px, 7vw, 84px);
}

.cc-archiveFeatured__lead{
  position:relative;
  min-height: 540px;
  overflow:hidden;
  border-radius:var(--cc-r18) !important;
  box-shadow:var(--cc-shadow-card) !important;
  border-color:rgba(1,33,72,.08);
}

.cc-archiveFeatured__mediaLink,
.cc-archiveFeatured__miniMediaLink,
.cc-archiveRow__mediaLink{
  display:block;
  color:inherit;
  text-decoration:none;
}

.cc-archiveFeatured__mediaWrap{
  position:absolute;
  inset:0;
}

.cc-archiveFeatured__media{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.94) contrast(.98);
}

.cc-archiveFeatured__lead::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(1,33,72,.06) 0%, rgba(1,33,72,.26) 58%, rgba(1,33,72,.54) 100%);
}

.cc-archiveFeatured__overlay{
  position:relative;
  z-index:2;
  display:flex;
  min-height:100%;
  justify-content:flex-end;
  flex-direction:column;
  padding: clamp(22px, 3vw, 30px);
}

.cc-archiveFeatured__overlay .cc-archiveMeta{
  margin:0 0 14px;
}

.cc-archiveFeatured__overlay .cc-archiveMeta__date,
.cc-archiveFeatured__overlay .cc-chip{
  color:#fff;
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.08);
}

.cc-archiveFeatured__title,
.cc-archiveFeatured__miniTitle,
.cc-archiveRow__title{
  margin:0;
  text-wrap:balance;
}

.cc-archiveFeatured__title{
  max-width: 12ch;
  font-size: clamp(30px, 3.4vw, 44px);
  line-height:1.04;
  letter-spacing:-0.03em;
  font-weight:900;
}

.cc-archiveFeatured__title a,
.cc-archiveFeatured__miniTitle a,
.cc-archiveRow__title a{
  color:inherit;
  text-decoration:none;
}

.cc-archiveFeatured__title a{ color:#fff; }

.cc-archiveFeatured__title a:hover,
.cc-archiveFeatured__miniTitle a:hover,
.cc-archiveRow__title a:hover{
  text-decoration:none;
}

.cc-archiveFeatured__side{
  display:grid;
  gap:var(--cc-24);
  align-content:start;
}

.cc-archiveFeatured__mini{
  overflow:hidden;
  padding:0;
  border-radius:var(--cc-r18);
}

.cc-archiveFeatured__miniMedia{
  width:100%;
  aspect-ratio: 16 / 11;
  display:block;
  object-fit:cover;
}

.cc-archiveFeatured__miniBody{
  padding:22px 22px 20px;
  display:grid;
  gap:14px;
}

.cc-archiveFeatured__miniBody--textFirst{
  padding-bottom:18px;
}

.cc-archiveFeatured__miniTitle{
  color:var(--cc-navy);
  font-size: clamp(24px, 2.2vw, 34px);
  line-height:1.08;
  letter-spacing:-0.03em;
  font-weight:850;
}

/* =========================
   6) BROWSE / FEED LAYOUT
   ========================= */
.cc-archiveBrowse{
  display:grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 52px);
  align-items:start;
}

.cc-archiveBrowse__rail{
  position:relative;
}

.cc-archiveBrowse__railInner{
  position:sticky;
  top: calc(var(--cc-24) + 8px);
}

.cc-archiveBrowse__title{
  margin:0 0 28px;
  color:var(--cc-navy);
  font-size: clamp(34px, 4vw, 58px);
  line-height:1.02;
  letter-spacing:-0.04em;
  font-weight:900;
}

/* =========================
   7) SEARCH
   ========================= */
.cc-archiveSearch{
  margin:0 0 var(--cc-24);
}

.cc-archiveSearch__field{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding-bottom:12px;
  border-bottom:1px solid var(--cc-ink18);
}

.cc-archiveSearch__input{
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:var(--cc-navy);
  font:inherit;
  font-size:15px;
  line-height:1.4;
  padding:0;
}

.cc-archiveSearch__input::placeholder{ color:var(--cc-ink50); }
.cc-archiveSearch__input:focus{ outline:none; }

.cc-archiveSearch__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--cc-ink62);
  cursor:pointer;
}

.cc-archiveSearch__btn svg{
  width:18px;
  height:18px;
}

/* =========================
   8) FILTERS
   ========================= */
.cc-archiveFilters{
  display:grid;
  gap:12px;
}

.cc-archiveFilters__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 18px;
  border-radius:var(--cc-r999);
  border:1px solid rgba(1,33,72,.20);
  background:rgba(255,255,255,.72);
  color:var(--cc-navy);
  text-decoration:none;
  font-size:15px;
  line-height:1.2;
  font-weight:800;
  transition:transform .16s ease, border-color .16s ease, background .16s ease, color .16s ease;
}

.cc-archiveFilters__btn:hover,
.cc-archiveFilters__btn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(1,33,72,.30);
  background:#fff;
  color:var(--cc-navy);
}

.cc-archiveFilters__btn.is-active{
  background:linear-gradient(90deg, var(--cc-navy), #06306A);
  color:#fff;
  border-color:rgba(1,33,72,.08);
  box-shadow:var(--cc-shadow-card);
}

/* =========================
   9) FEED ROWS
   ========================= */
.cc-archiveFeed{
  display:grid;
  gap:var(--cc-24);
}

.cc-archiveRow{
  display:grid;
  grid-template-columns:minmax(280px, 360px) minmax(0, 1fr);
  gap: clamp(22px, 3vw, 34px);
  align-items:center;
  padding:18px;
  border-radius:var(--cc-r18) !important;
  border-color:rgba(1,33,72,.08);
  box-shadow:var(--cc-shadow-card);
}

.cc-archiveRow__media{
  width:100%;
  aspect-ratio: 16 / 11;
  display:block;
  object-fit:cover;
  border-radius:var(--cc-r16);
}

.cc-archiveRow__body{
  display:grid;
  gap:16px;
}

.cc-archiveRow__title{
  color:var(--cc-navy);
  font-size: clamp(28px, 2.6vw, 40px);
  line-height:1.08;
  letter-spacing:-0.03em;
  font-weight:880;
}

.cc-archiveRow__excerpt{
  margin:0;
  max-width:60ch;
}

/* =========================
   10) PAGINATION
   ========================= */
.cc-archivePagination{
  margin-top:8px;
}

.cc-archivePagination__line{
  height:1px;
  background:var(--cc-ink18);
  margin-bottom:20px;
}

.cc-archivePagination__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.cc-archivePagination__count{
  font-size:15px;
  font-weight:800;
  color:var(--cc-navy);
  letter-spacing:-0.02em;
}

.cc-archivePagination__actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.cc-archivePagination__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:var(--cc-r999);
  border:1px solid rgba(1,33,72,.20);
  background:#fff;
  color:var(--cc-navy);
  text-decoration:none;
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}

.cc-archivePagination__btn:hover,
.cc-archivePagination__btn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(1,33,72,.30);
  background:var(--cc-bgSoft);
}

.cc-archivePagination__btn svg{
  width:18px;
  height:18px;
}

/* =========================
   11) CTA FINAL
   ========================= */
.cc-cta-final__text{
  margin:0 0 var(--cc-24);
  text-align:center;
  color:var(--cc-navy);
  font-size: clamp(24px, 2.1vw, 34px);
  line-height:1.28;
  letter-spacing:-0.025em;
  font-weight:850;
}

.cc-cta-final .cc-cta-final__inner{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:0;
}

.cc-cta-final .cc-fine{
  margin:16px 0 0;
}

/* =========================
   12) FAB ARCHIVE DESKTOP / MOBILE
   ========================= */
@media (max-width: 921px){
  .blog .cc-fab,
  .archive .cc-fab,
  .blog .cc-waFloat,
  .archive .cc-waFloat,
  .blog .cc-waFab,
  .archive .cc-waFab,
  .blog .cc-whatsapp-float,
  .archive .cc-whatsapp-float{
    display:none !important;
  }
}

/* =========================
   13) ADAPTATIONS TABLET
   ========================= */
@media (max-width: 1080px){
  .cc-archiveFeatured{
    grid-template-columns:1fr;
  }

  .cc-archiveFeatured__lead{
    min-height:460px;
  }

  .cc-archiveFeatured__side{
    grid-template-columns:1fr 1fr;
  }

  .cc-archiveBrowse{
    grid-template-columns:1fr;
  }

  .cc-archiveBrowse__railInner{
    position:static;
  }
}

/* =========================
   14) ADAPTATIONS MOBILE
   ========================= */
@media (max-width: 767px){
  .cc-archive__inner{
    padding: 28px 0 var(--cc-section-py-mobile);
  }

  .cc-archiveHero{
    margin-bottom:32px;
  }

  .cc-archiveHero__title{
    max-width:none;
    font-size: clamp(32px, 10vw, 44px);
    line-height:1.03;
  }

  .cc-archiveHero__lead{
    max-width:none;
    font-size:15.5px;
    line-height:1.62;
  }

  .cc-archiveFeatured{
    gap:16px;
    margin-bottom:40px;
  }

  .cc-archiveFeatured__lead{
    min-height:360px;
  }

  .cc-archiveFeatured__overlay{
    padding:20px;
  }

  .cc-archiveFeatured__title{
    max-width:none;
    font-size: clamp(26px, 7.2vw, 34px);
  }

  .cc-archiveFeatured__side{
    grid-template-columns:1fr;
    gap:16px;
  }

  .cc-archiveFeatured__miniBody,
  .cc-archiveFeatured__miniBody--textFirst{
    padding:18px 18px 16px;
  }

  .cc-archiveFeatured__miniTitle{
    font-size: clamp(22px, 6.2vw, 30px);
  }

  .cc-archiveBrowse{
    gap:24px;
  }

  .cc-archiveBrowse__title{
    margin-bottom:20px;
    font-size: clamp(28px, 8vw, 38px);
  }

  .cc-archiveSearch{
    margin-bottom:18px;
  }

  .cc-archiveFilters{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding-bottom:6px;
    scrollbar-width:none;
  }

  .cc-archiveFilters::-webkit-scrollbar{ display:none; }

  .cc-archiveFilters__btn{
    flex:0 0 auto;
    min-height:46px;
    padding:0 16px;
    font-size:14px;
  }

  .cc-archiveFeed{
    gap:16px;
  }

  .cc-archiveRow{
    grid-template-columns:1fr;
    gap:16px;
    padding:16px;
  }

  .cc-archiveRow__title{
    font-size: clamp(24px, 6.8vw, 32px);
    line-height:1.08;
  }

  .cc-archiveRow__excerpt{
    max-width:none;
    font-size:15.5px;
    line-height:1.62;
  }

  .cc-archivePagination__bar{
    flex-direction:column;
    align-items:flex-start;
  }

  .cc-archivePagination__actions{
    width:100%;
    justify-content:flex-end;
  }

  .cc-cta-final__text{
    font-size: clamp(22px, 6vw, 28px);
    line-height:1.34;
  }
}

/* =========================
   15) ADAPTATIONS PETITS SMARTPHONES
   ========================= */
@media (max-width: 420px){
  .cc-archiveFeatured__lead{
    min-height:320px;
  }

  .cc-archiveFeatured__overlay,
  .cc-archiveFeatured__miniBody,
  .cc-archiveFeatured__miniBody--textFirst,
  .cc-archiveRow{
    padding-left:14px;
    padding-right:14px;
  }

  .cc-archiveMeta{
    gap:8px;
  }

  .cc-archiveMeta__date{
    font-size:12px;
  }

  .cc-archivePagination__btn{
    width:44px;
    height:44px;
  }
}




















.cc-article__heroMedia{
  margin: 28px 0 0;
}

.cc-article__heroMedia img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
  object-fit:cover;
  box-shadow:0 10px 26px rgba(1,33,72,0.06);
}

































.cc-archiveV2{
  background:
    radial-gradient(1200px 700px at 10% -10%, rgba(1,33,72,0.045), transparent 60%),
    radial-gradient(1100px 650px at 90% 20%, rgba(39,207,169,0.045), transparent 60%),
    #FCFDFE;
}

.cc-archiveV2__inner{
  width: var(--cc-container);
  margin: 0 auto;
  padding: clamp(42px, 6vw, 76px) 0 clamp(56px, 8vw, 96px);
}

.cc-archiveV2__intro{
  max-width: 760px;
  margin: 0 0 clamp(28px, 4vw, 44px);
}

.cc-archiveV2__title{
  margin: 0 0 14px;
  color: var(--cc-navy);
  font-size: clamp(46px, 7vw, 84px);
  line-height: .95;
  font-weight: 900;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.cc-archiveV2__title::after{
  content: "";
  display: block;
  width: clamp(92px, 18vw, 150px);
  height: 8px;
  margin-top: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(39,207,169,.50), rgba(70,217,255,.28));
}

.cc-archiveV2__lead{
  margin: 0;
  max-width: 62ch;
}

.cc-archiveV2__topics,
.cc-archiveV2__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cc-archiveV2__topics{
  margin-top: 22px;
}

.cc-archiveV2__layout{
  display: grid;
  gap: 24px;
  align-items: start;
}

.cc-archiveV2__rail{
  display: grid;
  gap: 24px;
  align-items: start;
}

.cc-archiveV2__card{
  position: relative;
  background: var(--cc-bg);
  border: 1px solid var(--cc-ink10);
  border-radius: var(--cc-r24);
  box-shadow: var(--cc-shadow-card);
  overflow: hidden;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.cc-archiveV2__cardLink{
  display: block;
  color: inherit;
  text-decoration: none;
}

.cc-archiveV2__media{
  overflow: hidden;
  background: var(--cc-bgSoft);
}

.cc-archiveV2__media--featured{
  aspect-ratio: 16 / 10;
}

.cc-archiveV2__media--secondary{
  aspect-ratio: 16 / 10;
}

.cc-archiveV2__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 260ms ease;
}

.cc-archiveV2__panel{
  position: relative;
  z-index: 2;
  margin: -26px 18px 18px;
  padding: 18px 18px 16px;
  background: rgba(255,255,255,.96);
  border: 1px solid var(--cc-ink10);
  border-radius: 20px;
  backdrop-filter: blur(6px);
}

.cc-archiveV2__panel--featured{
  margin: -34px 22px 22px;
  padding: 22px 22px 18px;
}

.cc-archiveV2__chips{
  margin: 0 0 14px;
}

.cc-archiveV2__cardTitle{
  margin: 0 0 14px;
  color: var(--cc-navy);
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.04;
  font-weight: 860;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.cc-archiveV2__cardTitle--featured{
  font-size: clamp(34px, 4.4vw, 56px);
}

.cc-archiveV2__excerpt{
  margin: 0;
  color: var(--cc-ink78);
  font-size: 15px;
  line-height: 1.62;
}

.cc-archiveV2__excerpt--featured{
  font-size: 15.5px;
}

.cc-archiveV2__more{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  color: var(--cc-ink62);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .01em;
}

.cc-archiveV2__more::after{
  content: "→";
  line-height: 1;
}

@media (hover:hover){
  .cc-archiveV2__card:hover{
    transform: translateY(-2px);
    border-color: var(--cc-ink18);
    box-shadow: 0 14px 30px rgba(1,33,72,0.08);
  }

  .cc-archiveV2__card:hover .cc-archiveV2__media img{
    transform: scale(1.02);
  }
}

@media (min-width: 980px){
  .cc-archiveV2__layout{
    grid-template-columns: minmax(0, 1.06fr) minmax(360px, .94fr);
    gap: 28px;
  }

  .cc-archiveV2__card--featured{
    align-self: start;
  }

  .cc-archiveV2__card--secondary .cc-archiveV2__cardTitle{
    max-width: 12ch;
  }

  .cc-archiveV2__card--secondary .cc-archiveV2__excerpt{
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

@media (min-width: 980px) and (max-width: 1160px){
  .cc-archiveV2__card--secondary .cc-archiveV2__cardTitle{
    max-width: 13ch;
    font-size: 29px;
  }
}

@media (max-width: 979px){
  .cc-archiveV2__inner{
    padding-top: 40px;
    padding-bottom: 56px;
  }

  .cc-archiveV2__title{
    font-size: clamp(42px, 12vw, 62px);
  }

  .cc-archiveV2__panel--featured,
  .cc-archiveV2__panel{
    margin-left: 16px;
    margin-right: 16px;
    margin-bottom: 16px;
  }

  .cc-archiveV2__panel--featured{
    margin-top: -28px;
  }

  .cc-archiveV2__panel{
    margin-top: -22px;
  }
}

@media (max-width: 640px){
  .cc-archiveV2__inner{
    width: min(100% - 24px, 1120px);
    padding-top: 30px;
    padding-bottom: 44px;
  }

  .cc-archiveV2__intro{
    margin-bottom: 24px;
  }

  .cc-archiveV2__title{
    font-size: clamp(38px, 13vw, 52px);
  }

  .cc-archiveV2__title::after{
    height: 7px;
    margin-top: 12px;
  }

  .cc-archiveV2__media--featured,
  .cc-archiveV2__media--secondary{
    aspect-ratio: 16 / 11;
  }

  .cc-archiveV2__panel,
  .cc-archiveV2__panel--featured{
    padding: 16px 16px 15px;
    border-radius: 18px;
  }

  .cc-archiveV2__cardTitle{
    font-size: clamp(28px, 8.4vw, 36px);
    line-height: 1.07;
  }

  .cc-archiveV2__cardTitle--featured{
    font-size: clamp(31px, 9.2vw, 40px);
  }

  .cc-archiveV2__excerpt,
  .cc-archiveV2__excerpt--featured{
    font-size: 15px;
    line-height: 1.6;
  }
}

body:has(.cc-archiveV2) .cc-fab,
body:has(.cc-archiveV2) .cc-waFloat{
  display: none !important;
}







/* =========================================================
   CityCleaner Archive — Desktop polish pass V2.1
   Objectif :
   - art direction desktop
   - composition plus premium
   - meilleures proportions
   - typographie mieux calibrée
   - HTML inchangé
   ========================================================= */

@media (min-width: 980px){

  .cc-archiveV2__inner{
    width: min(1180px, calc(100% - 48px));
    padding-top: 58px;
    padding-bottom: 110px;
  }

  .cc-archiveV2__intro{
    max-width: 840px;
    margin-bottom: 52px;
  }

  .cc-archiveV2__title{
    font-size: clamp(56px, 6.1vw, 92px);
    line-height: .92;
    letter-spacing: -.05em;
    margin-bottom: 16px;
  }

  .cc-archiveV2__title::after{
    width: 164px;
    height: 9px;
    margin-top: 16px;
  }

  .cc-archiveV2__lead{
    max-width: 68ch;
    font-size: 16px;
    line-height: 1.72;
  }

  .cc-archiveV2__topics{
    margin-top: 24px;
    gap: 10px;
  }

  .cc-archiveV2__layout{
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    gap: 32px;
    align-items: start;
  }

  .cc-archiveV2__rail{
    gap: 28px;
  }

  .cc-archiveV2__card{
    border-radius: 26px;
  }

  .cc-archiveV2__media--featured{
    aspect-ratio: 16 / 9.8;
  }

  .cc-archiveV2__media--secondary{
    aspect-ratio: 16 / 8.8;
  }

  .cc-archiveV2__panel{
    margin: -22px 18px 18px;
    padding: 20px 20px 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.97);
    box-shadow:
      0 8px 18px rgba(1,33,72,.035),
      0 1px 0 rgba(255,255,255,.75) inset;
  }

  .cc-archiveV2__panel--featured{
    margin: -34px 22px 22px;
    padding: 24px 24px 20px;
    border-radius: 24px;
  }

  .cc-archiveV2__chips{
    margin-bottom: 16px;
    gap: 8px;
  }

  .cc-archiveV2__cardTitle{
    margin-bottom: 14px;
    font-size: clamp(27px, 2.25vw, 34px);
    line-height: 1.02;
    letter-spacing: -.04em;
  }

  .cc-archiveV2__cardTitle--featured{
    max-width: 11.4ch;
    font-size: clamp(38px, 3.9vw, 58px);
    line-height: .98;
    margin-bottom: 16px;
  }

  .cc-archiveV2__card--secondary .cc-archiveV2__cardTitle{
    max-width: 14ch;
  }

  .cc-archiveV2__excerpt{
    font-size: 14.5px;
    line-height: 1.68;
    max-width: 42ch;
  }

  .cc-archiveV2__excerpt--featured{
    max-width: 54ch;
    font-size: 15px;
    line-height: 1.72;
  }

  .cc-archiveV2__card--secondary .cc-archiveV2__excerpt{
    max-width: 38ch;
    -webkit-line-clamp: 5;
  }

  .cc-archiveV2__more{
    margin-top: 20px;
    font-size: 13.5px;
    letter-spacing: .015em;
  }

  .cc-archiveV2 .cc-chip{
    padding: 5px 11px;
    font-size: 11px;
    letter-spacing: .02em;
  }
}

/* Raffinement grand desktop */
@media (min-width: 1280px){

  .cc-archiveV2__inner{
    width: min(1200px, calc(100% - 64px));
    padding-top: 66px;
  }

  .cc-archiveV2__layout{
    grid-template-columns: minmax(0, 1.06fr) minmax(420px, .94fr);
    gap: 36px;
  }

  .cc-archiveV2__rail{
    gap: 30px;
  }

  .cc-archiveV2__cardTitle--featured{
    max-width: 10.8ch;
  }

  .cc-archiveV2__card--secondary .cc-archiveV2__cardTitle{
    max-width: 15ch;
    font-size: 32px;
  }

  .cc-archiveV2__excerpt{
    font-size: 14.75px;
  }
}








/* =========================================================
CityCleaner — PATCH V21 ARTICLES : cartes + CTA WhatsApp
À coller tout en bas du CSS additionnel actuel.
Scope : .cc-article uniquement. Aucun impact homepage.
========================================================= */

/* 1) Sécurité pour les articles générés sans .cc-article__container */
.cc-article > .cc-article__header > :not(.cc-article__container),
.cc-article > .cc-article__section > :not(.cc-article__container),
.cc-article > .cc-article__faq > :not(.cc-article__container),
.cc-article > .cc-article__ctaEnd > :not(.cc-article__container){
  width:var(--cc-container-narrow) !important;
  max-width:var(--cc-container-narrow) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* 2) Shell de cartes article — forme ancienne version */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision,
.cc-article .cc-article__section > .cc-article__stackList{
  background:var(--cc-bg) !important;
  border:1px solid var(--cc-ink10) !important;
  border-radius:18px !important;
  box-shadow:var(--cc-shadow-card) !important;
  overflow:hidden !important;
  padding:0 !important;
  margin:var(--cc-40) auto !important;
  max-width:100% !important;
}

/* 3) Titres de cartes, y compris les h3 générés par la nouvelle version */
.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle,
.cc-article .cc-article__decisionTitle,
.cc-article .cc-article__checklist > h3:first-child,
.cc-article .cc-article__decision > h3:first-child{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:22px 20px 14px !important;
  border-top:0 !important;
  border-bottom:1px solid var(--cc-ink10) !important;
  background:transparent !important;
  color:var(--cc-ink62) !important;
  font-size:12px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
}

.cc-article .cc-article__checklist > h3:first-child,
.cc-article .cc-article__decision > h3:first-child{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

.cc-article .cc-article__title--ico .cc-article__ico{
  width:28px !important;
  height:28px !important;
  flex:0 0 28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
  background:rgba(39,207,169,.10) !important;
  border:1px solid rgba(39,207,169,.18) !important;
}

.cc-article .cc-article__title--ico .cc-article__ico svg{
  width:18px !important;
  height:18px !important;
}

/* 4) Corps de cartes : listes premium + paragraphes */
.cc-article .cc-article__listPremium,
.cc-article .cc-article__keypoints > ul,
.cc-article .cc-article__checklist > ul,
.cc-article .cc-article__steps > ol,
.cc-article .cc-article__steps > .cc-article__stackList,
.cc-article .cc-article__section > .cc-article__stackList{
  list-style:none !important;
  margin:0 !important;
  padding:16px 20px 20px !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  border-top:0 !important;
}

.cc-article .cc-article__callout > p.cc-body,
.cc-article .cc-article__decision > p.cc-body{
  margin:0 !important;
  padding:16px 20px 20px !important;
}

.cc-article .cc-article__listPremium > li{
  position:relative !important;
  display:block !important;
  margin:0 !important;
  padding:0 0 0 30px !important;
  border:0 !important;
  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.cc-article .cc-article__listPremium > li::before{
  position:absolute !important;
  left:0 !important;
  top:.08em !important;
  width:22px !important;
  height:22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  color:var(--cc-navy) !important;
  background:transparent !important;
  border:0 !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.cc-article .cc-article__listPremium--check > li::before{ content:"✓" !important; font-size:17px !important; }
.cc-article .cc-article__listPremium--arrow > li::before{ content:"›" !important; font-size:20px !important; }

.cc-article .cc-article__listPremiumText{
  display:block !important;
  min-width:0 !important;
}

/* 5) StackList : rendu vertical propre, jamais timeline flottante */
.cc-article .cc-article__stackItem{
  display:grid !important;
  grid-template-columns:28px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin:0 !important;
  padding:0 !important;
}

.cc-article .cc-article__stackNum{
  width:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:rgba(1,33,72,.04) !important;
  border:1px solid var(--cc-ink10) !important;
  color:var(--cc-navy) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.cc-article .cc-article__stackBody{ min-width:0 !important; }
.cc-article .cc-article__stackTitle,
.cc-article .cc-article__stackBody > h3:first-child{
  margin:0 0 6px !important;
  color:var(--cc-navy) !important;
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:900 !important;
}
.cc-article .cc-article__stackDesc,
.cc-article .cc-article__stackBody > p.cc-body{
  margin:0 !important;
  color:var(--cc-ink78) !important;
}

/* 6) CTA final : centré, même si l'ancien CSS force flex-start */
.cc-article .cc-article__ctaEnd,
.cc-article .cc-article__ctaEnd .cc-article__container{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:var(--cc-20) !important;
}

.cc-article .cc-article__ctaEnd .cc-body{
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:60ch !important;
  text-align:center !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  align-self:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  width:fit-content !important;
  max-width:100% !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Icône WhatsApp visible même si le HTML généré a oublié le span */
.cc-article .cc-article__ctaEnd .cc-ctaPrimary[href*="wa.me"] .cc-article__ctaIco{
  display:none !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary[href*="wa.me"]::before{
  content:"" !important;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  margin-right:2px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M20.52 3.48A11.87 11.87 0 0 0 12.07 0C5.5 0 .16 5.34.16 11.91c0 2.1.55 4.15 1.59 5.96L0 24l6.32-1.66a11.9 11.9 0 0 0 5.75 1.47h.01c6.57 0 11.91-5.34 11.91-11.91 0-3.18-1.24-6.16-3.47-8.42Z'/%3E%3Cpath fill='%23012148' d='M17.06 14.5c-.28-.14-1.67-.82-1.93-.91-.26-.09-.45-.14-.64.14-.19.28-.73.91-.9 1.09-.16.19-.33.21-.61.07-.28-.14-1.16-.43-2.2-1.37-.81-.72-1.36-1.61-1.52-1.89-.16-.28-.02-.43.12-.57.12-.12.28-.33.42-.49.14-.16.19-.28.28-.47.09-.19.05-.35-.02-.49-.07-.14-.64-1.54-.88-2.12-.23-.55-.47-.47-.64-.48h-.55c-.19 0-.49.07-.75.35-.26.28-.98.96-.98 2.34 0 1.37 1 2.69 1.14 2.88.14.19 1.96 3 4.75 4.2.66.28 1.18.45 1.58.58.66.21 1.26.18 1.73.11.53-.08 1.67-.68 1.9-1.34.23-.65.23-1.21.16-1.33-.07-.12-.26-.19-.54-.33Z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
}

@media (max-width:639px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision,
  .cc-article .cc-article__section > .cc-article__stackList{
    margin:var(--cc-32) auto !important;
  }

  .cc-article .cc-article__keypointsTitle,
  .cc-article .cc-article__calloutTitle,
  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle,
  .cc-article .cc-article__decisionTitle,
  .cc-article .cc-article__checklist > h3:first-child,
  .cc-article .cc-article__decision > h3:first-child{
    padding:18px 16px 12px !important;
    white-space:normal !important;
  }

  .cc-article .cc-article__listPremium,
  .cc-article .cc-article__keypoints > ul,
  .cc-article .cc-article__checklist > ul,
  .cc-article .cc-article__steps > ol,
  .cc-article .cc-article__steps > .cc-article__stackList,
  .cc-article .cc-article__section > .cc-article__stackList{
    padding:14px 16px 16px !important;
    gap:14px !important;
  }

  .cc-article .cc-article__callout > p.cc-body,
  .cc-article .cc-article__decision > p.cc-body{
    padding:14px 16px 16px !important;
  }

  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:min(100%,360px) !important;
  }
}


/* =========================================================
   CityCleaner — PATCH HOMEPAGE TARIFS / OPS
   Déplacé depuis le CSS additionnel du thème enfant.
   Rôle : garder les corrections homepage dans la couche parent/global.
   Scope : .cc-plans.cc-pricing-fix et .cc-ops.cc-patch-006 uniquement.
   ========================================================= */


@media (max-width:899px){
  .cc-plans.cc-pricing-fix .cc-plans__pick{
    grid-template-columns:repeat(3, 1fr);
  }

  .cc-plans.cc-pricing-fix .cc-plans__card{
    display:none !important;
  }

  .cc-plans.cc-pricing-fix #ccp-studio:checked ~ .cc-plans__pick label[for="ccp-studio"],
  .cc-plans.cc-pricing-fix #ccp-t2:checked ~ .cc-plans__pick label[for="ccp-t2"],
  .cc-plans.cc-pricing-fix #ccp-t3:checked ~ .cc-plans__pick label[for="ccp-t3"]{
    background:rgba(1,33,72,.04);
    border-color:rgba(1,33,72,.10);
    color:var(--cc-navy);
  }

  .cc-plans.cc-pricing-fix #ccp-studio:checked ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(1),
  .cc-plans.cc-pricing-fix #ccp-t2:checked ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(2),
  .cc-plans.cc-pricing-fix #ccp-t3:checked ~ .cc-plans__pick ~ .cc-plans__grid article:nth-child(3){
    display:block !important;
  }
}

@media (min-width:900px){
  .cc-plans.cc-pricing-fix .cc-plans__grid{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }

  .cc-plans.cc-pricing-fix .cc-plans__ctaSolo{
    justify-items:center;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }

  .cc-plans.cc-pricing-fix .cc-plans__micro{
    text-align:center;
  }

  .cc-ops.cc-patch-006 .cc-ops__grid{
    max-width:none !important;
    width:100% !important;
  }
}






































/* =========================================================
   CityCleaner — CSS additionnel THÈME ENFANT
   Scope principal : articles / single-post / corrections WordPress article.
   Les corrections homepage .cc-plans / .cc-ops ont été déplacées dans le CSS parent.
   ========================================================= */




.single-post .sharedaddy,
.single-post .jp-relatedposts,
.single-post .post-navigation,
.single-post .nav-links,
.single-post .ast-single-related-posts-container{
  display:none !important;
}






/* =========================================================
   CityCleaner — PATCH GLOBAL CARTES-LISTES ARTICLES
   Version complète à coller en fin de CSS additionnel
   Scope : tous les articles .cc-article

   Objectif :
   - corriger Points clés / Checklist / Steps sur articles 1 à 6
   - conserver le rendu fluide validé sur l’article 6
   - gérer anciens HTML : ul.cc-body / ol.cc-body
   - gérer nouveau HTML : .cc-article__listPremium / .cc-article__stackList
   - aucun impact homepage
   ========================================================= */


/* -----------------------------
   1) Sécurité globale des cartes article
----------------------------- */

.cc-article .cc-article__keypoints,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist{
  overflow:hidden !important;
}

.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle{
  margin:0 !important;
}

.cc-article .cc-article__title--ico .cc-article__titleText{
  display:inline-block !important;
  min-width:0 !important;
}


/* -----------------------------
   2) Reset conteneurs listes
   Ancien HTML + nouveau HTML
----------------------------- */

.cc-article .cc-article__keypoints > ul,
.cc-article .cc-article__checklist > ul,
.cc-article .cc-article__steps > ol,
.cc-article .cc-article__listPremium{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10);

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}


/* -----------------------------
   3) Reset items listes
----------------------------- */

.cc-article .cc-article__keypoints > ul > li,
.cc-article .cc-article__checklist > ul > li,
.cc-article .cc-article__steps > ol > li,
.cc-article .cc-article__listPremium > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;

  gap:12px !important;
  margin:0 !important;
  padding:0 !important;

  float:none !important;
  clear:none !important;
  position:relative !important;

  color:inherit !important;
  line-height:inherit !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}


/* -----------------------------
   4) Marqueurs — Points clés
----------------------------- */

.cc-article .cc-article__keypoints > ul > li::before,
.cc-article .cc-article__listPremium--arrow > li::before{
  content:"›" !important;

  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  color:var(--cc-navy) !important;
  font-size:20px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;
  transform:translateY(2px) !important;
  position:static !important;
}


/* -----------------------------
   5) Marqueurs — Checklist / Signaux / Repères
----------------------------- */

.cc-article .cc-article__checklist > ul > li::before,
.cc-article .cc-article__listPremium--check > li::before{
  content:"✓" !important;

  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  color:var(--cc-navy) !important;
  font-size:17px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;
  transform:translateY(2px) !important;
  position:static !important;
}


/* -----------------------------
   6) Steps / listes numérotées anciennes
----------------------------- */

.cc-article .cc-article__steps > ol{
  counter-reset:cc-article-step !important;
}

.cc-article .cc-article__steps > ol > li{
  counter-increment:cc-article-step !important;
}

.cc-article .cc-article__steps > ol > li::before{
  content:counter(cc-article-step) !important;

  flex:0 0 28px !important;
  width:28px !important;
  min-width:28px !important;
  max-width:28px !important;
  height:28px !important;

  display:grid !important;
  place-items:center !important;

  border-radius:var(--cc-r999);
  border:1px solid var(--cc-ink10);
  background:rgba(1,33,72,.035);

  color:var(--cc-navy) !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums;

  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  position:static !important;
}


/* -----------------------------
   7) Texte interne — ancien + nouveau HTML
----------------------------- */

.cc-article .cc-article__keypoints > ul > li > *,
.cc-article .cc-article__checklist > ul > li > *,
.cc-article .cc-article__steps > ol > li > *,
.cc-article .cc-article__listPremium > li > *,
.cc-article .cc-article__listPremiumText{
  flex:1 1 auto !important;
  width:auto !important;
  max-width:100% !important;
  min-width:0 !important;

  display:block !important;
  box-sizing:border-box !important;

  color:var(--cc-ink78) !important;
  line-height:1.62 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.cc-article .cc-article__keypoints > ul > li strong,
.cc-article .cc-article__checklist > ul > li strong,
.cc-article .cc-article__steps > ol > li strong,
.cc-article .cc-article__listPremiumText strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  white-space:normal !important;
}


/* -----------------------------
   8) Nouveau pattern stackList
   Article 6 + futurs articles
----------------------------- */

.cc-article .cc-article__stackList{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  padding:22px 24px 24px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10);
}

.cc-article .cc-article__stackItem{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  gap:14px !important;
}

.cc-article .cc-article__stackNum{
  flex:0 0 32px !important;
  width:32px !important;
  height:32px !important;

  display:grid !important;
  place-items:center !important;

  border-radius:var(--cc-r999);
  border:1px solid var(--cc-ink10);
  background:rgba(1,33,72,.035);

  color:var(--cc-navy) !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums;
}

.cc-article .cc-article__stackBody{
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:100% !important;
}

.cc-article .cc-article__stackTitle{
  margin:0 0 4px 0 !important;
  color:var(--cc-navy) !important;
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:900 !important;
}

.cc-article .cc-article__stackDesc{
  margin:0 !important;
  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.cc-article .cc-article__stackTitle,
.cc-article .cc-article__stackDesc{
  width:100% !important;
  max-width:100% !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}


/* -----------------------------
   9) Mobile
----------------------------- */

@media (max-width:767px){

  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist{
    border-radius:18px !important;
  }

  .cc-article .cc-article__keypoints > ul,
  .cc-article .cc-article__checklist > ul,
  .cc-article .cc-article__steps > ol,
  .cc-article .cc-article__listPremium{
    padding:18px 18px 20px !important;
    gap:16px !important;
    font-size:15px !important;
    line-height:1.64 !important;
  }

  .cc-article .cc-article__keypoints > ul > li,
  .cc-article .cc-article__checklist > ul > li,
  .cc-article .cc-article__steps > ol > li,
  .cc-article .cc-article__listPremium > li{
    gap:11px !important;
  }

  .cc-article .cc-article__keypoints > ul > li::before,
  .cc-article .cc-article__checklist > ul > li::before,
  .cc-article .cc-article__listPremium > li::before{
    flex-basis:17px !important;
    width:17px !important;
    min-width:17px !important;
    max-width:17px !important;
  }

  .cc-article .cc-article__steps > ol > li::before{
    flex:0 0 28px !important;
    width:28px !important;
    min-width:28px !important;
    max-width:28px !important;
    height:28px !important;
  }

  .cc-article .cc-article__listPremiumText,
  .cc-article .cc-article__keypoints > ul > li > *,
  .cc-article .cc-article__checklist > ul > li > *,
  .cc-article .cc-article__steps > ol > li > *{
    line-height:1.64 !important;
    overflow-wrap:break-word !important;
  }

  .cc-article .cc-article__stackList{
    padding:18px 18px 20px !important;
    gap:16px !important;
  }

  .cc-article .cc-article__stackItem{
    gap:12px !important;
  }

  .cc-article .cc-article__stackNum{
    flex:0 0 30px !important;
    width:30px !important;
    height:30px !important;
    font-size:13px !important;
  }

  .cc-article .cc-article__stackTitle,
  .cc-article .cc-article__stackDesc{
    font-size:15px !important;
  }

  .cc-article .cc-article__stackDesc{
    line-height:1.64 !important;
  }
}


/* -----------------------------
   10) Très petits écrans
----------------------------- */

@media (max-width:420px){

  .cc-article .cc-article__keypoints > ul,
  .cc-article .cc-article__checklist > ul,
  .cc-article .cc-article__steps > ol,
  .cc-article .cc-article__listPremium{
    padding:16px 16px 18px !important;
    gap:15px !important;
  }

  .cc-article .cc-article__stackList{
    padding:16px 16px 18px !important;
    gap:15px !important;
  }

  .cc-article .cc-article__stackNum{
    flex:0 0 28px !important;
    width:28px !important;
    height:28px !important;
  }
}












/* =========================================================
   CityCleaner — HOTFIX GLOBAL LEGACY ARTICLES 1–5
   À coller TOUT EN BAS du CSS additionnel.
   Objectif :
   - forcer les anciennes listes ul.cc-body / ol.cc-body
   - corriger Points clés / Checklist / Steps sur articles 1 à 5
   - ne pas casser l’article 6 déjà corrigé
   - scope strict : .single-post .cc-article uniquement
   ========================================================= */


/* -----------------------------
   1) Cartes concernées — reset structure
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints,
.single-post .entry-content .cc-article .cc-article__checklist,
.single-post .entry-content .cc-article .cc-article__steps{
  overflow:hidden !important;
}

.single-post .entry-content .cc-article .cc-article__keypointsTitle,
.single-post .entry-content .cc-article .cc-article__checklistTitle,
.single-post .entry-content .cc-article .cc-article__stepsTitle{
  margin:0 !important;
}


/* -----------------------------
   2) Anciennes listes — conteneur
   Cible volontairement large :
   - ul.cc-body
   - ol.cc-body
   - ul/ol imbriqués dans les cartes
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints ul,
.single-post .entry-content .cc-article .cc-article__checklist ul,
.single-post .entry-content .cc-article .cc-article__steps ol,
.single-post .entry-content .cc-article .cc-article__steps ul{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10) !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}


/* -----------------------------
   3) Anciennes listes — items
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints ul > li,
.single-post .entry-content .cc-article .cc-article__checklist ul > li,
.single-post .entry-content .cc-article .cc-article__steps ol > li,
.single-post .entry-content .cc-article .cc-article__steps ul > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;

  gap:12px !important;

  margin:0 !important;
  padding:0 !important;
  border:0 !important;

  float:none !important;
  clear:none !important;
  position:relative !important;

  color:inherit !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}


/* -----------------------------
   4) Points clés — chevron
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints ul > li::before{
  content:"›" !important;

  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:20px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;

  transform:translateY(2px) !important;
  position:static !important;
}


/* -----------------------------
   5) Checklist / Signaux / Repères — check
----------------------------- */

.single-post .entry-content .cc-article .cc-article__checklist ul > li::before{
  content:"✓" !important;

  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:17px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;

  transform:translateY(2px) !important;
  position:static !important;
}


/* -----------------------------
   6) Steps anciennes — numéros
----------------------------- */

.single-post .entry-content .cc-article .cc-article__steps ol{
  counter-reset:ccLegacyStep !important;
}

.single-post .entry-content .cc-article .cc-article__steps ol > li{
  counter-increment:ccLegacyStep !important;
}

.single-post .entry-content .cc-article .cc-article__steps ol > li::before{
  content:counter(ccLegacyStep) !important;

  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  height:30px !important;

  display:grid !important;
  place-items:center !important;

  margin:0 !important;
  padding:0 !important;

  border-radius:var(--cc-r999) !important;
  border:1px solid var(--cc-ink10) !important;
  background:rgba(1,33,72,.035) !important;

  color:var(--cc-navy) !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums;

  transform:none !important;
  position:static !important;
}


/* -----------------------------
   7) Texte interne — robustesse maximale
   Fonctionne même si le li contient texte direct,
   strong direct, span, p ou autre wrapper.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints ul > li > *,
.single-post .entry-content .cc-article .cc-article__checklist ul > li > *,
.single-post .entry-content .cc-article .cc-article__steps ol > li > *,
.single-post .entry-content .cc-article .cc-article__steps ul > li > *{
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:100% !important;
  width:auto !important;

  display:block !important;
  box-sizing:border-box !important;

  color:var(--cc-ink78) !important;
  line-height:1.62 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__keypoints ul > li strong,
.single-post .entry-content .cc-article .cc-article__checklist ul > li strong,
.single-post .entry-content .cc-article .cc-article__steps ol > li strong,
.single-post .entry-content .cc-article .cc-article__steps ul > li strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  white-space:normal !important;
}


/* -----------------------------
   8) Protection article 6 / nouveau pattern
   On conserve les classes premium déjà validées.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__listPremium{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10) !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.single-post .entry-content .cc-article .cc-article__listPremium > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;

  gap:12px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;

  color:inherit !important;
  line-height:inherit !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

.single-post .entry-content .cc-article .cc-article__listPremium > li::before{
  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;

  transform:translateY(2px) !important;
  position:static !important;
}

.single-post .entry-content .cc-article .cc-article__listPremium--arrow > li::before{
  content:"›" !important;
  font-size:20px !important;
}

.single-post .entry-content .cc-article .cc-article__listPremium--check > li::before{
  content:"✓" !important;
  font-size:17px !important;
}

.single-post .entry-content .cc-article .cc-article__listPremiumText{
  flex:1 1 auto !important;
  width:auto !important;
  max-width:100% !important;
  min-width:0 !important;

  display:block !important;
  box-sizing:border-box !important;

  color:var(--cc-ink78) !important;
  line-height:1.62 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__listPremiumText strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  white-space:normal !important;
}


/* -----------------------------
   9) Protection stackList article 6 / futurs articles
----------------------------- */

.single-post .entry-content .cc-article .cc-article__stackList{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  padding:22px 24px 24px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10) !important;
}

.single-post .entry-content .cc-article .cc-article__stackItem{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  gap:14px !important;
}

.single-post .entry-content .cc-article .cc-article__stackNum{
  flex:0 0 32px !important;
  width:32px !important;
  height:32px !important;

  display:grid !important;
  place-items:center !important;

  border-radius:var(--cc-r999) !important;
  border:1px solid var(--cc-ink10) !important;
  background:rgba(1,33,72,.035) !important;

  color:var(--cc-navy) !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums;
}

.single-post .entry-content .cc-article .cc-article__stackBody{
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:100% !important;
}

.single-post .entry-content .cc-article .cc-article__stackTitle{
  margin:0 0 4px 0 !important;
  color:var(--cc-navy) !important;
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:900 !important;
}

.single-post .entry-content .cc-article .cc-article__stackDesc{
  margin:0 !important;
  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.single-post .entry-content .cc-article .cc-article__stackTitle,
.single-post .entry-content .cc-article .cc-article__stackDesc{
  width:100% !important;
  max-width:100% !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}


/* -----------------------------
   10) Mobile
----------------------------- */

@media (max-width:767px){

  .single-post .entry-content .cc-article .cc-article__keypoints,
  .single-post .entry-content .cc-article .cc-article__checklist,
  .single-post .entry-content .cc-article .cc-article__steps{
    border-radius:18px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints ul,
  .single-post .entry-content .cc-article .cc-article__checklist ul,
  .single-post .entry-content .cc-article .cc-article__steps ol,
  .single-post .entry-content .cc-article .cc-article__steps ul,
  .single-post .entry-content .cc-article .cc-article__listPremium{
    padding:18px 18px 20px !important;
    gap:16px !important;
    font-size:15px !important;
    line-height:1.64 !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints ul > li,
  .single-post .entry-content .cc-article .cc-article__checklist ul > li,
  .single-post .entry-content .cc-article .cc-article__steps ol > li,
  .single-post .entry-content .cc-article .cc-article__steps ul > li,
  .single-post .entry-content .cc-article .cc-article__listPremium > li{
    gap:11px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints ul > li::before,
  .single-post .entry-content .cc-article .cc-article__checklist ul > li::before,
  .single-post .entry-content .cc-article .cc-article__listPremium > li::before{
    flex-basis:17px !important;
    width:17px !important;
    min-width:17px !important;
    max-width:17px !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps ol > li::before{
    flex:0 0 28px !important;
    width:28px !important;
    min-width:28px !important;
    max-width:28px !important;
    height:28px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints ul > li > *,
  .single-post .entry-content .cc-article .cc-article__checklist ul > li > *,
  .single-post .entry-content .cc-article .cc-article__steps ol > li > *,
  .single-post .entry-content .cc-article .cc-article__steps ul > li > *,
  .single-post .entry-content .cc-article .cc-article__listPremiumText{
    line-height:1.64 !important;
    overflow-wrap:break-word !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackList{
    padding:18px 18px 20px !important;
    gap:16px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackItem{
    gap:12px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackNum{
    flex:0 0 30px !important;
    width:30px !important;
    height:30px !important;
    font-size:13px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackTitle,
  .single-post .entry-content .cc-article .cc-article__stackDesc{
    font-size:15px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackDesc{
    line-height:1.64 !important;
  }
}


/* -----------------------------
   11) Très petits écrans
----------------------------- */

@media (max-width:420px){

  .single-post .entry-content .cc-article .cc-article__keypoints ul,
  .single-post .entry-content .cc-article .cc-article__checklist ul,
  .single-post .entry-content .cc-article .cc-article__steps ol,
  .single-post .entry-content .cc-article .cc-article__steps ul,
  .single-post .entry-content .cc-article .cc-article__listPremium{
    padding:16px 16px 18px !important;
    gap:15px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackList{
    padding:16px 16px 18px !important;
    gap:15px !important;
  }

  .single-post .entry-content .cc-article .cc-article__stackNum{
    flex:0 0 28px !important;
    width:28px !important;
    height:28px !important;
  }
}










/* =========================================================
   CityCleaner — HOTFIX LEGACY CHECKLIST INLINE
   Objectif :
   - aligner les anciennes cartes checklist sur le rendu article 6
   - supprimer l’effet fausse colonne label / description
   - préserver .cc-article__listPremium déjà validé sur article 6
   - scope strict article uniquement
   ========================================================= */


/* -----------------------------
   1) Anciennes cartes checklist / keypoints
   On garde la carte, on corrige seulement la liste interne.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium),
.single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium){
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10) !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}


/* -----------------------------
   2) Items legacy : retour en lecture inline
   Important : on annule le flex item qui créait les colonnes.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li,
.single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:block !important;
  position:relative !important;

  margin:0 !important;
  padding:0 0 0 32px !important;
  border:0 !important;

  float:none !important;
  clear:none !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}


/* -----------------------------
   3) Annule les enfants forcés en block/flex
   C’est ce qui permet au strong + deux-points de rester naturel.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li > *,
.single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li > *{
  display:inline !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  flex:initial !important;

  margin:0 !important;
  padding:0 !important;

  color:inherit !important;
  line-height:inherit !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li strong,
.single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  white-space:normal !important;
}


/* -----------------------------
   4) Marqueur checklist legacy
----------------------------- */

.single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li::before{
  content:"✓" !important;

  position:absolute !important;
  left:0 !important;
  top:.18em !important;

  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:17px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;

  transform:none !important;
}


/* -----------------------------
   5) Marqueur points clés legacy
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li::before{
  content:"›" !important;

  position:absolute !important;
  left:0 !important;
  top:.11em !important;

  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;

  display:block !important;
  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:20px !important;
  font-weight:950 !important;
  line-height:1.15 !important;
  text-align:left !important;

  transform:none !important;
}


/* -----------------------------
   6) Anciennes cartes steps / ol
   Même logique : numéro à gauche, texte naturel.
----------------------------- */

.single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium){
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:18px !important;

  border-top:1px solid var(--cc-ink10) !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;

  counter-reset:ccLegacyStepInline !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li{
  counter-increment:ccLegacyStepInline !important;

  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;

  display:block !important;
  position:relative !important;

  margin:0 !important;
  padding:0 0 0 42px !important;
  border:0 !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li::before{
  content:counter(ccLegacyStepInline) !important;

  position:absolute !important;
  left:0 !important;
  top:-.1em !important;

  width:30px !important;
  height:30px !important;

  display:grid !important;
  place-items:center !important;

  margin:0 !important;
  padding:0 !important;

  border-radius:var(--cc-r999) !important;
  border:1px solid var(--cc-ink10) !important;
  background:rgba(1,33,72,.035) !important;

  color:var(--cc-navy) !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums;

  transform:none !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li > *{
  display:inline !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  flex:initial !important;

  margin:0 !important;
  padding:0 !important;

  color:inherit !important;
  line-height:inherit !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
}


/* -----------------------------
   7) Mobile
----------------------------- */

@media (max-width:767px){

  .single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium),
  .single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium),
  .single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium){
    padding:18px 18px 20px !important;
    gap:16px !important;
    font-size:15px !important;
    line-height:1.64 !important;
  }

  .single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li,
  .single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li{
    padding-left:29px !important;
    line-height:1.64 !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li{
    padding-left:40px !important;
    line-height:1.64 !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li::before{
    width:28px !important;
    height:28px !important;
    font-size:13px !important;
  }
}


/* -----------------------------
   8) Très petits écrans
----------------------------- */

@media (max-width:420px){

  .single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium),
  .single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium),
  .single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium){
    padding:16px 16px 18px !important;
    gap:15px !important;
  }

  .single-post .entry-content .cc-article .cc-article__checklist > ul:not(.cc-article__listPremium) > li,
  .single-post .entry-content .cc-article .cc-article__keypoints > ul:not(.cc-article__listPremium) > li{
    padding-left:28px !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol:not(.cc-article__listPremium) > li{
    padding-left:38px !important;
  }
}























/* =========================================================
CityCleaner — PATCH V21 ARTICLES : cartes + CTA WhatsApp
À coller tout en bas du CSS additionnel actuel.
Scope : .cc-article uniquement. Aucun impact homepage.
========================================================= */

/* 1) Sécurité pour les articles générés sans .cc-article__container */
.cc-article > .cc-article__header > :not(.cc-article__container),
.cc-article > .cc-article__section > :not(.cc-article__container),
.cc-article > .cc-article__faq > :not(.cc-article__container),
.cc-article > .cc-article__ctaEnd > :not(.cc-article__container){
  width:var(--cc-container-narrow) !important;
  max-width:var(--cc-container-narrow) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* 2) Shell de cartes article — forme ancienne version */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision,
.cc-article .cc-article__section > .cc-article__stackList{
  background:var(--cc-bg) !important;
  border:1px solid var(--cc-ink10) !important;
  border-radius:18px !important;
  box-shadow:var(--cc-shadow-card) !important;
  overflow:hidden !important;
  padding:0 !important;
  margin:var(--cc-40) auto !important;
  max-width:100% !important;
}

/* 3) Titres de cartes, y compris les h3 générés par la nouvelle version */
.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle,
.cc-article .cc-article__decisionTitle,
.cc-article .cc-article__checklist > h3:first-child,
.cc-article .cc-article__decision > h3:first-child{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:22px 20px 14px !important;
  border-top:0 !important;
  border-bottom:1px solid var(--cc-ink10) !important;
  background:transparent !important;
  color:var(--cc-ink62) !important;
  font-size:12px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
}

.cc-article .cc-article__checklist > h3:first-child,
.cc-article .cc-article__decision > h3:first-child{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

.cc-article .cc-article__title--ico .cc-article__ico{
  width:28px !important;
  height:28px !important;
  flex:0 0 28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
  background:rgba(39,207,169,.10) !important;
  border:1px solid rgba(39,207,169,.18) !important;
}

.cc-article .cc-article__title--ico .cc-article__ico svg{
  width:18px !important;
  height:18px !important;
}

/* 4) Corps de cartes : listes premium + paragraphes */
.cc-article .cc-article__listPremium,
.cc-article .cc-article__keypoints > ul,
.cc-article .cc-article__checklist > ul,
.cc-article .cc-article__steps > ol,
.cc-article .cc-article__steps > .cc-article__stackList,
.cc-article .cc-article__section > .cc-article__stackList{
  list-style:none !important;
  margin:0 !important;
  padding:16px 20px 20px !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  border-top:0 !important;
}

.cc-article .cc-article__callout > p.cc-body,
.cc-article .cc-article__decision > p.cc-body{
  margin:0 !important;
  padding:16px 20px 20px !important;
}

.cc-article .cc-article__listPremium > li{
  position:relative !important;
  display:block !important;
  margin:0 !important;
  padding:0 0 0 30px !important;
  border:0 !important;
  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.cc-article .cc-article__listPremium > li::before{
  position:absolute !important;
  left:0 !important;
  top:.08em !important;
  width:22px !important;
  height:22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  color:var(--cc-navy) !important;
  background:transparent !important;
  border:0 !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.cc-article .cc-article__listPremium--check > li::before{ content:"✓" !important; font-size:17px !important; }
.cc-article .cc-article__listPremium--arrow > li::before{ content:"›" !important; font-size:20px !important; }

.cc-article .cc-article__listPremiumText{
  display:block !important;
  min-width:0 !important;
}

/* 5) StackList : rendu vertical propre, jamais timeline flottante */
.cc-article .cc-article__stackItem{
  display:grid !important;
  grid-template-columns:28px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin:0 !important;
  padding:0 !important;
}

.cc-article .cc-article__stackNum{
  width:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:rgba(1,33,72,.04) !important;
  border:1px solid var(--cc-ink10) !important;
  color:var(--cc-navy) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.cc-article .cc-article__stackBody{ min-width:0 !important; }
.cc-article .cc-article__stackTitle,
.cc-article .cc-article__stackBody > h3:first-child{
  margin:0 0 6px !important;
  color:var(--cc-navy) !important;
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:900 !important;
}
.cc-article .cc-article__stackDesc,
.cc-article .cc-article__stackBody > p.cc-body{
  margin:0 !important;
  color:var(--cc-ink78) !important;
}

/* 6) CTA final : centré, même si l'ancien CSS force flex-start */
.cc-article .cc-article__ctaEnd,
.cc-article .cc-article__ctaEnd .cc-article__container{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:var(--cc-20) !important;
}

.cc-article .cc-article__ctaEnd .cc-body{
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:60ch !important;
  text-align:center !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  align-self:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  width:fit-content !important;
  max-width:100% !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Icône WhatsApp visible même si le HTML généré a oublié le span */
.cc-article .cc-article__ctaEnd .cc-ctaPrimary[href*="wa.me"] .cc-article__ctaIco{
  display:none !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary[href*="wa.me"]::before{
  content:"" !important;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  margin-right:2px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M20.52 3.48A11.87 11.87 0 0 0 12.07 0C5.5 0 .16 5.34.16 11.91c0 2.1.55 4.15 1.59 5.96L0 24l6.32-1.66a11.9 11.9 0 0 0 5.75 1.47h.01c6.57 0 11.91-5.34 11.91-11.91 0-3.18-1.24-6.16-3.47-8.42Z'/%3E%3Cpath fill='%23012148' d='M17.06 14.5c-.28-.14-1.67-.82-1.93-.91-.26-.09-.45-.14-.64.14-.19.28-.73.91-.9 1.09-.16.19-.33.21-.61.07-.28-.14-1.16-.43-2.2-1.37-.81-.72-1.36-1.61-1.52-1.89-.16-.28-.02-.43.12-.57.12-.12.28-.33.42-.49.14-.16.19-.28.28-.47.09-.19.05-.35-.02-.49-.07-.14-.64-1.54-.88-2.12-.23-.55-.47-.47-.64-.48h-.55c-.19 0-.49.07-.75.35-.26.28-.98.96-.98 2.34 0 1.37 1 2.69 1.14 2.88.14.19 1.96 3 4.75 4.2.66.28 1.18.45 1.58.58.66.21 1.26.18 1.73.11.53-.08 1.67-.68 1.9-1.34.23-.65.23-1.21.16-1.33-.07-.12-.26-.19-.54-.33Z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
}

@media (max-width:639px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision,
  .cc-article .cc-article__section > .cc-article__stackList{
    margin:var(--cc-32) auto !important;
  }

  .cc-article .cc-article__keypointsTitle,
  .cc-article .cc-article__calloutTitle,
  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle,
  .cc-article .cc-article__decisionTitle,
  .cc-article .cc-article__checklist > h3:first-child,
  .cc-article .cc-article__decision > h3:first-child{
    padding:18px 16px 12px !important;
    white-space:normal !important;
  }

  .cc-article .cc-article__listPremium,
  .cc-article .cc-article__keypoints > ul,
  .cc-article .cc-article__checklist > ul,
  .cc-article .cc-article__steps > ol,
  .cc-article .cc-article__steps > .cc-article__stackList,
  .cc-article .cc-article__section > .cc-article__stackList{
    padding:14px 16px 16px !important;
    gap:14px !important;
  }

  .cc-article .cc-article__callout > p.cc-body,
  .cc-article .cc-article__decision > p.cc-body{
    padding:14px 16px 16px !important;
  }

  .cc-article .cc-article__ctaEnd .cc-ctaPrimary{
    width:min(100%,360px) !important;
  }
}









/* =========================================================
CityCleaner — PATCH V22 ARTICLES : alternance + CTA distinct
À coller tout en bas du CSS additionnel actuel, après V21.
Scope : .cc-article uniquement. Aucun impact homepage.
========================================================= */

/* 1) Reprendre le contrôle du rythme article en full-width */
.cc-article{
  padding-top:0 !important;
  padding-bottom:0 !important;
  background:var(--cc-bg) !important;
  overflow:hidden !important;
}

.cc-article > .cc-article__header,
.cc-article > .cc-article__section,
.cc-article > .cc-article__faq,
.cc-article > .cc-article__ctaEnd{
  position:relative !important;
  margin:0 !important;
  padding-top:var(--cc-section-py-mobile) !important;
  padding-bottom:var(--cc-section-py-mobile) !important;
  background:var(--cc-bg) !important;
  z-index:0 !important;
}

@media (min-width:900px){
  .cc-article > .cc-article__header,
  .cc-article > .cc-article__section,
  .cc-article > .cc-article__faq,
  .cc-article > .cc-article__ctaEnd{
    padding-top:var(--cc-section-py-desktop) !important;
    padding-bottom:var(--cc-section-py-desktop) !important;
  }
}

/* 2) Désactiver l’ancienne alternance partielle par pseudo-élément */
.cc-article > .cc-article__section::before,
.cc-article > .cc-article__faq::before,
.cc-article > .cc-article__ctaEnd::before{
  display:none !important;
  content:none !important;
}

/* 3) Alternance réelle blanc / gris sur chaque bloc principal */
.cc-article > .cc-article__header:nth-child(odd),
.cc-article > .cc-article__section:nth-child(odd),
.cc-article > .cc-article__faq:nth-child(odd),
.cc-article > .cc-article__ctaEnd:nth-child(odd){
  background:var(--cc-bg) !important;
}

.cc-article > .cc-article__header:nth-child(even),
.cc-article > .cc-article__section:nth-child(even),
.cc-article > .cc-article__faq:nth-child(even),
.cc-article > .cc-article__ctaEnd:nth-child(even){
  background:var(--cc-bgSoft) !important;
}

/* 4) Sécurité : la FAQ et le CTA final doivent toujours être visuellement distincts */
.cc-article > .cc-article__faq{
  background:var(--cc-bgSoft) !important;
}

.cc-article > .cc-article__faq + .cc-article__ctaEnd{
  background:var(--cc-bg) !important;
}

/* 5) Séparation douce entre grands blocs */
.cc-article > .cc-article__section,
.cc-article > .cc-article__faq,
.cc-article > .cc-article__ctaEnd{
  border-top:1px solid rgba(1,33,72,.045) !important;
}

/* 6) Si une ancienne génération produit malgré tout une section avec carte seule,
   on réduit la casse visuelle. L’instruction V8.7 doit empêcher ce cas. */
@supports selector(:has(*)){
  .cc-article > .cc-article__section:has(> .cc-article__container > .cc-article__keypoints:only-child),
  .cc-article > .cc-article__section:has(> .cc-article__container > .cc-article__callout:only-child),
  .cc-article > .cc-article__section:has(> .cc-article__container > .cc-article__steps:only-child),
  .cc-article > .cc-article__section:has(> .cc-article__container > .cc-article__checklist:only-child),
  .cc-article > .cc-article__section:has(> .cc-article__container > .cc-article__decision:only-child){
    padding-top:var(--cc-48) !important;
    padding-bottom:var(--cc-48) !important;
  }
}

/* 7) CTA final : garder le bouton centré et détaché de la FAQ */
.cc-article > .cc-article__ctaEnd .cc-article__container{
  border-top:1px solid var(--cc-ink10) !important;
  padding-top:var(--cc-40) !important;
}

.cc-article > .cc-article__ctaEnd .cc-ctaPrimary{
  align-self:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}







/* =========================================================
   CITYCLEANER — PATCH V23 FINAL CARTES ARTICLE
   Objectif : verrouiller définitivement le rendu des blocs visuels
   article sur le modèle premium validé de l’ancienne génération.
   Scope strict : .cc-article uniquement. Aucun impact homepage.
   À coller tout en bas du CSS additionnel, après V21/V22.
   ========================================================= */

/* 0) Variables locales de finition article */
.cc-article{
  --cc-article-card-radius:18px;
  --cc-article-card-shadow:0 10px 26px rgba(1,33,72,.06);
  --cc-article-card-line:rgba(1,33,72,.10);
  --cc-article-row-px:20px;
  --cc-article-row-py:16px;
}

/* 1) Shell unique des cartes éditoriales */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist,
.cc-article .cc-article__decision{
  width:100% !important;
  max-width:100% !important;
  margin:var(--cc-40) 0 !important;
  padding:0 !important;
  overflow:hidden !important;

  background:var(--cc-bg) !important;
  border:1px solid var(--cc-article-card-line) !important;
  border-radius:var(--cc-article-card-radius) !important;
  box-shadow:var(--cc-article-card-shadow) !important;
}

/* Fallback si un ancien HTML sort une stackList hors .cc-article__steps */
.cc-article .cc-article__section > .cc-article__container > .cc-article__stackList,
.cc-article .cc-article__section > .cc-article__stackList{
  width:100% !important;
  max-width:100% !important;
  margin:var(--cc-40) 0 !important;
  padding:16px 20px 20px !important;
  overflow:hidden !important;

  background:var(--cc-bg) !important;
  border:1px solid var(--cc-article-card-line) !important;
  border-radius:var(--cc-article-card-radius) !important;
  box-shadow:var(--cc-article-card-shadow) !important;
}

/* 2) Header de carte : même logique que les anciennes cards */
.cc-article .cc-article__keypointsTitle,
.cc-article .cc-article__calloutTitle,
.cc-article .cc-article__stepsTitle,
.cc-article .cc-article__checklistTitle,
.cc-article .cc-article__decisionTitle,
.cc-article .cc-article__keypoints > h3:first-child,
.cc-article .cc-article__callout > h3:first-child,
.cc-article .cc-article__steps > h3:first-child,
.cc-article .cc-article__checklist > h3:first-child,
.cc-article .cc-article__decision > h3:first-child,
.cc-article .cc-article__decision > p.cc-hairline:first-child{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;

  margin:0 !important;
  padding:22px 20px 14px !important;
  border-top:0 !important;
  border-bottom:1px solid var(--cc-article-card-line) !important;
  background:transparent !important;

  color:var(--cc-ink62) !important;
  font-size:12px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
  white-space:normal !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}

.cc-article .cc-article__title--ico{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.cc-article .cc-article__title--ico .cc-article__ico{
  width:28px !important;
  height:28px !important;
  flex:0 0 28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
  background:rgba(39,207,169,.10) !important;
  border:1px solid rgba(39,207,169,.18) !important;
  color:var(--cc-navy) !important;
}

.cc-article .cc-article__title--ico .cc-article__ico svg,
.cc-article .cc-article__title--ico .cc-article__ico svg *{
  width:18px !important;
  height:18px !important;
  stroke:var(--cc-navy) !important;
  fill:none !important;
  opacity:1 !important;
  vector-effect:non-scaling-stroke;
}

.cc-article .cc-article__title--ico .cc-article__titleText{
  display:block !important;
  min-width:0 !important;
  text-transform:uppercase !important;
}

/* 3) Listes premium : rangées nettes, pas de mini-grille cassée */
.cc-article .cc-article__listPremium,
.cc-article .cc-article__keypoints > ul,
.cc-article .cc-article__checklist > ul,
.cc-article .cc-article__steps > ol,
.cc-article .cc-article__decision > ul,
.cc-article .cc-article__decision > ol{
  list-style:none !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  border:0 !important;
  box-sizing:border-box !important;
}

.cc-article .cc-article__listPremium > li,
.cc-article .cc-article__keypoints > ul > li,
.cc-article .cc-article__checklist > ul > li,
.cc-article .cc-article__steps > ol > li,
.cc-article .cc-article__decision > ul > li,
.cc-article .cc-article__decision > ol > li{
  position:relative !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  margin:0 !important;
  padding:var(--cc-article-row-py) var(--cc-article-row-px) var(--cc-article-row-py) 54px !important;
  border:0 !important;
  border-top:1px solid var(--cc-article-card-line) !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  hyphens:none !important;
}

.cc-article .cc-article__listPremium > li:first-child,
.cc-article .cc-article__keypoints > ul > li:first-child,
.cc-article .cc-article__checklist > ul > li:first-child,
.cc-article .cc-article__steps > ol > li:first-child,
.cc-article .cc-article__decision > ul > li:first-child,
.cc-article .cc-article__decision > ol > li:first-child{
  border-top:0 !important;
}

/* 4) Marqueurs : glyphes sobres type ancienne version */
.cc-article .cc-article__listPremium > li::before,
.cc-article .cc-article__keypoints > ul > li::before,
.cc-article .cc-article__checklist > ul > li::before,
.cc-article .cc-article__steps > ol > li::before,
.cc-article .cc-article__decision > ul > li::before,
.cc-article .cc-article__decision > ol > li::before{
  position:absolute !important;
  left:20px !important;
  top:calc(var(--cc-article-row-py) + .08em) !important;
  width:22px !important;
  height:22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  flex:none !important;

  color:var(--cc-navy) !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  font-weight:900 !important;
  line-height:1 !important;
  opacity:.96 !important;
}

.cc-article .cc-article__listPremium--arrow > li::before,
.cc-article .cc-article__keypoints > ul > li::before,
.cc-article .cc-article__decision > ul > li::before{
  content:"›" !important;
  font-size:20px !important;
}

.cc-article .cc-article__listPremium--check > li::before,
.cc-article .cc-article__checklist > ul > li::before{
  content:"✓" !important;
  font-size:17px !important;
}

.cc-article .cc-article__steps > ol{
  counter-reset:ccArticleStep !important;
}

.cc-article .cc-article__steps > ol > li{
  counter-increment:ccArticleStep !important;
}

.cc-article .cc-article__steps > ol > li::before,
.cc-article .cc-article__decision > ol > li::before{
  content:counter(ccArticleStep) !important;
  border-radius:999px !important;
  background:rgba(1,33,72,.04) !important;
  border:1px solid var(--cc-article-card-line) !important;
  font-size:12px !important;
}

.cc-article .cc-article__listPremiumText,
.cc-article .cc-article__listPremiumText > span,
.cc-article .cc-article__listPremiumText > strong,
.cc-article .cc-article__keypoints li > span,
.cc-article .cc-article__checklist li > span{
  display:inline !important;
  min-width:0 !important;
}

.cc-article .cc-article__listPremiumText{
  display:block !important;
}

.cc-article .cc-article__listPremium strong,
.cc-article .cc-article__keypoints li strong,
.cc-article .cc-article__checklist li strong,
.cc-article .cc-article__steps li strong,
.cc-article .cc-article__decision li strong{
  color:var(--cc-navy) !important;
  font-weight:850 !important;
}

/* 5) Steps nouvelle génération : stackList dans une carte */
.cc-article .cc-article__steps > .cc-article__stackList{
  margin:0 !important;
  padding:0 !important;
  display:block !important;
}

.cc-article .cc-article__stackItem{
  display:grid !important;
  grid-template-columns:28px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin:0 !important;
  padding:16px 20px !important;
  border-top:1px solid var(--cc-article-card-line) !important;
}

.cc-article .cc-article__stackItem:first-child{
  border-top:0 !important;
}

.cc-article .cc-article__stackNum{
  width:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-top:1px !important;
  border-radius:999px !important;
  background:rgba(1,33,72,.04) !important;
  border:1px solid var(--cc-article-card-line) !important;
  color:var(--cc-navy) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.cc-article .cc-article__stackBody{ min-width:0 !important; }

.cc-article .cc-article__stackTitle,
.cc-article .cc-article__stackBody > h3:first-child{
  margin:0 0 6px !important;
  color:var(--cc-navy) !important;
  font-size:15px !important;
  line-height:1.28 !important;
  font-weight:900 !important;
}

.cc-article .cc-article__stackDesc,
.cc-article .cc-article__stackBody > p.cc-body{
  margin:0 !important;
  padding:0 !important;
  color:var(--cc-ink78) !important;
}

/* 6) Callout / Decision : carte à texte, sans barre latérale héritée */
.cc-article .cc-article__callout::before,
.cc-article .cc-article__callout::after,
.cc-article .cc-article__decision::before,
.cc-article .cc-article__decision::after{
  content:none !important;
  display:none !important;
}

.cc-article .cc-article__callout > p.cc-body,
.cc-article .cc-article__decision > p.cc-body{
  margin:0 !important;
  padding:16px 20px 20px !important;
  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.cc-article .cc-article__callout > p.cc-body + p.cc-body,
.cc-article .cc-article__decision > p.cc-body + p.cc-body{
  padding-top:0 !important;
}

/* 7) Mobile : même rendu, moins d’air, aucune pseudo-colonne */
@media (max-width:640px){
  .cc-article{
    --cc-article-row-px:16px;
    --cc-article-row-py:14px;
  }

  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist,
  .cc-article .cc-article__decision{
    margin:var(--cc-32) 0 !important;
    border-radius:18px !important;
  }

  .cc-article .cc-article__keypointsTitle,
  .cc-article .cc-article__calloutTitle,
  .cc-article .cc-article__stepsTitle,
  .cc-article .cc-article__checklistTitle,
  .cc-article .cc-article__decisionTitle,
  .cc-article .cc-article__keypoints > h3:first-child,
  .cc-article .cc-article__callout > h3:first-child,
  .cc-article .cc-article__steps > h3:first-child,
  .cc-article .cc-article__checklist > h3:first-child,
  .cc-article .cc-article__decision > h3:first-child,
  .cc-article .cc-article__decision > p.cc-hairline:first-child{
    padding:18px 16px 12px !important;
    gap:9px !important;
    font-size:11.5px !important;
    line-height:1.2 !important;
    letter-spacing:.08em !important;
  }

  .cc-article .cc-article__title--ico .cc-article__ico{
    width:26px !important;
    height:26px !important;
    flex-basis:26px !important;
    border-radius:11px !important;
  }

  .cc-article .cc-article__listPremium > li,
  .cc-article .cc-article__keypoints > ul > li,
  .cc-article .cc-article__checklist > ul > li,
  .cc-article .cc-article__steps > ol > li,
  .cc-article .cc-article__decision > ul > li,
  .cc-article .cc-article__decision > ol > li{
    padding:14px 16px 14px 46px !important;
    font-size:15px !important;
    line-height:1.64 !important;
  }

  .cc-article .cc-article__listPremium > li::before,
  .cc-article .cc-article__keypoints > ul > li::before,
  .cc-article .cc-article__checklist > ul > li::before,
  .cc-article .cc-article__steps > ol > li::before,
  .cc-article .cc-article__decision > ul > li::before,
  .cc-article .cc-article__decision > ol > li::before{
    left:16px !important;
    top:14px !important;
  }

  .cc-article .cc-article__stackItem{
    grid-template-columns:26px minmax(0,1fr) !important;
    gap:12px !important;
    padding:14px 16px !important;
  }

  .cc-article .cc-article__stackNum{
    width:22px !important;
    height:22px !important;
    font-size:11px !important;
  }

  .cc-article .cc-article__callout > p.cc-body,
  .cc-article .cc-article__decision > p.cc-body{
    padding:14px 16px 16px !important;
    font-size:15px !important;
    line-height:1.64 !important;
  }
}

/* 8) CTA final : l’alignement reste centré, même après les anciens patches */
.cc-article .cc-article__ctaEnd,
.cc-article .cc-article__ctaEnd .cc-article__container{
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}

.cc-article .cc-article__ctaEnd .cc-ctaPrimary{
  align-self:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}











/* =========================================================
   CITYCLEANER — PATCH FINAL CARTES ARTICLE CANONIQUES
   Version : V21.1 — cards article unifiées
   À coller TOUT EN BAS du CSS additionnel

   Objectif :
   - uniformiser les cartes article sur le modèle validé :
     "LE BON CAS POUR CITYCLEANER"
     "UN CALENDRIER EXPLOITABLE DOIT PRÉCISER"
   - corriger keypoints / checklist / callout / decision / steps
   - neutraliser les anciens paddings internes contradictoires
   - garder un scope strict article, sans impact homepage
   ========================================================= */


/* -----------------------------
   1) Shell canonique des cartes article
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints,
.single-post .entry-content .cc-article .cc-article__callout,
.single-post .entry-content .cc-article .cc-article__steps,
.single-post .entry-content .cc-article .cc-article__checklist,
.single-post .entry-content .cc-article .cc-article__decision{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  margin:var(--cc-40) 0 !important;
  padding:0 !important;

  background:var(--cc-bg) !important;
  border:1px solid var(--cc-ink10) !important;
  border-radius:18px !important;
  box-shadow:none !important;
  overflow:hidden !important;
}


/* -----------------------------
   2) Header canonique des cartes
   Compatible :
   - titres dédiés : .cc-article__...Title
   - anciens HTML : > h3:first-child
   - fallback rare : > p.cc-hairline:first-child
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypointsTitle,
.single-post .entry-content .cc-article .cc-article__calloutTitle,
.single-post .entry-content .cc-article .cc-article__stepsTitle,
.single-post .entry-content .cc-article .cc-article__checklistTitle,
.single-post .entry-content .cc-article .cc-article__decisionTitle,
.single-post .entry-content .cc-article .cc-article__keypoints > h3:first-child,
.single-post .entry-content .cc-article .cc-article__callout > h3:first-child,
.single-post .entry-content .cc-article .cc-article__steps > h3:first-child,
.single-post .entry-content .cc-article .cc-article__checklist > h3:first-child,
.single-post .entry-content .cc-article .cc-article__decision > h3:first-child,
.single-post .entry-content .cc-article .cc-article__decision > p.cc-hairline:first-child{
  min-height:58px !important;
  box-sizing:border-box !important;

  margin:0 !important;
  padding:16px 22px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;

  background:var(--cc-bg) !important;
  border:0 !important;
  border-bottom:1px solid var(--cc-ink10) !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;

  white-space:normal !important;
  text-align:left !important;
}


/* -----------------------------
   3) Icône de header canonique
----------------------------- */

.single-post .entry-content .cc-article .cc-article__title--ico .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__keypointsTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__calloutTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__stepsTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__checklistTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__decisionTitle .cc-article__ico{
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  flex:0 0 26px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin:0 !important;
  padding:0 !important;

  border-radius:11px !important;
  background:rgba(39,207,169,.10) !important;
  border:1px solid rgba(39,207,169,.18) !important;

  color:var(--cc-navy) !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:900 !important;
}

.single-post .entry-content .cc-article .cc-article__titleText{
  min-width:0 !important;
  display:inline-block !important;
}


/* -----------------------------
   4) Corps listes canonique
   Keypoints / checklist / decision / listPremium
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul,
.single-post .entry-content .cc-article .cc-article__checklist > ul,
.single-post .entry-content .cc-article .cc-article__decision > ul,
.single-post .entry-content .cc-article .cc-article__listPremium{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;

  border:0 !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}


/* -----------------------------
   5) Items listes canonique
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul > li,
.single-post .entry-content .cc-article .cc-article__checklist > ul > li,
.single-post .entry-content .cc-article .cc-article__decision > ul > li,
.single-post .entry-content .cc-article .cc-article__listPremium > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;

  margin:0 !important;
  padding:0 !important;
  border:0 !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;

  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__keypoints > ul > li::before,
.single-post .entry-content .cc-article .cc-article__checklist > ul > li::before,
.single-post .entry-content .cc-article .cc-article__decision > ul > li::before,
.single-post .entry-content .cc-article .cc-article__listPremium > li::before{
  content:"✓" !important;

  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  flex:0 0 22px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin-top:1px !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:900 !important;
}


/* -----------------------------
   6) Texte interne des listes
----------------------------- */

.single-post .entry-content .cc-article .cc-article__listPremiumText,
.single-post .entry-content .cc-article .cc-article__keypoints > ul > li > *,
.single-post .entry-content .cc-article .cc-article__checklist > ul > li > *,
.single-post .entry-content .cc-article .cc-article__decision > ul > li > *{
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;

  color:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
  font-weight:inherit !important;
  overflow-wrap:break-word !important;
}

.single-post .entry-content .cc-article .cc-article__keypoints strong,
.single-post .entry-content .cc-article .cc-article__checklist strong,
.single-post .entry-content .cc-article .cc-article__decision strong,
.single-post .entry-content .cc-article .cc-article__listPremium strong,
.single-post .entry-content .cc-article .cc-article__callout strong,
.single-post .entry-content .cc-article .cc-article__steps strong{
  color:var(--cc-navy) !important;
  font-weight:900 !important;
}


/* -----------------------------
   7) Callout / decision à paragraphe
   Ex : "LE POINT À NE PAS LAISSER FLOU"
----------------------------- */

.single-post .entry-content .cc-article .cc-article__callout::before,
.single-post .entry-content .cc-article .cc-article__callout::after,
.single-post .entry-content .cc-article .cc-article__decision::before,
.single-post .entry-content .cc-article .cc-article__decision::after{
  content:none !important;
  display:none !important;
}

.single-post .entry-content .cc-article .cc-article__callout > p.cc-body,
.single-post .entry-content .cc-article .cc-article__decision > p.cc-body{
  margin:0 !important;
  padding:22px 24px 24px !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.65 !important;
  font-weight:650 !important;

  background:var(--cc-bg) !important;
  border:0 !important;
}

.single-post .entry-content .cc-article .cc-article__callout > p.cc-body + p.cc-body,
.single-post .entry-content .cc-article .cc-article__decision > p.cc-body + p.cc-body{
  padding-top:0 !important;
}


/* -----------------------------
   8) Steps : garder les numéros, mais stabiliser la carte
----------------------------- */

.single-post .entry-content .cc-article .cc-article__steps > ol{
  list-style:none !important;
  counter-reset:ccArticleStep !important;

  margin:0 !important;
  padding:22px 24px 24px !important;

  display:grid !important;
  gap:0 !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li{
  counter-increment:ccArticleStep !important;

  margin:0 !important;
  padding:18px 0 !important;
  border:0 !important;
  border-top:1px solid var(--cc-ink10) !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;

  color:var(--cc-ink78) !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li:first-child{
  padding-top:0 !important;
  border-top:0 !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li:last-child{
  padding-bottom:0 !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li::before{
  content:counter(ccArticleStep) !important;

  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  flex:0 0 30px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin-top:0 !important;

  border-radius:999px !important;
  background:var(--cc-bgSoft) !important;
  border:1px solid var(--cc-ink10) !important;

  color:var(--cc-navy) !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:900 !important;
}


/* -----------------------------
   9) StackList interne aux steps
   Compatible avec les HTML générés récents
----------------------------- */

.single-post .entry-content .cc-article .cc-article__steps > .cc-article__stackList{
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:grid !important;
  gap:0 !important;

  border:0 !important;
}

.single-post .entry-content .cc-article .cc-article__stackItem{
  margin:0 !important;
  padding:18px 0 !important;
  border:0 !important;
  border-top:1px solid var(--cc-ink10) !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;
}

.single-post .entry-content .cc-article .cc-article__stackItem:first-child{
  padding-top:0 !important;
  border-top:0 !important;
}

.single-post .entry-content .cc-article .cc-article__stackItem:last-child{
  padding-bottom:0 !important;
}

.single-post .entry-content .cc-article .cc-article__stackNum{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  flex:0 0 30px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin:0 !important;

  border-radius:999px !important;
  background:var(--cc-bgSoft) !important;
  border:1px solid var(--cc-ink10) !important;

  color:var(--cc-navy) !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:900 !important;
}

.single-post .entry-content .cc-article .cc-article__stackBody{
  min-width:0 !important;
}

.single-post .entry-content .cc-article .cc-article__stackTitle,
.single-post .entry-content .cc-article .cc-article__stackBody > h3:first-child{
  margin:0 0 6px !important;

  color:var(--cc-navy) !important;
  font-size:15px !important;
  line-height:1.3 !important;
  font-weight:900 !important;
}

.single-post .entry-content .cc-article .cc-article__stackDesc,
.single-post .entry-content .cc-article .cc-article__stackBody > p.cc-body{
  margin:0 !important;
  padding:0 !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
}


/* -----------------------------
   10) Mobile
----------------------------- */

@media (max-width:640px){

  .single-post .entry-content .cc-article .cc-article__keypoints,
  .single-post .entry-content .cc-article .cc-article__callout,
  .single-post .entry-content .cc-article .cc-article__steps,
  .single-post .entry-content .cc-article .cc-article__checklist,
  .single-post .entry-content .cc-article .cc-article__decision{
    margin:var(--cc-32) 0 !important;
    border-radius:18px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypointsTitle,
  .single-post .entry-content .cc-article .cc-article__calloutTitle,
  .single-post .entry-content .cc-article .cc-article__stepsTitle,
  .single-post .entry-content .cc-article .cc-article__checklistTitle,
  .single-post .entry-content .cc-article .cc-article__decisionTitle,
  .single-post .entry-content .cc-article .cc-article__keypoints > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__callout > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__steps > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__checklist > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__decision > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__decision > p.cc-hairline:first-child{
    min-height:54px !important;
    padding:15px 16px !important;
    gap:9px !important;

    font-size:11.5px !important;
    line-height:1.25 !important;
    letter-spacing:.075em !important;
  }

  .single-post .entry-content .cc-article .cc-article__title--ico .cc-article__ico,
  .single-post .entry-content .cc-article .cc-article__keypointsTitle .cc-article__ico,
  .single-post .entry-content .cc-article .cc-article__calloutTitle .cc-article__ico,
  .single-post .entry-content .cc-article .cc-article__stepsTitle .cc-article__ico,
  .single-post .entry-content .cc-article .cc-article__checklistTitle .cc-article__ico,
  .single-post .entry-content .cc-article .cc-article__decisionTitle .cc-article__ico{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    flex-basis:26px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints > ul,
  .single-post .entry-content .cc-article .cc-article__checklist > ul,
  .single-post .entry-content .cc-article .cc-article__decision > ul,
  .single-post .entry-content .cc-article .cc-article__listPremium,
  .single-post .entry-content .cc-article .cc-article__steps > ol,
  .single-post .entry-content .cc-article .cc-article__steps > .cc-article__stackList{
    padding:18px 16px 20px !important;
    gap:16px !important;
  }

  .single-post .entry-content .cc-article .cc-article__callout > p.cc-body,
  .single-post .entry-content .cc-article .cc-article__decision > p.cc-body{
    padding:18px 16px 20px !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol > li,
  .single-post .entry-content .cc-article .cc-article__stackItem{
    padding:16px 0 !important;
    gap:12px !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol > li:first-child,
  .single-post .entry-content .cc-article .cc-article__stackItem:first-child{
    padding-top:0 !important;
  }

  .single-post .entry-content .cc-article .cc-article__steps > ol > li:last-child,
  .single-post .entry-content .cc-article .cc-article__stackItem:last-child{
    padding-bottom:0 !important;
  }
}


/* -----------------------------
   11) Très petits écrans
----------------------------- */

@media (max-width:420px){

  .single-post .entry-content .cc-article .cc-article__keypoints > ul,
  .single-post .entry-content .cc-article .cc-article__checklist > ul,
  .single-post .entry-content .cc-article .cc-article__decision > ul,
  .single-post .entry-content .cc-article .cc-article__listPremium,
  .single-post .entry-content .cc-article .cc-article__steps > ol,
  .single-post .entry-content .cc-article .cc-article__steps > .cc-article__stackList{
    padding:16px 15px 18px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints > ul > li,
  .single-post .entry-content .cc-article .cc-article__checklist > ul > li,
  .single-post .entry-content .cc-article .cc-article__decision > ul > li,
  .single-post .entry-content .cc-article .cc-article__listPremium > li{
    gap:10px !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints > ul > li::before,
  .single-post .entry-content .cc-article .cc-article__checklist > ul > li::before,
  .single-post .entry-content .cc-article .cc-article__decision > ul > li::before,
  .single-post .entry-content .cc-article .cc-article__listPremium > li::before{
    width:20px !important;
    min-width:20px !important;
    flex-basis:20px !important;
  }
}




/* =========================================================
   CITYCLEANER — HOTFIX CARTES ARTICLE V21.2
   À coller TOUT EN BAS du CSS additionnel

   Corrige :
   - icône de titre qui flotte sur la bordure
   - absence de ligne séparatrice sous le titre
   - titres de cartes non captés selon le HTML généré
   - listes qui gardent un ancien border-top
   ========================================================= */


/* -----------------------------
   1) Carte article : shell stable
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints,
.single-post .entry-content .cc-article .cc-article__callout,
.single-post .entry-content .cc-article .cc-article__steps,
.single-post .entry-content .cc-article .cc-article__checklist,
.single-post .entry-content .cc-article .cc-article__decision{
  position:relative !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  margin:var(--cc-40) 0 !important;
  padding:0 !important;

  background:var(--cc-bg) !important;
  border:1px solid var(--cc-ink10) !important;
  border-radius:18px !important;
  box-shadow:none !important;
  overflow:hidden !important;
}


/* -----------------------------
   2) Titre de carte : header canonique
   Cible tous les cas HTML possibles
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > :first-child.cc-article__title--ico,
.single-post .entry-content .cc-article .cc-article__callout > :first-child.cc-article__title--ico,
.single-post .entry-content .cc-article .cc-article__steps > :first-child.cc-article__title--ico,
.single-post .entry-content .cc-article .cc-article__checklist > :first-child.cc-article__title--ico,
.single-post .entry-content .cc-article .cc-article__decision > :first-child.cc-article__title--ico,

.single-post .entry-content .cc-article .cc-article__keypointsTitle,
.single-post .entry-content .cc-article .cc-article__calloutTitle,
.single-post .entry-content .cc-article .cc-article__stepsTitle,
.single-post .entry-content .cc-article .cc-article__checklistTitle,
.single-post .entry-content .cc-article .cc-article__decisionTitle,

.single-post .entry-content .cc-article .cc-article__keypoints > h3:first-child,
.single-post .entry-content .cc-article .cc-article__callout > h3:first-child,
.single-post .entry-content .cc-article .cc-article__steps > h3:first-child,
.single-post .entry-content .cc-article .cc-article__checklist > h3:first-child,
.single-post .entry-content .cc-article .cc-article__decision > h3:first-child,
.single-post .entry-content .cc-article .cc-article__decision > p.cc-hairline:first-child{
  position:relative !important;
  inset:auto !important;
  transform:none !important;

  width:100% !important;
  min-height:58px !important;
  box-sizing:border-box !important;

  margin:0 !important;
  padding:16px 22px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;

  background:var(--cc-bg) !important;
  border:0 !important;
  border-top:0 !important;
  border-bottom:1px solid var(--cc-ink10) !important;
  box-shadow:none !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  text-align:left !important;
  white-space:normal !important;
}


/* -----------------------------
   3) Icône de titre : ne doit plus sortir de la carte
----------------------------- */

.single-post .entry-content .cc-article .cc-article__title--ico .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__keypointsTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__calloutTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__stepsTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__checklistTitle .cc-article__ico,
.single-post .entry-content .cc-article .cc-article__decisionTitle .cc-article__ico{
  position:static !important;
  inset:auto !important;
  transform:none !important;

  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  flex:0 0 26px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin:0 !important;
  padding:0 !important;

  border-radius:11px !important;
  background:rgba(39,207,169,.10) !important;
  border:1px solid rgba(39,207,169,.18) !important;

  color:var(--cc-navy) !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:900 !important;
  opacity:1 !important;
}


/* -----------------------------
   4) Texte de titre
----------------------------- */

.single-post .entry-content .cc-article .cc-article__titleText{
  min-width:0 !important;
  display:inline-block !important;
  color:inherit !important;
  font:inherit !important;
  letter-spacing:inherit !important;
  text-transform:inherit !important;
}


/* -----------------------------
   5) Corps des listes : le séparateur est au header, pas à la liste
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul,
.single-post .entry-content .cc-article .cc-article__checklist > ul,
.single-post .entry-content .cc-article .cc-article__decision > ul,
.single-post .entry-content .cc-article .cc-article__listPremium,
.single-post .entry-content .cc-article .cc-article__steps > ol,
.single-post .entry-content .cc-article .cc-article__steps > .cc-article__stackList{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;

  list-style:none !important;
  margin:0 !important;
  padding:22px 24px 24px !important;

  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;

  border:0 !important;
  border-top:0 !important;

  background:var(--cc-bg) !important;
  color:var(--cc-ink78) !important;
}


/* -----------------------------
   6) Items listes : alignement propre
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul > li,
.single-post .entry-content .cc-article .cc-article__checklist > ul > li,
.single-post .entry-content .cc-article .cc-article__decision > ul > li,
.single-post .entry-content .cc-article .cc-article__listPremium > li{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;

  margin:0 !important;
  padding:0 !important;
  border:0 !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.62 !important;
  font-weight:650 !important;
  text-align:left !important;
  white-space:normal !important;
  overflow-wrap:break-word !important;
}


/* -----------------------------
   7) Checks de liste
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints > ul > li::before,
.single-post .entry-content .cc-article .cc-article__checklist > ul > li::before,
.single-post .entry-content .cc-article .cc-article__decision > ul > li::before,
.single-post .entry-content .cc-article .cc-article__listPremium > li::before{
  content:"✓" !important;

  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  flex:0 0 22px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin-top:1px !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;

  color:var(--cc-navy) !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:900 !important;
}


/* -----------------------------
   8) Texte interne
----------------------------- */

.single-post .entry-content .cc-article .cc-article__keypoints strong,
.single-post .entry-content .cc-article .cc-article__checklist strong,
.single-post .entry-content .cc-article .cc-article__decision strong,
.single-post .entry-content .cc-article .cc-article__listPremium strong,
.single-post .entry-content .cc-article .cc-article__callout strong,
.single-post .entry-content .cc-article .cc-article__steps strong{
  color:var(--cc-navy) !important;
  font-weight:900 !important;
}


/* -----------------------------
   9) Callout texte simple
----------------------------- */

.single-post .entry-content .cc-article .cc-article__callout > p.cc-body,
.single-post .entry-content .cc-article .cc-article__decision > p.cc-body{
  margin:0 !important;
  padding:22px 24px 24px !important;

  background:var(--cc-bg) !important;
  border:0 !important;

  color:var(--cc-ink78) !important;
  font-size:15px !important;
  line-height:1.65 !important;
  font-weight:650 !important;
}


/* -----------------------------
   10) Steps : numéros conservés
----------------------------- */

.single-post .entry-content .cc-article .cc-article__steps > ol{
  counter-reset:ccArticleStep !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li{
  counter-increment:ccArticleStep !important;

  margin:0 !important;
  padding:18px 0 !important;
  border:0 !important;
  border-top:1px solid var(--cc-ink10) !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;

  color:var(--cc-ink78) !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li:first-child{
  padding-top:0 !important;
  border-top:0 !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li:last-child{
  padding-bottom:0 !important;
}

.single-post .entry-content .cc-article .cc-article__steps > ol > li::before{
  content:counter(ccArticleStep) !important;

  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  flex:0 0 30px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  margin-top:0 !important;

  border-radius:999px !important;
  background:var(--cc-bgSoft) !important;
  border:1px solid var(--cc-ink10) !important;

  color:var(--cc-navy) !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:900 !important;
}


/* -----------------------------
   11) Responsive mobile
----------------------------- */

@media (max-width:640px){

  .single-post .entry-content .cc-article .cc-article__keypoints,
  .single-post .entry-content .cc-article .cc-article__callout,
  .single-post .entry-content .cc-article .cc-article__steps,
  .single-post .entry-content .cc-article .cc-article__checklist,
  .single-post .entry-content .cc-article .cc-article__decision{
    margin:var(--cc-32) 0 !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints > :first-child.cc-article__title--ico,
  .single-post .entry-content .cc-article .cc-article__callout > :first-child.cc-article__title--ico,
  .single-post .entry-content .cc-article .cc-article__steps > :first-child.cc-article__title--ico,
  .single-post .entry-content .cc-article .cc-article__checklist > :first-child.cc-article__title--ico,
  .single-post .entry-content .cc-article .cc-article__decision > :first-child.cc-article__title--ico,
  .single-post .entry-content .cc-article .cc-article__keypointsTitle,
  .single-post .entry-content .cc-article .cc-article__calloutTitle,
  .single-post .entry-content .cc-article .cc-article__stepsTitle,
  .single-post .entry-content .cc-article .cc-article__checklistTitle,
  .single-post .entry-content .cc-article .cc-article__decisionTitle,
  .single-post .entry-content .cc-article .cc-article__keypoints > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__callout > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__steps > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__checklist > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__decision > h3:first-child,
  .single-post .entry-content .cc-article .cc-article__decision > p.cc-hairline:first-child{
    min-height:54px !important;
    padding:15px 16px !important;
    gap:9px !important;

    font-size:11.5px !important;
    line-height:1.25 !important;
    letter-spacing:.075em !important;
  }

  .single-post .entry-content .cc-article .cc-article__keypoints > ul,
  .single-post .entry-content .cc-article .cc-article__checklist > ul,
  .single-post .entry-content .cc-article .cc-article__decision > ul,
  .single-post .entry-content .cc-article .cc-article__listPremium,
  .single-post .entry-content .cc-article .cc-article__steps > ol,
  .single-post .entry-content .cc-article .cc-article__steps > .cc-article__stackList{
    padding:18px 16px 20px !important;
    gap:16px !important;
  }

  .single-post .entry-content .cc-article .cc-article__callout > p.cc-body,
  .single-post .entry-content .cc-article .cc-article__decision > p.cc-body{
    padding:18px 16px 20px !important;
  }
}












/* =========================================================
   PATCH ARTICLE 02 — CARTES ÉDITORIALES PREMIUM
   Scope : article n°2 uniquement
   Objectif :
   - aligner les cartes sur le modèle visuel validé
   - supprimer l’effet tableau label/valeur
   - stabiliser les listes mobile
   - préparer les icônes inline SVG
   ========================================================= */

/* ---------- 1) CARTES ARTICLE 02 ---------- */

.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__callout,
  .cc-article__steps,
  .cc-article__checklist
){
  margin: var(--cc-40) 0;
  overflow: hidden;
  background: var(--cc-bg);
  border: 1px solid var(--cc-ink10);
  border-radius: var(--cc-r24);
  box-shadow: 0 10px 26px rgba(1,33,72,0.045);
}

/* Header de carte */
.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__callout,
  .cc-article__steps,
  .cc-article__checklist
) > .cc-article__title--ico{
  margin: 0 !important;
  padding: 20px 28px !important;
  min-height: 64px;

  display: flex;
  align-items: center;
  gap: 12px;

  border-top: 0 !important;
  border-bottom: 1px solid var(--cc-ink10);
  background: #fff;
}

/* Pastille icône */
.cc-article--a02 .cc-article__ico{
  width: 32px;
  height: 32px;
  flex: 0 0 32px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 13px;
  color: var(--cc-navy);
  background: rgba(39,207,169,.10);
  border: 1px solid rgba(39,207,169,.24);

  font-size: 0;
  line-height: 0;
}

/* Icône SVG inline */
.cc-article--a02 .cc-article__ico svg{
  width: 18px;
  height: 18px;
  display: block;

  stroke: currentColor;
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

/* Titre de carte */
.cc-article--a02 .cc-article__titleText{
  display: block;
  min-width: 0;

  font-size: 13px;
  line-height: 1.25;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cc-navy);
}

/* ---------- 2) LISTES PREMIUM — RESET ANTI TABLEAU ---------- */

.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__checklist
) > .cc-article__listPremium,
.cc-article--a02 .cc-article__steps > .cc-article__stackList{
  list-style: none !important;
  margin: 0 !important;
  padding: 26px 28px 28px !important;

  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}

/* Items : une seule ligne de lecture, pas de colonnes artificielles */
.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__checklist
) > .cc-article__listPremium > li,
.cc-article--a02 .cc-article__steps > .cc-article__stackList > li{
  position: relative;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;

  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) !important;
  column-gap: 14px !important;
  align-items: start !important;

  font-size: 17px;
  line-height: 1.55;
  font-weight: 700;
  color: var(--cc-ink78);
}

/* Icône de ligne : check sobre */
.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__checklist
) > .cc-article__listPremium > li::before{
  content: "✓";
  width: 24px;
  height: 24px;
  margin-top: 1px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--cc-navy);
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;

  font-size: 18px;
  line-height: 1;
  font-weight: 950;
}

/* Texte interne : neutralise les spans éventuels */
.cc-article--a02 .cc-article__listPremiumText{
  display: inline !important;
  min-width: 0;
}

/* Gras de libellé */
.cc-article--a02 :where(
  .cc-article__keypoints,
  .cc-article__decision,
  .cc-article__checklist,
  .cc-article__steps
) li strong{
  color: var(--cc-navy);
  font-weight: 950;
}

/* ---------- 3) STEPS — NUMÉROS PROPRES ---------- */

.cc-article--a02 .cc-article__steps > .cc-article__stackList{
  counter-reset: ccA02Step;
}

.cc-article--a02 .cc-article__steps > .cc-article__stackList > li{
  counter-increment: ccA02Step;
}

.cc-article--a02 .cc-article__steps > .cc-article__stackList > li::before{
  content: counter(ccA02Step);
  width: 24px;
  height: 24px;
  margin-top: 1px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--cc-navy);
  background: transparent !important;
  border: 0 !important;

  font-size: 15px;
  line-height: 1;
  font-weight: 950;
}

/* ---------- 4) CALLOUTS — TEXTE SIMPLE ---------- */

.cc-article--a02 .cc-article__callout > .cc-body{
  margin: 0 !important;
  padding: 26px 28px 28px !important;

  font-size: 17px;
  line-height: 1.65;
  font-weight: 750;
  color: var(--cc-ink78);
}

/* ---------- 5) VARIANTES D’INTENTION ---------- */

/* Alerte : piège / limite */
.cc-article--a02 .cc-article__callout .cc-article__ico{
  background: rgba(70,217,255,.10);
  border-color: rgba(70,217,255,.24);
}

/* Incompatibilité */
.cc-article--a02 .cc-article__checklist .cc-article__ico{
  background: rgba(39,207,169,.10);
  border-color: rgba(39,207,169,.24);
}

/* ---------- 6) MOBILE ---------- */

@media (max-width: 640px){

  .cc-article--a02 :where(
    .cc-article__keypoints,
    .cc-article__decision,
    .cc-article__callout,
    .cc-article__steps,
    .cc-article__checklist
  ){
    margin: var(--cc-32) 0;
    border-radius: 20px;
  }

  .cc-article--a02 :where(
    .cc-article__keypoints,
    .cc-article__decision,
    .cc-article__callout,
    .cc-article__steps,
    .cc-article__checklist
  ) > .cc-article__title--ico{
    padding: 16px 18px !important;
    min-height: 58px;
    gap: 10px;
  }

  .cc-article--a02 .cc-article__ico{
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: 12px;
  }

  .cc-article--a02 .cc-article__ico svg{
    width: 17px;
    height: 17px;
  }

  .cc-article--a02 .cc-article__titleText{
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: .07em;
  }

  .cc-article--a02 :where(
    .cc-article__keypoints,
    .cc-article__decision,
    .cc-article__checklist
  ) > .cc-article__listPremium,
  .cc-article--a02 .cc-article__steps > .cc-article__stackList{
    padding: 18px 18px 20px !important;
    gap: 16px !important;
  }

  .cc-article--a02 :where(
    .cc-article__keypoints,
    .cc-article__decision,
    .cc-article__checklist
  ) > .cc-article__listPremium > li,
  .cc-article--a02 .cc-article__steps > .cc-article__stackList > li{
    grid-template-columns: 22px minmax(0, 1fr) !important;
    column-gap: 12px !important;

    font-size: 15px;
    line-height: 1.55;
    font-weight: 700;
  }

  .cc-article--a02 :where(
    .cc-article__keypoints,
    .cc-article__decision,
    .cc-article__checklist
  ) > .cc-article__listPremium > li::before,
  .cc-article--a02 .cc-article__steps > .cc-article__stackList > li::before{
    width: 22px;
    height: 22px;
    font-size: 15px;
  }

  .cc-article--a02 .cc-article__callout > .cc-body{
    padding: 18px 18px 20px !important;
    font-size: 15px;
    line-height: 1.6;
  }
}






/* =========================================================
   CITYCLEANER — PATCH GLOBAL CARTES ARTICLES FLOTTANTES
   Scope : tous les articles .cc-article
   Objectif : donner aux blocs éditoriaux une vraie impression de carte premium
   Sans impact homepage
   ========================================================= */

/* Cartes éditoriales principales des articles */
.cc-article .cc-article__keypoints,
.cc-article .cc-article__decision,
.cc-article .cc-article__callout,
.cc-article .cc-article__steps,
.cc-article .cc-article__checklist{
  background: #ffffff !important;
  border: 1px solid rgba(1,33,72,.095) !important;
  border-radius: 24px !important;
  overflow: hidden !important;

  box-shadow:
    0 22px 54px rgba(1,33,72,.105),
    0 7px 18px rgba(1,33,72,.055),
    0 0 0 1px rgba(255,255,255,.72) inset !important;
}

/* Header interne des cartes */
.cc-article .cc-article__keypoints .cc-article__title--ico,
.cc-article .cc-article__decision .cc-article__title--ico,
.cc-article .cc-article__callout .cc-article__title--ico,
.cc-article .cc-article__steps .cc-article__title--ico,
.cc-article .cc-article__checklist .cc-article__title--ico{
  background: #ffffff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(1,33,72,.09) !important;
}

/* Ombre légèrement plus douce sur mobile */
@media (max-width: 640px){
  .cc-article .cc-article__keypoints,
  .cc-article .cc-article__decision,
  .cc-article .cc-article__callout,
  .cc-article .cc-article__steps,
  .cc-article .cc-article__checklist{
    border-radius: 20px !important;
    box-shadow:
      0 16px 38px rgba(1,33,72,.095),
      0 5px 14px rgba(1,33,72,.045),
      0 0 0 1px rgba(255,255,255,.70) inset !important;
  }
}





body .cc-article,
body .cc-article .cc-article__header,
body .cc-article .cc-article__section,
body .cc-article .cc-article__container{
  overflow: visible !important;
}

body .cc-article .cc-article__keypoints,
body .cc-article .cc-article__decision,
body .cc-article .cc-article__callout,
body .cc-article .cc-article__steps,
body .cc-article .cc-article__checklist{
  position: relative !important;
  z-index: 1 !important;
  overflow: visible !important;
  background: #ffffff !important;
  border: 1px solid rgba(1,33,72,.10) !important;
  border-radius: 24px !important;
  box-shadow: 0 2px 4px rgba(1,33,72,.035), 0 16px 34px rgba(1,33,72,.09), 0 34px 70px rgba(1,33,72,.105) !important;
  filter: drop-shadow(0 18px 26px rgba(1,33,72,.075)) !important;
}

body .cc-article .cc-article__keypoints .cc-article__title--ico,
body .cc-article .cc-article__decision .cc-article__title--ico,
body .cc-article .cc-article__callout .cc-article__title--ico,
body .cc-article .cc-article__steps .cc-article__title--ico,
body .cc-article .cc-article__checklist .cc-article__title--ico,
body .cc-article .cc-article__keypointsTitle,
body .cc-article .cc-article__calloutTitle,
body .cc-article .cc-article__stepsTitle,
body .cc-article .cc-article__checklistTitle,
body .cc-article .cc-article__decisionTitle{
  background: #ffffff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(1,33,72,.09) !important;
}

@media (max-width: 640px) {
  body .cc-article .cc-article__keypoints,
  body .cc-article .cc-article__decision,
  body .cc-article .cc-article__callout,
  body .cc-article .cc-article__steps,
  body .cc-article .cc-article__checklist{
    border-radius: 20px !important;
    box-shadow: 0 2px 4px rgba(1,33,72,.03), 0 12px 26px rgba(1,33,72,.085), 0 24px 48px rgba(1,33,72,.09) !important;
    filter: drop-shadow(0 12px 18px rgba(1,33,72,.065)) !important;
  }
}




































/* =========================================================
CityCleaner — CSS ADDITIONNEL FINAL HOMEPAGE REFIT
Version : refonte visuelle à delta minimal avec corrections QA
Usage : coller ce fichier en bas du CSS additionnel actif
Rollback : supprimer ce bloc CSS et restaurer les anciennes sections Elementor
========================================================= */

/* =========================================================
   CityCleaner — VISUAL REFIT HOMEPAGE
   Scope : .cc-visual-refit
   Usage : coller en bas du CSS additionnel actif
   Objectif : images utiles + preuves terrain + CTA qualifiant
   Rollback : supprimer ce bloc CSS + retirer les classes cc-visual-refit du HTML
   ========================================================= */

/* ---------- Base images scopée ---------- */
.cc-visual-refit .cc-refitMedia{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  background:var(--cc-bg);
  box-shadow:var(--cc-shadow-card);
}

.cc-visual-refit .cc-refitMedia::before{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  z-index:2;
  background:linear-gradient(90deg, rgba(255,255,255,.36), rgba(255,255,255,0) 38%);
  opacity:.55;
}

.cc-visual-refit .cc-refitMedia picture,
.cc-visual-refit .cc-refitMedia__img{
  display:block;
  width:100%;
}

.cc-visual-refit .cc-refitMedia__img{
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  background:var(--cc-bgSoft);
}

.cc-visual-refit .cc-refitMedia__caption,
.cc-visual-refit .cc-proofRefit__caption{
  position:relative;
  z-index:3;
  margin:0;
  padding:12px 14px;
  color:var(--cc-ink62);
  font-size:12px;
  line-height:1.45;
  font-weight:750;
  background:rgba(255,255,255,.92);
  border-top:1px solid var(--cc-ink10);
}

/* ---------- Hero refit ---------- */
.cc-visual-refit.cc-hero .cc-hero__inner--visualRefit{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:
    "copy"
    "media"
    "action";
  gap:22px;
  align-items:start;
}

.cc-visual-refit.cc-hero .cc-hero__left{ grid-area:copy; }
.cc-visual-refit.cc-hero .cc-hero__media{ grid-area:media; }
.cc-visual-refit.cc-hero .cc-hero__action{ grid-area:action; }

.cc-visual-refit.cc-hero .cc-hero__subtitle{
  margin-bottom:0;
}

.cc-visual-refit.cc-hero .cc-hero__bullets{
  margin-top:0;
}

.cc-visual-refit.cc-hero .cc-refitMedia--hero{
  isolation:isolate;
}

.cc-visual-refit.cc-hero .cc-refitMedia--hero::after{
  content:"";
  position:absolute;
  inset:auto 14px 54px auto;
  width:74px;
  height:74px;
  border-radius:999px;
  pointer-events:none;
  z-index:2;
  background:radial-gradient(circle, rgba(39,207,169,.20), rgba(39,207,169,0) 68%);
}

.cc-visual-refit.cc-hero .cc-refitMedia__img--hero{
  min-height:250px;
  max-height:320px;
  object-position:55% 60%;
}

@media (min-width:900px){
  .cc-visual-refit.cc-hero .cc-hero__inner--visualRefit{
    grid-template-columns:1.12fr .88fr;
    grid-template-areas:
      "copy media"
      "action media";
    column-gap:clamp(28px,4vw,56px);
    row-gap:24px;
    align-items:center;
  }

  .cc-visual-refit.cc-hero .cc-refitMedia__img--hero{
    aspect-ratio:5/4;
    min-height:420px;
    max-height:560px;
    object-position:58% 56%;
  }

  .cc-visual-refit.cc-hero .cc-hero__action{
    max-width:520px;
  }
}

@media (max-width:520px){
  .cc-visual-refit.cc-hero .cc-refitMedia__img--hero{
    min-height:230px;
    max-height:280px;
  }

  .cc-visual-refit.cc-hero .cc-refitMedia__caption{
    display:none;
  }

  .cc-visual-refit.cc-hero .cc-hero__inner--visualRefit{
    gap:18px;
  }
}

/* ---------- Delegate refit ---------- */
.cc-visual-refit.cc-delegate3 .cc-delegate3__grid{
  gap:var(--cc-16);
}

.cc-visual-refit.cc-delegate3 .cc-delegate3Card{
  min-height:100%;
}

.cc-visual-refit.cc-delegate3 .cc-delegate3Card__list li span:last-child{
  min-width:0;
}

.cc-visual-refit.cc-delegate3 .cc-delegate3__statement{
  background:rgba(255,255,255,.58);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  padding:16px;
  box-shadow:none;
}

@media (min-width:980px){
  .cc-visual-refit.cc-delegate3 .cc-delegate3__grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

/* ---------- Proof refit ---------- */
.cc-visual-refit.cc-proof .cc-proofRefit__layout{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:center;
}

.cc-visual-refit.cc-proof .cc-proofRefit__media{
  order:2;
}

.cc-visual-refit.cc-proof .cc-proofRefit__content{
  order:1;
}

.cc-visual-refit.cc-proof .cc-proofRefit__kicker{
  margin-bottom:12px;
  color:var(--cc-ink62);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.cc-visual-refit.cc-proof .cc-proofRefit__header{
  margin-bottom:22px;
}

.cc-visual-refit.cc-proof .cc-proof__lead{
  max-width:62ch;
}

.cc-visual-refit.cc-proof .cc-refitMedia--proof::before{
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.30) 74%, rgba(255,255,255,.52));
  opacity:.45;
}

.cc-visual-refit.cc-proof .cc-refitMedia__img--proof{
  min-height:240px;
  max-height:320px;
  object-position:50% 54%;
}

.cc-visual-refit.cc-proof .cc-proofRefit__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}

.cc-visual-refit.cc-proof .cc-proofRefit__list li{
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:10px;
  align-items:start;
  padding:13px 14px;
  color:var(--cc-ink78);
  font-size:15px;
  line-height:1.5;
  font-weight:650;
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r14);
}

.cc-visual-refit.cc-proof .cc-proofRefit__list li > span:first-child{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.11);
  border:1px solid rgba(39,207,169,.18);
  font-weight:900;
  line-height:1;
}

.cc-visual-refit.cc-proof .cc-proofRefit__list strong{
  color:var(--cc-navy);
  font-weight:900;
}


.cc-visual-refit.cc-proof .cc-proofRefit__text{
  min-width:0;
}

.cc-visual-refit.cc-proof .cc-proofRefit__text strong{
  color:var(--cc-navy);
  font-weight:900;
}

.cc-visual-refit.cc-proof .cc-proofRefit__note{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid var(--cc-ink10);
  color:var(--cc-ink62);
  font-size:14px;
  line-height:1.55;
  font-weight:650;
}

@media (min-width:900px){
  .cc-visual-refit.cc-proof .cc-proofRefit__layout{
    grid-template-columns:minmax(320px, .82fr) minmax(0, 1.18fr);
    gap:clamp(28px,4vw,56px);
  }

  .cc-visual-refit.cc-proof .cc-proofRefit__media{
    order:1;
  }

  .cc-visual-refit.cc-proof .cc-proofRefit__content{
    order:2;
  }

  .cc-visual-refit.cc-proof .cc-refitMedia__img--proof{
    aspect-ratio:4/3;
    min-height:420px;
    max-height:500px;
  }
}

/* ---------- Ops refit ---------- */
.cc-visual-refit.cc-ops .cc-ops__grid--steps{
  counter-reset:ccStep;
}

.cc-visual-refit.cc-ops .cc-ops__card{
  position:relative;
  padding-top:22px;
}

.cc-visual-refit.cc-ops .cc-ops__step{
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  margin-bottom:14px;
  border-radius:999px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.11);
  border:1px solid rgba(39,207,169,.18);
  font-size:13px;
  font-weight:950;
}

.cc-visual-refit.cc-ops .cc-ops__top{
  display:block;
}

.cc-visual-refit.cc-ops .cc-ops__cardTitle{
  margin:0 0 8px;
}

.cc-visual-refit.cc-ops .cc-ops__closing{
  background:rgba(255,255,255,.58);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
}

/* ---------- CTA final refit ---------- */
.cc-visual-refit.cc-cta-final .cc-cta-final__text{
  max-width:68ch;
}

.cc-visual-refit.cc-cta-final .cc-cta-final__decision{
  width:min(640px, 100%);
  margin:0 auto 22px;
  padding:16px;
  display:grid;
  gap:10px;
  text-align:left;
  background:rgba(255,255,255,.76);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  box-shadow:var(--cc-shadow-card);
}

.cc-visual-refit.cc-cta-final .cc-cta-final__decisionItem{
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:10px;
  align-items:start;
  color:var(--cc-ink78);
  font-size:14px;
  line-height:1.45;
  font-weight:750;
}

.cc-visual-refit.cc-cta-final .cc-cta-final__decisionItem > span:first-child{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.11);
  border:1px solid rgba(39,207,169,.18);
  font-weight:900;
  line-height:1;
}

.cc-visual-refit.cc-cta-final .cc-cta-final__micro{
  max-width:52ch;
}

@media (max-width:520px){
  .cc-visual-refit.cc-cta-final .cc-cta-final__decision{
    padding:14px;
  }

  .cc-visual-refit.cc-cta-final .cc-cta-final__decisionItem{
    font-size:13px;
  }
}

/* ---------- Safety mobile ---------- */
@media (max-width:899px){
  .cc-visual-refit .cc-refitMedia,
  .cc-visual-refit .cc-proofRefit__list li,
  .cc-visual-refit.cc-cta-final .cc-cta-final__decision{
    max-width:100%;
  }

  .cc-visual-refit.cc-delegate3 .cc-delegate3Card__h,
  .cc-visual-refit.cc-ops .cc-ops__cardTitle{
    text-wrap:balance;
  }
}

@media (prefers-reduced-motion: reduce){
  .cc-visual-refit *{
    transition:none !important;
    animation:none !important;
  }
}



























/* =========================================================
   CityCleaner — PATCH SECTION OPS WARM
   Scope : .cc-ops-warm uniquement
   Objectif : rendre la section "Comment la prise en charge démarre"
   plus chaude, plus lisible et plus crédible terrain.
   ========================================================= */

.cc-ops-warm,
.cc-ops-warm *{
  box-sizing:border-box;
}

.cc-ops-warm__layout{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-32);
  align-items:center;
}

.cc-ops-warm__header{
  margin-bottom:var(--cc-28);
}

.cc-ops-warm__kicker{
  margin-bottom:var(--cc-12);
}

.cc-ops-warm__lead{
  max-width:58ch;
}

.cc-ops-warm__steps{
  position:relative;
  display:grid;
  gap:var(--cc-20);
}

.cc-ops-warm__steps::before{
  content:"";
  position:absolute;
  left:17px;
  top:17px;
  bottom:17px;
  width:2px;
  background:linear-gradient(
    180deg,
    rgba(39,207,169,.45),
    rgba(1,33,72,.12)
  );
  border-radius:var(--cc-r999);
}

.cc-ops-warm__step{
  position:relative;
  display:grid;
  grid-template-columns:36px minmax(0, 1fr);
  gap:var(--cc-16);
  align-items:start;
}

.cc-ops-warm__num{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:var(--cc-r999);
  color:var(--cc-navy);
  background:#fff;
  border:1px solid rgba(39,207,169,.30);
  box-shadow:0 8px 18px rgba(1,33,72,.06);
  font-size:13px;
  font-weight:950;
}

.cc-ops-warm__body{
  min-width:0;
  padding:0 0 var(--cc-4);
}

.cc-ops-warm__stepTitle{
  margin:0 0 var(--cc-8);
  color:var(--cc-navy);
  font-size:18px;
  line-height:1.25;
  font-weight:950;
  text-wrap:balance;
}

.cc-ops-warm__text{
  margin:0;
  color:var(--cc-ink78);
  font-size:15px;
  line-height:1.58;
  font-weight:650;
  max-width:56ch;
}

.cc-ops-warm__visual{
  display:grid;
  gap:var(--cc-12);
}

.cc-ops-warm__media{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  background:var(--cc-bg);
  box-shadow:var(--cc-shadow-card);
}

.cc-ops-warm__media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(1,33,72,.10) 100%),
    radial-gradient(520px 260px at 12% 10%, rgba(39,207,169,.16), transparent 64%);
}

.cc-ops-warm__img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  height:auto;
  object-fit:cover;
  object-position:52% 55%;
  background:var(--cc-bgSoft);
}

.cc-ops-warm__caption{
  position:relative;
  z-index:2;
  margin:0;
  padding:12px 14px;
  border-top:1px solid var(--cc-ink10);
  background:rgba(255,255,255,.94);
  color:var(--cc-ink62);
  font-size:12px;
  line-height:1.45;
  font-weight:750;
}

.cc-ops-warm__proof{
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:10px;
  align-items:start;
  padding:13px 14px;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r14);
  background:rgba(255,255,255,.74);
  color:var(--cc-ink78);
  font-size:13px;
  line-height:1.45;
  font-weight:750;
}

.cc-ops-warm__proofIcon{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:var(--cc-r999);
  color:var(--cc-navy);
  background:rgba(39,207,169,.11);
  border:1px solid rgba(39,207,169,.18);
  font-weight:950;
  line-height:1;
}

@media (min-width:900px){
  .cc-ops-warm__layout{
    grid-template-columns:minmax(0, .98fr) minmax(320px, .82fr);
    gap:clamp(36px, 5vw, 72px);
  }

  .cc-ops-warm__media{
    border-radius:var(--cc-r22);
  }

  .cc-ops-warm__img{
    aspect-ratio:4 / 3;
    min-height:420px;
    max-height:500px;
  }
}

@media (max-width:899px){
  .cc-ops-warm__visual{
    margin-top:var(--cc-4);
  }

  .cc-ops-warm__steps{
    gap:18px;
  }

  .cc-ops-warm__stepTitle{
    font-size:17px;
  }

  .cc-ops-warm__text{
    font-size:14px;
  }
}

@media (max-width:520px){
  .cc-ops-warm__layout{
    gap:var(--cc-28);
  }

  .cc-ops-warm__caption{
    display:none;
  }

  .cc-ops-warm__img{
    aspect-ratio:16 / 11;
    object-position:50% 55%;
  }

  .cc-ops-warm__proof{
    font-size:12.5px;
  }
}







/* =========================================================
   CityCleaner — PATCH SECTION COMPATIBILITÉ V2
   Scope : .cc-fitx-match--v2 uniquement
   Objectif :
   - moins de texte ;
   - bloc “Le bon cas” plus mis en avant ;
   - bordure / ombre / halo mieux calibrés ;
   - bloc “À clarifier” non rouge mais hiérarchisé ;
   - bloc “Hors fonctionnement” compact ;
   - note finale allégée.
   ========================================================= */

.cc-fitx-match--v2,
.cc-fitx-match--v2 *{
  box-sizing:border-box;
}

.cc-fitx-match--v2 .cc-fitx-match__header{
  max-width:780px;
  margin-bottom:var(--cc-32);
}

.cc-fitx-match--v2 .cc-fitx-match__kicker{
  margin-bottom:var(--cc-12);
  color:var(--cc-ink62);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.cc-fitx-match--v2 .cc-fitx-match__lead{
  max-width:60ch;
}

.cc-fitx-match--v2 .cc-fitx-match__panel{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-16);
  align-items:stretch;
}

/* Bloc principal — volontairement plus mis en avant */
.cc-fitx-match--v2 .cc-fitx-match__main{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(39,207,169,.34);
  border-top:3px solid rgba(39,207,169,.72);
  border-radius:var(--cc-r22);
  background:
    radial-gradient(820px 320px at 8% -4%, rgba(39,207,169,.16), transparent 62%),
    radial-gradient(720px 280px at 95% 2%, rgba(70,217,255,.10), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  box-shadow:
    0 18px 42px rgba(1,33,72,.085),
    0 0 0 1px rgba(255,255,255,.72) inset;
}

.cc-fitx-match--v2 .cc-fitx-match__main::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(135deg, rgba(255,255,255,.34), rgba(255,255,255,0) 45%);
}

.cc-fitx-match--v2 .cc-fitx-match__cardTop{
  position:relative;
  z-index:1;
  padding:22px 22px 17px;
  border-bottom:1px solid rgba(1,33,72,.09);
}

.cc-fitx-match--v2 .cc-fitx-match__badge,
.cc-fitx-match--v2 .cc-fitx-match__sideLabel{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:12px;
  padding:5px 10px;
  border-radius:var(--cc-r999);
  font-size:11px;
  line-height:1;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.cc-fitx-match--v2 .cc-fitx-match__badge{
  border:1px solid rgba(39,207,169,.34);
  background:rgba(39,207,169,.13);
  color:var(--cc-navy);
  box-shadow:0 8px 18px rgba(39,207,169,.10);
}

.cc-fitx-match--v2 .cc-fitx-match__h{
  margin:0 0 var(--cc-8);
  color:var(--cc-navy);
  font-size:clamp(24px, 3.1vw, 32px);
  line-height:1.1;
  font-weight:950;
  letter-spacing:-.015em;
  text-wrap:balance;
}

.cc-fitx-match--v2 .cc-fitx-match__intro{
  margin:0;
  max-width:52ch;
  color:var(--cc-ink78);
  font-size:15px;
  line-height:1.55;
  font-weight:700;
}

.cc-fitx-match--v2 .cc-fitx-match__criteria{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr;
}

.cc-fitx-match--v2 .cc-fitx-match__criterion{
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  gap:12px;
  align-items:start;
  padding:16px 22px;
  border-top:1px solid rgba(1,33,72,.07);
}

.cc-fitx-match--v2 .cc-fitx-match__criterion:first-child{
  border-top:0;
}

.cc-fitx-match--v2 .cc-fitx-match__ico{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:12px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.14);
  border:1px solid rgba(39,207,169,.26);
  box-shadow:0 8px 16px rgba(39,207,169,.10);
}

.cc-fitx-match--v2 .cc-fitx-match__ico svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
  stroke-width:2.15;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-fitx-match--v2 .cc-fitx-match__criterion strong{
  display:block;
  margin:0 0 2px;
  color:var(--cc-navy);
  font-size:15px;
  line-height:1.25;
  font-weight:950;
}

.cc-fitx-match--v2 .cc-fitx-match__criterion span:last-child{
  display:block;
  color:var(--cc-ink62);
  font-size:14px;
  line-height:1.38;
  font-weight:650;
}

/* Colonne secondaire — plus discrète que le bon cas */
.cc-fitx-match--v2 .cc-fitx-match__side{
  display:grid;
  gap:14px;
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard{
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  background:rgba(255,255,255,.74);
  box-shadow:none;
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard--soft{
  padding:18px;
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard--limit{
  padding:16px 18px;
  background:
    radial-gradient(420px 170px at 100% 0%, rgba(137,88,254,.055), transparent 58%),
    rgba(255,255,255,.68);
}

.cc-fitx-match--v2 .cc-fitx-match__sideLabel{
  border:1px solid rgba(1,33,72,.12);
  background:rgba(1,33,72,.035);
  color:var(--cc-ink62);
  margin-bottom:10px;
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard--soft .cc-fitx-match__sideLabel{
  border-color:rgba(70,217,255,.22);
  background:rgba(70,217,255,.075);
  color:var(--cc-navy);
}

.cc-fitx-match--v2 .cc-fitx-match__sideTitle{
  margin:0 0 var(--cc-12);
  color:var(--cc-navy);
  font-size:17px;
  line-height:1.22;
  font-weight:950;
  text-wrap:balance;
}

.cc-fitx-match--v2 .cc-fitx-match__sideList{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:9px;
}

.cc-fitx-match--v2 .cc-fitx-match__sideList li{
  position:relative;
  padding-left:16px;
  color:var(--cc-ink78);
  font-size:14px;
  line-height:1.4;
  font-weight:650;
}

.cc-fitx-match--v2 .cc-fitx-match__sideList li::before{
  content:"";
  position:absolute;
  left:0;
  top:.65em;
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(1,33,72,.22);
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard p{
  margin:0;
  color:var(--cc-ink78);
  font-size:13.5px;
  line-height:1.48;
  font-weight:650;
}

/* Note finale — allégée */
.cc-fitx-match--v2 .cc-fitx-match__footer{
  margin-top:18px;
  display:grid;
  grid-template-columns:28px minmax(0, 1fr);
  gap:11px;
  align-items:start;
  padding:14px 16px;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r16);
  background:rgba(255,255,255,.52);
  box-shadow:none;
}

.cc-fitx-match--v2 .cc-fitx-match__footerIco{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:12px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.10);
  border:1px solid rgba(39,207,169,.18);
}

.cc-fitx-match--v2 .cc-fitx-match__footerIco svg{
  width:17px;
  height:17px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-fitx-match--v2 .cc-fitx-match__footer p{
  margin:0;
  color:var(--cc-ink78);
  font-size:13.5px;
  line-height:1.5;
  font-weight:650;
}

@media (min-width:900px){
  .cc-fitx-match--v2 .cc-fitx-match__panel{
    grid-template-columns:minmax(0, 1.18fr) minmax(300px, .82fr);
    gap:var(--cc-24);
  }

  .cc-fitx-match--v2 .cc-fitx-match__main{
    transform:translateY(-2px);
  }

  .cc-fitx-match--v2 .cc-fitx-match__criteria{
    grid-template-columns:1fr 1fr;
  }

  .cc-fitx-match--v2 .cc-fitx-match__criterion:nth-child(2){
    border-top:0;
  }

  .cc-fitx-match--v2 .cc-fitx-match__criterion:nth-child(odd){
    border-right:1px solid rgba(1,33,72,.07);
  }
}

@media (max-width:899px){
  .cc-fitx-match--v2 .cc-fitx-match__cardTop,
  .cc-fitx-match--v2 .cc-fitx-match__criterion{
    padding-left:18px;
    padding-right:18px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__sideCard--soft,
  .cc-fitx-match--v2 .cc-fitx-match__sideCard--limit{
    padding:17px;
  }
}

@media (max-width:520px){
  .cc-fitx-match--v2 .cc-fitx-match__panel{
    gap:14px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__h{
    font-size:23px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__criterion{
    grid-template-columns:30px minmax(0, 1fr);
    gap:10px;
    padding-top:15px;
    padding-bottom:15px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__ico{
    width:28px;
    height:28px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__sideTitle{
    font-size:16.5px;
  }

  .cc-fitx-match--v2 .cc-fitx-match__footer{
    grid-template-columns:1fr;
    gap:9px;
  }
}


/* =========================================================
   CityCleaner — Ajustement compatibilité V2
   Objectif : réduire l’effet turquoise trop présent,
   garder la hiérarchie, alléger les blocs secondaires.
   ========================================================= */

/* Bon cas : fond plus blanc, accent turquoise conservé */
.cc-fitx-match--v2 .cc-fitx-match__main{
  border-color:rgba(39,207,169,.30);
  border-top-color:rgba(39,207,169,.68);
  background:
    radial-gradient(620px 220px at 8% -6%, rgba(39,207,169,.075), transparent 62%),
    radial-gradient(520px 210px at 95% 0%, rgba(70,217,255,.045), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
  box-shadow:
    0 16px 36px rgba(1,33,72,.075),
    0 0 0 1px rgba(255,255,255,.74) inset;
}

/* Supprime l’effet glossy trop visible */
.cc-fitx-match--v2 .cc-fitx-match__main::after{
  opacity:.45;
}

/* Badge bon cas : un peu plus sobre */
.cc-fitx-match--v2 .cc-fitx-match__badge{
  background:rgba(39,207,169,.10);
  border-color:rgba(39,207,169,.28);
  box-shadow:none;
}

/* Icônes : garder l’accent sans trop verdir */
.cc-fitx-match--v2 .cc-fitx-match__ico{
  background:rgba(39,207,169,.10);
  border-color:rgba(39,207,169,.22);
  box-shadow:none;
}

/* Hors fonctionnement : plus compact, moins dominant */
.cc-fitx-match--v2 .cc-fitx-match__sideCard--limit{
  padding:14px 16px;
  background:
    radial-gradient(360px 150px at 100% 0%, rgba(137,88,254,.04), transparent 58%),
    rgba(255,255,255,.64);
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard p{
  font-size:13px;
  line-height:1.45;
}

/* Note finale : plus légère */
.cc-fitx-match--v2 .cc-fitx-match__footer{
  background:rgba(255,255,255,.42);
  border-color:rgba(1,33,72,.08);
  padding:13px 15px;
}

.cc-fitx-match--v2 .cc-fitx-match__footer p{
  font-size:13px;
  color:var(--cc-ink62);
}



/* Bon cas : garder la séparation, calmer le fond turquoise */
.cc-fitx-match--v2 .cc-fitx-match__main{
  border-color:rgba(39,207,169,.38);
  border-top-color:rgba(39,207,169,.78);
  background:
    radial-gradient(760px 280px at 8% -4%, rgba(39,207,169,.095), transparent 62%),
    radial-gradient(620px 240px at 95% 0%, rgba(70,217,255,.055), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.985), rgba(255,255,255,.955));
  box-shadow:
    0 18px 42px rgba(1,33,72,.085),
    0 0 0 1px rgba(255,255,255,.74) inset;
}

/* Badge bon cas : oui au turquoise */
.cc-fitx-match--v2 .cc-fitx-match__badge{
  background:rgba(39,207,169,.14);
  border-color:rgba(39,207,169,.34);
  color:var(--cc-navy);
  box-shadow:none;
}

/* À clarifier : pas rouge, bleu clair neutre */
.cc-fitx-match--v2 .cc-fitx-match__sideCard--soft .cc-fitx-match__sideLabel{
  border-color:rgba(70,217,255,.28);
  background:rgba(70,217,255,.09);
  color:var(--cc-navy);
}

/* Hors fonctionnement : signal de limite, sans rouge agressif */
.cc-fitx-match--v2 .cc-fitx-match__sideCard--limit{
  background:
    radial-gradient(360px 150px at 100% 0%, rgba(137,88,254,.045), transparent 58%),
    rgba(255,255,255,.66);
}

.cc-fitx-match--v2 .cc-fitx-match__sideCard--limit .cc-fitx-match__sideLabel{
  border-color:rgba(1,33,72,.14);
  background:rgba(1,33,72,.045);
  color:var(--cc-ink62);
}















































/* =========================================================
   CityCleaner — PATCH HERO VISUEL 2026
   Objectif :
   - hero plus chaud, plus réel, plus premium
   - photo prioritaire + carte flottante sobre
   - zéro logo Airbnb / Booking
   - zéro jargon : pas de “suivi”, “cadré”, “intégré” dans le hero
   - patch local uniquement sur .cc-hero.cc-hero--visual
   ========================================================= */

.cc-hero.cc-hero--visual{
  --cc-hero-text:#0B1B33;
  --cc-hero-muted:#5C6B84;
  --cc-hero-line:rgba(1,33,72,.10);
  --cc-hero-card:#ffffff;

  position:relative;
  overflow:hidden;
  padding:clamp(44px, 6vw, 92px) 0;
  background:
    radial-gradient(900px 460px at 8% 8%, rgba(70,217,255,.10), transparent 62%),
    radial-gradient(820px 420px at 92% 14%, rgba(39,207,169,.10), transparent 60%),
    #ffffff;
  color:var(--cc-hero-text);
}

.cc-hero.cc-hero--visual::before{
  content:"";
  position:absolute;
  inset:auto -120px -220px auto;
  width:420px;
  height:420px;
  border-radius:999px;
  background:rgba(137,88,254,.055);
  filter:blur(6px);
  pointer-events:none;
}

.cc-hero.cc-hero--visual .cc-hero__inner{
  width:min(1120px, calc(100% - 32px)) !important;
  margin:0 auto !important;
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:
    "copy"
    "media"
    "actions";
  gap:22px;
  align-items:center;
  position:relative;
  z-index:1;
}

.cc-hero.cc-hero--visual .cc-hero__left{
  grid-area:copy;
  max-width:680px;
  animation:ccHeroFadeUp .55s ease both;
}

.cc-hero.cc-hero--visual .cc-hero__kicker{
  margin:0 0 14px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-hero-muted);
  white-space:normal;
}

.cc-hero.cc-hero--visual .cc-hero__title{
  margin:0 0 18px;
  max-width:760px;
  color:var(--cc-navy);
  font-size:clamp(34px, 5vw, 58px);
  line-height:1.04;
  letter-spacing:-.035em;
  font-weight:950;
  text-wrap:balance;
}

.cc-hero.cc-hero--visual .cc-hero__title--accent{
  display:inline-block;
  color:var(--cc-navy);
  position:relative;
}

.cc-hero.cc-hero--visual .cc-hero__title--accent::after{
  content:"";
  display:block;
  width:58%;
  height:8px;
  margin-top:10px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(39,207,169,.50), rgba(70,217,255,.32));
}

.cc-hero.cc-hero--visual .cc-hero__subtitle{
  margin:0;
  max-width:62ch;
  font-size:16.5px;
  line-height:1.68;
  color:rgba(11,27,51,.78);
  font-weight:560;
}

.cc-hero.cc-hero--visual .cc-hero__media{
  grid-area:media;
  margin:0;
  position:relative;
  animation:ccHeroImageIn .68s ease .05s both;
}

.cc-hero.cc-hero--visual .cc-hero__media picture{
  display:block;
}

.cc-hero.cc-hero--visual .cc-hero__image{
  display:block;
  width:100%;
  aspect-ratio:4 / 3.25;
  height:auto;
  object-fit:cover;
  border-radius:24px;
  border:1px solid rgba(1,33,72,.10);
  box-shadow:0 18px 44px rgba(1,33,72,.12);
  background:#F7F9FB;
}

.cc-hero.cc-hero--visual .cc-hero__caption{
  margin-top:10px;
  color:rgba(1,33,72,.58);
  font-size:12.5px;
  line-height:1.45;
  font-weight:650;
}

.cc-hero.cc-hero--visual .cc-hero__floatCard{
  position:absolute;
  left:16px;
  bottom:42px;
  max-width:min(86%, 320px);
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(1,33,72,.10);
  box-shadow:0 14px 34px rgba(1,33,72,.14);
  backdrop-filter:blur(10px);
  color:var(--cc-navy);
  font-size:13.5px;
  line-height:1.25;
  font-weight:850;
  animation:ccHeroFloat 5.5s ease-in-out infinite;
}

.cc-hero.cc-hero--visual .cc-hero__floatIco{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:inline-grid;
  place-items:center;
  border-radius:12px;
  background:rgba(39,207,169,.12);
  border:1px solid rgba(39,207,169,.22);
}

.cc-hero.cc-hero--visual .cc-hero__floatIco svg{
  width:18px;
  height:18px;
  stroke:var(--cc-navy);
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-hero.cc-hero--visual .cc-hero__actions{
  grid-area:actions;
  display:grid;
  gap:18px;
  max-width:660px;
  animation:ccHeroFadeUp .62s ease .08s both;
}

.cc-hero.cc-hero--visual .cc-hero__chips{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.cc-hero.cc-hero--visual .cc-hero__chips li{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(1,33,72,.10);
  color:rgba(1,33,72,.72);
  font-size:13px;
  line-height:1.2;
  font-weight:820;
  box-shadow:0 8px 18px rgba(1,33,72,.045);
}

.cc-hero.cc-hero--visual .cc-hero__ctaRow{
  display:grid;
  gap:10px;
  max-width:520px;
}

.cc-hero.cc-hero--visual .cc-hero__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:56px;
  padding:16px 18px;
  border-radius:16px;
  text-decoration:none !important;
  font-weight:900;
  color:#fff !important;
  background:linear-gradient(90deg, var(--cc-navy), #06306A);
  border:1px solid rgba(1,33,72,.15);
  box-shadow:0 10px 24px rgba(1,33,72,.12);
  text-align:center;
  transition:transform .16s ease, box-shadow .16s ease;
}

.cc-hero.cc-hero--visual .cc-hero__cta:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(1,33,72,.16);
}

.cc-hero.cc-hero--visual .cc-hero__cta:focus-visible{
  outline:3px solid rgba(70,217,255,.55);
  outline-offset:4px;
}

.cc-hero.cc-hero--visual .cc-hero__ctaIco{
  display:inline-flex;
  width:18px;
  height:18px;
  flex:0 0 18px;
}

.cc-hero.cc-hero--visual .cc-hero__ctaIco svg{
  display:block;
  width:18px;
  height:18px;
  color:#fff;
}

.cc-hero.cc-hero--visual .cc-hero__micro{
  margin:0;
  color:rgba(1,33,72,.58);
  font-size:12.5px;
  line-height:1.45;
  font-weight:650;
}

/* Desktop */
@media (min-width:900px){
  .cc-hero.cc-hero--visual .cc-hero__inner{
    grid-template-columns:minmax(0, 1.04fr) minmax(360px, .86fr);
    grid-template-areas:
      "copy media"
      "actions media";
    gap:20px clamp(34px, 5vw, 64px);
    align-items:center;
  }

  .cc-hero.cc-hero--visual .cc-hero__media{
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .cc-hero.cc-hero--visual .cc-hero__image{
    min-height:520px;
    aspect-ratio:4 / 4.55;
  }
}

/* Mobile */
@media (max-width:899px){
  .cc-hero.cc-hero--visual{
    padding:42px 0 56px;
  }

  .cc-hero.cc-hero--visual .cc-hero__inner{
    gap:20px;
  }

  .cc-hero.cc-hero--visual .cc-hero__title{
    font-size:clamp(32px, 10vw, 44px);
    line-height:1.05;
    max-width:12.5em;
  }

  .cc-hero.cc-hero--visual .cc-hero__subtitle{
    font-size:15.5px;
    line-height:1.62;
  }

  .cc-hero.cc-hero--visual .cc-hero__image{
    border-radius:20px;
    aspect-ratio:4 / 3;
    box-shadow:0 14px 34px rgba(1,33,72,.10);
  }

  .cc-hero.cc-hero--visual .cc-hero__caption{
    display:none;
  }

  .cc-hero.cc-hero--visual .cc-hero__floatCard{
    left:12px;
    right:12px;
    bottom:12px;
    max-width:none;
    padding:11px 12px;
    font-size:13px;
    animation:none;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li{
    width:100%;
    justify-content:center;
    text-align:center;
  }

  .cc-hero.cc-hero--visual .cc-hero__cta{
    width:100%;
  }
}

/* Very small mobile */
@media (max-width:380px){
  .cc-hero.cc-hero--visual .cc-hero__kicker{
    font-size:11px;
    letter-spacing:.08em;
  }

  .cc-hero.cc-hero--visual .cc-hero__floatCard{
    font-size:12.5px;
  }
}

/* Motion */
@keyframes ccHeroFadeUp{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

@keyframes ccHeroImageIn{
  from{ opacity:0; transform:translateY(14px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

@keyframes ccHeroFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-4px); }
}

@media (prefers-reduced-motion: reduce){
  .cc-hero.cc-hero--visual *,
  .cc-hero.cc-hero--visual *::before,
  .cc-hero.cc-hero--visual *::after{
    animation:none !important;
    transition:none !important;
    transform:none !important;
  }
}
/* =========================================================
   CityCleaner — PATCH HERO DIRECTION 1
   Objet : transformer la carte flottante en preuve terrain simple :
   “Le logement est prêt”
   À coller APRÈS les patchs hero existants.
   ========================================================= */

.cc-hero.cc-hero--visual .cc-hero__floatCard{
  gap:11px;
  padding:12px 15px;
  border-radius:17px;
  align-items:center;
}

.cc-hero.cc-hero--visual .cc-hero__floatText{
  display:grid;
  gap:2px;
  min-width:0;
}

.cc-hero.cc-hero--visual .cc-hero__floatMain{
  display:block;
  color:var(--cc-navy);
  font-size:14px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.01em;
}

.cc-hero.cc-hero--visual .cc-hero__floatSub{
  display:block;
  color:rgba(1,33,72,.58);
  font-size:12px;
  line-height:1.25;
  font-weight:700;
}

.cc-hero.cc-hero--visual .cc-hero__floatIco{
  background:rgba(39,207,169,.14);
  border-color:rgba(39,207,169,.26);
}

/* Mobile : carte plus compacte */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard{
    padding:10px 12px;
  }

  .cc-hero.cc-hero--visual .cc-hero__floatMain{
    font-size:13.5px;
  }

  .cc-hero.cc-hero--visual .cc-hero__floatSub{
    font-size:11.5px;
  }
}

/* =========================================================
   CityCleaner — PATCH HERO V3 après screenshot
   À coller APRÈS tous les patchs hero précédents.
   Objectif :
   - forcer la suppression de la légende sous image
   - réduire le CTA desktop
   - resserrer légèrement les chips
   ========================================================= */

@media (min-width:900px){
  .cc-hero.cc-hero--visual .cc-hero__ctaRow{
    justify-items:start !important;
    align-items:start !important;
    max-width:420px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__ctaRow > .cc-hero__cta{
    width:100% !important;
    min-width:0 !important;
    max-width:420px !important;
    justify-self:start !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__micro{
    max-width:420px !important;
  }
}

/* La légende sous image est redondante avec la carte flottante */
.cc-hero.cc-hero--visual .cc-hero__media .cc-hero__caption,
.cc-hero.cc-hero--visual .cc-hero__caption,
.cc-hero__caption{
  display:none !important;
}

/* Chips : un peu moins “pastilles empilées” */
.cc-hero.cc-hero--visual .cc-hero__chips{
  gap:8px !important;
}

.cc-hero.cc-hero--visual .cc-hero__chips li{
  min-height:36px !important;
  padding:8px 12px !important;
}

/* Mobile : CTA pleine largeur conservé */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__ctaRow{
    max-width:none !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__ctaRow > .cc-hero__cta{
    width:100% !important;
    max-width:none !important;
  }
}




/* =========================================================
   CityCleaner — HERO DIRECTION 2
   Carte flottante animée : texte tapé + message envoyé
   Patch local uniquement sur .cc-hero.cc-hero--visual
   ========================================================= */

.cc-hero.cc-hero--visual .cc-hero__floatCard.cc-heroMsg{
  gap:10px !important;
  padding:11px 13px !important;
  border-radius:17px !important;
  align-items:center !important;

  background:rgba(255,255,255,.72) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  box-shadow:0 14px 34px rgba(1,33,72,.13) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);

  color:var(--cc-navy);
}

.cc-hero.cc-hero--visual .cc-heroMsg__ico{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:inline-grid;
  place-items:center;
  border-radius:12px;
  background:rgba(39,207,169,.14);
  border:1px solid rgba(39,207,169,.25);
  color:var(--cc-navy);
}

.cc-hero.cc-hero--visual .cc-heroMsg__ico svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-hero.cc-hero--visual .cc-heroMsg__body{
  display:grid;
  gap:2px;
  min-width:0;
}

.cc-hero.cc-hero--visual .cc-heroMsg__line{
  display:inline-flex;
  align-items:center;
  min-height:17px;
  color:var(--cc-navy);
  font-size:14px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.01em;
  white-space:nowrap;
}

.cc-hero.cc-hero--visual .cc-heroMsg__typed{
  display:inline-block;
  min-width:0;
}

.cc-hero.cc-hero--visual .cc-heroMsg__cursor{
  width:1px;
  height:1em;
  margin-left:3px;
  border-radius:999px;
  background:rgba(1,33,72,.58);
  animation:ccHeroMsgCursor 900ms steps(2, start) infinite;
}

.cc-hero.cc-hero--visual .cc-heroMsg__status{
  color:rgba(1,33,72,.58);
  font-size:12px;
  line-height:1.25;
  font-weight:750;
  opacity:0;
  transform:translateY(2px);
  transition:opacity .28s ease, transform .28s ease;
}

.cc-hero.cc-hero--visual .cc-heroMsg.cc-heroMsg--sent .cc-heroMsg__status{
  opacity:1;
  transform:translateY(0);
}

.cc-hero.cc-hero--visual .cc-heroMsg.cc-heroMsg--sent .cc-heroMsg__cursor{
  opacity:0;
  animation:none;
}

.cc-hero.cc-hero--visual .cc-heroMsg.cc-heroMsg--sent .cc-heroMsg__ico{
  background:rgba(39,207,169,.18);
  border-color:rgba(39,207,169,.32);
}

@keyframes ccHeroMsgCursor{
  0%,45%{ opacity:1; }
  46%,100%{ opacity:0; }
}

/* Mobile : carte encore plus discrète */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-heroMsg{
    padding:10px 11px !important;
    gap:9px !important;
  }

  .cc-hero.cc-hero--visual .cc-heroMsg__line{
    font-size:13.2px;
  }

  .cc-hero.cc-hero--visual .cc-heroMsg__status{
    font-size:11.3px;
  }

  .cc-hero.cc-hero--visual .cc-heroMsg__ico{
    width:26px;
    height:26px;
    flex-basis:26px;
  }

  .cc-hero.cc-hero--visual .cc-heroMsg__ico svg{
    width:17px;
    height:17px;
  }
}

/* Accessibilité : si réduction de mouvement, aucun effet de frappe */
@media (prefers-reduced-motion: reduce){
  .cc-hero.cc-hero--visual .cc-heroMsg__cursor{
    display:none !important;
  }

  .cc-hero.cc-hero--visual .cc-heroMsg__status{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}



/* =========================================================
   CityCleaner — HERO DIRECTION 2 V2
   Mini-message inspiré WhatsApp, discret, sans logo.
   Photo statique conservée. Animation uniquement dans la carte.
   ========================================================= */

.cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
  left:auto !important;
  right:clamp(18px, 6%, 42px) !important;
  bottom:28px !important;
  max-width:min(84%, 330px) !important;

  display:block !important;
  padding:0 !important;
  border:0 !important;
  border-radius:19px !important;
  background:transparent !important;
  box-shadow:0 16px 38px rgba(1,33,72,.16) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;

  animation:none !important;
  overflow:visible !important;
}

/* État 1 : zone de saisie */
.cc-hero.cc-hero--visual .cc-waMini__compose{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-radius:19px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(255,255,255,.55);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.cc-hero.cc-hero--visual .cc-waMini__input{
  min-width:0;
  width:218px;
  min-height:36px;
  display:flex;
  align-items:center;
  padding:0 13px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(1,33,72,.08);
  color:var(--cc-navy);
  font-size:13.2px;
  line-height:1.1;
  font-weight:850;
  letter-spacing:-.01em;
  white-space:nowrap;
  overflow:hidden;
}

.cc-hero.cc-hero--visual .cc-waMini__typed{
  display:inline-block;
  min-width:0;
}

.cc-hero.cc-hero--visual .cc-waMini__cursor{
  width:1px;
  height:1em;
  margin-left:3px;
  border-radius:999px;
  background:rgba(1,33,72,.52);
  animation:ccWaCursor 850ms steps(2,start) infinite;
}

.cc-hero.cc-hero--visual .cc-waMini__send{
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg, var(--cc-turq), #1FAE92);
  box-shadow:0 8px 18px rgba(39,207,169,.26);
  transform:scale(.94);
  opacity:.82;
  transition:transform .22s ease, opacity .22s ease, box-shadow .22s ease;
}

.cc-hero.cc-hero--visual .cc-waMini__send svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Quand le texte est prêt, le bouton “envoyer” réagit très légèrement */
.cc-hero.cc-hero--visual .cc-waMini.cc-waMini--ready .cc-waMini__send{
  transform:scale(1);
  opacity:1;
  box-shadow:0 10px 22px rgba(39,207,169,.34);
}

/* État 2 : bulle envoyée */
.cc-hero.cc-hero--visual .cc-waMini__sent{
  display:none;
}

.cc-hero.cc-hero--visual .cc-waMini__bubble{
  min-width:238px;
  padding:10px 12px 8px 13px;
  border-radius:16px 16px 6px 16px;
  background:rgba(217,255,239,.84);
  border:1px solid rgba(39,207,169,.24);
  box-shadow:0 14px 32px rgba(1,33,72,.14);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:var(--cc-navy);
}

.cc-hero.cc-hero--visual .cc-waMini__sentText{
  display:block;
  font-size:13.6px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:-.01em;
  white-space:nowrap;
}

.cc-hero.cc-hero--visual .cc-waMini__meta{
  margin-top:3px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:4px;
  color:rgba(1,33,72,.58);
  font-size:10.8px;
  line-height:1;
  font-weight:700;
}

.cc-hero.cc-hero--visual .cc-waMini__checks{
  width:18px;
  height:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#2A96D4;
}

.cc-hero.cc-hero--visual .cc-waMini__checks svg{
  width:18px;
  height:14px;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-hero.cc-hero--visual .cc-waMini.cc-waMini--sent .cc-waMini__compose{
  display:none;
}

.cc-hero.cc-hero--visual .cc-waMini.cc-waMini--sent .cc-waMini__sent{
  display:block;
  animation:ccWaSentIn .26s ease both;
}

@keyframes ccWaCursor{
  0%,45%{ opacity:1; }
  46%,100%{ opacity:0; }
}

@keyframes ccWaSentIn{
  from{ opacity:0; transform:translateY(4px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

/* Mobile : placement plus sûr, sans masquer le lit */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    max-width:none !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__compose{
    padding:7px;
  }

  .cc-hero.cc-hero--visual .cc-waMini__input{
    width:100%;
    min-height:34px;
    font-size:12.8px;
    padding:0 12px;
  }

  .cc-hero.cc-hero--visual .cc-waMini__send{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .cc-hero.cc-hero--visual .cc-waMini__bubble{
    min-width:0;
    width:max-content;
    max-width:100%;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sentText{
    font-size:13px;
  }
}

/* Très petit mobile */
@media (max-width:380px){
  .cc-hero.cc-hero--visual .cc-waMini__input{
    font-size:12.3px;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sentText{
    font-size:12.7px;
  }
}

/* Accessibilité : réduction de mouvement = état final direct */
@media (prefers-reduced-motion: reduce){
  .cc-hero.cc-hero--visual .cc-waMini__cursor{
    display:none !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini.cc-waMini--sent .cc-waMini__sent{
    animation:none !important;
  }
}



/* =========================================================
   CityCleaner — HERO Direction 2 V2.1
   À coller APRÈS le patch Direction 2 V2.
   Objectif :
   - réduire l'effet “gadget WhatsApp”
   - rendre la bulle envoyée plus discrète
   - remonter légèrement la carte
   - conserver la photo dominante
   ========================================================= */

@media (min-width:900px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    right:clamp(22px, 5.2%, 38px) !important;
    bottom:34px !important;
    max-width:min(80%, 312px) !important;
  }
}

/* Composeur : un peu moins blanc / moins app */
.cc-hero.cc-hero--visual .cc-waMini__compose{
  background:rgba(255,255,255,.54) !important;
  border-color:rgba(255,255,255,.46) !important;
  box-shadow:0 13px 30px rgba(1,33,72,.12) !important;
}

.cc-hero.cc-hero--visual .cc-waMini__input{
  width:205px !important;
  min-height:34px !important;
  background:rgba(255,255,255,.74) !important;
  font-size:12.9px !important;
  font-weight:820 !important;
}

.cc-hero.cc-hero--visual .cc-waMini__send{
  width:34px !important;
  height:34px !important;
  flex-basis:34px !important;
  box-shadow:0 7px 16px rgba(39,207,169,.22) !important;
}

/* Bulle envoyée : moins verte, plus premium, moins “app” */
.cc-hero.cc-hero--visual .cc-waMini__bubble{
  min-width:222px !important;
  padding:9px 11px 7px 12px !important;
  background:rgba(238,255,248,.76) !important;
  border-color:rgba(39,207,169,.18) !important;
  box-shadow:0 13px 30px rgba(1,33,72,.12) !important;
}

.cc-hero.cc-hero--visual .cc-waMini__sentText{
  font-size:13.1px !important;
  font-weight:920 !important;
}

.cc-hero.cc-hero--visual .cc-waMini__meta{
  font-size:10.4px !important;
  color:rgba(1,33,72,.52) !important;
}

.cc-hero.cc-hero--visual .cc-waMini__checks{
  color:#2389C8 !important;
}

/* Mobile : garder lisible mais éviter l’effet bandeau trop large */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    left:14px !important;
    right:14px !important;
    bottom:14px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__compose{
    padding:7px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__input{
    width:100% !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__bubble{
    width:auto !important;
    max-width:92% !important;
  }
}


/* =========================================================
   CityCleaner — HERO CHIPS CLEANUP
   Objectif :
   - supprimer l'effet “pastilles brouillon”
   - transformer les 3 chips en ligne de preuve premium
   - garder la lecture mobile propre
   ========================================================= */

.cc-hero.cc-hero--visual .cc-hero__chips{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  max-width:560px !important;
}

.cc-hero.cc-hero--visual .cc-hero__chips li{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;

  width:auto !important;
  min-height:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;

  color:rgba(1,33,72,.68) !important;
  font-size:13px !important;
  line-height:1.35 !important;
  font-weight:850 !important;
  letter-spacing:-.005em !important;
  text-align:left !important;
  white-space:nowrap !important;
}

.cc-hero.cc-hero--visual .cc-hero__chips li + li::before{
  content:"";
  width:4px;
  height:4px;
  flex:0 0 4px;
  margin:0 10px;
  border-radius:999px;
  background:rgba(39,207,169,.78);
  box-shadow:0 0 0 3px rgba(39,207,169,.10);
}

/* Mobile : si la ligne manque d’espace, on garde un rendu propre */
@media (max-width:560px){
  .cc-hero.cc-hero--visual .cc-hero__chips{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:6px !important;
    max-width:100% !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li{
    white-space:normal !important;
    font-size:13px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li + li::before{
    display:none !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li::before{
    content:"";
    width:5px;
    height:5px;
    flex:0 0 5px;
    margin-right:9px;
    border-radius:999px;
    background:rgba(39,207,169,.78);
    box-shadow:0 0 0 3px rgba(39,207,169,.10);
  }
}

.cc-hero.cc-hero--visual .cc-hero__chips li{
  font-weight:800 !important;
  color:rgba(1,33,72,.64) !important;
}

.cc-hero.cc-hero--visual .cc-hero__chips li + li::before{
  margin:0 9px !important;
  background:rgba(39,207,169,.68) !important;
  box-shadow:0 0 0 3px rgba(39,207,169,.08) !important;
}


/* =========================================================
   CityCleaner — HERO MOBILE FIX V4
   À coller après tous les patchs hero.
   ========================================================= */

/* 1) Mini WhatsApp mobile : plus compact, ancré à droite, moins intrusif */
@media (max-width:899px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    left:auto !important;
    right:12px !important;
    bottom:12px !important;
    max-width:min(74vw, 290px) !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__compose{
    width:min(74vw, 290px) !important;
    margin-left:auto !important;
    padding:6px !important;
    border-radius:17px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__input{
    width:calc(100% - 40px) !important;
    min-height:32px !important;
    padding:0 11px !important;
    font-size:12.4px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__send{
    width:32px !important;
    height:32px !important;
    flex-basis:32px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__send svg{
    width:16px !important;
    height:16px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sent{
    text-align:right !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__bubble{
    width:auto !important;
    min-width:0 !important;
    max-width:min(74vw, 290px) !important;
    margin-left:auto !important;
    padding:8px 10px 7px 11px !important;
    border-radius:15px 15px 6px 15px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sentText{
    font-size:12.8px !important;
    line-height:1.18 !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__meta{
    font-size:10px !important;
  }
}

/* 2) Chips mobile : corrige le bug où seule la première ligne a une puce */
@media (max-width:560px){
  .cc-hero.cc-hero--visual .cc-hero__chips{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:7px !important;
    max-width:100% !important;
    margin-top:2px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li,
  .cc-hero.cc-hero--visual .cc-hero__chips li + li{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:0 !important;
    white-space:normal !important;
    color:rgba(1,33,72,.66) !important;
    font-size:13px !important;
    line-height:1.35 !important;
    font-weight:800 !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips li::before,
  .cc-hero.cc-hero--visual .cc-hero__chips li + li::before{
    content:"" !important;
    display:block !important;
    width:5px !important;
    height:5px !important;
    flex:0 0 5px !important;
    margin:0 9px 0 0 !important;
    border-radius:999px !important;
    background:rgba(39,207,169,.76) !important;
    box-shadow:0 0 0 3px rgba(39,207,169,.10) !important;
  }
}

/* 3) FAB WhatsApp : éviter le doublon avec le CTA hero sur mobile */
@media (max-width:899px){
  .site-main > .cc-hero.cc-hero--visual ~ .cc-fab,
  main > .cc-hero.cc-hero--visual ~ .cc-fab,
  body:has(.cc-hero.cc-hero--visual) .cc-fab{
    display:none !important;
  }
}


/* =========================================================
   CityCleaner — HERO MOBILE FINAL FIX V5
   À coller après tous les patchs hero.
   ========================================================= */

@media (max-width:899px){

  /* Hero : moins de blanc inutile en bas */
  .cc-hero.cc-hero--visual{
    padding-top:34px !important;
    padding-bottom:34px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__inner{
    gap:18px !important;
  }

  /* Image : respiration stable */
  .cc-hero.cc-hero--visual .cc-hero__media{
    margin-top:4px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__image{
    aspect-ratio:4 / 3.05 !important;
    border-radius:20px !important;
  }

  /* Mini WhatsApp : plus petite, moins intrusive */
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    left:auto !important;
    right:14px !important;
    bottom:14px !important;
    max-width:min(66vw, 254px) !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__compose{
    width:min(66vw, 254px) !important;
    padding:6px !important;
    border-radius:16px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__input{
    width:calc(100% - 38px) !important;
    min-height:31px !important;
    padding:0 10px !important;
    font-size:12px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__send{
    width:31px !important;
    height:31px !important;
    flex-basis:31px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__bubble{
    max-width:min(66vw, 254px) !important;
    padding:8px 10px 7px 11px !important;
    border-radius:15px 15px 6px 15px !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sentText{
    font-size:12.4px !important;
    line-height:1.16 !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__meta{
    margin-top:2px !important;
    font-size:9.8px !important;
  }

  /* Actions : remonter légèrement la ligne de preuves et le CTA */
  .cc-hero.cc-hero--visual .cc-hero__actions{
    gap:16px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__chips{
    margin-top:0 !important;
    gap:7px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__ctaRow{
    gap:9px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__cta{
    min-height:58px !important;
    border-radius:17px !important;
  }

  .cc-hero.cc-hero--visual .cc-hero__micro{
    max-width:34ch !important;
    font-size:12.2px !important;
    line-height:1.45 !important;
  }

  /* Éviter qu’un FAB WhatsApp flotte devant le CTA */
  .cc-fab,
  .cc-whatsapp-fab,
  .whatsapp-float,
  .wa-float,
  a[href*="wa.me"].cc-fab,
  a[href*="api.whatsapp.com"].cc-fab{
    display:none !important;
  }
}

/* Très petit mobile : bulle encore plus compacte */
@media (max-width:380px){
  .cc-hero.cc-hero--visual .cc-hero__floatCard.cc-waMini{
    max-width:min(68vw, 238px) !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__bubble,
  .cc-hero.cc-hero--visual .cc-waMini__compose{
    max-width:min(68vw, 238px) !important;
    width:min(68vw, 238px) !important;
  }

  .cc-hero.cc-hero--visual .cc-waMini__sentText{
    font-size:12.1px !important;
  }
}




















/* =========================================================
   CityCleaner — Patch section compatibilité
   Section : cc-fitx / cc-patch-compat-v1
   Objectif : carte dominante “Le bon cas” + “À clarifier” + hors périmètre
   À coller sous le CSS additionnel existant.
   ========================================================= */

.cc-patch-compat-v1 .cc-fitx__kicker{
  margin:0 0 14px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
  white-space:nowrap;
}

.cc-patch-compat-v1 .cc-fitx__header{
  max-width:760px;
  margin-bottom:var(--cc-32);
}

.cc-patch-compat-v1 .cc-fitx__decision{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-16);
  align-items:stretch;
}

.cc-patch-compat-v1 .cc-fitxCard{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.92);
}

.cc-patch-compat-v1 .cc-fitxCard--good{
  border-color:rgba(39,207,169,.34);
  box-shadow:0 14px 34px rgba(1,33,72,.075);
}

.cc-patch-compat-v1 .cc-fitxCard--good::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg, rgba(39,207,169,.80), rgba(70,217,255,.52));
}

.cc-patch-compat-v1 .cc-fitxCard--check{
  border-color:rgba(1,33,72,.10);
  box-shadow:0 10px 26px rgba(1,33,72,.055);
}

.cc-patch-compat-v1 .cc-fitxCard--check .cc-fitxCard__ico{
  background:rgba(70,217,255,.09);
  border-color:rgba(70,217,255,.18);
}

.cc-patch-compat-v1 .cc-fitxCard__intro{
  margin:0 0 var(--cc-16);
  font-size:15px;
  line-height:1.6;
  color:var(--cc-ink78);
  font-weight:700;
  max-width:58ch;
}

.cc-patch-compat-v1 .cc-fitxCard__li span:last-child{
  min-width:0;
}

.cc-patch-compat-v1 .cc-fitxCard--check .cc-fitxCard__miniIco svg{
  opacity:.72;
}

.cc-patch-compat-v1 .cc-fitx__out{
  margin-top:var(--cc-16);
  display:grid;
  grid-template-columns:32px 1fr;
  gap:12px;
  align-items:start;
  padding:18px 20px;
  border:1px solid rgba(1,33,72,.10);
  border-radius:var(--cc-r18);
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 26px rgba(1,33,72,.045);
}

.cc-patch-compat-v1 .cc-fitx__outIco{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(1,33,72,.045);
  border:1px solid rgba(1,33,72,.10);
  color:var(--cc-navy);
}

.cc-patch-compat-v1 .cc-fitx__outIco svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.cc-patch-compat-v1 .cc-fitx__outTitle{
  margin:0 0 4px;
  color:var(--cc-navy);
  font-size:14px;
  font-weight:900;
  line-height:1.25;
}

.cc-patch-compat-v1 .cc-fitx__outText{
  margin:0;
  max-width:76ch;
  color:var(--cc-ink78);
  font-size:14px;
  font-weight:650;
  line-height:1.55;
}

.cc-patch-compat-v1 .cc-fitx__footnote{
  margin:var(--cc-16) 0 0;
  max-width:72ch;
  color:var(--cc-ink62);
  font-size:14px;
  line-height:1.6;
  font-weight:650;
}

@media (min-width:900px){
  .cc-patch-compat-v1 .cc-fitx__decision{
    grid-template-columns:1.08fr .92fr;
    gap:var(--cc-16);
  }

  .cc-patch-compat-v1 .cc-fitxCard--good .cc-fitxCard__title{
    max-width:30ch;
  }
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitx__header{
    margin-bottom:var(--cc-24);
  }

  .cc-patch-compat-v1 .cc-fitx__decision{
    gap:12px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__top{
    padding:20px 18px 14px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__body{
    padding:16px 18px 18px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__title{
    font-size:17px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__li{
    gap:10px;
    font-size:14px;
    line-height:1.5;
  }

  .cc-patch-compat-v1 .cc-fitx__out{
    grid-template-columns:28px 1fr;
    padding:16px;
  }

  .cc-patch-compat-v1 .cc-fitx__outIco{
    width:28px;
    height:28px;
  }
}

/* =========================================================
   CityCleaner — Micro-ajustement compatibilité V1.1
   Objectif : corriger le rendu H2 + alléger le hors périmètre
   ========================================================= */

.cc-patch-compat-v1 .cc-fitx__title{
  hyphens:none;
  overflow-wrap:normal;
}

.cc-patch-compat-v1 .cc-fitx__out{
  padding:16px 18px;
  background:rgba(255,255,255,.58);
  box-shadow:0 8px 22px rgba(1,33,72,.032);
  border-color:rgba(1,33,72,.085);
}

.cc-patch-compat-v1 .cc-fitx__outIco{
  background:rgba(1,33,72,.035);
  border-color:rgba(1,33,72,.085);
}

.cc-patch-compat-v1 .cc-fitx__footnote{
  margin-top:14px;
  color:rgba(1,33,72,.56);
}



/* =========================================================
   CityCleaner — Compatibilité V1.2
   Objectif : section plus compacte après réduction du texte
   ========================================================= */

.cc-patch-compat-v1 .cc-fitxCard__top{
  padding:20px 22px 14px;
}

.cc-patch-compat-v1 .cc-fitxCard__body{
  padding:18px 22px 20px;
}

.cc-patch-compat-v1 .cc-fitxCard__list{
  gap:12px;
}

.cc-patch-compat-v1 .cc-fitxCard__li{
  line-height:1.45;
}

.cc-patch-compat-v1 .cc-fitx__out{
  margin-top:14px;
  padding:14px 18px;
}

.cc-patch-compat-v1 .cc-fitx__outText{
  line-height:1.45;
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitxCard__top{
    padding:18px 18px 13px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__body{
    padding:16px 18px 18px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__list{
    gap:10px;
  }

  .cc-patch-compat-v1 .cc-fitx__out{
    padding:14px 16px;
  }
}



/* =========================================================
   CityCleaner — Compatibilité mobile V1.4
   Objectif : compacter la section sur mobile sans changer le desktop
   ========================================================= */

@media (max-width:640px){

  .cc-patch-compat-v1 .cc-fitx__inner{
    padding-top:64px !important;
    padding-bottom:64px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__header{
    margin-bottom:26px;
  }

  .cc-patch-compat-v1 .cc-fitx__kicker{
    font-size:12px;
    margin-bottom:12px;
  }

  .cc-patch-compat-v1 .cc-fitx__title{
    font-size:clamp(34px, 9.4vw, 40px);
    line-height:1.08;
    letter-spacing:-.025em;
  }

  .cc-patch-compat-v1 .cc-fitx__lead{
    font-size:17px;
    line-height:1.55;
    max-width:34ch;
  }

  .cc-patch-compat-v1 .cc-fitx__decision{
    gap:14px;
  }

  .cc-patch-compat-v1 .cc-fitxCard{
    border-radius:22px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__top{
    padding:18px 18px 14px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__body{
    padding:16px 18px 18px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__kicker{
    font-size:12px;
    margin-bottom:12px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__head{
    gap:12px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__ico{
    width:40px;
    height:40px;
    flex-basis:40px;
    border-radius:16px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__ico svg{
    width:21px;
    height:21px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__title{
    font-size:22px;
    line-height:1.18;
    letter-spacing:-.015em;
  }

  .cc-patch-compat-v1 .cc-fitxCard__list{
    gap:11px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__li{
    gap:12px;
    font-size:17px;
    line-height:1.42;
  }

  .cc-patch-compat-v1 .cc-fitxCard__miniIco{
    width:22px;
    height:22px;
    flex-basis:22px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__miniIco svg{
    width:19px;
    height:19px;
  }

  .cc-patch-compat-v1 .cc-fitx__out{
    margin-top:14px;
    grid-template-columns:28px 1fr;
    gap:12px;
    padding:14px 16px;
    border-radius:20px;
    background:rgba(255,255,255,.52);
    box-shadow:0 6px 18px rgba(1,33,72,.026);
  }

  .cc-patch-compat-v1 .cc-fitx__outIco{
    width:28px;
    height:28px;
    border-radius:12px;
    background:rgba(70,217,255,.07);
    border-color:rgba(70,217,255,.14);
  }

  .cc-patch-compat-v1 .cc-fitx__outIco svg{
    width:16px;
    height:16px;
  }

  .cc-patch-compat-v1 .cc-fitx__outTitle{
    font-size:16px;
    line-height:1.22;
    margin-bottom:6px;
  }

  .cc-patch-compat-v1 .cc-fitx__outText{
    font-size:15.5px;
    line-height:1.42;
    color:rgba(1,33,72,.72);
  }
}

@media (max-width:380px){
  .cc-patch-compat-v1 .cc-fitx__title{
    font-size:32px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__title{
    font-size:21px;
  }

  .cc-patch-compat-v1 .cc-fitxCard__li{
    font-size:16px;
  }

  .cc-patch-compat-v1 .cc-fitx__outText{
    font-size:15px;
  }
}


/* =========================================================
   CityCleaner — Compatibilité mobile V1.5
   Objectif : réduire fortement la hauteur mobile sans toucher au desktop
   ========================================================= */

@media (max-width:640px){

  .cc-patch-compat-v1 .cc-fitx__inner{
    padding-top:56px !important;
    padding-bottom:56px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__header{
    margin-bottom:22px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__kicker{
    font-size:11px !important;
    margin-bottom:10px !important;
    letter-spacing:.09em !important;
  }

  .cc-patch-compat-v1 .cc-fitx__title{
    font-size:31px !important;
    line-height:1.08 !important;
    letter-spacing:-.028em !important;
    max-width:11ch !important;
  }

  .cc-patch-compat-v1 .cc-fitx__lead{
    font-size:16px !important;
    line-height:1.48 !important;
    max-width:32ch !important;
  }

  .cc-patch-compat-v1 .cc-fitx__decision{
    gap:12px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard{
    border-radius:20px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__top{
    padding:16px 16px 12px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__body{
    padding:14px 16px 16px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__kicker{
    font-size:11px !important;
    margin-bottom:10px !important;
    letter-spacing:.09em !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__head{
    gap:10px !important;
    align-items:flex-start !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__ico{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
    border-radius:14px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__ico svg{
    width:18px !important;
    height:18px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__title{
    font-size:19px !important;
    line-height:1.18 !important;
    letter-spacing:-.015em !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__list{
    gap:9px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__li{
    gap:10px !important;
    font-size:15px !important;
    line-height:1.38 !important;
    font-weight:750 !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__miniIco{
    width:19px !important;
    height:19px !important;
    flex:0 0 19px !important;
    margin-top:1px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__miniIco svg{
    width:17px !important;
    height:17px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__out{
    margin-top:12px !important;
    grid-template-columns:24px 1fr !important;
    gap:10px !important;
    padding:12px 14px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.52) !important;
    box-shadow:0 5px 14px rgba(1,33,72,.024) !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outIco{
    width:24px !important;
    height:24px !important;
    border-radius:10px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outIco svg{
    width:14px !important;
    height:14px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outTitle{
    font-size:14px !important;
    line-height:1.22 !important;
    margin-bottom:5px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outText{
    font-size:13.5px !important;
    line-height:1.38 !important;
    font-weight:700 !important;
    color:rgba(1,33,72,.70) !important;
  }
}

@media (max-width:380px){
  .cc-patch-compat-v1 .cc-fitx__title{
    font-size:29px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__title{
    font-size:18px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard__li{
    font-size:14.5px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outTitle{
    font-size:13.5px !important;
  }

  .cc-patch-compat-v1 .cc-fitx__outText{
    font-size:13px !important;
  }
}


/* =========================================================
   CityCleaner — Compatibilité limite sobre
   Remplace la carte “Ce que CityCleaner ne prend pas en charge”
   ========================================================= */

.cc-patch-compat-v1 .cc-fitx__limit{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid rgba(1,33,72,.10);
  max-width:78ch;
  color:rgba(1,33,72,.66);
  font-size:14px;
  line-height:1.55;
  font-weight:650;
}

.cc-patch-compat-v1 .cc-fitx__limit strong{
  color:var(--cc-navy);
  font-weight:900;
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitx__limit{
    margin-top:14px;
    padding-top:12px;
    font-size:13.5px;
    line-height:1.45;
  }
}


/* =========================================================
   CityCleaner — Compatibilité limite sobre V1.6
   Objectif : note discrète, sans troisième carte mobile
   ========================================================= */

.cc-patch-compat-v1 .cc-fitx__limit{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid rgba(1,33,72,.10);
  max-width:78ch;
  color:rgba(1,33,72,.66);
  font-size:14px;
  line-height:1.55;
  font-weight:650;
}

.cc-patch-compat-v1 .cc-fitx__limit strong{
  color:var(--cc-navy);
  font-weight:900;
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitx__limit{
    margin-top:14px;
    padding-top:12px;
    font-size:13.5px;
    line-height:1.45;
  }
}



/* =========================================================
   CityCleaner — Compatibilité limite finale
   Objectif : supprimer l’effet troisième carte
   ========================================================= */

.cc-patch-compat-v1 .cc-fitx__limit{
  margin:14px 0 0;
  padding-top:12px;
  border-top:1px solid rgba(1,33,72,.10);
  max-width:78ch;
  color:rgba(1,33,72,.66);
  font-size:14px;
  line-height:1.5;
  font-weight:650;
}

.cc-patch-compat-v1 .cc-fitx__limit strong{
  color:var(--cc-navy);
  font-weight:900;
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitx__limit{
    margin-top:12px;
    padding-top:10px;
    font-size:13px;
    line-height:1.42;
  }
}


.cc-patch-compat-v1 .cc-fitx__limit{
  margin-top:18px;
  font-size:13px;
  line-height:1.45;
  color:rgba(1,33,72,.64);
  font-weight:650;
}

.cc-patch-compat-v1 .cc-fitx__limit strong{
  color:var(--cc-navy);
  font-weight:900;
}
























































/* =========================================================
   PATCH — CityCleaner Homepage
   Section tarif sans prix visibles
   Cible : .cc-plans.cc-plans--qualified uniquement
   À coller sous le CSS additionnel actuel
   ========================================================= */

.cc-plans.cc-plans--qualified .cc-plans__lead{
  max-width: 68ch;
}

/* Neutralise l'ancien comportement mobile par radios uniquement
   sur la nouvelle variante sans prix. */
.cc-plans.cc-plans--qualified .cc-plans__card{
  display:block !important;
}

.cc-plans.cc-plans--qualified .cc-plans__grid{
  margin-top: var(--cc-24);
  display:grid !important;
  grid-template-columns: 1fr !important;
  gap: var(--cc-16);
  align-items:stretch;
}

.cc-plans.cc-plans--qualified .cc-plans__grid--qualified{
  grid-template-columns: 1fr !important;
}

.cc-plans.cc-plans--qualified .cc-plans__trustline{
  margin-top: var(--cc-24);
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  align-items:center;
}

.cc-plans.cc-plans--qualified .cc-plans__trustline span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding: 7px 12px;
  border-radius: var(--cc-r999);
  border: 1px solid rgba(1,33,72,.10);
  background: rgba(255,255,255,.72);
  color: rgba(1,33,72,.68);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  line-height:1.2;
  white-space:nowrap;
}

.cc-plans.cc-plans--qualified .cc-plans__card--qualified{
  box-shadow: var(--cc-shadow);
  border: 1px solid rgba(1,33,72,.10);
  border-radius: var(--cc-r18);
  overflow:hidden;
  background:#fff;
}

.cc-plans.cc-plans--qualified .cc-plans__cardTop{
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding: 24px 22px 22px;
  background: #fff;
}

.cc-plans.cc-plans--qualified .cc-plans__topmeta{
  color: rgba(1,33,72,.55) !important;
  font-size: 12px;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
}

.cc-plans.cc-plans--qualified .cc-plans__divider{
  width:100% !important;
  margin: 10px 0 16px !important;
  background: rgba(1,33,72,.12) !important;
}

.cc-plans.cc-plans--qualified .cc-plans__planKicker{
  margin:0 0 10px;
  color: rgba(1,33,72,.66);
}

.cc-plans.cc-plans--qualified .cc-plans__cardTitle{
  margin:0 0 10px;
  color: var(--cc-navy);
  font-size: 18px;
  line-height:1.25;
  font-weight: 950;
  letter-spacing: -.01em;
}

.cc-plans.cc-plans--qualified .cc-plans__cardText{
  margin:0;
  color: rgba(1,33,72,.72);
  font-size: 14px;
  line-height:1.58;
  font-weight: 650;
}

.cc-plans.cc-plans--qualified .cc-plans__factors{
  margin-top: var(--cc-20);
  padding: 22px;
  border-radius: var(--cc-r18);
  border: 1px solid rgba(1,33,72,.10);
  background:
    radial-gradient(620px 260px at 12% 0%, rgba(39,207,169,.08), transparent 60%),
    #fff;
  box-shadow: 0 10px 26px rgba(1,33,72,.045);
}

.cc-plans.cc-plans--qualified .cc-plans__factorsHead{
  display:flex;
  gap: 12px;
  align-items:flex-start;
}

.cc-plans.cc-plans--qualified .cc-plans__factorsIco{
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 12px;
  background: rgba(39,207,169,.10);
  border: 1px solid rgba(39,207,169,.18);
  color: var(--cc-navy);
  margin-top: 1px;
}

.cc-plans.cc-plans--qualified .cc-plans__factorsIco svg{
  width:18px;
  height:18px;
  stroke: currentColor;
  fill:none;
  stroke-width: 2;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect: non-scaling-stroke;
}

.cc-plans.cc-plans--qualified .cc-plans__factorsTitle{
  margin:0 0 6px;
  color: var(--cc-navy);
  font-size: 18px;
  line-height:1.25;
  font-weight: 950;
}

.cc-plans.cc-plans--qualified .cc-plans__factorsLead{
  margin:0;
  color: rgba(1,33,72,.68);
  font-size: 14px;
  line-height:1.55;
  font-weight:650;
}

.cc-plans.cc-plans--qualified .cc-plans__factorList{
  list-style:none;
  margin: 18px 0 0;
  padding: 0;
  display:grid;
  gap: 10px;
}

.cc-plans.cc-plans--qualified .cc-plans__factorList li{
  position:relative;
  padding-left: 16px;
  color: rgba(1,33,72,.74);
  font-size: 14px;
  line-height:1.48;
  font-weight: 700;
}

.cc-plans.cc-plans--qualified .cc-plans__factorList li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:6px;
  height:6px;
  border-radius:999px;
  background: rgba(39,207,169,.62);
}

.cc-plans.cc-plans--qualified .cc-plans__billingNote{
  margin-top: var(--cc-20);
  padding-top: var(--cc-16);
  border-top: 1px solid rgba(1,33,72,.10);
  max-width: 820px;
  color: rgba(1,33,72,.70);
  font-size: 14px;
  line-height:1.6;
  font-weight:650;
}

.cc-plans.cc-plans--qualified .cc-plans__billingNote strong{
  color: var(--cc-navy);
  font-weight: 950;
}

.cc-plans.cc-plans--qualified .cc-plans__ctaSolo{
  margin-top: var(--cc-24);
}

@media (min-width:900px){
  .cc-plans.cc-plans--qualified .cc-plans__grid,
  .cc-plans.cc-plans--qualified .cc-plans__grid--qualified{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .cc-plans.cc-plans--qualified .cc-plans__factors{
    padding: 24px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__factorList{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 18px;
    row-gap: 12px;
  }
}

@media (max-width:899px){
  .cc-plans.cc-plans--qualified .cc-plans__trustline{
    display:grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__trustline span{
    width:100%;
    justify-content:flex-start;
    white-space:normal;
  }

  .cc-plans.cc-plans--qualified .cc-plans__cardTop{
    padding: 22px 18px 20px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__factors{
    padding: 20px 18px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__factorsHead{
    gap: 10px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__factorsTitle{
    font-size: 17px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__ctaBtn{
    width:100%;
  }
}

@media (max-width:380px){
  .cc-plans.cc-plans--qualified .cc-plans__cardTitle,
  .cc-plans.cc-plans--qualified .cc-plans__factorsTitle{
    font-size:16px;
  }

  .cc-plans.cc-plans--qualified .cc-plans__cardText,
  .cc-plans.cc-plans--qualified .cc-plans__factorsLead,
  .cc-plans.cc-plans--qualified .cc-plans__factorList li,
  .cc-plans.cc-plans--qualified .cc-plans__billingNote{
    font-size:13px;
  }
}



/* =========================================================
   CityCleaner — PATCH SECTION TARIF SANS PRIX
   Direction D : tarif cadré avant démarrage
   À coller tout en bas du CSS additionnel actuel.
   Scope : .cc-plans.cc-plans--framed uniquement.
   ========================================================= */

.cc-plans.cc-plans--framed{
  background:var(--cc-bg);
  color:var(--cc-navy);
}

/* Neutralisation locale de l'ancien comportement pricing/tabs */
.cc-plans.cc-plans--framed .cc-plans__radio,
.cc-plans.cc-plans--framed .cc-plans__pick,
.cc-plans.cc-plans--framed .cc-plans__grid,
.cc-plans.cc-plans--framed .cc-plans__card,
.cc-plans.cc-plans--framed .cc-plans__details{
  display:none !important;
}

.cc-plans.cc-plans--framed .cc-plansFrame__layout{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-24);
  align-items:stretch;
}

.cc-plans.cc-plans--framed .cc-plansFrame__main{
  min-width:0;
}

.cc-plans.cc-plans--framed .cc-plansFrame__kicker{
  margin:0 0 14px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
}

.cc-plans.cc-plans--framed .cc-plansFrame__title{
  margin:0 0 var(--cc-16);
  max-width:760px;
  font-weight:950;
  font-size:clamp(26px, 4.2vw, 40px);
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--cc-navy);
  text-wrap:balance;
}

.cc-plans.cc-plans--framed .cc-plansFrame__lead{
  margin:0;
  max-width:66ch;
  font-size:16px;
  line-height:1.65;
  font-weight:650;
  color:var(--cc-ink78);
  text-wrap:pretty;
}

.cc-plans.cc-plans--framed .cc-plansFrame__ctaBox{
  margin-top:var(--cc-28);
  display:grid;
  gap:10px;
  max-width:520px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:fit-content;
  min-height:56px;
  padding:16px 18px;
  border-radius:var(--cc-r16);
  text-decoration:none !important;
  font-weight:900;
  color:#fff !important;
  background:linear-gradient(90deg, var(--cc-navy), #06306A);
  border:1px solid rgba(1,33,72,.15);
  box-shadow:var(--cc-shadow-cta);
  text-align:center;
  transition:transform 140ms ease, box-shadow 140ms ease;
}

.cc-plans.cc-plans--framed .cc-plansFrame__cta:hover{
  transform:translateY(-1px);
  box-shadow:var(--cc-shadow-ctaHover);
}

.cc-plans.cc-plans--framed .cc-plansFrame__ctaIco{
  display:inline-flex;
  width:18px;
  height:18px;
  flex:0 0 18px;
  color:#fff;
}

.cc-plans.cc-plans--framed .cc-plansFrame__ctaIco svg{
  width:18px;
  height:18px;
  display:block;
}

.cc-plans.cc-plans--framed .cc-plansFrame__micro{
  margin:0;
  font-size:12px;
  line-height:1.45;
  font-weight:650;
  color:var(--cc-ink62);
}

.cc-plans.cc-plans--framed .cc-plansFrame__card{
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  box-shadow:var(--cc-shadow-card);
  overflow:hidden;
}

.cc-plans.cc-plans--framed .cc-plansFrame__cardTop{
  padding:22px 20px 16px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  border-bottom:1px solid var(--cc-ink10);
  background:
    radial-gradient(560px 220px at 12% 0%, rgba(70,217,255,.08), transparent 60%),
    radial-gradient(460px 200px at 90% 0%, rgba(39,207,169,.08), transparent 58%),
    var(--cc-bgSoft);
}

.cc-plans.cc-plans--framed .cc-plansFrame__cardIco{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(39,207,169,.10);
  border:1px solid rgba(39,207,169,.18);
  color:var(--cc-navy);
}

.cc-plans.cc-plans--framed .cc-plansFrame__cardIco svg{
  width:19px;
  height:19px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.cc-plans.cc-plans--framed .cc-plansFrame__cardTitle{
  margin:0;
  font-size:18px;
  line-height:1.25;
  font-weight:900;
  color:var(--cc-navy);
}

.cc-plans.cc-plans--framed .cc-plansFrame__list{
  list-style:none;
  margin:0;
  padding:18px 20px 20px;
  display:grid;
  gap:13px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:15px;
  line-height:1.45;
  font-weight:700;
  color:var(--cc-ink78);
}

.cc-plans.cc-plans--framed .cc-plansFrame__check{
  width:22px;
  height:22px;
  flex:0 0 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:1px;
  color:var(--cc-navy);
  opacity:.92;
}

.cc-plans.cc-plans--framed .cc-plansFrame__check svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.cc-plans.cc-plans--framed .cc-plansFrame__proof{
  margin-top:var(--cc-24);
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__proofItem{
  min-height:52px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r14);
  background:rgba(1,33,72,.018);
  color:var(--cc-ink78);
  font-size:14px;
  line-height:1.35;
  font-weight:850;
}

.cc-plans.cc-plans--framed .cc-plansFrame__proofDot{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:999px;
  background:var(--cc-turq);
  box-shadow:0 0 0 4px rgba(39,207,169,.10);
}

.cc-plans.cc-plans--framed .cc-plansFrame__note{
  margin-top:var(--cc-20);
  padding-top:var(--cc-16);
  border-top:1px solid var(--cc-ink10);
  max-width:760px;
  font-size:14px;
  line-height:1.6;
  font-weight:700;
  color:var(--cc-ink62);
}

@media (min-width:900px){
  .cc-plans.cc-plans--framed .cc-plansFrame__layout{
    grid-template-columns:minmax(0, 1.04fr) minmax(360px, .96fr);
    gap:var(--cc-40);
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__main{
    align-self:center;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__proof{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    margin-top:var(--cc-32);
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__note{
    margin-top:var(--cc-24);
  }
}

@media (max-width:899px){
  .cc-plans.cc-plans--framed .cc-plansFrame__cta{
    width:100%;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__ctaBox{
    max-width:none;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__cardTop{
    padding:20px 18px 14px;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__list{
    padding:16px 18px 18px;
    gap:12px;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__proofItem{
    min-height:auto;
  }
}

@media (max-width:420px){
  .cc-plans.cc-plans--framed .cc-plansFrame__title{
    font-size:clamp(25px, 7vw, 32px);
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__lead{
    font-size:15.5px;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__list li{
    font-size:14px;
  }
}

.cc-plans.cc-plans--framed .cc-plansFrame__cta:focus-visible{
  outline:3px solid rgba(70,217,255,.55);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  .cc-plans.cc-plans--framed .cc-plansFrame__cta{
    transition:none !important;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__cta:hover{
    transform:none !important;
  }
}

/* =========================================================
   CityCleaner — PATCH FINITION SECTION TARIF CADRÉ
   Objectif : réduire l'effet institutionnel, supprimer le vide
   dans la carte droite, alléger les preuves et aligner la note.
   À coller tout en bas du CSS additionnel.
   Scope : .cc-plans.cc-plans--framed uniquement.
   ========================================================= */

/* 1) La carte droite ne doit pas s'étirer sur toute la hauteur du bloc gauche */
@media (min-width:900px){
  .cc-plans.cc-plans--framed .cc-plansFrame__layout{
    align-items:center;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__card{
    align-self:center;
  }
}

/* 2) Texte principal un peu moins lourd visuellement */
.cc-plans.cc-plans--framed .cc-plansFrame__lead{
  font-weight:600;
  color:rgba(1,33,72,.74);
}

/* 3) Carte droite plus compacte et moins vide */
.cc-plans.cc-plans--framed .cc-plansFrame__cardTop{
  padding:20px 20px 15px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__list{
  padding:18px 20px 22px;
  gap:12px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__list li{
  font-weight:650;
}

/* 4) Preuves bas de section : moins “cartes”, plus ligne de réassurance */
.cc-plans.cc-plans--framed .cc-plansFrame__proof{
  gap:10px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__proofItem{
  min-height:46px;
  padding:11px 13px;
  background:#fff;
  box-shadow:none;
  font-size:13.5px;
  font-weight:800;
}

/* 5) Note finale alignée avec toute la section */
.cc-plans.cc-plans--framed .cc-plansFrame__note{
  max-width:none;
  width:100%;
  color:rgba(1,33,72,.60);
  font-weight:700;
}

/* 6) Mobile : conserver une bonne respiration sans densifier */
@media (max-width:899px){
  .cc-plans.cc-plans--framed .cc-plansFrame__proofItem{
    min-height:44px;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__note{
    font-size:13.5px;
  }
}


/* =========================================================
   CityCleaner — PATCH FINITION SECTION TARIF CADRÉ V2
   Objectif : supprimer les éléments redondants, enlever
   "grille automatique", "calendrier", les 3 bulles et la note
   forfait/abonnement. À coller tout en bas du CSS additionnel.
   Scope : .cc-plans.cc-plans--framed uniquement.
   ========================================================= */

/* Masquer les éléments de l'ancienne variante s'ils restent dans le HTML */
.cc-plans.cc-plans--framed .cc-plansFrame__proof,
.cc-plans.cc-plans--framed .cc-plansFrame__note,
.cc-plans.cc-plans--framed .cc-plansFrame__micro{
  display:none !important;
}

/* Rythme plus compact après suppression des bulles */
.cc-plans.cc-plans--framed .cc-plansFrame__layout{
  margin-bottom:0;
}

@media (min-width:900px){
  .cc-plans.cc-plans--framed .cc-plansFrame__layout{
    align-items:center;
  }

  .cc-plans.cc-plans--framed .cc-plansFrame__card{
    align-self:center;
  }
}

/* Texte principal plus naturel */
.cc-plans.cc-plans--framed .cc-plansFrame__lead{
  font-weight:600;
  color:rgba(1,33,72,.74);
}

/* CTA : moins d'espace après suppression de la microcopy */
.cc-plans.cc-plans--framed .cc-plansFrame__ctaBox{
  margin-top:var(--cc-28);
}

/* Carte droite plus compacte */
.cc-plans.cc-plans--framed .cc-plansFrame__cardTop{
  padding:20px 20px 15px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__list{
  padding:18px 20px 22px;
  gap:12px;
}

.cc-plans.cc-plans--framed .cc-plansFrame__list li{
  font-weight:650;
}

/* Nouvelle phrase de cadrage sobre */
.cc-plans.cc-plans--framed .cc-plansFrame__closing{
  margin:var(--cc-28) 0 0;
  padding-top:var(--cc-16);
  border-top:1px solid var(--cc-ink10);
  max-width:760px;
  font-size:14px;
  line-height:1.6;
  font-weight:700;
  color:rgba(1,33,72,.60);
}

@media (max-width:899px){
  .cc-plans.cc-plans--framed .cc-plansFrame__closing{
    margin-top:var(--cc-24);
    font-size:13.5px;
  }
}




















/* =========================================================
   V5.1 — Split Photo Strip optimisé
   Section : "Ce que vous déléguez vraiment"
   Objectif : chaleur terrain + rupture visuelle sans carte, chip ou icône
   Scope strict : .cc-delegate3--v51-strip uniquement
   ========================================================= */

.cc-delegate3--v51-strip .cc-v51Strip__layout{
  display:grid;
  gap:var(--cc-32);
  align-items:center;
}

.cc-delegate3--v51-strip .cc-v51Strip__media{
  position:relative;
  display:grid;
  grid-template-columns:.9fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:10px;
  min-height:340px;
}

.cc-delegate3--v51-strip .cc-v51Strip__media::before{
  content:"";
  position:absolute;
  inset:8% -6% -8% 10%;
  z-index:0;
  pointer-events:none;
  border-radius:32px;
  background:
    radial-gradient(420px 260px at 20% 20%, rgba(39,207,169,.10), transparent 62%),
    radial-gradient(420px 260px at 80% 70%, rgba(70,217,255,.08), transparent 62%);
  filter:blur(4px);
}

.cc-delegate3--v51-strip .cc-v51Strip__frame{
  position:relative;
  z-index:1;
  overflow:hidden;
  margin:0;
  border-radius:22px;
  background:rgba(255,255,255,.54);
  border:1px solid rgba(1,33,72,.10);
  box-shadow:0 10px 24px rgba(1,33,72,.055);
}

.cc-delegate3--v51-strip .cc-v51Strip__frame--tall{
  grid-row:1 / span 2;
}

.cc-delegate3--v51-strip .cc-v51Strip__frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(1,33,72,0) 55%, rgba(1,33,72,.055)),
    radial-gradient(280px 140px at 22% 0%, rgba(39,207,169,.11), transparent 60%);
}

.cc-delegate3--v51-strip .cc-v51Strip__frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
}

.cc-delegate3--v51-strip .cc-v51Strip__content{
  max-width:650px;
}

.cc-delegate3--v51-strip .cc-v51Strip__kicker{
  margin:0 0 18px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
}

.cc-delegate3--v51-strip .cc-v51Strip__kicker::after{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin-top:12px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(39,207,169,.82), rgba(70,217,255,.52));
}

.cc-delegate3--v51-strip .cc-v51Strip__title{
  margin:0 0 var(--cc-16);
  max-width:720px;
  font-size:clamp(34px, 4.5vw, 56px);
  line-height:1.04;
  font-weight:950;
  letter-spacing:-.026em;
  color:var(--cc-navy);
  text-wrap:balance;
}

.cc-delegate3--v51-strip .cc-v51Strip__lead{
  margin:0;
  max-width:64ch;
  font-size:17px;
  line-height:1.65;
  font-weight:650;
  color:var(--cc-ink78);
}

.cc-delegate3--v51-strip .cc-v51Strip__steps{
  margin-top:var(--cc-32);
  display:grid;
  gap:0;
  border-top:1px solid rgba(1,33,72,.12);
}

.cc-delegate3--v51-strip .cc-v51Strip__step{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:var(--cc-16);
  padding:var(--cc-20) 0;
  border-bottom:1px solid rgba(1,33,72,.10);
}

.cc-delegate3--v51-strip .cc-v51Strip__num{
  padding-top:5px;
  font-size:13px;
  line-height:1;
  font-weight:950;
  letter-spacing:.10em;
  color:rgba(1,33,72,.68);
}

.cc-delegate3--v51-strip .cc-v51Strip__stepTitle{
  margin:0 0 5px;
  font-size:22px;
  line-height:1.1;
  font-weight:950;
  letter-spacing:-.02em;
  color:var(--cc-navy);
}

.cc-delegate3--v51-strip .cc-v51Strip__text{
  margin:0;
  max-width:50ch;
  font-size:15px;
  line-height:1.55;
  font-weight:650;
  color:var(--cc-ink78);
}

.cc-delegate3--v51-strip .cc-v51Strip__note{
  margin:var(--cc-24) 0 0;
  max-width:720px;
  font-size:14.5px;
  line-height:1.6;
  font-weight:650;
  color:rgba(1,33,72,.58);
}

@media (min-width:900px){
  .cc-delegate3--v51-strip .cc-v51Strip__layout{
    grid-template-columns:minmax(340px, .78fr) minmax(0, 1fr);
    gap:var(--cc-56);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__media{
    order:1;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__content{
    order:2;
  }
}

@media (max-width:899px){
  .cc-delegate3--v51-strip .cc-v51Strip__layout{
    gap:var(--cc-28);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__content{
    order:1;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__media{
    order:2;
    min-height:0;
    grid-template-columns:1.2fr .8fr;
    grid-template-rows:128px 128px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__media::before{
    inset:10% -4% -6% 8%;
    border-radius:24px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__frame{
    border-radius:18px;
    box-shadow:0 8px 18px rgba(1,33,72,.045);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__title{
    font-size:clamp(30px, 8vw, 42px);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__lead{
    font-size:16px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__steps{
    margin-top:var(--cc-28);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__step{
    grid-template-columns:42px 1fr;
    gap:var(--cc-12);
    padding:18px 0;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__stepTitle{
    font-size:20px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__text,
  .cc-delegate3--v51-strip .cc-v51Strip__note{
    font-size:14.5px;
  }
}

@media (max-width:420px){
  .cc-delegate3--v51-strip .cc-v51Strip__media{
    grid-template-columns:1fr 1fr;
    grid-template-rows:116px 116px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__frame--tall{
    grid-column:1 / span 2;
    grid-row:auto;
  }
}

/* =========================================================
   PATCH FINITION — V5.2 section délégation terrain
   Objectif : réduire l'effet "deuxième hero" et affiner le rythme
   ========================================================= */

.cc-delegate3--v51-strip .cc-v51Strip__layout{
  align-items:center;
}

.cc-delegate3--v51-strip .cc-v51Strip__title{
  max-width:680px;
  font-size:clamp(32px, 4vw, 50px);
  line-height:1.06;
  letter-spacing:-.024em;
}

.cc-delegate3--v51-strip .cc-v51Strip__lead{
  max-width:60ch;
  font-weight:600;
  color:rgba(1,33,72,.74);
}

.cc-delegate3--v51-strip .cc-v51Strip__steps{
  margin-top:var(--cc-28);
}

.cc-delegate3--v51-strip .cc-v51Strip__step{
  padding:18px 0;
}

.cc-delegate3--v51-strip .cc-v51Strip__stepTitle{
  font-size:21px;
}

.cc-delegate3--v51-strip .cc-v51Strip__text{
  font-weight:600;
  color:rgba(1,33,72,.74);
}

.cc-delegate3--v51-strip .cc-v51Strip__note{
  font-weight:600;
  color:rgba(1,33,72,.56);
}

.cc-delegate3--v51-strip .cc-v51Strip__media{
  min-height:320px;
}

.cc-delegate3--v51-strip .cc-v51Strip__frame{
  box-shadow:0 8px 20px rgba(1,33,72,.045);
}

@media (max-width:899px){
  .cc-delegate3--v51-strip .cc-v51Strip__title{
    font-size:clamp(30px, 7.5vw, 40px);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__step{
    padding:16px 0;
  }
}

/* =========================================================
   PATCH V5.2 — Allègement section délégation terrain
   Objectif : moins de texte, H2 moins massif, suppression du kicker visuel
   ========================================================= */

.cc-delegate3--v51-strip .cc-v51Strip__kicker{
  display:none !important;
}

.cc-delegate3--v51-strip .cc-v51Strip__title{
  max-width:660px;
  font-size:clamp(30px, 3.8vw, 46px);
  line-height:1.08;
  letter-spacing:-.024em;
  margin-bottom:var(--cc-12);
}

.cc-delegate3--v51-strip .cc-v51Strip__lead{
  max-width:52ch;
  font-size:16px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v51-strip .cc-v51Strip__steps{
  margin-top:var(--cc-24);
}

.cc-delegate3--v51-strip .cc-v51Strip__step{
  padding:16px 0;
}

.cc-delegate3--v51-strip .cc-v51Strip__stepTitle{
  font-size:20px;
}

.cc-delegate3--v51-strip .cc-v51Strip__text{
  max-width:44ch;
  font-size:14.5px;
  line-height:1.5;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v51-strip .cc-v51Strip__note{
  margin-top:var(--cc-20);
  max-width:660px;
  font-size:14px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.56);
}

@media (max-width:899px){
  .cc-delegate3--v51-strip .cc-v51Strip__title{
    font-size:clamp(28px, 7.2vw, 38px);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__step{
    padding:15px 0;
  }
}


/* =========================================================
   PATCH V5.3 — Harmonisation H2 + équilibre image/texte
   Section délégation terrain
   ========================================================= */

.cc-delegate3--v51-strip .cc-v51Strip__title{
  max-width:620px;
  font-size:clamp(26px, 3.2vw, 40px) !important;
  line-height:1.08;
  letter-spacing:-.02em;
  margin-bottom:var(--cc-12);
}

.cc-delegate3--v51-strip .cc-v51Strip__lead{
  max-width:52ch;
  font-size:15.5px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v51-strip .cc-v51Strip__steps{
  margin-top:var(--cc-24);
}

.cc-delegate3--v51-strip .cc-v51Strip__step{
  padding:15px 0;
}

.cc-delegate3--v51-strip .cc-v51Strip__stepTitle{
  font-size:19px;
  line-height:1.15;
}

.cc-delegate3--v51-strip .cc-v51Strip__text{
  max-width:42ch;
  font-size:14.5px;
  line-height:1.48;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v51-strip .cc-v51Strip__note{
  margin-top:var(--cc-18);
  max-width:620px;
  font-size:13.8px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.56);
}

@media (min-width:900px){
  .cc-delegate3--v51-strip .cc-v51Strip__media{
    min-height:340px;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__layout{
    align-items:center;
  }
}

@media (max-width:899px){
  .cc-delegate3--v51-strip .cc-v51Strip__title{
    font-size:clamp(28px, 7vw, 38px) !important;
  }

  .cc-delegate3--v51-strip .cc-v51Strip__step{
    padding:15px 0;
  }
}



/* =========================================================
   PATCH HARMONISATION — 4 premières sections homepage
   Objectif : cohérence visuelle post-Hero + rythme plus fluide
   ========================================================= */

/* 1. Supprimer les kickers visibles après le Hero */
.cc-plans__kicker,
.cc-fitx__kicker{
  display:none !important;
}

/* 2. Harmoniser la taille du H2 de la section délégation */
.cc-delegate3--v51-strip .cc-v51Strip__title{
  font-size:clamp(28px, 3.4vw, 42px) !important;
  line-height:1.08;
  letter-spacing:-.022em;
  max-width:640px;
}

/* 3. Donner un peu plus de présence au bloc image sans concurrencer le Hero */
@media (min-width:900px){
  .cc-delegate3--v51-strip .cc-v51Strip__layout{
    grid-template-columns:minmax(380px, .82fr) minmax(0, 1fr);
    gap:var(--cc-64);
  }

  .cc-delegate3--v51-strip .cc-v51Strip__media{
    min-height:360px;
  }
}

/* 4. Garder le texte de délégation compact */
.cc-delegate3--v51-strip .cc-v51Strip__lead{
  max-width:52ch;
}

.cc-delegate3--v51-strip .cc-v51Strip__steps{
  margin-top:var(--cc-24);
}

/* 5. Alléger la note finale */
.cc-delegate3--v51-strip .cc-v51Strip__note{
  max-width:620px;
  font-size:13.8px;
  color:rgba(1,33,72,.54);
}











/* =========================================================
   V6 — Section délégation terrain avec 2 images superposées
   Objectif : moins de redondance visuelle, plus de chaleur, effet diagonal discret
   Scope strict : .cc-delegate3--v6-overlap uniquement
   ========================================================= */

.cc-delegate3--v6-overlap .cc-v6Overlap__layout{
  display:grid;
  gap:var(--cc-32);
  align-items:center;
}

.cc-delegate3--v6-overlap .cc-v6Overlap__media{
  position:relative;
  min-height:380px;
  isolation:isolate;
}

.cc-delegate3--v6-overlap .cc-v6Overlap__media::before{
  content:"";
  position:absolute;
  inset:12% 0 0 8%;
  z-index:0;
  pointer-events:none;
  border-radius:34px;
  background:
    radial-gradient(420px 260px at 26% 28%, rgba(39,207,169,.11), transparent 62%),
    radial-gradient(420px 260px at 80% 72%, rgba(70,217,255,.075), transparent 62%);
  filter:blur(5px);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__frame{
  position:absolute;
  z-index:1;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(1,33,72,.10);
  background:rgba(255,255,255,.56);
  box-shadow:0 12px 28px rgba(1,33,72,.07);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(1,33,72,0) 55%, rgba(1,33,72,.045)),
    radial-gradient(320px 160px at 20% 0%, rgba(39,207,169,.10), transparent 60%);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__frame--main{
  left:0;
  top:18px;
  width:68%;
  height:330px;
  border-radius:24px;
}

.cc-delegate3--v6-overlap .cc-v6Overlap__frame--secondary{
  right:0;
  bottom:8px;
  width:50%;
  height:188px;
  border-radius:22px;
  z-index:2;
  box-shadow:0 14px 34px rgba(1,33,72,.085);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__content{
  max-width:650px;
}

.cc-delegate3--v6-overlap .cc-v6Overlap__title{
  margin:0 0 var(--cc-12);
  max-width:640px;
  font-size:clamp(28px, 3.4vw, 42px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.022em;
  color:var(--cc-navy);
  text-wrap:balance;
}

.cc-delegate3--v6-overlap .cc-v6Overlap__lead{
  margin:0;
  max-width:52ch;
  font-size:16px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__steps{
  margin-top:var(--cc-24);
  display:grid;
  gap:0;
  border-top:1px solid rgba(1,33,72,.12);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__step{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:var(--cc-16);
  padding:16px 0;
  border-bottom:1px solid rgba(1,33,72,.10);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__num{
  padding-top:5px;
  font-size:13px;
  line-height:1;
  font-weight:950;
  letter-spacing:.10em;
  color:rgba(1,33,72,.58);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__stepTitle{
  margin:0 0 5px;
  font-size:20px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.02em;
  color:var(--cc-navy);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__text{
  margin:0;
  max-width:44ch;
  font-size:14.5px;
  line-height:1.5;
  font-weight:600;
  color:rgba(1,33,72,.72);
}

.cc-delegate3--v6-overlap .cc-v6Overlap__note{
  margin:var(--cc-20) 0 0;
  padding-top:var(--cc-16);
  border-top:1px solid rgba(1,33,72,.08);
  max-width:620px;
  font-size:13.8px;
  line-height:1.55;
  font-weight:600;
  color:rgba(1,33,72,.54);
}

@media (min-width:900px){
  .cc-delegate3--v6-overlap .cc-v6Overlap__layout{
    grid-template-columns:minmax(360px, .78fr) minmax(0, 1fr);
    gap:var(--cc-64);
  }
}

@media (max-width:899px){
  .cc-delegate3--v6-overlap .cc-v6Overlap__layout{
    gap:var(--cc-28);
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__content{
    order:1;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__media{
    order:2;
    min-height:310px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--main{
    top:0;
    left:0;
    width:72%;
    height:270px;
    border-radius:20px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--secondary{
    right:0;
    bottom:4px;
    width:54%;
    height:150px;
    border-radius:18px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__title{
    font-size:clamp(28px, 7vw, 38px);
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__lead{
    font-size:15.5px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__step{
    grid-template-columns:42px 1fr;
    gap:var(--cc-12);
    padding:15px 0;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__stepTitle{
    font-size:19px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__text,
  .cc-delegate3--v6-overlap .cc-v6Overlap__note{
    font-size:14px;
  }
}

@media (max-width:420px){
  .cc-delegate3--v6-overlap .cc-v6Overlap__media{
    min-height:288px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--main{
    width:76%;
    height:248px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--secondary{
    width:58%;
    height:132px;
  }
}


/* PATCH V6.2 — Finition sobre superposition images */

@media (min-width:900px){
  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--main{
    width:69%;
    height:334px;
    top:14px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--secondary{
    width:52%;
    height:176px;
    right:6px;
    bottom:22px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame{
    box-shadow:0 10px 24px rgba(1,33,72,.055);
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame--secondary{
    box-shadow:0 12px 28px rgba(1,33,72,.07);
  }
}


/* =========================================================
   PATCH V6.3 — Hover image subtil
   Objectif : micro-vie visuelle sans effet gadget
   ========================================================= */

@media (hover:hover) and (pointer:fine){
  .cc-delegate3--v6-overlap .cc-v6Overlap__frame img{
    transition:transform 260ms ease;
    will-change:transform;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame:hover img{
    transform:scale(1.035);
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame{
    transition:box-shadow 260ms ease, border-color 260ms ease;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame:hover{
    border-color:rgba(1,33,72,.14);
    box-shadow:0 14px 30px rgba(1,33,72,.075);
  }
}

@media (prefers-reduced-motion: reduce){
  .cc-delegate3--v6-overlap .cc-v6Overlap__frame,
  .cc-delegate3--v6-overlap .cc-v6Overlap__frame img{
    transition:none !important;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__frame:hover img{
    transform:scale(1.01);
  }
}










/* =========================================================
   CityCleaner — PATCH V2 CSS-only
   Section : Tarif après qualification
   Objectif : améliorer chaleur, hiérarchie et intégration visuelle
   Contraintes : aucun contenu HTML modifié, aucun texte modifié
   À coller tout en bas du CSS additionnel
   ========================================================= */

/* Section tarif : fond blanc plus vivant, sans effet décoratif fort */
.cc-plans{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(760px 360px at 9% 10%, rgba(39,207,169,.035), transparent 62%),
    radial-gradient(720px 340px at 92% 18%, rgba(70,217,255,.042), transparent 58%),
    #ffffff !important;
}

.cc-plans__inner{
  position:relative;
}

/* Titre + texte : même contenu, lecture plus posée */
.cc-plans__header,
.cc-plans__copy,
.cc-plans__left{
  position:relative;
  z-index:1;
}

.cc-plans__title{
  max-width:680px;
  letter-spacing:-.018em;
}

.cc-plans__lead{
  max-width:64ch;
}

/* CTA : conservation du style, intégration un peu plus calme */
.cc-plans__ctaSolo{
  margin-top:18px !important;
}

.cc-plans__ctaBtn{
  box-shadow:0 10px 22px rgba(1,33,72,.115) !important;
}

@media (hover:hover){
  .cc-plans__ctaBtn:hover{
    box-shadow:0 14px 28px rgba(1,33,72,.15) !important;
  }
}

/* Panneau droit : moins administratif, plus premium sobre */
.cc-plans .cc-plansCard,
.cc-plans .cc-plans__panel,
.cc-plans .cc-plans__sideCard,
.cc-plans .cc-plans__card,
.cc-plans .cc-plan,
.cc-plans .cc-card{
  border:1px solid rgba(1,33,72,.095) !important;
  border-radius:18px !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #ffffff 72%, rgba(247,249,251,.72) 100%) !important;
  box-shadow:0 14px 34px rgba(1,33,72,.065) !important;
  overflow:hidden;
}

/* En-tête du panneau : teinte plus douce que le bandeau turquoise plein */
.cc-plans .cc-plansCard__top,
.cc-plans .cc-plans__panelTop,
.cc-plans .cc-plans__sideTop,
.cc-plans .cc-plans__cardTop,
.cc-plans .cc-card__title{
  background:
    linear-gradient(90deg, rgba(39,207,169,.075), rgba(70,217,255,.045)) !important;
  border-bottom:1px solid rgba(1,33,72,.085) !important;
}

.cc-plans .cc-card__title,
.cc-plans .cc-plansCard__title,
.cc-plans .cc-plans__panelTitle,
.cc-plans .cc-plans__sideTitle{
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  letter-spacing:-.005em !important;
}

/* Icône éventuelle du panneau : présente mais moins “outil / formulaire” */
.cc-plans .cc-ico,
.cc-plans .cc-plansCard__ico,
.cc-plans .cc-plans__panelIco,
.cc-plans .cc-plans__sideIco{
  background:rgba(39,207,169,.095) !important;
  border-color:rgba(39,207,169,.18) !important;
  box-shadow:0 6px 16px rgba(39,207,169,.08) !important;
}

/* Liste : meilleure respiration sans transformer en nouvelles cartes */
.cc-plans .cc-plans__list,
.cc-plans .cc-plansCard__list,
.cc-plans .cc-plans__panelList,
.cc-plans .cc-plans__sideList{
  gap:9px !important;
}

.cc-plans .cc-plans__list li,
.cc-plans .cc-plansCard__list li,
.cc-plans .cc-plans__panelList li,
.cc-plans .cc-plans__sideList li{
  color:rgba(1,33,72,.76) !important;
  line-height:1.48 !important;
}

/* Note finale : plus visible, sans changer le texte */
.cc-plans__note,
.cc-plans__foot,
.cc-plans__statement,
.cc-plans__fine,
.cc-plans__micro,
.cc-plans__ctaMicro{
  color:rgba(1,33,72,.62) !important;
  line-height:1.55 !important;
}

.cc-plans__note,
.cc-plans__foot,
.cc-plans__statement{
  margin-top:22px !important;
  padding-top:14px !important;
  border-top:1px solid rgba(1,33,72,.10) !important;
  max-width:760px;
}

/* Si la phrase finale utilise une classe micro/fine sans wrapper dédié */
.cc-plans__inner > .cc-plans__micro,
.cc-plans__inner > .cc-plans__fine,
.cc-plans__inner > p:last-child{
  margin-top:22px !important;
  padding-top:14px !important;
  border-top:1px solid rgba(1,33,72,.10) !important;
  max-width:760px;
}

/* Desktop : légère amélioration de l’équilibre gauche / panneau */
@media (min-width:900px){
  .cc-plans__inner{
    isolation:isolate;
  }

  .cc-plans__grid,
  .cc-plans__layout,
  .cc-plans__body{
    align-items:center !important;
  }

  .cc-plans .cc-plansCard,
  .cc-plans .cc-plans__panel,
  .cc-plans .cc-plans__sideCard,
  .cc-plans .cc-plans__card,
  .cc-plans .cc-plan,
  .cc-plans .cc-card{
    transform:translateY(2px);
  }
}

/* Mobile : section plus lisible, CTA confortable, carte moins lourde */
@media (max-width:899px){
  .cc-plans{
    background:
      radial-gradient(620px 300px at 50% 0%, rgba(39,207,169,.035), transparent 64%),
      #ffffff !important;
  }

  .cc-plans__ctaSolo{
    margin-top:16px !important;
  }

  .cc-plans__ctaBtn{
    width:100% !important;
    justify-content:center !important;
  }

  .cc-plans .cc-plansCard,
  .cc-plans .cc-plans__panel,
  .cc-plans .cc-plans__sideCard,
  .cc-plans .cc-plans__card,
  .cc-plans .cc-plan,
  .cc-plans .cc-card{
    border-radius:16px !important;
    box-shadow:0 10px 26px rgba(1,33,72,.055) !important;
  }

  .cc-plans__note,
  .cc-plans__foot,
  .cc-plans__statement,
  .cc-plans__inner > .cc-plans__micro,
  .cc-plans__inner > .cc-plans__fine,
  .cc-plans__inner > p:last-child{
    margin-top:18px !important;
    padding-top:12px !important;
    font-size:12.5px !important;
  }
}
























/* =========================================================
CityCleaner — Section preuve V5
Ce qui est vérifié avant l’arrivée suivante
Version simplifiée — image seule + contenu allégé
Scope isolé : .cc-proofv5
========================================================= */

.cc-proofv5{
  --cc-proof-navy:var(--cc-navy, #012148);
  --cc-proof-turq:var(--cc-turq, #27CFA9);
  --cc-proof-sky:var(--cc-sky, #46D9FF);
  --cc-proof-soft:var(--cc-bgSoft, #F7F9FB);
  --cc-proof-ink78:var(--cc-ink78, rgba(1,33,72,.78));
  --cc-proof-ink62:var(--cc-ink62, rgba(1,33,72,.62));
  --cc-proof-ink10:var(--cc-ink10, rgba(1,33,72,.10));
  --cc-proof-shadow:0 22px 52px rgba(1,33,72,.105);

  position:relative;
  overflow:hidden;
  background:
    radial-gradient(900px 420px at 8% 10%, rgba(39,207,169,.055), transparent 62%),
    radial-gradient(760px 380px at 92% 12%, rgba(70,217,255,.055), transparent 58%),
    #F3F7FA;
  color:var(--cc-proof-navy);
}

.cc-proofv5__inner{
  width:min(1120px, calc(100% - 32px));
  margin-inline:auto;
  padding-block:var(--cc-section-py-mobile, 72px);
}

.cc-proofv5__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:start;
}

.cc-proofv5__visual{
  order:2;
}

.cc-proofv5__content{
  order:1;
  display:grid;
  gap:24px;
}

.cc-proofv5__head{
  max-width:720px;
}

.cc-proofv5__title{
  margin:0 0 18px;
  color:var(--cc-proof-navy);
  font-size:clamp(30px, 6.2vw, 56px);
  line-height:1.03;
  letter-spacing:-.035em;
  font-weight:950;
  text-wrap:balance;
}

.cc-proofv5__lead{
  margin:0;
  max-width:64ch;
  color:var(--cc-proof-ink78);
  font-size:clamp(16px, 1.35vw, 19px);
  line-height:1.68;
  font-weight:600;
  text-wrap:pretty;
}

.cc-proofv5__photoCard{
  margin:0;
  overflow:hidden;
  border:1px solid rgba(1,33,72,.12);
  border-radius:28px;
  background:#ffffff;
  box-shadow:var(--cc-proof-shadow);
  height:100%;
}

.cc-proofv5__photoWrap{
  position:relative;
  overflow:hidden;
  background:var(--cc-proof-soft);
  height:100%;
}

.cc-proofv5__img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center;
  transition:transform 220ms ease;
}

.cc-proofv5__summary{
  overflow:hidden;
  border:1px solid rgba(1,33,72,.10);
  border-radius:24px;
  background:
    linear-gradient(180deg, #ffffff 0%, #ffffff 76%, rgba(247,249,251,.84) 100%);
  box-shadow:0 14px 34px rgba(1,33,72,.052);
}

.cc-proofv5__summaryItem{
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px;
  align-items:start;
  padding:18px 20px;
}

.cc-proofv5__summaryItem + .cc-proofv5__summaryItem{
  border-top:1px solid rgba(1,33,72,.075);
}

.cc-proofv5__summaryItem p{
  margin:0;
  color:var(--cc-proof-ink78);
  font-size:15.5px;
  line-height:1.55;
  font-weight:650;
}

.cc-proofv5__summaryItem strong{
  color:var(--cc-proof-navy);
  font-weight:950;
}

.cc-proofv5__summaryItem--scope{
  background:rgba(1,33,72,.025);
}

.cc-proofv5__summaryIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  margin-top:1px;
  border-radius:999px;
  background:rgba(39,207,169,.12);
  border:1px solid rgba(39,207,169,.24);
  color:var(--cc-proof-navy);
  box-shadow:0 6px 16px rgba(39,207,169,.08);
}

.cc-proofv5__summaryIcon svg{
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon{
  background:rgba(1,33,72,.045);
  border-color:rgba(1,33,72,.12);
  box-shadow:none;
}

@media (hover:hover){
  .cc-proofv5__photoCard:hover .cc-proofv5__img{
    transform:scale(1.012);
  }
}

@media (min-width:900px){
  .cc-proofv5__inner{
    padding-block:var(--cc-section-py-desktop, 120px);
  }

  .cc-proofv5__grid{
    grid-template-columns:minmax(360px, .94fr) minmax(0, 1.06fr);
    gap:60px;
    align-items:stretch;
  }

  .cc-proofv5__visual{
    order:1;
    display:flex;
  }

  .cc-proofv5__content{
    order:2;
    align-content:start;
  }

  .cc-proofv5__photoCard{
    width:100%;
    display:flex;
  }

  .cc-proofv5__photoWrap{
    width:100%;
    min-height:100%;
  }

  .cc-proofv5__img{
    width:100%;
    height:100%;
    aspect-ratio:auto;
    min-height:100%;
  }
}

@media (max-width:899px){
  .cc-proofv5__inner{
    width:min(680px, calc(100% - 32px));
  }

  .cc-proofv5__title{
    max-width:11ch;
  }

  .cc-proofv5__lead{
    font-size:15.5px;
    line-height:1.62;
  }

  .cc-proofv5__photoCard{
    border-radius:22px;
  }

  .cc-proofv5__summary{
    border-radius:18px;
  }

  .cc-proofv5__summaryItem{
    grid-template-columns:28px 1fr;
    gap:10px;
    padding:15px 15px;
  }

  .cc-proofv5__summaryItem p{
    font-size:14.2px;
    line-height:1.47;
  }

  .cc-proofv5__summaryIcon{
    width:24px;
    height:24px;
  }
}

@media (max-width:560px){
  .cc-proofv5{
    background:#F7F9FB;
  }
}

@media (max-width:420px){
  .cc-proofv5__inner{
    width:min(100% - 28px, 680px);
  }

  .cc-proofv5__grid{
    gap:22px;
  }

  .cc-proofv5__title{
    font-size:clamp(28px, 10.5vw, 38px);
  }

  .cc-proofv5__img{
    aspect-ratio:1.04 / 1;
    height:auto;
  }
}

@media (prefers-reduced-motion:reduce){
  .cc-proofv5__img{
    transition:none !important;
  }

  .cc-proofv5__photoCard:hover .cc-proofv5__img{
    transform:none !important;
  }
}



/* =========================================================
PATCH — Harmonisation H2 section preuve avec les autres sections
========================================================= */

.cc-proofv5__title{
  font-size:clamp(26px, 6.2vw, 40px) !important;
  line-height:1.1 !important;
  letter-spacing:-.01em !important;
  font-weight:950 !important;
  margin:0 0 var(--cc-16, 16px) !important;
}

/* Mobile : éviter un titre trop étroit / trop vertical */
@media (max-width:899px){
  .cc-proofv5__title{
    max-width:14ch !important;
  }
}











.cc-article__ico{
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  color: var(--cc-navy, #012148);
  background: rgba(39,207,169,.10);
  border: 1px solid rgba(39,207,169,.18);
}

.cc-article__ico svg{
  width: 18px;
  height: 18px;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

@media (max-width: 640px){
  .cc-article__ico{
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    border-radius: 11px;
  }

  .cc-article__ico svg{
    width: 17px;
    height: 17px;
  }
}













/* =========================================================
   CityCleaner — PATCH FINITION SECTION DÉMARRAGE V2
   Section : Comment la prise en charge démarre
   Objectif :
   - conserver la structure validée
   - alléger le texte
   - harmoniser le H2
   - réduire l'effet checklist/procédure
   - éviter les régressions mobile
   Scope strict : .cc-ops.cc-ops-warm uniquement
   ========================================================= */

.cc-ops.cc-ops-warm{
  background:
    radial-gradient(900px 420px at 12% 10%, rgba(70,217,255,.055), transparent 60%),
    radial-gradient(760px 380px at 88% 14%, rgba(137,88,254,.045), transparent 55%),
    var(--cc-bgSoft);
  color:var(--cc-navy);
  overflow:hidden;
}

.cc-ops.cc-ops-warm .cc-ops-warm__layout{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-32);
  align-items:center;
}

.cc-ops.cc-ops-warm .cc-ops-warm__content{
  min-width:0;
}

.cc-ops.cc-ops-warm .cc-ops-warm__header{
  margin:0 0 var(--cc-32);
  max-width:720px;
}

.cc-ops.cc-ops-warm .cc-ops-warm__title{
  margin:0 0 var(--cc-16);
  font-size:clamp(26px, 6.2vw, 40px);
  line-height:1.1;
  letter-spacing:-.01em;
  font-weight:950;
  color:var(--cc-navy);
  text-wrap:balance;
}

.cc-ops.cc-ops-warm .cc-ops-warm__lead{
  margin:0;
  max-width:66ch;
  font-size:16px;
  line-height:1.62;
  font-weight:600;
  color:rgba(1,33,72,.74);
}

.cc-ops.cc-ops-warm .cc-ops-warm__steps{
  position:relative;
  display:grid;
  gap:var(--cc-28);
  max-width:720px;
}

.cc-ops.cc-ops-warm .cc-ops-warm__steps::before{
  content:"";
  position:absolute;
  left:21px;
  top:24px;
  bottom:24px;
  width:1px;
  background:linear-gradient(
    180deg,
    rgba(39,207,169,.58),
    rgba(1,33,72,.10)
  );
}

.cc-ops.cc-ops-warm .cc-ops-warm__step{
  position:relative;
  display:grid;
  grid-template-columns:44px 1fr;
  gap:var(--cc-20);
  align-items:start;
}

.cc-ops.cc-ops-warm .cc-ops-warm__num{
  position:relative;
  z-index:1;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(39,207,169,.36);
  color:var(--cc-navy);
  font-size:15px;
  line-height:1;
  font-weight:950;
  box-shadow:0 8px 18px rgba(1,33,72,.035);
}

.cc-ops.cc-ops-warm .cc-ops-warm__body{
  min-width:0;
  padding-top:2px;
}

.cc-ops.cc-ops-warm .cc-ops-warm__stepTitle{
  margin:0 0 8px;
  color:var(--cc-navy);
  font-size:18px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:-.01em;
}

.cc-ops.cc-ops-warm .cc-ops-warm__text{
  margin:0;
  max-width:58ch;
  color:rgba(1,33,72,.72);
  font-size:15px;
  line-height:1.52;
  font-weight:650;
}

.cc-ops.cc-ops-warm .cc-ops-warm__visual{
  min-width:0;
}

.cc-ops.cc-ops-warm .cc-ops-warm__media{
  margin:0;
  overflow:hidden;
  border:1px solid rgba(1,33,72,.10);
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 34px rgba(1,33,72,.065);
}

.cc-ops.cc-ops-warm .cc-ops-warm__img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center;
  transition:transform 220ms ease;
}

.cc-ops.cc-ops-warm .cc-ops-warm__caption{
  margin:0;
  padding:16px 18px 17px;
  border-top:1px solid rgba(1,33,72,.08);
  background:#fff;
  color:rgba(1,33,72,.62);
  font-size:13.5px;
  line-height:1.45;
  font-weight:800;
}

.cc-ops.cc-ops-warm .cc-ops-warm__proof{
  margin-top:var(--cc-16);
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px;
  align-items:start;
  padding:16px 18px;
  border:1px solid rgba(1,33,72,.10);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 22px rgba(1,33,72,.035);
  color:rgba(1,33,72,.72);
  font-size:14px;
  line-height:1.45;
  font-weight:800;
}

.cc-ops.cc-ops-warm .cc-ops-warm__proofIcon{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(39,207,169,.12);
  border:1px solid rgba(39,207,169,.24);
  color:var(--cc-navy);
  font-size:15px;
  line-height:1;
  font-weight:950;
}

@media (hover:hover) and (pointer:fine){
  .cc-ops.cc-ops-warm .cc-ops-warm__media:hover .cc-ops-warm__img{
    transform:scale(1.018);
  }
}

@media (min-width:900px){
  .cc-ops.cc-ops-warm .cc-ops-warm__layout{
    grid-template-columns:minmax(0, 1.08fr) minmax(360px, .92fr);
    gap:var(--cc-64);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__visual{
    align-self:center;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__media{
    max-width:520px;
    margin-left:auto;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__proof{
    max-width:520px;
    margin-left:auto;
  }
}

@media (max-width:899px){
  .cc-ops.cc-ops-warm .cc-ops-warm__layout{
    gap:var(--cc-32);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__header{
    margin-bottom:var(--cc-28);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__title{
    font-size:clamp(28px, 7vw, 38px);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__lead{
    font-size:15.5px;
    line-height:1.58;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__steps{
    gap:var(--cc-24);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__step{
    grid-template-columns:40px 1fr;
    gap:var(--cc-16);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__steps::before{
    left:19px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__num{
    width:40px;
    height:40px;
    font-size:14px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__stepTitle{
    font-size:17px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__text{
    font-size:14.5px;
    line-height:1.48;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__media{
    border-radius:20px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__caption{
    padding:14px 15px;
    font-size:13px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__proof{
    grid-template-columns:28px 1fr;
    padding:14px 15px;
    font-size:13.5px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__proofIcon{
    width:26px;
    height:26px;
    font-size:14px;
  }
}

@media (max-width:420px){
  .cc-ops.cc-ops-warm .cc-ops-warm__title{
    font-size:clamp(27px, 8.4vw, 34px);
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__step{
    grid-template-columns:38px 1fr;
    gap:14px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__steps::before{
    left:18px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__num{
    width:38px;
    height:38px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__img{
    aspect-ratio:1.2 / 1;
  }
}

@media (prefers-reduced-motion:reduce){
  .cc-ops.cc-ops-warm .cc-ops-warm__img{
    transition:none !important;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__media:hover .cc-ops-warm__img{
    transform:none !important;
  }
}




/* =========================================================
   CityCleaner — Ajustement image section démarrage
   Objectif : image droite légèrement plus présente
   ========================================================= */

@media (min-width:900px){
  .cc-ops.cc-ops-warm .cc-ops-warm__media{
    max-width:560px;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__img{
    aspect-ratio:4 / 2.75;
  }
}


















/* =========================================================
CityCleaner — CTA FINAL — CSS patch V1
Consigne : coller ce CSS tout en bas du CSS additionnel.
========================================================= */

.cc-cta-final.cc-patch-009{
  background:
    radial-gradient(900px 420px at 12% 10%, rgba(70,217,255,.07), transparent 60%),
    radial-gradient(760px 380px at 88% 15%, rgba(137,88,254,.06), transparent 55%),
    var(--cc-bgSoft);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__inner{
  width:min(860px, calc(100% - 32px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-top:var(--cc-section-py-cta-mobile) !important;
  padding-bottom:var(--cc-section-py-cta-mobile) !important;
  text-align:center;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__card{
  position:relative;
  overflow:hidden;
  background:var(--cc-bg);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r24);
  box-shadow:0 18px 44px rgba(1,33,72,.08);
  padding:clamp(32px, 5vw, 56px);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg, rgba(39,207,169,.72), rgba(70,217,255,.44));
}

.cc-cta-final.cc-patch-009 .cc-cta-final__kicker{
  margin:0 0 var(--cc-16);
  color:var(--cc-ink62);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  line-height:1.35;
  text-transform:uppercase;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__title{
  margin:0 0 var(--cc-16);
  color:var(--cc-navy);
  font-size:clamp(28px, 5.2vw, 40px);
  font-weight:950;
  line-height:1.08;
  letter-spacing:-.01em;
  text-wrap:balance;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__text{
  margin:0 auto var(--cc-24);
  max-width:62ch;
  color:var(--cc-ink78);
  font-size:16px;
  font-weight:650;
  line-height:1.65;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checks{
  list-style:none;
  margin:0 auto var(--cc-32);
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cc-12);
  max-width:720px;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checks li{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:44px;
  padding:10px 12px;
  color:var(--cc-ink78);
  background:var(--cc-bgSoft);
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r16);
  font-size:14px;
  font-weight:800;
  line-height:1.35;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checkIco{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  flex:0 0 22px;
  border-radius:10px;
  color:var(--cc-navy);
  background:rgba(39,207,169,.10);
  border:1px solid rgba(39,207,169,.18);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checkIco svg{
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__ctaRow{
  display:grid;
  justify-items:center;
  gap:var(--cc-12);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__cta{
  width:100%;
  max-width:420px;
  font-size:16px;
  line-height:1.2;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__ico{
  display:inline-flex;
  width:18px;
  height:18px;
  flex:0 0 18px;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__ico svg{
  width:18px;
  height:18px;
  color:#ffffff;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__micro{
  margin:0;
  max-width:54ch;
  color:var(--cc-ink62);
  font-size:12px;
  font-weight:650;
  line-height:1.45;
}

@media (min-width:900px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__inner{
    width:min(860px, calc(100% - 64px)) !important;
    padding-top:var(--cc-section-py-cta-desktop) !important;
    padding-bottom:var(--cc-section-py-cta-desktop) !important;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__checks{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__cta{
    width:auto;
    min-width:320px;
  }
}

@media (max-width:420px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__inner{
    width:calc(100% - 28px) !important;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__card{
    padding:30px 18px;
    border-radius:var(--cc-r22);
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__checks li{
    justify-content:flex-start;
    text-align:left;
  }
}

@media (prefers-reduced-motion: reduce){
  .cc-cta-final.cc-patch-009 .cc-ctaPrimary{
    transition:none !important;
  }

  .cc-cta-final.cc-patch-009 .cc-ctaPrimary:hover{
    transform:none !important;
  }
}





/* =========================================================
CityCleaner — CTA FINAL — Patch CSS V1.1
Objectif :
- donner plus de présence au CTA final ;
- réduire l'effet "petit module SaaS" ;
- renforcer la lisibilité et le bouton ;
- conserver le HTML V1 sans modification.

Consigne :
Colle ce patch tout en bas du CSS additionnel.
Il surcharge uniquement .cc-cta-final.cc-patch-009.
========================================================= */

.cc-cta-final.cc-patch-009 .cc-cta-final__inner{
  width:min(920px, calc(100% - 32px)) !important;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__card{
  padding:clamp(38px, 5.4vw, 64px);
  border-radius:28px;
  box-shadow:
    0 22px 56px rgba(1,33,72,.09),
    0 1px 0 rgba(255,255,255,.78) inset;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__card::before{
  height:3px;
  background:linear-gradient(90deg, rgba(39,207,169,.78), rgba(70,217,255,.48));
}

.cc-cta-final.cc-patch-009 .cc-cta-final__kicker{
  margin-bottom:14px;
  font-size:11px;
  letter-spacing:.11em;
  color:rgba(1,33,72,.58);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__title{
  margin-bottom:18px;
  font-size:clamp(30px, 5.4vw, 42px);
  line-height:1.06;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__text{
  max-width:64ch;
  margin-bottom:28px;
  font-size:17px;
  line-height:1.62;
  color:rgba(1,33,72,.76);
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checks{
  max-width:760px;
  margin-bottom:34px;
  gap:14px;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checks li{
  min-height:48px;
  padding:12px 14px;
  background:#ffffff;
  border-color:rgba(1,33,72,.12);
  box-shadow:0 8px 18px rgba(1,33,72,.035);
  font-size:14px;
  font-weight:850;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__checkIco{
  width:24px;
  height:24px;
  flex-basis:24px;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__cta{
  min-height:58px;
  max-width:460px;
  padding-left:24px;
  padding-right:24px;
  font-size:16px;
  font-weight:900;
}

.cc-cta-final.cc-patch-009 .cc-cta-final__micro{
  max-width:58ch;
  font-size:12.5px;
  color:rgba(1,33,72,.58);
}

@media (min-width:900px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__inner{
    width:min(920px, calc(100% - 64px)) !important;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__cta{
    min-width:360px;
  }
}

@media (max-width:640px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__card{
    padding:34px 22px;
    border-radius:24px;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__text{
    font-size:16px;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__checks{
    margin-bottom:28px;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__checks li{
    justify-content:flex-start;
    text-align:left;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__cta{
    width:100%;
    max-width:none;
  }
}

@media (max-width:420px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__inner{
    width:calc(100% - 28px) !important;
  }

  .cc-cta-final.cc-patch-009 .cc-cta-final__card{
    padding:32px 18px;
  }
}



























/* =========================================================
CityCleaner — FAQ — Patch visuel V1.1 “Split premium”
Objectif :
- donner une vraie présence à la FAQ avant le CTA final ;
- supprimer l'effet liste plate avec grand vide à droite ;
- créer une lecture desktop en 2 zones : intro à gauche / accordéons à droite ;
- conserver le HTML actuel, le schema FAQ et les sections validées ;
- scoper strictement sur .cc-faq.cc-patch-007.
========================================================= */

/* Section : fond doux cohérent avec les sections premium */
.cc-faq.cc-patch-007{
  background:
    radial-gradient(900px 420px at 10% 8%, rgba(70,217,255,.055), transparent 62%),
    radial-gradient(760px 380px at 92% 12%, rgba(137,88,254,.045), transparent 58%),
    var(--cc-bg);
}

/* Layout desktop : header à gauche, FAQ à droite */
@media (min-width:900px){
  .cc-faq.cc-patch-007 .cc-faq__inner{
    display:grid;
    grid-template-columns:minmax(280px,.82fr) minmax(520px,1.18fr);
    gap:clamp(48px,6vw,88px);
    align-items:start;
  }

  .cc-faq.cc-patch-007 .cc-faq__header{
    position:sticky;
    top:96px;
    margin-bottom:0;
    max-width:440px;
  }

  .cc-faq.cc-patch-007 .cc-faq__list{
    max-width:none !important;
    width:100%;
  }
}

/* Header : plus éditorial, plus premium */
.cc-faq.cc-patch-007 .cc-faq__header{
  margin-bottom:var(--cc-32);
}

.cc-faq.cc-patch-007 .cc-faq__title{
  font-size:clamp(30px,4.8vw,44px);
  line-height:1.06;
  letter-spacing:-.025em;
  margin-bottom:var(--cc-16);
}

.cc-faq.cc-patch-007 .cc-faq__lead{
  max-width:48ch;
  font-size:16px;
  line-height:1.7;
  color:rgba(1,33,72,.68);
}

/* Petit repère visuel sous le lead, sans ajout HTML */
.cc-faq.cc-patch-007 .cc-faq__lead::after{
  content:"";
  display:block;
  width:72px;
  height:3px;
  margin-top:var(--cc-24);
  border-radius:999px;
  background:linear-gradient(90deg, rgba(39,207,169,.82), rgba(70,217,255,.48));
}

/* Liste : rythme plus premium */
.cc-faq.cc-patch-007 .cc-faq__list{
  gap:14px;
}

/* Accordéons : carte plus nette, moins “input vide” */
.cc-faq.cc-patch-007 .cc-faq__item{
  border:1px solid rgba(1,33,72,.10);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 24px rgba(1,33,72,.045);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease,
    background-color 160ms ease;
}

/* Hover desktop discret */
@media (hover:hover){
  .cc-faq.cc-patch-007 .cc-faq__item:hover{
    transform:translateY(-1px);
    border-color:rgba(1,33,72,.16);
    box-shadow:0 14px 30px rgba(1,33,72,.065);
  }
}

/* Item ouvert : plus lisible, sans devenir lourd */
.cc-faq.cc-patch-007 .cc-faq__item[open]{
  border-color:rgba(1,33,72,.14);
  background:#fff;
  box-shadow:0 16px 36px rgba(1,33,72,.07);
}

.cc-faq.cc-patch-007 .cc-faq__item[open] .cc-faq__summary{
  background:
    linear-gradient(180deg, rgba(247,249,251,.94), rgba(255,255,255,.96));
  border-bottom:1px solid rgba(1,33,72,.10);
}

/* Summary : meilleure zone cliquable */
.cc-faq.cc-patch-007 .cc-faq__summary{
  min-height:64px;
  padding:20px 24px;
  align-items:center;
  font-size:16px;
  line-height:1.35;
}

/* Question : plus lisible, moins compressée */
.cc-faq.cc-patch-007 .cc-faq__q{
  color:var(--cc-navy);
  letter-spacing:-.005em;
}

/* Chevron : bouton visuel plus clair */
.cc-faq.cc-patch-007 .cc-faq__chev{
  width:32px;
  height:32px;
  flex:0 0 32px;
  margin-top:0;
  border-radius:12px;
  background:rgba(39,207,169,.08);
  border:1px solid rgba(39,207,169,.16);
  opacity:1;
  transition:
    transform 160ms ease,
    background-color 160ms ease,
    border-color 160ms ease;
}

.cc-faq.cc-patch-007 .cc-faq__chev svg{
  width:18px;
  height:18px;
  stroke:var(--cc-navy);
  stroke-width:2.2;
}

.cc-faq.cc-patch-007 .cc-faq__item[open] .cc-faq__chev{
  transform:rotate(180deg);
  background:rgba(39,207,169,.13);
  border-color:rgba(39,207,169,.24);
}

/* Contenu ouvert : meilleure respiration et lecture */
.cc-faq.cc-patch-007 .cc-faq__content{
  padding:22px 24px 24px;
}

.cc-faq.cc-patch-007 .cc-faq__content p{
  margin:0;
  max-width:62ch;
  color:rgba(1,33,72,.72);
  font-size:15px;
  line-height:1.72;
  font-weight:650;
}

.cc-faq.cc-patch-007 .cc-faq__content p + p{
  margin-top:12px;
}

.cc-faq.cc-patch-007 .cc-faq__key{
  color:rgba(1,33,72,.62);
  font-size:14px;
}

/* Focus accessibilité */
.cc-faq.cc-patch-007 .cc-faq__summary:focus-visible{
  outline:3px solid rgba(70,217,255,.42);
  outline-offset:4px;
  border-radius:18px;
}

/* Mobile : conserve une lecture compacte, sans sticky ni split */
@media (max-width:899px){
  .cc-faq.cc-patch-007 .cc-faq__inner{
    display:block;
  }

  .cc-faq.cc-patch-007 .cc-faq__header{
    position:static;
    max-width:none;
    margin-bottom:var(--cc-24);
  }

  .cc-faq.cc-patch-007 .cc-faq__title{
    font-size:clamp(28px,8vw,36px);
  }

  .cc-faq.cc-patch-007 .cc-faq__lead{
    font-size:15px;
    line-height:1.65;
  }

  .cc-faq.cc-patch-007 .cc-faq__lead::after{
    margin-top:var(--cc-20);
  }

  .cc-faq.cc-patch-007 .cc-faq__summary{
    min-height:58px;
    padding:17px 18px;
    font-size:15px;
  }

  .cc-faq.cc-patch-007 .cc-faq__chev{
    width:30px;
    height:30px;
    flex-basis:30px;
  }

  .cc-faq.cc-patch-007 .cc-faq__content{
    padding:18px 18px 20px;
  }

  .cc-faq.cc-patch-007 .cc-faq__content p{
    font-size:14px;
    line-height:1.68;
  }
}

/* Très petit mobile : éviter l'effet tassé */
@media (max-width:420px){
  .cc-faq.cc-patch-007 .cc-faq__summary{
    gap:12px;
    padding:16px;
  }

  .cc-faq.cc-patch-007 .cc-faq__content{
    padding:16px;
  }

  .cc-faq.cc-patch-007 .cc-faq__item{
    border-radius:18px;
  }
}

/* Motion safe */
@media (prefers-reduced-motion:reduce){
  .cc-faq.cc-patch-007 .cc-faq__item,
  .cc-faq.cc-patch-007 .cc-faq__chev{
    transition:none !important;
  }

  .cc-faq.cc-patch-007 .cc-faq__item:hover{
    transform:none !important;
  }
}















/* =========================================================
CityCleaner — FAQ — Patch couleur V1.3
Objectif :
- corriger le rendu trop gris du patch précédent ;
- donner un vrai fond bleu très clair aux questions ;
- rendre l'état ouvert légèrement plus foncé ;
- garder le turquoise uniquement comme accent premium ;
- à coller tout en bas du CSS additionnel, APRÈS l'ancien patch couleur.
========================================================= */

/* Questions fermées : vrai bleu très clair, pas gris */
.cc-faq.cc-patch-007 .cc-faq__summary{
  background:
    linear-gradient(180deg, #F2FAFD 0%, #F7FBFD 100%) !important;
}

/* Carte fermée : bordure bleutée plus lisible */
.cc-faq.cc-patch-007 .cc-faq__item{
  background:#ffffff !important;
  border-color:rgba(1,33,72,.13) !important;
}

/* Questions ouvertes : bleu légèrement plus foncé */
.cc-faq.cc-patch-007 .cc-faq__item[open] .cc-faq__summary{
  background:
    linear-gradient(180deg, #E8F6FB 0%, #F1FAFD 100%) !important;
  border-bottom:1px solid rgba(1,33,72,.13) !important;
}

/* Réponse ouverte : fond blanc pour garder une lecture nette */
.cc-faq.cc-patch-007 .cc-faq__content{
  background:#ffffff !important;
}

/* Accent turquoise : chevron et repère d'interaction */
.cc-faq.cc-patch-007 .cc-faq__chev{
  background:rgba(39,207,169,.13) !important;
  border-color:rgba(39,207,169,.28) !important;
}

.cc-faq.cc-patch-007 .cc-faq__item[open] .cc-faq__chev{
  background:rgba(39,207,169,.18) !important;
  border-color:rgba(39,207,169,.36) !important;
}

/* Hover desktop : renforcement bleu très léger */
@media (hover:hover){
  .cc-faq.cc-patch-007 .cc-faq__item:hover .cc-faq__summary{
    background:
      linear-gradient(180deg, #EDF8FC 0%, #F4FBFD 100%) !important;
  }

  .cc-faq.cc-patch-007 .cc-faq__item[open]:hover .cc-faq__summary{
    background:
      linear-gradient(180deg, #E6F5FA 0%, #EFF9FC 100%) !important;
  }
}

/* Mobile : même logique, légèrement adoucie */
@media (max-width:640px){
  .cc-faq.cc-patch-007 .cc-faq__summary{
    background:
      linear-gradient(180deg, #F4FAFD 0%, #F8FCFE 100%) !important;
  }

  .cc-faq.cc-patch-007 .cc-faq__item[open] .cc-faq__summary{
    background:
      linear-gradient(180deg, #ECF7FB 0%, #F3FAFD 100%) !important;
  }
}

/* =========================================================
   CityCleaner — PATCH FINAL HOMEPAGE V21
   Delta minimal :
   - section démarrage en timeline 3 étapes sans image ;
   - note Fit / No fit légèrement plus lisible ;
   - aucun changement de la section tarif.
   ========================================================= */

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__layout{
  display:block;
  max-width:1040px;
  margin:0 auto;
}

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__content{
  min-width:0;
}

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__header{
  max-width:760px;
  margin:0 0 var(--cc-40);
}

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__steps{
  max-width:none;
}

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__body{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(1,33,72,.10);
  border-radius:var(--cc-r18);
  box-shadow:0 10px 26px rgba(1,33,72,.045);
}

.cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__visual{
  display:none;
}

@media (min-width:900px){
  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__steps{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:var(--cc-24);
    align-items:stretch;
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__steps::before{
    left:22px;
    right:22px;
    top:22px;
    bottom:auto;
    width:auto;
    height:1px;
    background:linear-gradient(
      90deg,
      rgba(39,207,169,.58),
      rgba(1,33,72,.10)
    );
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__step{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    gap:var(--cc-16);
    align-items:start;
    min-height:100%;
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__num{
    margin:0;
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__body{
    padding:18px 18px 20px;
    min-height:172px;
  }
}

@media (max-width:899px){
  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__header{
    margin-bottom:var(--cc-28);
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__steps{
    gap:var(--cc-20);
  }

  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__body{
    padding:15px 16px 16px;
  }
}

@media (max-width:420px){
  .cc-ops.cc-ops-warm.cc-ops-warm--timelineOnly .cc-ops-warm__body{
    padding:14px 14px 15px;
    border-radius:var(--cc-r16);
  }
}

.cc-patch-compat-v1 .cc-fitx__limit{
  margin-top:18px;
  padding-top:14px;
  max-width:88ch;
  color:rgba(1,33,72,.72);
  font-size:14.5px;
  line-height:1.55;
  font-weight:700;
}

.cc-patch-compat-v1 .cc-fitx__limit strong{
  color:var(--cc-navy);
  font-weight:950;
}

@media (max-width:640px){
  .cc-patch-compat-v1 .cc-fitx__limit{
    margin-top:14px;
    padding-top:12px;
    font-size:13.75px;
    line-height:1.5;
  }
}






/* =========================================================
   CityCleaner — PATCH HOMEPAGE V22
   À coller tout en bas du CSS additionnel
   Objectifs :
   - fonds de sections full-bleed pour éviter l'effet "bloc posé" au dézoom ;
   - alternance de fonds plus cohérente par fonction de section ;
   - timeline "Comment la prise en charge démarre" plus chaude et plus lisible ;
   - ordre mobile des visuels : image après l'introduction, pas rejetée en fin de section ;
   - icône "dépasse le standard" différenciée du check.
   ========================================================= */

/* 1) Full-bleed des sections homepage : le fond occupe toute la largeur viewport,
   même si le widget HTML est placé dans un conteneur Elementor/Astra centré. */
:where(
  .cc-hero.cc-hero--visual,
  .cc-delegate3,
  .cc-plans,
  .cc-fitx,
  .cc-proofv5,
  .cc-ops,
  .cc-faq,
  .cc-cta-final
){
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  overflow:hidden;
}

/* Sécurité anti-scroll horizontal liée au full-bleed, uniquement sur les pages qui ont le hero homepage. */
@supports selector(body:has(.cc-hero.cc-hero--visual)){
  body:has(.cc-hero.cc-hero--visual){
    overflow-x:clip;
  }
}

/* 2) Surfaces optimisées par rôle de section.
   Règle : pas une couleur différente partout ; 2 familles seulement : blanc calme + soft bleuté/turquoise. */
.cc-hero.cc-hero--visual{
  background:
    radial-gradient(980px 520px at 9% 4%, rgba(70,217,255,.105), transparent 62%),
    radial-gradient(760px 460px at 88% 6%, rgba(137,88,254,.065), transparent 60%),
    #ffffff !important;
}

.cc-delegate3.cc-delegate3--v6-overlap{
  background:
    radial-gradient(900px 430px at 10% 8%, rgba(70,217,255,.068), transparent 62%),
    radial-gradient(760px 380px at 88% 18%, rgba(39,207,169,.060), transparent 58%),
    #F7FAFC !important;
}

.cc-plans.cc-plans--framed{
  background:#ffffff !important;
}

.cc-fitx{
  background:
    radial-gradient(860px 420px at 12% 8%, rgba(70,217,255,.060), transparent 62%),
    radial-gradient(760px 380px at 88% 18%, rgba(137,88,254,.045), transparent 58%),
    #F7F9FB !important;
}

.cc-proofv5{
  background:
    radial-gradient(880px 440px at 8% 10%, rgba(39,207,169,.066), transparent 64%),
    radial-gradient(800px 400px at 92% 14%, rgba(70,217,255,.060), transparent 60%),
    #F3F7FA !important;
}

.cc-ops.cc-ops-warm{
  background:
    radial-gradient(920px 440px at 10% 8%, rgba(70,217,255,.060), transparent 62%),
    radial-gradient(780px 380px at 86% 14%, rgba(39,207,169,.055), transparent 58%),
    linear-gradient(180deg, #F7FAFC 0%, #F5F8FB 100%) !important;
}

.cc-faq{
  background:
    radial-gradient(860px 420px at 92% 12%, rgba(39,207,169,.035), transparent 62%),
    #ffffff !important;
}

.cc-cta-final{
  background:
    radial-gradient(760px 380px at 50% 14%, rgba(70,217,255,.060), transparent 62%),
    radial-gradient(680px 340px at 74% 28%, rgba(137,88,254,.045), transparent 60%),
    #F7F9FB !important;
}

/* 3) Timeline plus chaleureuse, sans basculer dans le décoratif. */
.cc-ops.cc-ops-warm .cc-ops-warm__header{
  max-width:760px;
}

.cc-ops.cc-ops-warm .cc-ops-warm__lead{
  color:rgba(1,33,72,.74) !important;
}

.cc-ops.cc-ops-warm .cc-ops-warm__steps{
  position:relative;
  margin-top:clamp(34px, 4vw, 48px) !important;
  display:grid;
  gap:24px !important;
}

.cc-ops.cc-ops-warm .cc-ops-warm__step{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:16px;
  align-items:start;
  padding:22px 22px 24px !important;
  border:1px solid rgba(1,33,72,.095) !important;
  border-radius:22px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.82)),
    radial-gradient(420px 220px at 8% 0%, rgba(39,207,169,.060), transparent 62%) !important;
  box-shadow:0 14px 32px rgba(1,33,72,.055) !important;
}

.cc-ops.cc-ops-warm .cc-ops-warm__step::before{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  top:0;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(39,207,169,.55), rgba(70,217,255,.24));
  opacity:.72;
}

.cc-ops.cc-ops-warm .cc-ops-warm__num{
  width:38px !important;
  height:38px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  color:var(--cc-navy) !important;
  background:
    linear-gradient(180deg, #ffffff, #F4FFFC) !important;
  border:1px solid rgba(39,207,169,.36) !important;
  box-shadow:0 8px 20px rgba(39,207,169,.12) !important;
  font-size:14px !important;
  font-weight:950 !important;
  line-height:1 !important;
}

.cc-ops.cc-ops-warm .cc-ops-warm__stepTitle{
  margin:0 0 8px !important;
  color:var(--cc-navy) !important;
  font-size:clamp(18px, 1.7vw, 21px) !important;
  line-height:1.18 !important;
  letter-spacing:-.018em !important;
}

.cc-ops.cc-ops-warm .cc-ops-warm__text{
  color:rgba(1,33,72,.70) !important;
  font-weight:650 !important;
  line-height:1.55 !important;
}

@media (min-width:900px){
  .cc-ops.cc-ops-warm .cc-ops-warm__steps{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:26px !important;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__steps::before{
    content:"";
    position:absolute;
    left:4%;
    right:4%;
    top:19px;
    height:1px;
    background:linear-gradient(90deg, rgba(39,207,169,.36), rgba(70,217,255,.26), rgba(39,207,169,.20));
    z-index:0;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__step{
    grid-template-columns:1fr;
    padding-top:34px !important;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__num{
    position:absolute;
    top:-20px;
    left:22px;
  }
}

@media (max-width:899px){
  .cc-ops.cc-ops-warm .cc-ops-warm__steps{
    gap:16px !important;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__step{
    grid-template-columns:42px minmax(0,1fr);
    padding:18px 16px 18px !important;
    border-radius:20px !important;
  }

  .cc-ops.cc-ops-warm .cc-ops-warm__num{
    width:34px !important;
    height:34px !important;
  }
}

/* 4) Mobile : les images ne sont plus rejetées en fin de section.
   Elles passent après l'introduction, avant les cartes/listes. */
@media (max-width:899px){
  .cc-delegate3--v6-overlap .cc-v6Overlap__content{
    display:contents;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__header{
    order:1;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__media{
    order:2;
    margin-top:2px;
    margin-bottom:2px;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__steps{
    order:3;
  }

  .cc-delegate3--v6-overlap .cc-v6Overlap__note{
    order:4;
  }

  .cc-proofv5__content{
    display:contents;
  }

  .cc-proofv5__head{
    order:1;
  }

  .cc-proofv5__visual{
    order:2;
  }

  .cc-proofv5__summary{
    order:3;
  }
}

/* 5) Icône du point "dépasse le standard" : hors standard ≠ check positif. */
.cc-proofv5__summaryItem--scope{
  background:
    linear-gradient(180deg, rgba(1,33,72,.022), rgba(1,33,72,.030)) !important;
}

.cc-proofv5__summaryIcon--scope,
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon{
  color:rgba(1,33,72,.78) !important;
  background:rgba(1,33,72,.045) !important;
  border-color:rgba(1,33,72,.16) !important;
  box-shadow:none !important;
}

.cc-proofv5__summaryIcon--scope svg,
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon svg{
  width:13px !important;
  height:13px !important;
  stroke-width:2.7 !important;
}




















































/* =========================================================
   CityCleaner — CSS COMPARAISON 5 VARIANTES "HOW IT WORKS"
   À coller tout en bas du CSS additionnel.
   Conçu pour afficher les 5 variantes EN MÊME TEMPS.
   À retirer après choix de la version finale.
   ========================================================= */

:root{
  --cc-navy:#012148;
  --cc-turq:#27CFA9;
  --cc-sky:#46D9FF;
  --cc-violet:#8958FE;
  --cc-bg:#ffffff;
  --cc-bgSoft:#F7F9FB;
  --cc-ink78:rgba(1,33,72,.78);
  --cc-ink62:rgba(1,33,72,.62);
  --cc-ink38:rgba(1,33,72,.38);
  --cc-ink18:rgba(1,33,72,.18);
  --cc-ink10:rgba(1,33,72,.10);
  --cc-r18:18px;
  --cc-r22:22px;
  --cc-r24:24px;
  --cc-r999:999px;
  --cc-shadow-card:0 10px 26px rgba(1,33,72,.06);
  --cc-shadow-soft:0 18px 44px rgba(1,33,72,.08);
  --cc-container:min(1120px, calc(100% - 32px));
}

/* Wrapper de comparaison : évite l'effet "5 sections collées" */
.cc-opsCompare{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:0 !important;
  background:#EEF3F7;
  overflow:hidden;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}

/* Base commune */
.cc-opsv1,
.cc-opsv2,
.cc-opsv3,
.cc-opsv4,
.cc-opsv5{
  position:relative;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  overflow:hidden;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  color:var(--cc-navy);
  border-top:1px solid rgba(1,33,72,.08);
}

/* Badge comparatif provisoire */
.cc-opsv1::before,
.cc-opsv2::before,
.cc-opsv3::before,
.cc-opsv4::before,
.cc-opsv5::before{
  content:attr(data-variant);
  position:absolute;
  z-index:20;
  top:18px;
  left:max(16px, calc((100vw - 1120px) / 2));
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 11px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--cc-navy);
  background:rgba(255,255,255,.86);
  border:1px solid rgba(1,33,72,.12);
  box-shadow:0 8px 20px rgba(1,33,72,.06);
  backdrop-filter:blur(10px);
}

.cc-opsv2::before{
  color:#fff;
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.20);
}

@supports selector(body:has(.cc-opsCompare)){
  body:has(.cc-opsCompare){
    overflow-x:clip;
  }
}

.cc-opsv1__inner,
.cc-opsv2__inner,
.cc-opsv3__inner,
.cc-opsv4__inner,
.cc-opsv5__inner{
  width:var(--cc-container);
  margin:0 auto;
  padding:clamp(92px, 9vw, 136px) 0 clamp(72px, 8vw, 120px);
}

.cc-opsv1 h2,
.cc-opsv2 h2,
.cc-opsv3 h2,
.cc-opsv4 h2,
.cc-opsv5 h2,
.cc-opsv1 h3,
.cc-opsv2 h3,
.cc-opsv3 h3,
.cc-opsv4 h3,
.cc-opsv5 h3,
.cc-opsv1 p,
.cc-opsv2 p,
.cc-opsv3 p,
.cc-opsv4 p,
.cc-opsv5 p{
  margin-top:0;
}

.cc-opsv1 svg,
.cc-opsv2 svg,
.cc-opsv3 svg,
.cc-opsv4 svg,
.cc-opsv5 svg{
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.cc-opsv1__kicker,
.cc-opsv2__kicker,
.cc-opsv3__kicker,
.cc-opsv4__kicker,
.cc-opsv5__kicker{
  margin:0 0 12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
}

.cc-opsv1__lead,
.cc-opsv2__lead,
.cc-opsv3__lead,
.cc-opsv4__lead,
.cc-opsv5__lead{
  max-width:66ch;
  margin:0;
  color:var(--cc-ink78);
  font-size:16px;
  line-height:1.65;
  font-weight:650;
}











/* =========================================================
   VARIANTE 1 — CARTES NAVY
   ========================================================= */
.cc-opsv1{
  background:
    radial-gradient(900px 420px at 10% 8%, rgba(70,217,255,.065), transparent 62%),
    radial-gradient(760px 360px at 88% 14%, rgba(137,88,254,.045), transparent 58%),
    #F4F7FA;
}

.cc-opsv1__title{
  margin:0 0 18px;
  font-size:clamp(34px, 5.2vw, 58px);
  line-height:1.04;
  letter-spacing:-.035em;
  font-weight:950;
  color:var(--cc-navy);
}

.cc-opsv1__grid{
  margin-top:40px;
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.cc-opsv1__card{
  min-height:260px;
  padding:26px 26px 28px;
  border-radius:18px;
  background:linear-gradient(180deg, #062a57 0%, #012148 100%);
  color:#ffffff;
  box-shadow:0 18px 44px rgba(1,33,72,.14);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.cc-opsv1__num{
  font-size:12px;
  letter-spacing:.08em;
  color:rgba(255,255,255,.72);
  font-weight:900;
}

.cc-opsv1__icon{
  width:42px;
  height:42px;
  margin-top:28px;
  color:rgba(255,255,255,.72);
}

.cc-opsv1__icon svg{
  width:42px;
  height:42px;
}

.cc-opsv1__card h3{
  margin:28px 0 12px;
  font-size:22px;
  line-height:1.16;
  letter-spacing:-.018em;
  font-weight:900;
  color:#ffffff;
}

.cc-opsv1__card p{
  margin:0;
  color:rgba(255,255,255,.80);
  font-size:15px;
  line-height:1.58;
  font-weight:650;
}

@media (min-width:900px){
  .cc-opsv1__grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

/* =========================================================
   CityCleaner — Patch harmonisation H2 section démarrage
   Objectif : aligner le titre “Trois points à cadrer...”
   sur la taille du titre .cc-proofv5__title
   ========================================================= */

.cc-opsCompare .cc-opsv1__title,
.cc-opsv1__title{
  font-size:clamp(26px, 6.2vw, 40px) !important;
  line-height:1.1 !important;
  letter-spacing:-.01em !important;
  font-weight:950 !important;
  margin:0 0 var(--cc-16, 16px) !important;
}

@media (max-width:899px){
  .cc-opsCompare .cc-opsv1__title,
  .cc-opsv1__title{
    font-size:clamp(26px, 7.2vw, 36px) !important;
    line-height:1.1 !important;
  }
}
























































/* =========================================================
   CityCleaner - patch section demarrage mobile
   Scope : .cc-opsCompare / .cc-opsv1 uniquement
   Objectif : titre stable, cartes moins denses sur mobile
   Rollback : supprimer uniquement ce bloc
   ========================================================= */

.cc-opsCompare .cc-opsv1__title,
.cc-opsv1__title{
  letter-spacing:0 !important;
  overflow-wrap:break-word;
}

@media (max-width:899px){
  .cc-opsCompare .cc-opsv1__inner,
  .cc-opsv1__inner{
    width:min(100% - 28px, 1120px);
    padding-top:64px;
    padding-bottom:54px;
  }

  .cc-opsCompare .cc-opsv1__lead,
  .cc-opsv1__lead{
    max-width:62ch;
    font-size:15.5px;
    line-height:1.58;
  }

  .cc-opsCompare .cc-opsv1__grid,
  .cc-opsv1__grid{
    margin-top:24px;
    gap:12px;
  }

  .cc-opsCompare .cc-opsv1__card,
  .cc-opsv1__card{
    min-height:0;
    padding:20px 18px;
    border-radius:16px;
  }

  .cc-opsCompare .cc-opsv1__icon,
  .cc-opsv1__icon,
  .cc-opsCompare .cc-opsv1__icon svg,
  .cc-opsv1__icon svg{
    width:36px;
    height:36px;
  }

  .cc-opsCompare .cc-opsv1__icon,
  .cc-opsv1__icon{
    margin-top:18px;
  }

  .cc-opsCompare .cc-opsv1__card h3,
  .cc-opsv1__card h3{
    margin:18px 0 8px;
    font-size:19px;
    line-height:1.22;
    letter-spacing:0;
  }

  .cc-opsCompare .cc-opsv1__card p,
  .cc-opsv1__card p{
    font-size:14.5px;
    line-height:1.52;
  }
}

@media (max-width:480px){
  .cc-opsCompare .cc-opsv1__title,
  .cc-opsv1__title{
    font-size:clamp(26px, 8vw, 34px) !important;
    line-height:1.12 !important;
  }

  .cc-opsCompare .cc-opsv1__inner,
  .cc-opsv1__inner{
    width:min(100% - 24px, 1120px);
    padding-top:56px;
    padding-bottom:48px;
  }
}



























/* =========================================================
   CityCleaner — PATCH HOW IT WORKS / VERSION 1
   Inspiration : timeline horizontale type screen n°2
   Usage : remplacer le HTML de la section actuelle par la version V1.
   À coller en bas du CSS additionnel.
   ========================================================= */

.cc-ops--timeline-v1{
  background:transparent;
}

.cc-ops--timeline-v1 .cc-ops__inner{
  padding-top:var(--cc-section-py-mobile) !important;
  padding-bottom:var(--cc-section-py-mobile) !important;
}

.cc-startV1__header{
  max-width:680px;
  margin:0 0 clamp(34px, 5vw, 58px);
}

.cc-startV1__kicker{
  margin:0 0 12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
  white-space:nowrap;
}

.cc-startV1__title{
  margin:0 0 var(--cc-16);
  color:var(--cc-navy);
  font-size:clamp(28px, 5.4vw, 42px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.02em;
  text-wrap:balance;
}

.cc-startV1__lead{
  margin:0;
  max-width:62ch;
  color:var(--cc-ink78);
  font-size:16px;
  line-height:1.65;
  font-weight:650;
}

.cc-startTimelineV1{
  position:relative;
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(28px, 5vw, 64px);
}

.cc-startTimelineV1::before{
  content:"";
  position:absolute;
  z-index:0;
  top:15px;
  left:0;
  right:0;
  height:2px;
  border-radius:999px;
  background:
    linear-gradient(
      90deg,
      rgba(1,33,72,.28) 0%,
      rgba(1,33,72,.28) 66%,
      rgba(39,207,169,.46) 66%,
      rgba(39,207,169,.46) 100%
    );
}

.cc-startTimelineV1__item{
  position:relative;
  z-index:1;
  min-width:0;
  padding-top:62px;
}

.cc-startTimelineV1__dot{
  position:absolute;
  top:0;
  left:0;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--cc-navy);
  color:#fff;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:
    0 0 0 4px rgba(1,33,72,.08),
    0 10px 22px rgba(1,33,72,.10);
  font-size:13px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}

.cc-startTimelineV1__dot--accent{
  background:var(--cc-turq);
  color:var(--cc-navy);
  box-shadow:
    0 0 0 4px rgba(39,207,169,.14),
    0 10px 22px rgba(1,33,72,.10);
}

.cc-startTimelineV1__title{
  margin:0 0 10px;
  color:var(--cc-navy);
  font-size:19px;
  line-height:1.22;
  font-weight:950;
  letter-spacing:-.015em;
  text-wrap:balance;
}

.cc-startTimelineV1__text{
  margin:0;
  color:var(--cc-ink78);
  font-size:15px;
  line-height:1.6;
  font-weight:650;
  max-width:42ch;
}

@media (min-width:900px){
  .cc-ops--timeline-v1 .cc-ops__inner{
    padding-top:var(--cc-section-py-desktop) !important;
    padding-bottom:var(--cc-section-py-desktop) !important;
  }
}

@media (max-width:899px){
  .cc-startV1__header{
    margin-bottom:32px;
  }

  .cc-startTimelineV1{
    grid-template-columns:1fr;
    gap:24px;
    max-width:720px;
  }

  .cc-startTimelineV1::before{
    top:16px;
    bottom:16px;
    left:16px;
    right:auto;
    width:2px;
    height:auto;
    background:
      linear-gradient(
        180deg,
        rgba(1,33,72,.24) 0%,
        rgba(1,33,72,.24) 66%,
        rgba(39,207,169,.46) 66%,
        rgba(39,207,169,.46) 100%
      );
  }

  .cc-startTimelineV1__item{
    padding:0 0 0 56px;
    min-height:92px;
  }

  .cc-startTimelineV1__dot{
    left:0;
    top:0;
  }

  .cc-startTimelineV1__title{
    font-size:18px;
  }

  .cc-startTimelineV1__text{
    max-width:none;
  }
}

@media (max-width:560px){
  .cc-startV1__kicker{
    white-space:normal;
  }

  .cc-startV1__lead{
    font-size:15px;
  }

  .cc-startTimelineV1__text{
    font-size:14.5px;
    line-height:1.58;
  }
}









/* =========================================================
   CityCleaner — POLISH PATCH V1 / timeline démarrage
   Objectif : rendre la ligne plus intentionnelle sur desktop
   sans modifier le HTML ni casser le mobile.
   À coller sous le patch CSS V1 existant.
   ========================================================= */

@media (min-width:900px){
  .cc-ops--timeline-v1 .cc-startTimelineV1::before{
    display:none;
  }

  .cc-ops--timeline-v1 .cc-startTimelineV1__item:not(:last-child)::after{
    content:"";
    position:absolute;
    z-index:-1;
    top:15px;
    left:32px;
    width:calc(100% + clamp(28px, 5vw, 64px) - 32px);
    height:2px;
    border-radius:999px;
    background:rgba(1,33,72,.24);
  }

  .cc-ops--timeline-v1 .cc-startTimelineV1__item:nth-child(2)::after{
    background:linear-gradient(
      90deg,
      rgba(1,33,72,.22) 0%,
      rgba(39,207,169,.48) 100%
    );
  }

  .cc-ops--timeline-v1 .cc-startTimelineV1__title{
    max-width:18ch;
  }

  .cc-ops--timeline-v1 .cc-startTimelineV1__text{
    max-width:38ch;
  }
}

























































/* =========================================================
   CityCleaner — SECTION "Ce que CityCleaner prend en main"
   VARIANTE 1 — image conservée + rail vertical premium
   Usage : remplacer le HTML actuel de la section .cc-delegate3.
   À coller en bas du CSS additionnel.
   ========================================================= */

.cc-takeover--rail-v1{
  background:transparent;
}

.cc-takeover--rail-v1 .cc-delegate3__inner{
  padding-top:var(--cc-section-py-mobile) !important;
  padding-bottom:var(--cc-section-py-mobile) !important;
}

.cc-takeover--rail-v1 .cc-takeoverRail__layout{
  display:grid;
  gap:var(--cc-32);
  align-items:center;
}

/* VISUEL — conserve la chaleur de la section actuelle */
.cc-takeover--rail-v1 .cc-takeoverRail__media{
  position:relative;
  min-height:380px;
  isolation:isolate;
}

.cc-takeover--rail-v1 .cc-takeoverRail__media::before{
  content:"";
  position:absolute;
  inset:12% 0 0 8%;
  z-index:0;
  pointer-events:none;
  border-radius:34px;
  background:
    radial-gradient(420px 260px at 26% 28%, rgba(39,207,169,.11), transparent 62%),
    radial-gradient(420px 260px at 80% 72%, rgba(70,217,255,.075), transparent 62%);
  filter:blur(5px);
}

.cc-takeover--rail-v1 .cc-takeoverRail__frame{
  position:absolute;
  z-index:1;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(1,33,72,.10);
  background:rgba(255,255,255,.56);
  box-shadow:0 10px 24px rgba(1,33,72,.055);
}

.cc-takeover--rail-v1 .cc-takeoverRail__frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
}

.cc-takeover--rail-v1 .cc-takeoverRail__frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(1,33,72,0) 55%, rgba(1,33,72,.045)),
    radial-gradient(320px 160px at 20% 0%, rgba(39,207,169,.10), transparent 60%);
}

.cc-takeover--rail-v1 .cc-takeoverRail__frame--main{
  left:0;
  top:14px;
  width:69%;
  height:334px;
  border-radius:24px;
}

.cc-takeover--rail-v1 .cc-takeoverRail__frame--secondary{
  right:6px;
  bottom:22px;
  width:52%;
  height:176px;
  border-radius:22px;
  z-index:2;
  box-shadow:0 12px 28px rgba(1,33,72,.07);
}

/* CONTENU */
.cc-takeover--rail-v1 .cc-takeoverRail__content{
  max-width:660px;
}

.cc-takeover--rail-v1 .cc-takeoverRail__kicker{
  margin:0 0 12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cc-ink62);
  white-space:nowrap;
}

.cc-takeover--rail-v1 .cc-takeoverRail__title{
  margin:0 0 var(--cc-12);
  max-width:650px;
  color:var(--cc-navy);
  font-size:clamp(28px, 3.4vw, 42px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.022em;
  text-wrap:balance;
}

.cc-takeover--rail-v1 .cc-takeoverRail__lead{
  margin:0;
  max-width:54ch;
  color:var(--cc-ink78);
  font-size:16px;
  line-height:1.6;
  font-weight:650;
}

/* RAIL — rapprochement avec la nouvelle section "Trois points" */
.cc-takeover--rail-v1 .cc-takeoverRail__steps{
  position:relative;
  list-style:none;
  margin:var(--cc-32) 0 0;
  padding:0;
  display:grid;
  gap:22px;
}

.cc-takeover--rail-v1 .cc-takeoverRail__steps::before{
  content:"";
  position:absolute;
  left:16px;
  top:16px;
  bottom:16px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(
    180deg,
    rgba(1,33,72,.24) 0%,
    rgba(1,33,72,.24) 58%,
    rgba(39,207,169,.50) 100%
  );
}

.cc-takeover--rail-v1 .cc-takeoverRail__step{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  gap:18px;
  align-items:start;
  min-width:0;
}

.cc-takeover--rail-v1 .cc-takeoverRail__num{
  position:relative;
  z-index:1;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--cc-navy);
  color:#fff;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:
    0 0 0 5px rgba(1,33,72,.08),
    0 10px 22px rgba(1,33,72,.10);
  font-size:13px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}

.cc-takeover--rail-v1 .cc-takeoverRail__num--accent{
  background:var(--cc-turq);
  color:var(--cc-navy);
  box-shadow:
    0 0 0 5px rgba(39,207,169,.14),
    0 10px 22px rgba(1,33,72,.10);
}

.cc-takeover--rail-v1 .cc-takeoverRail__stepTitle{
  margin:1px 0 6px;
  color:var(--cc-navy);
  font-size:20px;
  line-height:1.18;
  font-weight:950;
  letter-spacing:-.02em;
}

.cc-takeover--rail-v1 .cc-takeoverRail__text{
  margin:0;
  max-width:48ch;
  color:var(--cc-ink78);
  font-size:14.8px;
  line-height:1.55;
  font-weight:650;
}

.cc-takeover--rail-v1 .cc-takeoverRail__note{
  margin:var(--cc-28) 0 0;
  padding-top:var(--cc-16);
  border-top:1px solid rgba(1,33,72,.10);
  max-width:620px;
  color:var(--cc-ink62);
  font-size:14px;
  line-height:1.6;
  font-weight:650;
}

/* Hover discret images */
@media (hover:hover) and (pointer:fine){
  .cc-takeover--rail-v1 .cc-takeoverRail__frame,
  .cc-takeover--rail-v1 .cc-takeoverRail__frame img{
    transition:transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame:hover{
    border-color:rgba(1,33,72,.14);
    box-shadow:0 14px 30px rgba(1,33,72,.075);
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame:hover img{
    transform:scale(1.035);
  }
}

@media (min-width:900px){
  .cc-takeover--rail-v1 .cc-delegate3__inner{
    padding-top:var(--cc-section-py-desktop) !important;
    padding-bottom:var(--cc-section-py-desktop) !important;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__layout{
    grid-template-columns:minmax(360px, .78fr) minmax(0, 1fr);
    gap:var(--cc-64);
  }
}

@media (max-width:899px){
  .cc-takeover--rail-v1 .cc-takeoverRail__layout{
    gap:var(--cc-28);
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__content{
    order:1;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__media{
    order:2;
    min-height:310px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame--main{
    top:0;
    left:0;
    width:72%;
    height:270px;
    border-radius:20px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame--secondary{
    right:0;
    bottom:4px;
    width:54%;
    height:150px;
    border-radius:18px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__title{
    font-size:clamp(28px, 7vw, 38px);
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__lead{
    font-size:15.5px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__steps{
    margin-top:var(--cc-28);
    gap:20px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__stepTitle{
    font-size:19px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__text,
  .cc-takeover--rail-v1 .cc-takeoverRail__note{
    font-size:14px;
  }
}

@media (max-width:420px){
  .cc-takeover--rail-v1 .cc-takeoverRail__media{
    min-height:288px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame--main{
    width:76%;
    height:248px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame--secondary{
    width:58%;
    height:132px;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__kicker{
    white-space:normal;
  }
}

@media (prefers-reduced-motion: reduce){
  .cc-takeover--rail-v1 .cc-takeoverRail__frame,
  .cc-takeover--rail-v1 .cc-takeoverRail__frame img{
    transition:none !important;
  }

  .cc-takeover--rail-v1 .cc-takeoverRail__frame:hover img{
    transform:scale(1.01);
  }
}





















/* =========================================================
   CityCleaner — CSS FINAL CONSOLIDÉ PROOFV5
   Section : "Ce qui est vérifié avant l’arrivée suivante"

   Version ajustée :
   - même logique validée que la version précédente ;
   - accent turquoise allégé pour s’aligner avec la section FITX ;
   - ligne haute et ligne gauche en 2px sur desktop ;
   - ligne turquoise qui suit l’arrondi haut gauche ;
   - ligne haute qui s’efface progressivement avant le coin droit ;
   - ligne gauche qui s’affine progressivement vers le bas ;
   - image non modifiée ;
   - icônes conservées, y compris la croix du 3e item ;
   - aucun effet décoratif inutile.
   ========================================================= */


/* =========================================================
   1) SECTION — FOND ET NEUTRALISATION
   ========================================================= */

.cc-proofv5{
  position:relative;
  overflow:hidden;
  background:var(--cc-bgSoft, #F7F9FB) !important;
}

.cc-proofv5::before,
.cc-proofv5::after{
  content:none !important;
}

.cc-proofv5__inner{
  position:relative;
  z-index:1;
}

.cc-proofv5__title::after{
  content:none !important;
}


/* =========================================================
   2) IMAGE — SOBRIÉTÉ CONSERVÉE
   ========================================================= */

.cc-proofv5__photoCard{
  border-color:rgba(1,33,72,.10) !important;
  box-shadow:0 14px 34px rgba(1,33,72,.075) !important;
}

.cc-proofv5__photoCard::before,
.cc-proofv5__photoCard::after,
.cc-proofv5__photoWrap::before,
.cc-proofv5__photoWrap::after{
  content:none !important;
}


/* =========================================================
   3) CARTE DE VÉRIFICATION — BASE FINALE
   ========================================================= */

.cc-proofv5__summary{
  --cc-proof-turq:var(--cc-turq, #27CFA9);

  position:relative !important;
  overflow:hidden !important;
  isolation:isolate;

  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(1,33,72,.105) !important;
  border-radius:24px !important;
  box-shadow:0 12px 28px rgba(1,33,72,.055) !important;
}


/* Ligne haute + amorce gauche :
   - suit l’arrondi haut gauche ;
   - même épaisseur au départ que la ligne gauche ;
   - s’efface progressivement avant le coin haut droit. */
.cc-proofv5__summary::before{
  content:"" !important;
  position:absolute !important;
  z-index:5 !important;
  top:0 !important;
  left:0 !important;
  right:30px !important;
  height:72px !important;
  box-sizing:border-box !important;
  pointer-events:none !important;

  background:transparent !important;
  border-top:2px solid rgba(39,207,169,.84) !important;
  border-left:2px solid rgba(39,207,169,.84) !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-radius:24px 0 0 0 !important;

  -webkit-mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 68%,
    rgba(0,0,0,.62) 82%,
    rgba(0,0,0,.22) 94%,
    transparent 100%
  ) !important;
  mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 68%,
    rgba(0,0,0,.62) 82%,
    rgba(0,0,0,.22) 94%,
    transparent 100%
  ) !important;
  -webkit-mask-size:100% 100% !important;
  mask-size:100% 100% !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
}


/* Ligne gauche :
   - connectée à l’amorce haute ;
   - même épaisseur au départ ;
   - s’affine progressivement en descendant. */
.cc-proofv5__summary::after{
  content:"" !important;
  position:absolute !important;
  z-index:4 !important;
  top:66px !important;
  left:0 !important;
  width:2px !important;
  height:calc(100% - 66px) !important;
  background:rgba(39,207,169,.84) !important;
  pointer-events:none !important;

  clip-path:polygon(
    0 0,
    100% 0,
    100% 16%,
    86% 34%,
    66% 54%,
    42% 74%,
    16% 90%,
    0 100%
  ) !important;
}


/* =========================================================
   4) LIGNES INTERNES
   ========================================================= */

.cc-proofv5__summaryItem{
  position:relative;
  padding-left:calc(var(--cc-24, 24px) + 4px) !important;
}

.cc-proofv5__summaryItem:first-child{
  padding-top:calc(var(--cc-16, 16px) + 1px) !important;
}

.cc-proofv5__summaryItem::before,
.cc-proofv5__summaryItem::after{
  content:none !important;
}

.cc-proofv5__summaryItem + .cc-proofv5__summaryItem{
  border-top-color:rgba(1,33,72,.085) !important;
}


/* =========================================================
   5) ICÔNES — CONSERVÉES, CROIX RESTAURÉE
   ========================================================= */

.cc-proofv5__summaryIcon{
  box-shadow:none !important;
}

.cc-proofv5__summaryIcon::before,
.cc-proofv5__summaryIcon::after,
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon::before,
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon::after,
.cc-proofv5__summaryIcon--scope::before,
.cc-proofv5__summaryIcon--scope::after{
  content:none !important;
  display:none !important;
}

.cc-proofv5__summaryIcon svg,
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon svg,
.cc-proofv5__summaryIcon--scope svg{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  stroke:currentColor !important;
  fill:none !important;
}

/* Checks positifs : turquoise doux */
.cc-proofv5__summaryItem:nth-child(1) .cc-proofv5__summaryIcon,
.cc-proofv5__summaryItem:nth-child(2) .cc-proofv5__summaryIcon{
  color:var(--cc-navy, #012148) !important;
  background:rgba(39,207,169,.10) !important;
  border-color:rgba(39,207,169,.24) !important;
}

/* Limite / signalement : neutre */
.cc-proofv5__summaryItem--scope .cc-proofv5__summaryIcon,
.cc-proofv5__summaryIcon--scope{
  color:var(--cc-navy, #012148) !important;
  background:rgba(1,33,72,.045) !important;
  border-color:rgba(1,33,72,.12) !important;
}


/* =========================================================
   6) TEXTE
   ========================================================= */

.cc-proofv5__summaryItem p{
  color:var(--cc-ink78, rgba(1,33,72,.78)) !important;
}

.cc-proofv5__summaryItem p strong{
  color:var(--cc-navy, #012148) !important;
  font-weight:950;
}


/* =========================================================
   7) HOVER DESKTOP — TRÈS LÉGER
   ========================================================= */

@media (hover:hover) and (pointer:fine){
  .cc-proofv5__summary,
  .cc-proofv5__photoCard{
    transition:border-color 160ms ease, box-shadow 160ms ease;
  }

  .cc-proofv5__summary:hover{
    border-color:rgba(39,207,169,.16) !important;
    box-shadow:0 14px 32px rgba(1,33,72,.060) !important;
  }

  .cc-proofv5__photoCard:hover{
    border-color:rgba(1,33,72,.13) !important;
    box-shadow:0 16px 38px rgba(1,33,72,.085) !important;
  }
}


/* =========================================================
   8) MOBILE
   ========================================================= */

@media (max-width:560px){
  .cc-proofv5__summary{
    border-radius:20px !important;
    box-shadow:0 10px 24px rgba(1,33,72,.050) !important;
  }

  .cc-proofv5__summary::before{
    right:22px !important;
    height:56px !important;
    border-top-width:2px !important;
    border-left-width:2px !important;
    border-radius:20px 0 0 0 !important;

    -webkit-mask-image:linear-gradient(
      90deg,
      #000 0%,
      #000 66%,
      rgba(0,0,0,.58) 82%,
      rgba(0,0,0,.20) 94%,
      transparent 100%
    ) !important;
    mask-image:linear-gradient(
      90deg,
      #000 0%,
      #000 66%,
      rgba(0,0,0,.58) 82%,
      rgba(0,0,0,.20) 94%,
      transparent 100%
    ) !important;
  }

  .cc-proofv5__summary::after{
    top:52px !important;
    width:2px !important;
    height:calc(100% - 52px) !important;

    clip-path:polygon(
      0 0,
      100% 0,
      100% 18%,
      82% 38%,
      58% 60%,
      32% 80%,
      0 100%
    ) !important;
  }

  .cc-proofv5__summaryItem{
    padding-left:calc(var(--cc-16, 16px) + 4px) !important;
  }
}


/* =========================================================
   9) ACCESSIBILITÉ — RÉDUCTION DES ANIMATIONS
   ========================================================= */

@media (prefers-reduced-motion: reduce){
  .cc-proofv5__summary,
  .cc-proofv5__photoCard{
    transition:none !important;
  }
}

/* =========================================================
   CityCleaner — PATCH PROOFV5 / alignement turquoise avec FITX
   Section : "Ce qui est vérifié avant l’arrivée suivante"

   Objectif :
   - rendre le traitement turquoise de la carte ProofV5 cohérent
     avec la carte "Le bon cas" de la section FITX ;
   - ajouter la même bordure turquoise périphérique légère ;
   - réduire la hauteur de l’amorce turquoise pour éviter l’effet plus massif ;
   - conserver le fondu de la ligne haute et l’affinage vertical.

   À coller SOUS le CSS final ProofV5 actuel.
   ========================================================= */

/* Même logique que la carte "Le bon cas" : bordure turquoise périphérique légère */
.cc-proofv5__summary{
  border-color:rgba(39,207,169,.28) !important;
  box-shadow:0 14px 32px rgba(1,33,72,.062) !important;
}

/* Amorce haute + gauche : mêmes proportions que FITX */
.cc-proofv5__summary::before{
  right:30px !important;
  height:62px !important;

  border-top:2px solid rgba(39,207,169,.84) !important;
  border-left:2px solid rgba(39,207,169,.84) !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-radius:24px 0 0 0 !important;

  -webkit-mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  ) !important;
  mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  ) !important;
}

/* Descente gauche : même départ et même affinage que FITX */
.cc-proofv5__summary::after{
  top:58px !important;
  width:2px !important;
  height:calc(100% - 58px) !important;
  background:rgba(39,207,169,.84) !important;

  clip-path:polygon(
    0 0,
    100% 0,
    100% 18%,
    80% 40%,
    48% 66%,
    18% 88%,
    0 100%
  ) !important;
}

/* Hover cohérent avec FITX */
@media (hover:hover) and (pointer:fine){
  .cc-proofv5__summary:hover{
    border-color:rgba(39,207,169,.34) !important;
    box-shadow:0 16px 36px rgba(1,33,72,.070) !important;
  }
}

/* Mobile : proportions alignées avec FITX */
@media (max-width:560px){
  .cc-proofv5__summary{
    border-color:rgba(39,207,169,.28) !important;
  }

  .cc-proofv5__summary::before{
    right:22px !important;
    height:52px !important;
    border-top-width:2px !important;
    border-left-width:2px !important;
    border-radius:20px 0 0 0 !important;
  }

  .cc-proofv5__summary::after{
    top:48px !important;
    width:2px !important;
    height:calc(100% - 48px) !important;

    clip-path:polygon(
      0 0,
      100% 0,
      100% 20%,
      76% 44%,
      42% 70%,
      0 100%
    ) !important;
  }
}



















































/* =========================================================
   CityCleaner — CSS FINAL CONSOLIDÉ FITX / COMPATIBILITÉ
   Section : "Votre logement est-il adapté à CityCleaner ?"

   Remplace les patchs successifs :
   - citycleaner_fitx_patch_turquoise_bon_cas
   - citycleaner_fitx_patch_angle_turquoise_arrondi
   - anciennes variantes FITX liées à cette section

   Objectif final :
   - supprimer l’effet dégradé bleu/turquoise décoratif ;
   - garder une hiérarchie claire entre "Le bon cas" et "À clarifier" ;
   - réserver le turquoise au bon cas uniquement ;
   - garder "À clarifier" neutre, propre, non punitive ;
   - faire suivre le turquoise dans l’arrondi haut gauche ;
   - faire disparaître la ligne turquoise avant la fin ;
   - ne pas modifier le HTML.
   ========================================================= */


/* =========================================================
   1) FOND DE SECTION — NEUTRE
   ========================================================= */

.cc-fitx.cc-patch-compat-v1,
.cc-fitx-match--v2{
  background:var(--cc-bgSoft, #F7F9FB) !important;
}


/* =========================================================
   2) VERSION ACTUELLE / LEGACY : .cc-patch-compat-v1
   ========================================================= */

/* Base commune des cartes */
.cc-patch-compat-v1 .cc-fitxCard{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(1,33,72,.105) !important;
  border-radius:24px !important;
  box-shadow:0 12px 28px rgba(1,33,72,.055) !important;
}

/* Carte gauche — le bon cas */
.cc-patch-compat-v1 .cc-fitxCard--good,
.cc-patch-compat-v1 .cc-fitxCard:first-child{
  border-color:rgba(39,207,169,.28) !important;
  box-shadow:0 14px 32px rgba(1,33,72,.062) !important;
}

/* Amorce haute + gauche arrondie du bon cas */
.cc-patch-compat-v1 .cc-fitxCard--good::before,
.cc-patch-compat-v1 .cc-fitxCard:first-child::before{
  content:"";
  position:absolute;
  z-index:4;
  top:0;
  left:0;
  right:30px;
  height:62px;
  box-sizing:border-box;
  pointer-events:none;

  background:transparent !important;
  border-top:2px solid rgba(39,207,169,.84) !important;
  border-left:2px solid rgba(39,207,169,.84) !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-radius:24px 0 0 0 !important;

  -webkit-mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  );
  mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  );
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}

/* Descente gauche du bon cas : même épaisseur au départ, puis affinage */
.cc-patch-compat-v1 .cc-fitxCard--good::after,
.cc-patch-compat-v1 .cc-fitxCard:first-child::after{
  content:"";
  position:absolute;
  z-index:3;
  top:58px;
  left:0;
  width:2px;
  height:calc(100% - 58px);
  pointer-events:none;
  background:rgba(39,207,169,.84) !important;

  clip-path:polygon(
    0 0,
    100% 0,
    100% 18%,
    80% 40%,
    48% 66%,
    18% 88%,
    0 100%
  );
}

/* Carte droite — à clarifier : neutre, non punitive */
.cc-patch-compat-v1 .cc-fitxCard--nofit,
.cc-patch-compat-v1 .cc-fitxCard:not(.cc-fitxCard--good):last-child{
  border-color:rgba(1,33,72,.105) !important;
  background:rgba(255,255,255,.88) !important;
  box-shadow:0 10px 24px rgba(1,33,72,.045) !important;
}

/* Aucun accent décoratif sur la carte droite */
.cc-patch-compat-v1 .cc-fitxCard--nofit::before,
.cc-patch-compat-v1 .cc-fitxCard--nofit::after,
.cc-patch-compat-v1 .cc-fitxCard:not(.cc-fitxCard--good):last-child::before,
.cc-patch-compat-v1 .cc-fitxCard:not(.cc-fitxCard--good):last-child::after{
  content:none !important;
}

/* Icônes du bon cas */
.cc-patch-compat-v1 .cc-fitxCard--good .cc-fitxCard__ico,
.cc-patch-compat-v1 .cc-fitxCard:first-child .cc-fitxCard__ico{
  background:rgba(39,207,169,.10) !important;
  border-color:rgba(39,207,169,.24) !important;
  color:var(--cc-navy, #012148) !important;
  box-shadow:none !important;
}

.cc-patch-compat-v1 .cc-fitxCard--good .cc-fitxCard__miniIco,
.cc-patch-compat-v1 .cc-fitxCard:first-child .cc-fitxCard__miniIco{
  color:var(--cc-navy, #012148) !important;
}

/* Icône de la carte à clarifier */
.cc-patch-compat-v1 .cc-fitxCard--nofit .cc-fitxCard__ico,
.cc-patch-compat-v1 .cc-fitxCard:not(.cc-fitxCard--good):last-child .cc-fitxCard__ico{
  background:rgba(1,33,72,.045) !important;
  border-color:rgba(1,33,72,.12) !important;
  color:var(--cc-navy, #012148) !important;
  box-shadow:none !important;
}

/* Séparateurs internes */
.cc-patch-compat-v1 .cc-fitxCard__top{
  border-bottom-color:rgba(1,33,72,.085) !important;
}


/* =========================================================
   3) VERSION V2 SI ACTIVE : .cc-fitx-match--v2
   ========================================================= */

/* Main card = bon cas */
.cc-fitx-match--v2 .cc-fitx-match__main{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.94) !important;
  border:1px solid rgba(39,207,169,.28) !important;
  border-radius:24px !important;
  box-shadow:0 14px 32px rgba(1,33,72,.062) !important;
  transform:none !important;
}

/* Amorce haute + gauche arrondie */
.cc-fitx-match--v2 .cc-fitx-match__main::before{
  content:"";
  position:absolute;
  z-index:4;
  top:0;
  left:0;
  right:30px;
  height:62px;
  box-sizing:border-box;
  pointer-events:none;

  background:transparent !important;
  border-top:2px solid rgba(39,207,169,.84) !important;
  border-left:2px solid rgba(39,207,169,.84) !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-radius:24px 0 0 0 !important;

  -webkit-mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  );
  mask-image:linear-gradient(
    90deg,
    #000 0%,
    #000 72%,
    rgba(0,0,0,.55) 88%,
    transparent 100%
  );
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}

/* Descente gauche */
.cc-fitx-match--v2 .cc-fitx-match__main::after{
  content:"";
  position:absolute;
  z-index:3;
  top:58px;
  left:0;
  width:2px;
  height:calc(100% - 58px);
  pointer-events:none;
  background:rgba(39,207,169,.84) !important;

  clip-path:polygon(
    0 0,
    100% 0,
    100% 18%,
    80% 40%,
    48% 66%,
    18% 88%,
    0 100%
  );
}

/* Badges / icônes du bon cas */
.cc-fitx-match--v2 .cc-fitx-match__badge,
.cc-fitx-match--v2 .cc-fitx-match__ico,
.cc-fitx-match--v2 .cc-fitx-match__footerIco{
  background:rgba(39,207,169,.10) !important;
  border-color:rgba(39,207,169,.24) !important;
  color:var(--cc-navy, #012148) !important;
  box-shadow:none !important;
}

/* Cartes de droite / à clarifier */
.cc-fitx-match--v2 .cc-fitx-match__sideCard,
.cc-fitx-match--v2 .cc-fitx-match__sideCard--soft,
.cc-fitx-match--v2 .cc-fitx-match__sideCard--limit{
  background:rgba(255,255,255,.88) !important;
  border-color:rgba(1,33,72,.105) !important;
  box-shadow:0 10px 24px rgba(1,33,72,.045) !important;
}

/* Listes de clarification : neutres */
.cc-fitx-match--v2 .cc-fitx-match__sideList li::before{
  background:rgba(1,33,72,.22) !important;
}


/* =========================================================
   4) HOVER — DISCRET
   ========================================================= */

@media (hover:hover) and (pointer:fine){
  .cc-patch-compat-v1 .cc-fitxCard,
  .cc-fitx-match--v2 .cc-fitx-match__main,
  .cc-fitx-match--v2 .cc-fitx-match__sideCard{
    transition:border-color 160ms ease, box-shadow 160ms ease;
  }

  .cc-patch-compat-v1 .cc-fitxCard--good:hover,
  .cc-patch-compat-v1 .cc-fitxCard:first-child:hover,
  .cc-fitx-match--v2 .cc-fitx-match__main:hover{
    border-color:rgba(39,207,169,.34) !important;
    box-shadow:0 16px 36px rgba(1,33,72,.070) !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard--nofit:hover,
  .cc-patch-compat-v1 .cc-fitxCard:not(.cc-fitxCard--good):last-child:hover,
  .cc-fitx-match--v2 .cc-fitx-match__sideCard:hover{
    border-color:rgba(1,33,72,.13) !important;
    box-shadow:0 12px 28px rgba(1,33,72,.052) !important;
  }
}


/* =========================================================
   5) MOBILE
   ========================================================= */

@media (max-width:560px){
  .cc-patch-compat-v1 .cc-fitxCard,
  .cc-fitx-match--v2 .cc-fitx-match__main{
    border-radius:20px !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard--good::before,
  .cc-patch-compat-v1 .cc-fitxCard:first-child::before,
  .cc-fitx-match--v2 .cc-fitx-match__main::before{
    right:22px;
    height:52px;
    border-top-width:2px !important;
    border-left-width:2px !important;
    border-radius:20px 0 0 0 !important;
  }

  .cc-patch-compat-v1 .cc-fitxCard--good::after,
  .cc-patch-compat-v1 .cc-fitxCard:first-child::after,
  .cc-fitx-match--v2 .cc-fitx-match__main::after{
    top:48px;
    width:2px;
    height:calc(100% - 48px);

    clip-path:polygon(
      0 0,
      100% 0,
      100% 20%,
      76% 44%,
      42% 70%,
      0 100%
    );
  }
}


@media (prefers-reduced-motion: reduce){
  .cc-patch-compat-v1 .cc-fitxCard,
  .cc-fitx-match--v2 .cc-fitx-match__main,
  .cc-fitx-match--v2 .cc-fitx-match__sideCard{
    transition:none !important;
  }
}


/* =========================================================
   CityCleaner — PATCH CTA FINAL / affinage ligne turquoise
   Section : CTA final "Votre logement semble compatible ?"

   Objectif :
   - rendre la ligne turquoise plus premium et moins visible ;
   - descendre la ligne de 1px pour éviter l’effet coupé au bord ;
   - passer l’épaisseur de 3px à 2px sur desktop ;
   - conserver le fondu gauche/droite.

   À coller SOUS le patch CTA final précédent.
   ========================================================= */

.cc-cta-final.cc-patch-009 .cc-cta-final__card::before{
  top:1px !important;
  height:2px !important;
  background:rgba(39,207,169,.78) !important;

  clip-path:polygon(
    0 50%,
    7% 0,
    93% 0,
    100% 50%,
    93% 100%,
    7% 100%
  ) !important;
}

@media (max-width:640px){
  .cc-cta-final.cc-patch-009 .cc-cta-final__card::before{
    top:1px !important;
    height:2px !important;
    background:rgba(39,207,169,.76) !important;

    clip-path:polygon(
      0 50%,
      9% 0,
      91% 0,
      100% 50%,
      91% 100%,
      9% 100%
    ) !important;
  }
}





















/* =========================================================
   CityCleaner — CSS FAQ FINAL CONSOLIDÉ
   Section : "Questions fréquentes avant d’échanger"

   Remplace les patchs FAQ empilés :
   - flèche seule turquoise ;
   - fermé transparent / ouvert conservé ;
   - fond transparent + contour conservé ;
   - chevron turquoise plus visible.

   Objectif final :
   - question fermée : fond transparent + contour conservé ;
   - question fermée : pas d’ombre ;
   - question ouverte : bloc lisible conservé ;
   - header ouvert : fond bleu très léger actuel ;
   - flèche seule turquoise, sans pastille, sans fond, sans contour ;
   - chevron plus visible ;
   - aucun changement HTML.
   ========================================================= */


/* =========================================================
   1) QUESTION FERMÉE — FOND TRANSPARENT + CONTOUR CONSERVÉ
   ========================================================= */

.cc-faq .cc-faq__item:not([open]),
.cc-faq details.cc-faq__item:not([open]){
  background:transparent !important;
  background-color:transparent !important;
  border:1px solid rgba(1,33,72,.10) !important;
  border-radius:var(--cc-r24, 24px) !important;
  box-shadow:none !important;
  outline:0 !important;
  overflow:hidden !important;
}

.cc-faq .cc-faq__item:not([open]) .cc-faq__summary,
.cc-faq details.cc-faq__item:not([open]) > summary.cc-faq__summary{
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}


/* =========================================================
   2) QUESTION OUVERTE — BLOC LISIBLE CONSERVÉ
   ========================================================= */

.cc-faq .cc-faq__item[open],
.cc-faq details.cc-faq__item[open]{
  background:#fff !important;
  background-color:#fff !important;
  border:1px solid rgba(1,33,72,.10) !important;
  border-radius:var(--cc-r24, 24px) !important;
  box-shadow:0 10px 24px rgba(1,33,72,.045) !important;
  overflow:hidden !important;
}

.cc-faq .cc-faq__item[open] .cc-faq__summary,
.cc-faq details.cc-faq__item[open] > summary.cc-faq__summary{
  background:rgba(70,217,255,.08) !important;
  background-color:rgba(70,217,255,.08) !important;
  border-bottom:1px solid rgba(1,33,72,.10) !important;
}

.cc-faq .cc-faq__item[open] .cc-faq__content,
.cc-faq details.cc-faq__item[open] .cc-faq__content{
  background:#fff !important;
  background-color:#fff !important;
}


/* =========================================================
   3) CHEVRON — FLÈCHE TURQUOISE SEULE
   ========================================================= */

.cc-faq .cc-faq__chev,
.cc-faq details.cc-faq__item .cc-faq__chev{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  flex:0 0 24px !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  padding:0 !important;
  margin:0 !important;

  background:none !important;
  background-color:transparent !important;
  background-image:none !important;

  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:0 !important;

  color:var(--cc-turq, #27CFA9) !important;
  opacity:1 !important;
}

.cc-faq .cc-faq__chev svg,
.cc-faq details.cc-faq__item .cc-faq__chev svg{
  display:block !important;
  width:20px !important;
  height:20px !important;

  background:none !important;
  background-color:transparent !important;
  background-image:none !important;

  border:0 !important;
  box-shadow:none !important;

  color:var(--cc-turq, #27CFA9) !important;
  stroke:var(--cc-turq, #27CFA9) !important;
  fill:none !important;
  stroke-width:2.8 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

/* Sécurité : aucun carré/cercle/fond décoratif dans l’icône */
.cc-faq .cc-faq__chev::before,
.cc-faq .cc-faq__chev::after{
  content:none !important;
  display:none !important;
}

.cc-faq .cc-faq__chev svg rect,
.cc-faq .cc-faq__chev svg circle,
.cc-faq .cc-faq__chev svg [fill]:not([fill="none"]){
  fill:transparent !important;
  display:none !important;
}


/* =========================================================
   4) HOVER — SOBRE, SANS REMPLISSAGE
   ========================================================= */

@media (hover:hover) and (pointer:fine){
  .cc-faq .cc-faq__item{
    transition:border-color 160ms ease, box-shadow 160ms ease;
  }

  .cc-faq .cc-faq__item:not([open]):hover,
  .cc-faq details.cc-faq__item:not([open]):hover{
    background:transparent !important;
    background-color:transparent !important;
    border-color:rgba(39,207,169,.20) !important;
    box-shadow:none !important;
  }

  .cc-faq .cc-faq__item:not([open]):hover .cc-faq__summary,
  .cc-faq details.cc-faq__item:not([open]):hover > summary.cc-faq__summary{
    background:transparent !important;
    background-color:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .cc-faq .cc-faq__item:hover .cc-faq__chev,
  .cc-faq details.cc-faq__item:hover .cc-faq__chev{
    background:none !important;
    background-color:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    color:var(--cc-turq, #27CFA9) !important;
    opacity:1 !important;
  }

  .cc-faq .cc-faq__item:hover .cc-faq__chev svg,
  .cc-faq details.cc-faq__item:hover .cc-faq__chev svg{
    stroke-width:3 !important;
  }

  .cc-faq .cc-faq__item[open]:hover,
  .cc-faq details.cc-faq__item[open]:hover{
    border-color:rgba(39,207,169,.16) !important;
    box-shadow:0 12px 28px rgba(1,33,72,.052) !important;
  }
}


/* =========================================================
   5) MOBILE
   ========================================================= */

@media (max-width:560px){
  .cc-faq .cc-faq__item:not([open]),
  .cc-faq details.cc-faq__item:not([open]){
    border-radius:20px !important;
  }

  .cc-faq .cc-faq__item[open],
  .cc-faq details.cc-faq__item[open]{
    box-shadow:0 8px 20px rgba(1,33,72,.040) !important;
  }

  .cc-faq .cc-faq__chev,
  .cc-faq details.cc-faq__item .cc-faq__chev{
    width:22px !important;
    height:22px !important;
    min-width:22px !important;
    min-height:22px !important;
    flex-basis:22px !important;
  }

  .cc-faq .cc-faq__chev svg,
  .cc-faq details.cc-faq__item .cc-faq__chev svg{
    width:19px !important;
    height:19px !important;
    stroke-width:2.7 !important;
  }
}


/* =========================================================
   6) ACCESSIBILITÉ
   ========================================================= */

@media (prefers-reduced-motion: reduce){
  .cc-faq .cc-faq__item,
  .cc-faq details.cc-faq__item{
    transition:none !important;
  }
}


















/* Patch CityCleaner — Article 6 — harmonisation carte linge */

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium{
  list-style:none !important;
  margin:0 !important;
  padding:34px 40px 38px !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:28px !important;
  border:0 !important;
  border-top:0 !important;
  background:#fff !important;
  color:var(--cc-ink78) !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li{
  position:relative !important;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 0 0 40px !important;
  border:0 !important;
  box-sizing:border-box !important;
  color:var(--cc-ink78) !important;
  line-height:1.58 !important;
  text-align:left !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li::before{
  content:"✓" !important;
  position:absolute !important;
  left:0 !important;
  top:.13em !important;
  width:22px !important;
  height:22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  color:var(--cc-navy) !important;
  font-size:18px !important;
  font-weight:950 !important;
  line-height:1 !important;
  transform:none !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li > *{
  display:inline !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  flex:none !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li > strong{
  display:inline !important;
  color:var(--cc-navy) !important;
  font-weight:900 !important;
  white-space:normal !important;
}

/* Icône du titre “À retenir” : liste, non répétitive avec les coches */
.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico{
  position:relative !important;
  font-size:0 !important;
  overflow:hidden !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico::before{
  content:"" !important;
  position:absolute !important;
  left:12px !important;
  top:50% !important;
  width:10px !important;
  height:2px !important;
  border-radius:999px !important;
  background:var(--cc-navy) !important;
  box-shadow:
    0 -5px 0 var(--cc-navy),
    0 5px 0 var(--cc-navy) !important;
  transform:translateY(-50%) !important;
}

.cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico::after{
  content:"" !important;
  position:absolute !important;
  left:7px !important;
  top:50% !important;
  width:3px !important;
  height:3px !important;
  border-radius:999px !important;
  background:var(--cc-navy) !important;
  box-shadow:
    0 -5px 0 var(--cc-navy),
    0 5px 0 var(--cc-navy) !important;
  transform:translateY(-50%) !important;
}

@media (max-width:640px){
  .cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium{
    padding:22px 18px 24px !important;
    gap:18px !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li{
    padding-left:30px !important;
    line-height:1.55 !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="gestion-linge-airbnb-stock-rotation-perpignan"]) .cc-article__listPremium > li::before{
    width:20px !important;
    height:20px !important;
    font-size:17px !important;
  }
}





/* Patch CityCleaner — Article 7 — harmonisation carte */

@supports selector(:has(*)){

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium{
    list-style:none !important;
    margin:0 !important;
    padding:34px 40px 38px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
    border:0 !important;
    border-top:0 !important;
    background:#fff !important;
    color:var(--cc-ink78) !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 0 0 40px !important;
    border:0 !important;
    box-sizing:border-box !important;
    color:var(--cc-ink78) !important;
    line-height:1.58 !important;
    text-align:left !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li::before{
    content:"✓" !important;
    position:absolute !important;
    left:0 !important;
    top:.13em !important;
    width:22px !important;
    height:22px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    color:var(--cc-navy) !important;
    font-size:18px !important;
    font-weight:950 !important;
    line-height:1 !important;
    transform:none !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li > *{
    display:inline !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    flex:none !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li > strong{
    display:inline !important;
    color:var(--cc-navy) !important;
    font-weight:900 !important;
    white-space:normal !important;
  }

  /* Icône du titre “À retenir” : liste, non répétitive avec les coches */
  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico{
    position:relative !important;
    font-size:0 !important;
    line-height:0 !important;
    overflow:hidden !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico::before{
    content:"" !important;
    position:absolute !important;
    left:12px !important;
    top:50% !important;
    width:10px !important;
    height:2px !important;
    border-radius:999px !important;
    background:var(--cc-navy) !important;
    box-shadow:
      0 -5px 0 var(--cc-navy),
      0 5px 0 var(--cc-navy) !important;
    transform:translateY(-50%) !important;
  }

  .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__header .cc-article__keypoints > .cc-article__title--ico .cc-article__ico::after{
    content:"" !important;
    position:absolute !important;
    left:7px !important;
    top:50% !important;
    width:3px !important;
    height:3px !important;
    border-radius:999px !important;
    background:var(--cc-navy) !important;
    box-shadow:
      0 -5px 0 var(--cc-navy),
      0 5px 0 var(--cc-navy) !important;
    transform:translateY(-50%) !important;
  }

  @media (max-width:640px){
    .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium{
      padding:22px 18px 24px !important;
      gap:18px !important;
    }

    .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li{
      padding-left:30px !important;
      line-height:1.55 !important;
    }

    .cc-article:has(.cc-article__heroMedia img[src*="logement-airbnb-connu-duree-menage-linge-perpignan"]) .cc-article__listPremium > li::before{
      width:20px !important;
      height:20px !important;
      font-size:17px !important;
    }
  }
}


















/* =========================================================
   CityCleaner — PATCH ARTICLES FULL-BLEED BACKGROUNDS
   Objectif : transformer les fonds d'articles en vraies bandes full-width
   Scope : articles WordPress uniquement. Aucun impact homepage.
   ========================================================= */

/* 1) Autoriser les bandes visuelles à dépasser le wrapper article */
.single-post .entry-content .cc-article{
  overflow:visible !important;
  background:var(--cc-bg) !important;
}

/* 2) Les grands blocs article gardent leur rythme, mais ne portent plus seuls le fond */
.single-post .entry-content .cc-article > .cc-article__header,
.single-post .entry-content .cc-article > .cc-article__section,
.single-post .entry-content .cc-article > .cc-article__faq,
.single-post .entry-content .cc-article > .cc-article__ctaEnd{
  position:relative !important;
  isolation:isolate !important;
  background:transparent !important;
  --cc-article-band-bg:var(--cc-bg);
}

/* 3) Recréer l'alternance blanc / gris clair avec une bande full-bleed */
.single-post .entry-content .cc-article > .cc-article__header::before,
.single-post .entry-content .cc-article > .cc-article__section::before,
.single-post .entry-content .cc-article > .cc-article__faq::before,
.single-post .entry-content .cc-article > .cc-article__ctaEnd::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  pointer-events:none !important;

  background:var(--cc-article-band-bg) !important;
  box-shadow:0 0 0 100vmax var(--cc-article-band-bg) !important;
  clip-path:inset(0 -100vmax) !important;
}

/* 4) Alternance identique à la logique actuelle V22 */
.single-post .entry-content .cc-article > .cc-article__header:nth-child(odd),
.single-post .entry-content .cc-article > .cc-article__section:nth-child(odd),
.single-post .entry-content .cc-article > .cc-article__faq:nth-child(odd),
.single-post .entry-content .cc-article > .cc-article__ctaEnd:nth-child(odd){
  --cc-article-band-bg:var(--cc-bg);
}

.single-post .entry-content .cc-article > .cc-article__header:nth-child(even),
.single-post .entry-content .cc-article > .cc-article__section:nth-child(even),
.single-post .entry-content .cc-article > .cc-article__faq:nth-child(even),
.single-post .entry-content .cc-article > .cc-article__ctaEnd:nth-child(even){
  --cc-article-band-bg:var(--cc-bgSoft);
}

/* 5) Sécurité déjà voulue : FAQ gris clair, CTA final blanc */
.single-post .entry-content .cc-article > .cc-article__faq{
  --cc-article-band-bg:var(--cc-bgSoft);
}

.single-post .entry-content .cc-article > .cc-article__faq + .cc-article__ctaEnd{
  --cc-article-band-bg:var(--cc-bg);
}

/* 6) Le contenu reste au-dessus des bandes, sans changer sa largeur */
.single-post .entry-content .cc-article > .cc-article__header > .cc-article__container,
.single-post .entry-content .cc-article > .cc-article__section > .cc-article__container,
.single-post .entry-content .cc-article > .cc-article__faq > .cc-article__container,
.single-post .entry-content .cc-article > .cc-article__ctaEnd > .cc-article__container{
  position:relative !important;
  z-index:1 !important;
}





/* =========================================================
   CityCleaner — PATCH ARTICLES : suppression rectangle pré-article
   Objectif : éviter le fond blanc centré Astra/WordPress avant le début article
   Scope : articles uniquement, aucun impact homepage
   ========================================================= */

.single-post .site-content,
.single-post .site-content .ast-container,
.single-post .site-content #primary,
.single-post .site-content .site-main,
.single-post .site-content .ast-article-single,
.single-post .site-content .entry-content{
  background:transparent !important;
  box-shadow:none !important;
}

.single-post .site-content .ast-container,
.single-post .site-content #primary,
.single-post .site-content .site-main,
.single-post .site-content .ast-article-single,
.single-post .site-content .entry-content{
  overflow:visible !important;
}


/* =========================================================
   CityCleaner — PATCH ARTICLES : haut de page propre
   Objectif : supprimer le halo bleuté pré-article et remonter le début article
   Scope : articles WordPress uniquement. Aucun impact homepage.
   ========================================================= */

/* 1) Supprimer le fond global premium uniquement sur les articles */
body.single-post::before{
  display:none !important;
  content:none !important;
}

/* 2) Neutraliser les espacements Astra/WordPress avant l'article */
body.single-post .site-content,
body.single-post .site-content .ast-container,
body.single-post .site-content #primary,
body.single-post .site-content .site-main,
body.single-post .site-content .ast-article-single,
body.single-post .site-content .entry-content{
  padding-top:0 !important;
  margin-top:0 !important;
  background:#fff !important;
}

/* 3) Garder une respiration volontaire, mais beaucoup moins basse */
body.single-post .entry-content .cc-article > .cc-article__header{
  padding-top:72px !important;
}

/* Mobile : démarrage plus direct */
@media (max-width:640px){
  body.single-post .entry-content .cc-article > .cc-article__header{
    padding-top:48px !important;
  }
}




/* Patch CityCleaner — Article 8 — harmonisation carte */

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"]){
  --cc-a08-title-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M9 7h10M9 12h10M9 17h10' stroke='%23012148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M5 7h.01M5 12h.01M5 17h.01' stroke='%23012148' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision){
  margin: var(--cc-40) 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--cc-bg) !important;
  border: 1px solid var(--cc-ink10) !important;
  border-radius: var(--cc-r24) !important;
  box-shadow: 0 16px 38px rgba(1,33,72,.055) !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__title--ico{
  margin: 0 !important;
  padding: 20px 28px !important;
  min-height: 64px !important;

  display: flex !important;
  align-items: center !important;
  gap: 12px !important;

  background: #fff !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--cc-ink10) !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__title--ico .cc-article__ico{
  width: 32px !important;
  height: 32px !important;
  flex: 0 0 32px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  border-radius: 13px !important;
  color: var(--cc-navy) !important;
  background: rgba(39,207,169,.10) !important;
  border: 1px solid rgba(39,207,169,.24) !important;

  font-size: 0 !important;
  line-height: 0 !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__header .cc-article__keypoints
  > .cc-article__title--ico .cc-article__ico::before{
  content: "" !important;
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  background-image: var(--cc-a08-title-icon) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 18px 18px !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__title--ico .cc-article__titleText{
  display: block !important;
  min-width: 0 !important;

  color: var(--cc-navy) !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 950 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__listPremium{
  list-style: none !important;
  margin: 0 !important;
  padding: 28px 44px 30px !important;

  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 24px !important;

  border-top: 0 !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__listPremium > li{
  position: relative !important;
  display: block !important;

  margin: 0 !important;
  padding: 0 0 0 42px !important;
  border: 0 !important;

  color: var(--cc-ink78) !important;
  font-size: 17px !important;
  line-height: 1.55 !important;
  font-weight: 700 !important;

  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__listPremium > li::before{
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  top: .14em !important;

  width: 24px !important;
  height: 24px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: var(--cc-navy) !important;
  background: transparent !important;
  border: 0 !important;

  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
  > .cc-article__listPremium > li strong{
  display: inline !important;
  margin: 0 !important;

  color: var(--cc-navy) !important;
  font-weight: 950 !important;
  line-height: inherit !important;
  white-space: normal !important;
}

@media (max-width: 640px){
  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision){
    margin: var(--cc-32) 0 !important;
    border-radius: 18px !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__title--ico{
    min-height: 58px !important;
    padding: 16px 18px !important;
    gap: 10px !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__title--ico .cc-article__ico{
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__title--ico .cc-article__titleText{
    font-size: 11.5px !important;
    line-height: 1.25 !important;
    letter-spacing: .075em !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__listPremium{
    padding: 20px 18px 22px !important;
    gap: 18px !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__listPremium > li{
    padding-left: 32px !important;
    font-size: 15.5px !important;
    line-height: 1.62 !important;
  }

  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    :where(.cc-article__keypoints, .cc-article__checklist, .cc-article__decision)
    > .cc-article__listPremium > li::before{
    top: .18em !important;
    width: 20px !important;
    height: 20px !important;
    font-size: 16px !important;
  }
}





/* Patch CityCleaner — Articles 8 — harmonisation SVG inline */

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico{
  color: var(--cc-navy) !important;
  line-height: 0 !important;
  font-size: 0 !important;
  overflow: hidden !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico::before{
  content: none !important;
  display: none !important;
  background-image: none !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico svg{
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  stroke: currentColor !important;
  fill: none !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico svg *{
  stroke: currentColor !important;
  fill: none !important;
  vector-effect: non-scaling-stroke;
}

@media (max-width: 640px){
  .single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
    .cc-article__title--ico .cc-article__ico svg{
    width: 17px !important;
    height: 17px !important;
    flex-basis: 17px !important;
  }
}




/* Patch CityCleaner — Article 8 — suppression doublon SVG / pseudo-icône */

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico::before,
.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__header .cc-article__keypoints
  > .cc-article__title--ico .cc-article__ico::before{
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  background-image: none !important;
}

/* Sécurise l’affichage : seul le SVG inline doit apparaître */
.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico{
  font-size: 0 !important;
  line-height: 0 !important;
}

.single-post .entry-content article.cc-article:has(.cc-article__heroMedia img[src*="menage-mise-en-route-airbnb-perpignan-linge-consommables-rangement"])
  .cc-article__title--ico .cc-article__ico svg{
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
}













/* =========================================================
   CityCleaner — Page Articles V2 manuelle
   Usage : page WordPress classique / Elementor HTML
   Scope : .cc-archiveManual uniquement
   ========================================================= */

.cc-archiveManual{
  --cc-navy:#012148;
  --cc-turq:#27CFA9;
  --cc-sky:#46D9FF;
  --cc-violet:#8958FE;
  --cc-bg:#ffffff;
  --cc-bgSoft:#F7F9FB;
  --cc-ink78:rgba(1,33,72,.78);
  --cc-ink62:rgba(1,33,72,.62);
  --cc-ink50:rgba(1,33,72,.50);
  --cc-ink28:rgba(1,33,72,.28);
  --cc-ink18:rgba(1,33,72,.18);
  --cc-ink10:rgba(1,33,72,.10);
  --cc-ink08:rgba(1,33,72,.08);
  --cc-r14:14px;
  --cc-r16:16px;
  --cc-r18:18px;
  --cc-r22:22px;
  --cc-r24:24px;
  --cc-r999:999px;
  --cc-shadow-card:0 10px 26px rgba(1,33,72,.06);
  --cc-shadow-card-hover:0 16px 34px rgba(1,33,72,.10);
  --cc-container:min(1120px, calc(100% - 32px));

  position:relative;
  isolation:isolate;
  width:100%;
  color:var(--cc-navy);
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background:
    radial-gradient(950px 540px at 4% 0%, rgba(70,217,255,.055), transparent 62%),
    radial-gradient(780px 460px at 96% 8%, rgba(137,88,254,.045), transparent 60%),
    #FCFDFE;
}

.cc-archiveManual,
.cc-archiveManual *{
  box-sizing:border-box;
}

.cc-archiveManual a{
  color:inherit;
}

.cc-archiveManual img{
  max-width:100%;
  height:auto;
}

.cc-archiveManual__inner{
  width:var(--cc-container);
  margin:0 auto;
  padding:clamp(38px, 5vw, 64px) 0 clamp(72px, 8vw, 118px);
}

/* =========================
   Header
   ========================= */

.cc-archiveManual__header{
  max-width:760px;
  margin:0 0 clamp(30px, 4.5vw, 46px);
}

.cc-archiveManual__kicker,
.cc-archiveManual__sectionKicker,
.cc-archiveManualCard__tag,
.cc-archive-guide__kicker{
  margin:0;
  color:var(--cc-ink62);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-weight:900;
}

.cc-archiveManual__title{
  margin:8px 0 14px;
  color:var(--cc-navy);
  font-size:clamp(44px, 7vw, 74px);
  line-height:.94;
  letter-spacing:-.06em;
  font-weight:950;
  text-wrap:balance;
}

.cc-archiveManual__lead{
  max-width:62ch;
  margin:0;
  color:var(--cc-ink78);
  font-size:15.5px;
  line-height:1.68;
  font-weight:650;
}

.cc-archiveManual__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}

.cc-archiveManual__chips span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 11px;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r999);
  background:rgba(255,255,255,.72);
  color:var(--cc-ink62);
  font-size:12px;
  line-height:1;
  font-weight:850;
  white-space:nowrap;
}

/* =========================
   Grille articles mis en avant
   ========================= */

.cc-archiveManual__featured{
  display:grid;
  grid-template-columns:minmax(0, 1.06fr) minmax(280px, .94fr);
  gap:clamp(20px, 3vw, 34px);
  align-items:start;
  margin:0 0 clamp(58px, 7vw, 86px);
}

.cc-archiveManual__featuredLead,
.cc-archiveManual__featuredSide{
  display:grid;
  gap:clamp(18px, 2.2vw, 24px);
}

/* =========================
   Cards communes
   ========================= */

.cc-archiveManualCard{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  box-shadow:var(--cc-shadow-card);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

@media (hover:hover){
  .cc-archiveManualCard:hover{
    transform:translateY(-2px);
    border-color:rgba(1,33,72,.16);
    box-shadow:var(--cc-shadow-card-hover);
  }
}

.cc-archiveManualCard__mediaLink{
  display:block;
  text-decoration:none;
}

.cc-archiveManualCard__image{
  display:block;
  width:100%;
  aspect-ratio:16 / 9.7;
  object-fit:cover;
  background:#EEF3F7;
}

.cc-archiveManualCard__body{
  display:grid;
  gap:11px;
  padding:20px 21px 22px;
}

.cc-archiveManualCard__tag{
  display:inline-flex;
  justify-self:start;
  align-items:center;
  min-height:24px;
  padding:6px 9px;
  border:1px solid rgba(1,33,72,.12);
  border-radius:var(--cc-r999);
  background:rgba(247,249,251,.86);
  color:var(--cc-ink62);
  font-size:10px;
  letter-spacing:.045em;
}

.cc-archiveManualCard__title{
  margin:0;
  color:var(--cc-navy);
  font-weight:900;
  letter-spacing:-.035em;
  text-wrap:balance;
}

.cc-archiveManualCard__title a{
  text-decoration:none;
}

.cc-archiveManualCard__title a:hover,
.cc-archiveManualCard__title a:focus-visible{
  color:#06306A;
}

.cc-archiveManualCard__excerpt{
  margin:0;
  color:var(--cc-ink78);
  font-size:13px;
  line-height:1.55;
  font-weight:650;
}

.cc-archiveManualCard__read,
.cc-archive-guide__link{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  width:fit-content;
  color:var(--cc-navy);
  font-size:12.5px;
  line-height:1.2;
  font-weight:900;
  text-decoration:none;
  border-bottom:1px solid rgba(1,33,72,.22);
  padding-bottom:3px;
  transition:color .16s ease, border-color .16s ease, transform .16s ease;
}

.cc-archiveManualCard__read:hover,
.cc-archiveManualCard__read:focus-visible,
.cc-archive-guide__link:hover,
.cc-archive-guide__link:focus-visible{
  color:var(--cc-turq);
  border-color:rgba(39,207,169,.65);
  transform:translateX(2px);
}

/* Grande carte */
.cc-archiveManualCard--lead .cc-archiveManualCard__image{
  aspect-ratio:16 / 10;
}

.cc-archiveManualCard--lead .cc-archiveManualCard__body{
  padding:22px 24px 26px;
  gap:12px;
}

.cc-archiveManualCard--lead .cc-archiveManualCard__title{
  max-width:18ch;
  font-size:clamp(25px, 2.55vw, 36px);
  line-height:1.02;
}

.cc-archiveManualCard--lead .cc-archiveManualCard__excerpt{
  max-width:52ch;
  font-size:14px;
  line-height:1.6;
}

/* Cartes latérales */
.cc-archiveManualCard--side .cc-archiveManualCard__image{
  aspect-ratio:16 / 9.2;
}

.cc-archiveManualCard--side .cc-archiveManualCard__body{
  padding:19px 20px 22px;
}

.cc-archiveManualCard--side .cc-archiveManualCard__title{
  max-width:20ch;
  font-size:clamp(22px, 2.1vw, 30px);
  line-height:1.04;
}

/* =========================
   Bloc guide dans le vide gauche
   ========================= */

.cc-archiveManual .cc-archive-guide{
  position:relative;
  overflow:hidden;
  padding:24px 24px 22px;
  border:1px solid var(--cc-ink10);
  border-radius:var(--cc-r18);
  background:
    radial-gradient(460px 240px at 8% 0%, rgba(39,207,169,.09), transparent 62%),
    #ffffff;
  box-shadow:var(--cc-shadow-card);
}

.cc-archiveManual .cc-archive-guide::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:4px;
  height:100%;
  background:linear-gradient(180deg, var(--cc-turq), rgba(70,217,255,.55));
  opacity:.9;
}

.cc-archive-guide__kicker{
  margin:0 0 10px;
}

.cc-archive-guide__title{
  margin:0 0 12px;
  max-width:18ch;
  color:var(--cc-navy);
  font-size:clamp(22px, 2.1vw, 30px);
  line-height:1.08;
  letter-spacing:-.035em;
  font-weight:900;
  text-wrap:balance;
}

.cc-archive-guide__text{
  margin:0;
  max-width:48ch;
  color:var(--cc-ink78);
  font-size:14.5px;
  line-height:1.65;
  font-weight:650;
}

.cc-archive-guide__link{
  margin-top:18px;
}

/* =========================
   Archives / Tous les articles
   ========================= */

.cc-archiveManual__all{
  margin:0;
}

.cc-archiveManual__sectionKicker{
  margin:0 0 9px;
}

.cc-archiveManual__sectionTitle{
  margin:0 0 24px;
  color:var(--cc-navy);
  font-size:clamp(28px, 4vw, 44px);
  line-height:1.05;
  letter-spacing:-.045em;
  font-weight:950;
  text-wrap:balance;
}

.cc-archiveManual__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(18px, 2.4vw, 26px);
  align-items:start;
}

.cc-archiveManualCard--grid .cc-archiveManualCard__image{
  aspect-ratio:16 / 10;
}

.cc-archiveManualCard--grid .cc-archiveManualCard__body{
  padding:18px 19px 20px;
}

.cc-archiveManualCard--grid .cc-archiveManualCard__title{
  font-size:clamp(18px, 1.55vw, 22px);
  line-height:1.08;
}

.cc-archiveManualCard--grid .cc-archiveManualCard__excerpt{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:12.8px;
  line-height:1.52;
}

/* =========================
   Responsive tablette
   ========================= */

@media (max-width:1080px){
  .cc-archiveManual__featured{
    grid-template-columns:1fr;
  }

  .cc-archiveManual__featuredSide{
    grid-template-columns:1fr 1fr;
  }

  .cc-archive-guide__title{
    max-width:22ch;
  }
}

@media (max-width:900px){
  .cc-archiveManual__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* =========================
   Responsive mobile
   ========================= */

@media (max-width:767px){
  .cc-archiveManual__inner{
    width:min(100% - 24px, 1120px);
    padding:30px 0 72px;
  }

  .cc-archiveManual__header{
    margin-bottom:28px;
  }

  .cc-archiveManual__title{
    font-size:clamp(42px, 16vw, 58px);
    line-height:.96;
  }

  .cc-archiveManual__lead{
    font-size:15px;
    line-height:1.62;
  }

  .cc-archiveManual__chips{
    gap:7px;
  }

  .cc-archiveManual__chips span{
    min-height:26px;
    padding:6px 10px;
    font-size:11.5px;
  }

  .cc-archiveManual__featured{
    gap:16px;
    margin-bottom:48px;
  }

  .cc-archiveManual__featuredSide{
    grid-template-columns:1fr;
    gap:16px;
  }

  .cc-archiveManualCard__body,
  .cc-archiveManualCard--lead .cc-archiveManualCard__body,
  .cc-archiveManualCard--side .cc-archiveManualCard__body,
  .cc-archiveManualCard--grid .cc-archiveManualCard__body{
    padding:18px 18px 20px;
  }

  .cc-archiveManualCard--lead .cc-archiveManualCard__title,
  .cc-archiveManualCard--side .cc-archiveManualCard__title{
    max-width:none;
    font-size:clamp(23px, 7.2vw, 32px);
    line-height:1.06;
  }

  .cc-archiveManualCard__excerpt,
  .cc-archiveManualCard--lead .cc-archiveManualCard__excerpt{
    font-size:13.5px;
    line-height:1.58;
  }

  .cc-archiveManual .cc-archive-guide{
    padding:22px 20px 20px;
    border-radius:var(--cc-r16);
  }

  .cc-archive-guide__title{
    max-width:none;
    font-size:clamp(22px, 6.4vw, 28px);
  }

  .cc-archive-guide__text{
    font-size:14.2px;
    line-height:1.62;
  }

  .cc-archiveManual__sectionTitle{
    margin-bottom:18px;
    font-size:clamp(28px, 9vw, 36px);
  }

  .cc-archiveManual__grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  .cc-archiveManualCard--grid .cc-archiveManualCard__title{
    font-size:clamp(21px, 6.2vw, 28px);
  }
}

@media (max-width:420px){
  .cc-archiveManual__inner{
    width:min(100% - 20px, 1120px);
  }

  .cc-archiveManualCard,
  .cc-archiveManual .cc-archive-guide{
    border-radius:16px;
  }

  .cc-archiveManualCard__body,
  .cc-archiveManualCard--lead .cc-archiveManualCard__body,
  .cc-archiveManualCard--side .cc-archiveManualCard__body,
  .cc-archiveManualCard--grid .cc-archiveManualCard__body{
    padding-left:16px;
    padding-right:16px;
  }
}



/* =========================================================
   CityCleaner — Carte orientation propriétaire / Archive Articles
   Variante compacte inspirée callout CTA
   Remplace l'ancien bloc .cc-archive-guide
   ========================================================= */

.cc-archive-guide.cc-archive-guide--solution{
  --cc-guide-navy:#012148;
  --cc-guide-turq:#27CFA9;
  --cc-guide-sky:#46D9FF;
  --cc-guide-white:#ffffff;
  --cc-guide-muted:rgba(255,255,255,.78);

  position:relative;
  display:grid;
  grid-template-columns:88px minmax(0, 1fr);
  gap:18px;
  align-items:center;
  overflow:hidden;

  margin-top:24px;
  padding:22px;
  border-radius:24px;
  border:1px solid rgba(1,33,72,.10);
  color:var(--cc-guide-white);

  background:
    radial-gradient(520px 280px at 0% 0%, rgba(39,207,169,.34), transparent 58%),
    radial-gradient(420px 260px at 100% 0%, rgba(70,217,255,.16), transparent 62%),
    linear-gradient(135deg, #012148 0%, #06306A 100%);

  box-shadow:
    0 18px 42px rgba(1,33,72,.16),
    0 1px 0 rgba(255,255,255,.12) inset;
  isolation:isolate;
}

.cc-archive-guide.cc-archive-guide--solution::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:23px;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
  z-index:0;
}

.cc-archive-guide.cc-archive-guide--solution::after{
  content:"";
  position:absolute;
  right:-72px;
  bottom:-82px;
  width:210px;
  height:210px;
  border-radius:999px;
  background:rgba(39,207,169,.10);
  filter:blur(2px);
  z-index:0;
}

.cc-archive-guide.cc-archive-guide--solution > *{
  position:relative;
  z-index:1;
}

.cc-archive-guide--solution .cc-archive-guide__media{
  position:relative;
  width:88px;
  height:88px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
  border:1px solid rgba(255,255,255,.42);
  box-shadow:
    0 14px 26px rgba(0,0,0,.16),
    0 1px 0 rgba(255,255,255,.65) inset;
}

.cc-archive-guide--solution .cc-archive-guide__badge{
  position:absolute;
  top:12px;
  left:12px;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(1,33,72,.92);
  color:#ffffff;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.04em;
}

.cc-archive-guide--solution .cc-archive-guide__icon{
  width:52px;
  height:52px;
  margin-top:10px;
}

.cc-archive-guide--solution .cc-archive-guide__icon path{
  fill:none;
  stroke:#012148;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.cc-archive-guide--solution .cc-archive-guide__content{
  min-width:0;
}

.cc-archive-guide--solution .cc-archive-guide__kicker{
  margin:0 0 8px;
  color:rgba(255,255,255,.72);
  font-size:11px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.cc-archive-guide--solution .cc-archive-guide__title{
  margin:0;
  max-width:21ch;
  color:#ffffff;
  font-size:clamp(20px, 2vw, 27px);
  line-height:1.08;
  letter-spacing:-.035em;
  font-weight:950;
  text-wrap:balance;
}

.cc-archive-guide--solution .cc-archive-guide__text{
  margin:10px 0 0;
  max-width:46ch;
  color:var(--cc-guide-muted);
  font-size:14px;
  line-height:1.55;
  font-weight:650;
}

.cc-archive-guide--solution .cc-archive-guide__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;

  margin-top:16px;
  min-height:44px;
  padding:12px 18px;
  border-radius:999px;

  background:#ffffff;
  color:#012148 !important;
  border:1px solid rgba(255,255,255,.76);
  box-shadow:0 10px 22px rgba(0,0,0,.14);

  font-size:13px;
  line-height:1;
  font-weight:900;
  text-decoration:none !important;
  white-space:nowrap;

  transition:
    transform .16s ease,
    box-shadow .16s ease,
    background-color .16s ease;
}

.cc-archive-guide--solution .cc-archive-guide__button:hover,
.cc-archive-guide--solution .cc-archive-guide__button:focus-visible{
  transform:translateY(-1px);
  background:#F7F9FB;
  box-shadow:0 14px 26px rgba(0,0,0,.18);
}

.cc-archive-guide--solution .cc-archive-guide__button:focus-visible{
  outline:3px solid rgba(70,217,255,.55);
  outline-offset:3px;
}

@media (max-width:1080px){
  .cc-archive-guide.cc-archive-guide--solution{
    grid-template-columns:72px minmax(0, 1fr);
    gap:16px;
    padding:20px;
    border-radius:22px;
  }

  .cc-archive-guide--solution .cc-archive-guide__media{
    width:72px;
    height:72px;
    border-radius:18px;
  }

  .cc-archive-guide--solution .cc-archive-guide__badge{
    top:9px;
    left:9px;
    width:22px;
    height:22px;
    font-size:9px;
  }

  .cc-archive-guide--solution .cc-archive-guide__icon{
    width:44px;
    height:44px;
  }

  .cc-archive-guide--solution .cc-archive-guide__title{
    max-width:22ch;
    font-size:clamp(19px, 3vw, 25px);
  }
}

@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution{
    grid-template-columns:1fr;
    gap:16px;
    margin-top:18px;
    padding:20px;
    border-radius:22px;
  }

  .cc-archive-guide--solution .cc-archive-guide__media{
    width:76px;
    height:76px;
  }

  .cc-archive-guide--solution .cc-archive-guide__title{
    max-width:none;
    font-size:clamp(22px, 6.2vw, 28px);
  }

  .cc-archive-guide--solution .cc-archive-guide__text{
    max-width:none;
    font-size:14.5px;
    line-height:1.58;
  }

  .cc-archive-guide--solution .cc-archive-guide__button{
    width:100%;
    min-height:48px;
  }
}

@media (prefers-reduced-motion:reduce){
  .cc-archive-guide--solution .cc-archive-guide__button{
    transition:none !important;
  }

  .cc-archive-guide--solution .cc-archive-guide__button:hover,
  .cc-archive-guide--solution .cc-archive-guide__button:focus-visible{
    transform:none !important;
  }
}



/* =========================================================
   CityCleaner — Finition carte orientation archive
   Objectif : carte plus éditoriale, moins dominante que les articles
   ========================================================= */

.cc-archive-guide.cc-archive-guide--solution{
  grid-template-columns:76px minmax(0, 1fr);
  gap:16px;
  padding:20px;
  border-radius:22px;
  background:
    radial-gradient(420px 220px at 0% 0%, rgba(39,207,169,.22), transparent 58%),
    radial-gradient(380px 240px at 100% 100%, rgba(70,217,255,.10), transparent 62%),
    linear-gradient(135deg, #012148 0%, #053063 100%);
  box-shadow:
    0 14px 30px rgba(1,33,72,.13),
    0 1px 0 rgba(255,255,255,.10) inset;
}

.cc-archive-guide.cc-archive-guide--solution::after{
  opacity:.72;
}

.cc-archive-guide--solution .cc-archive-guide__media{
  width:76px;
  height:76px;
  border-radius:18px;
}

.cc-archive-guide--solution .cc-archive-guide__badge{
  top:10px;
  left:10px;
  width:23px;
  height:23px;
  font-size:9px;
}

.cc-archive-guide--solution .cc-archive-guide__icon{
  width:44px;
  height:44px;
  margin-top:8px;
}

.cc-archive-guide--solution .cc-archive-guide__kicker{
  margin-bottom:7px;
  font-size:10px;
  letter-spacing:.10em;
}

.cc-archive-guide--solution .cc-archive-guide__title{
  max-width:22ch;
  font-size:clamp(19px, 1.75vw, 24px);
  line-height:1.08;
  letter-spacing:-.03em;
}

.cc-archive-guide--solution .cc-archive-guide__text{
  margin-top:9px;
  max-width:48ch;
  font-size:13px;
  line-height:1.55;
  color:rgba(255,255,255,.76);
}

.cc-archive-guide--solution .cc-archive-guide__button{
  margin-top:14px;
  min-height:40px;
  padding:11px 16px;
  font-size:12.5px;
  box-shadow:0 8px 18px rgba(0,0,0,.13);
}

@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution{
    grid-template-columns:1fr;
    padding:20px;
  }

  .cc-archive-guide--solution .cc-archive-guide__title{
    font-size:clamp(22px, 6vw, 27px);
  }

  .cc-archive-guide--solution .cc-archive-guide__text{
    font-size:14px;
  }
}

/* Remplacement pictogramme complexe par repère simple */
.cc-archive-guide--solution .cc-archive-guide__icon{
  display:none !important;
}

.cc-archive-guide--solution .cc-archive-guide__mark{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  margin-top:8px;
  border-radius:16px;
  background:rgba(39,207,169,.14);
  color:#012148;
  font-size:24px;
  line-height:1;
  font-weight:950;
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
}

/* Texte plus naturel et moins massif */
.cc-archive-guide--solution .cc-archive-guide__title{
  max-width:18ch;
  font-size:clamp(21px, 1.9vw, 26px);
}

.cc-archive-guide--solution .cc-archive-guide__text{
  max-width:42ch;
  font-size:13.5px;
  line-height:1.52;
}


/* =========================================================
   CityCleaner — Carte orientation sans icône
   Objectif : supprimer l'effet pictogramme bricolé
   ========================================================= */

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--textOnly{
  grid-template-columns:1fr !important;
  gap:0 !important;
  padding:24px 26px 24px !important;
}

.cc-archive-guide--textOnly .cc-archive-guide__media,
.cc-archive-guide--textOnly .cc-archive-guide__badge,
.cc-archive-guide--textOnly .cc-archive-guide__icon,
.cc-archive-guide--textOnly .cc-archive-guide__mark{
  display:none !important;
}

.cc-archive-guide--textOnly .cc-archive-guide__content{
  max-width:520px;
}

.cc-archive-guide--textOnly .cc-archive-guide__kicker{
  margin-bottom:8px;
  font-size:10.5px;
  letter-spacing:.11em;
}

.cc-archive-guide--textOnly .cc-archive-guide__title{
  max-width:18ch;
  font-size:clamp(22px, 2.15vw, 30px);
  line-height:1.05;
}

.cc-archive-guide--textOnly .cc-archive-guide__text{
  max-width:45ch;
  margin-top:10px;
  font-size:13.5px;
  line-height:1.55;
  color:rgba(255,255,255,.78);
}

.cc-archive-guide--textOnly .cc-archive-guide__button{
  margin-top:17px;
  min-height:42px;
  padding:12px 18px;
}

@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--textOnly{
    padding:22px 20px !important;
  }

  .cc-archive-guide--textOnly .cc-archive-guide__content{
    max-width:none;
  }

  .cc-archive-guide--textOnly .cc-archive-guide__title{
    max-width:none;
    font-size:clamp(22px, 6vw, 28px);
  }

  .cc-archive-guide--textOnly .cc-archive-guide__text{
    max-width:none;
    font-size:14px;
  }
}



/* =========================================================
   CityCleaner — Finition carte orientation text-only
   Objectif : plus épuré, bouton plus lisible
   ========================================================= */

.cc-archive-guide--textOnly .cc-archive-guide__kicker{
  font-size:10.5px;
  letter-spacing:.12em;
  color:rgba(255,255,255,.74);
}

.cc-archive-guide--textOnly .cc-archive-guide__title{
  max-width:17ch;
  font-size:clamp(22px, 2.2vw, 31px);
  line-height:1.04;
}

.cc-archive-guide--textOnly .cc-archive-guide__text{
  max-width:43ch;
  margin-top:12px;
  font-size:14px;
  line-height:1.58;
  color:rgba(255,255,255,.80);
}

.cc-archive-guide--textOnly .cc-archive-guide__button{
  margin-top:18px;
  min-height:46px;
  padding:13px 22px;
  font-size:14px;
  font-weight:950;
  letter-spacing:-.01em;
}

@media (max-width:640px){
  .cc-archive-guide--textOnly .cc-archive-guide__text{
    font-size:14.5px;
  }

  .cc-archive-guide--textOnly .cc-archive-guide__button{
    font-size:14px;
  }
}






























/* =========================================================
   OPTION 2 — Grand C fantôme + halo clair
   Score estimé : 9,1/10
   Rendu : le plus équilibré, premium, brandé, vivant.
   ========================================================= */

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(360px 250px at 92% 88%, rgba(39,207,169,.23), transparent 64%),
    radial-gradient(460px 280px at 8% 0%, rgba(39,207,169,.16), transparent 62%),
    linear-gradient(135deg, #012148 0%, #06306A 100%) !important;
  box-shadow:
    inset 4px 0 0 rgba(39,207,169,.92),
    0 16px 34px rgba(1,33,72,.14),
    0 1px 0 rgba(255,255,255,.12) inset !important;
}

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.11);
  pointer-events:none;
  z-index:0;
}

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::after{
  content:"";
  position:absolute;
  width:255px;
  aspect-ratio:1;
  right:-86px;
  bottom:-110px;
  border-radius:50%;
  background:conic-gradient(from -42deg, transparent 0 78deg, rgba(39,207,169,.19) 79deg 360deg);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 66px), #000 calc(100% - 65px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 66px), #000 calc(100% - 65px));
  transform:rotate(-3deg);
  pointer-events:none;
  z-index:0;
}

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2 > *{
  position:relative;
  z-index:2;
}




/* =========================================================
   Mobile commun — réduit les décors pour éviter la surcharge.
   ========================================================= */

@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::after,
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt1::after{
    width:210px;
    right:-92px;
    bottom:-96px;
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 54px), #000 calc(100% - 53px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 54px), #000 calc(100% - 53px));
  }

  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt5::after{
    width:150px;
    right:-72px;
    bottom:-70px;
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 38px), #000 calc(100% - 37px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 38px), #000 calc(100% - 37px));
  }

  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt3::after{
    width:300px;
    right:-158px;
    top:auto;
    bottom:-112px;
    opacity:.82;
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 74px), #000 calc(100% - 73px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 74px), #000 calc(100% - 73px));
  }
}









/* =========================================================
   CORRECTION POSITIONNEMENT DES C
   Objectif : rendre le motif lisible, ancré, non accidentel
   ========================================================= */


/* ---------- OPTION 2 : mieux ancrée, plus lisible ---------- */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::after{
  width:290px !important;
  right:-70px !important;
  bottom:-78px !important;
  transform:rotate(-2deg) !important;
  opacity:.92;
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 74px), #000 calc(100% - 73px)) !important;
  mask:radial-gradient(farthest-side, transparent calc(100% - 74px), #000 calc(100% - 73px)) !important;
}




/* ---------- Mobile : simplification ---------- */
@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::after,
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt1::after{
    width:220px !important;
    right:-78px !important;
    bottom:-88px !important;
  }

  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt5::after{
    width:170px !important;
    right:-58px !important;
    bottom:-62px !important;
  }

  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt3::after{
    width:250px !important;
    right:-110px !important;
    bottom:-98px !important;
    opacity:.44 !important;
  }
}




/* =========================================================
   CityCleaner — Carte archive : brandmark final corrigé
   Objectif : remplacer les faux C conic-gradient par un motif stable
   ========================================================= */

/* 1) Neutralise les anciens C de test */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt1::after,
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt2::after,
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt3::after,
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--opt5::after{
  display:none !important;
}

/* 2) Base visuelle finale */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(380px 260px at 96% 92%, rgba(39,207,169,.18), transparent 66%),
    radial-gradient(440px 260px at 4% 0%, rgba(39,207,169,.12), transparent 62%),
    linear-gradient(135deg, #012148 0%, #06306A 100%) !important;
  box-shadow:
    inset 4px 0 0 rgba(39,207,169,.92),
    0 16px 34px rgba(1,33,72,.14),
    0 1px 0 rgba(255,255,255,.11) inset !important;
}

/* Bord interne subtil */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
  z-index:0;
}

/* 3) Nouveau C SVG — plus proche d’un vrai brandmark */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark::after{
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  right:-58px;
  bottom:-62px;
  opacity:.16;
  pointer-events:none;
  z-index:0;
  transform:rotate(-4deg);

  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;

  background-image:url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M97.5 25.5C88.9 19.9 78.6 16.7 67.6 16.7C37.6 16.7 13.2 41.1 13.2 71.1C13.2 101.1 37.6 125.5 67.6 125.5C78.6 125.5 88.9 122.3 97.5 116.7L76.1 95.3C73.4 96.4 70.5 97 67.6 97C53.3 97 41.7 85.4 41.7 71.1C41.7 56.8 53.3 45.2 67.6 45.2C70.5 45.2 73.4 45.8 76.1 46.9L97.5 25.5Z' fill='%2327CFA9'/%3E%3Cpath d='M84.5 71.1L132.8 34.8V107.4L84.5 71.1Z' fill='%2327CFA9'/%3E%3C/svg%3E");
}

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark > *{
  position:relative;
  z-index:2;
}

/* 4) Mobile : motif plus discret */
@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark::after{
    width:185px;
    height:185px;
    right:-70px;
    bottom:-66px;
    opacity:.13;
  }
}


/* =========================================================
   CityCleaner — Finition brandmark carte archive
   Objectif : motif plus premium, moins dominant
   ========================================================= */

.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark::after{
  width:215px !important;
  height:215px !important;
  right:-78px !important;
  bottom:-74px !important;
  opacity:.12 !important;
  transform:rotate(-4deg) !important;
}

/* Halo plus doux pour éviter l'effet tache lumineuse */
.cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark{
  background:
    radial-gradient(340px 240px at 96% 92%, rgba(39,207,169,.13), transparent 68%),
    radial-gradient(420px 260px at 4% 0%, rgba(39,207,169,.10), transparent 62%),
    linear-gradient(135deg, #012148 0%, #06306A 100%) !important;
}

@media (max-width:640px){
  .cc-archive-guide.cc-archive-guide--solution.cc-archive-guide--brandmark::after{
    width:175px !important;
    height:175px !important;
    right:-74px !important;
    bottom:-66px !important;
    opacity:.11 !important;
  }
}





/* =========================================================
   CityCleaner — Alternance douce page Articles
   Objectif : séparer les articles mis en avant des archives
   ========================================================= */

.cc-archiveManual__inner{
  padding-bottom:0 !important;
}

.cc-archiveManual__featured{
  margin-bottom:0 !important;
}

.cc-archiveManual__all{
  position:relative;
  z-index:1;
  margin-top:clamp(58px, 7vw, 86px);
  padding-top:clamp(56px, 6vw, 84px);
  padding-bottom:clamp(72px, 8vw, 118px);
}

.cc-archiveManual__all::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:
    radial-gradient(900px 420px at 12% 8%, rgba(70,217,255,.045), transparent 60%),
    radial-gradient(760px 380px at 88% 10%, rgba(137,88,254,.035), transparent 55%),
    #F7F9FB;
  border-top:1px solid rgba(1,33,72,.06);
}

@media (max-width:767px){
  .cc-archiveManual__all{
    margin-top:48px;
    padding-top:46px;
    padding-bottom:72px;
  }
}


/* =========================================================
   CityCleaner — Nettoyage hero page Articles
   Objectif : supprimer l'effet fond encadré / rendu cassé
   ========================================================= */

.cc-archiveManual{
  background:#ffffff !important;
  overflow:hidden;
}

.cc-archiveManual::before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  left:50%;
  width:100vw;
  height:clamp(260px, 32vw, 430px);
  transform:translateX(-50%);
  pointer-events:none;
  background:
    radial-gradient(920px 420px at 8% 0%, rgba(70,217,255,.045), transparent 62%),
    radial-gradient(760px 380px at 92% 8%, rgba(137,88,254,.035), transparent 58%),
    #FCFDFE;
  border-bottom:1px solid rgba(1,33,72,.045);
}

.cc-archiveManual__inner{
  position:relative;
  z-index:1;
}

/* Supprime les chips du haut si elles restent dans le HTML */
.cc-archiveManual__chips{
  display:none !important;
}

/* Supprime le libellé “Archives” au-dessus de Tous les articles */
.cc-archiveManual__all .cc-archiveManual__sectionKicker{
  display:none !important;
}

.cc-archiveManual__sectionTitle{
  margin-top:0 !important;
}



/* =========================================================
   CityCleaner — Respiration haute page Articles
   Objectif : éviter l'effet collé sous le header
   ========================================================= */

.cc-archiveManual__inner{
  padding-top:clamp(42px, 4vw, 64px) !important;
}

.cc-archiveManual__header{
  margin-top:0 !important;
}

@media (max-width:767px){
  .cc-archiveManual__inner{
    padding-top:32px !important;
  }
}




/* =========================================================
   CityCleaner — Rythme haut de page après header
   Objectif : harmoniser homepage, page Articles et articles
   Sans toucher au rythme interne des sections
   ========================================================= */

:root{
  --cc-after-header-desktop: clamp(56px, 5vw, 76px);
  --cc-after-header-home-desktop: clamp(64px, 5.8vw, 88px);
  --cc-after-header-mobile: 36px;
  --cc-after-header-home-mobile: 42px;
}

/* -----------------------------
   Homepage : hero un peu plus respirant
----------------------------- */
.cc-hero.cc-hero--visual{
  padding-top: var(--cc-after-header-home-desktop) !important;
}

/* -----------------------------
   Page Articles manuelle
----------------------------- */
.cc-archiveManual__inner{
  padding-top: var(--cc-after-header-desktop) !important;
}

.cc-archiveManual__header{
  margin-top:0 !important;
}

.cc-archiveManual__kicker{
  margin-top:0 !important;
  margin-bottom:18px !important;
}

/* -----------------------------
   Pages articles individuelles
----------------------------- */
.cc-article > .cc-article__header{
  padding-top: var(--cc-after-header-desktop) !important;
}

.cc-article__header .cc-article__kicker{
  margin-top:0 !important;
}

/* -----------------------------
   Mobile
----------------------------- */
@media (max-width:767px){
  .cc-hero.cc-hero--visual{
    padding-top: var(--cc-after-header-home-mobile) !important;
  }

  .cc-archiveManual__inner{
    padding-top: var(--cc-after-header-mobile) !important;
  }

  .cc-archiveManual__kicker{
    margin-bottom:14px !important;
  }

  .cc-article > .cc-article__header{
    padding-top: var(--cc-after-header-mobile) !important;
  }
}


/* =========================================================
   CityCleaner — Micro-ajustement haut page Articles
   Objectif : décoller le kicker du header sans descendre tout le hero
   ========================================================= */

.cc-archiveManual__header{
  padding-top:clamp(12px, 1.4vw, 22px) !important;
}

@media (max-width:767px){
  .cc-archiveManual__header{
    padding-top:10px !important;
  }
}
























































/* =========================================================
   CityCleaner — Page service "Ménage Airbnb + linge"
   CSS nettoyé V1 — remplacement complet du CSS actuel
   ========================================================= */.cc-service-airbnb-linge,.cc-service-airbnb-linge *,.cc-service-airbnb-linge *::before,.cc-service-airbnb-linge *::after{box-sizing:border-box}.cc-service-airbnb-linge{--navy:#012148;--turq:#27CFA9;--sky:#46D9FF;--violet:#8958FE;--white:#fff;--soft:#F7F9FB;--ink90:rgba(1,33,72,.9);--ink78:rgba(1,33,72,.78);--ink64:rgba(1,33,72,.64);--ink50:rgba(1,33,72,.5);--ink28:rgba(1,33,72,.28);--ink14:rgba(1,33,72,.14);--ink10:rgba(1,33,72,.10);--ink08:rgba(1,33,72,.08);--container:min(1120px,calc(100% - 32px));--narrow:min(780px,calc(100% - 32px));--r14:14px;--r18:18px;--r20:20px;--r24:24px;--pill:999px;--shadow:0 10px 26px rgba(1,33,72,.06);--shadow2:0 18px 42px rgba(1,33,72,.1);--section:64px;--hero-y:44px;display:block;width:100%;overflow:visible;color:var(--navy);background:var(--white);font-family:inherit;text-rendering:optimizeLegibility}.cc-service-airbnb-linge a{color:inherit}.cc-service-airbnb-linge a:focus-visible,.cc-service-airbnb-linge summary:focus-visible{outline:3px solid rgba(70,217,255,.55);outline-offset:4px;border-radius:12px}.cc-service-airbnb-linge img{display:block;max-width:100%;height:auto}.cc-service-airbnb-linge__section{position:relative;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:var(--section) 0}.cc-service-airbnb-linge__section--hero{padding:var(--hero-y) 0 var(--section);background:radial-gradient(900px 420px at 8% 0%,rgba(70,217,255,.12),transparent 62%),radial-gradient(740px 380px at 96% 4%,rgba(39,207,169,.1),transparent 58%),#fff}.cc-service-airbnb-linge__section--services,.cc-service-airbnb-linge__section--process,.cc-service-airbnb-linge__section--billing,.cc-service-airbnb-linge__section--conciergerie,.cc-service-airbnb-linge__section--faq{background:radial-gradient(760px 340px at 8% 8%,rgba(70,217,255,.055),transparent 62%),radial-gradient(620px 320px at 92% 8%,rgba(39,207,169,.045),transparent 60%),var(--soft)}.cc-service-airbnb-linge__section--linge,.cc-service-airbnb-linge__section--fit,.cc-service-airbnb-linge__section--proof,.cc-service-airbnb-linge__section--zones{background:#fff}.cc-service-airbnb-linge__section--zones{background:radial-gradient(760px 320px at 92% 8%,rgba(39,207,169,.08),transparent 60%),#fff}.cc-service-airbnb-linge__section--cta-final{background:radial-gradient(780px 340px at 88% 8%,rgba(39,207,169,.08),transparent 62%),var(--soft);padding-top:86px;padding-bottom:96px}.cc-service-airbnb-linge__inner{width:var(--container);margin:0 auto}.cc-service-airbnb-linge__inner--narrow{width:var(--narrow)}.cc-service-airbnb-linge__section-header{display:grid;gap:12px;max-width:760px;margin:0 0 40px}.cc-service-airbnb-linge__title,.cc-service-airbnb-linge__section-title,.cc-service-airbnb-linge__subsection-title,.cc-service-airbnb-linge__card-title,.cc-service-airbnb-linge__mini-title{margin:0;color:var(--navy)}.cc-service-airbnb-linge__title{max-width:760px;font-size:clamp(34px,9vw,58px);line-height:1.03;letter-spacing:-.035em;font-weight:900}.cc-service-airbnb-linge__title-accent{color:var(--turq);text-decoration:none}.cc-service-airbnb-linge__section-title{font-size:clamp(26px,6.2vw,42px);line-height:1.1;letter-spacing:-.025em;font-weight:900}.cc-service-airbnb-linge__subsection-title{font-size:18px;line-height:1.25;font-weight:850}.cc-service-airbnb-linge__lead,.cc-service-airbnb-linge__section-lead{margin:0;color:var(--ink78);font-size:17px;line-height:1.62;font-weight:620}.cc-service-airbnb-linge__lead{max-width:640px;font-size:18px}.cc-service-airbnb-linge__text,.cc-service-airbnb-linge__card-text,.cc-service-airbnb-linge__mini-text,.cc-service-airbnb-linge__faq-answer p{margin:0;color:var(--ink78);font-size:15.5px;line-height:1.66;font-weight:560}.cc-service-airbnb-linge__microcopy{margin:0;color:var(--ink64);font-size:13.5px;line-height:1.55;font-weight:650}.cc-service-airbnb-linge__inner--hero{display:grid;gap:32px;align-items:center}.cc-service-airbnb-linge__hero-content{display:grid;gap:16px}.cc-service-airbnb-linge__chips,.cc-service-airbnb-linge__zone-list{list-style:none;margin:0;padding:0}.cc-service-airbnb-linge__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.cc-service-airbnb-linge__chips li{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid var(--ink10);border-radius:var(--pill);background:rgba(255,255,255,.78);color:var(--ink78);font-size:12.5px;line-height:1.2;font-weight:800;box-shadow:0 6px 16px rgba(1,33,72,.035)}.cc-service-airbnb-linge__media{margin:0;position:relative}.cc-service-airbnb-linge__media--hero{justify-self:center;width:100%;max-width:620px;aspect-ratio:6/7;border-radius:24px;overflow:hidden}.cc-service-airbnb-linge__image--hero{position:absolute;inset:0;width:100%;height:100%;border-radius:24px;object-fit:cover;object-position:center;box-shadow:var(--shadow2);border:1px solid var(--ink10);background:var(--soft)}.cc-service-airbnb-linge__cta-group,.cc-service-airbnb-linge__cta-block{display:grid;gap:12px}.cc-service-airbnb-linge__cta-group{margin-top:4px}.cc-service-airbnb-linge__cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;width:100%;padding:15px 24px;border-radius:18px;border:1px solid transparent;font-size:16px;font-weight:850;line-height:1.15;text-align:center;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease,color .14s ease}.cc-service-airbnb-linge__cta-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:0}.cc-service-airbnb-linge__cta-icon svg{width:19px;height:19px}.cc-service-airbnb-linge__cta--primary{color:#fff;background:#012148;border-color:#012148;box-shadow:0 12px 26px rgba(1,33,72,.15)}.cc-service-airbnb-linge__cta--secondary{color:var(--navy);background:#fff;border-color:var(--ink14);box-shadow:0 8px 20px rgba(1,33,72,.045)}.cc-service-airbnb-linge__cta:hover{transform:translateY(-1px)}.cc-service-airbnb-linge__cta--primary:hover{background:#082f63;box-shadow:0 16px 34px rgba(1,33,72,.18)}.cc-service-airbnb-linge__cta--secondary:hover{border-color:rgba(39,207,169,.4);box-shadow:0 12px 26px rgba(1,33,72,.07)}.cc-service-airbnb-linge__grid,.cc-service-airbnb-linge__inner--split,.cc-service-airbnb-linge__split-content,.cc-service-airbnb-linge__mini-grid{display:grid;gap:16px}.cc-service-airbnb-linge__inner--split{gap:32px;align-items:center}.cc-service-airbnb-linge__card,.cc-service-airbnb-linge__mini-card{border:1px solid var(--ink10);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.cc-service-airbnb-linge__card{display:grid;gap:12px;padding:20px}.cc-service-airbnb-linge__card-title{font-size:18px;line-height:1.25;font-weight:850}.cc-service-airbnb-linge__service-title{display:flex;align-items:center;gap:10px}.cc-service-airbnb-linge__service-icon{display:inline-grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:12px;color:var(--navy);background:rgba(39,207,169,.12);border:1px solid rgba(39,207,169,.22)}.cc-service-airbnb-linge__service-icon svg{width:19px;height:19px}.cc-service-airbnb-linge__service-title-text{position:relative;display:inline-block;padding-bottom:4px;line-height:1.12}.cc-service-airbnb-linge__service-title-text::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;border-radius:999px;background:var(--turq);opacity:.58}.cc-service-airbnb-linge__mini-grid{grid-template-columns:1fr}.cc-service-airbnb-linge__mini-card{display:grid;gap:6px;padding:16px}.cc-service-airbnb-linge__mini-title{font-size:15px;line-height:1.25;font-weight:850}.cc-service-airbnb-linge__mini-title--icon{display:flex;align-items:center;gap:10px}.cc-service-airbnb-linge__mini-status-icon{display:inline-grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:999px;line-height:0}.cc-service-airbnb-linge__mini-status-icon svg{width:18px;height:18px}.cc-service-airbnb-linge__mini-status-icon--check{color:var(--navy);background:rgba(39,207,169,.12);border:1px solid rgba(39,207,169,.25)}.cc-service-airbnb-linge__mini-status-icon--alert{color:#667085;background:rgba(102,112,133,.08);border:1px solid rgba(102,112,133,.22)}.cc-service-airbnb-linge__mini-text{font-size:14px;line-height:1.52}.cc-service-airbnb-linge__list,.cc-service-airbnb-linge__signal-list,.cc-service-airbnb-linge__info-list,.cc-service-airbnb-linge__billing-list,.cc-service-airbnb-linge__zones-checklist{list-style:none;margin:0;padding:0}.cc-service-airbnb-linge__list{display:grid;gap:10px}.cc-service-airbnb-linge__list li{position:relative;padding-left:18px;color:var(--ink78);font-size:15px;line-height:1.56;font-weight:560}.cc-service-airbnb-linge__list li::before{content:"";position:absolute;left:0;top:.68em;width:6px;height:6px;border-radius:var(--pill);background:var(--ink28)}.cc-service-airbnb-linge__list--check li::before,.cc-service-airbnb-linge__card--citycleaner .cc-service-airbnb-linge__list li::before{background:var(--turq)}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__media{position:relative;width:100%;max-width:620px;aspect-ratio:6/7;margin:0;border-radius:24px;overflow:hidden;background:transparent;box-shadow:var(--shadow2)}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__media>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;border-radius:24px;border:1px solid var(--ink10);background:var(--soft)}.cc-service-airbnb-linge__process-header{max-width:820px;margin-bottom:46px}.cc-service-airbnb-linge__process-timeline{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:42px;list-style:none;margin:0;padding:0}.cc-service-airbnb-linge__process-timeline::before{content:"";position:absolute;top:20px;left:5%;right:5%;height:2px;background:linear-gradient(90deg,rgba(1,33,72,.18),rgba(1,33,72,.18) 65%,rgba(39,207,169,.62))}.cc-service-airbnb-linge__process-item{position:relative;display:grid;align-content:start;gap:14px;padding-top:64px}.cc-service-airbnb-linge__process-number{position:absolute;top:0;left:0;z-index:2;display:grid;place-items:center;width:42px;height:42px;border-radius:999px;color:#fff;background:var(--navy);border:6px solid rgba(1,33,72,.08);box-shadow:0 12px 26px rgba(1,33,72,.12);font-size:15px;font-weight:900;line-height:1}.cc-service-airbnb-linge__process-number--final{color:var(--navy);background:var(--turq);border-color:rgba(39,207,169,.2)}.cc-service-airbnb-linge__process-title{margin:0;color:var(--navy);font-size:clamp(18px,2vw,22px);line-height:1.12;letter-spacing:-.025em;font-weight:900}.cc-service-airbnb-linge__process-text{margin:0;color:var(--ink78);font-size:15px;line-height:1.58;font-weight:650}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__grid--two{gap:22px}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card{position:relative;overflow:hidden;padding:0;border-radius:24px;background:#fff;border:1px solid var(--ink10);box-shadow:0 18px 44px rgba(1,33,72,.06)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::after{content:"";position:absolute;top:0;left:28px;right:28px;height:2px;border-radius:0 0 999px 999px;background:rgba(39,207,169,.72);pointer-events:none}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::before,.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::before{display:block;padding:24px 26px 12px;color:var(--ink64);font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::before{content:"Le bon cas"}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::before{content:"À clarifier"}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title{position:relative;display:flex;align-items:center;margin:0;padding:0 26px 24px 76px;color:var(--navy);font-size:clamp(20px,2.2vw,26px);line-height:1.18;font-weight:900;letter-spacing:-.02em}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::before{position:absolute;left:26px;top:-4px;display:grid;place-items:center;width:36px;height:36px;border-radius:999px;font-size:20px;line-height:1;font-weight:900}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit .cc-service-airbnb-linge__card-title::before{content:"✓";color:var(--navy);background:rgba(39,207,169,.12);border:1px solid rgba(39,207,169,.42)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit .cc-service-airbnb-linge__card-title::before{content:"!";color:var(--navy);background:rgba(1,33,72,.04);border:1px solid rgba(1,33,72,.18)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink10)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list{gap:18px;padding:24px 26px 0}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li{padding-left:34px;color:var(--ink78);font-size:16px;line-height:1.48;font-weight:760}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li::before{top:.08em;left:0;width:auto;height:auto;border-radius:0;background:none;color:var(--ink78);font-size:19px;line-height:1;font-weight:800}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit .cc-service-airbnb-linge__list li::before{content:"✓";color:var(--navy)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit .cc-service-airbnb-linge__list li::before{content:"–";color:rgba(1,33,72,.62)}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card .cc-service-airbnb-linge__microcopy{margin:22px 26px 28px;padding-top:18px;border-top:1px solid var(--ink10);color:var(--ink64);font-size:15px;line-height:1.55;font-weight:750}.cc-service-airbnb-linge__billing-layout{display:grid;gap:18px}.cc-service-airbnb-linge__billing-card{position:relative;display:grid;gap:18px;padding:26px;border:1px solid var(--ink10);border-radius:24px;background:#fff;box-shadow:0 16px 38px rgba(1,33,72,.055)}.cc-service-airbnb-linge__billing-card--simple{border-color:rgba(39,207,169,.3);background:radial-gradient(520px 220px at 0% 0%,rgba(39,207,169,.07),transparent 60%),#fff}.cc-service-airbnb-linge__billing-card--simple::before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:0 999px 999px 0;background:rgba(39,207,169,.72)}.cc-service-airbnb-linge__billing-title{margin:0;color:var(--navy);font-size:clamp(19px,2vw,24px);line-height:1.18;letter-spacing:-.02em;font-weight:900}.cc-service-airbnb-linge__billing-list{display:grid;gap:13px}.cc-service-airbnb-linge__billing-list li{position:relative;padding-left:28px;color:var(--ink78);font-size:15.5px;line-height:1.5;font-weight:680}.cc-service-airbnb-linge__billing-list li::before{content:"–";position:absolute;left:0;top:0;color:rgba(1,33,72,.55);font-size:18px;line-height:1.2;font-weight:900}.cc-service-airbnb-linge__billing-list--check li::before{content:"✓";color:var(--turq)}.cc-service-airbnb-linge__billing-note{margin:22px 0 0;max-width:760px;color:var(--ink64);font-size:14.5px;line-height:1.58;font-weight:700}.cc-service-airbnb-linge__section--proof .cc-service-airbnb-linge__section-header{max-width:980px;margin-bottom:44px}.cc-service-airbnb-linge__proof-layout{display:grid;gap:32px;align-items:start}.cc-service-airbnb-linge__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cc-service-airbnb-linge__gallery-item{margin:0;overflow:hidden;border-radius:20px}.cc-service-airbnb-linge__gallery-item:first-child{grid-column:1/-1}.cc-service-airbnb-linge__gallery-image{display:block;width:100%;height:100%;border-radius:20px;border:1px solid var(--ink08);box-shadow:0 12px 28px rgba(1,33,72,.07);object-fit:cover;object-position:center;background:var(--soft)}.cc-service-airbnb-linge__gallery-item:first-child .cc-service-airbnb-linge__gallery-image{aspect-ratio:4/3}.cc-service-airbnb-linge__gallery-item:not(:first-child) .cc-service-airbnb-linge__gallery-image{aspect-ratio:16/10}.cc-service-airbnb-linge__proof-content{display:grid;gap:20px;align-content:start;padding:10px 0 0}.cc-service-airbnb-linge__proof-content .cc-service-airbnb-linge__subsection-title{max-width:520px;font-size:clamp(20px,2vw,26px);line-height:1.12;letter-spacing:-.025em;font-weight:900}.cc-service-airbnb-linge__proof-content>.cc-service-airbnb-linge__list{gap:13px}.cc-service-airbnb-linge__proof-content>.cc-service-airbnb-linge__list li{position:relative;padding-left:30px;color:var(--ink78);font-size:15.5px;line-height:1.55;font-weight:680}.cc-service-airbnb-linge__proof-content>.cc-service-airbnb-linge__list li::before{content:"✓";position:absolute;left:0;top:.06em;width:auto;height:auto;background:none;color:var(--turq);font-size:17px;line-height:1;font-weight:900}.cc-service-airbnb-linge__signal-box{margin-top:4px;padding:20px 20px 22px;border-radius:20px;background:#fff;border:1px solid var(--ink10);box-shadow:0 12px 28px rgba(1,33,72,.055)}.cc-service-airbnb-linge__signal-box .cc-service-airbnb-linge__subsection-title{margin:0 0 14px;font-size:16.5px;line-height:1.25;letter-spacing:-.01em;font-weight:900}.cc-service-airbnb-linge__signal-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0;padding:0}.cc-service-airbnb-linge__signal-list li{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border-radius:999px;background:var(--soft);border:1px solid var(--ink10);color:rgba(1,33,72,.82);font-size:13.5px;line-height:1.2;font-weight:760;text-align:center;box-shadow:none}.cc-service-airbnb-linge__section--conciergerie .cc-service-airbnb-linge__card--owner{box-shadow:none}.cc-service-airbnb-linge__section--conciergerie .cc-service-airbnb-linge__card--citycleaner{border-color:rgba(39,207,169,.28)}.cc-service-airbnb-linge__zones-layout{display:grid;gap:34px;align-items:center}.cc-service-airbnb-linge__zones-content{display:grid;gap:22px;max-width:760px}.cc-service-airbnb-linge__section--zones .cc-service-airbnb-linge__section-title{max-width:760px}.cc-service-airbnb-linge__section--zones .cc-service-airbnb-linge__section-lead{max-width:720px}.cc-service-airbnb-linge__zone-list{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 0}.cc-service-airbnb-linge__zone-list li{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border-radius:999px;background:#fff;border:1px solid var(--ink10);box-shadow:0 8px 18px rgba(1,33,72,.04);color:var(--navy);font-size:14px;line-height:1.15;font-weight:850}.cc-service-airbnb-linge__zones-card{position:relative;display:grid;gap:20px;padding:28px;border:1px solid var(--ink10);border-radius:24px;background:radial-gradient(520px 220px at 100% 0%,rgba(70,217,255,.08),transparent 62%),#fff;box-shadow:0 18px 44px rgba(1,33,72,.07)}.cc-service-airbnb-linge__zones-card::before{content:"";position:absolute;top:24px;bottom:24px;left:0;width:3px;border-radius:0 999px 999px 0;background:rgba(39,207,169,.72)}.cc-service-airbnb-linge__zones-card-title{margin:0;color:var(--navy);font-size:clamp(20px,2vw,24px);line-height:1.15;letter-spacing:-.02em;font-weight:900}.cc-service-airbnb-linge__zones-checklist{display:grid;gap:14px}.cc-service-airbnb-linge__zones-checklist li{position:relative;padding-left:30px;color:var(--ink78);font-size:15.5px;line-height:1.5;font-weight:720}.cc-service-airbnb-linge__zones-checklist li::before{content:"✓";position:absolute;left:0;top:.03em;color:var(--turq);font-size:18px;line-height:1;font-weight:900}.cc-service-airbnb-linge__zones-note{margin:2px 0 0;padding-top:16px;border-top:1px solid var(--ink10);color:var(--ink64);font-size:14px;line-height:1.55;font-weight:650}.cc-service-airbnb-linge__faq-list{display:grid;gap:12px}.cc-service-airbnb-linge__section--faq .cc-service-airbnb-linge__section-header{text-align:center;max-width:none;justify-items:center}.cc-service-airbnb-linge__faq-item{border:1px solid var(--ink10);border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(1,33,72,.04);overflow:hidden}.cc-service-airbnb-linge__faq-question{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:16px 48px 16px 18px;color:var(--navy);font-size:15.5px;line-height:1.35;font-weight:850;cursor:pointer;list-style:none}.cc-service-airbnb-linge__faq-question::-webkit-details-marker{display:none}.cc-service-airbnb-linge__faq-question::after{content:"+";position:absolute;top:50%;right:18px;transform:translateY(-50%);display:grid;place-items:center;width:26px;height:26px;border-radius:10px;background:rgba(39,207,169,.12);border:1px solid rgba(39,207,169,.2);color:var(--navy);font-size:18px;line-height:1;font-weight:900}.cc-service-airbnb-linge__faq-item[open] .cc-service-airbnb-linge__faq-question::after{content:"–"}.cc-service-airbnb-linge__faq-answer{display:grid;gap:10px;padding:0 18px 18px}.cc-service-airbnb-linge__faq-answer p{font-size:14.5px;line-height:1.62}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__inner--narrow{width:min(980px,calc(100% - 32px))}.cc-service-airbnb-linge__final-card{position:relative;isolation:isolate;overflow:hidden;display:grid;gap:22px;padding:clamp(30px,5vw,48px);border-radius:26px;border:1px solid rgba(39,207,169,.58);background:radial-gradient(420px 260px at 94% 72%,rgba(39,207,169,.18),transparent 62%),linear-gradient(135deg,#012148 0%,#07346F 100%);box-shadow:0 24px 56px rgba(1,33,72,.18)}.cc-service-airbnb-linge__final-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--turq);pointer-events:none}.cc-service-airbnb-linge__final-card::after{content:"";position:absolute;z-index:1;right:-74px;bottom:-86px;width:270px;height:305px;background-image:url("data:image/webp;base64,UklGRh4JAABXRUJQVlA4TBIJAAAvnIF0EEcgICFc8b+sNEIgkMKWWSCQ4vDWWCBA+K+lQFr3QOCAWdsmN7VYFZlhlyQWDCXnITgPhfMQ7J2GLPsGhMOc7XDjNmqg/qq/Hc55noj+SxDbNpAcaFN2zj+RcPv0cbSVcN/tY6VP7cOCscu39bUd/kHVl0pN9juSTrUa7s/8fEetd1wxc2sUsgUrQ62YsfrPrVHcKP3nTdE7rKj4qXrYOw9DrU42J+G76mdHBm6Vo0fhj3v1tvfgNupv3SqwoVKXm4XVq9ddg/qe+t0hpI16XreOp1bnW0ZTqfstQrlVGmCzQAYNsFC/QaNsWpYX5jdomEU5RnoxflUwOveu1nBb+NZowK08e9OI6xxrNeYObu016t6dumjcTX2qAtOZR42G3tqfncZe585eo+/dmZvG39SXmgBderJTBusc6ZXDvvqhLDbzYkODOtEqj52d/I3JpkX5m/r4U6tE5uNPymYztC0dHVivfHbFqgjRBVJSRjsADcppU5wNKQrTK6tdUSpadInRKq8dMZTZZgiJmg5gUG6b2tuSo4Wp6sRaQ459enbPOByrui5LVa+FqWpR7sb/NEpxq/8QeylNt4XpUJruClMpTVNpWhWmbWnaFKZ9abotTKU0TaVpVZj2pelbYSqlaSpNq8K0L013hamUpm1p2hSmUpp7Kk3rwvRSmqbC3KUqTC+FuUsqzF2qkty9f39YSXaf6gD1/H1cyjO7fdt/pfbpz/L8LrXz3ly+hby2W+O3Tr/n8vqG2m+lceddbNa7rXh73UrM1jht6+6vltv77NaXmdhuqNzV3fdKzNf468mTThDbumty5CCYtc4qtR9nQa31dPdzgT6R1tNdWjeOglzr6C5bLw6CXfJSR9+doPfmpicvVnDSeGlyYi4OVvmobHyYioddPNTN5Sw+tsfXzaUTL9vB6+aycEMqSJO/y0T87AKpurscxdMSojleLitXpAY0x8llIr52sb9n+bh04m3J/J7l4zJ3RyrjPjLgXcXfeuNm+biIx21M+9AOburSYNqHKrROfG5n2YcoVURM+8Ae7Shelyz7QEKbuyWWfWBDqiLJsDnoi++KGN7zBloVMbzntSVoXsLqSDSvwZqSaF4RmnXDmrBoVotFo1kJ6kqjWW9QCxrNgr4jj3ox5dGcHopIcxLSVyJ1Yk6kOQ1Qx6Q5yE6Y1Iclk2b0QAcqzUjIbyp3F9ZUmrHB6bg0A/nN5e7BkkvHBuA3mftYC/wmcx9LODMydYBNxxqYM5uOAS9s7nhLNh254S507iM9zJVORxLuQucOt6LTkR3swuc+0sAufO4juAufO9qCT9EI3e+dUA6Eeq+FXQjd7yUYQnewFaHe26Ew6r0NyIFR78EujO5gjO5Yc0bFotQ7FxRK9zs9yJFS7ySQCaViUbpDzSgVak2pd7YgnHpnA8LpfqfCOHPqHVAnnArF6Q7F6Y4051SkNauqXEBoVeXEUVKzyZ4jtZskjDOpAn0lVaAJqdJUFUZv91jaBbCIxfCRtDe2xYjVZGzDT1UaajiCrC8E2V9UKnp21hAvmro0TB/OsTTOkQylcSqN9P9F9aVxKQ0JQf+dU5XGm7UNPak02tK4lYZYe+NnayxhLEkdgBakPoGmsTQBTAKx/eTI9JOmXWkM/p2Dka2lFqMLxThywtBYDMOSbUQYsgvSglOQJpzCk1mIsgrSezSGEdlgdOHYReQNlHDsIpJIsgnUnFKgJpTClVVE9iDvARlF5ASiARlFRHgyCNaSUbAmjEKXSUSkATmGZBER2aISkkVEJKGsCQVsSihgk5hezL0TyjmmF3PvhqJBvZZ7ArPiE6jAh5cyUqN8DeqljGxRuqheyUiCfUb1SuCmdDKyh5nQyciAEfrwfEYEJPLh+YCF/nw6YzXMlU3Gdnw/n81YwlmQCVrsw5MZu+Ac4noyY4IS+/Bc4GJ/PpeMBufIJRk7xp9PJSMBTakkYw90ppKMG0zwzyeSIUgTJsmpgQ5MkrNDZkUkOYn058Pk7JG6yB4mR5B0xiNevPNIVgP9rWkkK0FNaMQNDS2frAFryiJZgnVkkbwa+5uTSAb4QCSO6IpD8i5gVw7JEygaeaCmldYwOfCD71QTuzzQQrlOq2qXB25oOndbVbs8IHBHvzXMI1tOUVXDPJLgOpd2/2SYR05wOnFo+NezjWSn+K39ae7Y5aEa7+xOe//s8lBS/GbejJ9dHtk70DnzNmYZyU8d7OrKPvfskuXi4O1PmptdHknqYY5s8uzywF497OhG++DZ5QFRF5s4cdInJoDV6mJzH6qH7mK/pD629mDzxMOkd6JzYPfMA0Wd7AzXPvcw2Xj5XcH2Tz5MknrZV6jT0w+SwQ2denyYVMF/rz5IkvrZ1eGDZO+IvkPsX3yQeKJHgO+9+iDZuPp1K2ub1x8iSX1tbmqoDB4iN2f0bOinajJEKvW2hZFbbfQQSepux7WF76rZADmpw51f9hs1HCKVetx5/YqfqO0ASep0/3jSpVHrAdKr331YP/K5VsQAUec7f/z48ePHHylugCQlN/v0Sm6AKLsZh+GncSh+2qcqSih+mudCj3EoftqG4qd9+DHPpjRpyxKKn+ZJpcmlOGlKk7Y4Icg6qTQZipOmNGmLk6o0ScUJQdbZlSZDcbIpTfripPlPJ1Vp0v4PPEc7LLOwQzJXy8cxK2N9YSrSFKUEMxH7bbgRwAZqpgiyI6YTzIiZgbS0HAW1ipUVTE/KV8Fty4kgR8kUqiXkKNg1fKzALnRMBL1ExkHwq7hYOHAqyt+EzJ868bGah6UTFxqm4mUtCUfxs4YD8TQKZq70BHwVX0vhHcTbmujW7kgV21z87RTaVDxuH9hZfG4X1kG8bhOV+F0d08IxqSKaiecNAU3F905leQF/V/G/fVlesN+7BFio31mibB/mGmd9YZ7IKYC/SqwN7s0k3Crf5hJwjWcrCbmtWweJur1T7xJ3Q+XRTEJv4063kuDrnXmX+LvVniyFwn7q6K801rjQLYXILhXe34TMfgP2eyG0nwCdhdR+A/sfsZ0qe38QcrttTB2WwnCXxspfhOeGb7/suBC6G375tN/+Q4jv8vFjNfbh41/E4wA=");background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.17;pointer-events:none}.cc-service-airbnb-linge__final-card>*{position:relative;z-index:2}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__section-title,.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__section-lead,.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__text,.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__microcopy{color:#fff}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__section-title{max-width:680px}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__section-lead,.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__text{max-width:760px;color:rgba(255,255,255,.84)}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__microcopy{color:rgba(255,255,255,.72)}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__cta--primary{background:#fff;color:var(--navy);border-color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.16)}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__cta--primary:hover{background:var(--soft);box-shadow:0 18px 38px rgba(0,0,0,.2)}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__cta--secondary{background:rgba(255,255,255,.075);color:#fff;border-color:rgba(255,255,255,.34);box-shadow:none}.cc-service-airbnb-linge__section--cta-final .cc-service-airbnb-linge__cta--secondary:hover{background:rgba(255,255,255,.12);border-color:rgba(39,207,169,.7);color:#fff}@media (min-width:520px){.cc-service-airbnb-linge__cta-group{grid-template-columns:auto auto;justify-content:start}.cc-service-airbnb-linge__cta{width:auto;min-width:260px}.cc-service-airbnb-linge__mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-service-airbnb-linge__mini-card--warning{grid-column:1/-1;justify-self:center;width:min(100%,346px)}}@media (min-width:700px){.cc-service-airbnb-linge__grid--six{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-service-airbnb-linge__grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-service-airbnb-linge__billing-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}@media (min-width:900px){.cc-service-airbnb-linge{--section:92px;--hero-y:68px}.cc-service-airbnb-linge__inner--hero{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:56px}.cc-service-airbnb-linge__hero-content{gap:18px}.cc-service-airbnb-linge__grid--six{grid-template-columns:repeat(3,minmax(0,1fr))}.cc-service-airbnb-linge__inner--split{grid-template-columns:minmax(0,1fr) minmax(340px,.88fr);gap:56px}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__inner--split{grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);gap:56px}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__media{order:1;justify-self:center;align-self:center}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__split-content{order:2}.cc-service-airbnb-linge__proof-layout{grid-template-columns:minmax(0,1.04fr) minmax(360px,.86fr);gap:56px}.cc-service-airbnb-linge__zones-layout{grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:58px}.cc-service-airbnb-linge__zones-card{justify-self:end;width:min(100%,420px)}}@media (min-width:1100px){.cc-service-airbnb-linge__title{font-size:58px}.cc-service-airbnb-linge__section-title{font-size:42px}.cc-service-airbnb-linge__lead{font-size:19px}.cc-service-airbnb-linge__final-card::after{right:-70px;bottom:-84px;width:285px;height:322px;opacity:.17}}@media (max-width:899px){.cc-service-airbnb-linge__process-timeline{grid-template-columns:1fr;gap:22px}.cc-service-airbnb-linge__process-timeline::before{top:20px;bottom:20px;left:20px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,rgba(1,33,72,.16),rgba(1,33,72,.16) 65%,rgba(39,207,169,.58))}.cc-service-airbnb-linge__process-item{min-height:84px;padding-top:0;padding-left:64px}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__split-content{order:1}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__media{order:2;margin:0 auto;border-radius:22px}.cc-service-airbnb-linge__section--linge .cc-service-airbnb-linge__media>img{border-radius:22px}.cc-service-airbnb-linge__proof-layout{gap:30px}}@media (max-width:699px){.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::before,.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::before{padding:22px 20px 12px}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title{padding:0 20px 22px 66px;font-size:21px}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::before{left:20px;width:34px;height:34px}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list{padding:22px 20px 0}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li{font-size:15px}.cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card .cc-service-airbnb-linge__microcopy{margin:20px 20px 24px}}@media (max-width:544px){.cc-service-airbnb-linge{--section:52px;--hero-y:34px;--container:min(100%,calc(100% - 28px));--narrow:min(100%,calc(100% - 28px))}.cc-service-airbnb-linge__title{font-size:clamp(30px,8.4vw,34px)}.cc-service-airbnb-linge__section-title{font-size:clamp(25px,7vw,31px);line-height:1.08}.cc-service-airbnb-linge__lead,.cc-service-airbnb-linge__section-lead{font-size:16px;line-height:1.55}.cc-service-airbnb-linge__text,.cc-service-airbnb-linge__card-text,.cc-service-airbnb-linge__mini-text,.cc-service-airbnb-linge__faq-answer p,.cc-service-airbnb-linge__list li{font-size:14.5px;line-height:1.58}.cc-service-airbnb-linge__card{padding:18px}.cc-service-airbnb-linge__cta{width:100%;min-height:58px;padding:15px 20px;font-size:15.5px}.cc-service-airbnb-linge__media--hero{width:100%;max-width:100%;aspect-ratio:4/3;border-radius:20px}.cc-service-airbnb-linge__image--hero{border-radius:20px}.cc-service-airbnb-linge__gallery{gap:10px}.cc-service-airbnb-linge__gallery-item,.cc-service-airbnb-linge__gallery-image{border-radius:18px}.cc-service-airbnb-linge__signal-box{padding:18px}.cc-service-airbnb-linge__signal-list{justify-content:stretch}.cc-service-airbnb-linge__signal-list li{width:100%;justify-content:flex-start;border-radius:14px;text-align:left}.cc-service-airbnb-linge__zones-card{padding:24px 22px}.cc-service-airbnb-linge__final-card{padding:28px 22px;border-radius:24px}.cc-service-airbnb-linge__final-card::after{right:-92px;bottom:-78px;width:220px;height:248px;opacity:.13}}@media (max-width:380px){.cc-service-airbnb-linge{--section:56px;--hero-y:36px}.cc-service-airbnb-linge__title{font-size:31px}.cc-service-airbnb-linge__section-title{font-size:24px}.cc-service-airbnb-linge__card,.cc-service-airbnb-linge__final-card,.cc-service-airbnb-linge__signal-box{padding:18px 16px}.cc-service-airbnb-linge__chips li,.cc-service-airbnb-linge__zone-list li{width:100%;justify-content:center}}@media (prefers-reduced-motion:reduce){.cc-service-airbnb-linge__cta{transition:none}.cc-service-airbnb-linge__cta:hover{transform:none}}
/* =========================================================
   PATCH FINAL HERO — coins image + texte bouton primaire
   ========================================================= */

/* 1) Image hero : coins arrondis réellement verrouillés */
.cc-service-airbnb-linge .cc-service-airbnb-linge__media--hero {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  clip-path: inset(0 round 24px) !important;
  isolation: isolate !important;
}

.cc-service-airbnb-linge .cc-service-airbnb-linge__image--hero {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 24px !important;
  clip-path: inset(0 round 24px) !important;
  transform: translateZ(0) !important;
}

/* 2) Bouton principal hero : contenu blanc forcé */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary span,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary svg {
  color: #ffffff !important;
}

.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary svg,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary svg path {
  stroke: currentColor !important;
}

/* Sécurité : le texte du bouton ne peut plus disparaître */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--hero .cc-service-airbnb-linge__cta--primary > span:last-child {
  color: #ffffff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Mobile */
@media (max-width: 544px) {
  .cc-service-airbnb-linge .cc-service-airbnb-linge__media--hero,
  .cc-service-airbnb-linge .cc-service-airbnb-linge__image--hero {
    border-radius: 20px !important;
    clip-path: inset(0 round 20px) !important;
  }
}


/* =========================================================
   Patch — Fit / No fit façon carte "Zone d’intervention"
   ========================================================= */

/* Structure générale */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__grid--two {
  gap: 24px;
  align-items: stretch;
}

/* Reset complet de l’ancien style homepage */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::before,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::before,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::after,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::before,
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::after {
  content: none !important;
  display: none !important;
}

/* Cartes : même logique que "Zone d’intervention" */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 20px;
  height: 100%;
  padding: 28px;
  border-radius: 24px;
  border: 1px solid rgba(1, 33, 72, 0.10);
  background:
    radial-gradient(520px 220px at 100% 0%, rgba(70, 217, 255, 0.07), transparent 62%),
    #ffffff;
  box-shadow: 0 18px 44px rgba(1, 33, 72, 0.07);
  overflow: hidden;
}

/* Trait vertical gauche, façon carte zone */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card {
  box-shadow:
    inset 3px 0 0 rgba(39, 207, 169, 0.72),
    0 18px 44px rgba(1, 33, 72, 0.07);
}

/* Carte "Pas adapté" : même structure, accent plus neutre */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit {
  box-shadow:
    inset 3px 0 0 rgba(1, 33, 72, 0.18),
    0 18px 44px rgba(1, 33, 72, 0.07);
}

/* Titres : simples, comme "Zone d’intervention" */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title {
  display: block;
  margin: 0;
  padding: 0;
  color: #012148;
  font-size: clamp(20px, 2vw, 24px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: 900;
}

/* Listes */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Items communs */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li {
  position: relative;
  padding-left: 30px;
  color: rgba(1, 33, 72, 0.80);
  font-size: 15.5px;
  line-height: 1.5;
  font-weight: 720;
}

/* Puces reset */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li::before {
  position: absolute;
  left: 0;
  top: 0.03em;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

/* Carte positive : coches turquoise */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit .cc-service-airbnb-linge__list li::before {
  content: "✓";
  color: #27CFA9;
}

/* Carte à clarifier : tirets neutres */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit .cc-service-airbnb-linge__list li::before {
  content: "–";
  color: rgba(1, 33, 72, 0.55);
}

/* Phrase finale : même logique que la note de la carte zone */
.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card .cc-service-airbnb-linge__microcopy {
  margin: 2px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(1, 33, 72, 0.10);
  color: rgba(1, 33, 72, 0.66);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 650;
}

/* Mobile */
@media (max-width: 544px) {
  .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__grid--two {
    gap: 18px;
  }

  .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card {
    padding: 24px 22px;
    border-radius: 22px;
  }

  .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li {
    font-size: 14.5px;
    line-height: 1.52;
  }
}




.cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit::after, .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit::after, .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title::after, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-card--simple::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-card::before { content: none !important; display: none !important; } /* Cartes positives : fit + facturation claire + zone intervention */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-card--simple, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-card { position: relative !important; display: grid !important; gap: 20px !important; padding: 28px !important; border-radius: 24px !important; border: 1px solid rgba(1, 33, 72, 0.10) !important; background: radial-gradient(520px 220px at 100% 0%, rgba(70, 217, 255, 0.07), transparent 62%), #ffffff !important; box-shadow: inset 3px 0 0 rgba(39, 207, 169, 0.72), 0 18px 44px rgba(1, 33, 72, 0.07) !important; overflow: hidden !important; } /* Cartes neutres : no fit + variation prix */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-card:not(.cc-service-airbnb-linge__billing-card--simple) { position: relative !important; display: grid !important; gap: 20px !important; padding: 28px !important; border-radius: 24px !important; border: 1px solid rgba(1, 33, 72, 0.10) !important; background: radial-gradient(520px 220px at 100% 0%, rgba(1, 33, 72, 0.035), transparent 62%), #ffffff !important; box-shadow: inset 3px 0 0 rgba(1, 33, 72, 0.18), 0 18px 44px rgba(1, 33, 72, 0.07) !important; overflow: hidden !important; } /* Les deux cartes fit/no fit gardent la même hauteur */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card { height: 100% !important; grid-template-rows: auto 1fr auto !important; } /* Titres unifiés */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card-title, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-title, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-card-title { display: block !important; margin: 0 !important; padding: 0 !important; color: #012148 !important; font-size: clamp(20px, 2vw, 24px) !important; line-height: 1.15 !important; letter-spacing: -0.02em !important; font-weight: 900 !important; } /* Listes unifiées */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-list, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-checklist { display: grid !important; gap: 14px !important; margin: 0 !important; padding: 0 !important; list-style: none !important; } /* Items unifiés */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-list li, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-checklist li { position: relative !important; padding-left: 30px !important; color: rgba(1, 33, 72, 0.80) !important; font-size: 15.5px !important; line-height: 1.5 !important; font-weight: 720 !important; } /* Reset des anciennes puces */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-list li::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-checklist li::before { position: absolute !important; left: 0 !important; top: 0.03em !important; width: auto !important; height: auto !important; border-radius: 0 !important; background: none !important; font-size: 18px !important; line-height: 1 !important; font-weight: 900 !important; } /* Listes positives : coche turquoise */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--fit .cc-service-airbnb-linge__list li::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-list--check li::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-checklist li::before { content: "✓" !important; color: #27CFA9 !important; } /* Listes neutres : tiret bleu-gris */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card--nofit .cc-service-airbnb-linge__list li::before, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-card:not(.cc-service-airbnb-linge__billing-card--simple) .cc-service-airbnb-linge__billing-list li::before { content: "–" !important; color: rgba(1, 33, 72, 0.55) !important; } /* Notes de bas de carte : même logique que zone d’intervention */ .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card .cc-service-airbnb-linge__microcopy, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-note { margin: 2px 0 0 !important; padding-top: 16px !important; border-top: 1px solid rgba(1, 33, 72, 0.10) !important; color: rgba(1, 33, 72, 0.66) !important; font-size: 14px !important; line-height: 1.55 !important; font-weight: 650 !important; } /* Note facturation hors cartes */ .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-note { margin: 22px 0 0 !important; max-width: 760px !important; color: rgba(1, 33, 72, 0.66) !important; font-size: 14px !important; line-height: 1.55 !important; font-weight: 650 !important; } /* Responsive */ @media (max-width: 544px) { .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__card, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-card, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-card { padding: 24px 22px !important; border-radius: 22px !important; } .cc-service-airbnb-linge .cc-service-airbnb-linge__section--fit .cc-service-airbnb-linge__list li, .cc-service-airbnb-linge .cc-service-airbnb-linge__billing-list li, .cc-service-airbnb-linge .cc-service-airbnb-linge__zones-checklist li { font-size: 14.5px !important; line-height: 1.52 !important; } }






















































/* =========================================================
   CityCleaner — Page service "Gestion du linge Airbnb"
   CSS harmonisé avec "Ménage Airbnb + linge"
   ========================================================= */

.cc-service-linge-airbnb,
.cc-service-linge-airbnb *,
.cc-service-linge-airbnb *::before,
.cc-service-linge-airbnb *::after {
  box-sizing: border-box;
}

.cc-service-linge-airbnb {
  --navy: #012148;
  --turq: #27CFA9;
  --sky: #46D9FF;
  --white: #fff;
  --soft: #F7F9FB;
  --ink90: rgba(1, 33, 72, .9);
  --ink78: rgba(1, 33, 72, .78);
  --ink64: rgba(1, 33, 72, .64);
  --ink50: rgba(1, 33, 72, .5);
  --ink28: rgba(1, 33, 72, .28);
  --ink14: rgba(1, 33, 72, .14);
  --ink10: rgba(1, 33, 72, .10);
  --ink08: rgba(1, 33, 72, .08);
  --container: min(1120px, calc(100% - 32px));
  --narrow: min(980px, calc(100% - 32px));
  --r14: 14px;
  --r18: 18px;
  --r20: 20px;
  --r24: 24px;
  --pill: 999px;
  --shadow: 0 10px 26px rgba(1, 33, 72, .06);
  --shadow2: 0 18px 42px rgba(1, 33, 72, .10);
  --section: 64px;
  --hero-y: 44px;

  display: block;
  width: 100%;
  overflow: visible;
  color: var(--navy);
  background: var(--white);
  font-family: inherit;
  text-rendering: optimizeLegibility;
}

.cc-service-linge-airbnb a {
  color: inherit;
}

.cc-service-linge-airbnb a:focus-visible,
.cc-service-linge-airbnb summary:focus-visible {
  outline: 3px solid rgba(70, 217, 255, .55);
  outline-offset: 4px;
  border-radius: 12px;
}

.cc-service-linge-airbnb img {
  display: block;
  max-width: 100%;
  height: auto;
}

.cc-service-linge-airbnb__section {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: var(--section) 0;
}

.cc-service-linge-airbnb__section--hero {
  padding: var(--hero-y) 0 var(--section);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(70, 217, 255, .12), transparent 62%),
    radial-gradient(740px 380px at 96% 4%, rgba(39, 207, 169, .10), transparent 58%),
    #fff;
}

.cc-service-linge-airbnb__section--problem,
.cc-service-linge-airbnb__section--process,
.cc-service-linge-airbnb__section--billing,
.cc-service-linge-airbnb__section--faq {
  background:
    radial-gradient(760px 340px at 8% 8%, rgba(70, 217, 255, .055), transparent 62%),
    radial-gradient(620px 320px at 92% 8%, rgba(39, 207, 169, .045), transparent 60%),
    var(--soft);
}

.cc-service-linge-airbnb__section--circuit,
.cc-service-linge-airbnb__section--beds,
.cc-service-linge-airbnb__section--limits,
.cc-service-linge-airbnb__section--reassurance {
  background: #fff;
}

.cc-service-linge-airbnb__section--fit {
  background:
    radial-gradient(760px 340px at 8% 8%, rgba(70, 217, 255, .04), transparent 62%),
    var(--soft);
}

.cc-service-linge-airbnb__section--cta-final {
  background:
    radial-gradient(780px 340px at 88% 8%, rgba(39, 207, 169, .08), transparent 62%),
    var(--soft);
  padding-top: 86px;
  padding-bottom: 96px;
}

.cc-service-linge-airbnb__inner {
  width: var(--container);
  margin: 0 auto;
}

.cc-service-linge-airbnb__inner--narrow {
  width: var(--narrow);
}

.cc-service-linge-airbnb__section-header {
  display: grid;
  gap: 12px;
  max-width: 780px;
  margin: 0 0 40px;
}

.cc-service-linge-airbnb__section-header--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  justify-items: center;
}

.cc-service-linge-airbnb__title,
.cc-service-linge-airbnb__section-title,
.cc-service-linge-airbnb__subsection-title,
.cc-service-linge-airbnb__card-title,
.cc-service-linge-airbnb__mini-title {
  margin: 0;
  color: var(--navy);
}

.cc-service-linge-airbnb__title {
  max-width: 760px;
  font-size: clamp(34px, 9vw, 58px);
  line-height: 1.03;
  letter-spacing: -.035em;
  font-weight: 900;
}

.cc-service-linge-airbnb__title-accent {
  color: var(--turq);
  text-decoration: none;
}

.cc-service-linge-airbnb__section-title {
  font-size: clamp(26px, 6.2vw, 42px);
  line-height: 1.10;
  letter-spacing: -.025em;
  font-weight: 900;
}

.cc-service-linge-airbnb__subsection-title {
  font-size: 18px;
  line-height: 1.25;
  font-weight: 850;
}

.cc-service-linge-airbnb__lead,
.cc-service-linge-airbnb__section-lead {
  margin: 0;
  color: var(--ink78);
  font-size: 17px;
  line-height: 1.62;
  font-weight: 620;
}

.cc-service-linge-airbnb__lead {
  max-width: 640px;
  font-size: 18px;
}

.cc-service-linge-airbnb__text,
.cc-service-linge-airbnb__card-text,
.cc-service-linge-airbnb__mini-text,
.cc-service-linge-airbnb__faq-answer p {
  margin: 0;
  color: var(--ink78);
  font-size: 15.5px;
  line-height: 1.66;
  font-weight: 560;
}

.cc-service-linge-airbnb__microcopy {
  margin: 0;
  color: var(--ink64);
  font-size: 13.5px;
  line-height: 1.55;
  font-weight: 650;
}

.cc-service-linge-airbnb__microcopy--center {
  text-align: center;
}

.cc-service-linge-airbnb__link {
  color: var(--navy);
  font-weight: 850;
  text-decoration: underline;
  text-decoration-color: rgba(39, 207, 169, .75);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.cc-service-linge-airbnb__link:hover {
  color: var(--turq);
}

.cc-service-linge-airbnb__inner--hero {
  display: grid;
  gap: 32px;
  align-items: center;
}

.cc-service-linge-airbnb__hero-content {
  display: grid;
  gap: 16px;
}

.cc-service-linge-airbnb__chips {
  list-style: none;
  margin: 2px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cc-service-linge-airbnb__chips li {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--ink10);
  border-radius: var(--pill);
  background: rgba(255, 255, 255, .78);
  color: var(--ink78);
  font-size: 12.5px;
  line-height: 1.2;
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(1, 33, 72, .035);
}

.cc-service-linge-airbnb__media {
  margin: 0;
  position: relative;
}

.cc-service-linge-airbnb__media--hero {
  justify-self: center;
  width: 100%;
  max-width: 620px;
  aspect-ratio: 6 / 7;
  border-radius: 24px;
  overflow: hidden;
  clip-path: inset(0 round 24px);
  isolation: isolate;
}

.cc-service-linge-airbnb__image--hero {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border-radius: 24px;
  clip-path: inset(0 round 24px);
  object-fit: cover;
  object-position: center;
  box-shadow: var(--shadow2);
  border: 1px solid var(--ink10);
  background: var(--soft);
  transform: translateZ(0);
}

.cc-service-linge-airbnb__media--vertical,
.cc-service-linge-airbnb__media--rounded {
  width: 100%;
  max-width: 620px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow2);
  border: 1px solid var(--ink10);
  background: var(--soft);
}

.cc-service-linge-airbnb__media--vertical {
  aspect-ratio: 6 / 7;
}

.cc-service-linge-airbnb__media--rounded {
  aspect-ratio: 4 / 3;
}

.cc-service-linge-airbnb__media--vertical > img,
.cc-service-linge-airbnb__media--rounded > img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
}

.cc-service-linge-airbnb__cta-group,
.cc-service-linge-airbnb__cta-block {
  display: grid;
  gap: 12px;
}

.cc-service-linge-airbnb__cta-group {
  margin-top: 4px;
}

.cc-service-linge-airbnb__cta-block {
  justify-items: center;
  margin-top: 28px;
}

.cc-service-linge-airbnb__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 58px;
  width: 100%;
  padding: 15px 24px;
  border-radius: 18px;
  border: 1px solid transparent;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease, color .14s ease;
}

.cc-service-linge-airbnb__cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  line-height: 0;
}

.cc-service-linge-airbnb__cta-icon svg {
  width: 19px;
  height: 19px;
}

.cc-service-linge-airbnb__cta:hover {
  transform: translateY(-1px);
  text-decoration: none;
}

.cc-service-linge-airbnb__cta--primary {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
  box-shadow: 0 12px 26px rgba(1, 33, 72, .15);
}

.cc-service-linge-airbnb__cta--primary:hover {
  color: #fff;
  background: #082f63;
  box-shadow: 0 16px 34px rgba(1, 33, 72, .18);
}

.cc-service-linge-airbnb__cta--secondary {
  color: var(--navy);
  background: #fff;
  border-color: var(--ink14);
  box-shadow: 0 8px 20px rgba(1, 33, 72, .045);
}

.cc-service-linge-airbnb__cta--secondary:hover {
  color: var(--navy);
  border-color: rgba(39, 207, 169, .4);
  box-shadow: 0 12px 26px rgba(1, 33, 72, .07);
}

.cc-service-linge-airbnb__grid,
.cc-service-linge-airbnb__inner--split,
.cc-service-linge-airbnb__split-content,
.cc-service-linge-airbnb__mini-grid {
  display: grid;
  gap: 16px;
}

.cc-service-linge-airbnb__inner--split {
  gap: 32px;
  align-items: center;
}

.cc-service-linge-airbnb__card,
.cc-service-linge-airbnb__mini-card {
  border: 1px solid var(--ink10);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow);
}

.cc-service-linge-airbnb__card {
  display: grid;
  gap: 12px;
  padding: 20px;
}

.cc-service-linge-airbnb__card-title {
  font-size: 18px;
  line-height: 1.25;
  font-weight: 850;
}

.cc-service-linge-airbnb__card--centered {
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 24px;
}

.cc-service-linge-airbnb__mini-grid {
  grid-template-columns: 1fr;
  margin-top: 6px;
}

.cc-service-linge-airbnb__mini-card {
  display: grid;
  gap: 6px;
  padding: 16px;
}

.cc-service-linge-airbnb__mini-title {
  font-size: 15px;
  line-height: 1.25;
  font-weight: 850;
}

.cc-service-linge-airbnb__mini-title--icon {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cc-service-linge-airbnb__mini-status-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  line-height: 0;
}

.cc-service-linge-airbnb__mini-status-icon svg {
  width: 18px;
  height: 18px;
}

.cc-service-linge-airbnb__mini-status-icon--check {
  color: var(--navy);
  background: rgba(39, 207, 169, .12);
  border: 1px solid rgba(39, 207, 169, .25);
}

.cc-service-linge-airbnb__mini-status-icon--alert {
  color: #667085;
  background: rgba(102, 112, 133, .08);
  border: 1px solid rgba(102, 112, 133, .22);
}

.cc-service-linge-airbnb__mini-text {
  font-size: 14px;
  line-height: 1.52;
}

.cc-service-linge-airbnb__list,
.cc-service-linge-airbnb__billing-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cc-service-linge-airbnb__list {
  display: grid;
  gap: 10px;
}

.cc-service-linge-airbnb__list li {
  position: relative;
  padding-left: 18px;
  color: var(--ink78);
  font-size: 15px;
  line-height: 1.56;
  font-weight: 560;
}

.cc-service-linge-airbnb__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .68em;
  width: 6px;
  height: 6px;
  border-radius: var(--pill);
  background: var(--ink28);
}

.cc-service-linge-airbnb__list--check li::before {
  background: var(--turq);
}

.cc-service-linge-airbnb__process-header {
  max-width: 820px;
  margin-bottom: 46px;
}

.cc-service-linge-airbnb__process-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 42px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cc-service-linge-airbnb__process-timeline::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 5%;
  right: 5%;
  height: 2px;
  background: linear-gradient(90deg, rgba(1, 33, 72, .18), rgba(1, 33, 72, .18) 65%, rgba(39, 207, 169, .62));
}

.cc-service-linge-airbnb__process-item {
  position: relative;
  display: grid;
  align-content: start;
  gap: 14px;
  padding-top: 64px;
}

.cc-service-linge-airbnb__process-number {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  color: #fff;
  background: var(--navy);
  border: 6px solid rgba(1, 33, 72, .08);
  box-shadow: 0 12px 26px rgba(1, 33, 72, .12);
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

.cc-service-linge-airbnb__process-number--final {
  color: var(--navy);
  background: var(--turq);
  border-color: rgba(39, 207, 169, .2);
}

.cc-service-linge-airbnb__process-title {
  margin: 0;
  color: var(--navy);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.12;
  letter-spacing: -.025em;
  font-weight: 900;
}

.cc-service-linge-airbnb__process-text {
  margin: 0;
  color: var(--ink78);
  font-size: 15px;
  line-height: 1.58;
  font-weight: 650;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__grid--two {
  gap: 24px;
  align-items: stretch;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card {
  position: relative;
  overflow: hidden;
  padding: 0;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--ink10);
  box-shadow: 0 18px 44px rgba(1, 33, 72, .06);
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card--fit {
  border-color: rgba(39, 207, 169, .35);
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card--fit::after {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  right: 28px;
  height: 2px;
  border-radius: 0 0 999px 999px;
  background: rgba(39, 207, 169, .72);
  pointer-events: none;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card-title {
  position: relative;
  margin: 0;
  padding: 24px 26px 12px;
  color: var(--navy);
  font-size: 20px;
  line-height: 1.18;
  font-weight: 900;
  letter-spacing: -.02em;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list {
  gap: 13px;
  padding: 4px 26px 0;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list li {
  padding-left: 26px;
  color: var(--ink78);
  font-size: 15.5px;
  line-height: 1.48;
  font-weight: 680;
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list li::before {
  top: .08em;
  left: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: rgba(1, 33, 72, .62);
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
  content: "–";
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list--check li::before {
  content: "✓";
  color: var(--turq);
}

.cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card .cc-service-linge-airbnb__microcopy {
  margin: 20px 26px 26px;
  padding-top: 16px;
  border-top: 1px solid var(--ink10);
  color: var(--ink64);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 750;
}

.cc-service-linge-airbnb__billing-layout {
  display: grid;
  gap: 18px;
}

.cc-service-linge-airbnb__billing-card {
  position: relative;
  display: grid;
  gap: 16px;
  padding: 24px;
  border: 1px solid var(--ink10);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb__billing-card--simple {
  border-color: rgba(39, 207, 169, .3);
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(39, 207, 169, .07), transparent 60%),
    #fff;
}

.cc-service-linge-airbnb__billing-card--simple::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  bottom: 24px;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: rgba(39, 207, 169, .72);
}

.cc-service-linge-airbnb__billing-title {
  margin: 0;
  color: var(--navy);
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.18;
  letter-spacing: -.02em;
  font-weight: 900;
}

.cc-service-linge-airbnb__billing-list {
  display: grid;
  gap: 13px;
}

.cc-service-linge-airbnb__billing-list li {
  position: relative;
  padding-left: 28px;
  color: var(--ink78);
  font-size: 15.5px;
  line-height: 1.5;
  font-weight: 680;
}

.cc-service-linge-airbnb__billing-list li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
  color: rgba(1, 33, 72, .55);
  font-size: 18px;
  line-height: 1.2;
  font-weight: 900;
}

.cc-service-linge-airbnb__billing-list--check li::before {
  content: "✓";
  color: var(--turq);
}

.cc-service-linge-airbnb__faq-list {
  display: grid;
  gap: 12px;
}

.cc-service-linge-airbnb__section--faq .cc-service-linge-airbnb__section-header {
  text-align: center;
  max-width: none;
  justify-items: center;
}

.cc-service-linge-airbnb__faq-item {
  border: 1px solid var(--ink10);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(1, 33, 72, .04);
  overflow: hidden;
}

.cc-service-linge-airbnb__faq-question {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  padding: 16px 48px 16px 18px;
  color: var(--navy);
  font-size: 15.5px;
  line-height: 1.35;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.cc-service-linge-airbnb__faq-question::-webkit-details-marker {
  display: none;
}

.cc-service-linge-airbnb__faq-question::marker {
  content: "";
}

.cc-service-linge-airbnb__faq-question::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 10px;
  background: rgba(39, 207, 169, .12);
  border: 1px solid rgba(39, 207, 169, .2);
  color: var(--navy);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

.cc-service-linge-airbnb__faq-item[open] .cc-service-linge-airbnb__faq-question::after {
  content: "–";
}

.cc-service-linge-airbnb__faq-answer {
  display: grid;
  gap: 10px;
  padding: 0 18px 18px;
}

.cc-service-linge-airbnb__faq-answer p {
  font-size: 14.5px;
  line-height: 1.62;
}

.cc-service-linge-airbnb__final-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  gap: 22px;
  padding: clamp(30px, 5vw, 48px);
  border-radius: 26px;
  border: 1px solid rgba(39, 207, 169, .58);
  background:
    radial-gradient(420px 260px at 94% 72%, rgba(39, 207, 169, .18), transparent 62%),
    linear-gradient(135deg, #012148 0%, #07346F 100%);
  box-shadow: 0 24px 56px rgba(1, 33, 72, .18);
}

.cc-service-linge-airbnb__final-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--turq);
  pointer-events: none;
}

.cc-service-linge-airbnb__final-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: -78px;
  bottom: -88px;
  width: 260px;
  height: 260px;
  border-radius: 999px;
  border: 44px solid rgba(39, 207, 169, .18);
  opacity: .95;
  pointer-events: none;
}

.cc-service-linge-airbnb__final-card > * {
  position: relative;
  z-index: 2;
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__section-title {
  max-width: 760px;
  color: #fff;
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__text {
  max-width: 760px;
  color: rgba(255, 255, 255, .84);
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__microcopy {
  color: rgba(255, 255, 255, .72);
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__cta--primary {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .16);
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__cta--primary:hover {
  background: var(--soft);
  color: var(--navy);
  box-shadow: 0 18px 38px rgba(0, 0, 0, .20);
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__cta--secondary {
  background: rgba(255, 255, 255, .075);
  color: #fff;
  border-color: rgba(255, 255, 255, .34);
  box-shadow: none;
}

.cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__cta--secondary:hover {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(39, 207, 169, .7);
  color: #fff;
}

@media (min-width: 520px) {
  .cc-service-linge-airbnb__cta-group {
    grid-template-columns: auto auto;
    justify-content: start;
  }

  .cc-service-linge-airbnb__cta {
    width: auto;
    min-width: 260px;
  }

  .cc-service-linge-airbnb__mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-service-linge-airbnb__cta-block .cc-service-linge-airbnb__cta {
    min-width: 320px;
  }
}

@media (min-width: 700px) {
  .cc-service-linge-airbnb__grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-service-linge-airbnb__grid--three,
  .cc-service-linge-airbnb__billing-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }

  .cc-service-linge-airbnb__grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .cc-service-linge-airbnb {
    --section: 92px;
    --hero-y: 68px;
  }

  .cc-service-linge-airbnb__inner--hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: 56px;
  }

  .cc-service-linge-airbnb__hero-content {
    gap: 18px;
  }

  .cc-service-linge-airbnb__grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .cc-service-linge-airbnb__billing-layout {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cc-service-linge-airbnb__inner--split {
    grid-template-columns: minmax(0, 1fr) minmax(340px, .88fr);
    gap: 56px;
  }

  .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__inner--split {
    grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
    gap: 56px;
  }

  .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__media {
    order: 1;
    justify-self: center;
    align-self: center;
  }

  .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__split-content {
    order: 2;
  }

  .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__inner--split {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: 56px;
  }

  .cc-service-linge-airbnb__final-card {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 34px;
  }

  .cc-service-linge-airbnb__cta-group--final {
    grid-template-columns: 1fr;
    justify-content: stretch;
    min-width: 300px;
  }

  .cc-service-linge-airbnb__cta-group--final .cc-service-linge-airbnb__cta {
    width: 100%;
    min-width: 0;
  }
}

@media (min-width: 1100px) {
  .cc-service-linge-airbnb__title {
    font-size: 58px;
  }

  .cc-service-linge-airbnb__section-title {
    font-size: 42px;
  }

  .cc-service-linge-airbnb__lead {
    font-size: 19px;
  }

  .cc-service-linge-airbnb__card,
  .cc-service-linge-airbnb__billing-card {
    padding: 24px;
  }
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb__process-timeline {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .cc-service-linge-airbnb__process-timeline::before {
    top: 20px;
    bottom: 20px;
    left: 20px;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(1, 33, 72, .16), rgba(1, 33, 72, .16) 65%, rgba(39, 207, 169, .58));
  }

  .cc-service-linge-airbnb__process-item {
    min-height: 84px;
    padding-top: 0;
    padding-left: 64px;
  }

  .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__split-content,
  .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__split-content {
    order: 1;
  }

  .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__media,
  .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__media {
    order: 2;
    margin: 0 auto;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb {
    --section: 52px;
    --hero-y: 34px;
    --container: min(100%, calc(100% - 28px));
    --narrow: min(100%, calc(100% - 28px));
  }

  .cc-service-linge-airbnb__title {
    font-size: clamp(30px, 8.4vw, 34px);
  }

  .cc-service-linge-airbnb__section-title {
    font-size: clamp(25px, 7vw, 31px);
    line-height: 1.08;
  }

  .cc-service-linge-airbnb__lead,
  .cc-service-linge-airbnb__section-lead {
    font-size: 16px;
    line-height: 1.55;
  }

  .cc-service-linge-airbnb__text,
  .cc-service-linge-airbnb__card-text,
  .cc-service-linge-airbnb__mini-text,
  .cc-service-linge-airbnb__faq-answer p,
  .cc-service-linge-airbnb__list li {
    font-size: 14.5px;
    line-height: 1.58;
  }

  .cc-service-linge-airbnb__section-header {
    gap: 10px;
    margin-bottom: 30px;
  }

  .cc-service-linge-airbnb__card,
  .cc-service-linge-airbnb__billing-card {
    padding: 18px;
  }

  .cc-service-linge-airbnb__card--centered {
    padding: 18px;
  }

  .cc-service-linge-airbnb__cta {
    width: 100%;
    min-height: 58px;
    padding: 15px 20px;
    font-size: 15.5px;
  }

  .cc-service-linge-airbnb__media--hero {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 20px;
    clip-path: inset(0 round 20px);
  }

  .cc-service-linge-airbnb__image--hero {
    border-radius: 20px;
    clip-path: inset(0 round 20px);
  }

  .cc-service-linge-airbnb__media--vertical,
  .cc-service-linge-airbnb__media--rounded {
    border-radius: 22px;
  }

  .cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card-title {
    padding: 22px 20px 10px;
    font-size: 21px;
  }

  .cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list {
    padding: 4px 20px 0;
  }

  .cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__list li {
    font-size: 14.5px;
  }

  .cc-service-linge-airbnb__section--fit .cc-service-linge-airbnb__card .cc-service-linge-airbnb__microcopy {
    margin: 18px 20px 22px;
  }

  .cc-service-linge-airbnb__billing-card {
    border-radius: 22px;
  }

  .cc-service-linge-airbnb__faq-question {
    min-height: 56px;
    padding: 15px 46px 15px 16px;
    font-size: 15.5px;
  }

  .cc-service-linge-airbnb__faq-question::after {
    right: 14px;
    width: 26px;
    height: 26px;
  }

  .cc-service-linge-airbnb__faq-answer {
    padding: 0 16px 16px;
  }

  .cc-service-linge-airbnb__final-card {
    padding: 28px 22px;
    border-radius: 24px;
  }

  .cc-service-linge-airbnb__final-card::after {
    right: -92px;
    bottom: -78px;
    width: 220px;
    height: 220px;
    border-width: 36px;
    opacity: .75;
  }
}

@media (max-width: 380px) {
  .cc-service-linge-airbnb {
    --section: 56px;
    --hero-y: 36px;
  }

  .cc-service-linge-airbnb__title {
    font-size: 31px;
  }

  .cc-service-linge-airbnb__section-title {
    font-size: 24px;
  }

  .cc-service-linge-airbnb__card,
  .cc-service-linge-airbnb__billing-card,
  .cc-service-linge-airbnb__final-card {
    padding: 18px 16px;
  }

  .cc-service-linge-airbnb__chips li {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-service-linge-airbnb__cta {
    transition: none;
  }

  .cc-service-linge-airbnb__cta:hover {
    transform: none;
  }
}

/* =========================================================
   Patch chirurgical — Page “Gestion du linge Airbnb”
   À coller à la fin du CSS existant uniquement.
   Ajoute le fond des nouvelles sections et garde la cohérence visuelle.
   ========================================================= */

.cc-service-linge-airbnb__section--provided,
.cc-service-linge-airbnb__section--owner,
.cc-service-linge-airbnb__section--signal {
  background: #fff;
}

.cc-service-linge-airbnb__section--provided {
  background:
    radial-gradient(760px 320px at 92% 8%, rgba(39, 207, 169, .06), transparent 60%),
    #fff;
}

.cc-service-linge-airbnb__section--owner,
.cc-service-linge-airbnb__section--signal {
  background:
    radial-gradient(760px 340px at 8% 8%, rgba(70, 217, 255, .045), transparent 62%),
    radial-gradient(620px 320px at 92% 8%, rgba(39, 207, 169, .04), transparent 60%),
    var(--soft);
}

.cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__grid--two,
.cc-service-linge-airbnb__section--signal .cc-service-linge-airbnb__grid--two {
  gap: 24px;
  align-items: stretch;
}

@media (min-width: 900px) {
  .cc-service-linge-airbnb__section--provided .cc-service-linge-airbnb__inner--split {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  }
}

.cc-service-linge-airbnb__cta--primary,
.cc-service-linge-airbnb__cta--primary:visited {
  color: #fff;
}

.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon,
.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon svg {
  color: #fff;
  fill: none;
}

.cc-service-linge-airbnb__cta--primary:hover,
.cc-service-linge-airbnb__cta--primary:focus-visible {
  color: #fff;
}

.cc-service-linge-airbnb__cta--primary:hover .cc-service-linge-airbnb__cta-icon,
.cc-service-linge-airbnb__cta--primary:hover .cc-service-linge-airbnb__cta-icon svg,
.cc-service-linge-airbnb__cta--primary:focus-visible .cc-service-linge-airbnb__cta-icon,
.cc-service-linge-airbnb__cta--primary:focus-visible .cc-service-linge-airbnb__cta-icon svg {
  color: #fff;
}

.cc-service-linge-airbnb__cta--primary:hover {
  background: #0a3a74;
  border-color: #0a3a74;
}
/* Patch CTA hero — texte blanc forcé sur bouton principal */
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:link,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:visited,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus-visible {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-label {
  display: inline-block;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  white-space: nowrap;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon svg,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon path {
  color: #fff !important;
  stroke: #fff !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover {
  background: #082f63;
  border-color: #082f63;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:link,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:visited,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus-visible {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-label {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  white-space: nowrap;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon svg,
.cc-service-linge-airbnb .cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary .cc-service-linge-airbnb__cta-icon path {
  color: #fff !important;
  stroke: #fff !important;
}



/* =========================================================
   Patch section problème — Gestion du linge Airbnb
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  margin: 0;
  padding: 7px 12px;
  border-radius: var(--pill);
  border: 1px solid rgba(39, 207, 169, .24);
  background: rgba(39, 207, 169, .09);
  color: var(--navy);
  font-size: 13px;
  line-height: 1;
  font-weight: 850;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
  max-width: 860px;
  margin-bottom: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-lead {
  max-width: 760px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__text {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__grid--four {
  gap: 18px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-card {
  position: relative;
  overflow: hidden;
  align-content: start;
  min-height: 156px;
  padding: 20px 18px 18px;
  border-color: rgba(1, 33, 72, .09);
  background:
    radial-gradient(360px 180px at 0% 0%, rgba(39, 207, 169, .08), transparent 62%),
    #fff;
  box-shadow: 0 16px 36px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 20px;
  right: 20px;
  height: 2px;
  border-radius: 0 0 999px 999px;
  background: rgba(39, 207, 169, .62);
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-title {
  align-items: flex-start;
  gap: 11px;
  font-size: 16px;
  line-height: 1.22;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-status-icon {
  flex-basis: 32px;
  width: 32px;
  height: 32px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__mini-status-icon--dot {
  color: var(--turq);
  background: rgba(39, 207, 169, .11);
  border: 1px solid rgba(39, 207, 169, .25);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__mini-status-icon--dot svg {
  width: 14px;
  height: 14px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-text {
  margin-left: 43px;
  color: var(--ink64);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 620;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
  max-width: 760px;
  margin: 22px auto 0;
  color: var(--ink78);
  font-size: 14px;
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-card {
    min-height: 0;
    padding: 18px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-text {
    margin-left: 43px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
    margin-top: 18px;
  }
}


/* =========================================================
   Patch section problème — cartes style page service ménage + linge
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  margin: 0;
  padding: 7px 12px;
  border-radius: var(--pill);
  border: 1px solid rgba(39, 207, 169, .24);
  background: rgba(39, 207, 169, .09);
  color: var(--navy);
  font-size: 13px;
  line-height: 1;
  font-weight: 850;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
  max-width: 880px;
  margin-bottom: 38px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-lead {
  max-width: 760px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__text {
  max-width: 840px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__grid--four {
  gap: 20px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card {
  position: relative;
  overflow: hidden;
  align-content: start;
  min-height: 205px;
  padding: 24px 22px 22px;
  gap: 14px;
  border-radius: 22px;
  border-color: rgba(1, 33, 72, .10);
  background: #fff;
  box-shadow: 0 18px 42px rgba(1, 33, 72, .065);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card::before {
  content: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-title {
  align-items: center;
  gap: 12px;
  font-size: 18px;
  line-height: 1.18;
  font-weight: 900;
  letter-spacing: -.015em;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  color: var(--navy);
  background: rgba(39, 207, 169, .12);
  border: 1px solid rgba(39, 207, 169, .28);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-icon svg {
  width: 21px;
  height: 21px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-title-label {
  display: inline;
  padding-bottom: 4px;
  background-image: linear-gradient(90deg, rgba(39, 207, 169, .92), rgba(39, 207, 169, .68));
  background-repeat: no-repeat;
  background-position: 0 calc(100% - 1px);
  background-size: 100% 2px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-text {
  margin-left: 0;
  color: var(--ink78);
  font-size: 15px;
  line-height: 1.58;
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
  max-width: 760px;
  margin: 24px auto 0;
  color: var(--ink78);
  font-size: 14px;
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card {
    min-height: 0;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card {
    padding: 20px;
    border-radius: 20px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-title {
    font-size: 17px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-text {
    font-size: 14.5px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
    margin-top: 18px;
  }
}


/* =========================================================
   Patch section problème — affinage final
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 36px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-lead {
  max-width: 860px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__text {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__grid--four {
  gap: 22px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card {
  min-height: 210px;
  padding: 24px 24px 22px;
  gap: 16px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-title {
  align-items: flex-start;
  gap: 12px;
  font-size: 17px;
  line-height: 1.12;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-icon svg {
  width: 21px;
  height: 21px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-title-label {
  display: inline-block;
  padding-bottom: 6px;
  background-image: linear-gradient(90deg, rgba(39, 207, 169, .92), rgba(39, 207, 169, .68));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 2px;
  white-space: nowrap;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-text {
  max-width: 24ch;
  color: var(--ink78);
  font-size: 14px;
  line-height: 1.52;
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
  max-width: 760px;
  margin: 22px auto 0;
}

@media (max-width: 1120px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-text {
    max-width: none;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-card {
    min-height: 0;
    padding: 20px;
    gap: 14px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-title {
    font-size: 16px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__mini-title-label {
    white-space: normal;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__problem-text {
    max-width: none;
    font-size: 14px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--problem .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
    margin-top: 18px;
  }
}




/* =========================================================
   Test visuel — section linge fourni : checks turquoise plus présents
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--provided .cc-service-linge-airbnb__mini-status-icon--check {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--turq);
  background: transparent;
  border: 0;
  border-radius: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--provided .cc-service-linge-airbnb__mini-status-icon--check svg {
  width: 20px;
  height: 20px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--provided .cc-service-linge-airbnb__mini-title--icon {
  gap: 10px;
  align-items: center;
}


/* =========================================================
   Section circuit — timeline gestion du linge
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 46px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__text {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 25px;
  left: 52px;
  right: 52px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(1, 33, 72, .16),
    rgba(39, 207, 169, .55)
  );
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-item {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 205px;
  padding: 0 22px 24px;
  border: 1px solid var(--ink10);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-step {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-top: -1px;
  border-radius: 0 0 18px 18px;
  color: #fff;
  background: var(--navy);
  border: 1px solid rgba(1, 33, 72, .12);
  box-shadow: 0 12px 26px rgba(1, 33, 72, .14);
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-step--optional {
  color: var(--navy);
  background: rgba(39, 207, 169, .18);
  border-color: rgba(39, 207, 169, .34);
  box-shadow: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-title,
.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-text {
  margin: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-title {
  color: var(--navy);
  font-size: 18px;
  line-height: 1.18;
  letter-spacing: -.015em;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 5px 8px;
  border-radius: 999px;
  color: var(--navy);
  background: rgba(39, 207, 169, .12);
  border: 1px solid rgba(39, 207, 169, .22);
  font-size: 11px;
  line-height: 1;
  font-weight: 850;
  text-transform: lowercase;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__flow-text {
  color: var(--ink78);
  font-size: 14.5px;
  line-height: 1.56;
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__microcopy--center {
  max-width: 720px;
  margin: 24px auto 0;
  color: var(--ink64);
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow::before {
    content: none;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow-item {
    min-height: 0;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 30px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow-item {
    grid-template-columns: 46px 1fr;
    column-gap: 14px;
    row-gap: 8px;
    padding: 18px;
    border-radius: 20px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow-step {
    grid-row: span 2;
    width: 42px;
    height: 42px;
    margin-top: 0;
    border-radius: 14px;
    font-size: 15px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow-title {
    font-size: 17px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__flow-text {
    font-size: 14px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
    margin-top: 18px;
  }
}


/* =========================================================
   Timeline — version finale recommandée : navy + étape 4 soft
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__timeline-number {
  color: #fff !important;
  background: var(--navy) !important;
  border-color: rgba(1, 33, 72, .16) !important;
  box-shadow: 0 12px 26px rgba(1, 33, 72, .14) !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__timeline-number--soft {
  color: var(--navy) !important;
  background: #F1F6F7 !important;
  border: 1px solid rgba(1, 33, 72, .12) !important;
  box-shadow: none !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--circuit .cc-service-linge-airbnb__timeline-tag {
  color: var(--navy) !important;
  background: rgba(39, 207, 169, .12) !important;
  border-color: rgba(39, 207, 169, .24) !important;
}



/* =========================================================
   Section beds — checks turquoise sans bulle
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__beds-list {
  gap: 12px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__beds-list li {
  padding-left: 28px;
  color: var(--ink78);
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__beds-list li::before {
  content: "✓";
  top: 0.08em;
  left: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: var(--turq);
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
}



/* =========================================================
   Test image section beds — léger gain de présence desktop
   ========================================================= */

@media (min-width: 900px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--beds .cc-service-linge-airbnb__media--rounded {
    max-width: 660px;
  }
}



/* =========================================================
   Section owner — répartition fourni / propriétaire
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 38px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__grid--two {
  gap: 24px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  position: relative;
  overflow: hidden;
  padding: 26px 28px;
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit {
  border-color: rgba(39, 207, 169, .28);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  right: 28px;
  height: 2px;
  border-radius: 0 0 999px 999px;
  background: rgba(39, 207, 169, .72);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit {
  border-color: rgba(1, 33, 72, .10);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card-title {
  font-size: 19px;
  line-height: 1.2;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list {
  gap: 12px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li {
  padding-left: 28px;
  font-size: 15.5px;
  line-height: 1.48;
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li::before {
  content: "–";
  top: .05em;
  left: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: rgba(1, 33, 72, .45);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list--check li::before {
  content: "✓";
  color: var(--turq);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__microcopy--center {
  max-width: 820px;
  margin: 16px auto 0;
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
    padding: 22px;
    border-radius: 20px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
  }
}


/* =========================================================
   Section owner — cartes style répartition premium
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 42px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__grid--two {
  gap: 28px;
  align-items: stretch;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  position: relative;
  overflow: hidden;
  min-height: 235px;
  padding: 32px 36px;
  border-radius: 28px;
  border: 1px solid rgba(1, 33, 72, .10);
  background: #fff;
  box-shadow: 0 22px 52px rgba(1, 33, 72, .065);
}

/* Accent vertical gauche — fourni par CityCleaner */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit {
  border-color: rgba(39, 207, 169, .30);
  background:
    radial-gradient(680px 300px at 0% 0%, rgba(39, 207, 169, .075), transparent 62%),
    #fff;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  width: 4px;
  height: auto;
  border-radius: 28px 0 0 28px;
  background: var(--turq);
  pointer-events: none;
}

/* Accent vertical gauche — propriétaire */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit {
  border-color: rgba(1, 33, 72, .12);
  background:
    radial-gradient(620px 280px at 0% 0%, rgba(1, 33, 72, .035), transparent 62%),
    #fff;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  width: 4px;
  height: auto;
  border-radius: 28px 0 0 28px;
  background: rgba(1, 33, 72, .16);
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card-title {
  margin: 0 0 22px;
  color: var(--navy);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.12;
  letter-spacing: -.025em;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list {
  gap: 18px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li {
  position: relative;
  padding-left: 34px;
  color: var(--ink78);
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.45;
  font-weight: 750;
}

/* Tirets neutres par défaut */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li::before {
  content: "–";
  position: absolute;
  top: .02em;
  left: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: rgba(1, 33, 72, .48);
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
}

/* Checks turquoise côté CityCleaner */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list--check li::before {
  content: "✓";
  color: var(--turq);
  font-size: 20px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__microcopy--center {
  max-width: 820px;
  margin: 18px auto 0;
  color: var(--ink64);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 700;
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
    min-height: 0;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__grid--two {
    gap: 16px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
    padding: 24px 22px 24px 26px;
    border-radius: 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before,
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::before {
    border-radius: 22px 0 0 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card-title {
    margin-bottom: 18px;
    font-size: 21px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list {
    gap: 13px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li {
    padding-left: 28px;
    font-size: 15.5px;
    line-height: 1.48;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__microcopy--center {
    text-align: left;
    margin-top: 14px;
  }
}



/* =========================================================
   Section owner — bordure gauche arrondie type référence
   ========================================================= */

/* Base neutre : contour général très discret */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
  border: 1px solid rgba(1, 33, 72, .10) !important;
}

/* On transforme le ::before en contour partiel, pas en barre */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: 30px;
  border: 2px solid transparent;
  background: none !important;

  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 54px,
    transparent 56px,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 54px,
    transparent 56px,
    transparent 100%
  );
}

/* Carte gauche : bordure partielle turquoise */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before {
  border-color: rgba(39, 207, 169, .72);
}

/* Carte droite : bordure partielle gris-bleu */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::before {
  border-color: rgba(1, 33, 72, .18);
}


/* =========================================================
   Section owner — bordure partielle arrondie exacte
   ========================================================= */

/* Neutralise les anciennes fausses barres verticales */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::before,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::before,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit::after,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit::after {
  content: none !important;
  display: none !important;
}

/* Base commune : vraie bordure transparente alimentée par le background border-box */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  position: relative;
  overflow: hidden;
  border-radius: 30px !important;
  border: 2px solid transparent !important;
  box-shadow: 0 22px 52px rgba(1, 33, 72, .06) !important;
}

/* Carte gauche : turquoise uniquement sur la partie gauche du contour arrondi */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit {
  background:
    radial-gradient(560px 280px at 0% 0%, rgba(39, 207, 169, .055), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(39, 207, 169, .72) 0,
      rgba(39, 207, 169, .72) 42px,
      rgba(39, 207, 169, .22) 66px,
      rgba(1, 33, 72, .10) 96px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}

/* Carte droite : même principe, mais en gris-bleu */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit {
  background:
    radial-gradient(560px 280px at 0% 0%, rgba(1, 33, 72, .025), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(1, 33, 72, .18) 0,
      rgba(1, 33, 72, .18) 42px,
      rgba(1, 33, 72, .13) 66px,
      rgba(1, 33, 72, .10) 96px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}




/* =========================================================
   Section owner — bordure partielle légèrement épaissie
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  border: 3px solid transparent !important;
}

/* Carte gauche : contour turquoise un peu plus présent */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit {
  background:
    radial-gradient(560px 280px at 0% 0%, rgba(39, 207, 169, .055), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(39, 207, 169, .82) 0,
      rgba(39, 207, 169, .82) 42px,
      rgba(39, 207, 169, .24) 66px,
      rgba(1, 33, 72, .10) 96px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}

/* Carte droite : contour gris-bleu un peu plus lisible */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit {
  background:
    radial-gradient(560px 280px at 0% 0%, rgba(1, 33, 72, .025), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(1, 33, 72, .22) 0,
      rgba(1, 33, 72, .22) 42px,
      rgba(1, 33, 72, .15) 66px,
      rgba(1, 33, 72, .10) 96px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}


/* =========================================================
   Section owner — rééquilibrage des proportions
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
  max-width: 860px;
  margin-bottom: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-title {
  font-size: clamp(25px, 4.4vw, 36px);
  line-height: 1.12;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-lead {
  max-width: 760px;
  font-size: 15.5px;
  line-height: 1.55;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__grid--two {
  gap: 22px;
  align-items: stretch;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
  min-height: 0 !important;
  padding: 24px 26px 24px 28px !important;
  border-radius: 24px !important;
  border-width: 2.5px !important;
  box-shadow: 0 16px 38px rgba(1, 33, 72, .055) !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card-title {
  margin: 0 0 18px !important;
  font-size: clamp(18px, 1.55vw, 22px) !important;
  line-height: 1.18 !important;
  letter-spacing: -.018em;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list {
  gap: 11px !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li {
  padding-left: 28px !important;
  font-size: 14.5px !important;
  line-height: 1.48 !important;
  font-weight: 650 !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li::before {
  top: .04em !important;
  left: 0 !important;
  width: 18px !important;
  font-size: 17px !important;
  line-height: 1 !important;
  text-align: center;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list--check li::before {
  font-size: 16px !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__microcopy--center {
  max-width: 760px;
  margin: 12px auto 0 !important;
  font-size: 12.5px;
  line-height: 1.45;
  font-weight: 650;
}

/* Ajuste le rayon de la bordure partielle si le patch de bordure est actif */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--fit {
  background:
    radial-gradient(520px 260px at 0% 0%, rgba(39, 207, 169, .045), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(39, 207, 169, .82) 0,
      rgba(39, 207, 169, .82) 36px,
      rgba(39, 207, 169, .24) 58px,
      rgba(1, 33, 72, .10) 86px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card--nofit {
  background:
    radial-gradient(520px 260px at 0% 0%, rgba(1, 33, 72, .025), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(1, 33, 72, .22) 0,
      rgba(1, 33, 72, .22) 36px,
      rgba(1, 33, 72, .15) 58px,
      rgba(1, 33, 72, .10) 86px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__section-header {
    margin-bottom: 26px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card {
    padding: 22px 22px 22px 24px !important;
    border-radius: 22px !important;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__card-title {
    font-size: 19px !important;
    margin-bottom: 16px !important;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--owner .cc-service-linge-airbnb__list li {
    font-size: 14.5px !important;
  }
}



/* =========================================================
   Section limits — cadrage linge intégré au passage ménage
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits .cc-service-linge-airbnb__section-title {
  max-width: 840px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits .cc-service-linge-airbnb__section-lead {
  max-width: 760px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 22px;
  width: min(940px, 100%);
  margin: 0 auto;
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid rgba(1, 33, 72, .10);
  border-radius: 26px;
  background:
    radial-gradient(620px 260px at 0% 0%, rgba(39, 207, 169, .055), transparent 62%),
    #fff;
  box-shadow: 0 18px 44px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: rgba(39, 207, 169, .82);
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-intro,
.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-note {
  margin: 0;
  color: var(--ink78);
  font-size: 16px;
  line-height: 1.62;
  font-weight: 650;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-intro {
  max-width: 760px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-rule {
  width: 100%;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(39, 207, 169, .38),
    rgba(1, 33, 72, .08)
  );
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list li {
  position: relative;
  padding-left: 31px;
  color: var(--ink78);
  font-size: 15.5px;
  line-height: 1.48;
  font-weight: 700;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list li::before {
  content: "✓";
  position: absolute;
  top: .05em;
  left: 0;
  color: var(--turq);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-note {
  max-width: 820px;
  padding-top: 2px;
  color: var(--ink64);
  font-size: 14px;
  font-weight: 700;
}

@media (min-width: 900px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 26px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-panel {
    gap: 18px;
    padding: 24px 22px 24px 26px;
    border-radius: 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-intro {
    font-size: 15px;
    line-height: 1.58;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list {
    gap: 12px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-list li {
    font-size: 14.5px;
    line-height: 1.48;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-note {
    font-size: 13.5px;
  }
}





/* =========================================================
   Section limits — variantes sans cartes ni chips
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-rules .cc-service-linge-airbnb__section-header,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-split .cc-service-linge-airbnb__section-header {
  max-width: 900px;
  margin-bottom: 38px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-rules .cc-service-linge-airbnb__section-title,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-split .cc-service-linge-airbnb__section-title {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-rules .cc-service-linge-airbnb__section-lead,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-split .cc-service-linge-airbnb__section-lead {
  max-width: 760px;
}

/* Variante 1 — bandes horizontales éditoriales */

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-rules {
  width: min(980px, 100%);
  margin: 0 auto;
  border-top: 1px solid rgba(1, 33, 72, .12);
  border-bottom: 1px solid rgba(1, 33, 72, .12);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-row {
  display: grid;
  grid-template-columns: minmax(150px, 190px) 1fr;
  gap: 28px;
  align-items: start;
  padding: 22px 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-row + .cc-service-linge-airbnb__limits-row {
  border-top: 1px solid rgba(1, 33, 72, .09);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-label,
.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-copy {
  margin: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-label {
  position: relative;
  color: var(--navy);
  font-size: 13px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-label::before {
  content: "";
  display: inline-block;
  width: 26px;
  height: 2px;
  margin-right: 10px;
  vertical-align: .28em;
  border-radius: 999px;
  background: var(--turq);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-copy {
  max-width: 720px;
  color: var(--ink78);
  font-size: 17px;
  line-height: 1.56;
  font-weight: 680;
}

/* Variante 2 — split éditorial sans carte */

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-split {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 46px;
  width: min(980px, 100%);
  margin: 0 auto;
  padding: 10px 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-split::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: calc(48% - 23px);
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(39, 207, 169, .55),
    rgba(1, 33, 72, .10),
    transparent
  );
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-main,
.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side {
  min-width: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-kicker,
.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-statement,
.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side p {
  margin: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--navy);
  font-size: 13px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-kicker::before {
  content: "";
  width: 30px;
  height: 2px;
  border-radius: 999px;
  background: var(--turq);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-statement {
  margin-top: 14px;
  color: var(--navy);
  font-size: clamp(24px, 3.2vw, 36px);
  line-height: 1.12;
  letter-spacing: -.03em;
  font-weight: 900;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side {
  display: grid;
  align-content: center;
  gap: 18px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side p {
  color: var(--ink78);
  font-size: 16.5px;
  line-height: 1.62;
  font-weight: 680;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side p + p {
  padding-top: 18px;
  border-top: 1px solid rgba(1, 33, 72, .10);
}

/* Responsive */

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-row {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 20px 0;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-copy {
    max-width: none;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-split::before {
    content: none;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side {
    padding-top: 22px;
    border-top: 1px solid rgba(1, 33, 72, .10);
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-rules .cc-service-linge-airbnb__section-header,
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--limits-split .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-label,
  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-kicker {
    font-size: 12px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-copy,
  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-side p {
    font-size: 15px;
    line-height: 1.58;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-statement {
    font-size: 25px;
  }
}

/* =========================================================
   Section limits — labels courts sur une ligne
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__limits-label {
  white-space: nowrap;
}

@media (min-width: 900px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__limits-row {
    grid-template-columns: 150px 1fr;
    gap: 24px;
  }
}




/* =========================================================
   Section billing — devis, facturation, zone
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-header {
  max-width: 880px;
  margin-bottom: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-lead {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-layout {
  gap: 22px;
  align-items: stretch;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
  position: relative;
  overflow: hidden;
  align-content: start;
  gap: 18px;
  min-height: 335px;
  padding: 26px;
  border-radius: 24px;
  border: 1px solid rgba(1, 33, 72, .10);
  background: #fff;
  box-shadow: 0 18px 42px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote {
  border-color: rgba(39, 207, 169, .32);
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(39, 207, 169, .065), transparent 62%),
    #fff;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote::before {
  content: "";
  position: absolute;
  inset: 24px auto 24px 0;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: rgba(39, 207, 169, .74);
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-title {
  font-size: clamp(18px, 1.65vw, 22px);
  line-height: 1.18;
  letter-spacing: -.018em;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list {
  gap: 12px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li {
  padding-left: 27px;
  color: var(--ink78);
  font-size: 15px;
  line-height: 1.46;
  font-weight: 680;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li::before {
  top: .06em;
  left: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: rgba(1, 33, 72, .48);
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
  content: "–";
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list--check li::before {
  content: "✓";
  color: var(--turq);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card .cc-service-linge-airbnb__microcopy {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(1, 33, 72, .09);
  color: var(--ink64);
  font-size: 13.5px;
  line-height: 1.55;
  font-weight: 700;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__cta-block {
  margin-top: 30px;
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
    min-height: 0;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-header {
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-layout {
    gap: 16px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
    padding: 22px;
    border-radius: 20px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote::before {
    top: 22px;
    bottom: 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li {
    font-size: 14.5px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__cta-block {
    margin-top: 24px;
  }
}




/* =========================================================
   Section billing — version plus chaleureuse, sans coches
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-header {
  max-width: 880px;
  margin-bottom: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-lead {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-layout {
  gap: 22px;
  align-items: stretch;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
  position: relative;
  overflow: hidden;
  align-content: start;
  gap: 16px;
  min-height: 300px;
  padding: 26px;
  border-radius: 24px;
  border: 1px solid rgba(1, 33, 72, .10);
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(1, 33, 72, .022), transparent 62%),
    #fff;
  box-shadow: 0 18px 42px rgba(1, 33, 72, .055);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote {
  border-color: rgba(39, 207, 169, .32);
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(39, 207, 169, .065), transparent 62%),
    #fff;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote::before {
  content: "";
  position: absolute;
  inset: 24px auto 24px 0;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: rgba(39, 207, 169, .74);
  pointer-events: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-title {
  font-size: clamp(18px, 1.65vw, 22px);
  line-height: 1.18;
  letter-spacing: -.018em;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-text {
  margin: 0;
  color: var(--ink64);
  font-size: 14.5px;
  line-height: 1.56;
  font-weight: 680;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list {
  gap: 11px;
  margin-top: 2px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li {
  position: relative;
  padding-left: 22px;
  color: var(--ink78);
  font-size: 14.8px;
  line-height: 1.46;
  font-weight: 680;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li::before {
  content: "";
  position: absolute;
  top: .68em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(1, 33, 72, .32);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote .cc-service-linge-airbnb__billing-list li::before {
  background: rgba(39, 207, 169, .82);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list--zone {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 11px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__cta-block {
  margin-top: 30px;
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
    min-height: 0;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__section-header {
    margin-bottom: 28px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-layout {
    gap: 16px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card {
    padding: 22px;
    border-radius: 20px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote::before {
    top: 22px;
    bottom: 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list--zone {
    grid-template-columns: 1fr;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-list li {
    font-size: 14.5px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__cta-block {
    margin-top: 24px;
  }
}


/* =========================================================
   Section billing — cartes avec petites icônes distinctives
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-title--icon {
  display: flex;
  align-items: center;
  gap: 12px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  line-height: 0;
  color: var(--navy);
  background: rgba(1, 33, 72, .045);
  border: 1px solid rgba(1, 33, 72, .10);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon svg {
  width: 18px;
  height: 18px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon--quote {
  color: var(--navy);
  background: rgba(39, 207, 169, .12);
  border-color: rgba(39, 207, 169, .26);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon--invoice {
  color: var(--navy);
  background: rgba(1, 33, 72, .045);
  border-color: rgba(1, 33, 72, .10);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon--zone {
  color: var(--navy);
  background: rgba(70, 217, 255, .09);
  border-color: rgba(70, 217, 255, .18);
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-title--icon {
    gap: 10px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon {
    flex-basis: 32px;
    width: 32px;
    height: 32px;
    border-radius: 11px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-icon svg {
    width: 17px;
    height: 17px;
  }
}


/* =========================================================
   Section billing — bordure type "Fourni par CityCleaner"
   uniquement sur la carte Base du devis
   ========================================================= */

/* Supprime l’ancienne barre verticale turquoise de la carte devis */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote::before {
  content: none !important;
  display: none !important;
}

/* Applique une bordure partielle arrondie turquoise + contour gris doux */
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--billing .cc-service-linge-airbnb__billing-card--quote {
  border: 3px solid transparent !important;
  border-radius: 24px !important;
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(39, 207, 169, .055), transparent 64%) padding-box,
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      rgba(39, 207, 169, .82) 0,
      rgba(39, 207, 169, .82) 36px,
      rgba(39, 207, 169, .24) 58px,
      rgba(1, 33, 72, .10) 86px,
      rgba(1, 33, 72, .10) 100%
    ) border-box !important;
}



/* =========================================================
   Section reassurance — signalement sobre sans cartes
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--reassurance .cc-service-linge-airbnb__section-header {
  max-width: 880px;
  margin-bottom: 40px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--reassurance .cc-service-linge-airbnb__section-title {
  max-width: 840px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--reassurance .cc-service-linge-airbnb__section-lead {
  max-width: 820px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-layout {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 42px;
  align-items: start;
  width: min(980px, 100%);
  margin: 0 auto;
  padding-top: 30px;
  border-top: 1px solid rgba(1, 33, 72, .10);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-examples,
.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-return {
  min-width: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-label,
.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-text,
.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-note {
  margin: 0;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--navy);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-label::before {
  content: "";
  width: 30px;
  height: 2px;
  border-radius: 999px;
  background: var(--turq);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-chips li {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(1, 33, 72, .10);
  background: rgba(255, 255, 255, .74);
  color: var(--ink78);
  font-size: 13.5px;
  line-height: 1.15;
  font-weight: 760;
  box-shadow: 0 8px 18px rgba(1, 33, 72, .035);
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-return {
  position: relative;
  padding-left: 34px;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-return::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 2px;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    rgba(39, 207, 169, .78),
    rgba(1, 33, 72, .10)
  );
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-text {
  max-width: 560px;
  color: var(--ink78);
  font-size: 17px;
  line-height: 1.6;
  font-weight: 680;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__damage-note {
  max-width: 560px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(1, 33, 72, .10);
  color: var(--ink64);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 700;
}

@media (max-width: 899px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-return {
    padding-left: 28px;
  }
}

@media (max-width: 544px) {
  .cc-service-linge-airbnb .cc-service-linge-airbnb__section--reassurance .cc-service-linge-airbnb__section-header {
    text-align: left;
    justify-items: start;
    margin-bottom: 30px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-layout {
    gap: 26px;
    padding-top: 24px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-label {
    margin-bottom: 14px;
    font-size: 12px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-chips {
    gap: 8px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-chips li {
    min-height: 32px;
    padding: 7px 10px;
    font-size: 13px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-return {
    padding-left: 22px;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-text {
    font-size: 15.5px;
    line-height: 1.58;
  }

  .cc-service-linge-airbnb .cc-service-linge-airbnb__damage-note {
    font-size: 13.5px;
  }
}



/* =========================================================
   Correctif CTA final — bouton WhatsApp visible hors survol
   ========================================================= */

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary {
  color: var(--navy) !important;
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: 0 14px 30px rgba(1, 33, 72, .16) !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary span,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary svg {
  color: var(--navy) !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, .10) !important;
  border-color: rgba(255, 255, 255, .22) !important;
  box-shadow: 0 16px 34px rgba(1, 33, 72, .18) !important;
}

.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary:hover span,
.cc-service-linge-airbnb .cc-service-linge-airbnb__section--cta-final .cc-service-linge-airbnb__final-card .cc-service-linge-airbnb__cta--primary:hover svg {
  color: #fff !important;
}



/* =========================================================
   Correctif fort — CTA final WhatsApp visible hors survol
   ========================================================= */

.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:link,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:visited {
  color: var(--navy) !important;
  -webkit-text-fill-color: var(--navy) !important;
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: 0 14px 30px rgba(1, 33, 72, .16) !important;
}

/* Force le texte interne et l’icône à reprendre la bonne couleur */
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary *,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary span,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary svg {
  color: var(--navy) !important;
  -webkit-text-fill-color: var(--navy) !important;
}

/* Force les traits SVG si l’icône utilise currentColor */
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary svg * {
  stroke: var(--navy) !important;
}

/* État au survol */
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus-visible {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, .10) !important;
  border-color: rgba(255, 255, 255, .24) !important;
}

/* Texte + icône au survol */
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover *,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus-visible * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:hover svg *,
.cc-service-linge-airbnb 
.cc-service-linge-airbnb__section--cta-final 
a.cc-service-linge-airbnb__cta.cc-service-linge-airbnb__cta--primary:focus-visible svg * {
  stroke: #fff !important;
}




/* =========================================================
   CityCleaner — États de sélection et focus
   ========================================================= */

/* Sélection de texte */
::selection {
  background: #BFF4EA;
  color: #012148;
  text-shadow: none;
}

::-moz-selection {
  background: #BFF4EA;
  color: #012148;
  text-shadow: none;
}

/* Focus / clic sur liens : évite les surlignages jaunes */
a:focus:not(:focus-visible),
a:active {
  background-color: transparent;
  color: inherit;
  outline: none;
}

/* Focus accessible clavier */
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(39, 207, 169, .55);
  outline-offset: 4px;
  border-radius: 10px;
}


/* =========================================================
   CityCleaner — Header premium + CTA sans classe CSS
   Le dernier élément du menu devient le bouton Devis
   ========================================================= */

/* Ligne basse plus douce */
.site-header,
.ast-primary-header-bar,
.main-header-bar {
  border-bottom: 1px solid rgba(1, 33, 72, .08) !important;
  box-shadow: 0 8px 24px rgba(1, 33, 72, .035);
}

/* Desktop */
@media (min-width: 922px) {

  .ast-primary-header-bar,
  .main-header-bar {
    background: rgba(255, 255, 255, .96) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }

  /* Liens du menu */
  .main-header-menu > .menu-item > .menu-link,
  .ast-builder-menu-1 .menu-item > .menu-link {
    position: relative;
    color: rgba(1, 33, 72, .86) !important;
    font-weight: 850;
    letter-spacing: .015em;
    transition: color .16s ease, opacity .16s ease, transform .16s ease;
  }

  /* Hover des liens normaux */
  .main-header-menu > .menu-item:not(:last-child) > .menu-link:hover,
  .ast-builder-menu-1 .menu-item:not(:last-child) > .menu-link:hover {
    color: #012148 !important;
    opacity: 1;
  }

  /* Trait turquoise hover / page active, sauf dernier élément CTA */
  .main-header-menu > .menu-item:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .menu-item:not(:last-child) > .menu-link::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 12px;
    height: 2px;
    border-radius: 999px;
    background: #27CFA9;
    transform: scaleX(0);
    transform-origin: center;
    opacity: .9;
    transition: transform .18s ease, opacity .18s ease;
  }

  .main-header-menu > .menu-item:not(:last-child) > .menu-link:hover::after,
  .main-header-menu > .current-menu-item:not(:last-child) > .menu-link::after,
  .main-header-menu > .current-menu-ancestor:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .menu-item:not(:last-child) > .menu-link:hover::after,
  .ast-builder-menu-1 .current-menu-item:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .current-menu-ancestor:not(:last-child) > .menu-link::after {
    transform: scaleX(1);
  }

  /* Dernier élément du menu = CTA Devis */
  .main-header-menu > .menu-item:last-child,
  .ast-builder-menu-1 .menu-item:last-child {
    margin-left: 10px;
  }

  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    min-height: 44px;
    height: 44px;
    padding: 0 22px !important;
    border-radius: 999px;
    background: #012148 !important;
    border: 1px solid #012148;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(1, 33, 72, .12);
    text-transform: none !important;
    letter-spacing: .01em;
    font-weight: 900;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .16s ease, background .16s ease, box-shadow .16s ease, border-color .16s ease;
  }

  .main-header-menu > .menu-item:last-child > .menu-link::after,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link::after {
    display: none !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link:hover,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link:hover {
    background: #07346F !important;
    border-color: #07346F;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(1, 33, 72, .16);
  }
}

/* Mobile : dernier élément du menu burger = bouton CTA */
@media (max-width: 921px) {
  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    margin: 10px 16px 14px;
    min-height: 48px;
    border-radius: 999px;
    background: #012148 !important;
    color: #fff !important;
    justify-content: center;
    text-align: center;
    font-weight: 900;
    box-shadow: 0 12px 24px rgba(1, 33, 72, .12);
  }
}






/* =========================================================
   CityCleaner — Ajustements fins header CTA / actif / hover
   À coller APRÈS le patch header actuel
   ========================================================= */

/* Header : séparation plus premium, moins dure */
.site-header,
.ast-primary-header-bar,
.main-header-bar {
  border-bottom: 0 !important;
  box-shadow:
    0 1px 0 rgba(1, 33, 72, .09),
    0 8px 22px rgba(1, 33, 72, .025) !important;
}

.ast-primary-header-bar,
.main-header-bar {
  background: rgba(255, 255, 255, .965) !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* Desktop */
@media (min-width: 922px) {

  /* Hover menu : plus subtil que l'état actif */
  .main-header-menu > .menu-item:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .menu-item:not(:last-child) > .menu-link::after {
    left: 24px !important;
    right: 24px !important;
    bottom: 10px !important;
    height: 2px !important;
    background: #27CFA9 !important;
    opacity: .42 !important;
  }

  .main-header-menu > .menu-item:not(:last-child) > .menu-link:hover::after,
  .ast-builder-menu-1 .menu-item:not(:last-child) > .menu-link:hover::after {
    transform: scaleX(1) !important;
    opacity: .48 !important;
  }

  /* Page active : trait plus fort, plus lisible */
  .main-header-menu > .current-menu-item:not(:last-child) > .menu-link::after,
  .main-header-menu > .current-menu-ancestor:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .current-menu-item:not(:last-child) > .menu-link::after,
  .ast-builder-menu-1 .current-menu-ancestor:not(:last-child) > .menu-link::after {
    left: 16px !important;
    right: 16px !important;
    bottom: 10px !important;
    height: 2px !important;
    transform: scaleX(1) !important;
    opacity: 1 !important;
    background: #27CFA9 !important;
  }

  /* Bouton Devis : icône WhatsApp + meilleur alignement */
  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    gap: 8px !important;
    padding: 0 20px !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link::before,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23ffffff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.2 19.1 6.3 15A7.4 7.4 0 1 1 9 17.3l-3.8 1.8Z'/%3E%3Cpath d='M9.1 8.2c.2-.4.4-.5.7-.5h.6c.2 0 .4.1.5.4l.7 1.7c.1.3.1.5-.1.7l-.4.5c-.1.2-.1.4 0 .6.4.8 1.1 1.5 1.9 1.9.2.1.4.1.6 0l.6-.4c.2-.2.5-.2.7-.1l1.6.7c.3.1.4.3.4.6v.5c0 .4-.2.7-.5.8-.6.3-1.4.4-2.2.2-2.8-.7-5-2.9-5.7-5.7-.2-.8-.1-1.5.1-2Z'/%3E%3C/svg%3E");
  }
}

/* Mobile : icône aussi dans le menu burger */
@media (max-width: 921px) {
  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    gap: 8px !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link::before,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link::before {
    content: "";
    display: inline-block;
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23ffffff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.2 19.1 6.3 15A7.4 7.4 0 1 1 9 17.3l-3.8 1.8Z'/%3E%3Cpath d='M9.1 8.2c.2-.4.4-.5.7-.5h.6c.2 0 .4.1.5.4l.7 1.7c.1.3.1.5-.1.7l-.4.5c-.1.2-.1.4 0 .6.4.8 1.1 1.5 1.9 1.9.2.1.4.1.6 0l.6-.4c.2-.2.5-.2.7-.1l1.6.7c.3.1.4.3.4.6v.5c0 .4-.2.7-.5.8-.6.3-1.4.4-2.2.2-2.8-.7-5-2.9-5.7-5.7-.2-.8-.1-1.5.1-2Z'/%3E%3C/svg%3E");
  }
}


/* =========================================================
   CityCleaner — Header CTA plus assumé
   Corrige l'effet "bouton recroquevillé"
   ========================================================= */

@media (min-width: 922px) {

  /* Dernier élément du menu = CTA */
  .main-header-menu > .menu-item:last-child,
  .ast-builder-menu-1 .menu-item:last-child {
    margin-left: 18px !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    min-width: 164px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 26px !important;
    gap: 10px !important;

    border-radius: 999px !important;
    background: #012148 !important;
    border: 1px solid rgba(1, 33, 72, .98) !important;
    color: #fff !important;

    font-size: 15.5px !important;
    font-weight: 900 !important;
    letter-spacing: .005em !important;
    line-height: 1 !important;
    text-transform: none !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-shadow:
      0 12px 26px rgba(1, 33, 72, .16),
      inset 0 1px 0 rgba(255, 255, 255, .08) !important;

    transform: translateY(0);
    transition:
      transform .16s ease,
      background .16s ease,
      box-shadow .16s ease,
      border-color .16s ease;
  }

  .main-header-menu > .menu-item:last-child > .menu-link::before,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link::before {
    width: 17px !important;
    height: 17px !important;
    flex-basis: 17px !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link:hover,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link:hover {
    background: #07346F !important;
    border-color: #07346F !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow:
      0 16px 34px rgba(1, 33, 72, .20),
      inset 0 1px 0 rgba(255, 255, 255, .10) !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link:active,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link:active {
    transform: translateY(0);
    box-shadow:
      0 8px 18px rgba(1, 33, 72, .14),
      inset 0 1px 0 rgba(255, 255, 255, .06) !important;
  }
}

/* Mobile : garder un bouton confortable dans le menu */
@media (max-width: 921px) {
  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    min-height: 52px !important;
    margin: 12px 16px 16px !important;
    padding: 0 22px !important;
    border-radius: 18px !important;
    font-size: 16px !important;
    font-weight: 900 !important;
  }
}



/* =========================================================
   CityCleaner — Ajustement final CTA header
   ========================================================= */

@media (min-width: 922px) {
  .main-header-menu > .menu-item:last-child > .menu-link,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link {
    min-width: 154px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 23px !important;
    gap: 9px !important;
    font-size: 15px !important;
    box-shadow:
      0 10px 22px rgba(1, 33, 72, .14),
      inset 0 1px 0 rgba(255, 255, 255, .08) !important;
  }

  .main-header-menu > .menu-item:last-child > .menu-link:hover,
  .ast-builder-menu-1 .menu-item:last-child > .menu-link:hover {
    box-shadow:
      0 14px 28px rgba(1, 33, 72, .18),
      inset 0 1px 0 rgba(255, 255, 255, .10) !important;
  }
}












/* =========================================================
   CityCleaner — Reveal System hybride pages services
   Textes / FAQ / CTA : apparition une fois.
   Cartes / images / étapes : réanimation légère au scroll inverse.
   Dépend du JS intégré en bas des HTML fournis.
   ========================================================= */

/* Sans JS, le contenu reste visible.
   Les éléments ne sont cachés que lorsque le JS ajoute .cc-reveal-ready sur <html>. */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition-property: opacity, transform, filter;
  transition-duration: 640ms;
  transition-timing-function: cubic-bezier(.20, .70, .20, 1);
  transition-delay: 0ms;
  will-change: opacity, transform;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal.is-visible,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: none;
  will-change: auto;
}

/* Textes / titres : animation plus calme, non réversible */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--header,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--header,
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--content,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--content {
  transform: translate3d(0, 14px, 0);
  transition-duration: 600ms;
}

/* Cartes / étapes : base */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--card,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--card {
  transform: translate3d(0, 18px, 0);
  transition-duration: 620ms;
}

/* Images : micro-scale premium */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--image,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--image {
  transform: translate3d(0, 18px, 0) scale(.986);
  transition-duration: 720ms;
}

/* CTA : one-shot, stable */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--cta,
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--cta {
  transform: translate3d(0, 16px, 0) scale(.992);
  transition-duration: 700ms;
}

/* Effet hybride : les éléments cc-reveal-repeat changent de sens selon le scroll.
   Descente : l'élément monte légèrement.
   Remontée : l'élément descend légèrement. */
html.cc-reveal-ready.cc-scroll-down .cc-service-airbnb-linge .cc-reveal-repeat:not(.is-visible),
html.cc-reveal-ready.cc-scroll-down .cc-service-linge-airbnb .cc-reveal-repeat:not(.is-visible) {
  transform: translate3d(0, 18px, 0);
}

html.cc-reveal-ready.cc-scroll-up .cc-service-airbnb-linge .cc-reveal-repeat:not(.is-visible),
html.cc-reveal-ready.cc-scroll-up .cc-service-linge-airbnb .cc-reveal-repeat:not(.is-visible) {
  transform: translate3d(0, -16px, 0);
}

html.cc-reveal-ready.cc-scroll-down .cc-service-airbnb-linge .cc-reveal-repeat.cc-reveal--image:not(.is-visible),
html.cc-reveal-ready.cc-scroll-down .cc-service-linge-airbnb .cc-reveal-repeat.cc-reveal--image:not(.is-visible) {
  transform: translate3d(0, 18px, 0) scale(.986);
}

html.cc-reveal-ready.cc-scroll-up .cc-service-airbnb-linge .cc-reveal-repeat.cc-reveal--image:not(.is-visible),
html.cc-reveal-ready.cc-scroll-up .cc-service-linge-airbnb .cc-reveal-repeat.cc-reveal--image:not(.is-visible) {
  transform: translate3d(0, -16px, 0) scale(.986);
}

/* Cascade sobre sur les groupes de cartes / étapes.
   Les FAQ n'ont pas cc-reveal-repeat : elles apparaissent une fois et restent stables. */
html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(1),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(1) {
  transition-delay: 0ms;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(2),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(2) {
  transition-delay: 70ms;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(3),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(3) {
  transition-delay: 140ms;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(4),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(4) {
  transition-delay: 210ms;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(5),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(5) {
  transition-delay: 270ms;
}

html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal:nth-child(n+6),
html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal:nth-child(n+6) {
  transition-delay: 320ms;
}

/* Mobile : animations plus courtes, sans cascade lourde */
@media (max-width: 544px) {
  html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal,
  html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal {
    transform: translate3d(0, 14px, 0);
    transition-duration: 520ms;
  }

  html.cc-reveal-ready.cc-scroll-up .cc-service-airbnb-linge .cc-reveal-repeat:not(.is-visible),
  html.cc-reveal-ready.cc-scroll-up .cc-service-linge-airbnb .cc-reveal-repeat:not(.is-visible) {
    transform: translate3d(0, -12px, 0);
  }

  html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--image,
  html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--image,
  html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal--cta,
  html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal--cta {
    transform: translate3d(0, 12px, 0) scale(.992);
  }

  html.cc-reveal-ready.cc-scroll-up .cc-service-airbnb-linge .cc-reveal-repeat.cc-reveal--image:not(.is-visible),
  html.cc-reveal-ready.cc-scroll-up .cc-service-linge-airbnb .cc-reveal-repeat.cc-reveal--image:not(.is-visible) {
    transform: translate3d(0, -12px, 0) scale(.992);
  }

  html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal-stagger > .cc-reveal,
  html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal-stagger > .cc-reveal {
    transition-delay: 0ms !important;
  }
}

/* Respect accessibilité : animations désactivées si l'utilisateur le demande. */
@media (prefers-reduced-motion: reduce) {
  html.cc-reveal-ready .cc-service-airbnb-linge .cc-reveal,
  html.cc-reveal-ready .cc-service-linge-airbnb .cc-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
    transition-delay: 0ms !important;
    will-change: auto !important;
  }
}



/* =========================================================
   CityCleaner — Reveal éditorial global articles
   Version : 1.0
   Scope : articles de blog uniquement (.cc-article)
   Objectif : animations sobres, lisibles, réutilisables sur tout le blog.
   ========================================================= */

/* Sécurité : sans JS, rien n'est masqué.
   Les animations ne s'activent que lorsque le JS ajoute .cc-article-reveal-ready sur <html>. */

html.cc-article-reveal-ready .cc-article .cc-article-reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  filter: none;
  transition-property: opacity, transform, filter;
  transition-duration: 560ms;
  transition-timing-function: cubic-bezier(.20, .70, .20, 1);
  transition-delay: var(--cc-ar-delay, 0ms);
  will-change: opacity, transform;
}

html.cc-article-reveal-ready .cc-article .cc-article-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: none;
  will-change: auto;
}

/* Header article : entrée douce, un peu plus posée */
html.cc-article-reveal-ready .cc-article .cc-article-reveal--intro {
  transform: translate3d(0, 12px, 0);
  transition-duration: 560ms;
}

html.cc-article-reveal-ready .cc-article .cc-article-reveal--title {
  transform: translate3d(0, 10px, 0);
  transition-duration: 620ms;
}

/* Images : micro-scale premium */
html.cc-article-reveal-ready .cc-article .cc-article-reveal--image {
  transform: translate3d(0, 14px, 0) scale(.992);
  transition-duration: 660ms;
}

/* Encadrés, checklists, décisions, blocs étapes */
html.cc-article-reveal-ready .cc-article .cc-article-reveal--block {
  transform: translate3d(0, 16px, 0);
  transition-duration: 600ms;
}

/* FAQ : stable, une seule apparition */
html.cc-article-reveal-ready .cc-article .cc-article-reveal--faq {
  transform: translate3d(0, 14px, 0);
  transition-duration: 560ms;
}

/* CTA final : un peu plus marqué mais sobre */
html.cc-article-reveal-ready .cc-article .cc-article-reveal--cta {
  transform: translate3d(0, 16px, 0) scale(.994);
  transition-duration: 640ms;
}

/* Éléments réversibles uniquement : images + encadrés importants.
   Quand on descend, ils montent légèrement.
   Quand on remonte, ils redescendent légèrement.
   Les H2, FAQ et CTA restent stables pour préserver la lecture. */
html.cc-article-reveal-ready.cc-article-scroll-down .cc-article .cc-article-reveal-repeat:not(.is-visible) {
  transform: translate3d(0, 14px, 0);
}

html.cc-article-reveal-ready.cc-article-scroll-up .cc-article .cc-article-reveal-repeat:not(.is-visible) {
  transform: translate3d(0, -12px, 0);
}

html.cc-article-reveal-ready.cc-article-scroll-down .cc-article .cc-article-reveal-repeat.cc-article-reveal--image:not(.is-visible) {
  transform: translate3d(0, 14px, 0) scale(.992);
}

html.cc-article-reveal-ready.cc-article-scroll-up .cc-article .cc-article-reveal-repeat.cc-article-reveal--image:not(.is-visible) {
  transform: translate3d(0, -12px, 0) scale(.992);
}

/* H2 des articles : apparition éditoriale légère */
html.cc-article-reveal-ready .cc-article h2.cc-article-reveal {
  transform: translate3d(0, 10px, 0);
  transition-duration: 520ms;
}

/* Évite les effets trop importants si un élément a déjà un transform CSS existant */
html.cc-article-reveal-ready .cc-article .cc-article__stackItem.cc-article-reveal,
html.cc-article-reveal-ready .cc-article .cc-faq__item.cc-article-reveal {
  transform: translate3d(0, 10px, 0);
}

/* Mobile : animations plus courtes, moins de déplacement, pas de cascade lourde */
@media (max-width: 544px) {
  html.cc-article-reveal-ready .cc-article .cc-article-reveal {
    transform: translate3d(0, 10px, 0);
    transition-duration: 460ms;
    transition-delay: 0ms !important;
  }

  html.cc-article-reveal-ready .cc-article .cc-article-reveal--image,
  html.cc-article-reveal-ready .cc-article .cc-article-reveal--cta {
    transform: translate3d(0, 10px, 0) scale(.996);
  }

  html.cc-article-reveal-ready.cc-article-scroll-up .cc-article .cc-article-reveal-repeat:not(.is-visible) {
    transform: translate3d(0, -8px, 0);
  }

  html.cc-article-reveal-ready.cc-article-scroll-up .cc-article .cc-article-reveal-repeat.cc-article-reveal--image:not(.is-visible) {
    transform: translate3d(0, -8px, 0) scale(.996);
  }
}

/* Accessibilité : respecte les utilisateurs qui réduisent les animations */
@media (prefers-reduced-motion: reduce) {
  html.cc-article-reveal-ready .cc-article .cc-article-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
    transition-delay: 0ms !important;
    will-change: auto !important;
  }
}




















/* Patch CityCleaner — Article 9 — cartes alignées + typographie corrigée */

/* =========================================================
   1) Carte d’intro — À retenir en cas d’état anormal
   ========================================================= */

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints {
  width: 100% !important;
  margin: clamp(24px, 3vw, 34px) 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid #dfe7f1 !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 45px rgba(1, 33, 72, 0.08) !important;
}

/* Header identique au modèle */
html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > .cc-article__title--ico {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 26px 38px !important;
  border-bottom: 1px solid #dfe7f1 !important;
  color: #012148 !important;
  font-size: 18px !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: 0.045em !important;
  text-transform: uppercase !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__titleText {
  display: block !important;
  color: #012148 !important;
  font: inherit !important;
}

/* Icône header type modèle */
html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico {
  position: relative !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: #ecfbf8 !important;
  border: 1px solid rgba(39, 207, 169, 0.28) !important;
  color: #012148 !important;
  font-size: 0 !important;
  line-height: 1 !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico > svg {
  display: none !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico::before {
  content: "" !important;
  position: absolute !important;
  left: 18px !important;
  top: 13px !important;
  width: 12px !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: currentColor !important;
  box-shadow:
    0 7px 0 currentColor,
    0 14px 0 currentColor !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico::after {
  content: "" !important;
  position: absolute !important;
  left: 12px !important;
  top: 12px !important;
  width: 3px !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: currentColor !important;
  box-shadow:
    0 7px 0 currentColor,
    0 14px 0 currentColor !important;
}

/* Corps de carte — aligné sur le modèle */
html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium {
  all: unset !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 28px !important;
  box-sizing: border-box !important;
  padding: 32px 64px 36px 47px !important;
  list-style: none !important;
}

/* Ligne : check + phrase continue */
html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li {
  all: unset !important;
  position: relative !important;
  display: block !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 0 0 36px !important;
  color: #334a68 !important;
  font-family: inherit !important;
  font-size: clamp(14.8px, 0.92vw, 16px) !important;
  font-weight: 650 !important;
  line-height: 1.52 !important;
  letter-spacing: -0.006em !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.08em !important;
  width: 18px !important;
  height: 18px !important;
  display: inline-grid !important;
  place-items: center !important;
  color: #012148 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li > strong {
  all: unset !important;
  display: inline !important;
  color: #012148 !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 850 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  white-space: nowrap !important;
  margin-right: 5px !important;
}

html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li br {
  display: none !important;
}

/* Mobile — carte d’intro */
@media (max-width: 767px) {
  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints {
    border-radius: 14px !important;
    box-shadow: 0 14px 30px rgba(1, 33, 72, 0.07) !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > .cc-article__title--ico {
    min-height: 50px !important;
    gap: 10px !important;
    padding: 13px 14px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    letter-spacing: 0.04em !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico {
    flex-basis: 24px !important;
    width: 24px !important;
    height: 24px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico::before {
    left: 10px !important;
    top: 7px !important;
    width: 7px !important;
    height: 1.5px !important;
    box-shadow:
      0 4.5px 0 currentColor,
      0 9px 0 currentColor !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints .cc-article__ico::after {
    left: 6px !important;
    top: 6.5px !important;
    width: 2px !important;
    height: 2px !important;
    box-shadow:
      0 4.5px 0 currentColor,
      0 9px 0 currentColor !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium {
    gap: 18px !important;
    padding: 22px 18px 26px 18px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li {
    padding-left: 24px !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.5 !important;
    letter-spacing: -0.004em !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li::before {
    left: 0 !important;
    top: 0.08em !important;
    width: 16px !important;
    height: 16px !important;
    font-size: 14px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li > strong {
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: 850 !important;
    margin-right: 3px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 360px) {
  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium {
    padding: 20px 16px 24px 16px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li {
    padding-left: 22px !important;
    font-size: 10.6px !important;
    line-height: 1.5 !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__header .cc-article__keypoints > ul.cc-article__listPremium > li::before {
    width: 15px !important;
    height: 15px !important;
    font-size: 13px !important;
  }
}

/* =========================================================
   2) Cartes secondaires — Decision + Checklist
   ========================================================= */

html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) {
  width: 100% !important;
  margin: clamp(24px, 3vw, 34px) 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid #dfe7f1 !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 45px rgba(1, 33, 72, 0.08) !important;
}

/* Header des cartes */
html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > .cc-article__title--ico {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 26px 38px !important;
  border-bottom: 1px solid #dfe7f1 !important;
  color: #012148 !important;
  font-size: 18px !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: 0.045em !important;
  text-transform: uppercase !important;
}

html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) .cc-article__titleText {
  display: block !important;
  color: #012148 !important;
  font: inherit !important;
}

/* Icône header */
html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) .cc-article__ico {
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: #ecfbf8 !important;
  border: 1px solid rgba(39, 207, 169, 0.28) !important;
  color: #012148 !important;
  line-height: 1 !important;
}

html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) .cc-article__ico > svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  stroke-width: 1.8 !important;
}

/* Corps de carte — même logique que la carte modèle */
html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium {
  all: unset !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 28px !important;
  box-sizing: border-box !important;
  padding: 32px 64px 36px 47px !important;
  list-style: none !important;
}

/* Ligne : check + phrase continue */
html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li {
  all: unset !important;
  position: relative !important;
  display: block !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 0 0 36px !important;
  color: #334a68 !important;
  font-family: inherit !important;
  font-size: clamp(14.8px, 0.92vw, 16px) !important;
  font-weight: 650 !important;
  line-height: 1.52 !important;
  letter-spacing: -0.006em !important;
}

html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.08em !important;
  width: 18px !important;
  height: 18px !important;
  display: inline-grid !important;
  place-items: center !important;
  color: #012148 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

/* Texte fort inline, jamais en colonne */
html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li > strong {
  all: unset !important;
  display: inline !important;
  color: #012148 !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 850 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  white-space: nowrap !important;
  margin-right: 5px !important;
}

html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li br {
  display: none !important;
}

/* Mobile — cartes secondaires */
@media (max-width: 767px) {
  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) {
    border-radius: 14px !important;
    box-shadow: 0 14px 30px rgba(1, 33, 72, 0.07) !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > .cc-article__title--ico {
    min-height: 50px !important;
    gap: 10px !important;
    padding: 13px 14px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    letter-spacing: 0.04em !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) .cc-article__ico {
    flex-basis: 24px !important;
    width: 24px !important;
    height: 24px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) .cc-article__ico > svg {
    width: 14px !important;
    height: 14px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium {
    gap: 18px !important;
    padding: 22px 18px 26px 18px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li {
    padding-left: 24px !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.5 !important;
    letter-spacing: -0.004em !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li::before {
    left: 0 !important;
    top: 0.08em !important;
    width: 16px !important;
    height: 16px !important;
    font-size: 14px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li > strong {
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: 850 !important;
    margin-right: 3px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 360px) {
  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium {
    padding: 20px 16px 24px 16px !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li {
    padding-left: 22px !important;
    font-size: 10.6px !important;
    line-height: 1.5 !important;
  }

  html body .cc-article.cc-article--a09 .cc-article__section :is(.cc-article__decision, .cc-article__checklist) > ul.cc-article__listPremium > li::before {
    width: 15px !important;
    height: 15px !important;
    font-size: 13px !important;
  }
}








































.cc-homepage {
  --cc-navy: #012148;
  --cc-turquoise: #27CFA9;
  --cc-sky: #46D9FF;
  --cc-violet: #8958FE;
  --cc-bg: #F7F9FB;
  --cc-white: #FFFFFF;
  --cc-text: #122033;
  --cc-muted: #62748A;
  --cc-border: #DDE6EE;
  --cc-radius: 18px;
  --cc-radius-lg: 30px;
  --cc-shadow: 0 20px 55px rgba(1, 33, 72, 0.13);
  --cc-shadow-soft: 0 10px 28px rgba(1, 33, 72, 0.08);
  --cc-container: 1160px;
  --cc-section-padding: clamp(48px, 7vw, 92px);

  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  padding-bottom: calc(78px + env(safe-area-inset-bottom));
  background: var(--cc-white);
  color: var(--cc-text);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}

.cc-homepage,
.cc-homepage *,
.cc-homepage *::before,
.cc-homepage *::after {
  box-sizing: border-box;
}

.cc-homepage :where(h1, h2, h3, h4, p, figure, blockquote, ul, ol, li, address) {
  margin: 0;
}

.cc-homepage :where(ul, ol) {
  padding: 0;
}

.cc-homepage :where(img, picture, svg) {
  max-width: 100%;
  height: auto;
}

.cc-homepage img {
  display: block;
}

.cc-homepage :where(h1, h2, h3, p, li, a) {
  overflow-wrap: break-word;
}

.cc-homepage a {
  text-underline-offset: 0.18em;
  text-decoration-thickness: 0.08em;
}

.cc-homepage address {
  font-style: normal;
}

.cc-homepage :where(a, .cc-cta) {
  -webkit-tap-highlight-color: transparent;
}

.cc-homepage :where(a, .cc-cta, summary):focus-visible {
  outline: 3px solid var(--cc-sky);
  outline-offset: 4px;
  border-radius: 14px;
}

.cc-homepage .cc-container {
  width: min(100%, var(--cc-container));
  max-width: 100%;
  margin-inline: auto;
  padding-inline: clamp(18px, 4vw, 32px);
}

.cc-homepage .cc-container > * {
  min-width: 0;
}

.cc-homepage .cc-section[id] {
  scroll-margin-top: 24px;
}

.cc-homepage .cc-section {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

.cc-homepage .cc-section:not(.cc-section-hero) {
  padding-block: var(--cc-section-padding);
}

.cc-homepage .cc-section-container {
  position: relative;
}

.cc-homepage .cc-section-heading {
  width: min(100%, 850px);
  margin-inline: auto;
  margin-bottom: clamp(26px, 4vw, 44px);
  text-align: center;
}

.cc-homepage .cc-section-kicker,
.cc-homepage .cc-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding: 7px 12px;
  border: 1px solid rgba(39, 207, 169, 0.32);
  border-radius: 999px;
  background: rgba(39, 207, 169, 0.12);
  color: var(--cc-navy);
  font-size: clamp(0.72rem, 1.8vw, 0.78rem);
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  text-align: center;
}

.cc-homepage .cc-section-kicker {
  margin-bottom: 12px;
}

.cc-homepage .cc-section-title {
  color: var(--cc-navy);
  font-size: clamp(1.8rem, 5.4vw, 3rem);
  font-weight: 850;
  line-height: 1.06;
  letter-spacing: 0;
  text-wrap: balance;
}

.cc-homepage .cc-section-intro,
.cc-homepage .cc-text-block,
.cc-homepage .cc-card-text,
.cc-homepage .cc-step-text,
.cc-homepage .cc-faq-answer,
.cc-homepage .cc-zone-text {
  color: var(--cc-muted);
  font-size: clamp(0.98rem, 2.2vw, 1.06rem);
  line-height: 1.72;
}

.cc-homepage .cc-text-block {
  width: min(100%, 860px);
  margin-inline: auto;
}

.cc-homepage .cc-text-block p + p {
  margin-top: 14px;
}

.cc-homepage .cc-section-microtext,
.cc-homepage .cc-hero-microtext,
.cc-homepage .cc-hero-limit,
.cc-homepage .cc-limit-text,
.cc-homepage .cc-price-note {
  color: var(--cc-muted);
  font-size: 0.94rem;
  line-height: 1.58;
}

.cc-homepage .cc-card-grid,
.cc-homepage .cc-proof-grid,
.cc-homepage .cc-compat-grid,
.cc-homepage .cc-method-grid,
.cc-homepage .cc-linge-grid,
.cc-homepage .cc-steps,
.cc-homepage .cc-comparison,
.cc-homepage .cc-proof-media-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 3vw, 22px);
}

.cc-homepage .cc-card,
.cc-homepage .cc-step-card,
.cc-homepage .cc-comparison-card,
.cc-homepage .cc-faq-item,
.cc-homepage .cc-zone-note,
.cc-homepage .cc-return-example {
  position: relative;
  min-width: 0;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius);
  background: var(--cc-white);
  box-shadow: var(--cc-shadow-soft);
}

.cc-homepage .cc-card,
.cc-homepage .cc-comparison-card,
.cc-homepage .cc-faq-item {
  padding: clamp(18px, 4vw, 26px);
}

.cc-homepage .cc-card-title,
.cc-homepage .cc-step-title,
.cc-homepage .cc-comparison-title,
.cc-homepage .cc-faq-question {
  color: var(--cc-navy);
  font-size: clamp(1.08rem, 2.5vw, 1.28rem);
  font-weight: 850;
  line-height: 1.18;
  letter-spacing: 0;
  text-wrap: balance;
}

.cc-homepage .cc-card-text,
.cc-homepage .cc-step-text,
.cc-homepage .cc-faq-answer {
  margin-top: 10px;
}

.cc-homepage .cc-list {
  display: grid;
  gap: 10px;
  list-style: none;
}

.cc-homepage .cc-list li {
  position: relative;
  padding-left: 18px;
  color: var(--cc-muted);
  font-size: 0.98rem;
  line-height: 1.55;
}

.cc-homepage .cc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--cc-turquoise);
  transform: translateY(-50%);
}

.cc-homepage .cc-cta-group,
.cc-homepage .cc-link-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
  margin-top: clamp(22px, 4vw, 34px);
}

.cc-homepage .cc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  width: 100%;
  max-width: 100%;
  padding: 13px 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: clamp(0.96rem, 2vw, 1rem);
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

.cc-homepage .cc-cta-primary,
.cc-homepage .cc-cta-whatsapp,
.cc-homepage .cc-cta-whatsapp-hero,
.cc-homepage .cc-cta-whatsapp-fonctionnement,
.cc-homepage .cc-cta-whatsapp-avis,
.cc-homepage .cc-cta-whatsapp-compatibilite,
.cc-homepage .cc-cta-whatsapp-zone,
.cc-homepage .cc-cta-whatsapp-faq,
.cc-homepage .cc-cta-whatsapp-final {
  background: var(--cc-turquoise);
  color: var(--cc-navy);
  box-shadow: 0 12px 24px rgba(39, 207, 169, 0.24);
}

.cc-homepage .cc-cta-secondary,
.cc-homepage .cc-cta-phone,
.cc-homepage .cc-cta-phone-hero,
.cc-homepage .cc-cta-phone-final {
  border-color: rgba(1, 33, 72, 0.22);
  background: var(--cc-white);
  color: var(--cc-navy);
  box-shadow: 0 10px 24px rgba(1, 33, 72, 0.08);
}

.cc-homepage .cc-link,
.cc-homepage .cc-inline-link {
  color: var(--cc-navy);
  font-weight: 800;
  text-decoration-color: rgba(39, 207, 169, 0.75);
}

.cc-homepage .cc-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.cc-homepage .cc-link::after {
  content: "→";
  color: var(--cc-turquoise);
  font-weight: 900;
  transition: transform 180ms ease;
}

.cc-homepage .cc-inline-link {
  text-decoration-line: underline;
}

.cc-homepage .cc-limit-text,
.cc-homepage .cc-price-note,
.cc-homepage .cc-section-microtext {
  width: min(100%, 820px);
  margin-inline: auto;
  margin-top: 18px;
  text-align: center;
}

.cc-homepage .cc-limit-text,
.cc-homepage .cc-price-note {
  padding: 14px 16px;
  border: 1px solid rgba(1, 33, 72, 0.08);
  border-left: 4px solid var(--cc-turquoise);
  border-radius: var(--cc-radius);
  background: var(--cc-bg);
}

/* Header */

.cc-homepage .cc-site-header {
  position: relative;
  z-index: 50;
  border-bottom: 1px solid var(--cc-border);
  background: rgba(255, 255, 255, 0.98);
}

.cc-homepage .cc-header-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 14px;
  padding-block: 13px;
}

.cc-homepage .cc-logo-link {
  display: inline-flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  gap: 1px;
  color: var(--cc-navy);
  text-decoration: none;
}

.cc-homepage .cc-logo-name {
  display: block;
  font-size: clamp(1.2rem, 5vw, 1.48rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.cc-homepage .cc-logo-baseline {
  display: block;
  max-width: 240px;
  color: var(--cc-muted);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cc-homepage .cc-main-nav {
  order: 3;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.cc-homepage .cc-main-nav::-webkit-scrollbar {
  display: none;
}

.cc-homepage .cc-nav-list {
  display: flex;
  align-items: center;
  gap: 7px;
  width: max-content;
  min-width: max-content;
  list-style: none;
}

.cc-homepage .cc-nav-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--cc-bg);
  color: var(--cc-navy);
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color 180ms ease,
    color 180ms ease;
}

.cc-homepage .cc-cta-whatsapp-header {
  display: none;
}

/* Hero */

.cc-homepage .cc-section-hero {
  position: relative;
  isolation: isolate;
  padding-block: clamp(38px, 8vw, 92px);
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 12%, rgba(70, 217, 255, 0.22), transparent 34%),
    radial-gradient(circle at 10% 90%, rgba(39, 207, 169, 0.18), transparent 32%),
    linear-gradient(135deg, #012148 0%, #06305F 58%, #012148 100%);
  color: var(--cc-white);
}

.cc-homepage .cc-hero-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 6vw, 64px);
  align-items: center;
}

.cc-homepage .cc-hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  min-width: 0;
  width: 100%;
}

.cc-homepage .cc-hero-badge {
  border-color: rgba(70, 217, 255, 0.36);
  background: rgba(255, 255, 255, 0.1);
  color: var(--cc-white);
}

.cc-homepage .cc-hero-title {
  max-width: 820px;
  color: var(--cc-white);
  font-size: clamp(2.15rem, 10vw, 4.55rem);
  font-weight: 900;
  line-height: 0.97;
  letter-spacing: 0;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.cc-homepage .cc-hero-promise {
  width: 100%;
  max-width: 720px;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1.04rem, 3.4vw, 1.28rem);
  line-height: 1.55;
}

.cc-homepage .cc-hero-proof {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid rgba(39, 207, 169, 0.34);
  border-radius: 999px;
  background: rgba(39, 207, 169, 0.16);
  color: var(--cc-white);
  font-size: 0.93rem;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-align: center;
}

.cc-homepage .cc-hero-cta-group {
  width: 100%;
  margin-top: 4px;
}

.cc-homepage .cc-section-hero .cc-cta-secondary,
.cc-homepage .cc-section-hero .cc-cta-phone {
  border-color: rgba(255, 255, 255, 0.28);
  background: var(--cc-white);
  color: var(--cc-navy);
}

.cc-homepage .cc-hero-microtext {
  max-width: 650px;
  color: rgba(255, 255, 255, 0.72);
}

.cc-homepage .cc-hero-bullets {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  width: 100%;
  list-style: none;
}

.cc-homepage .cc-hero-bullet {
  position: relative;
  min-height: 42px;
  padding: 10px 12px 10px 28px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.075);
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.94rem;
  font-weight: 750;
  line-height: 1.2;
}

.cc-homepage .cc-hero-bullet::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--cc-turquoise);
  transform: translateY(-50%);
}

.cc-homepage .cc-hero-limit {
  max-width: 650px;
  color: rgba(255, 255, 255, 0.66);
}

.cc-homepage .cc-hero-media {
  position: relative;
  margin-top: 4px;
}

.cc-homepage .cc-hero-image {
  width: 100%;
  max-height: 390px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--cc-radius-lg);
  box-shadow: var(--cc-shadow);
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.cc-homepage .cc-image-caption {
  position: static;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
  line-height: 1.35;
  text-align: center;
}

/* Problème / solution */

.cc-homepage .cc-section-probleme-solution {
  background: var(--cc-white);
}

.cc-homepage .cc-probleme-solution-text {
  padding: clamp(18px, 4vw, 28px);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  background: linear-gradient(180deg, var(--cc-white), var(--cc-bg));
  box-shadow: var(--cc-shadow-soft);
}

/* Inclus */

.cc-homepage .cc-section-inclus {
  background: var(--cc-bg);
}

.cc-homepage .cc-inclus-card {
  min-height: 100%;
}

.cc-homepage .cc-inclus-card::before,
.cc-homepage .cc-proof-card::before,
.cc-homepage .cc-linge-card::before,
.cc-homepage .cc-method-card::before {
  content: "";
  display: block;
  width: 42px;
  height: 4px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: var(--cc-turquoise);
}

/* CityCleaner ≠ conciergerie */

.cc-homepage .cc-section-conciergerie {
  background: var(--cc-white);
}

.cc-homepage .cc-comparison-card {
  overflow: hidden;
}

.cc-homepage .cc-comparison-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: var(--cc-sky);
}

.cc-homepage .cc-comparison-card:nth-child(2)::before {
  background: var(--cc-turquoise);
}

.cc-homepage .cc-comparison-title {
  margin-bottom: 16px;
}

.cc-homepage .cc-comparison-list li {
  color: var(--cc-text);
}

.cc-homepage .cc-section-conciergerie .cc-limit-text {
  margin-top: clamp(18px, 3vw, 26px);
}

/* Fonctionnement */

.cc-homepage .cc-section-fonctionnement {
  background: var(--cc-bg);
}

.cc-homepage .cc-price-note {
  margin-top: 18px;
}

.cc-homepage .cc-step-card {
  padding: clamp(18px, 4vw, 24px);
}

.cc-homepage .cc-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: var(--cc-navy);
  color: var(--cc-white);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 10px 18px rgba(1, 33, 72, 0.16);
}

.cc-homepage .cc-step-card:nth-child(2) .cc-step-number,
.cc-homepage .cc-step-card:nth-child(4) .cc-step-number {
  background: var(--cc-turquoise);
  color: var(--cc-navy);
}

/* Avis / preuves */

.cc-homepage .cc-section-avis {
  background: var(--cc-white);
}

.cc-homepage .cc-proof-media-grid {
  margin-top: clamp(18px, 4vw, 34px);
}

.cc-homepage .cc-proof-media,
.cc-homepage .cc-linge-media,
.cc-homepage .cc-about-media {
  overflow: hidden;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  background: var(--cc-white);
  box-shadow: var(--cc-shadow-soft);
}

.cc-homepage .cc-proof-image,
.cc-homepage .cc-linge-image,
.cc-homepage .cc-about-image {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.cc-homepage .cc-return-example {
  width: min(100%, 820px);
  margin: clamp(22px, 4vw, 36px) auto 0;
  padding: clamp(18px, 4vw, 26px);
  border-left: 5px solid var(--cc-turquoise);
  background: var(--cc-bg);
}

.cc-homepage .cc-return-label {
  color: var(--cc-navy);
  font-size: 0.92rem;
  font-weight: 850;
  line-height: 1.35;
}

.cc-homepage .cc-return-text {
  margin-top: 8px;
  color: var(--cc-text);
  font-size: clamp(0.98rem, 2vw, 1.06rem);
  line-height: 1.65;
}

/* Qualification */

.cc-homepage .cc-section-compatibilite {
  background: var(--cc-bg);
}

.cc-homepage .cc-compat-card {
  border-top: 5px solid var(--cc-turquoise);
}

.cc-homepage .cc-compat-card:nth-child(2) {
  border-top-color: var(--cc-sky);
}

/* Linge */

.cc-homepage .cc-section-linge {
  background: var(--cc-white);
}

.cc-homepage .cc-linge-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(26px, 5vw, 56px);
  align-items: center;
}

.cc-homepage .cc-linge-content .cc-section-heading,
.cc-homepage .cc-about-content .cc-section-heading {
  margin-inline: 0;
  text-align: left;
}

.cc-homepage .cc-linge-content .cc-link-group {
  justify-content: flex-start;
}

.cc-homepage .cc-section-linge .cc-limit-text {
  margin-inline: 0;
  text-align: left;
}

/* Zone */

.cc-homepage .cc-section-zone {
  background: var(--cc-bg);
}

.cc-homepage .cc-zone-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(18px, 4vw, 28px);
  align-items: stretch;
}

.cc-homepage .cc-zone-main {
  padding: clamp(18px, 4vw, 28px);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  background: var(--cc-white);
  box-shadow: var(--cc-shadow-soft);
}

.cc-homepage .cc-zone-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
  list-style: none;
}

.cc-homepage .cc-zone-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid rgba(39, 207, 169, 0.3);
  border-radius: 999px;
  background: rgba(39, 207, 169, 0.12);
  color: var(--cc-navy);
  font-size: 0.94rem;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}

.cc-homepage .cc-zone-note {
  display: flex;
  align-items: center;
  padding: clamp(18px, 4vw, 28px);
  background: var(--cc-navy);
  color: var(--cc-white);
}

.cc-homepage .cc-zone-note p {
  color: rgba(255, 255, 255, 0.86);
  font-size: 1rem;
  line-height: 1.65;
}

/* À propos */

.cc-homepage .cc-section-a-propos {
  background: var(--cc-white);
}

.cc-homepage .cc-about-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 5vw, 58px);
  align-items: center;
}

.cc-homepage .cc-about-text {
  margin-inline: 0;
}

.cc-homepage .cc-method-grid {
  margin-top: clamp(18px, 4vw, 30px);
}

.cc-homepage .cc-about-media {
  align-self: stretch;
}

/* FAQ */

.cc-homepage .cc-section-faq {
  background: var(--cc-bg);
}

.cc-homepage .cc-faq-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  width: min(100%, 920px);
  margin-inline: auto;
}

.cc-homepage .cc-faq-item {
  box-shadow: none;
}

.cc-homepage .cc-faq-question {
  padding-right: 20px;
}

.cc-homepage .cc-faq-answer {
  color: var(--cc-muted);
}

.cc-homepage details.cc-faq-item {
  padding: 0;
}

.cc-homepage details.cc-faq-item > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: clamp(18px, 4vw, 24px);
  color: var(--cc-navy);
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.cc-homepage details.cc-faq-item > summary .cc-faq-question {
  flex: 1 1 auto;
  padding-right: 0;
}

.cc-homepage details.cc-faq-item > summary::-webkit-details-marker {
  display: none;
}

.cc-homepage details.cc-faq-item > summary::after {
  content: "+";
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--cc-bg);
  color: var(--cc-navy);
  font-weight: 900;
  line-height: 1;
}

.cc-homepage details.cc-faq-item[open] > summary::after {
  content: "–";
}

.cc-homepage details.cc-faq-item > .cc-faq-answer {
  padding: 0 clamp(18px, 4vw, 24px) clamp(18px, 4vw, 24px);
}

/* CTA final */

.cc-homepage .cc-section-contact {
  background:
    radial-gradient(circle at 15% 20%, rgba(39, 207, 169, 0.17), transparent 30%),
    linear-gradient(135deg, var(--cc-navy), #062E5A);
  color: var(--cc-white);
}

.cc-homepage .cc-contact-container {
  width: min(100%, 920px);
  text-align: center;
}

.cc-homepage .cc-section-contact .cc-section-heading {
  margin-bottom: clamp(22px, 4vw, 34px);
}

.cc-homepage .cc-section-contact .cc-section-kicker {
  border-color: rgba(70, 217, 255, 0.34);
  background: rgba(255, 255, 255, 0.08);
  color: var(--cc-white);
}

.cc-homepage .cc-section-contact .cc-section-title {
  color: var(--cc-white);
}

.cc-homepage .cc-section-contact .cc-section-intro {
  color: rgba(255, 255, 255, 0.82);
}

.cc-homepage .cc-contact-cta-group {
  justify-content: center;
}

.cc-homepage .cc-section-contact .cc-cta-phone-final {
  border-color: rgba(255, 255, 255, 0.32);
  background: var(--cc-white);
  color: var(--cc-navy);
}

/* Footer NAP */

.cc-homepage .cc-footer {
  padding-block: clamp(34px, 6vw, 56px);
  background: #061A35;
  color: var(--cc-white);
}

.cc-homepage .cc-footer-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}

.cc-homepage .cc-footer-brand {
  color: var(--cc-white);
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1.25;
}

.cc-homepage .cc-footer-description,
.cc-homepage .cc-footer-zone,
.cc-homepage .cc-footer-address-line {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.95rem;
  line-height: 1.6;
}

.cc-homepage .cc-footer-description {
  margin-top: 5px;
}

.cc-homepage .cc-footer-address {
  display: grid;
  gap: 6px;
}

.cc-homepage .cc-footer-link {
  color: var(--cc-white);
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration-color: rgba(39, 207, 169, 0.75);
}

.cc-homepage .cc-footer-nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  list-style: none;
}

/* Sticky mobile */

.cc-homepage .cc-sticky-cta {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 900;
  display: flex;
  gap: 8px;
  align-items: center;
  width: 100%;
  max-width: 100vw;
  padding: 9px 12px calc(9px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--cc-border);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 -10px 30px rgba(1, 33, 72, 0.12);
}

.cc-homepage .cc-sticky-cta .cc-cta {
  min-width: 0;
  min-height: 52px;
  padding: 12px 14px;
  border-radius: 16px;
  font-size: 0.96rem;
  box-shadow: none;
}

.cc-homepage .cc-cta-whatsapp-sticky {
  flex: 3 1 0;
  background: var(--cc-turquoise);
  color: var(--cc-navy);
}

.cc-homepage .cc-cta-phone-sticky {
  flex: 2 1 0;
  border-color: var(--cc-navy);
  background: var(--cc-navy);
  color: var(--cc-white);
}

/* États hover desktop */

@media (hover: hover) and (pointer: fine) {
  .cc-homepage .cc-cta:hover {
    transform: translateY(-1px);
  }

  .cc-homepage .cc-cta-whatsapp:hover,
  .cc-homepage .cc-cta-primary:hover {
    background: #22BC9A;
    box-shadow: 0 14px 28px rgba(39, 207, 169, 0.28);
  }

  .cc-homepage .cc-cta-secondary:hover,
  .cc-homepage .cc-cta-phone:hover {
    border-color: var(--cc-navy);
    background: var(--cc-bg);
  }

  .cc-homepage .cc-nav-link:hover {
    background: rgba(39, 207, 169, 0.14);
    color: var(--cc-navy);
  }

  .cc-homepage .cc-link:hover::after {
    transform: translateX(3px);
  }

  .cc-homepage .cc-card:hover,
  .cc-homepage .cc-step-card:hover,
  .cc-homepage .cc-comparison-card:hover {
    box-shadow: var(--cc-shadow);
  }

  .cc-homepage .cc-footer-link:hover,
  .cc-homepage .cc-inline-link:hover {
    color: var(--cc-turquoise);
  }
}

/* Mobiles étroits */

@media (max-width: 480px) {
  .cc-homepage .cc-hero-title {
    font-size: clamp(1.6rem, 7vw, 1.82rem);
    line-height: 1.08;
  }

  .cc-homepage .cc-section-title {
    font-size: clamp(1.34rem, 6.2vw, 1.72rem);
    line-height: 1.12;
  }

  .cc-homepage .cc-hero-promise {
    font-size: 1rem;
    line-height: 1.55;
  }

  .cc-homepage .cc-hero-proof,
  .cc-homepage .cc-badge,
  .cc-homepage .cc-section-kicker {
    display: block;
    width: 100%;
    white-space: normal;
  }

  .cc-homepage .cc-hero-title,
  .cc-homepage .cc-section-title,
  .cc-homepage .cc-card-title,
  .cc-homepage .cc-step-title,
  .cc-homepage .cc-comparison-title,
  .cc-homepage .cc-faq-question {
    text-wrap: wrap;
  }

  .cc-homepage .cc-cta {
    padding-inline: 14px;
    word-break: normal;
  }

  .cc-homepage .cc-hero-bullet {
    border-radius: 18px;
  }
}

/* Très petits mobiles */

@media (max-width: 380px) {
  .cc-homepage {
    font-size: 15.5px;
  }

  .cc-homepage .cc-container {
    padding-inline: 14px;
  }

  .cc-homepage .cc-hero-title {
    font-size: clamp(1.52rem, 6.8vw, 1.72rem);
  }

  .cc-homepage .cc-section-title {
    font-size: clamp(1.28rem, 5.9vw, 1.58rem);
  }

  .cc-homepage .cc-logo-baseline {
    max-width: 190px;
  }

  .cc-homepage .cc-sticky-cta {
    gap: 6px;
    padding-inline: 8px;
  }

  .cc-homepage .cc-sticky-cta .cc-cta {
    min-height: 50px;
    padding-inline: 10px;
    font-size: 0.9rem;
  }
}

/* Ajustements dès 480px */

@media (min-width: 480px) {
  .cc-homepage .cc-hero-bullets {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cc-homepage .cc-zone-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Tablette */

@media (min-width: 768px) {
  .cc-homepage {
    padding-bottom: 0;
  }

  .cc-homepage .cc-sticky-cta {
    display: none;
  }

  .cc-homepage .cc-cta-group,
  .cc-homepage .cc-link-group {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
  }

  .cc-homepage .cc-cta {
    width: auto;
  }

  .cc-homepage .cc-section-cta-group,
  .cc-homepage .cc-contact-cta-group,
  .cc-homepage .cc-hero-cta-group {
    justify-content: center;
  }

  .cc-homepage .cc-hero-cta-group {
    justify-content: flex-start;
  }

  .cc-homepage .cc-header-container {
    flex-wrap: nowrap;
  }

  .cc-homepage .cc-logo-link {
    flex: 0 0 auto;
  }

  .cc-homepage .cc-main-nav {
    order: initial;
    flex: 1 1 auto;
    width: auto;
  }

  .cc-homepage .cc-nav-list {
    justify-content: flex-end;
  }

  .cc-homepage .cc-card-grid,
  .cc-homepage .cc-inclus-grid,
  .cc-homepage .cc-proof-grid,
  .cc-homepage .cc-method-grid,
  .cc-homepage .cc-linge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-homepage .cc-comparison,
  .cc-homepage .cc-compat-grid,
  .cc-homepage .cc-proof-media-grid,
  .cc-homepage .cc-zone-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-homepage .cc-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-homepage .cc-linge-grid,
  .cc-homepage .cc-method-grid,
  .cc-homepage .cc-proof-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cc-homepage .cc-footer-container {
    grid-template-columns: 1.4fr 1fr;
  }

  .cc-homepage .cc-footer-nav {
    grid-column: 1 / -1;
  }
}

/* Desktop */

@media (min-width: 1024px) {
  .cc-homepage .cc-container {
    padding-inline: 32px;
  }

  .cc-homepage .cc-header-container {
    gap: 24px;
    padding-block: 15px;
  }

  .cc-homepage .cc-main-nav {
    overflow: visible;
  }

  .cc-homepage .cc-nav-list {
    width: auto;
    min-width: 0;
    gap: 8px;
  }

  .cc-homepage .cc-nav-link {
    background: transparent;
  }

  .cc-homepage .cc-cta-whatsapp-header {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 42px;
    width: auto;
    padding: 10px 16px;
    font-size: 0.92rem;
    box-shadow: none;
  }

  .cc-homepage .cc-section-hero {
    padding-block: clamp(72px, 9vw, 116px);
  }

  .cc-homepage .cc-hero-container {
    grid-template-columns: minmax(0, 1.14fr) minmax(360px, 0.86fr);
  }

  .cc-homepage .cc-hero-image {
    max-height: 560px;
  }

  .cc-homepage .cc-image-caption {
    position: absolute;
    right: 18px;
    bottom: 18px;
    margin-top: 0;
    max-width: calc(100% - 36px);
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    background: rgba(1, 33, 72, 0.68);
    color: var(--cc-white);
    font-weight: 750;
  }

  .cc-homepage .cc-inclus-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cc-homepage .cc-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .cc-homepage .cc-linge-container,
  .cc-homepage .cc-about-container {
    grid-template-columns: minmax(0, 1.18fr) minmax(330px, 0.82fr);
  }

  .cc-homepage .cc-linge-media,
  .cc-homepage .cc-about-media {
    height: 100%;
  }

  .cc-homepage .cc-linge-image,
  .cc-homepage .cc-about-image {
    height: 100%;
    min-height: 420px;
  }

  .cc-homepage .cc-zone-content {
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  }

  .cc-homepage .cc-footer-container {
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.9fr) minmax(220px, 0.8fr);
    align-items: start;
  }

  .cc-homepage .cc-footer-nav {
    grid-column: auto;
  }

  .cc-homepage .cc-footer-nav-list {
    flex-direction: column;
  }
}

/* Grands écrans */

@media (min-width: 1180px) {
  .cc-homepage {
    --cc-container: 1180px;
  }

  .cc-homepage .cc-inclus-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .cc-homepage .cc-hero-title {
    max-width: 760px;
  }

  .cc-homepage .cc-proof-media-grid {
    gap: 24px;
  }
}

/* Réduction des mouvements */

@media (prefers-reduced-motion: reduce) {
  .cc-homepage *,
  .cc-homepage *::before,
  .cc-homepage *::after {
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* Masquer les liens légaux uniquement dans le menu hamburger */
#ast-mobile-popup .ast-mobile-popup-content li.menu-item:has(
  > a[href*="/mentions-legales/"]
),
#ast-mobile-popup .ast-mobile-popup-content li.menu-item:has(
  > a[href*="/politique-de-confidentialite/"]
) {
  display: none !important;
}