:root {
    --cfy-catalog-navbar-bg: rgba(184, 134, 11, 0.08);
    --cfy-catalog-navbar-border: rgba(184, 134, 11, 0.3);
    --cfy-catalog-navbar-fg: #b8860b;
    --cfy-catalog-navbar-hover-bg: rgba(184, 134, 11, 0.18);
    --cfy-catalog-navbar-hover-border: #b8860b;
    --cfy-catalog-navbar-focus-ring: rgba(184, 134, 11, 0.25);
    --cfy-catalog-navbar-option-bg: #252525;
    --cfy-catalog-navbar-option-fg: #ffffff;
}

body.dark-mode,
html.dark-mode,
body[data-bs-theme='dark'] {
    --cfy-catalog-navbar-bg: rgba(255, 215, 0, 0.1);
    --cfy-catalog-navbar-border: rgba(255, 215, 0, 0.32);
    --cfy-catalog-navbar-fg: #FFD700;
    --cfy-catalog-navbar-hover-bg: rgba(255, 215, 0, 0.2);
    --cfy-catalog-navbar-hover-border: #FFD700;
    --cfy-catalog-navbar-focus-ring: rgba(255, 215, 0, 0.28);
    --cfy-catalog-navbar-option-bg: #1a1d21;
    --cfy-catalog-navbar-option-fg: #ffffff;
}

/* ---------- barre : bouton « Tous les catalogues » + 16 cellules ---------- */
.cfy-catalog-navbar {
    display: flex;
    align-items: stretch;
    font-family: var(--cfy-font-family);
    min-height: 3.1rem;
    max-width: 100%;
    background: var(--cfy-catalog-navbar-bg) !important;
    border: 1px solid var(--cfy-catalog-navbar-border);
    border-radius: 0 !important;
    vertical-align: middle;
}

.cfy-catalog-navbar-all {
    appearance: none;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 16px;
    border: 0;
    border-radius: 0;
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
    font-family: inherit;
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-bold);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.cfy-catalog-navbar-all:hover {
    background: var(--cfy-hr-accent-hi);
}

.cfy-catalog-navbar-all[aria-expanded="true"] {
    background: var(--cfy-hr-accent-lo);
}

.cfy-catalog-navbar-all:focus-visible {
    outline: 2px solid var(--cfy-catalog-navbar-option-fg);
    outline-offset: -4px;
}

.cfy-catalog-navbar-all-icon,
.cfy-catalog-navbar-cell-icon,
.cfy-catalog-navbar-chevron {
    display: inline-flex;
    flex: 0 0 auto;
}

.cfy-catalog-navbar-list {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.cfy-catalog-navbar-list::-webkit-scrollbar {
    display: none;
}

.cfy-catalog-navbar-crumb {
    flex: 0 0 auto;
    display: flex;
    border-inline-end: 1px solid var(--cfy-catalog-navbar-border);
}

/* Toute la cellule est le bouton : clic n'importe où pour ouvrir le mégamenu */
.cfy-catalog-navbar-toggle {
    appearance: none;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 14px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-catalog-navbar-fg);
    font-family: inherit;
    text-align: start;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.cfy-catalog-navbar-toggle:hover {
    background: var(--cfy-catalog-navbar-hover-bg);
    box-shadow: inset 0 -2px 0 var(--cfy-catalog-navbar-hover-border);
}

.cfy-catalog-navbar-toggle[aria-expanded="true"] {
    background: var(--cfy-catalog-navbar-hover-bg);
    box-shadow: inset 0 -2px 0 var(--cfy-catalog-navbar-hover-border);
}

.cfy-catalog-navbar-toggle:focus-visible {
    outline: 1px solid var(--cfy-catalog-navbar-hover-border);
    outline-offset: -3px;
}

.cfy-catalog-navbar-chevron {
    opacity: 0.6;
    transition: transform 0.15s ease;
}

.cfy-catalog-navbar-toggle[aria-expanded="true"] .cfy-catalog-navbar-chevron {
    transform: rotate(180deg);
    opacity: 1;
}

.cfy-catalog-navbar-crumb-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}

.cfy-catalog-navbar-crumb-caption {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1;
    opacity: 0.7;
}

.cfy-catalog-navbar-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-medium);
    line-height: 1.2;
}

.cfy-catalog-navbar-label--static {
    opacity: 0.7;
    font-weight: var(--cfy-fw-regular);
}

.cfy-catalog-navbar-label-sep {
    opacity: 0.5;
    font-weight: var(--cfy-fw-regular);
}

.cfy-catalog-navbar-label-flag {
    flex: 0 0 auto;
    width: 16px;
    height: 12px;
    object-fit: cover;
}

.cfy-catalog-navbar-crumb--set .cfy-catalog-navbar-toggle {
    box-shadow: inset 0 -2px 0 var(--cfy-catalog-navbar-border);
}

/* Catalogue courant : illuminé en permanence */
.cfy-catalog-navbar-crumb--current .cfy-catalog-navbar-toggle {
    background: var(--cfy-catalog-navbar-hover-bg);
    box-shadow: inset 0 -3px 0 var(--cfy-catalog-navbar-hover-border);
}

.cfy-catalog-navbar-crumb--current .cfy-catalog-navbar-label {
    font-weight: var(--cfy-fw-bold);
}

/* Mégamenu ouvert : il recouvre les barres fixes de la page (en-tête des pages éditeur, barres
   d'outils des pages de sélection), qui passent sous lui ; le header reste au-dessus. */
html.cfy-mm-open body .page-publisher-typology .publisher-header-card.publisher-header-sticky:not(#cfy-b1):not(#cfy-b2) {
    z-index: 1004;
}
html.cfy-mm-open body [id^="hyperprofil_toolbar_"]:not(#cfy-b1) {
    z-index: 1004 !important;
}

/* ---------- mégamenu (panneau fixe sous la barre) ---------- */
/* Empilement : au-dessus du contenu et de la barre catalogue collante (1000), mais SOUS le
   header (1010+), le panneau Options (1040), les modales (1050+) et tout ce qu'ouvre le header. */
.cfy-catalog-navbar-mega {
    position: fixed;
    z-index: 1005;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    font-family: var(--cfy-font-family);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    border: 1px solid rgba(var(--cfy-t-accent-rgb), 0.6);
    border-top: 0;
    box-shadow: var(--cfy-t-shadow);
    animation: cfy-mm-in 0.14s ease-out;
}

.cfy-catalog-navbar-mega[hidden] {
    display: none;
}

@keyframes cfy-mm-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: none; }
}

.cfy-catalog-navbar-mega svg {
    flex: 0 0 auto;
}

/* En-tête = header du site (comme les modales) */
.cfy-mm-head-bar {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    padding: 12px 18px;
    background: var(--cfy-hr-hd-bg);
    color: var(--cfy-hr-ink);
    border-bottom: 1px solid var(--cfy-hr-rule);
    box-shadow: inset 0 2px 0 var(--cfy-hr-accent);
}

.cfy-mm-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-bold);
}

.cfy-mm-title > svg {
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-title-count {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-medium);
    color: var(--cfy-hr-hd-ink-3);
}

.cfy-mm-spacer {
    flex: 1 1 auto;
}

.cfy-mm-close {
    appearance: none;
    display: inline-flex;
    padding: 4px;
    border: 0;
    background: none;
    color: var(--cfy-hr-ink-2);
    cursor: pointer;
}

.cfy-mm-close:hover {
    color: var(--cfy-hr-ink);
}

.cfy-mm-filter {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 240px;
    height: 34px;
    margin: 0;
    padding: 0 10px;
    background: var(--cfy-hr-pill-bg);
    border: 1px solid var(--cfy-hr-ph-line-2);
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-filter--wide {
    min-width: min(460px, 100%);
}

.cfy-mm-filter--small {
    min-width: 0;
    height: 28px;
}

.cfy-mm-filter:focus-within {
    border-color: var(--cfy-hr-accent);
}

.cfy-mm-filter input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--cfy-hr-ink);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
}

.cfy-mm-body {
    padding: 14px 18px 18px;
    overflow: auto;
    overscroll-behavior: contain;
    min-height: 0;
}

.cfy-mm-h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 10px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-empty {
    padding: 12px;
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-hr-hd-ink-3);
}

/* Ligne de valeur */
.cfy-mm-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    color: var(--cfy-hr-ink);
    font-size: var(--cfy-fs-base);
    text-decoration: none;
    min-width: 0;
}

.cfy-mm-item[hidden] {
    display: none;
}

.cfy-mm-item-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfy-mm-item-sub {
    margin-inline-start: 6px;
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-hr-hd-ink-3);
}

.cfy-mm-item-count {
    flex: 0 0 auto;
    font-size: var(--cfy-fs-caption);
    font-variant-numeric: tabular-nums;
    color: var(--cfy-hr-hd-ink-3);
}

.cfy-mm-item-go,
.cfy-mm-item-icon {
    display: inline-flex;
    color: var(--cfy-hr-ink-faint);
}

.cfy-mm-item:hover,
.cfy-mm-item:focus-visible {
    background: rgba(var(--cfy-hr-accent-rgb), 0.10);
    color: var(--cfy-hr-accent-text);
    box-shadow: inset 2px 0 0 var(--cfy-hr-accent);
    outline: 0;
}

.cfy-mm-item:hover .cfy-mm-item-go {
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-item.is-hot,
.cfy-mm-item.is-selected {
    background: rgba(var(--cfy-hr-accent-rgb), 0.12);
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-item.is-current {
    background: rgba(var(--cfy-hr-accent-rgb), 0.20);
    color: var(--cfy-hr-accent-text);
    font-weight: var(--cfy-fw-semibold);
    box-shadow: inset 3px 0 0 var(--cfy-hr-accent);
}

.cfy-mm-item.is-current .cfy-mm-item-count {
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-item.is-empty,
.cfy-mm-tile.is-empty {
    opacity: 0.45;
}

.cfy-mm-item.cfy-mm-head {
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-hr-accent-text);
    border-bottom: 1px dashed var(--cfy-hr-ph-line-2);
}

.cfy-mm-flag {
    flex: 0 0 auto;
    width: 20px;
    height: 15px;
    object-fit: cover;
}

.cfy-mm-cols {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 2px 14px;
}

/* Tuiles (catalogues, prix, prix récurrents, notation) */
.cfy-mm-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.cfy-mm-tile {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px;
    background: var(--cfy-hr-tile-bg);
    border: 1px solid var(--cfy-hr-ph-line-2);
    color: var(--cfy-hr-ink);
    text-decoration: none;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.cfy-mm-tile-icon {
    display: inline-flex;
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-tile b {
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-semibold);
}

.cfy-mm-tile-desc {
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-tile-count {
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-tile:hover,
.cfy-mm-tile:focus-visible {
    border-color: var(--cfy-hr-accent);
    background: rgba(var(--cfy-hr-accent-rgb), 0.08);
    color: var(--cfy-hr-ink);
    outline: 0;
}

.cfy-mm-tile.is-current {
    border-color: var(--cfy-hr-accent);
    background: rgba(var(--cfy-hr-accent-rgb), 0.18);
    box-shadow: inset 0 -3px 0 var(--cfy-hr-accent);
}

/* Calendrier des dates */
.cfy-mm-cals {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
}

.cfy-mm-cal h4 {
    margin: 0 0 6px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    text-transform: capitalize;
}

.cfy-mm-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 46px);
    gap: 3px;
}

.cfy-mm-cal-grid b {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-medium);
    text-align: center;
    color: var(--cfy-hr-hd-ink-3);
}

.cfy-mm-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 42px;
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-hr-ink);
    text-decoration: none;
    background: rgba(var(--cfy-hr-accent-rgb), calc(var(--cfy-mm-heat, 0) * 0.5));
    border: 1px solid var(--cfy-hr-ph-line);
}

.cfy-mm-day small {
    font-size: var(--cfy-fs-caption);
    font-variant-numeric: tabular-nums;
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-day.is-empty {
    opacity: 0.3;
}

a.cfy-mm-day:hover,
a.cfy-mm-day:focus-visible {
    border-color: var(--cfy-hr-accent);
    color: var(--cfy-hr-ink);
    outline: 0;
}

.cfy-mm-day.is-current {
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
    font-weight: var(--cfy-fw-bold);
}

.cfy-mm-day.is-current small {
    color: var(--cfy-hr-on-flat);
}

/* Colonnes géographiques */
.cfy-mm-miller {
    display: grid;
    grid-template-columns: repeat(6, minmax(190px, 1fr));
    overflow-x: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--cfy-hr-ph-line);
}

.cfy-mm-miller[hidden],
.cfy-mm-geobar[hidden],
.cfy-mm-georesults[hidden] {
    display: none;
}

.cfy-mm-mcol {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-inline-end: 1px solid var(--cfy-hr-ph-line);
}

.cfy-mm-mcol:last-child {
    border-inline-end: 0;
}

.cfy-mm-mcol-head {
    padding: 8px 10px;
    background: var(--cfy-hr-ph-bg-2);
    border-bottom: 1px solid var(--cfy-hr-ph-line);
}

.cfy-mm-mcol-head b {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-mcol-count {
    font-weight: var(--cfy-fw-medium);
    letter-spacing: 0;
    color: var(--cfy-hr-hd-ink-3);
}

.cfy-mm-mcol-list {
    height: min(380px, 50vh);
    overflow: auto;
    overscroll-behavior: contain;
}

.cfy-mm-geobar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--cfy-hr-ph-line);
    border-top: 0;
    background: var(--cfy-hr-ph-bg-2);
}

.cfy-mm-geopath {
    flex: 1 1 auto;
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-geopath b {
    color: var(--cfy-hr-ink);
}

.cfy-mm-go {
    padding: 8px 16px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
    text-decoration: none;
}

.cfy-mm-go:hover {
    background: var(--cfy-hr-flat-hi);
    color: var(--cfy-hr-on-flat);
}

/* Petits écrans : arbre empilé, colonnes géo défilantes */
@media (max-width: 767.98px) {
    .cfy-mm-filter,
    .cfy-mm-filter--wide {
        min-width: 0;
        width: 100%;
    }
    .cfy-mm-cal-grid {
        grid-template-columns: repeat(7, 40px);
    }
}

/* RTL : liserés inversés */
html[dir="rtl"] .cfy-mm-item:hover,
html[dir="rtl"] .cfy-mm-item:focus-visible {
    box-shadow: inset -2px 0 0 var(--cfy-hr-accent);
}

html[dir="rtl"] .cfy-mm-item.is-current {
    box-shadow: inset -3px 0 0 var(--cfy-hr-accent);
}

body.performance-mode .cfy-catalog-navbar-mega {
    animation: none;
}

body.performance-mode .cfy-catalog-navbar-toggle,
body.performance-mode .cfy-mm-tile {
    transition-duration: 0.01ms !important;
}

/* ---------- barre à puces : filtres actifs + bouton « Affiner » ---------- */
.cfy-catalog-navbar-chips {
    flex: 0 1 auto;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin: 0;
    padding: 0 12px;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}

.cfy-catalog-navbar-chips::-webkit-scrollbar {
    display: none;
}

.cfy-catalog-navbar-chips:empty {
    display: none;
}

.cfy-catalog-navbar-chip {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    border: 1px solid var(--cfy-hr-ph-line-2);
    background: rgba(var(--cfy-hr-accent-rgb), 0.06);
}

.cfy-catalog-navbar-chip-btn {
    appearance: none;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 4px 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-hr-ink);
    font-family: inherit;
    text-align: start;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.cfy-catalog-navbar-chip-btn:hover,
.cfy-catalog-navbar-chip-btn[aria-expanded="true"] {
    background: rgba(var(--cfy-hr-accent-rgb), 0.14);
}

.cfy-catalog-navbar-chip-btn:focus-visible,
.cfy-catalog-navbar-chip-remove:focus-visible,
.cfy-catalog-navbar-refine:focus-visible {
    outline: 1px solid var(--cfy-hr-accent);
    outline-offset: -3px;
}

/* Pictogrammes des puces et d'« Affiner » en accent (bat la teinte atténuée des anciennes cellules) */
.cfy-catalog-navbar .cfy-catalog-navbar-chip-btn .cfy-catalog-navbar-cell-icon,
.cfy-catalog-navbar .cfy-catalog-navbar-refine .cfy-catalog-navbar-cell-icon,
.nk-body .cfy-vignettes-pre-banner .cfy-catalog-navbar-chip-btn .cfy-catalog-navbar-cell-icon,
.nk-body .cfy-vignettes-pre-banner .nk-body .cfy-vignettes-pre-banner .cfy-catalog-navbar-chip--base .cfy-catalog-navbar-cell-icon {
    color: var(--cfy-hr-ink-2);
}

.cfy-catalog-navbar-chip-caption {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-medium);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cfy-hr-ink-2);
}

.cfy-catalog-navbar-chip .cfy-catalog-navbar-label {
    font-weight: var(--cfy-fw-semibold);
}

/* Filtre du catalogue courant : bordure et fond accent */
.cfy-catalog-navbar-chip--current {
    border-color: var(--cfy-hr-accent);
    background: rgba(var(--cfy-hr-accent-rgb), 0.16);
}

/* Catalogue public de base : puce discrète, sans croix */
.cfy-catalog-navbar-chip--base {
    border-color: var(--cfy-hr-ph-line);
    background: transparent;
}

