/*
 * consult.africa : composants du design system (refonte 2026).
 * Tous les blocs générés par php/refonte.php sont dans un conteneur .ca ;
 * les règles sont préfixées par .ca pour passer devant les styles globaux du kit Elementor.
 */

:root {
  --ca-font: "Schibsted Grotesk", "Segoe UI", system-ui, sans-serif;

  --ca-encre: #16224A;
  --ca-mil: #F2B33D;
  --ca-nuage: #EEF1F6;
  --ca-surface: #F6F7FA;
  --ca-raised: #FFFFFF;
  --ca-sunken: #EEF1F6;
  --ca-line: #DCE1EA;
  --ca-line-strong: #7D879F;
  --ca-ink: #16224A;
  --ca-ink-muted: #535D78;
  --ca-action: #16224A;
  --ca-action-hover: #2A3A70;
  --ca-on-action: #FFFFFF;
  --ca-link: #2347A8;
  --ca-focus: #2347A8;
  --ca-mil-soft: #FDF1D3;
  --ca-success: #1D7A4C;
  --ca-success-soft: #E2F3EA;
  --ca-warning: #9A5800;
  --ca-warning-soft: #FFF0D6;
  --ca-danger: #B42318;
  --ca-danger-soft: #FDE8E6;

  --ca-band: #16224A;
  --ca-on-band: #FFFFFF;
  --ca-on-band-soft: #EEF1F6;
  --ca-on-band-muted: #AAB3C9;
  --ca-band-line: #6E7A9C;
  --ca-band-hover: #2A3A70;

  --ca-space-1: 4px;
  --ca-space-2: 8px;
  --ca-space-3: 12px;
  --ca-space-4: 16px;
  --ca-space-5: 24px;
  --ca-space-6: 32px;
  --ca-space-7: 48px;
  --ca-space-8: 64px;
  --ca-space-9: 96px;

  --ca-radius-sm: 6px;
  --ca-radius-md: 8px;
  --ca-radius-lg: 14px;
  --ca-radius-full: 9999px;

  --ca-shadow-sm: 0 1px 2px #16224A14;
  --ca-shadow-md: 0 2px 4px #16224A0F, 0 12px 32px -8px #16224A29;
  --ca-focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px #2347A8;

  --ca-control-sm: 36px;
  --ca-control-md: 44px;
  --ca-control-lg: 52px;
  --ca-container: 1200px;
  --ca-measure: 68ch;
}

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ------------------------------------------------------------------ */
/* Base du conteneur                                                   */
/* ------------------------------------------------------------------ */

.ca { font-family: var(--ca-font); color: var(--ca-ink); font-size: 16px; line-height: 24px; }
.ca *, .ca *::before, .ca *::after { box-sizing: border-box; }
.ca p { margin: 0; }
.ca ul, .ca ol { margin: 0; padding: 0; list-style: none; }
.ca h2, .ca h3, .ca h4 { margin: 0; font-family: var(--ca-font); color: var(--ca-ink); text-transform: none; }
.ca a { color: var(--ca-link); }
.ca a:focus-visible, .ca button:focus-visible, .ca input:focus-visible, .ca select:focus-visible { outline: 2px solid transparent; box-shadow: var(--ca-focus-ring); }
.ca .ca-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ca .ca-icon { display: inline-block; flex: none; vertical-align: middle; }
.ca .ca-link { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; border-radius: 2px; }
.ca .ca-link:hover { color: var(--ca-ink); }
.ca .ca-num { font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ */
/* Boutons                                                             */
/* ------------------------------------------------------------------ */

.ca .ca-btn, .ca button.ca-btn {
  font-family: var(--ca-font); font-size: 16px; line-height: 20px; font-weight: 600; letter-spacing: 0; text-transform: none;
  height: var(--ca-control-md); padding: 0 var(--ca-space-5); margin: 0; border-radius: var(--ca-radius-md); border: 1px solid transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--ca-space-2);
  cursor: pointer; text-decoration: none; white-space: nowrap; box-shadow: none;
  transition: background-color .15s ease, border-color .15s ease;
}
.ca .ca-btn-sm, .ca button.ca-btn-sm { height: var(--ca-control-sm); padding: 0 var(--ca-space-4); font-size: 14px; }
.ca .ca-btn-block { width: 100%; }
.ca .ca-btn-primary, .ca button.ca-btn-primary, .ca .ca-btn-primary:focus, .ca button.ca-btn-primary:focus { background: var(--ca-action); border-color: var(--ca-action); color: var(--ca-on-action); }
.ca .ca-btn-primary:hover, .ca button.ca-btn-primary:hover { background: var(--ca-action-hover); border-color: var(--ca-action-hover); color: var(--ca-on-action); }
.ca .ca-btn-secondary, .ca button.ca-btn-secondary, .ca .ca-btn-secondary:focus { background: var(--ca-raised); color: var(--ca-ink); border-color: var(--ca-line-strong); }
.ca .ca-btn-secondary:hover, .ca button.ca-btn-secondary:hover { background: var(--ca-sunken); color: var(--ca-ink); border-color: var(--ca-line-strong); }
.ca .ca-btn-ghost, .ca .ca-btn-ghost:focus { background: transparent; color: var(--ca-ink); border-color: transparent; }
.ca .ca-btn-ghost:hover { background: var(--ca-sunken); color: var(--ca-ink); }

/* Boutons Elementor : variantes posées par classe CSS sur le widget Bouton */
.elementor-widget.ca-el-secondary .elementor-button, .elementor-widget.ca-el-secondary .elementor-button:focus { background: var(--ca-raised); color: var(--ca-ink); border-color: var(--ca-line-strong); }
.elementor-widget.ca-el-secondary .elementor-button:hover { background: var(--ca-sunken); color: var(--ca-ink); border-color: var(--ca-line-strong); }
.elementor-widget.ca-el-ghost .elementor-button, .elementor-widget.ca-el-ghost .elementor-button:focus { background: transparent; color: var(--ca-ink); border-color: transparent; }
.elementor-widget.ca-el-ghost .elementor-button:hover { background: var(--ca-sunken); color: var(--ca-ink); border-color: transparent; }
.elementor-widget.ca-el-on-band .elementor-button, .elementor-widget.ca-el-on-band .elementor-button:focus { background: var(--ca-mil); color: var(--ca-encre); border-color: var(--ca-mil); }
.elementor-widget.ca-el-on-band .elementor-button:hover { background: #F7C766; color: var(--ca-encre); border-color: #F7C766; }
.elementor-widget-button .elementor-button { min-height: var(--ca-control-md); display: inline-flex; align-items: center; justify-content: center; }
.elementor-widget-button .elementor-button:focus-visible { outline: 2px solid transparent; box-shadow: var(--ca-focus-ring); }

/* ------------------------------------------------------------------ */
/* Badges, étiquettes, puces                                           */
/* ------------------------------------------------------------------ */

.ca .ca-badge { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px 0 8px; border-radius: var(--ca-radius-full); font-size: 13px; line-height: 16px; font-weight: 600; white-space: nowrap; }
.ca .ca-badge-dot { width: 8px; height: 8px; border-radius: var(--ca-radius-full); background: currentColor; flex: none; }
.ca .ca-badge-open { background: var(--ca-success-soft); color: var(--ca-success); }
.ca .ca-badge-closing { background: var(--ca-warning-soft); color: var(--ca-warning); }
.ca .ca-badge-closed { background: var(--ca-sunken); color: var(--ca-ink-muted); }
.ca .ca-badge-new { background: var(--ca-mil-soft); color: var(--ca-ink); }
.ca .ca-badge-new .ca-badge-dot { background: var(--ca-mil); }

.ca .ca-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ca .ca-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: var(--ca-radius-sm); background: var(--ca-sunken); color: var(--ca-ink); font-size: 13px; line-height: 18px; }

