/* =======================================================
   Base & correctifs Elementor
======================================================= */
html, body { overflow-x: hidden }
main#content { background: transparent }
.elementor .elementor-widget-kmcj_page_hero { margin:0 !important }
.elementor .elementor-widget-kmcj_page_hero > .elementor-widget-container { padding:0 !important }
.elementor .e-con.e-parent:first-child,
.elementor-section-wrap > .elementor-section:first-child { margin-top:0 !important }
.elementor .e-con.e-parent:last-child,
.elementor-section-wrap > .elementor-section:last-child { margin-bottom:0 !important }

/* =======================================================
   Widget : HERO (kmcj-hero)
======================================================= */
.kmcj-hero{
  position:relative; display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; padding:80px 20px; overflow:hidden; isolation:isolate
}
.kmcj-hero::before{
  content:""; position:absolute; inset:-2px; z-index:0;
  background-position:center; background-size:cover; background-repeat:no-repeat; transform:translateZ(0)
}
.kmcj-hero::after{ content:""; position:absolute; inset:-2px; z-index:0; pointer-events:none; background:rgba(15,23,42,.45) }
.kmcj-hero__inner{ position:relative; z-index:1; max-width:960px; margin:auto }
.kmcj-hero__ident{ text-transform:uppercase; font-weight:600; opacity:.95; margin:0 0 18px }
.kmcj-hero__title{ font-weight:800; font-size:clamp(26px,3.6vw,42px); line-height:1.3; margin:0 0 12px; text-transform:uppercase }
.kmcj-hero__actions{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center }
.kmcj-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:700; border:1px solid rgba(255,255,255,.6); color:#fff; background:rgba(255,255,255,.08); transition:.2s; text-decoration:none }
.kmcj-btn:hover{ background:rgba(255,255,255,.16) }
.kmcj-btn--primary{ background:#fff; color:#111; border-color:#fff }
.kmcj-btn--primary:hover{ filter:brightness(.95) }
/* Variantes */
.kmcj-hero--fullbleed{ width:100vw; max-width:100vw; position:relative; left:50%; transform:translateX(-50%) }
.kmcj-hero--inner .kmcj-hero__inner{ max-width:980px }
.kmcj-hero--inner .kmcj-hero__title{ font-size:clamp(22px,3vw,34px); margin-bottom:8px }
.kmcj-hero__subtitle{ margin:0; opacity:.96 }
.kmcj-hero--page{ margin-top:-1px }
/* Responsive */
@media (max-width:900px){
  .kmcj-hero{ padding:60px 16px }
  .kmcj-hero__title{ font-size:clamp(22px,5vw,34px) }
}

/* =======================================================
   Widget : PAGE CONTACT unifiée (kmcj-contact)
   - infos en haut, accordéon pièces, formulaire CF7
======================================================= */
.kmcj-contact{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-contact a:focus,
.kmcj-contact button:focus,
.kmcj-contact input:focus,
.kmcj-contact select:focus,
.kmcj-contact textarea:focus { outline:2px solid #93c5fd; outline-offset:2px }

/* ---- Card générique + grille simple ---- */
.kmcj-contact .k-card{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:18px; box-shadow:0 8px 20px rgba(0,0,0,.06) }
.kmcj-contact .k-grid.k-stacked{ display:grid; grid-template-columns:1fr; gap:20px }

/* ---- Bloc coordonnées (TOP) ---- */
.kmcj-contact .k-infos-card{ padding:18px }
.kmcj-contact .k-urgent{
  display:flex; flex-direction:column; gap:8px; align-items:flex-start;
  margin:2px 0 12px; padding:12px 14px; border-radius:14px;
  background:linear-gradient(135deg,#0b2b5c,#163a73); color:#fff; text-decoration:none;
  box-shadow:0 10px 24px rgba(11,43,92,.25)
}
.kmcj-contact .k-urgent .chip{ font-size:.8rem; padding:4px 8px; border:1px solid rgba(255,255,255,.35); border-radius:999px }
.kmcj-contact .k-urgent .num{ font-weight:900; letter-spacing:.3px }
.kmcj-contact .k-infos-list{ list-style:none; margin:0; padding:0; display:grid; gap:12px }
.kmcj-contact .k-info{ display:grid; grid-template-columns:36px 1fr; gap:10px; align-items:start }
.kmcj-contact .k-info-icon{ display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#f1f5f9; border:1px solid #e5e7eb }
.kmcj-contact .k-info-icon i, .kmcj-contact .k-info-icon svg{ width:16px; height:16px; color:#0b2b5c }
.kmcj-contact .k-info-label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#64748b; margin:0 0 2px }
.kmcj-contact .k-info-value, .kmcj-contact .k-info-value:visited{ color:#0f172a; text-decoration:none; border-bottom:1px dashed rgba(0,0,0,.25) }
.kmcj-contact .k-info-value:hover{ border-bottom-color:#0b2b5c }

/* ---- Carte ---- */
.kmcj-contact .k-map{ padding:0; overflow:hidden }
.kmcj-contact .k-map-embed{ position:relative; width:100%; padding-top:56.25% }
.kmcj-contact .k-map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0 }

/* ---- Intro (paragraphe explicatif) ---- */
.kmcj-contact .k-intro{ margin-bottom:16px }
.kmcj-contact .k-intro-title{ margin:0 0 6px; font-weight:900; letter-spacing:.02em }
.kmcj-contact .k-intro-text{ color:#334155 }

/* ---- Accordéon "Pièces à fournir" ---- */
.kmcj-contact .k-req-acc{ border:1px solid #e5e7eb; border-radius:14px; overflow:hidden; background:#fff; margin:8px 0 18px }
.kmcj-contact .k-req-acc .k-acc-item + .k-acc-item{ border-top:1px solid #eef2f7 }
.kmcj-contact .k-req-acc .k-acc-head{
  width:100%; display:grid; grid-template-columns:32px 1fr auto; gap:12px; align-items:center;
  text-align:left; padding:14px 16px; background:#fff; border:0; cursor:pointer
}
.kmcj-contact .k-req-acc .k-acc-icon i,
.kmcj-contact .k-req-acc .k-acc-icon svg{ width:18px; height:18px; color:#0b2b5c }
.kmcj-contact .k-req-acc .k-acc-title{ font-weight:800; color:#0b2b5c }
.kmcj-contact .k-req-acc .k-acc-chev{ transition:transform .18s ease; opacity:.7 }
.kmcj-contact .k-req-acc .k-acc-head[aria-expanded="true"] .k-acc-chev{ transform:rotate(180deg) }
.kmcj-contact .k-req-acc .k-acc-head:focus{ outline:2px solid #93c5fd; outline-offset:2px }
.kmcj-contact .k-req-acc .k-acc-body{ padding:0 16px 14px }
.kmcj-contact .k-req-acc .k-acc-list{ margin:2px 0 0; padding-left:18px; line-height:1.65; color:#334155 }
.kmcj-contact .k-req-acc .k-acc-list li{ margin:2px 0 }

/* ---- Formulaire (CF7) ---- */
.kmcj-contact .k-form-card{ padding:22px }
.kmcj-contact .k-form-placeholder{ display:grid; place-items:center; min-height:220px; text-align:center; opacity:.8 }
.kmcj-contact .k-privacy-note{ margin-top:12px; font-size:13px; opacity:.85 }

/* Champs */
.kmcj-contact .wpcf7 form{ display:grid; gap:14px }
.kmcj-contact .wpcf7-form input[type="text"],
.kmcj-contact .wpcf7-form input[type="email"],
.kmcj-contact .wpcf7-form input[type="tel"],
.kmcj-contact .wpcf7-form input[type="url"],
.kmcj-contact .wpcf7-form input[type="date"],
.kmcj-contact .wpcf7-form select,
.kmcj-contact .wpcf7-form textarea{
  width:100%; box-sizing:border-box; background:#fff; border:1px solid #cbd5e1;
  border-radius:10px; padding:10px 12px; font-size:15px; line-height:1.45
}
.kmcj-contact .wpcf7-form textarea{ min-height:120px; resize:vertical }

/* Radio "Urgence" (classe CF7 seg) */
.kmcj-contact .wpcf7-form .seg{ --seg-accent:#0b2b5c;
  display:inline-flex; gap:8px; padding:6px; border:1px solid #e5e7eb; border-radius:12px; background:#f1f5f9
}
.kmcj-contact .wpcf7-form .seg .wpcf7-list-item{ margin:0 }
.kmcj-contact .wpcf7-form .seg input[type="radio"]{ position:absolute; opacity:0; pointer-events:none }
.kmcj-contact .wpcf7-form .seg .wpcf7-list-item label{
  position:relative; display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:10px; font-weight:700; color:#0f172a; cursor:pointer; border:1px solid transparent;
  transition:background .2s, border-color .2s, box-shadow .2s, color .2s
}
.kmcj-contact .wpcf7-form .seg .wpcf7-list-item label:hover{ background:#eef2ff }
.kmcj-contact .wpcf7-form .seg input[type="radio"]:checked + .wpcf7-list-item-label{
  background:var(--seg-accent); color:#fff; border-color:var(--seg-accent); box-shadow:0 4px 12px rgba(11,43,92,.25)
}

/* Préférence de contact (checkbox "chips") */
.kmcj-contact .wpcf7-form .chips{ display:flex; flex-wrap:wrap; gap:10px }
.kmcj-contact .wpcf7-form .chips .wpcf7-list-item{ margin:0 }
.kmcj-contact .wpcf7-form .chips input[type="checkbox"]{ position:absolute; opacity:0; pointer-events:none }
.kmcj-contact .wpcf7-form .chips .wpcf7-list-item-label{
  display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:999px;
  font-weight:700; background:#fff; color:#0f172a; border:1px solid #cbd5e1; transition:.2s
}
.kmcj-contact .wpcf7-form .chips .wpcf7-list-item-label:hover{ background:#f8fafc }
.kmcj-contact .wpcf7-form .chips input[type="checkbox"]:checked + .wpcf7-list-item-label{
  background:#0b2b5c; color:#fff; border-color:#0b2b5c; box-shadow:0 4px 12px rgba(11,43,92,.18)
}

/* Acceptation RGPD (Étape 4) */
.kmcj-contact .wpcf7-acceptance,
.kmcj-contact .wpcf7-form .accept-block{
  display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#475569; line-height:1.4
}
.kmcj-contact .wpcf7-acceptance input[type="checkbox"]{ margin-top:3px }
.kmcj-contact .wpcf7-acceptance a{ text-decoration:underline }

/* Submit + messages */
.kmcj-contact .wpcf7-form input[type="submit"],
.kmcj-contact .wpcf7-form button[type="submit"]{
  appearance:none; border:none; background:#0b2b5c; color:#fff; border-radius:12px;
  padding:12px 16px; font-weight:800; cursor:pointer; transition:filter .15s ease; min-width:220px
}
.kmcj-contact .wpcf7-form input[type="submit"]:hover,
.kmcj-contact .wpcf7-form button[type="submit"]:hover{ filter:brightness(1.05) }
.kmcj-contact .wpcf7 form .wpcf7-response-output{ margin:8px 0 0; border-radius:10px; padding:10px 12px }
.kmcj-contact .wpcf7-not-valid-tip{ font-size:13px; margin-top:6px }

/* Stepper (option) */
.kmcj-contact .k-stepper-host{ margin:6px 0 12px }
.kmcj-contact .k-stepper-bar{ display:flex; gap:10px; overflow:auto; padding-bottom:6px }
.kmcj-contact .k-step{ display:flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid #e5e7eb; border-radius:999px; white-space:nowrap; background:#fff; cursor:pointer }
.kmcj-contact .k-step .k-step-index{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:999px; border:1px solid #cbd5e1; font-size:12px }
.kmcj-contact .k-step.is-active{ background:#eef2ff; border-color:#c7d2fe }
.kmcj-contact .k-step.is-done{ opacity:.8 }
.kmcj-contact .k-step .k-step-label{ font-weight:700; color:#0b2b5c }
.kmcj-contact .k-step-actions{ display:flex; justify-content:space-between; gap:10px; margin-top:12px }
.kmcj-contact .k-btn{ display:inline-block; padding:9px 14px; border-radius:10px; font-weight:800; cursor:pointer; border:1px solid transparent; background:#fff }
.kmcj-contact .k-btn--primary{ background:#0b2b5c; color:#fff; border-color:#0b2b5c }
.kmcj-contact .k-btn--ghost{ border-color:#cbd5e1; color:#0f172a }
.kmcj-contact .wpcf7 .is-hidden{ display:none !important }

/* Uploader custom */
.kmcj-contact .file-uploader{ position:relative }
.kmcj-contact .file-uploader .file-native{ position:absolute; inset:0; opacity:0; pointer-events:none }
.kmcj-contact .file-uploader .file-drop{
  border:1px dashed #cbd5e1; border-radius:12px; background:#f8fafc; padding:16px; text-align:center; user-select:none; transition:.15s
}
.kmcj-contact .file-uploader .file-drop strong{ font-weight:800 }
.kmcj-contact .file-uploader .file-drop .link{ text-decoration:underline }
.kmcj-contact .file-uploader .file-drop .hint{ margin-top:6px; font-size:13px; color:#64748b }
.kmcj-contact .file-uploader.is-drag .file-drop{ border-color:#0b2b5c; background:#eef2ff }
.kmcj-contact .file-uploader .file-list{ list-style:none; padding:0; margin:10px 0 0 }
.kmcj-contact .file-uploader .file-list li{
  display:flex; align-items:center; gap:8px; padding:8px 10px; margin-top:6px; background:#fff;
  border:1px solid #e5e7eb; border-radius:8px; font-size:14px
}

/* Responsive */
@media (max-width:680px){
  .kmcj-contact{ padding:24px 16px 36px }
}

/* =======================================================
   Widgets : CONTACT (legacy compat si utilisés ailleurs)
   - .kmcj-contacts & .kmcj-cform (inchangés visuellement)
======================================================= */
.kmcj-contacts{ max-width:1200px; margin:0 auto; padding:36px 20px }
.kmcj-contacts__title{ margin:0 0 14px; font-weight:800; font-size:clamp(20px,2.2vw,28px) }
.kmcj-contacts__badge{ display:inline-block; margin:0 0 16px; padding:8px 12px; border-radius:8px; background:#0b2b5c; color:#fff; font-weight:800 }
.kmcj-contacts__badge a{ color:#fff; text-decoration:underline }
.kmcj-contacts__urgent{
  display:inline-flex; align-items:center; gap:10px; margin:8px 0 16px; padding:10px 14px;
  border-radius:12px; border:1px solid rgba(255,255,255,.25); background:#0b2b5c; color:#fff; font-weight:800; text-decoration:none; line-height:1.2;
  box-shadow:0 8px 22px rgba(11,43,92,.20), inset 0 0 0 1px rgba(255,255,255,.06)
}
.kmcj-contacts__urgent .chip{ font-size:.78rem; padding:4px 8px; border-radius:999px; border:1px solid rgba(255,255,255,.35) }
.kmcj-contacts__grid{ display:grid; gap:16px; grid-template-columns:repeat(2,1fr) }
.kmcj-contacts__card{ border:1px solid #e5e7eb; border-radius:14px; padding:18px; background:#fff }
.kmcj-contacts__label{ font-weight:800; color:#0b2b5c; margin:0 0 6px }
.kmcj-contacts__value{ margin:0; line-height:1.7 }
.kmcj-contacts a{ text-decoration:none }
.kmcj-contacts a:hover{ text-decoration:underline }
@media (max-width:900px){ .kmcj-contacts__grid{ grid-template-columns:1fr } }

.kmcj-cform{ max-width:1200px; margin:0 auto; padding:36px 20px }
.kmcj-cform__title{ margin:0 0 8px; font-weight:800; font-size:clamp(20px,2.2vw,28px) }
.kmcj-cform__intro{ margin:0 0 14px; color:#334155 }
.kmcj-cform__wrap{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:18px }
.kmcj-cform__privacy{ margin:12px 0 0; font-size:.95rem; color:#475569 }
.kmcj-cform__privacy a{ text-decoration:underline }
.kmcj-cform .wpcf7 form p{ margin:0 0 12px }
.kmcj-cform .wpcf7 input[type="text"],
.kmcj-cform .wpcf7 input[type="email"],
.kmcj-cform .wpcf7 input[type="tel"],
.kmcj-cform .wpcf7 textarea,
.kmcj-cform .wpcf7 select{
  width:100%; padding:10px 12px; border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc
}
.kmcj-cform .wpcf7 input[type="submit"]{
  display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; border:1px solid #0b2b5c; background:#0b2b5c; color:#fff; cursor:pointer; min-width:220px
}
.kmcj-cform .wpcf7 textarea.short{ height:90px; min-height:90px; max-height:180px; resize:vertical }
.kmcj-cform .wpcf7-not-valid-tip{ font-size:.9rem; color:#dc2626; margin-top:6px }
.kmcj-cform .wpcf7 form.invalid .wpcf7-response-output{ border-color:#dc2626 }

/* =======================================================
   Widget : VALEURS – bulles interactives (kmcj-vb)
======================================================= */
.kmcj-vb{ max-width:1200px; margin:0 auto; padding:36px 20px }
.kmcj-vb__title{ margin:0 0 14px; font-weight:800; font-size:clamp(20px,2.2vw,28px) }
.kmcj-vb__grid{ display:grid; gap:16px; grid-template-columns:repeat(3,1fr) }
.kmcj-vb__bubble{ position:relative; border:2px solid #0b2b5c; border-radius:16px; min-height:120px; padding:18px; background:#fff; cursor:pointer; overflow:hidden }
.kmcj-vb__front{ font-weight:800; color:#0b2b5c }
.kmcj-vb__back{
  position:absolute; inset:0; padding:18px; display:flex; align-items:center; justify-content:center;
  text-align:center; line-height:1.7; background:rgba(11,43,92,.96); color:#fff; opacity:0; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease
}
.kmcj-vb__bubble:hover .kmcj-vb__back, .kmcj-vb__bubble.is-open .kmcj-vb__back{ opacity:1; transform:none }
@media (max-width:1000px){ .kmcj-vb__grid{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:720px){ .kmcj-vb__grid{ grid-template-columns:1fr } }

/* =======================================================
   Widget : TARIFS & DEVIS (kmcj-td)
======================================================= */
.kmcj-td{ --kmcj-accent:#0b2b5c; background:transparent; padding:36px 20px }
.kmcj-td.is-soft{ background:#f8fafc }
.kmcj-td__wrap{ max-width:1200px; margin:0 auto }
.kmcj-td__head{ margin:0 0 16px }
.kmcj-td__title{ margin:0 0 8px; font-weight:800; font-size:clamp(22px,2.6vw,32px); color:#0f172a }
.kmcj-td__intro{ color:#334155 }
.kmcj-td__grid{ display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:1000px){ .kmcj-td__grid{ grid-template-columns:1fr } }
.kmcj-td__card{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px }
.kmcj-td__sub{ font-size:20px; margin:0 0 8px; font-weight:800; color:var(--kmcj-accent) }
.kmcj-td__mini{ font-size:16px; margin:14px 0 8px; font-weight:700; color:var(--kmcj-accent) }
.kmcj-td__text p{ margin:0 0 10px; color:#334155 }
.kmcj-td__note{ color:#6b7280; font-size:14px; margin:10px 0 }
.kmcj-td__divider{ height:1px; background:#e5e7eb; margin:16px 0 }
.kmcj-td-link{ color:#2563eb; text-decoration:underline; text-underline-offset:2px }
.kmcj-td__links{ margin:8px 0 }
/* Table simple */
.kmcj-td__table{ width:100%; border-collapse:separate; border-spacing:0; border:1px solid #e5e7eb; border-radius:10px; overflow:hidden }
.kmcj-td__table th, .kmcj-td__table td{ padding:10px 12px; border-bottom:1px solid #eef2f7; text-align:left }
.kmcj-td__table thead th{ background:#f8fafc; font-weight:700; color:var(--kmcj-accent) }
.kmcj-td__table tbody tr:last-child td{ border-bottom:0 }
/* Citation L444-1 */
.kmcj-td__quote{ margin:12px 0; padding:12px; border-left:3px solid #2563eb; background:rgba(37,99,235,.06); border-radius:8px; color:#334155 }
.kmcj-td__quote footer{ margin-top:6px }
/* CTA */
.kmcj-td__cta{ margin-top:18px }
.kmcj-td__cta-inner{ background:linear-gradient(90deg,var(--kmcj-accent),#163a73); border:1px solid var(--kmcj-accent); border-radius:16px; padding:18px; color:#fff }
.kmcj-td__cta-title{ font-size:22px; margin:0 0 6px; font-weight:800 }
.kmcj-td__cta-actions{ margin-top:8px }
.kmcj-td-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; text-decoration:none; border:1px solid #fff }
.kmcj-td-btn--primary{ background:#fff; color:var(--kmcj-accent); border-color:#fff }
.kmcj-td-btn--primary:hover{ filter:brightness(.96) }
.kmcj-td__cta-alt{ margin-top:10px; color:#e6eefb }
/* Lisibilité CTA */
.kmcj-td__cta-inner .kmcj-td__text, 
.kmcj-td__cta-inner .kmcj-td__text p, 
.kmcj-td__cta-inner .kmcj-td__text li { color:#fff }
.kmcj-td__cta-inner a{ color:#fff; text-decoration:underline; text-underline-offset:2px }
.kmcj-td__cta-title{ color:#fff }
.kmcj-td__cta-inner .kmcj-td__divider{ background:rgba(255,255,255,.25) }

/* =======================================================
   KMCJ – Page Paiement (kmcj-pay)
======================================================= */
.kmcj-pay{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-pay .k-card{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:18px; box-shadow:0 8px 20px rgba(0,0,0,.06) }
.kmcj-pay .k-title{ margin:0 0 8px; font-weight:800; font-size:clamp(22px,2.6vw,32px); color:#0f172a }
.kmcj-pay .k-text{ color:#334155 }
.kmcj-pay .k-warning{ margin-top:10px; padding:10px 12px; border-left:3px solid #dc2626; background:#fef2f2; color:#7f1d1d; border-radius:8px }

.kmcj-pay .k-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:16px }
@media (max-width:1100px){ .kmcj-pay .k-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:760px){ .kmcj-pay .k-grid{ grid-template-columns:1fr } }

.kmcj-pay .k-head{ display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:center; margin:0 0 10px }
.kmcj-pay .k-head h3{ margin:0; font-weight:800; color:#0b2b5c }
.kmcj-pay .k-ico{ font-size:18px }

.kmcj-pay .k-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.kmcj-pay .k-list .k-label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#64748b }
.kmcj-pay code.iban{ display:inline-block; padding:6px 8px; background:#f8fafc; border:1px solid #e5e7eb; border-radius:8px; font-family:ui-monospace, SFMono-Regular, Menlo, monospace }

.kmcj-pay .k-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; cursor:pointer; border:1px solid transparent; background:#fff }
.kmcj-pay .k-btn--primary{ background:#0b2b5c; color:#fff; border-color:#0b2b5c }
.kmcj-pay .k-btn--ghost{ border-color:#cbd5e1; color:#0f172a }

.kmcj-pay .k-secure{ color:#475569; margin:0 0 6px }
.kmcj-pay .k-quick{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 10px }
.kmcj-pay .k-chip{
  display:inline-block; padding:6px 10px; border-radius:999px; border:1px solid #e5e7eb; background:#fff; font-weight:700
}
.kmcj-pay .k-chip:focus{ outline:2px solid #93c5fd; outline-offset:2px }

.kmcj-pay .k-login{ display:grid; gap:12px }
.kmcj-pay .k-field .k-lab{ display:block; font-weight:700; color:#0b2b5c; margin:0 0 6px }
.kmcj-pay .k-login input[type="text"],
.kmcj-pay .k-login input[type="password"]{
  width:100%; box-sizing:border-box; background:#fff; border:1px solid #cbd5e1;
  border-radius:10px; padding:10px 12px; font-size:15px; line-height:1.45
}

/* OTP à 6 cases */
.kmcj-pay .k-otp{ display:flex; gap:8px }
.kmcj-pay .k-otp input{
  width:44px; height:44px; text-align:center; font-weight:800; font-size:18px;
  border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc
}
@media (max-width:420px){ .kmcj-pay .k-otp input{ width:38px; height:38px } }

.kmcj-pay .k-actions{ margin-top:6px }
.kmcj-pay .k-note{ color:#64748b }
.kmcj-pay .small{ font-size:.95rem }
.kmcj-pay .tiny{ font-size:.85rem }

.kmcj-pay .k-help{ color:#334155 }
.kmcj-pay .k-helpbar{ margin-top:16px; text-align:center }
.kmcj-pay .k-helpbar a{ text-decoration:underline }


/* =======================================================
   KMCJ – L'Étude (kmcj-etude v2) — sans bulles
======================================================= */
.kmcj-etude.is-v2{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }

/* Ruban d'entête */
.kmcj-etude.is-v2 .k-ribbon{
  display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center;
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  border-radius:16px; padding:16px 18px; box-shadow:0 10px 24px rgba(11,43,92,.22)
}
.kmcj-etude.is-v2 .k-title{ margin:0; font-weight:900; font-size:clamp(22px,2.6vw,30px); letter-spacing:.01em }
.kmcj-etude.is-v2 .k-ribbon__right{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end }
.kmcj-etude.is-v2 .k-pill{
  display:inline-block; padding:6px 10px; border-radius:999px; font-size:12px; font-weight:800;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25)
}
.kmcj-etude.is-v2 .k-phone{ color:#fff; font-weight:900; text-decoration:none; border-bottom:1px dashed rgba(255,255,255,.6) }
.kmcj-etude.is-v2 .k-phone:hover{ filter:brightness(1.06) }
@media (max-width:720px){
  .kmcj-etude.is-v2 .k-ribbon{ grid-template-columns:1fr }
  .kmcj-etude.is-v2 .k-ribbon__right{ justify-content:flex-start }
}

/* Sections & panneaux */
.kmcj-etude.is-v2 .k-section{ display:grid; gap:16px; margin-top:16px }
.kmcj-etude.is-v2 .k-panel{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:18px;
  box-shadow:0 8px 20px rgba(0,0,0,.06)
}

/* About : split média / contenu
---------------------------------------------- */
.kmcj-etude.is-v2 .k-about{ grid-template-columns:320px 1fr } /* base */
@media (min-width:1000px){
  .kmcj-etude.is-v2 .k-about{ grid-template-columns:380px 1fr } /* + présence image */
}
@media (min-width:1200px){
  .kmcj-etude.is-v2 .k-about{ grid-template-columns:420px 1fr }
}
@media (max-width:980px){
  .kmcj-etude.is-v2 .k-about{ grid-template-columns:1fr }       /* stack */
}

/* Le panneau média ne centre plus la photo : elle prend toute la carte */
.kmcj-etude.is-v2 .k-media{ display:grid; place-items:stretch; align-items:stretch; padding:0 }

/* Photo (background) — pleine largeur + ratio propre */
.kmcj-etude.is-v2 .k-portrait{
  width:100%;
  height:auto;
  aspect-ratio:4/5;                 /* portrait élégant desktop */
  background-size:cover;
  background-position:center top;   /* recadrage vers le haut (visage) */
  border-radius:18px;
  border:1px solid #e5e7eb;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
/* Placeholder inchangé */
.kmcj-etude.is-v2 .k-portrait--placeholder{
  display:grid; place-items:center; background:#f1f5f9; color:#0b2b5c; font-weight:900; letter-spacing:.08em
}

/* Mobile — la photo respire mieux, évite l’effet “timbre” */
@media (max-width:980px){
  .kmcj-etude.is-v2 .k-portrait{ aspect-ratio:16/9; background-position:center 20% }
}
@media (max-width:520px){
  .kmcj-etude.is-v2 .k-portrait{ aspect-ratio:1/1; background-position:center 15% }
}

.kmcj-etude.is-v2 .k-h3{ margin:0 0 6px; font-weight:800; color:#0b2b5c }
.kmcj-etude.is-v2 .k-h4{ margin:0 0 6px; font-weight:800; color:#0b2b5c }
.kmcj-etude.is-v2 .k-tagline{ margin:0 0 10px; color:#334155; font-weight:700 }
.kmcj-etude.is-v2 .k-text{ color:#334155 }
.kmcj-etude.is-v2 .k-actions{ margin-top:10px }

.kmcj-etude.is-v2 .k-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; text-decoration:none; border:1px solid transparent; background:#fff; cursor:pointer }
.kmcj-etude.is-v2 .k-btn--primary{ background:#0b2b5c; color:#fff; border-color:#0b2b5c }
.kmcj-etude.is-v2 .k-btn--ghost{ border-color:#cbd5e1; color:#0f172a }

/* Compétence : panneaux
---------------------------------------------- */
.kmcj-etude.is-v2 .k-scope{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:stretch;         /* cartes = même hauteur */
}
.kmcj-etude.is-v2 .k-panel__head{ display:grid; grid-template-columns:40px 1fr; gap:10px; align-items:center; margin-bottom:6px }
.kmcj-etude.is-v2 .k-flag{ width:40px; height:40px; border-radius:10px; display:grid; place-items:center; background:#f1f5f9; border:1px solid #e5e7eb; font-size:18px }
.kmcj-etude.is-v2 .k-details{ margin-top:10px }
.kmcj-etude.is-v2 .k-details > summary{
  padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; background:#f8fafc; cursor:pointer; font-weight:700
}
.kmcj-etude.is-v2 .k-details[open] > summary{ background:#eef2ff; border-color:#c7d2fe }
.kmcj-etude.is-v2 .k-details > summary:focus{ outline:2px solid #93c5fd; outline-offset:2px }

/* Égalisation + alignement du <details> */
.kmcj-etude.is-v2 .k-scope .k-panel{
  display:flex; flex-direction:column; height:100%;
}
.kmcj-etude.is-v2 .k-scope .k-details{ margin-top:auto }

/* ---- MOBILE : 1 carte par ligne, les autres en dessous (anti-débordement) ---- */
@media (max-width:980px){
  .kmcj-etude.is-v2 .k-scope{
    grid-template-columns:1fr !important;   /* force 1 colonne */
    grid-auto-flow:row;
  }
  .kmcj-etude.is-v2 .k-scope .k-panel{
    min-width:0;            /* évite les scrolls horizontaux si contenu long */
    height:auto;            /* relâche l’égalisation en mobile */
  }
  .kmcj-etude.is-v2 .k-scope .k-details{ margin-top:10px } /* flux naturel */
}

/* Listes à coches */
.kmcj-etude.is-v2 .k-list{ margin:8px 0 0; padding:0; list-style:none }
.kmcj-etude.is-v2 .k-list--check li{ display:grid; grid-template-columns:18px 1fr; gap:10px; align-items:flex-start; margin:4px 0 }
.kmcj-etude.is-v2 .k-list--check .dot{
  width:12px; height:12px; margin-top:5px; border-radius:50%; background:#0b2b5c1a; border:2px solid #0b2b5c80
}

/* Fix décalage : le <h3> doit occuper toute la rangée */
.kmcj-etude.is-v2 .k-scope > .k-h3,
.kmcj-etude.is-v2 .k-resume > .k-h3{ grid-column:1 / -1 }

/* Résumé : 2 colonnes */
.kmcj-etude.is-v2 .k-resume{ grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:820px){ .kmcj-etude.is-v2 .k-resume{ grid-template-columns:1fr } }

/* Prestations : cartes-lien horizontales */
.kmcj-etude.is-v2 .k-services .k-linkcards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px }
@media (max-width:900px){ .kmcj-etude.is-v2 .k-services .k-linkcards{ grid-template-columns:1fr } }
.kmcj-etude.is-v2 .k-linkcard{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 14px; border-radius:12px; border:1px solid #e5e7eb; background:#fff;
  text-decoration:none; color:#0f172a; font-weight:700; transition:transform .05s ease, box-shadow .15s ease, border-color .15s
}
.kmcj-etude.is-v2 .k-linkcard:hover{
  transform:translateY(-1px); box-shadow:0 8px 18px rgba(11,43,92,.10); border-color:#cbd5e1
}
.kmcj-etude.is-v2 .k-linkcard .chev{ font-weight:900; color:#0b2b5c }

/* CTA & Mentions */
.kmcj-etude.is-v2 .k-cta{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:16px 0 6px }
.kmcj-etude.is-v2 .k-link{ text-decoration:underline }
.kmcj-etude.is-v2 .k-legal{ margin-top:12px; color:#334155 }
.kmcj-etude.is-v2 .k-legal a{ text-decoration:underline }

/* =======================================================
   KMCJ – Différents types de constats (kmcj-ct)
======================================================= */
.kmcj-ct{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-ct .k-title{ margin:0 0 8px; font-weight:800; font-size:clamp(22px,2.6vw,32px); color:#0f172a }
.kmcj-ct .k-intro{ color:#334155; margin:0 0 12px }

.kmcj-ct .k-anchorbar{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 16px }
.kmcj-ct .k-chip{
  display:inline-block; padding:8px 12px; border-radius:999px; border:1px solid #e5e7eb;
  background:#fff; text-decoration:none; color:#0f172a; font-weight:700; transition:.15s
}
.kmcj-ct .k-chip:hover{ background:#f8fafc }

/* Grille */
.kmcj-ct .k-grid{ display:grid; gap:16px }
.kmcj-ct .k-grid.k-cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)) }
.kmcj-ct .k-grid.k-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:1000px){ .kmcj-ct .k-grid.k-cols-3{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:680px){ .kmcj-ct .k-grid{ grid-template-columns:1fr } }

/* Carte */
.kmcj-ct .k-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:0;
  box-shadow:0 10px 22px rgba(0,0,0,.06); overflow:hidden; display:flex; flex-direction:column
}
.kmcj-ct .k-media{ width:100%; padding-top:56.25%; background:#f1f5f9 center/cover no-repeat }
.kmcj-ct .k-head{ padding:14px 16px 6px }
.kmcj-ct .k-h3{ margin:0 0 4px; font-weight:800; color:#0b2b5c; font-size:clamp(18px,2.2vw,22px) }
.kmcj-ct .k-sub{ margin:0 0 6px; color:#64748b; font-weight:700 }

/* Liste (sous-catégories) */
.kmcj-ct .k-list{ list-style:none; padding:0 16px 12px; margin:0; display:grid; gap:6px }
.kmcj-ct .k-list li{ display:grid; grid-template-columns:16px 1fr; gap:8px; align-items:flex-start }
.kmcj-ct .k-list .dot{ width:10px; height:10px; margin-top:6px; border-radius:50%; background:#0b2b5c1a; border:2px solid #0b2b5c80 }
.kmcj-ct .k-list .txt{ color:#0f172a }

.kmcj-ct .k-empty{ opacity:.7; text-align:center }

/* Accessibilité focus */
.kmcj-ct a:focus{ outline:2px solid #93c5fd; outline-offset:2px }

/* KMCJ – Constats (aligner les boutons en bas des cartes) */
.kmcj-ct .k-grid{ align-items:stretch; }              /* les cartes ont la même hauteur */
.kmcj-ct .k-card{ display:flex; flex-direction:column; height:100%; }
.kmcj-ct .k-list{ flex:1 1 auto; margin-bottom:0; }   /* le contenu prend la place restante */
.kmcj-ct .k-foot{ margin-top:auto; padding:12px 16px; border-top:1px solid #e5e7eb; }
.kmcj-ct .k-foot .k-btn{ display:inline-block; text-align:center; }


/* =======================================================
   KMCJ – Contentieux locatif (kmcj-cl) — v2.1
   - Variables de thème
   - Hero lisible (titre/sous-titre forcés en blanc)
   - Grille & cartes cohérentes
   - Listes & CTA soignées
   - Focus/accessibilité
======================================================= */
.kmcj-cl{
  /* Tokens */
  --kmcj-accent:#0b2b5c;
  --kmcj-accent-2:#163a73;
  --kmcj-ink:#0f172a;
  --kmcj-muted:#334155;
  --kmcj-border:#e5e7eb;
  --kmcj-soft:#f8fafc;
  --ring:#93c5fd;

  max-width:1200px;
  margin:0 auto;
  padding:32px 20px 48px;
}

/* Titres & textes */
.kmcj-cl .k-title{
  margin:0 0 8px;
  font-weight:800;
  font-size:clamp(22px,2.6vw,32px);
  color:var(--kmcj-ink);
}
.kmcj-cl .k-sub{ margin:0; color:var(--kmcj-muted) }

/* ----------------------------------------------
   HERO
---------------------------------------------- */
.kmcj-cl .k-hero{
  position:relative; overflow:hidden; isolation:isolate;
  border-radius:18px;
  background:linear-gradient(90deg,var(--kmcj-accent),var(--kmcj-accent-2));
  color:#fff; margin:0 0 14px;
  box-shadow:0 14px 34px rgba(11,43,92,.22);
}

/* Image de fond optionnelle */
.kmcj-cl .k-hero::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:.22;
  background-image:var(--hero-bg, none);
  background-size:cover; background-position:center;
  filter:saturate(1) contrast(1.05);
}
/* Légère overlay pour la lecture */
.kmcj-cl .k-hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(0,0,0,.10), rgba(0,0,0,.22));
}

.kmcj-cl .k-hero__inner{ position:relative; z-index:1; padding:26px 20px }

/* Titre/sous-titre en blanc quoi qu’il arrive (thème Elementor, etc.) */
.kmcj-cl .k-hero .k-title,
.kmcj-cl .k-hero__title,
.kmcj-cl .k-hero .elementor-heading-title{ color:#fff !important }
.kmcj-cl .k-hero .k-sub,
.kmcj-cl .k-hero__subtitle{ color:#e6eefb !important }

/* Chips dans le hero */
.kmcj-cl .k-hero__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.kmcj-cl .k-chip{
  display:inline-block; padding:6px 10px; border-radius:999px; font-weight:800;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
  color:#fff; text-decoration:none; transition:background .15s ease, border-color .15s ease
}
.kmcj-cl .k-chip:hover{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.5) }
.kmcj-cl .k-chip--ghost{ background:transparent }

/* ----------------------------------------------
   GRID & CARTES
---------------------------------------------- */
.kmcj-cl .k-grid{ display:grid; gap:16px; margin-top:16px }
.kmcj-cl .k-grid.k-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:960px){
  .kmcj-cl .k-grid.k-cols-2{ grid-template-columns:1fr }
}

.kmcj-cl .k-card{
  background:#fff; border:1px solid var(--kmcj-border);
  border-radius:16px; padding:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06)
}

/* Carte média (image en haut) */
.kmcj-cl .k-media-card{ padding:0; overflow:hidden; display:flex; flex-direction:column }
.kmcj-cl .k-media{
  width:100%; background:#f1f5f9 center/cover no-repeat;
  aspect-ratio:16/9;
}
@supports not (aspect-ratio: 16/9){
  .kmcj-cl .k-media{ padding-top:56.25% }
}
.kmcj-cl .k-body{ padding:14px 16px }

/* Titres internes & texte */
.kmcj-cl .k-h3{
  margin:0 0 6px; font-weight:800;
  color:var(--kmcj-accent); font-size:clamp(18px,2.2vw,22px)
}
.kmcj-cl .k-h4{ margin:8px 0 4px; font-weight:800; color:var(--kmcj-accent) }
.kmcj-cl .k-text{ color:var(--kmcj-muted) }

/* Encadré note */
.kmcj-cl .k-note{
  margin-top:8px; padding:10px 12px; border-left:3px solid var(--kmcj-accent);
  background:var(--kmcj-soft); border-radius:10px
}

/* ----------------------------------------------
   SPLIT interne (Habitation / Commercial)
---------------------------------------------- */
.kmcj-cl .k-split{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px; margin-top:8px
}
@media (max-width:820px){ .kmcj-cl .k-split{ grid-template-columns:1fr } }

/* ----------------------------------------------
   LISTES
---------------------------------------------- */
.kmcj-cl .k-list{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px }
.kmcj-cl .k-list--dot li{
  display:grid; grid-template-columns:14px 1fr; gap:8px; align-items:flex-start
}
.kmcj-cl .k-list--dot .dot{
  width:10px; height:10px; margin-top:7px; border-radius:50%;
  background:color-mix(in srgb, var(--kmcj-accent) 10%, transparent);
  border:2px solid color-mix(in srgb, var(--kmcj-accent) 50%, transparent);
}
.kmcj-cl .k-list--step li{
  display:grid; grid-template-columns:16px 1fr; gap:10px; align-items:flex-start
}
.kmcj-cl .k-list .txt{ color:var(--kmcj-ink) }

/* ----------------------------------------------
   CTA
---------------------------------------------- */
.kmcj-cl .k-cta__inner{
  background:linear-gradient(90deg,var(--kmcj-accent),var(--kmcj-accent-2));
  color:#fff; border:1px solid var(--kmcj-accent);
  border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:10px; height:100%
}
.kmcj-cl .k-cta__title{ margin:0; font-weight:900; font-size:clamp(18px,2.1vw,22px); color:#fff }
.kmcj-cl .k-cta__text{ margin:0; opacity:.95 }
.kmcj-cl .k-cta__note{ margin:0; font-size:13px; opacity:.9 }

/* Bouton */
.kmcj-cl .k-btn{
  display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800;
  border:1px solid #fff; background:#fff; color:var(--kmcj-accent);
  text-decoration:none; transition:transform .06s ease, box-shadow .18s ease, filter .12s ease
}
.kmcj-cl .k-btn:hover{
  filter:brightness(.98);
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(11,43,92,.18)
}

/* ----------------------------------------------
   Accessibilité / Focus
---------------------------------------------- */
.kmcj-cl a:focus, .kmcj-cl button:focus, .kmcj-cl [tabindex]:focus{
  outline:2px solid var(--ring); outline-offset:2px
}

/* =======================================================
   KMCJ – Contentieux copropriété (kmcj-cc)
======================================================= */
.kmcj-cc{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-cc a:focus, .kmcj-cc button:focus, .kmcj-cc [tabindex]:focus{ outline:2px solid #93c5fd; outline-offset:2px }

/* Hero */
.kmcj-cc .k-hero{
  position:relative; overflow:hidden; border-radius:18px;
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  box-shadow:0 14px 34px rgba(11,43,92,.22); margin:0 0 14px; isolation:isolate
}
.kmcj-cc .k-hero::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:.18;
  background-image:var(--hero-bg, none); background-size:cover; background-position:center
}
.kmcj-cc .k-hero__inner{ position:relative; z-index:1; padding:22px 18px }
.kmcj-cc .k-title{ margin:0 0 6px; font-weight:900; font-size:clamp(22px,2.6vw,32px); color:#fff }
.kmcj-cc .k-subtitle{ margin:0; color:#e6eefb }
.kmcj-cc .k-hero__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.kmcj-cc .k-chip{
  display:inline-block; padding:6px 10px; border-radius:999px; font-weight:800;
  border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); color:#fff; text-decoration:none
}
.kmcj-cc .k-chip:hover{ background:rgba(255,255,255,.20) }

/* Grid */
.kmcj-cc .k-grid{ display:grid; gap:16px; margin-top:16px }
.kmcj-cc .k-grid.k-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)) }
.kmcj-cc .k-grid.k-cols-1{ grid-template-columns:1fr }
@media (max-width:960px){ .kmcj-cc .k-grid.k-cols-2{ grid-template-columns:1fr } }

/* Cards */
.kmcj-cc .k-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06)
}
.kmcj-cc .k-media-card{ padding:0; overflow:hidden; display:flex; flex-direction:column }
.kmcj-cc .k-media{ width:100%; padding-top:48%; background:#f1f5f9 center/cover no-repeat }
.kmcj-cc .k-body{ padding:14px 16px }

/* Typo */
.kmcj-cc .k-h3{ margin:0 0 6px; font-weight:800; color:#0b2b5c; font-size:clamp(18px,2.2vw,22px) }
.kmcj-cc .k-text{ color:#334155 }
.kmcj-cc .k-note{ margin-top:8px; padding:10px 12px; border-left:3px solid #0b2b5c; background:#f8fafc; border-radius:10px }

/* Lists */
.kmcj-cc .k-list{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px }
.kmcj-cc .k-list--dot li{ display:grid; grid-template-columns:14px 1fr; gap:8px; align-items:flex-start }
.kmcj-cc .k-list--dot .dot{ width:10px; height:10px; margin-top:7px; border-radius:50%; background:#0b2b5c1a; border:2px solid #0b2b5c80 }
.kmcj-cc .k-list .txt{ color:#0f172a }

/* CTA */
.kmcj-cc .k-cta{ padding:0 }
.kmcj-cc .k-cta__inner{
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  border:1px solid #0b2b5c; border-radius:16px; padding:18px;
  display:flex; flex-direction:column; gap:10px; height:100%
}
.kmcj-cc .k-cta__title{ margin:0; font-weight:900; font-size:clamp(18px,2.1vw,22px); color:#fff }
.kmcj-cc .k-cta__text{ margin:0; opacity:.95 }
.kmcj-cc .k-cta__note{ margin:0; font-size:13px; opacity:.95 }
.kmcj-cc .k-cta__link{ color:#fff; text-decoration:underline; text-underline-offset:2px }
.kmcj-cc .k-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; border:1px solid #fff; color:#0b2b5c; background:#fff; text-decoration:none }
.kmcj-cc .k-btn:hover{ filter:brightness(.96) }

/* =======================================================
   KMCJ – Signification des actes (kmcj-sig)
======================================================= */
.kmcj-sig{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-sig a:focus, .kmcj-sig button:focus, .kmcj-sig [tabindex]:focus{ outline:2px solid #93c5fd; outline-offset:2px }

/* Hero */
.kmcj-sig .k-hero{
  position:relative; overflow:hidden; border-radius:18px;
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  box-shadow:0 14px 34px rgba(11,43,92,.22); margin:0 0 14px; isolation:isolate
}
.kmcj-sig .k-hero::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:.18;
  background-image:var(--hero-bg, none); background-size:cover; background-position:center
}
.kmcj-sig .k-hero__inner{ position:relative; z-index:1; padding:22px 18px }
.kmcj-sig .k-title{ margin:0 0 6px; font-weight:900; font-size:clamp(22px,2.6vw,32px); color:#fff }
.kmcj-sig .k-subtitle{ margin:0; color:#e6eefb }
.kmcj-sig .k-hero__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.kmcj-sig .k-chip{
  display:inline-block; padding:6px 10px; border-radius:999px; font-weight:800;
  border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); color:#fff; text-decoration:none
}
.kmcj-sig .k-chip:hover{ background:rgba(255,255,255,.20) }

/* Grid */
.kmcj-sig .k-grid{ display:grid; gap:16px; margin-top:16px }
.kmcj-sig .k-grid.k-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)) }
.kmcj-sig .k-grid.k-cols-1{ grid-template-columns:1fr }
@media (max-width:960px){ .kmcj-sig .k-grid.k-cols-2{ grid-template-columns:1fr } }

/* Cards */
.kmcj-sig .k-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06)
}
.kmcj-sig .k-media-card{ padding:0; overflow:hidden; display:flex; flex-direction:column }
.kmcj-sig .k-media{ width:100%; padding-top:48%; background:#f1f5f9 center/cover no-repeat }
.kmcj-sig .k-body{ padding:14px 16px }

/* Typo & notes */
.kmcj-sig .k-h3{ margin:0 0 6px; font-weight:800; color:#0b2b5c; font-size:clamp(18px,2.2vw,22px) }
.kmcj-sig .k-text{ color:#334155 }
.kmcj-sig .k-note{ margin-top:8px; padding:10px 12px; border-left:3px solid #0b2b5c; background:#f8fafc; border-radius:10px }

/* Lists */
.kmcj-sig .k-list{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px }
.kmcj-sig .k-list--dot li{ display:grid; grid-template-columns:14px 1fr; gap:8px; align-items:flex-start }
.kmcj-sig .k-list--dot .dot{ width:10px; height:10px; margin-top:7px; border-radius:50%; background:#0b2b5c1a; border:2px solid #0b2b5c80 }
.kmcj-sig .k-list .txt{ color:#0f172a }

/* CTA */
.kmcj-sig .k-cta{ padding:0 }
.kmcj-sig .k-cta__inner{
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  border:1px solid #0b2b5c; border-radius:16px; padding:18px;
  display:flex; flex-direction:column; gap:10px; height:100%
}
.kmcj-sig .k-cta__title{ margin:0; font-weight:900; font-size:clamp(18px,2.1vw,22px); color:#fff }
.kmcj-sig .k-cta__text{ margin:0; opacity:.95 }
.kmcj-sig .k-cta__note{ margin:0; font-size:13px; opacity:.95 }
.kmcj-sig .k-cta__link{ color:#fff; text-decoration:underline; text-underline-offset:2px }
.kmcj-sig .k-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; border:1px solid #fff; color:#0b2b5c; background:#fff; text-decoration:none }
.kmcj-sig .k-btn:hover{ filter:brightness(.96) }

/* =======================================================
   KMCJ – Recouvrement & Exécution (kmcj-rex)
======================================================= */
.kmcj-rex{ max-width:1200px; margin:0 auto; padding:32px 20px 48px }
.kmcj-rex a:focus, .kmcj-rex button:focus, .kmcj-rex [tabindex]:focus{ outline:2px solid #93c5fd; outline-offset:2px }

/* Hero */
.kmcj-rex .k-hero{
  position:relative; overflow:hidden; border-radius:18px;
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  box-shadow:0 14px 34px rgba(11,43,92,.22); margin:0 0 14px; isolation:isolate
}
.kmcj-rex .k-hero::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:.18;
  background-image:var(--hero-bg, none); background-size:cover; background-position:center
}
.kmcj-rex .k-hero__inner{ position:relative; z-index:1; padding:22px 18px }
.kmcj-rex .k-title{ margin:0 0 6px; font-weight:900; font-size:clamp(22px,2.6vw,32px); color:#fff }
.kmcj-rex .k-subtitle{ margin:0; color:#e6eefb }
.kmcj-rex .k-hero__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.kmcj-rex .k-chip{
  display:inline-block; padding:6px 10px; border-radius:999px; font-weight:800;
  border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); color:#fff; text-decoration:none
}
.kmcj-rex .k-chip:hover{ background:rgba(255,255,255,.20) }

/* Grid */
.kmcj-rex .k-grid{ display:grid; gap:16px; margin-top:16px }
.kmcj-rex .k-grid.k-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)) }
.kmcj-rex .k-grid.k-cols-1{ grid-template-columns:1fr }
@media (max-width:960px){ .kmcj-rex .k-grid.k-cols-2{ grid-template-columns:1fr } }

/* Cards */
.kmcj-rex .k-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06)
}
.kmcj-rex .k-media-card{ padding:0; overflow:hidden; display:flex; flex-direction:column }
.kmcj-rex .k-media{ width:100%; padding-top:48%; background:#f1f5f9 center/cover no-repeat }
.kmcj-rex .k-body{ padding:14px 16px }

/* Typo & notes */
.kmcj-rex .k-h3{ margin:0 0 6px; font-weight:800; color:#0b2b5c; font-size:clamp(18px,2.2vw,22px) }
.kmcj-rex .k-text{ color:#334155 }
.kmcj-rex .k-note{ margin-top:8px; padding:10px 12px; border-left:3px solid #0b2b5c; background:#f8fafc; border-radius:10px }

/* Lists */
.kmcj-rex .k-list{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px }
.kmcj-rex .k-list--dot li{ display:grid; grid-template-columns:14px 1fr; gap:8px; align-items:flex-start }
.kmcj-rex .k-list--dot .dot{ width:10px; height:10px; margin-top:7px; border-radius:50%; background:#0b2b5c1a; border:2px solid #0b2b5c80 }
.kmcj-rex .k-list .txt{ color:#0f172a }

/* CTA */
.kmcj-rex .k-cta{ padding:0 }
.kmcj-rex .k-cta__inner{
  background:linear-gradient(90deg,#0b2b5c,#163a73); color:#fff;
  border:1px solid #0b2b5c; border-radius:16px; padding:18px;
  display:flex; flex-direction:column; gap:10px; height:100%
}
.kmcj-rex .k-cta__title{ margin:0; font-weight:900; font-size:clamp(18px,2.1vw,22px); color:#fff }
.kmcj-rex .k-cta__text{ margin:0; opacity:.95 }
.kmcj-rex .k-cta__note{ margin:0; font-size:13px; opacity:.95 }
.kmcj-rex .k-cta__link{ color:#fff; text-decoration:underline; text-underline-offset:2px }
.kmcj-rex .k-btn{ display:inline-block; padding:10px 14px; border-radius:10px; font-weight:800; border:1px solid #fff; color:#0b2b5c; background:#fff; text-decoration:none }
.kmcj-rex .k-btn:hover{ filter:brightness(.96) }




/* =======================================================
   Responsive Enhancements — 2025‑09‑09
   Mobile‑first layout, fluid typography, and small‑screen UX
   ------------------------------------------------------- */
:root{
  --kmcj-container: 1200px;
  --kmcj-gutter: 20px;
}

/* Global reset improvements */
.kmcj *,
.k-*,
.kmcj-hero,
.k-card,
.k-grid { box-sizing: border-box; }
.kmcj img, .k-hero img, .k-card img, .kmcj-td__card img { max-width:100%; height:auto; display:block; }

/* Container helper (applied to main wrappers in widgets) */
.k-container, .kmcj-hero__inner, .kmcj-td__wrap, .k-body, .k-form-card, .k-hero__content{
  margin-inline:auto;
  padding-inline: var(--kmcj-gutter);
  max-width: min(100%, var(--kmcj-container));
}

/* Fluid type for big titles */
.kmcj-hero__title{ font-size: clamp(1.8rem, 5vw, 3.5rem); line-height:1.05; }
.k-hero__sub, .k-intro h3, .kmcj-td__title, .kmcj-td__sub { font-size: clamp(1.125rem, 2.5vw, 1.5rem); }

/* Buttons wrap nicely on mobile */
.kmcj-hero__actions, .k-actions, .kmcj-td__cta-actions{
  display:flex; flex-wrap:wrap; gap:12px;
}
.kmcj-hero__actions .kmcj-btn,
.k-actions .k-btn,
.kmcj-td__cta-actions .k-btn{
  flex:1 1 240px; /* full width on very small screens, auto side by side when space allows */
  text-align:center;
}

/* Generic grid system */
.k-grid { display:grid; gap: var(--kmcj-gutter); grid-template-columns: 1fr; }
.k-grid.k-cols-2{ grid-template-columns: 1fr; }
.k-grid.k-cols-3{ grid-template-columns: 1fr; }

/* Tarifs & Devis grid */
.kmcj-td__grid{ display:grid; gap: 18px; grid-template-columns: 1fr; }

/* Cards spacing on small screens */
.k-card{ padding: clamp(14px, 3vw, 22px); border-radius: 14px; }

/* Tables: prevent overflow and keep readability */
.kmcj-td__table, .k-table, .kmcj-td__card table{
  width:100%;
  overflow-x:auto;
  display:block;
  -webkit-overflow-scrolling: touch;
}
.kmcj-td__table table{ width:100%; min-width:600px; }

/* Accordion headings: larger tap targets */
.k-req-acc .k-acc-head{ padding-block:14px; }

/* Anchor bars / chips: scroll on small screens */
.k-anchorbar, .k-hero__chips {
  display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity;
}
.k-anchorbar > *, .k-hero__chips > * { scroll-snap-align:start; }

/* CF7 form: stack fields on mobile */
.k-form-card .k-grid, .k-form .k-grid { grid-template-columns: 1fr; }
.k-form-card .k-inline, .k-form .k-inline { display:flex; flex-wrap:wrap; gap:10px; }
.k-form-card .k-inline > *{ flex:1 1 240px; }

/* Hero full-bleed fixes */
.kmcj-hero.kmcj-hero--fullbleed{ left:50%; transform:translateX(-50%); width:100vw; max-width:100vw; }

/* ---------- Breakpoints ---------- */
@media (min-width: 640px){
  .k-grid.k-cols-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .kmcj-td__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (min-width: 900px){
  .k-grid.k-cols-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (min-width: 1024px){
  .kmcj-hero__title{ font-size: clamp(2.4rem, 4.2vw, 4rem); }
  .kmcj-hero__actions .kmcj-btn,
  .k-actions .k-btn{ flex:0 0 auto; }
}

/* Footer notes & quotes wrap */
.kmcj-td__note, .kmcj-td__quote{ word-break: normal; overflow-wrap: anywhere; }

/* CONTACT (seulement) — responsive mobile
   Empile le formulaire en 1 colonne et évite les débordements.
   N'impacte PAS le widget Constat 24/7 (scope avec :not(.kmcj-constat)) */
@media (max-width:980px){
  /* Grilles/colonnes génériques -> 1 colonne */
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .row,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .rows,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .columns,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .cols,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .grid{
    display:grid !important;
    grid-template-columns: 1fr !important;
    gap:14px !important;
  }
  /* Cols half/50% -> auto */
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .column,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .col,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .col-6,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 form .col--half{
    width:100% !important;
  }

  /* Champs = pleine largeur */
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form p,
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form div{ max-width:100% }
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form input,
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form select,
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form textarea{
    width:100% !important;
  }

  /* Radios/checkbox : wrap propre */
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form .wpcf7-list-item{
    display:flex; flex:1 1 100%; margin:6px 12px 6px 0;
  }

  /* Tables CF7 éventuelles -> bloc fluide */
  .kmcj-contact:not(.kmcj-constat) .wpcf7 table{
    display:block; width:100%; overflow-x:auto; border-collapse:separate;
  }
  .kmcj-contact:not(.kmcj-constat) .wpcf7 table tr,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 table th,
  .kmcj-contact:not(.kmcj-constat) .wpcf7 table td{
    display:block; width:100%;
    white-space:normal;
  }

  /* Bouton envoyer = plein largeur */
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form input[type="submit"],
  .kmcj-contact:not(.kmcj-constat) .wpcf7-form button[type="submit"]{
    width:100%;
  }
}
/* CONTACT — responsive mobile (seulement cette section) */
@media (max-width: 980px){
  /* Force la grille des sections CF7 en 1 colonne */
  #kmcj-contact-5a080b5-form .cf7-modern .grid{
    display:grid !important;
    grid-template-columns: 1fr !important;
    gap:14px !important;
  }

  /* Les colonnes 50% deviennent pleine largeur */
  #kmcj-contact-5a080b5-form .cf7-modern .col-6,
  #kmcj-contact-5a080b5-form .cf7-modern .col-12{
    width:100% !important;
    grid-column: 1 / -1 !important;
  }

  /* Champs = 100% */
  #kmcj-contact-5a080b5-form .cf7-modern input,
  #kmcj-contact-5a080b5-form .cf7-modern select,
  #kmcj-contact-5a080b5-form .cf7-modern textarea{
    width:100% !important;
  }

  /* Radios/checkbox enroulés proprement */
  #kmcj-contact-5a080b5-form .cf7-modern .seg{ flex-wrap:wrap }
  #kmcj-contact-5a080b5-form .cf7-modern .wpcf7-list-item{ margin:6px 12px 6px 0 }

  /* Bouton envoyer en pleine largeur */
  #kmcj-contact-5a080b5-form .cf7-modern .actions [type="submit"]{
    width:100% !important;
  }

  /* Sécurité anti-débordement si table/ultra-large inside */
  #kmcj-contact-5a080b5-form .cf7-modern .section{ overflow:hidden }
}

/* CONTACT page — stack 1 colonne en mobile, coûte que coûte */
@media (max-width:980px){
  /* neutralise toute grille/flex éventuelle */
  #kmcj-contact-5a080b5-form .k-form-card .cf7-modern .grid{
    display:block !important;
    margin:0 !important;
  }

  /* chaque colonne = pleine largeur */
  #kmcj-contact-5a080b5-form .k-form-card .cf7-modern .grid > [class^="col-"],
  #kmcj-contact-5a080b5-form .k-form-card .cf7-modern .grid > [class*=" col-"]{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 100% !important;   /* casse le flex 50% */
    float:none !important;      /* casse d’éventuels floats */
    grid-column:1 / -1 !important;
    display:block !important;
  }

  /* champs & listes */
  #kmcj-contact-5a080b5-form .cf7-modern input,
  #kmcj-contact-5a080b5-form .cf7-modern select,
  #kmcj-contact-5a080b5-form .cf7-modern textarea{
    width:100% !important;
  }
  #kmcj-contact-5a080b5-form .cf7-modern .seg{ flex-wrap:wrap !important; }
  #kmcj-contact-5a080b5-form .cf7-modern .wpcf7-list-item{ margin:6px 12px 6px 0 !important; }

  /* bouton = pleine largeur */
  #kmcj-contact-5a080b5-form .cf7-modern .actions [type="submit"]{
    width:100% !important;
  }
}