.cfy-catalog-navbar-chip-remove {
    display: inline-flex;
    align-items: center;
    padding: 0 9px;
    border-inline-start: 1px solid var(--cfy-hr-ph-line-2);
    color: var(--cfy-hr-ink-2);
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.cfy-catalog-navbar-chip-remove:hover {
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}

.cfy-catalog-navbar-refine {
    appearance: none;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 18px;
    border: 0;
    border-inline-start: 1px solid var(--cfy-hr-ph-line);
    border-inline-end: 1px solid var(--cfy-hr-ph-line);
    border-radius: 0;
    background: transparent;
    color: var(--cfy-hr-ink);
    font-family: inherit;
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-semibold);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.cfy-catalog-navbar-refine:hover {
    background: rgba(var(--cfy-hr-accent-rgb), 0.10);
    box-shadow: inset 0 -2px 0 rgba(var(--cfy-hr-accent-rgb), 0.6);
}

.cfy-catalog-navbar-refine[aria-expanded="true"] {
    background: rgba(var(--cfy-hr-accent-rgb), 0.16);
    box-shadow: inset 0 -2px 0 var(--cfy-hr-accent);
}

.cfy-catalog-navbar-refine[aria-expanded="true"] .cfy-catalog-navbar-chevron {
    transform: rotate(180deg);
    opacity: 1;
}

@media (max-width: 767.98px) {
    .cfy-catalog-navbar-chip-caption {
        display: none;
    }
    .cfy-catalog-navbar-refine {
        padding: 0 12px;
    }
}

body.performance-mode .cfy-catalog-navbar-chip-btn,
body.performance-mode .cfy-catalog-navbar-chip-remove,
body.performance-mode .cfy-catalog-navbar-refine {
    transition-duration: 0.01ms !important;
}

/* ======================================================================
   Panneau « Tous les catalogues » : colonne des sections + contenu illustré
   ====================================================================== */

/* Le contenu suit le mode clair / sombre : les anciennes teintes « header » du panneau
   sont rebranchées sur les surfaces du thème. */
.cfy-mm-hub {
    --cfy-hr-panel-bg: var(--cfy-t-surface);
    --cfy-hr-tile-bg: var(--cfy-t-surface-2);
    --cfy-hr-pill-bg: var(--cfy-t-surface);
    --cfy-hr-ph-bg: var(--cfy-t-surface-2);
    --cfy-hr-ph-bg-2: var(--cfy-t-surface-3);
    --cfy-hr-ph-line: var(--cfy-t-line);
    --cfy-hr-ph-line-2: var(--cfy-t-line-2);
    --cfy-hr-ink: var(--cfy-t-ink);
    --cfy-hr-ink-2: var(--cfy-t-ink-2);
    --cfy-hr-ink-muted: var(--cfy-t-muted);
    --cfy-hr-ink-faint: var(--cfy-t-faint);
    --cfy-hr-hd-ink-3: var(--cfy-t-muted);
    --cfy-hr-accent-text: var(--cfy-t-accent);
    --cfy-hr-accent: var(--cfy-t-fill);
    --cfy-hr-accent-hi: var(--cfy-t-fill-hi);
    --cfy-hr-accent-lo: var(--cfy-t-fill-lo);
    --cfy-hr-accent-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-accent: var(--cfy-t-on-fill);
    --cfy-hr-flat: var(--cfy-t-fill);
    --cfy-hr-flat-hi: var(--cfy-t-fill-hi);
    --cfy-hr-flat-lo: var(--cfy-t-fill-lo);
    --cfy-hr-flat-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-flat: var(--cfy-t-on-fill);
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    min-height: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
}

.cfy-mm-head-bar .cfy-mm-title {
    color: var(--cfy-hr-ink);
}

.cfy-mm-head-bar .cfy-mm-title > svg {
    color: var(--cfy-hr-accent-text);
}

.cfy-mm-head-bar .cfy-mm-filter {
    flex: 1 1 360px;
    max-width: 560px;
    height: 38px;
    background: var(--cfy-hr-pill-bg);
    border-color: var(--cfy-hr-rule);
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-head-bar .cfy-mm-filter:focus-within {
    border-color: var(--cfy-hr-accent);
}

/* Le cadre du champ porte l'anneau de focus (bordure accent + liseré) : pas de second anneau sur l'input */
html body .cfy-catalog-navbar-mega .cfy-mm-filter input:focus,
html body .cfy-catalog-navbar-mega .cfy-mm-filter input:focus-visible {
    outline: 0 !important;
    box-shadow: none;
    border: 0;
}

.cfy-catalog-navbar-mega .cfy-mm-filter:focus-within {
    box-shadow: inset 0 0 0 1px var(--cfy-t-accent);
}

.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-filter:focus-within {
    box-shadow: inset 0 0 0 1px var(--cfy-hr-accent);
}

.cfy-catalog-navbar-mega .cfy-mm-filter input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.cfy-mm-head-bar .cfy-mm-filter input {
    color: var(--cfy-hr-ink);
    font-size: var(--cfy-fs-base);
}

.cfy-mm-head-bar .cfy-mm-filter input::placeholder {
    color: var(--cfy-hr-ink-2);
    opacity: 0.75;
}

.cfy-mm-head-bar .cfy-mm-close {
    padding: 6px;
    background: var(--cfy-hr-pill-bg);
    border: 1px solid var(--cfy-hr-rule);
    color: var(--cfy-hr-ink-2);
}

.cfy-mm-head-bar .cfy-mm-close:hover {
    background: var(--cfy-hr-flat);
    border-color: var(--cfy-hr-flat-lo);
    color: var(--cfy-hr-on-flat);
}

/* Colonne des sections */
.cfy-mm-rail {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 0;
    padding: 10px 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: color-mix(in srgb, var(--cfy-t-fill) 5%, var(--cfy-t-surface-2));
    border-inline-end: 1px solid var(--cfy-t-line);
    scrollbar-width: thin;
}

.cfy-mm-railbtn {
    appearance: none;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    flex-shrink: 0; /* la colonne défile : un libellé sur deux lignes ne doit jamais être écrasé */
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-inline-start: 3px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-t-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-medium);
    text-align: start;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.cfy-mm-railbtn-icon {
    display: inline-flex;
    color: var(--cfy-t-muted);
}

.cfy-mm-railbtn-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfy-mm-railbtn-count {
    font-size: var(--cfy-fs-caption);
    font-variant-numeric: tabular-nums;
    color: var(--cfy-t-ink-2);
}

.cfy-mm-railbtn:hover {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
}

.cfy-mm-railbtn:focus-visible {
    outline: 2px solid var(--cfy-t-accent);
    outline-offset: -2px;
}

.cfy-mm-railbtn[aria-selected="true"] {
    background: var(--cfy-t-surface);
    border-inline-start-color: var(--cfy-t-fill);
    color: var(--cfy-t-ink);
    font-weight: var(--cfy-fw-semibold);
    box-shadow: 0 1px 0 var(--cfy-t-line), 0 -1px 0 var(--cfy-t-line);
}

.cfy-mm-railbtn[aria-selected="true"] .cfy-mm-railbtn-icon {
    color: var(--cfy-t-accent);
}

/* Zone de contenu */
.cfy-mm-pane {
    min-width: 0;
    min-height: 0;
    padding: 18px 22px 26px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: color-mix(in srgb, var(--cfy-t-fill) 3%, var(--cfy-t-surface));
    scrollbar-width: thin;
}

.cfy-mm-sechead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.cfy-mm-sectitle {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: var(--cfy-fs-h4);
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-ink);
}

.cfy-mm-sectitle > svg {
    color: var(--cfy-t-accent);
}

.cfy-mm-seccount {
    padding: 2px 8px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    background: var(--cfy-t-accent-soft);
    color: var(--cfy-t-accent);
}

.cfy-mm-pane .cfy-mm-filter {
    background: var(--cfy-t-surface);
    border-color: var(--cfy-t-line-2);
    color: var(--cfy-t-muted);
}

.cfy-mm-pane .cfy-mm-filter:focus-within {
    border-color: var(--cfy-t-accent);
}

.cfy-mm-pane .cfy-mm-filter input {
    color: var(--cfy-t-ink);
}

.cfy-mm-filter--sec {
    flex: 0 1 300px;
}

.cfy-mm-pane .cfy-mm-h3 {
    color: var(--cfy-t-muted);
}

.cfy-mm-pane .cfy-mm-empty {
    color: var(--cfy-t-muted);
}

/* Vue d'ensemble : chiffres clés */
.cfy-mm-hero {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 40px;
    padding: 18px 22px;
    margin-bottom: 16px;
    background: linear-gradient(120deg, color-mix(in srgb, var(--cfy-t-fill) 24%, var(--cfy-t-surface)), var(--cfy-t-surface) 75%);
    border: 1px solid rgba(var(--cfy-t-fill-rgb), 0.45);
    box-shadow: inset 4px 0 0 var(--cfy-t-fill);
}

.cfy-mm-hero .cfy-mm-hero-num {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.cfy-mm-hero .cfy-mm-hero-num b {
    font-size: var(--cfy-fs-h2);
    font-weight: var(--cfy-fw-bold);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--cfy-t-ink);
}

.cfy-mm-hero .cfy-mm-hero-num span {
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-medium);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
    gap: 8px;
    margin-bottom: 24px;
}

.cfy-mm-stat {
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 12px;
    border: 1px solid var(--cfy-t-line);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    font-family: inherit;
    text-align: start;
    cursor: pointer;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.cfy-mm-stat-icon {
    display: inline-flex;
    color: var(--cfy-t-accent);
}

.cfy-mm-stat b {
    font-size: var(--cfy-fs-h4);
    font-weight: var(--cfy-fw-bold);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.cfy-mm-stat > span:last-child {
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-muted);
}

.cfy-mm-stat:hover,
.cfy-mm-stat:focus-visible {
    border-color: rgba(var(--cfy-t-fill-rgb), 0.65);
    box-shadow: inset 0 -2px 0 var(--cfy-t-fill);
    outline: 0;
}

/* Bandeaux de la vue d'ensemble */
.cfy-mm-strip {
    margin-bottom: 22px;
}

.cfy-mm-strip-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--cfy-t-line);
}

.cfy-mm-strip-head h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-ink);
}

.cfy-mm-strip-head h3 > svg {
    color: var(--cfy-t-accent);
}

.cfy-mm-seeall {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-t-accent);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    cursor: pointer;
}

.cfy-mm-seeall:hover {
    background: var(--cfy-t-accent-soft);
}

/* Cartes illustrées */
.cfy-mm-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 10px;
}

.cfy-mm-cards--strip {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.cfy-mm-card {
    appearance: none;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--cfy-t-line);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    font-family: inherit;
    text-align: start;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease;
}

.cfy-mm-card[hidden] {
    display: none;
}

.cfy-mm-card:hover,
.cfy-mm-card:focus-visible {
    border-color: rgba(var(--cfy-t-fill-rgb), 0.65);
    box-shadow: inset 0 -2px 0 var(--cfy-t-fill), var(--cfy-t-shadow);
    color: var(--cfy-t-ink);
    text-decoration: none;
    transform: translateY(-1px);
    outline: 0;
}

.cfy-mm-card.is-current {
    border-color: var(--cfy-t-fill);
    background: color-mix(in srgb, var(--cfy-t-fill) 12%, var(--cfy-t-surface));
    box-shadow: inset 0 -3px 0 var(--cfy-t-fill);
}

.cfy-mm-card.is-empty {
    opacity: 0.55;
}

.cfy-mm-card-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    max-width: 100%;
}

.cfy-mm-card-label {
    overflow: hidden;
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-semibold);
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfy-mm-card-sub {
    overflow: hidden;
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfy-mm-card-count {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    color: var(--cfy-t-accent);
}

.cfy-mm-card-go {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    display: inline-flex;
    color: var(--cfy-t-faint);
}

.cfy-mm-card:hover .cfy-mm-card-go {
    color: var(--cfy-t-accent);
}

/* Cartes compactes (devises, langues, résultats) : image à gauche */
.cfy-mm-cards--compact {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 6px;
}

.cfy-mm-cards--compact .cfy-mm-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
}

/* Images */
.cfy-mm-media {
    position: relative;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.cfy-mm-media img {
    display: block;
    max-width: none;
}

.cfy-mm-media--lg {
    width: 96px;
    height: 72px;
}

.cfy-mm-media--sm {
    width: 48px;
    height: 36px;
}

.cfy-mm-media--lg.cfy-mm-media--sq {
    width: 72px;
    height: 72px;
}

.cfy-mm-media--sm.cfy-mm-media--sq {
    width: 36px;
    height: 36px;
}

.cfy-mm-media--ph {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-muted);
}

.cfy-mm-media--ph svg {
    width: 20px;
    height: 20px;
}

.cfy-mm-media-code {
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.04em;
    color: var(--cfy-t-ink-2);
}

.cfy-mm-media--mask,
.cfy-mm-media--geo {
    background: var(--cfy-t-accent-soft);
}

.cfy-mm-tint {
    position: absolute;
    inset: 4px;
    background: var(--cfy-t-accent);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.cfy-mm-tint--ctx {
    background: var(--cfy-t-muted);
    opacity: 0.5;
}

.cfy-mm-code {
    position: absolute;
    inset-inline-start: 0;
    bottom: 0;
    padding: 1px 4px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-bold);
    line-height: 1.2;
    letter-spacing: 0.04em;
    background: var(--cfy-t-ink);
    color: var(--cfy-t-surface);
}

.cfy-mm-media--sm .cfy-mm-code {
    display: none;
}

/* Vue détaillée d'une catégorie / d'un rayon */
.cfy-mm-back {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px 6px 6px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    cursor: pointer;
}

.cfy-mm-back svg {
    transform: rotate(180deg);
}

html[dir="rtl"] .cfy-mm-back svg {
    transform: none;
}

.cfy-mm-back:hover {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}

.cfy-mm-drillhead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    padding: 14px;
    background: var(--cfy-t-surface);
    border: 1px solid var(--cfy-t-line);
    box-shadow: inset 3px 0 0 var(--cfy-t-fill);
}

.cfy-mm-drillhead-text {
    flex: 1 1 200px;
    min-width: 0;
}

.cfy-mm-drillhead-text h2 {
    margin: 0 0 4px;
    font-size: var(--cfy-fs-h4);
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-ink);
}

.cfy-mm-drillhead-text span {
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-t-muted);
}

.cfy-mm-cta {
    display: inline-flex;
    align-items: center;
    padding: 10px 16px;
    background: linear-gradient(180deg, var(--cfy-t-fill-hi), var(--cfy-t-fill) 60%, var(--cfy-t-fill-lo));
    border: 1px solid var(--cfy-t-fill-lo);
    color: var(--cfy-t-on-fill);
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    text-decoration: none;
    white-space: nowrap;
}

.cfy-mm-cta:hover {
    color: var(--cfy-t-on-fill);
    text-decoration: none;
    filter: brightness(1.05);
}

/* Colonnes géographiques dans le contenu */
.cfy-mm-pane .cfy-mm-miller {
    background: var(--cfy-t-surface);
}

.cfy-mm-pane .cfy-mm-mcol-list {
    max-height: calc(100% - 0px);
}

/* ======================================================================
   Barre sous le header : surfaces claires en mode clair
   ====================================================================== */
body:not(.dark-mode) .cfy-vignettes-pre-banner {
    --cfy-hr-ph-bg: var(--cfy-t-surface);
    --cfy-hr-ph-bg-2: color-mix(in srgb, var(--cfy-t-fill) 6%, var(--cfy-t-surface));
    --cfy-hr-ph-line: var(--cfy-t-line-2);
    --cfy-hr-ph-line-2: var(--cfy-t-line-2);
    --cfy-hr-pill-bg: var(--cfy-t-surface);
    --cfy-hr-panel-bg: var(--cfy-t-surface);
    --cfy-hr-tile-bg: var(--cfy-t-surface-2);
    --cfy-hr-rule: var(--cfy-t-line-2);
    --cfy-hr-ink: var(--cfy-t-ink);
    --cfy-hr-ink-2: var(--cfy-t-ink-2);
    --cfy-hr-ink-muted: var(--cfy-t-muted);
    --cfy-hr-ink-faint: var(--cfy-t-muted);
    --cfy-hr-hd-ink-3: var(--cfy-t-muted);
    --cfy-hr-accent-text: var(--cfy-t-accent);
    --cfy-hr-accent: var(--cfy-t-fill);
    --cfy-hr-accent-hi: var(--cfy-t-fill-hi);
    --cfy-hr-accent-lo: var(--cfy-t-fill-lo);
    --cfy-hr-accent-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-accent: var(--cfy-t-on-fill);
    --cfy-hr-flat: var(--cfy-t-fill);
    --cfy-hr-flat-hi: var(--cfy-t-fill-hi);
    --cfy-hr-flat-lo: var(--cfy-t-fill-lo);
    --cfy-hr-flat-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-flat: var(--cfy-t-on-fill);
    --cfy-tx-link: var(--cfy-t-accent);
    --cfy-tx-accent-strong: var(--cfy-t-accent);
    --cfy-vpre-banner-bg: var(--cfy-t-surface);
    --cfy-catalog-action-bg: var(--cfy-t-surface);
    --cfy-catalog-action-fg: var(--cfy-t-accent);
    --cfy-catalog-action-border: var(--cfy-t-line-2);
    --cfy-catalog-action-hover-bg: var(--cfy-t-accent-soft);
    --cfy-catalog-action-hover-fg: var(--cfy-t-accent);
    --cfy-catalog-action-active-bg: var(--cfy-t-accent-soft);
    --cfy-catalog-action-active-fg: var(--cfy-t-accent);
    --cfy-catalog-action-disabled-bg: var(--cfy-t-surface-2);
    --cfy-catalog-action-disabled-fg: var(--cfy-t-faint);
    --cfy-catalog-action-disabled-border: var(--cfy-t-line);
    --cfy-catalog-navbar-bg: var(--cfy-t-surface);
    --cfy-catalog-navbar-border: var(--cfy-t-line-2);
    --cfy-catalog-navbar-fg: var(--cfy-t-accent);
    --cfy-catalog-navbar-hover-bg: var(--cfy-t-accent-soft);
    --cfy-catalog-navbar-hover-border: var(--cfy-t-fill);
    --cfy-catalog-navbar-option-bg: var(--cfy-t-surface);
    --cfy-catalog-navbar-option-fg: var(--cfy-t-ink);
    box-shadow: 0 1px 0 var(--cfy-t-line-2), 0 8px 18px -14px rgba(var(--cfy-t-accent-rgb), 0.45);
}

/* Petits écrans : sections en bandeau défilant au-dessus du contenu */
@media (max-width: 767.98px) {
    .cfy-mm-hub {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
    }
    .cfy-mm-rail {
        flex-direction: row;
        padding: 6px;
        overflow-x: auto;
        overflow-y: hidden;
        border-inline-end: 0;
        border-bottom: 1px solid var(--cfy-t-line);
    }
    .cfy-mm-railbtn {
        grid-template-columns: 18px auto auto;
        width: auto;
        flex: 0 0 auto;
        padding: 8px 10px;
        border-inline-start: 0;
        border-bottom: 3px solid transparent;
    }
    .cfy-mm-railbtn[aria-selected="true"] {
        border-bottom-color: var(--cfy-t-fill);
        box-shadow: none;
    }
    .cfy-mm-pane {
        padding: 14px 12px 20px;
    }
    .cfy-mm-cards,
    .cfy-mm-cards--strip {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }
    .cfy-mm-cards--compact {
        grid-template-columns: 1fr;
    }
    .cfy-mm-head-bar .cfy-mm-filter {
        order: 10;
        flex-basis: 100%;
        max-width: none;
    }
    .cfy-mm-hero .cfy-mm-hero-num b {
        font-size: var(--cfy-fs-h4);
    }
}

body.performance-mode .cfy-mm-card,
body.performance-mode .cfy-mm-stat,
body.performance-mode .cfy-mm-railbtn {
    transition-duration: 0.01ms !important;
}

body.performance-mode .cfy-mm-card:hover {
    transform: none;
    box-shadow: inset 0 -2px 0 var(--cfy-t-fill);
}

/* Squelette de chargement du contenu */
.cfy-mm-skel-title {
    display: block;
    width: 220px;
    height: 24px;
    margin-bottom: 18px;
}

.cfy-mm-skel-card {
    display: block;
    height: 150px;
}

.cfy-mm-skel-title,
.cfy-mm-skel-card {
    background: linear-gradient(90deg, var(--cfy-t-surface-2) 0%, var(--cfy-t-surface-3) 50%, var(--cfy-t-surface-2) 100%);
    background-size: 200% 100%;
    animation: cfy-mm-skel 1.2s linear infinite;
}