/* ------------------------------------------------------------------ */
/* Champs et recherche                                                 */
/* ------------------------------------------------------------------ */

.ca .ca-search { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-3); box-shadow: var(--ca-shadow-md); display: flex; flex-direction: column; gap: var(--ca-space-3); width: 100%; max-width: 760px; margin: 0; }
.ca .ca-search-modes { display: inline-flex; gap: 4px; padding: 4px; background: var(--ca-sunken); border-radius: var(--ca-radius-md); align-self: flex-start; }
.ca .ca-search-modes button.ca-search-mode, .ca .ca-search-modes button.ca-search-mode:focus { font-family: var(--ca-font); font-size: 14px; line-height: 20px; font-weight: 600; height: var(--ca-control-sm); padding: 0 var(--ca-space-4); margin: 0; border: 0; border-radius: 6px; background: transparent; color: var(--ca-ink-muted); cursor: pointer; box-shadow: none; text-transform: none; }
.ca .ca-search-modes button.ca-search-mode:hover { background: transparent; color: var(--ca-ink); }
.ca .ca-search-modes button.ca-search-mode[aria-pressed="true"] { background: var(--ca-raised); color: var(--ca-ink); box-shadow: var(--ca-shadow-sm); }
.ca .ca-search-modes button.ca-search-mode:focus-visible { box-shadow: var(--ca-focus-ring); }
.ca .ca-search-row { display: flex; gap: var(--ca-space-2); }
.ca .ca-search .ca-search-input { position: relative; flex: 1; min-width: 0; }
.ca .ca-search .ca-search-input .ca-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ca-ink-muted); pointer-events: none; }
.ca .ca-search .ca-search-input input.ca-input { font-family: var(--ca-font); font-size: 17px; line-height: 24px; height: var(--ca-control-lg); padding: 0 var(--ca-space-3) 0 44px; margin: 0; border-radius: var(--ca-radius-sm); border: 1px solid var(--ca-line-strong); background: var(--ca-raised); color: var(--ca-ink); width: 100%; box-shadow: none; }
.ca .ca-search .ca-search-input input.ca-input::placeholder { color: var(--ca-ink-muted); opacity: 1; }
.ca .ca-search .ca-search-input input.ca-input:focus { border-color: var(--ca-focus); outline: 2px solid transparent; box-shadow: var(--ca-focus-ring); }
.ca .ca-search .ca-btn { height: var(--ca-control-lg); }
@media (max-width: 560px) { .ca .ca-search-row { flex-direction: column; } }

/* ------------------------------------------------------------------ */
/* Onglets                                                             */
/* ------------------------------------------------------------------ */

.ca .ca-tabs { display: flex; gap: var(--ca-space-5); border-bottom: 1px solid var(--ca-line); overflow-x: auto; scrollbar-width: none; }
.ca .ca-tabs button.ca-tab, .ca .ca-tabs button.ca-tab:focus { font-family: var(--ca-font); font-size: 16px; line-height: 20px; font-weight: 600; color: var(--ca-ink-muted); background: none; border: 0; padding: 0 2px; margin: 0; height: 48px; position: relative; cursor: pointer; display: inline-flex; align-items: center; gap: var(--ca-space-2); white-space: nowrap; border-radius: 4px 4px 0 0; box-shadow: none; text-transform: none; }
.ca .ca-tabs button.ca-tab:hover { color: var(--ca-ink); background: none; }
.ca .ca-tabs button.ca-tab[aria-selected="true"] { color: var(--ca-ink); }
.ca .ca-tabs button.ca-tab[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--ca-ink); }
.ca .ca-tabs button.ca-tab:focus-visible { box-shadow: var(--ca-focus-ring); }
.ca .ca-tab-count { font-size: 12px; line-height: 20px; font-weight: 600; padding: 0 8px; border-radius: var(--ca-radius-full); background: var(--ca-sunken); color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ */
/* Avatar                                                              */
/* ------------------------------------------------------------------ */

.ca .ca-avatar { position: relative; flex: none; border-radius: var(--ca-radius-full); background: var(--ca-nuage); color: var(--ca-encre); display: inline-grid; place-items: center; font-weight: 700; letter-spacing: -0.01em; }
.ca .ca-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; display: block; }
.ca .ca-avatar-dot { position: absolute; right: 2%; bottom: 2%; width: 26%; height: 26%; border-radius: var(--ca-radius-full); background: var(--ca-mil); box-shadow: 0 0 0 2px var(--ca-raised); }

/* ------------------------------------------------------------------ */
/* Cartes : offre et expert                                            */
/* ------------------------------------------------------------------ */

.ca .ca-card { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-3); min-width: 0; transition: border-color .15s ease; }
.ca .ca-card:hover { border-color: var(--ca-line-strong); }
.ca .ca-meta { display: flex; flex-wrap: wrap; gap: var(--ca-space-2) var(--ca-space-5); font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
.ca .ca-meta-item { display: inline-flex; align-items: flex-start; gap: 6px; min-width: 0; }
.ca .ca-meta-item .ca-icon { margin-top: 1px; }

.ca .ca-offer-top { display: flex; align-items: center; gap: var(--ca-space-3); flex-wrap: wrap; }
.ca h3.ca-offer-title { margin: 0; font-family: var(--ca-font); font-size: 19px; line-height: 26px; font-weight: 700; letter-spacing: -0.01em; text-wrap: pretty; }
.ca h3.ca-offer-title a, .ca h3.ca-expert-name a { color: var(--ca-ink); text-decoration: none; border-radius: 2px; }
.ca h3.ca-offer-title a:hover, .ca h3.ca-expert-name a:hover { color: var(--ca-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ca .ca-offer-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--ca-space-3); padding-top: var(--ca-space-3); margin-top: auto; border-top: 1px solid var(--ca-line); font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }
.ca .ca-offer-foot strong { color: var(--ca-ink); font-weight: 600; }

.ca .ca-expert { flex-direction: row; gap: var(--ca-space-4); align-items: flex-start; }
.ca .ca-expert-body { display: flex; flex-direction: column; gap: var(--ca-space-2); min-width: 0; flex: 1; }
.ca .ca-expert-head { display: flex; align-items: center; gap: var(--ca-space-3); flex-wrap: wrap; }
.ca h3.ca-expert-name { margin: 0; font-family: var(--ca-font); font-size: 18px; line-height: 24px; font-weight: 700; letter-spacing: -0.01em; }
.ca .ca-expert-headline { margin: 0; font-size: 15px; line-height: 22px; color: var(--ca-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ------------------------------------------------------------------ */
/* Jauge de complétude                                                 */
/* ------------------------------------------------------------------ */

.ca .ca-meter { display: flex; flex-direction: column; gap: var(--ca-space-3); background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); width: 100%; }
.ca .ca-meter-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--ca-space-3); }
.ca .ca-meter-title { font-weight: 700; font-size: 16px; line-height: 24px; }
.ca .ca-meter-value { font-weight: 800; font-size: 28px; line-height: 32px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ca .ca-meter-track { position: relative; height: 10px; margin: 6px 9px 6px 0; border-radius: var(--ca-radius-full); background: var(--ca-sunken); }
.ca .ca-meter-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: var(--ca-radius-full); background: var(--ca-ink); }
.ca .ca-meter-fill::after { content: ""; position: absolute; right: -9px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: var(--ca-radius-full); background: var(--ca-mil); box-shadow: 0 0 0 3px var(--ca-raised); }
.ca .ca-meter-threshold { position: absolute; top: -5px; bottom: -5px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--ca-ink-muted); }
.ca .ca-meter-note { margin: 0; font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
.ca .ca-meter-list { padding-top: var(--ca-space-3); border-top: 1px solid var(--ca-line); display: flex; flex-direction: column; gap: var(--ca-space-2); font-size: 15px; line-height: 22px; }
.ca .ca-meter-item { display: flex; gap: var(--ca-space-2); align-items: center; }
.ca .ca-meter-item .ca-icon { color: var(--ca-ink-muted); }
.ca .ca-meter-item-done { color: var(--ca-ink-muted); }
.ca .ca-meter-item-done .ca-icon { color: var(--ca-success); }
.ca .ca-meter-points { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ */
/* Avis                                                                */
/* ------------------------------------------------------------------ */

.ca .ca-notice { display: flex; gap: var(--ca-space-3); align-items: flex-start; padding: var(--ca-space-4); border-radius: var(--ca-radius-lg); background: var(--ca-sunken); color: var(--ca-ink); width: 100%; }
.ca .ca-notice-icon { display: inline-flex; padding-top: 1px; color: var(--ca-link); }
.ca .ca-notice-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 15px; line-height: 22px; }
.ca .ca-notice-title { font-weight: 700; }

/* ------------------------------------------------------------------ */
/* En-tête du site (Elementor) : point mil sur la rubrique courante    */
/* ------------------------------------------------------------------ */

.ca-site-header .elementor-nav-menu--main .elementor-item { position: relative; }
.ca-site-header .elementor-nav-menu--main .elementor-item.elementor-item-active::after,
.ca-site-header .elementor-nav-menu--main .current-menu-ancestor > .elementor-item::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 6px; height: 6px; margin-left: -3px; border-radius: 9999px; background: var(--ca-mil); opacity: 1; }
.ca-site-header .elementor-nav-menu--main .elementor-item:focus-visible { outline: 2px solid transparent; box-shadow: var(--ca-focus-ring); }
.ca-site-header .elementor-menu-toggle { border-radius: var(--ca-radius-md); }
.ca-site-header .elementor-menu-toggle:focus-visible { box-shadow: var(--ca-focus-ring); }

