/* ============================================================
   ZOOMBROC — PAGE CATÉGORIE
   Brocantes / Vide-greniers / Vide-maisons / etc.
   ============================================================ */

.zb-category-page {
    --cat-blue: #123f61;
    --cat-blue-2: #174f76;
    --cat-blue-dark: #0b2d47;
    --cat-cyan: #20d8ff;
    --cat-yellow: #ffd34d;
    --cat-pink: #ff6b9d;
    --cat-bg: #f5f8fc;
    --cat-text: #16324a;
    --cat-muted: #718097;
    --cat-border: #dce6ef;
    background: var(--cat-bg);
    color: var(--cat-text);
}

/* ============================================================
   HERO
   ============================================================ */

.zb-cat-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 42%, rgba(32, 216, 255, .13), transparent 25%),
        radial-gradient(circle at 12% 20%, rgba(255, 211, 77, .08), transparent 25%),
        linear-gradient(135deg, #0b2d47 0%, #123f61 52%, #174f76 100%);
    color: #fff;
}

.zb-cat-hero::after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    right: -150px;
    top: -210px;
    border-radius: 50%;
    background: rgba(32, 216, 255, .08);
    filter: blur(10px);
    pointer-events: none;
}

.zb-cat-hero-inner {
    width: min(1180px, calc(100% - 40px));
    min-height: 470px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 50px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.zb-cat-hero-copy {
    padding: 65px 0;
}

.zb-cat-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--cat-yellow);
}

.zb-cat-hero h1 {
    margin: 18px 0 18px;
    max-width: 680px;
    font-size: clamp(42px, 5vw, 70px);
    line-height: .98;
    letter-spacing: -.045em;
}

.zb-cat-hero h1 em {
    color: var(--cat-cyan);
    font-style: normal;
}

.zb-cat-hero-copy > p {
    max-width: 610px;
    margin: 0;
    color: rgba(255,255,255,.76);
    font-size: 18px;
    line-height: 1.65;
}

.zb-cat-hero-copy > p strong {
    display: block;
    margin-top: 4px;
    color: #fff;
}

.zb-cat-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 30px;
}

.zb-cat-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 21px;
    border-radius: 14px;
    background: var(--cat-yellow);
    color: #17344a;
    text-decoration: none;
    font-size: 14px;
    font-weight: 900;
    box-shadow: 0 10px 25px rgba(0,0,0,.16);
    transition: transform .2s ease, box-shadow .2s ease;
}

.zb-cat-primary-action:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(0,0,0,.22);
}

.zb-cat-hero-note {
    color: rgba(255,255,255,.65);
    font-size: 13px;
    font-weight: 800;
}

/* ============================================================
   HERO VISUEL
   ============================================================ */

.zb-cat-hero-visual {
    position: relative;
    min-height: 390px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.zb-cat-orb {
    position: absolute;
    width: 310px;
    height: 310px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(32,216,255,.25),
        rgba(32,216,255,.04) 58%,
        transparent 72%
    );
    filter: blur(2px);
}

.zb-cat-visual-card {
    position: relative;
    width: min(390px, 90%);
    height: 310px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 30px;
    background:
        radial-gradient(circle at 50% 45%, rgba(32,216,255,.13), transparent 38%),
        rgba(5, 28, 50, .62);
    box-shadow:
        0 25px 70px rgba(0,0,0,.22),
        inset 0 0 45px rgba(32,216,255,.05);
    backdrop-filter: blur(14px);
}