@keyframes cfy-mm-skel {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

body.performance-mode .cfy-mm-skel-title,
body.performance-mode .cfy-mm-skel-card {
    animation: none;
}

/* Lisibilité (AA) dans le panneau : états vides en texte atténué plutôt qu'en transparence,
   compteurs lisibles sur les fonds teintés (ligne choisie, carte courante, jours du calendrier). */
.cfy-mm-hub :is(.cfy-mm-item, .cfy-mm-tile, .cfy-mm-card, .cfy-mm-day).is-empty {
    opacity: 1;
    color: var(--cfy-t-muted);
    border-style: dashed;
}

.cfy-mm-hub .is-empty :is(b, small, .cfy-mm-item-label, .cfy-mm-item-count, .cfy-mm-tile-count, .cfy-mm-card-label, .cfy-mm-card-count) {
    color: var(--cfy-t-muted);
}

.cfy-mm-hub :is(.cfy-mm-item.is-hot, .cfy-mm-item.is-selected) {
    color: var(--cfy-t-ink);
    font-weight: var(--cfy-fw-semibold);
}

.cfy-mm-hub :is(.cfy-mm-item.is-hot, .cfy-mm-item.is-selected, .cfy-mm-item.is-current) .cfy-mm-item-count,
.cfy-mm-hub .cfy-mm-card.is-current .cfy-mm-card-count {
    color: var(--cfy-t-ink);
}

.cfy-mm-hub a.cfy-mm-day,
.cfy-mm-hub a.cfy-mm-day small {
    color: var(--cfy-t-ink);
}

/* ======================================================================
   HyperProfil : cases à cocher, plateau d'enregistrement
   ====================================================================== */

/* Interrupteur carré (barre et section « Mon HyperProfil ») */
.cfy-mm-hpswitch {
    appearance: none;
    position: relative;
    flex: 0 0 auto;
    align-self: center;
    width: 40px;
    height: 22px;
    margin: 0 12px 0 0;
    padding: 0;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.cfy-catalog-navbar-hpsw-dot,
.cfy-mm-hpsw-dot {
    position: absolute;
    top: 3px;
    inset-inline-start: 3px;
    width: 14px;
    height: 14px;
    transition: inset-inline-start 0.15s ease;
}

.cfy-catalog-navbar-hpsw-dot {
    background: var(--cfy-hr-ink-2);
}

.cfy-mm-hpswitch:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.cfy-mm-hpswitch {
    margin: 0;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface-3);
}

.cfy-mm-hpsw-dot {
    background: var(--cfy-t-muted);
}

.cfy-mm-hpswitch[aria-checked="true"] {
    border-color: var(--cfy-t-fill-lo);
    background: var(--cfy-t-fill);
}

.cfy-mm-hpswitch[aria-checked="true"] .cfy-mm-hpsw-dot {
    inset-inline-start: 21px;
    background: var(--cfy-t-on-fill);
}

/* Élément + case : deux cibles distinctes, la case posée dans le coin de la carte */
.cfy-mm-hpwrap {
    position: relative;
    min-width: 0;
}

.cfy-mm-hpwrap[hidden] {
    display: none;
}

.cfy-mm-hpwrap > .cfy-mm-card {
    width: 100%;
    height: 100%;
    padding-inline-end: 40px;
}

.cfy-mm-hpwrap > .cfy-mm-item {
    padding-inline-start: 38px;
}

.cfy-mm-hpcheck {
    position: absolute;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    cursor: pointer;
}

.cfy-mm-hpwrap > .cfy-mm-hpcheck {
    top: 6px;
    inset-inline-end: 6px;
}

.cfy-mm-hpwrap > .cfy-mm-item + .cfy-mm-hpcheck {
    top: 50%;
    inset-inline-start: 4px;
    inset-inline-end: auto;
    transform: translateY(-50%);
}

.cfy-mm-hpcheck input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.cfy-mm-hpcheck-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    color: transparent;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.cfy-mm-hpcheck-box svg {
    width: 14px;
    height: 14px;
}

.cfy-mm-hpcheck:hover .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-accent);
}

.cfy-mm-hpcheck input:focus-visible + .cfy-mm-hpcheck-box {
    outline: 2px solid var(--cfy-t-accent);
    outline-offset: 2px;
}

.cfy-mm-hpcheck input:checked + .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-fill-lo);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

/* Groupe partiellement dans l'HyperProfil */
.cfy-mm-hpcheck input:indeterminate + .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-fill-lo);
    background: linear-gradient(var(--cfy-t-fill), var(--cfy-t-fill)) center / 10px 2px no-repeat, var(--cfy-t-accent-soft);
}

.cfy-mm-hpcheck--grp .cfy-mm-hpcheck-box {
    box-shadow: 3px 3px 0 -1px var(--cfy-t-line-2);
}

/* Modification non encore enregistrée */
.cfy-mm-hpcheck.is-pending .cfy-mm-hpcheck-box {
    outline: 2px dashed var(--cfy-t-accent);
    outline-offset: 2px;
}

.cfy-mm-hpcheck.is-disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.cfy-mm-hpwrap.is-in > .cfy-mm-card {
    border-color: rgba(var(--cfy-t-fill-rgb), 0.55);
}

/* Case de groupe dans l'en-tête d'un parent */
.cfy-mm-drillhead-hp {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-medium);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-drillhead-hp .cfy-mm-hpcheck {
    position: static;
}

/* « Seulement ma sélection » */
.cfy-mm-onlymine {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-medium);
    white-space: nowrap;
    cursor: pointer;
}

.cfy-mm-onlymine:hover {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}

.cfy-mm-onlymine[aria-pressed="true"] {
    border-color: var(--cfy-t-fill-lo);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

/* Compteur « dans mon HyperProfil » de la colonne des sections */
.cfy-mm-railbtn {
    grid-template-columns: 20px minmax(0, 1fr) auto auto;
}

.cfy-mm-railbtn-hp {
    min-width: 20px;
    padding: 1px 6px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    text-align: center;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

.cfy-mm-railbtn-hp[hidden] {
    display: none;
}

@media (max-width: 767.98px) {
    .cfy-mm-railbtn {
        grid-template-columns: 18px auto auto auto;
    }
}

/* Section « Mon HyperProfil » : état */
.cfy-mm-hpstatus {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid var(--cfy-t-line);
    background: var(--cfy-t-surface);
    box-shadow: inset 3px 0 0 var(--cfy-t-line-2);
}

.cfy-mm-hpstatus.is-on {
    box-shadow: inset 3px 0 0 var(--cfy-t-fill);
}

.cfy-mm-hpstatus-dot {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    background: var(--cfy-t-faint);
}

.cfy-mm-hpstatus.is-on .cfy-mm-hpstatus-dot {
    background: var(--cfy-t-fill);
}

.cfy-mm-hpstatus-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.cfy-mm-hpstatus-text b {
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-ink);
}

.cfy-mm-hpstatus-text span {
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-t-muted);
}

.cfy-mm-hpempty p {
    margin: 0 0 12px;
    font-size: var(--cfy-fs-base);
    color: var(--cfy-t-muted);
}

.cfy-mm-hpempty-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
}

/* Plateau des modifications en attente (pied du panneau) */
.cfy-mm-hptray {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    max-height: 40%;
    padding: 10px 16px;
    overflow-y: auto;
    border-top: 1px solid rgba(var(--cfy-t-accent-rgb), 0.35);
    background: color-mix(in srgb, var(--cfy-t-fill) 8%, var(--cfy-t-surface-2));
    color: var(--cfy-t-ink);
}

.cfy-mm-hptray[hidden] {
    display: none;
}

.cfy-mm-hptray-head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--cfy-fs-sm);
}

.cfy-mm-hptray-msg {
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
}

.cfy-mm-hptray-msg.is-success {
    color: var(--cfy-tx-success);
}

.cfy-mm-hptray-msg.is-error {
    color: var(--cfy-tx-danger);
}

.cfy-mm-hptray-chips {
    flex: 1 1 320px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.cfy-mm-hpchip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 260px;
    padding: 2px 2px 2px 8px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-hpchip > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfy-mm-hpchip.is-add {
    border-color: rgba(var(--cfy-t-fill-rgb), 0.55);
}

.cfy-mm-hpchip.is-add > svg {
    color: var(--cfy-t-accent);
}

.cfy-mm-hpchip.is-remove > span {
    text-decoration: line-through;
    color: var(--cfy-t-muted);
}

.cfy-mm-hpchip.is-more {
    padding: 2px 8px;
    font-weight: var(--cfy-fw-semibold);
}

.cfy-mm-hpchip button {
    appearance: none;
    display: inline-flex;
    padding: 3px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-t-muted);
    cursor: pointer;
}

.cfy-mm-hpchip button:hover {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
}

.cfy-mm-hptray-actions {
    display: flex;
    gap: 8px;
    margin-inline-start: auto;
}

.cfy-mm-hpbtn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    cursor: pointer;
}

.cfy-mm-hpbtn:hover {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}

.cfy-mm-hpbtn--primary {
    background: linear-gradient(180deg, var(--cfy-t-fill-hi), var(--cfy-t-fill) 60%, var(--cfy-t-fill-lo));
    border-color: var(--cfy-t-fill-lo);
    color: var(--cfy-t-on-fill);
}

.cfy-mm-hpbtn--primary:hover {
    border-color: var(--cfy-t-fill-lo);
    color: var(--cfy-t-on-fill);
    filter: brightness(1.05);
}

.cfy-mm-hpbtn:focus-visible,
.cfy-mm-onlymine:focus-visible,
.cfy-mm-hpswitch:focus-visible {
    outline: 2px solid var(--cfy-t-accent);
    outline-offset: 2px;
}

@media (max-width: 767.98px) {
    .cfy-mm-hptray {
        padding: 8px 10px;
    }
    .cfy-mm-hptray-actions {
        width: 100%;
    }
    .cfy-mm-hptray-actions .cfy-mm-hpbtn {
        flex: 1 1 0;
        justify-content: center;
    }
}

body.performance-mode .cfy-catalog-navbar-hpsw-dot,
body.performance-mode .cfy-mm-hpswitch,
body.performance-mode .cfy-mm-hpsw-dot,
body.performance-mode .cfy-mm-hpcheck-box {
    transition-duration: 0.01ms !important;
}

/* ======================================================================
   V2 : fil de segments navigables, fenêtre des voisins, illustrations,
   indications, carte HyperProfil, sélection à deux sorties
   ====================================================================== */

/* Fil : un segment par niveau, séparé par un chevron */
.cfy-catalog-navbar-trail {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin: 0;
    padding: 0 12px;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}

.cfy-catalog-navbar-trail::-webkit-scrollbar {
    display: none;
}

.cfy-catalog-navbar-dimcap {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    padding-inline-end: 4px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps);
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--cfy-hr-ink-2);
}

.cfy-catalog-navbar .cfy-catalog-navbar-dimcap .cfy-catalog-navbar-cell-icon {
    color: var(--cfy-hr-ink-2);
}

.cfy-catalog-navbar-dimcap--jump {
    color: var(--cfy-hr-accent-text);
}

.cfy-catalog-navbar-dimcap + .cfy-catalog-navbar-dimcap:not(.cfy-catalog-navbar-dimcap--jump),
.cfy-catalog-navbar-seg--jump + .cfy-catalog-navbar-dimcap {
    margin-inline-start: 10px;
}

.cfy-catalog-navbar-seg {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    border: 1px solid var(--cfy-hr-ph-line-2);
    background: rgba(var(--cfy-hr-accent-rgb), 0.06);
}

.cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg:not(.cfy-catalog-navbar-seg--jump) {
    margin-inline-start: 16px;
}

.cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg:not(.cfy-catalog-navbar-seg--jump)::before {
    content: "›";
    position: absolute;
    inset-inline-start: -15px;
    top: 50%;
    transform: translateY(-52%);
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-hr-ink-2);
    pointer-events: none;
}

html[dir="rtl"] .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg:not(.cfy-catalog-navbar-seg--jump)::before {
    content: "‹";
}

.cfy-catalog-navbar-seg.is-current {
    border-color: var(--cfy-hr-accent);
    background: rgba(var(--cfy-hr-accent-rgb), 0.16);
}

.cfy-catalog-navbar-seg-go {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    max-width: 240px;
    padding: 4px 10px;
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-hr-ink);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.15s ease;
}

.cfy-catalog-navbar-seg-go > span:not(.cfy-catalog-navbar-hpdot) {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* body + segment : passe devant la couleur générique des liens au survol (le texte virait à l'accent) */
body .cfy-catalog-navbar-seg a.cfy-catalog-navbar-seg-go:hover {
    background: rgba(var(--cfy-hr-accent-rgb), 0.14);
    color: var(--cfy-hr-ink);
}

/* Segment courant : déjà teinté, le survol ne rajoute pas de voile (texte moins lisible), il souligne */
body .cfy-catalog-navbar-seg.is-current a.cfy-catalog-navbar-seg-go:hover {
    background: transparent;
    box-shadow: inset 0 -2px 0 var(--cfy-hr-accent);
}

.cfy-catalog-navbar-seg-more,
.cfy-catalog-navbar-seg-x {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    padding: 0 6px;
    border: 0;
    border-inline-start: 1px solid var(--cfy-hr-ph-line-2);
    border-radius: 0;
    background: transparent;
    color: var(--cfy-hr-ink-2);
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.cfy-catalog-navbar-seg-more svg {
    transition: transform 0.15s ease;
}

.cfy-catalog-navbar-seg-more:hover,
.cfy-catalog-navbar-seg.is-open .cfy-catalog-navbar-seg-more,
.cfy-catalog-navbar-seg-x:hover {
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}

.cfy-catalog-navbar-seg.is-open .cfy-catalog-navbar-seg-more svg {
    transform: rotate(180deg);
}

.cfy-catalog-navbar-seg-go:focus-visible,
.cfy-catalog-navbar-seg-more:focus-visible,
.cfy-catalog-navbar-seg-x:focus-visible,
.cfy-catalog-navbar-crit:focus-visible {
    outline: 1px solid var(--cfy-hr-accent);
    outline-offset: -3px;
}

/* Pastille « dans mon HyperProfil » d'un segment */
.cfy-catalog-navbar-hpdot {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}

.cfy-catalog-navbar-seg.is-hp .cfy-catalog-navbar-hpdot {
    display: inline-flex;
}

.cfy-catalog-navbar-seg.is-hp-pending .cfy-catalog-navbar-hpdot {
    outline: 1px dashed var(--cfy-hr-accent);
    outline-offset: 2px;
}

.cfy-catalog-navbar-rmwrap {
    flex: 0 0 auto;
    display: flex;
    align-self: stretch;
    align-items: center;
}

.cfy-catalog-navbar-rmwrap .cfy-catalog-navbar-chip-remove {
    align-self: center;
    min-height: 36px;
    border: 1px solid var(--cfy-hr-ph-line-2);
}

/* « + Critère » : remplace « Affiner » (ouvre le hub sur une dimension libre) */
.cfy-catalog-navbar-critwrap {
    flex: 0 0 auto;
    display: flex;
}

.cfy-catalog-navbar-crit {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px dashed var(--cfy-hr-ph-line-2);
    border-radius: 0;
    background: transparent;
    color: var(--cfy-hr-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    white-space: nowrap;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.cfy-catalog-navbar-crit:hover,
.cfy-catalog-navbar-crit[aria-expanded="true"] {
    border-style: solid;
    border-color: var(--cfy-hr-accent);
    background: rgba(var(--cfy-hr-accent-rgb), 0.10);
    color: var(--cfy-hr-ink);
}

/* Fenêtre des voisins (portail dans <body>) */
.cfy-cnb-pop {
    position: fixed;
    z-index: 1006;
    display: flex;
    flex-direction: column;
    width: 360px;
    max-width: calc(100vw - 16px);
    max-height: min(72vh, 600px);
    font-family: var(--cfy-font-family);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    border: 1px solid rgba(var(--cfy-t-accent-rgb), 0.6);
    box-shadow: var(--cfy-t-shadow);
    animation: cfy-mm-in 0.12s ease-out;
}

.cfy-cnb-pop svg {
    flex: 0 0 auto;
}

.cfy-cnb-pop-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px 10px 12px;
    background: var(--cfy-hr-hd-bg);
    border-bottom: 1px solid var(--cfy-hr-rule);
    box-shadow: inset 0 2px 0 var(--cfy-hr-accent);
}

.cfy-cnb-pop-head .cfy-mm-illu {
    background: var(--cfy-hr-accent);
}

.cfy-cnb-pop-title {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cfy-cnb-pop-title b {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps);
    text-transform: uppercase;
    color: var(--cfy-hr-accent-text);
}

.cfy-cnb-pop-title span {
    overflow: hidden;
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--cfy-hr-ink);
}

.cfy-cnb-pop-head .cfy-mm-close {
    background: var(--cfy-hr-pill-bg);
    border: 1px solid var(--cfy-hr-rule);
    color: var(--cfy-hr-ink);
}

.cfy-cnb-pop-head .cfy-mm-close:hover {
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}

.cfy-cnb-pop-hp {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--cfy-t-accent-soft);
    border-bottom: 1px solid var(--cfy-t-line);
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-t-ink);
}

.cfy-cnb-pop-hp .cfy-mm-hpcheck {
    position: static;
}

.cfy-cnb-pop-filter {
    margin: 10px 12px 4px;
}

.cfy-cnb-pop .cfy-mm-filter {
    background: var(--cfy-t-surface);
    border-color: var(--cfy-t-line-2);
    color: var(--cfy-t-muted);
}

.cfy-cnb-pop .cfy-mm-filter input {
    color: var(--cfy-t-ink);
}

.cfy-cnb-pop-list {
    flex: 1 1 auto;
    min-height: 0;
    padding: 4px 6px 6px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.cfy-cnb-pop-list .cfy-mm-empty {
    color: var(--cfy-t-muted);
}

.cfy-cnb-pop-foot {
    display: flex;
    justify-content: flex-end;
    padding: 0 12px 8px;
}

.cfy-cnb-pop-foot[hidden] {
    display: none;
}

.cfy-cnb-pop-sel {
    padding: 10px 12px;
    border-top: 1px solid rgba(var(--cfy-t-accent-rgb), 0.35);
    background: color-mix(in srgb, var(--cfy-t-fill) 8%, var(--cfy-t-surface-2));
    font-size: var(--cfy-fs-sm);
}

.cfy-cnb-pop-sel[hidden] {
    display: none;
}

.cfy-cnb-pop-sel > b {
    display: block;
    margin-bottom: 8px;
    color: var(--cfy-t-ink);
}

.cfy-cnb-pop-sel .cfy-mm-hptray-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
}

/* Illustrations : masque SVG teinté par l'accent du thème */
.cfy-mm-illu {
    display: inline-block;
    flex: 0 0 auto;
    width: 72px;
    height: 54px;
    background: var(--cfy-t-accent);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.cfy-mm-illu--hero {
    width: 96px;
    height: 72px;
}

.cfy-mm-illu--stat {
    width: 48px;
    height: 36px;
}

.cfy-mm-illu--empty {
    width: 120px;
    height: 90px;
    opacity: 0.85;
}

.cfy-mm-illu--pop {
    width: 40px;
    height: 30px;
}

/* En-tête de section : illustration, titre + indication, outils */
.cfy-mm-sechead {
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
}

.cfy-mm-sechead-main {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: 4px;
}

.cfy-mm-sectools {
    flex: 0 1 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-inline-start: auto;
}

.cfy-mm-hint {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 68ch;
    margin: 6px 0 0;
    font-size: var(--cfy-fs-sm);
    line-height: var(--cfy-lh-snug);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-hint-i {
    display: inline-flex;
    margin-top: 1px;
    color: var(--cfy-t-accent);
}

.cfy-mm-hint-t {
    flex: 1 1 auto;
}

.cfy-mm-hint-x {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--cfy-t-muted);
    cursor: pointer;
}

.cfy-mm-hint-x:hover,
.cfy-mm-hint-x:focus-visible {
    border-color: var(--cfy-t-line-2);
    color: var(--cfy-t-ink);
    outline: 0;
}

.cfy-mm-hero .cfy-mm-hint {
    flex: 1 0 100%;
    margin: 0;
}

/* Bulle de première visite : clic = ouvrir, case = sélectionner */
.cfy-mm-coach {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px dashed var(--cfy-t-accent);
    background: var(--cfy-t-accent-soft);
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-t-ink);
}

.cfy-mm-coach-demo {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 32px;
}

.cfy-mm-coach-card {
    position: absolute;
    inset: 0 8px 0 0;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
}

.cfy-mm-coach-box {
    position: absolute;
    top: 0;
    right: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

.cfy-mm-coach-box svg {
    width: 12px;
    height: 12px;
}

.cfy-mm-coach-t {
    flex: 1 1 220px;
}

/* Compteur « n dans mon HyperProfil » d'une section (filtre « seulement ma sélection ») */
.cfy-mm-onlymine b {
    font-variant-numeric: tabular-nums;
}

/* Vue d'ensemble : chiffres clés + carte HyperProfil côte à côte */
.cfy-mm-ovtop {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}

.cfy-mm-ovtop .cfy-mm-hero {
    align-items: center;
    margin: 0;
}

.cfy-mm-hpcard {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    box-shadow: inset 4px 0 0 var(--cfy-t-line-2);
}

.cfy-mm-hpcard.is-on {
    border-color: rgba(var(--cfy-t-fill-rgb), 0.55);
    box-shadow: inset 4px 0 0 var(--cfy-t-fill);
}

.cfy-mm-hpcard .cfy-mm-illu {
    width: 64px;
    height: 48px;
}

.cfy-mm-hpcard-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cfy-mm-hpcard-title {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    align-self: flex-start;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: var(--cfy-fs-md);
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-ink);
    cursor: pointer;
}

.cfy-mm-hpcard-title:hover,
.cfy-mm-hpcard-title:focus-visible {
    color: var(--cfy-t-accent);
    outline: 0;
    text-decoration: underline;
}

.cfy-mm-hpcard-state {
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-hpcard-dims {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.cfy-mm-hpcard-dim {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface-2);
    font-family: inherit;
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-ink-2);
    cursor: pointer;
}

.cfy-mm-hpcard-dim b {
    color: var(--cfy-t-ink);
    font-variant-numeric: tabular-nums;
}

.cfy-mm-hpcard-dim:hover,
.cfy-mm-hpcard-dim:focus-visible {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-ink);
    outline: 0;
}