.ca.ca-account { display: flex; align-items: center; gap: var(--ca-space-2); justify-content: flex-end; }
.ca .ca-account-user { display: inline-flex; align-items: center; gap: var(--ca-space-2); height: var(--ca-control-md); padding: 0 var(--ca-space-3) 0 4px; border-radius: var(--ca-radius-full); color: var(--ca-ink); text-decoration: none; font-weight: 600; font-size: 15px; }
.ca .ca-account-user:hover { background: var(--ca-sunken); color: var(--ca-ink); }
.ca .ca-account-logout { font-size: 14px; color: var(--ca-ink-muted); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) { .ca.ca-account .ca-btn-ghost { display: none; } }
@media (max-width: 480px) {
  .ca.ca-account .ca-btn { padding: 0 var(--ca-space-3); font-size: 15px; }
  .ca .ca-account-name, .ca .ca-account-logout { display: none; }
}

/* ------------------------------------------------------------------ */
/* Accueil : bandeau                                                   */
/* ------------------------------------------------------------------ */

.ca .ca-live { display: inline-flex; align-items: center; gap: var(--ca-space-2); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-on-band-soft); font-variant-numeric: tabular-nums; }
.ca .ca-live-dot { width: 8px; height: 8px; border-radius: var(--ca-radius-full); background: var(--ca-mil); flex: none; }

.ca.ca-pop { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ca-space-2); }
.ca .ca-pop-label { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-on-band-muted); margin-right: var(--ca-space-1); white-space: nowrap; }
.ca.ca-pop a { display: inline-flex; align-items: center; height: 40px; padding: 0 var(--ca-space-4); border-radius: var(--ca-radius-full); border: 1px solid var(--ca-band-line); color: var(--ca-on-band); text-decoration: none; font-size: 14px; line-height: 20px; font-weight: 500; white-space: nowrap; }
.ca.ca-pop a:hover { background: var(--ca-band-hover); color: var(--ca-on-band); }
.ca.ca-pop a:focus-visible { box-shadow: 0 0 0 2px var(--ca-band), 0 0 0 4px var(--ca-mil); }

.ca.ca-stats { background: var(--ca-raised); color: var(--ca-ink); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-4); box-shadow: var(--ca-shadow-md); }
.ca .ca-stats-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--ca-space-3); }
.ca h2.ca-stats-title { margin: 0; font-size: 16px; line-height: 24px; font-weight: 700; letter-spacing: 0; }
.ca .ca-stats-date { font-size: 13px; line-height: 18px; color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ca .ca-stats-list { display: flex; flex-direction: column; }
.ca .ca-stat { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: var(--ca-space-3); align-items: baseline; padding: var(--ca-space-3) 0; border-top: 1px solid var(--ca-line); }
.ca .ca-stat:first-child { border-top: 0; padding-top: 0; }
.ca .ca-stat-num { font-size: 28px; line-height: 34px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ca .ca-stat-label { font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
@media (max-width: 1024px) {
  .ca .ca-stats-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ca-space-4); }
  .ca .ca-stat { grid-template-columns: minmax(0, 1fr); gap: 2px; border-top: 0; padding: 0; }
}
@media (max-width: 600px) {
  .ca.ca-stats { padding: var(--ca-space-4); }
  .ca .ca-stat-num { font-size: 24px; line-height: 30px; }
  .ca.ca-pop { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
}

/* ------------------------------------------------------------------ */
/* Accueil : offres                                                    */
/* ------------------------------------------------------------------ */

.ca.ca-offers-block { display: flex; flex-direction: column; gap: var(--ca-space-5); }
.ca .ca-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ca-space-4); }
.ca .ca-offers[hidden] { display: none; }
.ca .ca-more { display: flex; align-items: center; justify-content: space-between; gap: var(--ca-space-4); flex-wrap: wrap; }
.ca .ca-more-note { font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); max-width: 56ch; }
.ca .ca-empty-note { padding: var(--ca-space-5); border: 1px dashed var(--ca-line-strong); border-radius: var(--ca-radius-lg); color: var(--ca-ink-muted); }
@media (max-width: 1024px) { .ca .ca-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .ca .ca-offers { grid-template-columns: minmax(0, 1fr); }
  .ca .ca-offers > .ca-card:nth-child(n+4) { display: none; }
  .ca .ca-more { flex-direction: column; align-items: stretch; }
  .ca .ca-more .ca-btn { width: 100%; }
}

/* ------------------------------------------------------------------ */
/* Accueil : parcourir                                                 */
/* ------------------------------------------------------------------ */