.zb-cat-visual-center {
    position: absolute;
    inset: 55px 55px 65px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.zb-cat-visual-center span {
    font-size: 48px;
    line-height: 1;
    margin-bottom: 8px;
}

.zb-cat-visual-center b {
    font-size: 23px;
}

.zb-cat-visual-center small {
    margin-top: 5px;
    color: rgba(255,255,255,.58);
    font-size: 10px;
    font-weight: 700;
}

.zb-cat-tool {
    position: absolute;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
    font-size: 23px;
}

.zb-cat-tool.tool-1 { top: 27px; left: 32px; transform: rotate(-8deg); }
.zb-cat-tool.tool-2 { top: 28px; right: 32px; transform: rotate(8deg); }
.zb-cat-tool.tool-3 { bottom: 48px; left: 25px; transform: rotate(7deg); }
.zb-cat-tool.tool-4 { bottom: 43px; right: 25px; transform: rotate(-7deg); }

.zb-cat-visual-caption {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 13px;
    border-radius: 13px;
    background: rgba(4,22,40,.72);
    color: rgba(255,255,255,.72);
    font-size: 10px;
    font-weight: 800;
}

.zb-cat-visual-caption b {
    color: var(--cat-cyan);
    font-size: 16px;
}

/* ============================================================
   RECHERCHE
   ============================================================ */

.zb-category-search-wrap {
    position: relative;
    z-index: 5;
    width: min(1120px, calc(100% - 40px));
    margin: -34px auto 0;
}

.zb-category-search {
    display: grid;
    grid-template-columns: 1.5fr .9fr auto auto;
    gap: 12px;
    align-items: end;
    padding: 17px;
    border: 1px solid rgba(18,63,97,.10);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(17,50,75,.14);
}

.zb-cat-search-field {
    min-width: 0;
}

.zb-cat-search-field > label {
    display: block;
    margin: 0 0 7px 4px;
    color: #64778a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.zb-cat-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.zb-cat-input-wrap > span {
    position: absolute;
    left: 13px;
    z-index: 2;
    font-size: 15px;
}

.zb-cat-input-wrap input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px 0 40px;
    border: 1px solid #dbe5ee;
    border-radius: 13px;
    outline: none;
    background: #f8fafc;
    color: #19364e;
    font: inherit;
    font-size: 14px;
    box-sizing: border-box;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.zb-cat-input-wrap input:focus {
    border-color: #49bde0;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(32,216,255,.10);
}

.zb-cat-search-button {
    min-height: 48px;
    padding: 0 21px;
    border: 0;
    border-radius: 13px;
    background: var(--cat-blue);
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}

.zb-cat-search-button:hover {
    background: var(--cat-blue-2);
    transform: translateY(-1px);
}

.zb-cat-reset {
    align-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 12px;
    color: #718097;
    text-decoration: none;
    font-size: 11px;
    font-weight: 900;
}

.zb-cat-reset:hover {
    color: var(--cat-blue);
}

.zb-cat-autocomplete {
    position: relative;
    width: 100%;
}

.zb-location-suggestions {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 100;
    overflow: hidden;
    border: 1px solid #dbe5ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(17,50,75,.18);
}

.zb-location-suggestion {
    width: 100%;
    display: block;
    padding: 12px 14px;
    border: 0;
    border-bottom: 1px solid #edf2f6;
    background: #fff;
    color: #19364e;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.zb-location-suggestion:last-child {
    border-bottom: 0;
}

.zb-location-suggestion:hover {
    background: #f2f8fc;
}

.zb-location-suggestion strong,
.zb-location-suggestion small {
    display: block;
}

.zb-location-suggestion strong {
    font-size: 13px;
    font-weight: 900;
}

.zb-location-suggestion small {
    margin-top: 3px;
    color: #7b8b9c;
    font-size: 10px;
    font-weight: 700;
}

.zb-cat-quick-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding: 14px 0 0;
}