.cfy-mm-hpcard-dim svg {
    width: 14px;
    height: 14px;
    color: var(--cfy-t-accent);
}

.cfy-mm-hpcard .cfy-mm-hpswitch {
    margin: 0;
}

/* Tuiles illustrées de la vue d'ensemble */
.cfy-mm-stats {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.cfy-mm-stat {
    position: relative;
    padding: 10px 12px 12px;
}

.cfy-mm-stat .cfy-mm-illu {
    margin-bottom: 4px;
}

.cfy-mm-stat > span:last-of-type {
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-muted);
}

.cfy-mm-stat-hp {
    position: absolute;
    top: 8px;
    inset-inline-end: 8px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 6px;
    font-size: var(--cfy-fs-caption);
    font-style: normal;
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

.cfy-mm-stat-hp svg {
    width: 12px;
    height: 12px;
}

/* États vides illustrés */
.cfy-mm-empty--illu,
.cfy-mm-hpempty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.cfy-mm-hpempty-nav .cfy-mm-stat {
    align-items: center;
}

/* Sélection : note, bouton discret, « Voir ensemble » */
.cfy-mm-hptray-note {
    flex: 1 1 240px;
    font-size: var(--cfy-fs-caption);
    color: var(--cfy-t-ink-2);
}

.cfy-mm-hptray-note.is-warn {
    color: var(--cfy-tx-warning);
    font-weight: var(--cfy-fw-semibold);
}

.cfy-mm-hpbtn--quiet {
    border-color: transparent;
    background: transparent;
    text-decoration: underline;
}

.cfy-mm-hpbtn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}

@media (max-width: 1023.98px) {
    .cfy-mm-ovtop {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767.98px) {
    .cfy-catalog-navbar-trail {
        gap: 4px;
        padding: 0 8px;
        scroll-snap-type: x proximity;
    }
    .cfy-catalog-navbar-seg,
    .cfy-catalog-navbar-critwrap {
        scroll-snap-align: start;
    }
    /* La légende reste visible : sans elle « Divers › Autres » ne dit pas s'il s'agit de catégories ou de rayons */
    .cfy-catalog-navbar-dimcap:not(.cfy-catalog-navbar-dimcap--jump) {
        gap: 4px;
        padding-inline-end: 2px;
        letter-spacing: normal;
    }
    .cfy-catalog-navbar-dimcap--jump {
        font-size: 0;
        gap: 0;
    }
    .cfy-catalog-navbar-seg-go {
        max-width: 150px;
        padding: 4px 8px;
    }
    .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg:not(.cfy-catalog-navbar-seg--jump) {
        margin-inline-start: 13px;
    }
    .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg:not(.cfy-catalog-navbar-seg--jump)::before {
        inset-inline-start: -11px;
    }
    .cfy-catalog-navbar-crit span {
        display: none;
    }
    .cfy-catalog-navbar-crit {
        padding: 0 10px;
    }
    /* Fenêtre des voisins en feuille basse plein écran */
    .cfy-cnb-pop {
        left: 0 !important;
        right: 0;
        top: auto !important;
        bottom: 0;
        width: 100%;
        max-width: 100%;
        max-height: 78vh;
        border-width: 1px 0 0;
    }
    .cfy-mm-sechead .cfy-mm-illu--head {
        width: 48px;
        height: 36px;
    }
    .cfy-mm-sechead {
        flex-wrap: wrap;
    }
    .cfy-mm-sectools {
        flex: 1 1 100%;
        justify-content: flex-start;
        margin-inline-start: 0;
    }
    .cfy-mm-hpcard {
        flex-wrap: wrap;
    }
    .cfy-mm-stats {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    }
}

body.performance-mode .cfy-cnb-pop {
    animation: none;
}

body.performance-mode .cfy-catalog-navbar-seg-go,
body.performance-mode .cfy-catalog-navbar-seg-more,
body.performance-mode .cfy-catalog-navbar-seg-more svg,
body.performance-mode .cfy-catalog-navbar-seg-x,
body.performance-mode .cfy-catalog-navbar-crit {
    transition-duration: 0.01ms !important;
}

/* Fenêtre des voisins : mêmes surfaces que le contenu du hub (suit le mode clair / sombre) */
.cfy-cnb-pop-list,
.cfy-cnb-pop-hp,
.cfy-cnb-pop-sel {
    --cfy-hr-ph-line: var(--cfy-t-line);
    --cfy-hr-ph-line-2: var(--cfy-t-line-2);
    --cfy-hr-ink: var(--cfy-t-ink);
    --cfy-hr-ink-2: var(--cfy-t-ink-2);
    --cfy-hr-ink-muted: var(--cfy-t-muted);
    --cfy-hr-ink-faint: var(--cfy-t-faint);
    --cfy-hr-hd-ink-3: var(--cfy-t-muted);
    --cfy-hr-accent-text: var(--cfy-t-accent);
    --cfy-hr-accent: var(--cfy-t-fill);
    --cfy-hr-accent-hi: var(--cfy-t-fill-hi);
    --cfy-hr-accent-lo: var(--cfy-t-fill-lo);
    --cfy-hr-accent-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-accent: var(--cfy-t-on-fill);
    --cfy-hr-flat: var(--cfy-t-fill);
    --cfy-hr-flat-hi: var(--cfy-t-fill-hi);
    --cfy-hr-flat-lo: var(--cfy-t-fill-lo);
    --cfy-hr-flat-rgb: var(--cfy-t-fill-rgb);
    --cfy-hr-on-flat: var(--cfy-t-on-fill);
    color: var(--cfy-t-ink);
}

.cfy-cnb-pop-list .cfy-mm-item.is-empty {
    opacity: 1;
    color: var(--cfy-t-muted);
}

.cfy-cnb-pop-list .cfy-mm-item.is-current .cfy-mm-item-count {
    color: var(--cfy-t-ink);
}

/* Fil long (lieu sur 4 niveaux et plus) : la légende cède la place aux segments */
.cfy-catalog-navbar-trail--long .cfy-catalog-navbar-dimcap {
    display: none;
}

/* Multi-jump : toutes les valeurs visibles, sur plusieurs lignes si besoin */
@media (min-width: 768px) {
    .cfy-catalog-navbar--jump .cfy-catalog-navbar-trail {
        flex-wrap: wrap;
        row-gap: 6px;
        padding-block: 6px;
        overflow: visible;
    }
}

/* Bandeau de chiffres : illustration, deux compteurs empilés, indication dessous */
.cfy-mm-ovtop .cfy-mm-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px 24px;
}
.cfy-mm-ovtop .cfy-mm-illu--hero {
    grid-row: span 2;
}

.cfy-mm-ovtop .cfy-mm-hero .cfy-mm-hint {
    grid-column: 1 / -1;
}

@media (max-width: 767.98px) {
    .cfy-mm-ovtop .cfy-mm-hero {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .cfy-mm-ovtop .cfy-mm-illu--hero {
        grid-row: span 2;
        width: 64px;
        height: 48px;
    }
}

/* ==========================================================================
   V3 — ergonomie : marges de la barre, hub plein écran, colonne des sections
   ordonnée, contenus et actions agrandis, mode performance.
   ========================================================================== */

/* Barre : « Tous les catalogues » détaché du bord, mêmes marges que le bouton Connexion */
@media (min-width: 1200px) {
    html .nk-body .cfy-vignettes-pre-banner .cfy-catalog-navbar {
        min-height: 76px;
        align-items: center;
    }
    html .nk-body .cfy-vignettes-pre-banner .cfy-catalog-navbar-all {
        align-self: center;
        height: 52px;
        min-height: 52px;
        margin: var(--cfy-sp-3) 0 var(--cfy-sp-3) var(--cfy-sp-4);
        padding-inline: 18px 22px;
        font-size: var(--cfy-fs-md);
    }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    html .nk-body .cfy-vignettes-pre-banner {
        padding-block: var(--cfy-sp-3) !important;
        padding-inline: 10px !important;
    }
}
@media (max-width: 767.98px) {
    html .nk-body .cfy-vignettes-pre-banner {
        padding-block: 10px !important;
        padding-inline: var(--cfy-sp-4) !important;
    }
}
.cfy-catalog-navbar-trail {
    gap: 6px;
}

/* « Affiner » : bouton plein, repérable */
.cfy-catalog-navbar-crit {
    border-style: solid;
    border-color: rgba(var(--cfy-hr-accent-rgb), 0.55);
    color: var(--cfy-hr-ink);
}
.cfy-catalog-navbar-crit svg {
    color: var(--cfy-hr-accent-text);
}

/* Hub : défilement interne seulement, jamais de la page */
.cfy-mm-pane,
.cfy-mm-rail,
.cfy-mm-mcol-list,
.cfy-mm-hptray,
.cfy-mm-miller,
.cfy-cnb-pop-list {
    overscroll-behavior: contain;
}
.cfy-mm-miller,
.cfy-mm-mcol-list {
    position: relative;
}
.cfy-mm-miller {
    scroll-snap-type: x proximity;
}
html .cfy-mm-hub .cfy-mm-miller[style*="--cfy-mm-colw"] {
    grid-template-columns: repeat(6, var(--cfy-mm-colw));
}
.cfy-mm-mcol {
    scroll-snap-align: start;
}

/* Colonne des sections : hiérarchie des pages HyperProfil */
.cfy-mm-railsep {
    display: block;
    margin: var(--cfy-sp-3) 4px 4px;
    padding-top: var(--cfy-sp-3);
    border-top: 1px solid var(--cfy-t-line);
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps);
    text-transform: uppercase;
    color: var(--cfy-t-muted);
}
.cfy-mm-mcol.is-focus .cfy-mm-mcol-head {
    box-shadow: inset 0 3px 0 var(--cfy-t-fill);
}
.cfy-mm-mcol.is-focus .cfy-mm-mcol-head b {
    color: var(--cfy-t-accent);
}

/* Libellés de lieux sur deux lignes au lieu d'être tronqués */
.cfy-mm-mcol .cfy-mm-item-label {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    white-space: normal;
    line-height: var(--cfy-lh-snug);
    overflow-wrap: anywhere;
}

/* Sélection : ancêtres ajoutés automatiquement */
.cfy-mm-hpchip.is-auto {
    border-style: dashed;
}
.cfy-mm-hpchip-auto {
    font-style: normal;
    color: var(--cfy-t-muted);
}

/* Actions du profil : grandes, toujours visibles en pied du hub */
.cfy-mm-hptray {
    gap: var(--cfy-sp-3) var(--cfy-sp-4);
    padding: var(--cfy-sp-3) var(--cfy-sp-4);
    border-top: 2px solid var(--cfy-t-fill);
}
.cfy-mm-hptray-actions {
    flex-wrap: wrap;
    gap: var(--cfy-sp-2);
}
.cfy-mm-hptray-actions .cfy-mm-hpbtn,
.cfy-cnb-pop-sel .cfy-mm-hpbtn,
.cfy-mm-hpcard .cfy-mm-hpbtn {
    min-height: var(--cfy-ctl-lg);
    padding: 0 var(--cfy-sp-5);
    font-size: var(--cfy-fs-md);
}
.cfy-mm-hptray-actions .cfy-mm-hpbtn svg {
    width: 20px;
    height: 20px;
}
.cfy-mm-hptray-actions .cfy-mm-hpbtn--primary {
    min-width: 280px;
    justify-content: center;
    font-weight: var(--cfy-fw-bold);
}
.cfy-mm-hptray-actions .cfy-mm-hpbtn:focus-visible {
    outline: 3px solid var(--cfy-t-accent);
    outline-offset: 2px;
}
.cfy-mm-hptray-head {
    font-size: var(--cfy-fs-base);
}
.cfy-mm-hpswitch {
    min-width: 52px;
    min-height: 28px;
}

/* Desktop : tout est plus grand, la place est là */
@media (min-width: 1200px) {
    .cfy-mm-hub {
        grid-template-columns: 300px minmax(0, 1fr);
    }
    .cfy-mm-rail {
        padding: var(--cfy-sp-3) var(--cfy-sp-2);
    }
    .cfy-mm-railbtn {
        grid-template-columns: 24px minmax(0, 1fr) auto auto;
        min-height: 44px;
        padding: 10px 12px;
        font-size: var(--cfy-fs-md);
    }
    .cfy-mm-railbtn-icon svg {
        width: 22px;
        height: 22px;
    }
    .cfy-mm-railbtn-count,
    .cfy-mm-railbtn-hp {
        font-size: var(--cfy-fs-sm);
    }
    .cfy-mm-cards {
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: var(--cfy-sp-3);
    }
    .cfy-mm-cards--strip {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
    .cfy-mm-card-label {
        font-size: var(--cfy-fs-md);
    }
    .cfy-mm-item {
        min-height: 44px;
        padding: 8px 12px;
        font-size: var(--cfy-fs-md);
    }
    .cfy-mm-hpwrap > .cfy-mm-item {
        padding-inline-start: 44px;
    }
    .cfy-mm-item-count,
    .cfy-mm-item-sub {
        font-size: var(--cfy-fs-sm);
    }
    .cfy-mm-hpcheck {
        width: 38px;
        height: 38px;
    }
    .cfy-mm-hpcheck-box {
        width: 24px;
        height: 24px;
    }
    .cfy-mm-hpcheck-box svg {
        width: 16px;
        height: 16px;
    }
    .cfy-mm-miller {
        grid-template-columns: repeat(6, minmax(270px, 1fr));
    }
    .cfy-mm-mcol-head {
        padding: 10px 12px;
    }
    .cfy-mm-mcol-head b {
        font-size: var(--cfy-fs-sm);
    }
    .cfy-mm-mcol-list {
        height: max(360px, calc(100vh - 470px));
    }
    .cfy-mm-sectitle {
        font-size: var(--cfy-fs-h3);
    }
    .cfy-mm-hint {
        font-size: var(--cfy-fs-base);
    }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .cfy-mm-hub {
        grid-template-columns: 250px minmax(0, 1fr);
    }
    .cfy-mm-railbtn {
        min-height: 40px;
        font-size: var(--cfy-fs-base);
    }
    .cfy-mm-item {
        min-height: 40px;
        font-size: var(--cfy-fs-base);
    }
    .cfy-mm-miller {
        grid-template-columns: repeat(6, minmax(230px, 1fr));
    }
    .cfy-mm-mcol-list {
        height: max(320px, calc(100vh - 440px));
    }
}
@media (max-width: 767.98px) {
    .cfy-mm-railsep {
        display: none;
    }
    .cfy-mm-hptray-actions {
        width: 100%;
    }
    .cfy-mm-hptray-actions .cfy-mm-hpbtn {
        flex: 1 1 auto;
        justify-content: center;
        padding: 0 var(--cfy-sp-3);
    }
    .cfy-mm-hptray-actions .cfy-mm-hpbtn--primary {
        min-width: 0;
        flex-basis: 100%;
    }
}

/* Mode performance : aucun effet coûteux dans la barre, le hub et la fenêtre des voisins */
body.performance-mode .cfy-catalog-navbar-mega,
body.performance-mode .cfy-cnb-pop {
    animation: none;
    box-shadow: none;
}
body.performance-mode :is(.cfy-catalog-navbar-all, .cfy-catalog-navbar-crit, .cfy-catalog-navbar-seg-go, .cfy-mm-railbtn, .cfy-mm-card, .cfy-mm-item, .cfy-mm-stat,
    .cfy-mm-hpcheck-box, .cfy-mm-hpbtn, .cfy-mm-hpswitch, .cfy-mm-hpsw-dot, .cfy-mm-coach, .cfy-mm-skel-card, .cfy-mm-skel-title) {
    transition: none !important;
    animation: none !important;
}
body.performance-mode .cfy-mm-illu,
body.performance-mode .cfy-mm-coach-demo {
    display: none;
}
body.performance-mode .cfy-mm-hpbtn--primary {
    background-image: none;
    filter: none;
}
body.performance-mode .cfy-mm-hpbtn--primary {
    background-color: var(--cfy-t-fill);
}
body.performance-mode .cfy-mm-miller,
body.performance-mode .cfy-mm-pane {
    scroll-behavior: auto;
}

/* « Mon HyperProfil » vide : grille de raccourcis pleine largeur, état lisible */
.cfy-mm-hpempty {
    align-items: stretch;
    text-align: start;
}
.cfy-mm-hpempty > .cfy-mm-illu {
    align-self: center;
}
.cfy-mm-hpempty p {
    font-size: var(--cfy-fs-md);
    color: var(--cfy-t-ink-2);
}
.cfy-mm-hpempty-nav {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--cfy-sp-3);
}
.cfy-mm-hpempty-nav .cfy-mm-stat {
    align-items: flex-start;
    min-height: 104px;
    padding: var(--cfy-sp-3) var(--cfy-sp-4);
}
.cfy-mm-hpempty-nav .cfy-mm-stat b {
    font-size: var(--cfy-fs-md);
}
.cfy-mm-stat .cfy-mm-stat-icon svg {
    width: 24px;
    height: 24px;
}
.cfy-mm-hpstatus-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-muted);
}
.cfy-mm-hpstatus-dot svg {
    width: 22px;
    height: 22px;
}
.cfy-mm-hpstatus.is-on .cfy-mm-hpstatus-dot {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

@media (max-width: 767.98px) {
    .cfy-mm-hpempty-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--cfy-sp-2);
    }
    .cfy-mm-hpempty-nav .cfy-mm-stat {
        min-height: 88px;
        padding: var(--cfy-sp-3);
    }
}

/* Catalogues officiels : quatre boutons d'accès direct côte à côte, sans chevron de hiérarchie */
.cfy-catalog-navbar-trail .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg.cfy-catalog-navbar-seg--fam {
    margin-inline-start: 0;
}
.cfy-catalog-navbar-trail .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg.cfy-catalog-navbar-seg--fam::before {
    content: none;
}
.cfy-catalog-navbar-seg--fam .cfy-catalog-navbar-seg-go {
    justify-content: center;
    min-width: 112px;
    min-height: 44px;
    padding-inline: 22px;
    font-size: var(--cfy-fs-md);
}