.ca.ca-browse-block { display: flex; flex-direction: column; gap: var(--ca-space-4); }
.ca .ca-browse { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ca-space-4); }
.ca .ca-panel { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-3); min-width: 0; }
.ca h2.ca-h3, .ca h3.ca-h3 { margin: 0; color: var(--ca-ink); font-family: var(--ca-font); font-size: 20px; line-height: 28px; font-weight: 700; letter-spacing: -0.01em; display: flex; align-items: center; gap: var(--ca-space-2); }
.ca h2.ca-h3 .ca-icon, .ca h3.ca-h3 .ca-icon { color: var(--ca-ink-muted); }
.ca .ca-links li { border-top: 1px solid var(--ca-line); }
.ca .ca-links li:first-child { border-top: 0; }
.ca .ca-links a { display: flex; justify-content: space-between; align-items: center; gap: var(--ca-space-3); min-height: var(--ca-control-md); color: var(--ca-ink); text-decoration: none; font-size: 15px; line-height: 20px; }
.ca .ca-links a:hover { color: var(--ca-ink); }
.ca .ca-links a:hover .ca-links-name { text-decoration: underline; text-underline-offset: 3px; }
.ca .ca-links-count { flex: none; font-size: 13px; line-height: 22px; font-weight: 600; padding: 0 8px; border-radius: var(--ca-radius-full); background: var(--ca-sunken); color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }
.ca .ca-panel-foot { margin-top: auto; padding-top: var(--ca-space-2); font-size: 15px; line-height: 22px; }
@media (max-width: 1024px) { .ca .ca-browse { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 767px) {
  .ca .ca-panel { padding: var(--ca-space-4); }
  .ca .ca-links { display: flex; flex-wrap: wrap; gap: var(--ca-space-2); }
  .ca .ca-links li { border-top: 0; }
  .ca .ca-links li:nth-child(n+6) { display: none; }
  .ca .ca-links a { min-height: 40px; padding: 0 6px 0 var(--ca-space-4); border: 1px solid var(--ca-line-strong); border-radius: var(--ca-radius-full); font-size: 14px; gap: var(--ca-space-2); }
  .ca.ca-browse-block .ca-notice { display: none; }
}

/* ------------------------------------------------------------------ */
/* Accueil : alertes                                                   */
/* ------------------------------------------------------------------ */

.ca.ca-alert-form { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-4); }
.ca .ca-alert-text { font-size: 16px; line-height: 24px; color: var(--ca-ink); }
.ca .ca-alert-fine { font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
.ca .ca-actions { display: flex; gap: var(--ca-space-2); flex-wrap: wrap; align-items: center; }
.ca.ca-alert-form .gform_wrapper { margin: 0; }

/* Listes à coches et étapes saisies dans Elementor (éditeur de texte) */
.ca-checks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ca-checks li { position: relative; padding-left: 30px; font-size: 15px; line-height: 22px; color: var(--ca-ink); }
.ca-checks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; background: var(--ca-success); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 20px 20px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 20px 20px no-repeat; }
.ca-steps ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; counter-reset: ca-step; }
.ca-steps li { position: relative; padding-left: 56px; min-height: 40px; font-size: 15px; line-height: 22px; color: var(--ca-ink-muted); counter-increment: ca-step; }
.ca-steps li::before { content: counter(ca-step); position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 8px; border: 1.5px solid var(--ca-line-strong); color: var(--ca-ink); display: grid; place-items: center; font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; box-sizing: border-box; }
.ca-steps li strong { display: block; color: var(--ca-ink); font-size: 16px; line-height: 24px; font-weight: 700; }

/* Liens dans les textes Elementor : toujours soulignés */
.elementor-widget-text-editor a { text-decoration: underline; text-underline-offset: 3px; }

/* Atouts (widget Boîte d'icône Elementor) */
.ca-feature .elementor-icon { border-radius: 8px; }
.ca-feature .elementor-icon svg { fill: none !important; stroke: currentColor; stroke-width: 1.75; }
.ca-feature .elementor-icon-box-title { margin: 0 0 2px; }
.ca-feature .elementor-icon-box-description { margin: 0; }

/* ------------------------------------------------------------------ */
/* Accueil : experts                                                   */
/* ------------------------------------------------------------------ */

.ca.ca-results { background: var(--ca-sunken); border-radius: var(--ca-radius-lg); padding: var(--ca-space-4); display: flex; flex-direction: column; gap: var(--ca-space-3); min-width: 0; }
.ca .ca-results-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--ca-space-2); padding: 0 var(--ca-space-1); }
.ca .ca-results-label { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-ink-muted); }
@media (max-width: 767px) {
  .ca.ca-results { padding: var(--ca-space-3); }
  .ca.ca-results .ca-expert { flex-direction: column; }
  .ca.ca-results > article:nth-of-type(n+2) { display: none; }
}

/* ------------------------------------------------------------------ */
/* Accueil : guides                                                    */
/* ------------------------------------------------------------------ */

.ca.ca-guides { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ca-space-4); }
.ca .ca-article { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-3); min-width: 0; }
.ca h3.ca-article-title { margin: 0; font-size: 19px; line-height: 26px; font-weight: 700; letter-spacing: -0.01em; text-wrap: pretty; }
.ca h3.ca-article-title a { color: var(--ca-ink); text-decoration: none; }
.ca h3.ca-article-title a:hover { color: var(--ca-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ca .ca-article-meta { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--ca-space-2) var(--ca-space-4); font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }
.ca .ca-doc { background: var(--ca-sunken); border-color: var(--ca-sunken); }
.ca .ca-doc .ca-tag { background: var(--ca-raised); }
.ca .ca-doc-text { font-size: 15px; line-height: 22px; color: var(--ca-ink); }
@media (max-width: 1024px) { .ca.ca-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .ca.ca-guides { grid-template-columns: minmax(0, 1fr); }
  .ca.ca-guides .ca-article:nth-child(3) { display: none; }
}

/* ------------------------------------------------------------------ */
/* Page 404                                                            */
/* ------------------------------------------------------------------ */

.ca.ca-404-search .ca-search { margin: 0 auto; }

@media (prefers-reduced-motion: reduce) { .ca .ca-btn, .ca .ca-card { transition: none; } }

/* ================================================================== */
/* Modèles Elementor : cartes de boucle, archives, fiches             */
/* ================================================================== */

/* Cartes dans les grilles de boucle : même hauteur sur une ligne */
.e-loop-item > .e-con { height: 100%; padding: 0; }
.e-loop-item .elementor-widget-shortcode,
.e-loop-item .elementor-widget-shortcode > .elementor-widget-container,
.e-loop-item .elementor-shortcode,
.ca.ca-loop,
.ca.ca-loop > .ca-card { height: 100%; }
.e-loop-item .elementor-widget-shortcode { width: 100%; }

/* Cartes compactes, bureaux, documents, articles, liens d'emploi */
.ca .ca-expert-compact { padding: var(--ca-space-4); gap: var(--ca-space-3); align-items: center; }
.ca .ca-expert-compact h3.ca-expert-name { font-size: 16px; line-height: 22px; }
.ca .ca-expert-small { margin: 0; font-size: 13px; line-height: 18px; color: var(--ca-ink-muted); }
.ca .ca-bureau-head { display: flex; gap: var(--ca-space-3); align-items: center; }
.ca .ca-bureau-titre { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ca .ca-logo-box { flex: none; display: grid; place-items: center; border: 1px solid var(--ca-line); border-radius: var(--ca-radius-md); background: #FFFFFF; overflow: hidden; }
.ca .ca-logo-box img { width: 100%; height: 100%; object-fit: contain; padding: 4px; display: block; }
.ca .ca-logo-initiales { background: var(--ca-nuage); color: var(--ca-encre); border-color: transparent; font-weight: 700; font-size: 18px; }
.ca .ca-contact-list { display: flex; flex-direction: column; gap: var(--ca-space-2); font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
.ca .ca-contact-list li { display: flex; gap: var(--ca-space-2); align-items: flex-start; min-width: 0; }
.ca .ca-contact-list li > span { min-width: 0; overflow-wrap: anywhere; }
.ca .ca-contact-list .ca-icon { margin-top: 1px; color: var(--ca-ink-muted); }
.ca .ca-contact-list a { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; }
.ca .ca-contact-list a:hover { color: var(--ca-ink); }
.ca .ca-action-link { display: inline-flex; gap: 6px; align-items: center; min-height: 36px; color: var(--ca-ink); font-weight: 600; text-decoration: none; }
.ca .ca-action-link:hover { color: var(--ca-ink); }
.ca .ca-action-link:hover span { text-decoration: underline; text-underline-offset: 3px; }
.ca .ca-doc-text { font-size: 15px; line-height: 22px; color: var(--ca-ink); }
.ca .ca-article-card { padding: 0; gap: 0; overflow: hidden; }
.ca .ca-article-img { display: block; aspect-ratio: 16 / 9; background: var(--ca-sunken); }
.ca .ca-article-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ca .ca-article-body { padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-3); flex: 1; }
.ca .ca-article-excerpt { font-size: 15px; line-height: 22px; color: var(--ca-ink-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ca .ca-article-body .ca-article-meta { margin-top: auto; }
.ca .ca-iframe-card { flex-direction: row; align-items: center; gap: var(--ca-space-3); padding: var(--ca-space-4); }
.ca .ca-iframe-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ca .ca-iframe-body a { color: var(--ca-ink); font-weight: 700; font-size: 16px; line-height: 22px; text-decoration: none; }
.ca .ca-iframe-body a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Retour, en-têtes de fiche, encarts latéraux */
.ca .ca-back { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--ca-ink-muted); font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.ca .ca-back:hover { color: var(--ca-ink); }
.ca.ca-offer-header, .ca.ca-article-header { display: flex; flex-direction: column; gap: var(--ca-space-3); align-items: flex-start; }
.ca.ca-profile-header { display: flex; gap: var(--ca-space-4); align-items: center; flex-wrap: wrap; }
.ca.ca-profile-facts { display: flex; flex-direction: column; gap: var(--ca-space-5); }
.ca.ca-profile-facts section { display: flex; flex-direction: column; gap: var(--ca-space-3); }
.ca.ca-files { display: flex; flex-direction: column; gap: var(--ca-space-3); }
.ca .ca-file-list { display: flex; flex-direction: column; gap: var(--ca-space-2); }
.ca .ca-file-list a { display: flex; align-items: center; gap: var(--ca-space-2); min-height: var(--ca-control-md); padding: 10px var(--ca-space-4); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-md); background: var(--ca-raised); color: var(--ca-ink); text-decoration: none; font-size: 15px; line-height: 20px; }
.ca .ca-file-list a > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ca .ca-file-list a:hover { border-color: var(--ca-line-strong); color: var(--ca-ink); }
.ca .ca-file-list .ca-icon { color: var(--ca-ink-muted); }
.ca.ca-side-card { background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); padding: var(--ca-space-5); display: flex; flex-direction: column; gap: var(--ca-space-3); }
.ca .ca-side-label { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-ink-muted); }
.ca .ca-side-title { font-size: 18px; line-height: 24px; font-weight: 700; color: var(--ca-ink); }
.ca .ca-side-text { font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); }
.ca .ca-source-logo img { display: block; max-height: 64px; max-width: 200px; width: auto !important; height: auto; }
.ca .ca-experts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ca-space-4); }
@media (max-width: 1024px) { .ca .ca-experts-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .ca.ca-loop .ca-expert:not(.ca-expert-compact), .ca .ca-experts-grid .ca-expert { flex-direction: column; } }