.zb-cat-quick-links a {
    color: #667b8e;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}

.zb-cat-quick-links a:hover {
    color: var(--cat-blue);
}

/* ============================================================
   CARTE / DÉPARTEMENTS
   ============================================================ */

.zb-category-map {
    width: min(1120px, calc(100% - 40px));
    margin: 48px auto 0;
}

.zb-category-map-card {
    padding: 30px;
    border-radius: 26px;
    background:
        radial-gradient(circle at 80% 20%, rgba(32,216,255,.08), transparent 30%),
        linear-gradient(145deg, #0c304d, #164b70);
    color: #fff;
    box-shadow: 0 18px 45px rgba(18,63,97,.15);
}

.zb-category-map-copy {
    margin-bottom: 25px;
}

.zb-category-map-copy h2 {
    margin: 8px 0 7px;
    font-size: clamp(25px, 3vw, 34px);
    letter-spacing: -.025em;
}

.zb-category-map-copy p {
    margin: 0;
    max-width: 650px;
    color: rgba(255,255,255,.68);
    font-size: 14px;
    line-height: 1.6;
}

.zb-department-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 8px;
}

.zb-department-grid a {
    min-height: 64px;
    padding: 9px 7px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 12px;
    background: rgba(255,255,255,.055);
    color: #fff;
    text-align: center;
    text-decoration: none;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.zb-department-grid a:hover,
.zb-department-grid a.is-active {
    transform: translateY(-2px);
    background: rgba(32,216,255,.15);
    border-color: rgba(32,216,255,.45);
}

.zb-department-grid strong {
    color: var(--cat-yellow);
    font-size: 12px;
    font-weight: 900;
}

.zb-department-grid span {
    max-width: 100%;
    margin-top: 3px;
    overflow: hidden;
    color: rgba(255,255,255,.62);
    font-size: 8px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ============================================================
   RÉSULTATS
   ============================================================ */

.zb-cat-results {
    width: min(1120px, calc(100% - 40px));
    margin: 58px auto 0;
}

.zb-cat-results-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 25px;
}

.zb-cat-section-kicker {
    color: #5d7d97;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
}

.zb-cat-results-head h2 {
    margin: 7px 0 5px;
    color: #16324a;
    font-size: clamp(25px, 3vw, 35px);
    letter-spacing: -.035em;
}

.zb-cat-results-head p {
    margin: 0;
    color: var(--cat-muted);
    font-size: 14px;
}

.zb-cat-result-count {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: #74869a;
}

.zb-cat-result-count strong {
    color: var(--cat-blue);
    font-size: 28px;
}

.zb-cat-result-count span {
    font-size: 11px;
    font-weight: 800;
}

.zb-category-events {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.zb-category-event {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--cat-border);
    border-radius: 20px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 25px rgba(18,63,97,.06);
    transition: transform .2s ease, box-shadow .2s ease;
}

.zb-category-event:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 38px rgba(18,63,97,.13);
}

.zb-category-event-media {
    position: relative;
    height: 190px;
    overflow: hidden;
    background: #123f61;
}

.zb-category-event-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.zb-category-event-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 50% 40%, rgba(32,216,255,.17), transparent 38%),
        linear-gradient(145deg, #0c304d, #164b70);
    color: #ffd34d;
    font-size: 62px;
}

.zb-category-event-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 7px 10px;
    border-radius: 9px;
    background: rgba(8,35,57,.86);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    backdrop-filter: blur(8px);
}

.zb-category-event-date {
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 55px;
    height: 58px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #fff;
    color: var(--cat-blue);
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
}

.zb-category-event-date strong {
    font-size: 22px;
    line-height: 1;
}

.zb-category-event-date span {
    margin-top: 4px;
    color: #6b7d8f;
    font-size: 9px;
    font-weight: 900;
}

.zb-category-event-body {
    min-width: 0;
    padding: 18px;
}

.zb-category-event-body h3 {
    margin: 0;
    min-height: 48px;
    color: #17364e;
    font-size: 17px;
    line-height: 1.35;
    letter-spacing: -.015em;
}

.zb-category-event-meta {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-top: 14px;
    color: #6f8091;
    font-size: 11px;
    font-weight: 700;
}

.zb-category-event-meta span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zb-category-event-meta small {
    color: #98a5b1;
    font-size: 10px;
}

.zb-category-event-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 17px;
    padding-top: 13px;
    border-top: 1px solid #edf1f4;
}

.zb-category-event-footer span {
    color: #8a98a5;
    font-size: 10px;
    font-weight: 800;
}