/* Multi-jump jusqu'à 100 éléments : 3 valeurs par dimension dans la barre, puis « +N » */
.cfy-catalog-navbar-trail .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg.cfy-catalog-navbar-seg--jumpmore {
    margin-inline-start: 0;
}
.cfy-catalog-navbar-trail .cfy-catalog-navbar-seg + .cfy-catalog-navbar-seg.cfy-catalog-navbar-seg--jumpmore::before {
    content: none;
}
.cfy-catalog-navbar-jumpmore {
    appearance: none;
    min-width: 40px;
    min-height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 0;
    background: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    font-variant-numeric: tabular-nums;
    cursor: pointer;
}
.cfy-catalog-navbar-jumpmore:hover,
.cfy-catalog-navbar-jumpmore[aria-expanded="true"] {
    background: var(--cfy-hr-accent-hi);
}
.cfy-catalog-navbar-jumpmore:focus-visible {
    outline: 2px solid var(--cfy-hr-accent-text);
    outline-offset: 2px;
}
.cfy-cnb-jrow {
    display: flex;
    align-items: stretch;
}
.cfy-cnb-jrow > .cfy-mm-hpwrap,
.cfy-cnb-jrow > .cfy-mm-item {
    flex: 1 1 auto;
    min-width: 0;
}
.cfy-cnb-jrow > .cfy-catalog-navbar-seg-x {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    color: var(--cfy-t-muted);
}
.cfy-cnb-jrow > .cfy-catalog-navbar-seg-x:hover {
    color: var(--cfy-t-accent);
}

/* Barre des catalogues masquée par l'utilisateur (Options > Affichage) : le panneau hub reste disponible. */
.cfy-vignettes-pre-banner[hidden] {
    display: none !important;
}
/* Espace sous le header quand la barre est masquée : le mur ne touche pas le bas du header. */
.cfy-vignettes-pre-spacer {
    height: var(--cfy-sp-4);
}
/* Grands écrans : la plaque du logo déborde de 24px sous le header, l'espace la dégage aussi. */
@media (min-width: 1200px) {
    .cfy-vignettes-pre-spacer {
        height: calc(24px + var(--cfy-sp-4));
    }
}

/* ======================================================================
   Colonne des sections : domaines séparés, section active en aplat
   ====================================================================== */
.cfy-mm-hub .cfy-mm-railsep {
    margin: var(--cfy-sp-4) 0 6px;
    padding: var(--cfy-sp-3) 10px 0;
    border-top: 2px solid var(--cfy-t-line-2);
    color: var(--cfy-t-ink-2);
}
.cfy-mm-hub .cfy-mm-railbtn[aria-selected="true"],
.cfy-mm-hub .cfy-mm-railbtn[aria-selected="true"]:hover {
    background: var(--cfy-t-fill);
    border-inline-start-color: var(--cfy-t-ink);
    color: var(--cfy-t-on-fill);
    font-weight: var(--cfy-fw-bold);
    box-shadow: none;
}
.cfy-mm-hub .cfy-mm-railbtn[aria-selected="true"] :is(.cfy-mm-railbtn-icon, .cfy-mm-railbtn-count) {
    color: var(--cfy-t-on-fill);
}
.cfy-mm-hub .cfy-mm-railbtn[aria-selected="true"] .cfy-mm-railbtn-hp {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
}
@media (max-width: 767.98px) {
    /* Bandeau horizontal : le séparateur devient un trait vertical entre deux domaines */
    .cfy-mm-hub .cfy-mm-railsep {
        display: block;
        flex: 0 0 2px;
        align-self: stretch;
        width: 2px;
        margin: 4px 6px;
        padding: 0;
        border: 0;
        background: var(--cfy-t-line-2);
        font-size: 0;
        overflow: hidden;
    }
    .cfy-mm-hub .cfy-mm-railbtn[aria-selected="true"] {
        border-bottom-color: var(--cfy-t-ink);
    }
}

/* Catégories et rayons : colonne des parents, colonne des enfants */
html .cfy-mm-hub .cfy-mm-miller--tree {
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
}
.cfy-mm-treerow .cfy-mm-media {
    flex: 0 0 auto;
}
.cfy-mm-treekids {
    padding: var(--cfy-sp-3);
}
@media (max-width: 767.98px) {
    html .cfy-mm-hub .cfy-mm-miller--tree {
        grid-template-columns: 86vw 86vw;
    }
}

/* Lignes sans annonce : texte atténué, sans cadre (les listes en contiennent beaucoup) */
.cfy-mm-hub .cfy-mm-item.is-empty {
    border-color: transparent;
}
/* Libellés entiers : colonne des sections et cartes des sous-catégories / sous-rayons */
.cfy-mm-hub .cfy-mm-railbtn-label,
.cfy-mm-treekids .cfy-mm-card-label {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* ======================================================================
   Devises : sigle en grand, code, nom entier
   ====================================================================== */
.cfy-mm-cards--cur {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}
.cfy-mm-cur {
    display: inline-flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 76px;
    min-height: 60px;
    padding: 6px 8px;
    background: var(--cfy-t-accent-soft);
    border: 1px solid var(--cfy-t-line);
}
.cfy-mm-cur-sigle {
    font-size: var(--cfy-fs-h3);
    font-weight: var(--cfy-fw-bold);
    line-height: 1.1;
    white-space: nowrap;
    color: var(--cfy-t-ink);
}
.cfy-mm-cur-code {
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.06em;
    color: var(--cfy-t-ink-2);
}
.cfy-mm-card--cur .cfy-mm-card-label {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}
.cfy-mm-hub .cfy-mm-card--cur.is-empty :is(.cfy-mm-cur-sigle, .cfy-mm-cur-code) {
    color: var(--cfy-t-muted);
}
/* Code de devise en petit corps : texte secondaire lisible même sans annonce */
.cfy-mm-hub .cfy-mm-card--cur.is-empty .cfy-mm-cur-code {
    color: var(--cfy-t-ink-2);
}
@media (max-width: 767.98px) {
    /* Smartphone : une carte par ligne, nom sur une seule ligne */
    .cfy-mm-cards--cur {
        grid-template-columns: 1fr;
    }
    .cfy-mm-cur {
        min-width: 64px;
        min-height: 52px;
    }
    .cfy-mm-card--cur .cfy-mm-card-label {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* ======================================================================
   Langues : cartes larges, nom entier, phrase témoin dans la langue
   ====================================================================== */
.cfy-mm-cards--lang {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}
.cfy-mm-card--lang .cfy-mm-card-label,
.cfy-mm-card--lang .cfy-mm-card-sub {
    display: block;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}
.cfy-mm-card--lang .cfy-mm-card-sub {
    margin-top: 2px;
    unicode-bidi: plaintext;
    text-align: start;
}
.cfy-mm-card--lang .cfy-mm-card-sub::first-letter {
    text-transform: uppercase;
}
@media (max-width: 767.98px) {
    .cfy-mm-cards--lang {
        grid-template-columns: 1fr;
    }
}

/* ======================================================================
   États d'une carte ou d'une ligne : sans annonce, dans le profil,
   ajout en attente, retrait en attente. Compteurs en pastille.
   ====================================================================== */
.cfy-mm-hub {
    --cfy-mm-st-empty: var(--cfy-t-surface-3);
    --cfy-mm-st-in: color-mix(in srgb, var(--cfy-t-fill) 14%, var(--cfy-t-surface));
    --cfy-mm-st-add: color-mix(in srgb, var(--cfy-t-fill) 6%, var(--cfy-t-surface));
    --cfy-mm-st-del: #e85347;
}
/* Sans annonce : fond en retrait, plus de cadre en pointillés */
.cfy-mm-hub :is(.cfy-mm-item, .cfy-mm-tile, .cfy-mm-card).is-empty {
    background: var(--cfy-mm-st-empty);
    border-style: solid;
}
/* Déjà dans le profil : bordure pleine et bande latérale */
.cfy-mm-hub .cfy-mm-hpwrap.is-in > :is(.cfy-mm-card, .cfy-mm-item) {
    background: var(--cfy-mm-st-in);
    border-color: var(--cfy-t-fill);
    box-shadow: inset 4px 0 0 var(--cfy-t-fill), inset 0 0 0 1px var(--cfy-t-fill);
    color: var(--cfy-t-ink);
}
/* Ajout en attente : même teinte, contour en pointillés */
.cfy-mm-hub .cfy-mm-hpwrap.is-add > :is(.cfy-mm-card, .cfy-mm-item) {
    background: var(--cfy-mm-st-add);
    outline: 2px dashed var(--cfy-t-fill);
    outline-offset: -2px;
    color: var(--cfy-t-ink);
}
/* Retrait en attente : contour rouge en pointillés, libellé barré */
.cfy-mm-hub .cfy-mm-hpwrap.is-del > :is(.cfy-mm-card, .cfy-mm-item) {
    outline: 2px dashed var(--cfy-mm-st-del);
    outline-offset: -2px;
}
.cfy-mm-hub .cfy-mm-hpwrap.is-del :is(.cfy-mm-card-label, .cfy-mm-item-label) {
    text-decoration: line-through;
}
.cfy-mm-hub .cfy-mm-hpwrap:is(.is-in, .is-add) .is-empty :is(.cfy-mm-card-label, .cfy-mm-item-label) {
    color: var(--cfy-t-ink-2);
}
/* Compteurs : pastille pleine quand il y a des annonces, pastille creuse à zéro */
.cfy-mm-hub :is(.cfy-mm-card-count, .cfy-mm-item-count) {
    flex: 0 0 auto;
    min-width: 2.6em;
    padding: 2px 8px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    font-variant-numeric: tabular-nums;
    line-height: 1.4;
    text-align: center;
    background: var(--cfy-t-accent-soft);
    border: 1px solid transparent;
    color: var(--cfy-t-ink);
}
.cfy-mm-hub .is-empty :is(.cfy-mm-card-count, .cfy-mm-item-count) {
    background: transparent;
    border-color: var(--cfy-t-line-2);
    font-weight: var(--cfy-fw-regular, 400);
    color: var(--cfy-t-muted);
}
.cfy-mm-hub .cfy-mm-hpwrap.is-in > :is(.cfy-mm-card, .cfy-mm-item) :is(.cfy-mm-card-count, .cfy-mm-item-count) {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
/* Case « tout cocher » d'une colonne ou d'une section */
.cfy-mm-hpall {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    color: var(--cfy-t-ink-2);
}
.cfy-mm-mcol-head .cfy-mm-hpall {
    margin-bottom: 6px;
}
.cfy-mm-hpall .cfy-mm-hpcheck {
    position: static;
    flex: 0 0 auto;
}

/* Bouton « Jump » d'une ligne, d'une carte ou d'une tuile */
.cfy-mm-jump {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 2px 10px;
    border: 1px solid var(--cfy-t-fill);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
}
.cfy-mm-jump:hover,
.cfy-mm-jump:focus-visible {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    outline: 0;
}
.cfy-mm-card-end {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}
.cfy-mm-tile .cfy-mm-jump {
    align-self: flex-start;
    margin-top: 6px;
}
.cfy-mm-hub :is(.cfy-mm-item, .cfy-mm-card, .cfy-mm-tile) {
    cursor: default;
}
.cfy-mm-hub .cfy-mm-item:is(.cfy-mm-head, .cfy-mm-geo:not([data-geo="city"]), .cfy-mm-treerow),
.cfy-mm-hub button.cfy-mm-card,
.cfy-mm-hub .cfy-mm-hpwrap > :is(.cfy-mm-item, .cfy-mm-card) {
    cursor: pointer;
}

/* Cartes à libellé entier : la coupure se fait entre les mots, jamais lettre par lettre */
.cfy-mm-treekids {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
.cfy-mm-hub :is(.cfy-mm-treekids, .cfy-mm-cards--cur, .cfy-mm-cards--lang) :is(.cfy-mm-card-label, .cfy-mm-card-sub) {
    overflow-wrap: break-word;
}
@media (max-width: 767.98px) {
    .cfy-mm-treekids {
        grid-template-columns: 1fr;
    }
}

/* Tablette et plus : aucun libellé tronqué, les cartes s'élargissent et le texte passe à la ligne */
@media (min-width: 768px) {
    .cfy-mm-hub :is(.cfy-mm-card-label, .cfy-mm-card-sub, .cfy-mm-item-label, .cfy-mm-tile-desc) {
        display: block;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
        overflow-wrap: break-word;
        -webkit-line-clamp: none;
    }
    .cfy-mm-hub .cfy-mm-cards {
        grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    }
    .cfy-mm-hub .cfy-mm-cards--strip {
        grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    }
    .cfy-mm-hub .cfy-mm-cards--compact {
        grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    }
    .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) {
        grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    }
}
@media (min-width: 768px) {
    /* Colonne étroite : le compteur et « Jump » passent sous le libellé plutôt que de le couper */
    .cfy-mm-hub .cfy-mm-mcol .cfy-mm-item {
        flex-wrap: wrap;
    }
    .cfy-mm-hub .cfy-mm-mcol .cfy-mm-item-label {
        flex: 1 1 60px;
        min-width: min-content;
    }
}
@media (min-width: 768px) {
    .cfy-mm-hub .cfy-mm-mcol .cfy-mm-item-label {
        flex-basis: 110px;
    }
    html .cfy-mm-hub .cfy-mm-miller--tree {
        grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
    }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    /* Colonnes étroites : pas de chevron isolé sur une ligne */
    .cfy-mm-hub .cfy-mm-mcol .cfy-mm-item-go {
        display: none;
    }
}

/* ======================================================================
   Fiche d'un élément : panneau latéral, un look par type
   ====================================================================== */
.cfy-mm-hub {
    position: relative;
}
.cfy-mm-info {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    cursor: pointer;
}
.cfy-mm-info svg {
    width: 14px;
    height: 14px;
}
.cfy-mm-info:hover,
.cfy-mm-info:focus-visible {
    border-color: var(--cfy-t-fill);
    color: var(--cfy-t-accent);
    outline: 0;
}
.cfy-mm-fiche {
    position: absolute;
    z-index: 5;
    top: 0;
    bottom: 0;
    inset-inline-end: 0;
    width: min(560px, 100%);
    display: flex;
    flex-direction: column;
    gap: var(--cfy-sp-4);
    padding: var(--cfy-sp-5, 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--cfy-t-surface);
    border-inline-start: 3px solid var(--cfy-t-fill);
    box-shadow: -12px 0 24px var(--cfy-t-shadow);
    color: var(--cfy-t-ink);
}
.cfy-mm-fiche-close {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    z-index: 1;
}
.cfy-mm-fhead {
    display: flex;
    align-items: center;
    gap: var(--cfy-sp-4);
    padding-inline-end: 44px;
}
.cfy-mm-fhead h3 {
    margin: 2px 0 0;
    font-size: var(--cfy-fs-h2);
    font-weight: var(--cfy-fw-bold);
    line-height: 1.1;
    color: inherit;
    overflow-wrap: break-word;
}
.cfy-mm-fkicker {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps, 0.08em);
    text-transform: uppercase;
    color: var(--cfy-t-accent);
}
.cfy-mm-fintro {
    margin: 0;
    font-size: var(--cfy-fs-md);
    color: var(--cfy-t-ink-2);
}
.cfy-mm-fmetas {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--cfy-sp-3);
}
.cfy-mm-fmeta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.cfy-mm-fmeta small {
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps, 0.08em);
    text-transform: uppercase;
    color: var(--cfy-t-muted);
}
.cfy-mm-fmeta strong {
    font-size: var(--cfy-fs-h3);
    font-weight: var(--cfy-fw-bold);
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}
.cfy-mm-fmeta span {
    font-size: var(--cfy-fs-sm);
    color: var(--cfy-t-ink-2);
}
.cfy-mm-fbar {
    display: block;
    height: 8px;
    margin-top: 4px;
    background: var(--cfy-t-surface-3);
}
.cfy-mm-fbar > i {
    display: block;
    height: 100%;
    background: var(--cfy-t-fill);
}
.cfy-mm-flist h4 {
    margin: 0 0 6px;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-bold);
    letter-spacing: var(--cfy-ls-caps, 0.08em);
    text-transform: uppercase;
    color: var(--cfy-t-ink-2);
}
.cfy-mm-frow {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(40px, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    border-top: 1px solid var(--cfy-t-line);
    font-size: var(--cfy-fs-base);
}
.cfy-mm-frow-label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow-wrap: break-word;
}
.cfy-mm-frow .cfy-mm-fbar {
    margin: 0;
}
.cfy-mm-ffoot {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
    padding-top: var(--cfy-sp-3);
}
.cfy-mm-cta--alt {
    background: var(--cfy-t-surface);
    border-color: var(--cfy-t-fill);
    color: var(--cfy-t-ink);
}
.cfy-mm-cta--alt:hover {
    color: var(--cfy-t-accent);
}

/* Look « affiche » (catégorie) : bandeau à bandes diagonales, titre en capitales */
.cfy-mm-fiche--category .cfy-mm-fhead {
    margin: calc(-1 * var(--cfy-sp-5, 24px)) calc(-1 * var(--cfy-sp-5, 24px)) 0;
    padding: 28px 60px 28px 24px;
    background: repeating-linear-gradient(135deg, var(--cfy-t-fill) 0 18px, var(--cfy-t-fill-lo) 18px 36px);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-fiche--category .cfy-mm-fhead h3 {
    font-size: var(--cfy-fs-h1);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.cfy-mm-fiche--category .cfy-mm-fkicker {
    color: var(--cfy-t-on-fill);
}
.cfy-mm-fiche--category .cfy-mm-fmeta {
    padding-inline-start: 12px;
    border-inline-start: 6px solid var(--cfy-t-fill);
}

/* Look « magazine » (rayon) : double filet, métas entre deux traits pleins */
.cfy-mm-fiche--rayon .cfy-mm-fhead {
    padding-bottom: var(--cfy-sp-3);
    border-bottom: 4px double var(--cfy-t-ink);
}
.cfy-mm-fiche--rayon .cfy-mm-fhead h3 {
    font-weight: var(--cfy-fw-regular);
    font-size: var(--cfy-fs-h1);
}
.cfy-mm-fiche--rayon .cfy-mm-fintro::first-letter {
    float: inline-start;
    padding-inline-end: 8px;
    font-size: 3.2em;
    line-height: 0.9;
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-accent);
}
.cfy-mm-fiche--rayon .cfy-mm-fmetas {
    padding: var(--cfy-sp-3) 0;
    border-top: 1px solid var(--cfy-t-ink);
    border-bottom: 1px solid var(--cfy-t-ink);
}
.cfy-mm-fiche--rayon .cfy-mm-fmeta strong {
    color: var(--cfy-t-accent);
}

/* Look « billet » (devise) : cadre gravé, trame fine, sigle géant */
.cfy-mm-fiche--devise .cfy-mm-fhead {
    justify-content: space-between;
    margin-top: 34px;
    padding: 20px 22px;
    border: 2px solid var(--cfy-t-fill);
    outline: 1px solid var(--cfy-t-fill);
    outline-offset: 5px;
    background: repeating-linear-gradient(0deg, var(--cfy-t-accent-soft) 0 2px, transparent 2px 6px);
}
.cfy-mm-fsigle {
    font-size: 88px;
    line-height: 1;
    font-weight: var(--cfy-fw-bold);
    color: var(--cfy-t-accent);
    white-space: nowrap;
}
.cfy-mm-fiche--devise .cfy-mm-fkicker {
    font-family: ui-monospace, monospace;
    letter-spacing: 0.3em;
}
.cfy-mm-fiche--devise .cfy-mm-fmeta {
    padding: 12px;
    background: var(--cfy-t-surface-2);
    border: 1px solid var(--cfy-t-line);
}

/* Look « conversation » (langue) : fond en retrait, bulle, métas soulignées d'un trait */
.cfy-mm-fiche--language {
    background: var(--cfy-t-surface-2);
}
.cfy-mm-fiche--language .cfy-mm-fhead {
    justify-content: space-between;
}
.cfy-mm-fbubble {
    position: relative;
    align-self: flex-start;
    max-width: 100%;
    margin: 0 0 10px;
    padding: 14px 18px;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    font-size: var(--cfy-fs-lg);
    font-weight: var(--cfy-fw-semibold);
    unicode-bidi: plaintext;
}
.cfy-mm-fbubble::first-letter {
    text-transform: uppercase;
}
.cfy-mm-fbubble::after {
    content: "";
    position: absolute;
    inset-inline-start: 28px;
    bottom: -12px;
    border: 12px solid transparent;
    border-top-color: var(--cfy-t-fill);
    border-bottom: 0;
}
.cfy-mm-fiche--language .cfy-mm-fmeta {
    padding-top: 8px;
    border-top: 3px solid var(--cfy-t-fill);
}
@media (max-width: 767.98px) {
    .cfy-mm-fiche {
        width: 100%;
        padding: 16px;
    }
    .cfy-mm-fsigle {
        font-size: 56px;
    }
    .cfy-mm-frow {
        grid-template-columns: minmax(0, 1fr) auto auto;
    }
    .cfy-mm-frow .cfy-mm-fbar {
        display: none;
    }
}
body.performance-mode .cfy-mm-fiche {
    box-shadow: none;
}
@media (min-width: 768px) {
    /* Devises et langues : assez de largeur pour le nom entier à côté du compteur, de la fiche et de « Jump » */
    .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) {
        grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    }
    .cfy-mm-hub .cfy-mm-cards--compact .cfy-mm-card {
        grid-template-columns: auto minmax(120px, 1fr) auto;
    }
}