/* Filtres des archives (FacetWP) */
.ca.ca-filters-toggle { display: none; }
@media (max-width: 1024px) {
  .ca.ca-filters-toggle { display: block; }
  .ca-filtres:not(.is-open) { display: none !important; }
}
.ca-facets h5, .ca-facets .facetwp-facet-title { margin: 0 0 6px; font-family: var(--ca-font); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-ink); text-transform: none; letter-spacing: 0; }
.ca-facets .facetwp-facet { margin-bottom: 0; font-family: var(--ca-font); }
.ca-facets .fs-wrap { width: 100%; }
.ca-facets .fs-label-wrap { min-height: var(--ca-control-md); border: 1px solid var(--ca-line-strong); border-radius: var(--ca-radius-sm); background: var(--ca-raised); display: flex; align-items: center; cursor: pointer; }
.ca-facets .fs-label-wrap .fs-label { padding: 10px 36px 10px 12px; font-size: 15px; line-height: 22px; color: var(--ca-ink); }
.ca-facets .fs-arrow { right: 14px; border-top-color: var(--ca-ink-muted); }
.ca-facets .fs-wrap.fs-open .fs-label-wrap { border-color: var(--ca-focus); box-shadow: var(--ca-focus-ring); }
.ca-facets .fs-dropdown { width: 100%; margin-top: 4px; border: 1px solid var(--ca-line); border-radius: var(--ca-radius-md); background: var(--ca-raised); box-shadow: var(--ca-shadow-md); overflow: hidden; z-index: 30; }
.ca-facets .fs-dropdown .fs-search input, .ca-facets .facetwp-facet .fs-search input[type="search"] { height: 40px; width: 100%; margin: 0; padding: 0 12px; border: 0; border-bottom: 1px solid var(--ca-line); border-radius: 0; font-size: 15px; background: var(--ca-raised); color: var(--ca-ink); box-shadow: none; }
.ca-facets .fs-option { padding: 8px 12px; font-size: 15px; line-height: 22px; color: var(--ca-ink); }
.ca-facets .fs-option:hover, .ca-facets .fs-option.hl { background: var(--ca-sunken); }
.ca-facets .fs-option.selected { font-weight: 600; }
.ca-facets .fs-checkbox i { border-color: var(--ca-line-strong); border-radius: 4px; }
.ca-facets .fs-option.selected .fs-checkbox i { background-color: var(--ca-action); border-color: var(--ca-action); }
.ca-facets .facetwp-input-wrap { display: block; width: 100%; position: relative; }
.ca-facets .facetwp-facet .facetwp-input-wrap input.facetwp-search { width: 100%; min-width: 0; height: var(--ca-control-lg); margin: 0; padding: 0 44px 0 14px; border: 1px solid var(--ca-line-strong); border-radius: var(--ca-radius-sm); background: var(--ca-raised); color: var(--ca-ink); font-family: var(--ca-font); font-size: 17px; box-shadow: none; }
.ca-facets .facetwp-facet .facetwp-input-wrap input.facetwp-search:focus { border-color: var(--ca-focus); box-shadow: var(--ca-focus-ring); outline: 2px solid transparent; }
.ca-facets .facetwp-icon { right: 12px; opacity: .6; }
.ca-facets .facetwp-pager { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.ca-facets .facetwp-pager .facetwp-page { min-width: var(--ca-control-md); height: var(--ca-control-md); margin: 0; padding: 0 var(--ca-space-3); border-radius: var(--ca-radius-md); display: inline-flex; align-items: center; justify-content: center; color: var(--ca-ink); font-size: 15px; font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }
.ca-facets .facetwp-pager .facetwp-page:hover { background: var(--ca-sunken); }
.ca-facets .facetwp-pager .facetwp-page.active { background: var(--ca-action); color: var(--ca-on-action); }
.ca-facets .facetwp-type-pager { font-size: 14px; line-height: 20px; color: var(--ca-ink-muted); font-variant-numeric: tabular-nums; }

/* Contenu long des fiches (widget Contenu de l'article, classe ca-prose) */
.e-con > .elementor-widget.ca-prose, .elementor-widget.ca-prose { max-width: 760px; color: var(--ca-ink); font-family: var(--ca-font); font-size: 16px; line-height: 26px; }
.elementor-widget.ca-prose h2 { margin: 32px 0 12px; font-size: 22px; line-height: 28px; font-weight: 700; letter-spacing: -0.01em; color: var(--ca-ink); }
.elementor-widget.ca-prose h3 { margin: 24px 0 8px; font-size: 18px; line-height: 24px; font-weight: 700; color: var(--ca-ink); }
.elementor-widget.ca-prose h4 { margin: 20px 0 8px; font-size: 16px; line-height: 24px; font-weight: 700; color: var(--ca-ink); }
.elementor-widget.ca-prose p, .elementor-widget.ca-prose ul, .elementor-widget.ca-prose ol { margin: 0 0 16px; }
.elementor-widget.ca-prose ul, .elementor-widget.ca-prose ol { padding-left: 24px; }
.elementor-widget.ca-prose li { margin-bottom: 6px; }
.elementor-widget.ca-prose a { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; }
.elementor-widget.ca-prose table { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 15px; line-height: 22px; }
.elementor-widget.ca-prose th, .elementor-widget.ca-prose td { padding: 8px 12px; border: 1px solid var(--ca-line); text-align: left; vertical-align: top; }
.elementor-widget.ca-prose th { background: var(--ca-sunken); font-weight: 600; }
.elementor-widget.ca-prose img { max-width: 100%; height: auto; border-radius: var(--ca-radius-md); }
.elementor-widget.ca-prose blockquote { margin: 0 0 16px; padding: var(--ca-space-4); border-radius: var(--ca-radius-md); background: var(--ca-sunken); }
.elementor-widget.ca-prose > .elementor-widget-container > :first-child, .elementor-widget.ca-prose > :first-child { margin-top: 0; }

/* Encart d'appel à l'action des articles (champs ACF) */
.ca-cta-article { border-radius: var(--ca-radius-lg); }

/* Sections « similaires » des fiches (titre inclus dans le shortcode) */
.ca.ca-similar { display: flex; flex-direction: column; gap: var(--ca-space-5); }
.ca h2.ca-section-title { margin: 0; font-family: var(--ca-font); font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.01em; color: var(--ca-ink); }
@media (max-width: 767px) { .ca h2.ca-section-title { font-size: 24px; line-height: 30px; } }

/* Fiches : alerte dans la colonne latérale (sans double encadré) */
.ca-side-alert .ca.ca-alert-form { background: transparent; border: 0; padding: 0; gap: var(--ca-space-3); }
.ca-side-alert .ca .ca-alert-text { font-size: 15px; line-height: 22px; }

/* Formulaires Gravity Forms des modèles (classe ca-gf sur le conteneur) */
.ca-gf .gform_wrapper, .ca-gf .gform_wrapper * { --gf-radius: var(--ca-radius-sm) !important; --gf-ctrl-btn-padding-x: 20px; --gf-ctrl-btn-padding-y: 12px; }
.ca-gf .gform_wrapper .gform_footer { margin-top: var(--ca-space-2); padding: 0; }
.ca-gf .gform_wrapper .gform_footer .gform_button { width: 100%; min-height: var(--ca-control-md); border-radius: var(--ca-radius-md); font-family: var(--ca-font); font-weight: 600; }
.ca-form-card .gform_wrapper .gform_fields .gfield.gfield--width-half { grid-column: 1 / -1; }

/* Commentaires des guides (widget Commentaires du thème Hello) */
.elementor-widget-post-comments #comments { font-family: var(--ca-font); color: var(--ca-ink); }
.elementor-widget-post-comments #comments .title-comments { display: block; margin: 0 0 var(--ca-space-4); font-family: var(--ca-font); font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.01em; color: var(--ca-ink); }
.elementor-widget-post-comments #comments .comment-list { display: flex; flex-direction: column; gap: var(--ca-space-3); font-size: 15px; line-height: 22px; }
.elementor-widget-post-comments #comments .children { display: flex; flex-direction: column; gap: var(--ca-space-3); margin-top: var(--ca-space-3); padding-inline-start: var(--ca-space-5); }
.elementor-widget-post-comments #comments .comment .comment-body { display: flex; flex-direction: column; gap: var(--ca-space-3); padding: var(--ca-space-4) var(--ca-space-5) !important; background: var(--ca-raised); border: 1px solid var(--ca-line) !important; border-radius: var(--ca-radius-lg); }
.elementor-widget-post-comments #comments .comment-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ca-space-2) var(--ca-space-3); margin: 0; }
.elementor-widget-post-comments #comments .comment-author { display: flex; align-items: center; gap: var(--ca-space-2); line-height: 20px; }
.elementor-widget-post-comments #comments .comment .comment-author .avatar { position: static; float: none; width: 36px; height: 36px; margin: 0; border-radius: 50%; }
.elementor-widget-post-comments #comments .comment-meta .fn { color: var(--ca-ink); font-size: 15px; font-weight: 600; }
.elementor-widget-post-comments #comments .comment-meta .says { display: none; }
.elementor-widget-post-comments #comments .comment-meta .comment-metadata, .elementor-widget-post-comments #comments .comment-meta .comment-metadata a { color: var(--ca-ink-muted); font-size: 13px; line-height: 18px; text-decoration: none; }
.elementor-widget-post-comments #comments .comment-content { background: transparent; padding: 0; color: var(--ca-ink); }
.elementor-widget-post-comments #comments .comment-content::before { display: none; }
.elementor-widget-post-comments #comments .comment-content p { margin: 0 0 8px; }
.elementor-widget-post-comments #comments .comment-content p:last-child { margin-bottom: 0; }
.elementor-widget-post-comments #comments .reply { font-size: 14px; line-height: 20px; }

/* Vignette des cartes d'article : ratio 16/9 fixe, quelle que soit l'image */
.ca .ca-article-img { position: relative; overflow: hidden; }
.ca .ca-article-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ca .ca-doc-text { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }

/* ================================================================== */
/* Pages Elementor                                                    */
/* ================================================================== */

.ca [hidden] { display: none !important; }

/* Filtres FacetWP en cases à cocher : puces (catégories du blog) */
.ca-facets .facetwp-type-checkboxes { display: flex; flex-wrap: wrap; gap: var(--ca-space-2); }
.ca-facets .facetwp-type-checkboxes .facetwp-checkbox { display: inline-flex !important; align-items: center; gap: 6px; min-height: var(--ca-control-sm); margin: 0 !important; padding: 0 14px !important; border: 1px solid var(--ca-line-strong); border-radius: var(--ca-radius-full); background: var(--ca-raised) !important; background-image: none !important; color: var(--ca-ink) !important; font-family: var(--ca-font); font-size: 14px; line-height: 20px; font-weight: 500; cursor: pointer; transition: background-color .15s ease; }
.ca-facets .facetwp-type-checkboxes .facetwp-checkbox:hover { background: var(--ca-sunken) !important; }
.ca-facets .facetwp-type-checkboxes .facetwp-checkbox.checked { background: var(--ca-action) !important; border-color: var(--ca-action); color: var(--ca-on-action) !important; }
.ca-facets .facetwp-type-checkboxes .facetwp-counter { font-size: 12px; opacity: .75; font-variant-numeric: tabular-nums; }
.ca-facets .facetwp-type-checkboxes .facetwp-expand { display: none; }

/* Page /emploi/ : liste des bureaux et visionneuse */
.ca-job-list { max-height: calc(100vh - 140px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 4px; }
.ca .ca-iframe-card { transition: border-color .15s ease; }
.ca .ca-card.is-active { border-color: var(--ca-ink); box-shadow: inset 0 0 0 1px var(--ca-ink); }
.ca.ca-job-viewer { position: sticky; top: 96px; display: flex; flex-direction: column; min-height: calc(100vh - 140px); background: var(--ca-raised); border: 1px solid var(--ca-line); border-radius: var(--ca-radius-lg); overflow: hidden; }
.ca .ca-job-viewer-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--ca-space-2); padding: var(--ca-space-7, 48px) var(--ca-space-5); text-align: center; color: var(--ca-ink-muted); }
.ca .ca-job-viewer-empty > .ca-icon { margin-bottom: var(--ca-space-2); color: var(--ca-ink-muted); }
.ca .ca-job-viewer-title { font-size: 20px; line-height: 28px; font-weight: 700; color: var(--ca-ink); }
.ca .ca-job-viewer-text { max-width: 48ch; font-size: 15px; line-height: 22px; }
.ca .ca-job-viewer-text .ca-icon { display: inline-block; vertical-align: -2px; }
.ca .ca-job-viewer-text a { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; }
.ca .ca-job-viewer-frame { flex: 1; display: flex; flex-direction: column; }
.ca .ca-job-viewer-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ca-space-2) var(--ca-space-3); padding: var(--ca-space-2) var(--ca-space-4); border-bottom: 1px solid var(--ca-line); background: var(--ca-surface); }
.ca .ca-job-viewer-name { font-weight: 700; color: var(--ca-ink); }
.ca.ca-job-viewer iframe { flex: 1 1 auto; display: block; width: 100%; height: calc(100vh - 200px); min-height: 560px; border: 0; background: #FFFFFF; }
@media (max-width: 1024px) {
  .ca-job-list { max-height: 60vh; }
  .ca.ca-job-viewer { position: static; min-height: 0; }
  .ca.ca-job-viewer iframe { height: 80vh; min-height: 480px; }
}

/* Onglets Connexion / Inscription (widget Onglets imbriqués, classe ca-tabs-compte) */
.elementor-widget.ca-tabs-compte .e-n-tabs-heading { display: flex; justify-content: flex-start; gap: var(--ca-space-5); border-bottom: 1px solid var(--ca-line); margin-bottom: var(--ca-space-5); }
.elementor-widget.ca-tabs-compte .e-n-tab-title { position: relative; flex: 0 0 auto; height: 48px; padding: 0 2px !important; border: 0 !important; border-radius: 4px 4px 0 0 !important; background: none !important; color: var(--ca-ink-muted) !important; font-family: var(--ca-font); font-size: 16px; line-height: 20px; font-weight: 600; box-shadow: none !important; }
.elementor-widget.ca-tabs-compte .e-n-tab-title .e-n-tab-title-text { color: inherit !important; font: inherit !important; }
.elementor-widget.ca-tabs-compte .e-n-tab-title:hover { color: var(--ca-ink) !important; }
.elementor-widget.ca-tabs-compte .e-n-tab-title[aria-selected="true"] { color: var(--ca-ink) !important; }
.elementor-widget.ca-tabs-compte .e-n-tab-title[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--ca-ink); }
.elementor-widget.ca-tabs-compte .e-n-tab-title:focus-visible { outline: 2px solid transparent; box-shadow: var(--ca-focus-ring) !important; }
.elementor-widget.ca-tabs-compte .e-n-tabs-content > .e-con { padding: 0 !important; border: 0 !important; background: none !important; }