.zb-category-event-footer b {
    color: var(--cat-blue);
    font-size: 11px;
    font-weight: 900;
}

/* ============================================================
   PAGINATION
   ============================================================ */

.zb-category-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 35px;
}

.zb-category-pagination a,
.zb-category-pagination span {
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.zb-category-pagination a {
    border: 1px solid #dce6ef;
    background: #fff;
    color: #587086;
}

.zb-category-pagination a:hover,
.zb-category-pagination span.is-active {
    border-color: var(--cat-blue);
    background: var(--cat-blue);
    color: #fff;
}

/* ============================================================
   EMPTY
   ============================================================ */

.zb-category-empty {
    padding: 65px 25px;
    border: 1px solid var(--cat-border);
    border-radius: 22px;
    background: #fff;
    text-align: center;
}

.zb-category-empty-icon {
    font-size: 55px;
}

.zb-category-empty h2 {
    margin: 12px 0 8px;
    color: #17364e;
    font-size: 27px;
}

.zb-category-empty p {
    max-width: 560px;
    margin: 0 auto 22px;
    color: var(--cat-muted);
    font-size: 14px;
    line-height: 1.6;
}

.zb-cat-empty-action {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0 17px;
    border-radius: 12px;
    background: var(--cat-blue);
    color: #fff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

/* ============================================================
   CTA
   ============================================================ */

.zb-category-bottom {
    width: min(1120px, calc(100% - 40px));
    margin: 65px auto;
}

.zb-category-bottom-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 35px 40px;
    border-radius: 25px;
    background:
        radial-gradient(circle at 85% 30%, rgba(32,216,255,.14), transparent 28%),
        linear-gradient(135deg, #103b5b, #174f76);
    color: #fff;
    box-shadow: 0 16px 42px rgba(18,63,97,.14);
}

.zb-category-bottom-card h2 {
    margin: 8px 0 7px;
    font-size: 27px;
    letter-spacing: -.025em;
}

.zb-category-bottom-card p {
    margin: 0;
    max-width: 610px;
    color: rgba(255,255,255,.67);
    font-size: 14px;
    line-height: 1.55;
}

.zb-category-bottom-card > a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 45px;
    padding: 0 18px;
    border-radius: 12px;
    background: var(--cat-yellow);
    color: #17364e;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1000px) {

    .zb-cat-hero-inner {
        grid-template-columns: 1fr;
        gap: 0;
        min-height: auto;
    }

    .zb-cat-hero-copy {
        padding: 55px 0 20px;
    }

    .zb-cat-hero-visual {
        min-height: 340px;
        padding-bottom: 35px;
    }

    .zb-category-search {
        grid-template-columns: 1fr 1fr auto;
    }

    .zb-cat-search-location {
        grid-column: 1 / -1;
    }

    .zb-department-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .zb-category-events {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {

    .zb-cat-hero-inner,
    .zb-category-search-wrap,
    .zb-category-map,
    .zb-cat-results,
    .zb-category-bottom {
        width: min(100% - 24px, 1120px);
    }

    .zb-cat-hero-copy {
        padding-top: 42px;
    }

    .zb-cat-hero h1 {
        font-size: 43px;
    }

    .zb-cat-hero-copy > p {
        font-size: 16px;
    }

    .zb-cat-hero-visual {
        min-height: 300px;
    }

    .zb-cat-visual-card {
        width: min(350px, 94%);
        height: 275px;
    }

    .zb-category-search-wrap {
        margin-top: -20px;
    }

    .zb-category-search {
        grid-template-columns: 1fr;
        padding: 14px;
        border-radius: 18px;
    }

    .zb-cat-search-location {
        grid-column: auto;
    }

    .zb-cat-search-button,
    .zb-cat-reset {
        width: 100%;
    }

    .zb-category-map {
        margin-top: 35px;
    }

    .zb-category-map-card {
        padding: 22px 16px;
        border-radius: 20px;
    }

    .zb-department-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
    }

    .zb-department-grid a {
        min-height: 57px;
    }

    .zb-department-grid span {
        font-size: 7px;
    }

    .zb-cat-results {
        margin-top: 42px;
    }

    .zb-cat-results-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .zb-cat-results-head h2 {
        font-size: 28px;
    }

    .zb-category-events {
        grid-template-columns: 1fr;
    }

    .zb-category-event-media {
        height: 205px;
    }

    .zb-category-bottom {
        margin: 45px auto;
    }

    .zb-category-bottom-card {
        align-items: flex-start;
        flex-direction: column;
        padding: 27px 23px;
        border-radius: 20px;
    }

    .zb-category-bottom-card > a {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {

    .zb-cat-primary-action,
    .zb-cat-search-button,
    .zb-department-grid a,
    .zb-category-event {
        transition: none;
    }
}


/* ============================================================
   CARTE INTERACTIVE DES DÉPARTEMENTS — SVG
   ============================================================ */

.department-map-section {
    width: 100%;
    margin: 0 auto 5px;
    padding: 30px;
    box-sizing: border-box;
    border: 1px solid rgba(18,63,97,.08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(18,63,97,.09);
}

.department-map-header {
    text-align: center;
    margin-bottom: 18px;
}

.department-map-header h2 {
    margin: 7px 0 7px;
    color: #16324a;
    font-size: clamp(25px, 3vw, 35px);
    letter-spacing: -.035em;
}

.department-map-header p {
    margin: 0 auto;
    max-width: 650px;
    color: #718097;
    font-size: 14px;
    line-height: 1.6;
}

.department-map-actions {
    display: flex;
    justify-content: center;
    margin-bottom: 12px;
}

.department-map-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 19px;
    box-sizing: border-box;
    border: 1px solid #d9e4ec;
    border-radius: 22px;
    background: #f8fafc;
    color: #537089;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.department-map-reset:hover,
.department-map-reset.active {
    background: #123f61;
    color: #fff;
    border-color: #123f61;
    transform: translateY(-1px);
}

.department-map-layout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    width: 100%;
}

.department-map-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.department-map-svg {
    position: relative;
    width: 100%;
    max-width: 780px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

/* Contour extérieur très fin de la France */
.department-map-svg svg {
    display: block;
    width: 100%;
    height: auto;
    max-width: 780px;
    overflow: visible;
    /* Liseré extérieur un peu plus marqué, mais toujours fin */
    filter: drop-shadow(0 0 1.25px rgba(20, 20, 20, .95));
}

.department-map-svg .departement {
    cursor: pointer;

    /* Fin contour de chaque département */
    stroke: rgba(45, 45, 45, .32) !important;
    stroke-width: .65px !important;
    vector-effect: non-scaling-stroke;

    transition: fill .15s ease, stroke .15s ease, opacity .15s ease, filter .15s ease;
}

.department-map-svg .departement:hover {
    fill: #20b9df !important;
    stroke: #0d4263 !important;
    stroke-width: 1.8px !important;
    opacity: 1;
    filter: drop-shadow(0 2px 3px rgba(18,63,97,.25));
}

/* Intensité selon le nombre de brocantes */
.department-map-svg .department-level-0 { fill: #e8eef2 !important; }
.department-map-svg .department-level-1 { fill: #d8edf3 !important; }
.department-map-svg .department-level-2 { fill: #b9e2ec !important; }
.department-map-svg .department-level-3 { fill: #8fd1e0 !important; }
.department-map-svg .department-level-4 { fill: #59bad0 !important; }
.department-map-svg .department-level-5 { fill: #2c91b2 !important; }
.department-map-svg .department-level-6 { fill: #123f61 !important; }

.department-map-svg .department-level-1,
.department-map-svg .department-level-2,
.department-map-svg .department-level-3,
.department-map-svg .department-level-4,
.department-map-svg .department-level-5,
.department-map-svg .department-level-6 {
    transition: fill .18s ease, stroke .18s ease, opacity .18s ease, filter .18s ease;
}

.department-map-svg .department-selected {
    fill: #123f61 !important;
    stroke: #082d47 !important;
    stroke-width: 2px !important;
    opacity: 1;
}

.department-map-label {
    fill: #163d5a;
    font-size: 11px;
    font-weight: 900;
    text-anchor: middle;
    dominant-baseline: middle;
    pointer-events: none;
    user-select: none;
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linejoin: round;
}

.department-map-tooltip {
    position: absolute;
    z-index: 1000;
    display: none;
    padding: 9px 13px;
    border-radius: 11px;
    background: #0b2d47;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
    box-shadow: 0 9px 24px rgba(11,45,71,.24);
    pointer-events: none;
}

.department-map-tooltip strong {
    font-size: 13px;
}

.department-map-tooltip-count {
    color: #8ceaff;
    font-weight: 800;
}

.department-map-overseas {
    flex: 0 0 185px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.department-map-overseas-title {
    margin-bottom: 3px;
    color: #16324a;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.department-map-overseas-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 11px;
    border: 1px solid #dce6ef;
    border-radius: 11px;
    background: #f8fafc;
    color: #45637a;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.department-map-overseas-card:hover,
.department-map-overseas-card.active {
    background: #123f61;
    border-color: #123f61;
    color: #fff;
    transform: translateX(2px);
    box-shadow: 0 7px 18px rgba(18,63,97,.16);
}

.department-map-overseas-code {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 900;
}

.department-map-overseas-name {
    flex: 1 1 auto;
    font-size: 11px;
    font-weight: 800;
}

.department-map-overseas-count {
    flex: 0 0 auto;
    min-width: 24px;
    padding: 3px 6px;
    border-radius: 9px;
    background: rgba(18,63,97,.09);
    color: #123f61;
    font-size: 10px;
    font-weight: 900;
    text-align: center;
}

.department-map-overseas-card.active .department-map-overseas-count,
.department-map-overseas-card:hover .department-map-overseas-count {
    background: rgba(255,255,255,.17);
    color: #fff;
}

.department-map-loading {
    min-height: 330px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #718097;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
}

.department-map-loading-icon {
    margin-bottom: 10px;
    font-size: 48px;
}

 .department-map-legend {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px 10px;
    margin: 15px auto 5px;
    color: #6e8190;
    font-size: 10px;
    font-weight: 800;
}

.department-map-legend-title {
    margin-right: 2px;
}

.department-map-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.department-map-legend-swatch {
    width: 13px;
    height: 13px;
    border-radius: 4px;
    border: 1px solid rgba(18,63,97,.08);
}

.department-map-legend-swatch.level-0 { background: #e8eef2; }
.department-map-legend-swatch.level-1 { background: #d8edf3; }
.department-map-legend-swatch.level-2 { background: #b9e2ec; }
.department-map-legend-swatch.level-3 { background: #8fd1e0; }
.department-map-legend-swatch.level-4 { background: #59bad0; }
.department-map-legend-swatch.level-5 { background: #2c91b2; }
.department-map-legend-swatch.level-6 { background: #123f61; }

.department-map-attribution {
    margin-top: 5px;
    color: #97a5b2;
    font-size: 9px;
    text-align: center;
}

.department-map-attribution a {
    color: #5c7890;
    text-decoration: underline;
}

@media (max-width: 900px) {
    .department-map-section { padding: 22px; }
    .department-map-layout { flex-direction: column; }
    .department-map-main { width: 100%; }
    .department-map-svg { width: 100%; }
    .department-map-overseas {
        width: 100%;
        max-width: 650px;
        flex: none;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .department-map-overseas-title { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
    .department-map-section {
        padding: 17px 12px;
        border-radius: 19px;
    }
    .department-map-header h2 { font-size: 26px; }
    .department-map-header p { font-size: 13px; }
    .department-map-svg { min-height: 250px; }
    .department-map-svg svg { width: 100%; }
    .department-map-label { font-size: 8px; stroke-width: 2.5px; }
    .department-map-overseas { grid-template-columns: 1fr; }
    .department-map-overseas-title { grid-column: auto; }
    .department-map-attribution { font-size: 8px; }
}

/* ============================================================
   PALETTES DE LA CARTE — PAR CATÉGORIE
   Même structure / mêmes classes : seules les couleurs changent.
   ============================================================ */

.zb-category-page.zb-category-brocantes {
    --map-bg: #faf4ec;
    --map-level-0: #eee9e3;
    --map-level-1: #f2dcc7;
    --map-level-2: #ecc7a8;
    --map-level-3: #e4ad80;
    --map-level-4: #d99059;
    --map-level-5: #c86b2f;
    --map-level-6: #a94e1c;
    --map-accent: #c86b2f;
    --map-dark: #8f421b;
    --map-text: #68402b;
}

.zb-category-page.zb-category-vide-maisons {
    --map-bg: #eef6fb;
    --map-level-0: #e7eef3;
    --map-level-1: #dcecf5;
    --map-level-2: #c4e0ee;
    --map-level-3: #a5cfe2;
    --map-level-4: #7fb8d2;
    --map-level-5: #4d98bb;
    --map-level-6: #24749b;
    --map-accent: #2492c0;
    --map-dark: #175d80;
    --map-text: #2d5870;
}

.zb-category-page.zb-category-collections {
    --map-bg: #f4f0fa;
    --map-level-0: #ece9f1;
    --map-level-1: #e4ddf0;
    --map-level-2: #d6c9e8;
    --map-level-3: #c1addb;
    --map-level-4: #a88bc8;
    --map-level-5: #8b67b2;
    --map-level-6: #69428f;
    --map-accent: #8059aa;
    --map-dark: #583777;
    --map-text: #5a4770;
}

.zb-category-page.zb-category-vide-dressings {
    --map-bg: #fcf0f6;
    --map-level-0: #f1e9ee;
    --map-level-1: #f2dce7;
    --map-level-2: #edc4d8;
    --map-level-3: #e6a5c2;
    --map-level-4: #dc80a9;
    --map-level-5: #cf5689;
    --map-level-6: #ae356b;
    --map-accent: #d94f8a;
    --map-dark: #922956;
    --map-text: #713c55;
}

.zb-category-page.zb-category-bourses-aux-jouets {
    --map-bg: #eef9f4;
    --map-level-0: #e8efec;
    --map-level-1: #d9eee4;
    --map-level-2: #c1e4d3;
    --map-level-3: #9fd3bb;
    --map-level-4: #75bea0;
    --map-level-5: #45a37d;
    --map-level-6: #187a57;
    --map-accent: #159a69;
    --map-dark: #116247;
    --map-text: #356452;
}

/* Fond général de la zone contenant la carte. */
.zb-category-page .department-map-section {
    background: var(--map-bg, #f5f8fc) !important;
}

/* Bouton « Toute la France ». */
.zb-category-page .department-map-reset:hover,
.zb-category-page .department-map-reset.active {
    background: var(--map-dark, #123f61) !important;
    border-color: var(--map-dark, #123f61) !important;
}

/* Niveaux de la France : même logique d'intensité, couleur propre à la page. */
.zb-category-page .department-map-svg .department-level-0 {
    fill: var(--map-level-0) !important;
}
.zb-category-page .department-map-svg .department-level-1 {
    fill: var(--map-level-1) !important;
}
.zb-category-page .department-map-svg .department-level-2 {
    fill: var(--map-level-2) !important;
}
.zb-category-page .department-map-svg .department-level-3 {
    fill: var(--map-level-3) !important;
}
.zb-category-page .department-map-svg .department-level-4 {
    fill: var(--map-level-4) !important;
}
.zb-category-page .department-map-svg .department-level-5 {
    fill: var(--map-level-5) !important;
}
.zb-category-page .department-map-svg .department-level-6 {
    fill: var(--map-level-6) !important;
}

.zb-category-page .department-map-svg .departement:hover {
    fill: var(--map-accent) !important;
    stroke: var(--map-dark) !important;
}

.zb-category-page .department-map-svg .department-selected {
    fill: var(--map-dark) !important;
    stroke: var(--map-dark) !important;
}

.zb-category-page .department-map-label {
    fill: var(--map-text) !important;
}

.zb-category-page .department-map-tooltip {
    background: var(--map-dark, #123f61) !important;
}

.zb-category-page .department-map-tooltip-count {
    color: var(--map-level-1, #d8edf3) !important;
}

/* Outre-mer. */
.zb-category-page .department-map-overseas-card:hover,
.zb-category-page .department-map-overseas-card.active {
    background: var(--map-dark, #123f61) !important;
    border-color: var(--map-dark, #123f61) !important;
}

.zb-category-page .department-map-overseas-count {
    color: var(--map-dark, #123f61) !important;
    background: color-mix(in srgb, var(--map-accent) 10%, transparent) !important;
}

/* Légende : les carrés reprennent exactement les 7 niveaux de la carte. */
.zb-category-page .department-map-legend-swatch.level-0 {
    background: var(--map-level-0) !important;
}
.zb-category-page .department-map-legend-swatch.level-1 {
    background: var(--map-level-1) !important;
}
.zb-category-page .department-map-legend-swatch.level-2 {
    background: var(--map-level-2) !important;
}
.zb-category-page .department-map-legend-swatch.level-3 {
    background: var(--map-level-3) !important;
}
.zb-category-page .department-map-legend-swatch.level-4 {
    background: var(--map-level-4) !important;
}
.zb-category-page .department-map-legend-swatch.level-5 {
    background: var(--map-level-5) !important;
}
.zb-category-page .department-map-legend-swatch.level-6 {
    background: var(--map-level-6) !important;
}

.zb-category-page .department-map-legend-title,
.zb-category-page .department-map-legend {
    color: var(--map-text, #537089);
}

/* FIX MOBILE / TABLET — PALETTE CARTE PAR CATÉGORIE */
@media (max-width: 1000px) {
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-0 { fill: #eee9e3 !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-1 { fill: #f2dcc7 !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-2 { fill: #ecc7a8 !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-3 { fill: #e4ad80 !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-4 { fill: #d99059 !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-5 { fill: #c86b2f !important; }
    .zb-category-page.zb-category-brocantes .department-map-svg .department-level-6 { fill: #a94e1c !important; }

    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-0 { fill: #e7eef3 !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-1 { fill: #dcecf5 !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-2 { fill: #c4e0ee !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-3 { fill: #a5cfe2 !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-4 { fill: #7fb8d2 !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-5 { fill: #4d98bb !important; }
    .zb-category-page.zb-category-vide-maisons .department-map-svg .department-level-6 { fill: #24749b !important; }

    .zb-category-page.zb-category-collections .department-map-svg .department-level-0 { fill: #ece9f1 !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-1 { fill: #e4ddf0 !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-2 { fill: #d6c9e8 !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-3 { fill: #c1addb !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-4 { fill: #a88bc8 !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-5 { fill: #8b67b2 !important; }
    .zb-category-page.zb-category-collections .department-map-svg .department-level-6 { fill: #69428f !important; }

    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-0 { fill: #f1e9ee !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-1 { fill: #f2dce7 !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-2 { fill: #edc4d8 !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-3 { fill: #e6a5c2 !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-4 { fill: #dc80a9 !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-5 { fill: #cf5689 !important; }
    .zb-category-page.zb-category-vide-dressings .department-map-svg .department-level-6 { fill: #ae356b !important; }

    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-0 { fill: #e8efec !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-1 { fill: #d9eee4 !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-2 { fill: #c1e4d3 !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-3 { fill: #9fd3bb !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-4 { fill: #75bea0 !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-5 { fill: #45a37d !important; }
    .zb-category-page.zb-category-bourses-aux-jouets .department-map-svg .department-level-6 { fill: #187a57 !important; }
}