/* ======================================================================
   Tailles et retours à la ligne : rien ne dépasse d'une carte ni du panneau
   ====================================================================== */
/* Grilles : une colonne ne peut jamais être plus large que son conteneur */
.cfy-mm-hub .cfy-mm-cards {
    grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr));
}
.cfy-mm-hub .cfy-mm-cards--compact,
.cfy-mm-hub .cfy-mm-treekids {
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
}
.cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) {
    grid-template-columns: repeat(auto-fill, minmax(min(440px, 100%), 1fr));
}
/* Carte compacte : image, texte, puis compteur et boutons qui passent dessous quand la place manque */
.cfy-mm-hub .cfy-mm-cards--compact .cfy-mm-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.cfy-mm-hub .cfy-mm-cards--compact .cfy-mm-card-text {
    flex: 1 1 140px;
    min-width: 0;
}
.cfy-mm-hub .cfy-mm-card-end {
    flex-wrap: wrap;
    max-width: 100%;
    margin-inline-start: auto;
}
.cfy-mm-hub .cfy-mm-card:not(.cfy-mm-cards--compact *) .cfy-mm-card-end {
    margin-inline-start: 0;
}
/* Place réservée à la case, toujours hors du contenu ; case centrée sur les cartes compactes */
.cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-card {
    padding-inline-end: 52px;
}
.cfy-mm-hub .cfy-mm-cards--compact .cfy-mm-hpwrap > .cfy-mm-hpcheck {
    top: 50%;
    inset-inline-end: 10px;
    transform: translateY(-50%);
}
.cfy-mm-hub .cfy-mm-item.cfy-mm-head {
    flex-wrap: wrap;
}
/* Colonne masquée par « dans mon HyperProfil » */
.cfy-mm-mcol-list.is-off > * {
    display: none;
}
/* Plateau de sélection : jamais plus de deux rangées de puces, le reste défile */
.cfy-mm-hub ~ .cfy-mm-hptray .cfy-mm-hptray-chips,
.cfy-mm-hptray .cfy-mm-hptray-chips {
    max-height: 76px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
@media (max-width: 767.98px) {
    .cfy-mm-hptray {
        max-height: 46%;
    }
    .cfy-mm-hptray .cfy-mm-hptray-chips {
        flex: 1 1 100%;
        flex-wrap: nowrap;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
    }
    .cfy-mm-hptray .cfy-mm-hpchip {
        flex: 0 0 auto;
    }
    .cfy-mm-hub .cfy-mm-cards--compact .cfy-mm-card-text {
        flex-basis: 110px;
    }
}

/* Tablette et petit écran : en-tête de section sur deux rangées, colonnes parents / enfants défilantes */
.cfy-mm-hub .cfy-mm-seccount {
    white-space: nowrap;
}
@media (max-width: 1199.98px) {
    .cfy-mm-hub .cfy-mm-sechead {
        flex-wrap: wrap;
    }
    .cfy-mm-hub .cfy-mm-sechead-main {
        flex: 1 1 260px;
        min-width: 0;
    }
    .cfy-mm-hub .cfy-mm-sectools {
        flex: 1 1 100%;
        flex-wrap: wrap;
    }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    html .cfy-mm-hub .cfy-mm-miller--tree {
        grid-template-columns: minmax(300px, 1fr) minmax(320px, 1.2fr);
    }
}

/* Parents et enfants : une colonne à la fois, ou deux colonnes ajustées à la largeur (tablette) */
html .cfy-mm-hub .cfy-mm-miller--tree.is-one {
    grid-template-columns: var(--cfy-mm-colw, 100%) var(--cfy-mm-colw, 100%);
}
html .cfy-mm-hub .cfy-mm-miller--tree.is-fit {
    grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
}
.cfy-mm-miller--tree.is-fit .cfy-mm-treekids {
    padding: var(--cfy-sp-1);
}
/* Retour à la colonne précédente : seulement quand une seule colonne est visible */
.cfy-mm-colback {
    display: none;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller.is-one .cfy-mm-colback {
    appearance: none;
    grid-column: 1 / -1;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 12px 0 8px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    font-family: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    cursor: pointer;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller.is-one .cfy-mm-colback svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: var(--cfy-t-accent);
    transform: rotate(180deg);
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller.is-one .cfy-mm-colback:dir(rtl) svg {
    transform: none;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller.is-one .cfy-mm-colback:focus-visible {
    outline: 2px solid var(--cfy-t-accent);
    outline-offset: 2px;
}

/* Images des lieux dans les colonnes géographiques */
.cfy-mm-mcol .cfy-mm-item > .cfy-mm-media {
    flex: 0 0 auto;
}

/* ======================================================================
   Refonte du mégamenu (2026-10-03, maquette Bureau « megamenu-refonte-propositions.html », direction A)
   Bouton « HYP » après « Jump » sur chaque ligne, en-têtes de section magnifiés (un look par section),
   lignes denses, barre du haut claire, Multijump en mode. Effets neutralisés en mode performance
   (commercify_performance_mode.css). Angles droits partout ; couleurs = tokens --cfy-t-* uniquement.
   ====================================================================== */

/* ---------- Barre du haut : claire, alignée sur la colonne des sections ---------- */
.cfy-catalog-navbar-mega .cfy-mm-head-bar {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    border-bottom: 1px solid var(--cfy-t-line-2);
    box-shadow: inset 0 -3px 0 var(--cfy-t-fill);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-title {
    color: var(--cfy-t-ink);
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.02em;
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-title > svg {
    color: var(--cfy-t-accent);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-filter {
    background: var(--cfy-t-surface-2);
    border: 2px solid var(--cfy-t-line-2);
    color: var(--cfy-t-muted);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-filter:focus-within {
    border-color: var(--cfy-t-accent);
    background: var(--cfy-t-surface);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-filter input {
    color: var(--cfy-t-ink);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-filter input::placeholder {
    color: var(--cfy-t-muted);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-close {
    background: transparent;
    color: var(--cfy-t-ink);
    border: 1px solid var(--cfy-t-line-2);
}
.cfy-catalog-navbar-mega .cfy-mm-head-bar .cfy-mm-close:hover {
    background: var(--cfy-t-fill);
    border-color: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

/* ---------- Bouton « + HyperProfil » (la case à cocher, restylée en pastille) ---------- */
.cfy-mm-hpcheck-ic {
    display: inline-flex;
}
.cfy-mm-hpcheck-ic svg {
    width: 14px;
    height: 14px;
}
.cfy-mm-hpcheck-t {
    display: none;
}
/* Lignes larges (catégories, rayons) : texte « HyperProfil » en entier, place réservée agrandie */
.cfy-mm-miller--tree .cfy-mm-hpcheck-t {
    display: inline;
}
.cfy-mm-miller--tree .cfy-mm-hpcheck-ic {
    display: none;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller--tree .cfy-mm-hpwrap > .cfy-mm-item {
    padding-inline-end: 132px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-miller--tree .cfy-mm-hpwrap--go > .cfy-mm-item {
    padding-inline-end: 154px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck {
    width: auto;
    height: auto;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck-box {
    position: relative;
    gap: 4px;
    width: auto;
    min-width: 52px;
    height: 28px;
    padding: 0 8px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-muted);
    font-size: 12px;
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.06em;
    line-height: 1;
    white-space: nowrap;
    outline: 0;
    box-shadow: none;
}
.cfy-mm-hpsign {
    display: inline-block;
    width: 10px;
    font-style: normal;
    text-align: center;
}
.cfy-mm-hpsign::before {
    content: "+";
    font-size: 15px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck:hover .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}
/* Dans mon HyperProfil */
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck input:checked + .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-fill);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck input:checked + .cfy-mm-hpcheck-box .cfy-mm-hpsign::before {
    content: "✓";
    font-size: 12px;
}
/* Partiel (parent, en-tête de colonne) */
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck input:indeterminate + .cfy-mm-hpcheck-box {
    border-color: var(--cfy-t-accent);
    background: linear-gradient(135deg, var(--cfy-t-accent-soft) 50%, var(--cfy-t-surface) 50%);
    color: var(--cfy-t-accent);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck input:indeterminate + .cfy-mm-hpcheck-box .cfy-mm-hpsign::before {
    content: "◐";
    font-size: 12px;
}
/* Ajout en attente : pointillés, repère carré */
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending input:checked + .cfy-mm-hpcheck-box {
    border: 2px dashed var(--cfy-t-accent);
    background: var(--cfy-t-accent-soft);
    color: var(--cfy-t-accent);
    padding: 0 7px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending input:checked + .cfy-mm-hpcheck-box .cfy-mm-hpsign::before {
    content: "+";
    font-size: 15px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending .cfy-mm-hpcheck-box::after {
    content: "";
    position: absolute;
    top: -5px;
    inset-inline-end: -5px;
    width: 8px;
    height: 8px;
    background: var(--cfy-t-accent);
}
/* Retrait en attente : pointillés rouges, barré */
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending input:not(:checked):not(:indeterminate) + .cfy-mm-hpcheck-box {
    border: 2px dashed var(--cfy-mm-st-del, #e85347);
    color: var(--cfy-mm-st-del, #e85347);
    text-decoration: line-through;
    padding: 0 7px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending input:not(:checked):not(:indeterminate) + .cfy-mm-hpcheck-box::after {
    background: var(--cfy-mm-st-del, #e85347);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck.is-pending input:not(:checked):not(:indeterminate) + .cfy-mm-hpcheck-box .cfy-mm-hpsign::before {
    content: "−";
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop) .cfy-mm-hpcheck input:focus-visible + .cfy-mm-hpcheck-box {
    outline: 2px solid var(--cfy-t-accent);
    outline-offset: 2px;
}

/* ---------- Ligne : visuel · libellé · compteur · ⓘ · Jump · HYP (· ›) ---------- */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item {
    padding-inline-start: 12px;
    padding-inline-end: 74px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go > .cfy-mm-item {
    padding-inline-end: 96px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item + .cfy-mm-hpcheck,
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-card + .cfy-mm-hpcheck,
.cfy-cnb-pop .cfy-mm-hpwrap > .cfy-mm-item + .cfy-mm-hpcheck {
    top: 50%;
    inset-inline-start: auto;
    inset-inline-end: 12px;
    transform: translateY(-50%);
}
.cfy-cnb-pop .cfy-mm-hpwrap > .cfy-mm-item {
    padding-inline-start: 10px;
    padding-inline-end: 72px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go > .cfy-mm-item + .cfy-mm-hpcheck {
    inset-inline-end: 32px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go > .cfy-mm-item .cfy-mm-item-go {
    display: none;
}
/* Chevron de descente, après le bouton HYP */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go::after {
    content: "";
    position: absolute;
    top: 50%;
    inset-inline-end: 13px;
    width: 8px;
    height: 8px;
    border: solid var(--cfy-t-muted);
    border-width: 0 2px 2px 0;
    transform: translateY(-50%) rotate(-45deg);
    pointer-events: none;
}
[dir="rtl"] .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go::after {
    transform: translateY(-50%) rotate(135deg);
}
/* Bloc de fin de ligne : compteur, fiche, « Jump » (le bouton HYP suit, hors du lien) */
.cfy-mm-item-end {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    margin-inline-start: auto;
}
.cfy-mm-item-end:empty {
    display: none;
}
/* Compteurs alignés : colonne fixe, chiffres à chasse fixe */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-item .cfy-mm-item-count {
    min-width: 5.2em;
    text-align: end;
}
/* Cartes : place du bouton HYP à droite, après « Jump » */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-card {
    padding-inline-end: 74px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-cards--strip .cfy-mm-hpwrap > .cfy-mm-card {
    padding-inline-end: 12px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-cards--strip .cfy-mm-hpwrap > .cfy-mm-card + .cfy-mm-hpcheck {
    top: 10px;
    transform: none;
}
/* Sous-catégories / sous-rayons : lignes denses */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-treekids.cfy-mm-rows {
    display: block;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-rows .cfy-mm-item,
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-list .cfy-mm-item:not(.cfy-mm-head) {
    border-bottom: 1px solid var(--cfy-t-line);
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-kidrow .cfy-mm-media {
    flex: 0 0 auto;
}

/* ---------- En-têtes de colonne : titre à gauche, « Tout HYP » à droite ---------- */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px 10px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-head > .cfy-mm-filter {
    grid-column: 1 / -1;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-head .cfy-mm-hpall {
    margin: 0;
}
.cfy-catalog-navbar-mega .cfy-mm-hpall {
    font-size: 12px;
    letter-spacing: 0.04em;
    color: var(--cfy-t-muted);
}

/* ---------- Devises et langues : « billets » compacts ---------- */
.cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) {
    grid-template-columns: repeat(auto-fill, minmax(min(400px, 100%), 1fr));
    gap: 8px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) .cfy-mm-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 12px;
    min-height: 76px;
    height: auto;
    padding-block: 10px;
    padding-inline-start: 12px;
    text-align: start;
}
.cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) .cfy-mm-card-end {
    flex-wrap: nowrap;
    margin: 0;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-cards--cur .cfy-mm-cur {
    display: grid;
    place-items: center;
    align-content: center;
    width: 64px;
    height: 56px;
    margin: 0;
    background: var(--cfy-t-accent-soft);
    border: 1px solid var(--cfy-t-line-2);
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-cards--cur .cfy-mm-cur-sigle {
    font-size: 22px;
    line-height: 1;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-cards--lang .cfy-mm-card-sub {
    padding: 4px 8px;
    border-inline-start: 3px solid var(--cfy-t-fill);
    background: var(--cfy-t-surface-2);
    color: var(--cfy-t-ink-2);
    unicode-bidi: plaintext;
}

/* ---------- Mode Multijump : « Jump » devient une bascule ---------- */
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump {
    border-style: dashed;
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump::before {
    content: "+";
    margin-inline-end: 4px;
    font-weight: var(--cfy-fw-bold);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump.is-mj-sel {
    border-style: solid;
    border-color: var(--cfy-t-fill);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump.is-mj-sel::before {
    content: "✓";
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump[data-mj-ok="0"] {
    opacity: 0.35;
    pointer-events: none;
}
.cfy-mm-hptray .cfy-mm-hpchip.is-mj {
    border-style: solid;
}

/* ---------- Jump actif (catalogue affiché ou sélection), croix de retrait, « Tout sélectionner » ---------- */
.cfy-mm-jump.is-mj-sel {
    border-color: var(--cfy-t-fill);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-jump.is-mj-sel::before {
    content: "✓";
    margin-inline-end: 4px;
    font-weight: var(--cfy-fw-bold);
}
.cfy-mm-jump-m {
    display: none;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump-l {
    display: none;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop).is-mj .cfy-mm-jump-m {
    display: inline;
}
.cfy-mm-jump-x {
    display: none;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-inline: 6px -6px;
    border-inline-start: 1px solid currentColor;
}
.cfy-mm-jump-x svg {
    width: 12px;
    height: 12px;
}
:is(.cfy-catalog-navbar-mega, .cfy-cnb-pop):not(.is-mj) .cfy-mm-jump.is-mj-sel:is(:hover, :focus-visible) .cfy-mm-jump-x {
    display: inline-flex;
}
.cfy-mm-jump-x:hover {
    background: var(--cfy-t-on-fill);
    color: var(--cfy-t-fill);
}
/* Barre d'actions : bloc HyperProfil puis bloc Multijump, sous l'en-tête de section ou dans l'en-tête de colonne */
.cfy-mm-actbar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
    margin: 0 0 14px;
}
.cfy-mm-actgrp {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface-2);
}
.cfy-mm-actgrp--mj {
    border-style: dashed;
    border-color: var(--cfy-t-accent);
}
.cfy-mm-actgrp-t {
    padding: 0 4px;
    color: var(--cfy-t-muted);
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.04em;
    white-space: nowrap;
}
.cfy-mm-actbtn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    margin: 0;
    padding: 2px 10px;
    border: 1px solid var(--cfy-t-line-2);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    font: inherit;
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
}
.cfy-mm-actbtn--mj {
    border-style: dashed;
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-accent);
}
.cfy-mm-actbtn svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
}
.cfy-mm-actbtn-in {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}
.cfy-mm-actbtn:is(:hover, :focus-visible, :focus-within),
.cfy-mm-actbtn.is-on,
.cfy-mm-actbtn[aria-pressed="true"] {
    border-style: solid;
    border-color: var(--cfy-t-fill);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    outline: 0;
}
.cfy-mm-actbtn:disabled,
.cfy-mm-actbtn.is-off {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}
.cfy-mm-actbtn[hidden] {
    display: none;
}
.cfy-mm-actbar .cfy-mm-onlymine {
    min-height: 28px;
    padding: 2px 10px;
}
/* En-tête de colonne : la barre occupe toute la largeur, chaque bloc sur sa ligne si la colonne est étroite */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-head > .cfy-mm-actbar {
    grid-column: 1 / -1;
    margin: 0;
    gap: 6px;
}
.cfy-mm-mcol-head .cfy-mm-actgrp {
    flex: 1 1 100%;
}
.cfy-mm-mcol-head .cfy-mm-actbtn {
    flex: 1 1 auto;
    justify-content: center;
    white-space: normal;
    text-align: center;
}

/* ---------- Plateau : HyperProfil puis Multijump ---------- */
.cfy-catalog-navbar-mega .cfy-mm-hptray {
    flex-direction: column;
    align-items: stretch;
}
.cfy-mm-hptray-hp,
.cfy-mm-mjtray {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cfy-sp-2) var(--cfy-sp-4);
}
.cfy-mm-hptray-hp + .cfy-mm-mjtray {
    padding-top: var(--cfy-sp-3);
    border-top: 1px dashed var(--cfy-t-line-2);
}
.cfy-mm-hptray-hp .cfy-mm-hptray-chips,
.cfy-mm-mjtray .cfy-mm-hptray-chips {
    flex: 1 1 260px;
}
.cfy-mm-hptray-hp .cfy-mm-hptray-actions,
.cfy-mm-mjtray .cfy-mm-hptray-actions {
    margin-inline-start: auto;
}

/* Volet des puces et son bouton : sans effet ici, le dock du smartphone les met en forme */
.cfy-mm-hptray-sheet {
    display: contents;
}
.cfy-mm-hptray-toggle {
    display: none;
}

/* ---------- En-têtes de section magnifiés ---------- */
.cfy-mm-hero2 {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0 20px;
    min-height: 132px;
    margin: 0 0 14px;
    padding-inline-end: 18px;
    overflow: hidden;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-hero2-dc {
    position: relative;
    align-self: stretch;
    display: grid;
    place-items: center;
    overflow: hidden;
}
.cfy-mm-hero2-main {
    min-width: 0;
    padding: 14px 0;
}
.cfy-mm-hero2-kk {
    display: block;
    font-size: 11px;
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
/* Titre : passe devant la couleur blanche des titres en mode sombre du thème DashLite */
.cfy-mm-hero2 .cfy-mm-hero2-tt,
.cfy-mm-hero2-tt {
    margin: 2px 0 6px;
    color: inherit;
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}
.cfy-mm-hero2-st {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 18px;
    font-size: 13.5px;
}
.cfy-mm-hero2-stat b {
    font-size: 17px;
    font-variant-numeric: tabular-nums;
}
.cfy-mm-hero2 .cfy-mm-onlymine {
    min-height: 28px;
    padding: 0 8px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
}
.cfy-mm-hero2 .cfy-mm-onlymine[aria-pressed="true"] {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    border-color: var(--cfy-t-surface);
}
.cfy-mm-hero2-hint {
    max-width: 760px;
    margin: 8px 0 0;
    padding: 6px 10px;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink-2);
    font-size: 13px;
}
.cfy-mm-hero2-ac {
    display: grid;
    justify-items: end;
    gap: 8px;
    padding: 14px 0;
}
.cfy-mm-hero2-tools {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}
.cfy-mm-hero2-tools .cfy-mm-filter {
    width: 240px;
    max-width: 100%;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-muted);
    border: 1px solid var(--cfy-t-line-2);
}
.cfy-mm-hero2-tools .cfy-mm-hpall {
    padding: 2px 4px 2px 8px;
    background: var(--cfy-t-surface);
    border: 1px solid var(--cfy-t-line-2);
}
.cfy-mm-hero2-btns {
    display: flex;
    gap: 6px;
}
.cfy-mm-hero2-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    font-size: 12px;
    font-weight: var(--cfy-fw-bold);
    cursor: pointer;
}
.cfy-mm-hero2-btn svg {
    width: 15px;
    height: 15px;
}
.cfy-mm-hero2-ico {
    justify-content: center;
    width: 30px;
    padding: 0;
}
.cfy-mm-hero2-btn:hover,
.cfy-mm-hero2-btn[aria-pressed="true"],
.cfy-mm-hero2-btn[aria-expanded="true"] {
    background: var(--cfy-t-surface);
    border-color: var(--cfy-t-surface);
    color: var(--cfy-t-accent);
}
.cfy-mm-hero2-btn:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
.cfy-mm-hero2-fold svg {
    transform: rotate(180deg);
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-fold svg {
    transform: none;
}
.cfy-mm-hero2-ill {
    width: 108px;
    height: 80px;
    background: currentColor;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    position: relative;
    z-index: 1;
}
.cfy-mm-hero2-trail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin-bottom: 4px;
    font-size: 12.5px;
    font-weight: var(--cfy-fw-bold);
}
.cfy-mm-hero2-trail:empty {
    display: none;
}
.cfy-mm-hero2-trail span {
    padding: 1px 7px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
}
.cfy-mm-hero2-trail span.is-last {
    border-color: var(--cfy-t-fill);
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-hero2-big {
    margin: 2px 0 6px;
    font-size: 15px;
    font-weight: var(--cfy-fw-semibold);
}
.cfy-mm-hero2-big b {
    font-size: 52px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
/* Replié : une rangée de 56 px */
.cfy-mm-hero2.is-folded {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    min-height: 56px;
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 14px;
    padding: 8px 0;
}
.cfy-mm-hero2.is-folded :is(.cfy-mm-hero2-kk, .cfy-mm-hero2-stat, .cfy-mm-hero2-hint, .cfy-mm-hero2-big, .cfy-mm-hero2-gauge) {
    display: none;
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-tt {
    margin: 0;
    font-size: 22px;
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-ac {
    grid-auto-flow: column;
    align-items: center;
    padding: 8px 0;
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-dc > :not(.cfy-mm-hero2-ill) {
    display: none;
}
.cfy-mm-hero2.is-folded .cfy-mm-hero2-ill {
    width: 44px;
    height: 32px;
}

/* 1. Vue d'ensemble : tableau de bord sombre */
.cfy-mm-hero2--overview {
    background: var(--cfy-t-ink);
    color: var(--cfy-t-surface);
}
.cfy-mm-hero2--overview .cfy-mm-hero2-dc {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-hero2--overview .cfy-mm-hero2-big b {
    color: var(--cfy-t-fill);
}
body.dark-mode .cfy-mm-hero2--overview {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
}
body.dark-mode .cfy-mm-hero2--overview .cfy-mm-hero2-big b {
    color: var(--cfy-t-accent);
}
/* 2. Mon HyperProfil : carte de membre */
.cfy-mm-hero2--myhp {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2--myhp .cfy-mm-hero2-dc {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
.cfy-mm-hero2-card {
    display: grid;
    align-content: end;
    width: 100px;
    height: 68px;
    padding: 6px 8px;
    border: 2px solid currentColor;
    font: 800 16px/1 ui-monospace, monospace;
    letter-spacing: 0.12em;
    background: linear-gradient(currentColor, currentColor) 8px 8px / 22px 16px no-repeat;
}
.cfy-mm-hero2-gauge {
    display: inline-grid;
    grid-template-columns: repeat(8, 22px);
    gap: 3px;
}
.cfy-mm-hero2-gauge i {
    height: 8px;
    background: var(--cfy-t-line-2);
}
.cfy-mm-hero2-gauge i.is-on {
    background: var(--cfy-t-fill);
}
/* 3. Catégories : affiche à bandes diagonales */
.cfy-mm-hero2--category {
    background: repeating-linear-gradient(135deg, var(--cfy-t-fill) 0 18px, var(--cfy-t-fill-lo) 18px 36px);
}
.cfy-mm-hero2--category .cfy-mm-hero2-dc {
    background: color-mix(in srgb, var(--cfy-t-fill) 70%, #000);
}
.cfy-mm-hero2--category .cfy-mm-hero2-tt {
    font-size: 50px;
}
.cfy-mm-hero2-out {
    position: absolute;
    inset-inline-end: -6px;
    bottom: -18px;
    font-size: 84px;
    font-weight: 900;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px color-mix(in srgb, var(--cfy-t-on-fill) 40%, transparent);
}
/* 4. Rayons : planche de magazine */
.cfy-mm-hero2--rayon {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    border-top: 6px solid var(--cfy-t-fill);
    border-bottom: 4px double var(--cfy-t-ink);
}
.cfy-mm-hero2--rayon .cfy-mm-hero2-kk {
    color: var(--cfy-t-accent);
    opacity: 1;
}
.cfy-mm-hero2--rayon .cfy-mm-hero2-tt {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 52px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: -0.01em;
}
.cfy-mm-hero2--rayon .cfy-mm-hero2-st {
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
}
.cfy-mm-hero2--rayon .cfy-mm-hero2-dc {
    border-inline-end: 1px solid var(--cfy-t-ink);
}
.cfy-mm-hero2-letter {
    font: italic 400 108px/1 Georgia, "Times New Roman", serif;
    color: var(--cfy-t-accent);
}
/* 5. Devises : billet de banque */
.cfy-mm-hero2--devise {
    background: var(--cfy-t-fill-lo);
    outline: 1px solid color-mix(in srgb, var(--cfy-t-on-fill) 50%, transparent);
    outline-offset: -8px;
}
.cfy-mm-hero2--devise::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(circle at 92% 50%, transparent 0 40px, color-mix(in srgb, var(--cfy-t-on-fill) 10%, transparent) 41px 42px, transparent 43px 60px, color-mix(in srgb, var(--cfy-t-on-fill) 10%, transparent) 61px 62px, transparent 63px),
        repeating-linear-gradient(0deg, color-mix(in srgb, var(--cfy-t-on-fill) 6%, transparent) 0 1px, transparent 1px 5px);
}
.cfy-mm-hero2--devise .cfy-mm-hero2-dc {
    border-inline-end: 2px solid color-mix(in srgb, var(--cfy-t-on-fill) 45%, transparent);
}
.cfy-mm-hero2--devise .cfy-mm-hero2-kk {
    font-family: ui-monospace, monospace;
    letter-spacing: 0.3em;
}
.cfy-mm-hero2-sig {
    font-size: 62px;
    font-weight: 800;
    line-height: 1;
}
.cfy-mm-hero2-tk {
    position: absolute;
    inset-inline: 0;
    bottom: 10px;
    font: 700 10px/1 ui-monospace, monospace;
    letter-spacing: 0.2em;
    text-align: center;
    opacity: 0.8;
}
/* 6. Langues : conversation */
.cfy-mm-hero2--language .cfy-mm-hero2-dc {
    background: color-mix(in srgb, var(--cfy-t-fill) 75%, #000);
}
.cfy-mm-hero2-bub {
    position: relative;
    padding: 10px 12px;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.06em;
}
.cfy-mm-hero2-bub::after {
    content: "";
    position: absolute;
    inset-inline-start: 16px;
    bottom: -10px;
    border: 10px solid transparent;
    border-top-color: var(--cfy-t-surface);
    border-bottom: 0;
}
/* 7. Continents : planisphère quadrillé */
.cfy-mm-hero2--continent {
    background: var(--cfy-t-fill-lo);
}
.cfy-mm-hero2--continent::before,
.cfy-mm-hero2--city::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--cfy-t-on-fill) 9%, transparent) 0 1px, transparent 1px 44px),
        repeating-linear-gradient(0deg, color-mix(in srgb, var(--cfy-t-on-fill) 9%, transparent) 0 1px, transparent 1px 33px);
}
.cfy-mm-hero2--continent .cfy-mm-hero2-dc .cfy-mm-media,
.cfy-mm-hero2--country .cfy-mm-hero2-dc .cfy-mm-media {
    width: 120px;
    height: 90px;
    background: var(--cfy-t-surface);
}
/* 8. Pays : atlas */
.cfy-mm-hero2--country {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2--country::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--cfy-t-accent) 10%, transparent) 0 1px, transparent 1px 36px);
}
.cfy-mm-hero2--country .cfy-mm-hero2-dc {
    background: var(--cfy-t-fill);
}
.cfy-mm-hero2-flag {
    position: absolute;
    inset-inline-end: 10px;
    bottom: 10px;
    display: inline-flex;
    border: 2px solid var(--cfy-t-surface);
}
.cfy-mm-hero2-flag img {
    width: 30px;
    height: 22px;
    object-fit: cover;
}
/* 9. Régions, départements : cadastre */
.cfy-mm-hero2--region,
.cfy-mm-hero2--department {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2--region .cfy-mm-hero2-dc,
.cfy-mm-hero2--department .cfy-mm-hero2-dc {
    background: repeating-linear-gradient(45deg, var(--cfy-t-fill) 0 2px, transparent 2px 9px), var(--cfy-t-accent-soft);
}
.cfy-mm-hero2--region .cfy-mm-hero2-tt,
.cfy-mm-hero2--department .cfy-mm-hero2-tt {
    font-family: ui-monospace, "SF Mono", monospace;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.cfy-mm-hero2-code {
    display: inline-flex;
    align-items: center;
    padding: 6px 8px;
    border: 2px solid var(--cfy-t-accent);
    background: var(--cfy-t-surface);
    color: var(--cfy-t-accent);
    font: 900 26px/1 ui-monospace, monospace;
}
.cfy-mm-hero2-code svg {
    width: 34px;
    height: 34px;
}
/* 10. Codes postaux : tampon (carré, charte) */
.cfy-mm-hero2--postalcode {
    background: var(--cfy-t-surface-2);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2--postalcode::before {
    content: "";
    position: absolute;
    inset-inline-start: 50%;
    inset-inline-end: 260px;
    top: 34px;
    height: 56px;
    z-index: -1;
    background: repeating-linear-gradient(0deg, transparent 0 9px, color-mix(in srgb, var(--cfy-t-accent) 22%, transparent) 9px 11px);
}
.cfy-mm-hero2-stamp {
    display: grid;
    place-items: center;
    width: 88px;
    height: 88px;
    border: 3px solid var(--cfy-t-accent);
    outline: 1px solid var(--cfy-t-accent);
    outline-offset: 4px;
    color: var(--cfy-t-accent);
    transform: rotate(-8deg);
}
.cfy-mm-hero2-stamp svg {
    width: 40px;
    height: 40px;
}
/* 11. Villes : plan de ville et silhouette */
.cfy-mm-hero2--city {
    background: var(--cfy-t-fill-lo);
}
.cfy-mm-hero2-sky svg {
    display: block;
    width: 120px;
    height: 78px;
}
/* 12. Catalogues officiels : sceau */
.cfy-mm-hero2--catalogfamily {
    background: var(--cfy-t-ink);
    color: var(--cfy-t-surface);
}
body.dark-mode .cfy-mm-hero2--catalogfamily {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
}
.cfy-mm-hero2--catalogfamily .cfy-mm-hero2-tt {
    font-size: 34px;
}
.cfy-mm-hero2-seal {
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    clip-path: polygon(50% 0, 61% 9%, 75% 6%, 80% 20%, 94% 25%, 91% 39%, 100% 50%, 91% 61%, 94% 75%, 80% 80%, 75% 94%, 61% 91%, 50% 100%, 39% 91%, 25% 94%, 20% 80%, 6% 75%, 9% 61%, 0 50%, 9% 39%, 6% 25%, 20% 20%, 25% 6%, 39% 9%);
}
.cfy-mm-hero2-seal svg {
    width: 34px;
    height: 34px;
}
/* 13. Prix : étiquette */
.cfy-mm-hero2--price {
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2-tag {
    display: inline-flex;
    align-items: center;
    padding: 16px 16px 16px 28px;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    clip-path: polygon(16px 0, 100% 0, 100% 100%, 16px 100%, 0 50%);
    transform: rotate(-12deg);
}
.cfy-mm-hero2-tag svg {
    width: 34px;
    height: 34px;
}
/* 14. Pins : liège */
.cfy-mm-hero2--pins {
    background: radial-gradient(circle, color-mix(in srgb, var(--cfy-t-on-fill) 16%, transparent) 1.5px, transparent 2px) 0 0 / 14px 14px, var(--cfy-t-fill-lo);
}
/* 15. Notation : étoiles */
.cfy-mm-hero2-stars {
    font-size: 24px;
    letter-spacing: 2px;
}
/* 16. Dates : éphéméride */
.cfy-mm-hero2--date {
    background: var(--cfy-t-surface-3);
    color: var(--cfy-t-ink);
    box-shadow: inset 0 0 0 1px var(--cfy-t-line-2);
}
.cfy-mm-hero2-sheet {
    width: 86px;
    border: 1px solid var(--cfy-t-line-2);
    background: var(--cfy-t-surface);
    text-align: center;
    box-shadow: 4px 4px 0 var(--cfy-t-line-2), 8px 8px 0 var(--cfy-t-line);
}
.cfy-mm-hero2-sheet small {
    display: block;
    padding: 6px 0;
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    font-size: 11px;
    font-weight: var(--cfy-fw-bold);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.cfy-mm-hero2-sheet b {
    display: block;
    padding: 4px 0 6px;
    font-size: 42px;
    font-weight: 900;
    line-height: 1.1;
}
/* Héros clairs : boutons et filtre sur fond clair */
:is(.cfy-mm-hero2--rayon, .cfy-mm-hero2--myhp, .cfy-mm-hero2--country, .cfy-mm-hero2--region, .cfy-mm-hero2--department, .cfy-mm-hero2--postalcode, .cfy-mm-hero2--price, .cfy-mm-hero2--date) .cfy-mm-hero2-btn:is(:hover, [aria-pressed="true"], [aria-expanded="true"]) {
    background: var(--cfy-t-fill);
    border-color: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

/* ---------- Petits écrans ---------- */
@media (max-width: 1199.98px) {
    .cfy-mm-hero2 {
        grid-template-columns: 110px minmax(0, 1fr);
    }
    .cfy-mm-hero2-ac {
        grid-column: 1 / -1;
        justify-items: stretch;
        padding: 0 0 12px 18px;
    }
    .cfy-mm-hero2-tools {
        justify-content: flex-start;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-ac {
        grid-column: auto;
        padding: 8px 0;
    }
}
@media (max-width: 767.98px) {
    .cfy-mm-hero2 {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 0 12px;
        padding-inline-end: 12px;
    }
    .cfy-mm-hero2-tt,
    .cfy-mm-hero2--category .cfy-mm-hero2-tt,
    .cfy-mm-hero2--rayon .cfy-mm-hero2-tt {
        font-size: 28px;
    }
    .cfy-mm-hero2-ac {
        padding: 0 0 12px 12px;
    }
    .cfy-mm-hero2-tools .cfy-mm-filter {
        width: 100%;
    }
    .cfy-mm-hero2-ill {
        width: 56px;
        height: 42px;
    }
    .cfy-mm-hero2-letter {
        font-size: 64px;
    }
    .cfy-mm-hero2-sig {
        font-size: 36px;
    }
    .cfy-mm-hero2-tk,
    .cfy-mm-hero2-out,
    .cfy-mm-hero2-flag {
        display: none;
    }
    :is(.cfy-mm-hero2-stamp, .cfy-mm-hero2-seal, .cfy-mm-hero2-card) {
        width: 56px;
        height: 56px;
    }
    /* « HYP » (3 lettres) tient dans les 36px utiles de la carte */
    .cfy-mm-hero2-card {
        letter-spacing: 0.02em;
    }
    .cfy-mm-hero2-sheet {
        width: 56px;
    }
    .cfy-mm-hero2-sheet b {
        font-size: 26px;
    }
    .cfy-mm-hero2-big b {
        font-size: 34px;
    }
    .cfy-mm-hero2-gauge {
        grid-template-columns: repeat(8, 14px);
    }
    .cfy-mm-hero2--continent .cfy-mm-hero2-dc .cfy-mm-media,
    .cfy-mm-hero2--country .cfy-mm-hero2-dc .cfy-mm-media {
        width: 64px;
        height: 48px;
    }
    .cfy-mm-hero2.is-folded {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-trail {
        display: none;
    }
    .cfy-mm-hero2.is-folded :is(.cfy-mm-hero2-mj span, .cfy-mm-onlymine span) {
        display: none;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-st {
        min-width: 0;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) .cfy-mm-hpwrap > .cfy-mm-card + .cfy-mm-hpcheck {
        top: auto;
        bottom: 10px;
        transform: none;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-dc {
        display: none;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-main {
        padding-inline-start: 12px;
    }
    .cfy-mm-hero2.is-folded .cfy-mm-hero2-tools {
        display: none;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) .cfy-mm-card {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub :is(.cfy-mm-cards--cur, .cfy-mm-cards--lang) .cfy-mm-card-end {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

/* Colonnes étroites (géographie, parents) : libellé sur la première rangée, puis compteur, fiche et
   « Jump » alignés à droite sur la seconde ; le bouton HYP s'aligne sur cette seconde rangée, après « Jump ». */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-mcol-list {
    container-type: inline-size;
}
@container (max-width: 560px) {
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item {
        flex-wrap: wrap;
        row-gap: 6px;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item .cfy-mm-item-label {
        flex: 1 1 0;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item .cfy-mm-item-end {
        flex: 1 0 100%;
        justify-content: flex-end;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-item + .cfy-mm-hpcheck {
        top: auto;
        bottom: 8px;
        transform: none;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go::after {
        top: auto;
        bottom: 17px;
        transform: rotate(-45deg);
    }
    [dir="rtl"] .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap--go::after {
        transform: rotate(135deg);
    }
}

/* Plateau : boutons plus compacts quand HyperProfil et Multijump sont affichés ensemble */
.cfy-catalog-navbar-mega .cfy-mm-hptray .cfy-mm-hptray-actions .cfy-mm-hpbtn {
    min-height: 40px;
}
.cfy-catalog-navbar-mega .cfy-mm-mjtray .cfy-mm-hptray-actions .cfy-mm-hpbtn--primary {
    min-width: 220px;
}

/* Recherche avancée en cours : segment courant qui rouvre le moteur de recherche */
.cfy-catalog-navbar-seg--search button.cfy-catalog-navbar-seg-go {
    appearance: none;
    max-width: none;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.nk-body .cfy-vignettes-pre-banner .cfy-catalog-navbar .cfy-catalog-navbar-seg--search .cfy-catalog-navbar-cell-icon {
    display: inline-flex;
    color: inherit;
}
body .cfy-catalog-navbar-seg--search.is-current button.cfy-catalog-navbar-seg-go:hover {
    box-shadow: inset 0 -2px 0 var(--cfy-hr-accent);
}

/* ======================================================================
   Recherche globale v2 et section « Éditeurs » : une ligne par résultat,
   groupée par section, libellé entier sur plusieurs lignes, contexte
   dessous, puis nombre, fiche, Jump et HYP. Angles droits, tokens du thème.
   ====================================================================== */
.cfy-catalog-navbar-mega .cfy-mm-search :is(.cfy-mm-pubresults, .cfy-mm-georesults, .cfy-mm-adresults):empty {
    display: none;
}
.cfy-catalog-navbar-mega .cfy-mm-sgroup-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--cfy-t-line);
    color: var(--cfy-t-ink);
    font-size: var(--cfy-fs-md, 16px);
    font-weight: var(--cfy-fw-bold);
    line-height: 1.3;
}
.cfy-catalog-navbar-mega .cfy-mm-sgroup-head > svg {
    width: 18px;
    height: 18px;
    color: var(--cfy-t-accent);
}
.cfy-catalog-navbar-mega .cfy-mm-sgroup-head .cfy-mm-seeall {
    margin-inline-start: auto;
}
.cfy-catalog-navbar-mega .cfy-mm-sresults {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(420px, 100%), 1fr));
    gap: 6px;
    align-items: stretch;
}
.cfy-catalog-navbar-mega .cfy-mm-sresults > .cfy-mm-hpwrap {
    display: flex;
}
.cfy-catalog-navbar-mega .cfy-mm-sres {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 56px;
    padding: 8px 12px;
    border: 1px solid var(--cfy-t-line);
    border-radius: 0;
    background: var(--cfy-t-surface);
    color: var(--cfy-t-ink);
    text-decoration: none;
    cursor: pointer;
}
.cfy-catalog-navbar-mega .cfy-mm-sres:hover {
    border-color: var(--cfy-t-accent);
    color: var(--cfy-t-ink);
}
.cfy-catalog-navbar-mega .cfy-mm-sres.is-current {
    border-color: var(--cfy-t-fill);
    box-shadow: inset 4px 0 0 var(--cfy-t-fill);
}
/* Sans annonce : surface secondaire (le texte atténué du contexte y reste lisible) */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-sres.is-empty {
    background: var(--cfy-t-surface-2);
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 36px;
    overflow: hidden;
    border: 1px solid var(--cfy-t-line);
    background: var(--cfy-t-surface-2);
    color: var(--cfy-t-accent);
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media > svg {
    width: 20px;
    height: 20px;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media--avatar {
    width: 36px;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media--avatar img {
    display: block;
    width: 36px;
    height: 36px;
    object-fit: cover;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media--flag {
    background: transparent;
    border-color: transparent;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media--flag .cfy-mm-flag {
    width: 32px;
    height: 24px;
    object-fit: cover;
    border: 1px solid var(--cfy-t-line);
}
.cfy-catalog-navbar-mega .cfy-mm-sres-media--code b {
    max-width: 44px;
    overflow: hidden;
    color: var(--cfy-t-accent);
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-bold);
    line-height: 1;
}
.cfy-catalog-navbar-mega .cfy-mm-sres > .cfy-mm-media {
    flex: 0 0 auto;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-text {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-label {
    color: var(--cfy-t-ink);
    font-size: var(--cfy-fs-base);
    font-weight: var(--cfy-fw-semibold);
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-sub {
    color: var(--cfy-t-muted);
    font-size: var(--cfy-fs-caption, 12px);
    line-height: 1.35;
    overflow-wrap: break-word;
}
/* Slogan d'un éditeur : deux lignes au plus */
.cfy-catalog-navbar-mega .cfy-mm-sresults .cfy-mm-sres-media--avatar + .cfy-mm-sres-text .cfy-mm-sres-sub {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-end {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}
.cfy-catalog-navbar-mega .cfy-mm-sres-end .cfy-mm-item-count {
    min-width: 3.4em;
    text-align: end;
}
/* Bouton HYP à droite, après « Jump », centré sur la ligne */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-sres {
    padding-inline-end: 74px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-sres + .cfy-mm-hpcheck {
    top: 50%;
    inset-inline-start: auto;
    inset-inline-end: 12px;
    transform: translateY(-50%);
}
/* États HyperProfil (mêmes repères que les lignes et les cartes) */
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap.is-in > .cfy-mm-sres {
    background: var(--cfy-mm-st-in);
    border-color: var(--cfy-t-fill);
    box-shadow: inset 4px 0 0 var(--cfy-t-fill), inset 0 0 0 1px var(--cfy-t-fill);
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap.is-add > .cfy-mm-sres {
    background: var(--cfy-mm-st-add);
    outline: 2px dashed var(--cfy-t-fill);
    outline-offset: -2px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap.is-del > .cfy-mm-sres {
    outline: 2px dashed var(--cfy-mm-st-del);
    outline-offset: -2px;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap.is-del .cfy-mm-sres-label {
    text-decoration: line-through;
}
.cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap.is-in > .cfy-mm-sres .cfy-mm-item-count {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}
/* Jours du calendrier choisis en mode Multijump */
.cfy-catalog-navbar-mega.is-mj .cfy-mm-day.is-mj-sel {
    background: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
    box-shadow: inset 0 0 0 2px var(--cfy-t-fill-lo);
}
.cfy-catalog-navbar-mega.is-mj .cfy-mm-day.is-mj-sel small {
    color: var(--cfy-t-on-fill);
}
/* Smartphone : nombre, fiche, Jump et HYP passent sous le texte */
@media (max-width: 767.98px) {
    .cfy-catalog-navbar-mega .cfy-mm-sres {
        flex-wrap: wrap;
        row-gap: 8px;
    }
    .cfy-catalog-navbar-mega .cfy-mm-sres-text {
        flex-basis: calc(100% - 58px);
    }
    .cfy-catalog-navbar-mega .cfy-mm-sres-end {
        flex-basis: 100%;
        justify-content: flex-end;
        min-height: 28px;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-sres {
        padding-inline-end: 12px;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-sres .cfy-mm-sres-end {
        padding-inline-end: 66px;
    }
    .cfy-catalog-navbar-mega .cfy-mm-hub .cfy-mm-hpwrap > .cfy-mm-sres + .cfy-mm-hpcheck {
        top: auto;
        bottom: 8px;
        transform: none;
    }
}

/* Recherche : annonces trouvées (vignette réduite, titre entier) */
.cfy-catalog-navbar-mega .cfy-mm-sres-media--ad img {
    display: block;
    width: 48px;
    height: 36px;
    object-fit: cover;
}
.cfy-catalog-navbar-mega .cfy-mm-sgroup-head a.cfy-mm-seeall {
    text-decoration: none;
}

/* Barre du haut du panneau : sous la plaque du logo et la bannière du header quand elles débordent */
.cfy-catalog-navbar-mega .cfy-mm-head-bar {
    padding-top: calc(12px + var(--cfy-mm-top-gap, 0px));
}

/* Recherche multiple (termes séparés par des virgules) : rappel des termes au-dessus du résultat combiné */
.cfy-catalog-navbar-mega .cfy-mm-sterms {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 14px;
}
.cfy-catalog-navbar-mega .cfy-mm-sterm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    padding: 2px 10px;
    border: 1px solid var(--cfy-t-fill);
    border-radius: 0;
    background: var(--cfy-t-accent-soft);
    color: var(--cfy-t-ink);
    font-size: var(--cfy-fs-sm);
    font-weight: var(--cfy-fw-semibold);
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.cfy-catalog-navbar-mega .cfy-mm-sterm > svg {
    width: 14px;
    height: 14px;
    color: var(--cfy-t-accent);
}

/* Recherche : attente des résultats (lignes fantômes, même scintillement que le squelette du panneau) */
.cfy-catalog-navbar-mega .cfy-mm-sskel .cfy-mm-skel-title {
    width: 160px;
    height: 20px;
    margin-bottom: 10px;
}
.cfy-catalog-navbar-mega .cfy-mm-sskel-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 8px 12px;
    border: 1px solid var(--cfy-t-line);
    background: var(--cfy-t-surface);
}
.cfy-catalog-navbar-mega .cfy-mm-sskel-row > i,
.cfy-catalog-navbar-mega .cfy-mm-sskel-row > b {
    display: block;
    height: 36px;
    background: linear-gradient(90deg, var(--cfy-t-surface-2) 0%, var(--cfy-t-surface-3) 50%, var(--cfy-t-surface-2) 100%);
    background-size: 200% 100%;
    animation: cfy-mm-skel 1.2s linear infinite;
}
.cfy-catalog-navbar-mega .cfy-mm-sskel-row > i {
    flex: 0 0 48px;
}
.cfy-catalog-navbar-mega .cfy-mm-sskel-row > b {
    flex: 0 1 60%;
    height: 14px;
}
body.performance-mode .cfy-catalog-navbar-mega .cfy-mm-sskel-row > :is(i, b) {
    animation: none;
}

/* Recherche : sections du megamenu trouvées (bouton qui ouvre la section) */
.cfy-catalog-navbar-mega button.cfy-mm-sres {
    width: 100%;
    font: inherit;
    text-align: start;
    appearance: none;
}
.cfy-catalog-navbar-mega .cfy-mm-sres--sec .cfy-mm-sres-end > svg {
    width: 16px;
    height: 16px;
    color: var(--cfy-t-muted);
}
[dir="rtl"] .cfy-catalog-navbar-mega .cfy-mm-sres--sec .cfy-mm-sres-end > svg {
    transform: scaleX(-1);
}

/* Recherche : blocs de réponse espacés régulièrement (une colonne, écart constant, aucune autre marge) */
.cfy-catalog-navbar-mega .cfy-mm-search {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.cfy-catalog-navbar-mega .cfy-mm-search > *,
.cfy-catalog-navbar-mega .cfy-mm-search .cfy-mm-sgroup,
.cfy-catalog-navbar-mega .cfy-mm-search .cfy-mm-sterms {
    margin: 0;
}
.cfy-catalog-navbar-mega .cfy-mm-search > :is(.cfy-mm-pubresults, .cfy-mm-georesults, .cfy-mm-adresults, .cfy-mm-pinresults):empty {
    display: none;
}
.cfy-catalog-navbar-mega .cfy-mm-search .cfy-mm-sgroup-head {
    margin-bottom: 10px;
}
.cfy-catalog-navbar-mega .cfy-mm-search .cfy-mm-sresults {
    gap: 8px;
}

/* Recherche globale : termes recherchés et bouton Multijump sur une même ligne, bouton calé à droite */
.cfy-catalog-navbar-mega .cfy-mm-search .cfy-mm-sbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
}
.cfy-catalog-navbar-mega .cfy-mm-sbar .cfy-mm-sterms {
    flex: 1 1 auto;
}
.cfy-catalog-navbar-mega .cfy-mm-sbar-mj {
    margin-inline-start: auto;
    border-color: var(--cfy-t-line-2);
    color: var(--cfy-t-accent);
}
.cfy-catalog-navbar-mega .cfy-mm-sbar-mj:is(:hover, [aria-pressed="true"]) {
    background: var(--cfy-t-fill);
    border-color: var(--cfy-t-fill);
    color: var(--cfy-t-on-fill);
}

/* Fenêtre des voisins : bascule Multijump dans l'en-tête, sélection en pied de fenêtre */
.cfy-cnb-pop-head .cfy-cnb-pop-mj {
    flex: 0 0 auto;
    background: var(--cfy-hr-pill-bg);
    border-color: var(--cfy-hr-accent);
    color: var(--cfy-hr-accent-text);
}
.cfy-cnb-pop-head .cfy-cnb-pop-mj:is(:hover, :focus-visible, :focus-within, [aria-pressed="true"]) {
    background: var(--cfy-hr-flat);
    border-color: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}
.cfy-cnb-pop-sel > b + .cfy-mm-hptray-actions + .cfy-cnb-pop-mjsel {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--cfy-t-line);
}
.cfy-cnb-pop-mjsel > b {
    display: block;
    margin-bottom: 6px;
    color: var(--cfy-t-ink);
}
.cfy-cnb-pop-mjsel .cfy-mm-hptray-note {
    display: block;
    margin-bottom: 8px;
}
.cfy-cnb-pop-mjsel .cfy-mm-hptray-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
}
@media (max-width: 767.98px) {
    .cfy-cnb-pop-head .cfy-cnb-pop-mj span {
        display: none;
    }
}

/* ==========================================================================
   Fil en listes sélecteur : le segment entier ouvre la liste de ses voisins,
   la légende ouvre la liste des catalogues ; fenêtre élargie sur grand écran
   ========================================================================== */
.cfy-catalog-navbar-seg.is-selector .cfy-catalog-navbar-seg-more {
    min-width: 26px;
    padding: 0 8px 0 0;
    border-inline-start: 0;
    color: var(--cfy-hr-ink-2);
}
html[dir="rtl"] .cfy-catalog-navbar-seg.is-selector .cfy-catalog-navbar-seg-more {
    padding: 0 0 0 8px;
}
.cfy-catalog-navbar-seg.is-selector .cfy-catalog-navbar-seg-go {
    padding-inline-end: 6px;
    cursor: pointer;
}
/* Survol ou ouverture : tout le segment devient un aplat (libellé et chevron ensemble) */
body .cfy-catalog-navbar-seg.is-selector:is(:hover, .is-open) {
    background: var(--cfy-hr-flat);
    border-color: var(--cfy-hr-flat);
}
body .cfy-catalog-navbar-seg.is-selector:is(:hover, .is-open) a.cfy-catalog-navbar-seg-go,
body .cfy-catalog-navbar-seg.is-selector:is(:hover, .is-open) .cfy-catalog-navbar-seg-more {
    background: transparent;
    box-shadow: none;
    color: var(--cfy-hr-on-flat);
}
body .cfy-catalog-navbar-seg.is-selector:is(:hover, .is-open) .cfy-catalog-navbar-seg-x {
    color: var(--cfy-hr-on-flat);
}
/* Légende sélecteur */
.cfy-catalog-navbar-dimcap.is-selector {
    min-height: 34px;
    padding: 0 6px 0 10px;
    border: 1px solid var(--cfy-hr-ph-line-2);
    cursor: pointer;
    user-select: none;
}
.cfy-catalog-navbar-dimcap-caret {
    display: inline-flex;
    color: var(--cfy-hr-ink-2);
}
.cfy-catalog-navbar-dimcap-caret svg {
    width: 14px;
    height: 14px;
    transition: transform 0.15s ease;
}
.cfy-catalog-navbar-dimcap.is-selector.is-open .cfy-catalog-navbar-dimcap-caret svg {
    transform: rotate(180deg);
}
body .cfy-catalog-navbar-dimcap.is-selector:is(:hover, .is-open) {
    background: var(--cfy-hr-flat);
    border-color: var(--cfy-hr-flat);
    color: var(--cfy-hr-on-flat);
}
body .cfy-catalog-navbar-dimcap.is-selector:is(:hover, .is-open) :is(.cfy-catalog-navbar-cell-icon, .cfy-catalog-navbar-dimcap-caret) {
    color: var(--cfy-hr-on-flat);
}
.cfy-catalog-navbar-dimcap.is-selector:focus-visible {
    outline: 1px solid var(--cfy-hr-accent);
    outline-offset: -3px;
}
body.performance-mode .cfy-catalog-navbar-dimcap-caret svg {
    transition: none;
}

/* Fenêtre des catalogues (depuis la légende) */
.cfy-cnb-pop-dimicon {
    display: inline-flex;
    flex: 0 0 auto;
    color: var(--cfy-hr-accent);
}
.cfy-cnb-dimsep {
    padding: 10px 10px 4px;
    font-size: var(--cfy-fs-caption);
    font-weight: var(--cfy-fw-semibold);
    letter-spacing: var(--cfy-ls-caps);
    text-transform: uppercase;
    color: var(--cfy-t-muted);
}
.cfy-cnb-pop .cfy-cnb-dimrow {
    gap: 10px;
    padding-inline: 10px;
}
.cfy-cnb-dimrow-icon {
    display: inline-flex;
    flex: 0 0 auto;
    color: var(--cfy-t-accent);
}
.cfy-cnb-dimrow-icon svg {
    width: 18px;
    height: 18px;
}
.cfy-cnb-dimrow-on {
    display: inline-flex;
    color: var(--cfy-t-accent);
}

/* Taille de la fenêtre : tablette, ordinateur, FHD (smartphone : feuille basse inchangée) */
@media (min-width: 768px) {
    .cfy-cnb-pop {
        width: 440px;
        max-height: min(76vh, 640px);
    }
    .cfy-cnb-pop .cfy-cnb-row .cfy-mm-item-label {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}
@media (min-width: 1200px) {
    .cfy-cnb-pop {
        width: 520px;
        max-height: min(80vh, 720px);
    }
}
@media (min-width: 1920px) {
    .cfy-cnb-pop {
        width: 560px;
        max-height: min(80vh, 760px);
    }
}

/* Ligne courante ou survolée (hub et fenêtre des voisins) : libellé en encre pleine, la bande et la teinte d'accent
   signalent l'état (l'accent en texte sur la teinte d'accent restait sous le seuil de lisibilité). */
:is(.cfy-mm-hub, .cfy-cnb-pop) .cfy-mm-item:is(.is-current, :hover, :focus-visible),
:is(.cfy-mm-hub, .cfy-cnb-pop) .cfy-mm-item:is(.is-current, :hover, :focus-visible) :is(.cfy-mm-item-label, .cfy-mm-item-count) {
    color: var(--cfy-t-ink);
}