/* Formulaire de connexion (widget Connexion, classe ca-login) */
.elementor-widget.ca-login .elementor-form-fields-wrapper { display: flex; flex-direction: column; gap: var(--ca-space-4); margin: 0; }
.elementor-widget.ca-login .elementor-field-group { margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.elementor-widget.ca-login .elementor-field-label { margin: 0; padding: 0; font-family: var(--ca-font); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ca-ink); }
.elementor-widget.ca-login .elementor-field-group input.elementor-field { min-height: var(--ca-control-md); padding: 10px 12px; border: 1px solid var(--ca-line-strong); border-radius: var(--ca-radius-sm); background: var(--ca-raised); color: var(--ca-ink); font-family: var(--ca-font); font-size: 16px; }
.elementor-widget.ca-login .elementor-field-group input.elementor-field:focus { border-color: var(--ca-focus); box-shadow: var(--ca-focus-ring); outline: 2px solid transparent; }
.elementor-widget.ca-login .elementor-field-type-checkbox, .elementor-widget.ca-login .elementor-remember-me { flex-direction: row; align-items: center; gap: var(--ca-space-2); font-size: 14px; color: var(--ca-ink-muted); }
.elementor-widget.ca-login .elementor-field-type-submit .elementor-button { width: 100%; min-height: var(--ca-control-md); border-radius: var(--ca-radius-md); background: var(--ca-action); color: var(--ca-on-action); font-family: var(--ca-font); font-weight: 600; font-size: 16px; }
.elementor-widget.ca-login .elementor-field-type-submit .elementor-button:hover { background: var(--ca-action-hover); }
.elementor-widget.ca-login .elementor-lost-password, .elementor-widget.ca-login .elementor-register { font-size: 14px; line-height: 20px; }
.elementor-widget.ca-login .elementor-lost-password a, .elementor-widget.ca-login .elementor-register a { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; }

/* Mon compte : profil, zone de suppression */
.ca .ca-profile-mini { display: flex; align-items: center; gap: var(--ca-space-3); }
.ca .ca-profile-mini-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ca-danger-zone .ca-suppression-compte { display: flex; flex-direction: column; gap: var(--ca-space-3); font-family: var(--ca-font); font-size: 15px; line-height: 22px; color: var(--ca-ink); }
.ca-danger-zone .ca-suppression-compte h3 { margin: 0; font-family: var(--ca-font); font-size: 18px; line-height: 24px; font-weight: 700; color: var(--ca-ink); }
.ca-danger-zone .ca-suppression-compte p { margin: 0; }
.ca-danger-zone .ca-suppression-compte form { margin: 0; }
.ca-danger-zone .ca-suppression-compte .elementor-button { min-height: var(--ca-control-md); padding: 10px 18px; border: 1px solid var(--ca-danger); border-radius: var(--ca-radius-md); background: var(--ca-raised); color: var(--ca-danger); font-family: var(--ca-font); font-size: 15px; font-weight: 600; }
.ca-danger-zone .ca-suppression-compte .elementor-button:hover { background: var(--ca-danger-soft); color: var(--ca-danger); }
.ca-danger-zone .ca-suppression-compte label { display: flex; gap: var(--ca-space-2); align-items: flex-start; font-size: 15px; }

/* Pages de texte : plan du site, mentions légales */
.elementor-widget.ca-prose .sp-wrap-cpt { margin-bottom: var(--ca-space-6, 32px); }
.elementor-widget.ca-prose h2.sp-cpt-name { margin-top: 0; }
.e-con > .elementor-widget.ca-prose:has(.ca-colonnes) { max-width: none; }
@media (min-width: 768px) {
  .elementor-widget.ca-prose .ca-colonnes ul { columns: 2; column-gap: var(--ca-space-6); }
}
@media (min-width: 1025px) {
  .elementor-widget.ca-prose .ca-colonnes ul { columns: 3; }
}

/* Cartes de lien d'emploi : site ouvert dans un nouvel onglet (classe sameorigin de [iframe_link]) */
.ca .ca-iframe-body a.sameorigin::after { content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 6px; vertical-align: -1px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") center / 14px 14px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") center / 14px 14px no-repeat; }

/* Cartes de lien d'emploi : toute la carte est cliquable (le lien du titre s'étend sur la carte) */
.ca .ca-iframe-card { position: relative; cursor: pointer; }
.ca .ca-iframe-body a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.ca .ca-iframe-card:hover { border-color: var(--ca-line-strong); }
.ca .ca-iframe-card:hover .ca-iframe-body a { text-decoration: underline; text-underline-offset: 3px; }
.ca .ca-iframe-body a:focus-visible { box-shadow: none; outline: none; }
.ca .ca-iframe-card:has(a:focus-visible) { box-shadow: var(--ca-focus-ring); }
.ca .ca-iframe-card.is-active, .ca .ca-iframe-card.is-active:hover { border-color: var(--ca-ink); }

/* Fiche d'une offre expirée */
.ca .ca-notice-closed { background: var(--ca-warning-soft); border: 1px solid #E8C48A; }
.ca .ca-notice-closed .ca-notice-icon { color: var(--ca-warning); }
.ca .ca-notice-closed .ca-notice-title { color: var(--ca-ink); }
.ca .ca-notice-closed p { margin: 0; }
.ca .ca-notice-closed a { color: var(--ca-link); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.ca.ca-offer-header.is-closed { gap: var(--ca-space-4); }
#similaires { scroll-margin-top: 96px; }

/* ================================================================== */
/* Extensions et formulaires (repris du CSS additionnel du Customizer, */
/* nettoyé et aligné sur le design system le 2 octobre 2026)          */
/* ================================================================== */

/* Gravity Forms (thème Orbital) : variables. Les styles en ligne de chaque
   formulaire fixent ces variables avec des sélecteurs d'ID, d'où !important. */
.gform_wrapper, .gform_wrapper *, .gform-theme, .gform-theme *, [data-parent-form], [data-parent-form] * {
  --gf-radius: var(--ca-radius-sm) !important;
  --gf-form-gap-y: 16px;
  --gf-label-space-primary: 4px;
  --gf-label-space-tertiary: 2px;
  --gf-form-validation-margin-y: 16px !important;
  --gf-ctrl-btn-padding-x: 20px;
  --gf-ctrl-btn-padding-y: 12px;
  --gf-color-primary: var(--ca-action) !important;
  --gf-ctrl-btn-bg-color-hover-primary: var(--ca-action-hover) !important;
  --gf-ctrl-btn-border-color-hover-primary: var(--ca-action-hover) !important;
  --gf-ctrl-btn-color-hover-primary: var(--ca-on-action) !important;
  --gf-ctrl-btn-font-family: var(--ca-font) !important;
  --gf-ctrl-btn-size: 16px !important;
  --gf-ctrl-btn-font-weight: 600 !important;
  --gf-ctrl-btn-bg-color-ctrl: var(--ca-action) !important;
  --gf-ctrl-btn-bg-color-hover-ctrl: var(--ca-action-hover) !important;
  --gf-ctrl-btn-border-color-hover-ctrl: var(--ca-action-hover) !important;
  --gf-ctrl-btn-color-hover-ctrl: var(--ca-on-action) !important;
  --gf-color-in-ctrl-primary: var(--ca-action) !important;
  --gf-convo-prog-bar-bg-color-progress: var(--ca-action) !important;
  --gf-convo-prog-bar-bg-color: var(--ca-line-strong) !important;
  --gf-convo-nav-bg-color: var(--ca-surface) !important;
}
.gfield-choice-input[type="radio"] { border-radius: 50% !important; }
.gchoice input[type="checkbox"]::before { color: var(--ca-action) !important; }
.gform_confirmation_message { font-family: var(--ca-font); font-weight: 500; color: var(--ca-ink); }
.gfield_error .wp-editor-container { border-color: var(--gf-ctrl-border-color-error) !important; }
.gform-conversational__screen-content { padding-block: 0 !important; }
@media (min-width: 640px) {
  .un_quart { grid-column: span 3 !important; }
  .trois_quarts { grid-column: span 9 !important; }
  .un_quart[data-conditional-logic="hidden"] + .trois_quarts { grid-column: span 12 !important; }
}

/* Gravity Forms : envoi de fichiers (Gravity Perks File Upload Pro) */
.gform-theme--framework .gfield:where(.gfield--type-fileupload, .gfield--input-type-fileupload) .gform_drop_area::before { color: var(--ca-action) !important; }
.gpfup_progress { background: var(--ca-action) !important; }
.gpfup--has-files .gpfup__droparea { display: none; }
.gpfup__droparea { background: var(--ca-raised); border-color: var(--ca-line-strong) !important; border-radius: var(--ca-radius-md) !important; }
@media (max-width: 767px) {
  .gpfup__droparea > div > span:not(.gpfup__select-files-container) { display: none !important; }
}

/* Gravity Forms : listes à choix multiples (Tom Select) */
.ts-wrapper.multi .ts-control > div { border-radius: var(--ca-radius-full); background: var(--ca-sunken); border-color: var(--ca-sunken); color: var(--ca-ink); }
.ts-wrapper.multi .ts-control > div.active { background: var(--ca-action); border-color: var(--ca-action); color: var(--ca-on-action); }

/* Gravity Forms : téléphone (intl-tel-input) */
.iti__selected-country { padding: 0 !important; border: 0 !important; background-color: transparent !important; }
.iti__tel-input { padding-left: 50px !important; }

/* Éditeur de texte riche des formulaires (TinyMCE) */
.mce-toolbar .mce-btn button, .mce-toolbar .mce-btn button:hover { background: var(--ca-raised); }
.mce-toolbar .mce-btn button:hover * { color: var(--ca-ink) !important; }
.mce-toolbar .mce-btn-group .mce-btn.mce-primary { background: var(--ca-action) !important; border-color: var(--ca-action) !important; box-shadow: none !important; }
div.mce-toolbar-grp { background: var(--ca-surface) !important; }
.mce-toolbar .mce-btn-group .mce-btn:focus, .mce-toolbar .mce-btn-group .mce-btn:hover, .qt-dfw:focus, .qt-dfw:hover { background: var(--ca-raised) !important; border-color: transparent !important; box-shadow: 0 0 0 1px var(--ca-action) !important; }
#link-selector #wplink-link-existing-content, #link-selector #search-panel { display: none; }
.submitbox button, .submitbox input { color: var(--ca-action) !important; border-color: var(--ca-action) !important; }
.submitbox button:hover, .submitbox input:hover { background-color: var(--ca-action) !important; color: var(--ca-on-action) !important; }
#wp-link-wrap { height: 320px !important; }

/* FacetWP : listes déroulantes (fSelect) hors panneaux ca-facets */
.fs-wrap { width: 100% !important; }
.facetwp-facet { margin-bottom: 0 !important; width: 100% !important; }
.facetwp-type-fselect .fs-option .fs-option-label { white-space: normal !important; word-break: normal; }
.fs-label-wrap .fs-label { white-space: normal !important; line-height: 1.5em; }
.fs-wrap.multiple .fs-option.selected .fs-checkbox i { background-color: var(--ca-action) !important; }
.fs-wrap.multiple .fs-option.selected .fs-checkbox i::after { content: " "; display: block; position: absolute; width: 4px; height: 9px; border: solid #FFFFFF; border-width: 0 3px 3px 0; left: 3px; top: -2px !important; transform: rotate(45deg); opacity: 1; z-index: 1; transition: all 100ms; box-sizing: initial !important; }

/* Noms dans les shortcodes [nom] */
span.prenom { text-transform: capitalize; }
span.nom { text-transform: uppercase; }

/* Séparateurs dans le contenu long */
.elementor-widget.ca-prose hr { height: 0; margin: 24px 0; border: 0; border-top: 1px solid var(--ca-line); }

/* Consultants : dernière mise à jour (cartes, fiche, Mon compte) */
.ca .ca-expert-maj { display: flex; align-items: center; gap: 6px; margin: auto 0 0; padding-top: var(--ca-space-3); border-top: 1px solid var(--ca-line); font-size: 13px; line-height: 18px; color: var(--ca-ink-muted); }
.ca .ca-expert-maj .ca-icon { flex: none; color: var(--ca-ink-muted); }
.ca .ca-expert-maj.is-recent { color: var(--ca-success); font-weight: 600; }
.ca .ca-expert-maj.is-recent .ca-icon { color: var(--ca-success); }
.ca .ca-expert-maj-compact { margin-top: 2px; padding-top: 0; border-top: 0; font-size: 12px; line-height: 16px; }
.ca.ca-side-card .ca-expert-maj { margin-top: 0; }
.ca.ca-loop .ca-expert .ca-expert-body { height: 100%; }
