/* AnimyJob — restauration du design précédent
   Compatible CakePHP 2.4 / PHP 5.6
   Les règles sont limitées aux pages .ajx-page. */

.ajx-page,
.ajx-page * {
    box-sizing: border-box;
}

.ajx-page {
    --ajx-ink: #14254f;
    --ajx-muted: #69738d;
    --ajx-blue: #253e9f;
    --ajx-purple: #7047d9;
    --ajx-pink: #ed428b;
    --ajx-orange: #ffac3f;
    --ajx-border: #dfe5f4;
    --ajx-soft: #f6f8ff;
    --ajx-shadow: 0 12px 30px rgba(31, 47, 98, .08);
    color: var(--ajx-ink);
    font-family: Arial, Helvetica, sans-serif;
    background: #fff;
}

.ajx-page a {
    color: inherit;
    text-decoration: none;
}

.ajx-container,
.ajx-local-container {
    width: min(1120px, calc(100% - 36px));
    margin: 0 auto;
}

.ajx-kicker {
    display: block;
    margin-bottom: 8px;
    color: #546de5;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ajx-kicker--light {
    color: #ffc75e;
}

/* Hub national ----------------------------------------------------- */

.ajx-hub-hero {
    position: relative;
    overflow: hidden;
    padding: 58px 0 54px;
    color: #fff;
    background:
        radial-gradient(circle at 95% 4%, rgba(255,255,255,.12) 0 120px, transparent 121px),
        radial-gradient(circle at 52% 108%, rgba(255,194,89,.20) 0 75px, transparent 76px),
        linear-gradient(118deg, #1e377a 0%, #293ca8 58%, #6650df 100%);
}

.ajx-hub-hero:after {
    content: "";
    position: absolute;
    right: -130px;
    top: -150px;
    width: 330px;
    height: 330px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
}

.ajx-hub-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr);
    gap: 72px;
    align-items: center;
}

.ajx-hub-hero h1 {
    max-width: 690px;
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.02;
    letter-spacing: -.035em;
}

.ajx-hub-hero__copy > p {
    max-width: 690px;
    margin: 0 0 28px;
    color: rgba(255,255,255,.88);
    font-size: 17px;
    line-height: 1.55;
}

.ajx-department-search {
    max-width: 630px;
    padding: 15px 16px 16px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 16px;
    background: rgba(255,255,255,.08);
}

.ajx-department-search label {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.ajx-department-search > div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 9px;
}

.ajx-department-search select,
.ajx-department-search button {
    min-height: 44px;
    border: 0;
    border-radius: 9px;
    font-size: 14px;
}

.ajx-department-search select {
    width: 100%;
    padding: 0 14px;
    color: #36415f;
    background: #fff;
}

.ajx-department-search button {
    padding: 0 22px;
    color: #27304d;
    font-weight: 800;
    cursor: pointer;
    background: var(--ajx-orange);
}

.ajx-hub-stat-panel {
    padding: 27px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 20px;
    background: rgba(23, 35, 116, .35);
    box-shadow: 0 20px 45px rgba(10, 18, 67, .22);
}

.ajx-hub-stat-panel > strong {
    display: block;
    color: #fff;
    font-size: 38px;
    line-height: 1;
}

.ajx-hub-stat-panel > span {
    display: block;
    margin: 7px 0 20px;
    color: rgba(255,255,255,.9);
    font-weight: 700;
}

.ajx-hub-stat-panel__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.ajx-hub-stat-panel__grid div {
    min-height: 72px;
    padding: 14px;
    border-radius: 12px;
    background: rgba(255,255,255,.13);
}

.ajx-hub-stat-panel__grid b,
.ajx-hub-stat-panel__grid small {
    display: block;
}

.ajx-hub-stat-panel__grid b {
    color: #fff;
    font-size: 19px;
}

.ajx-hub-stat-panel__grid small {
    margin-top: 4px;
    color: rgba(255,255,255,.72);
    font-size: 10px;
}

.ajx-hub-main {
    padding-top: 26px;
    padding-bottom: 60px;
}

.ajx-intro {
    margin-bottom: 34px;
    padding: 20px 22px;
    border: 1px solid #d6def8;
    border-radius: 16px;
    color: #56617a;
    background: #f2f5ff;
}

.ajx-intro p {
    margin: 0;
    line-height: 1.65;
}

.ajx-section {
    margin: 0 0 38px;
}

.ajx-section h2 {
    margin: 0 0 18px;
    color: var(--ajx-ink);
    font-size: clamp(25px, 3vw, 34px);
    letter-spacing: -.025em;
}

.ajx-universe-grid,
.ajx-department-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ajx-universe-card,
.ajx-city-card,
.ajx-department-card {
    border: 1px solid var(--ajx-border);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--ajx-shadow);
}

.ajx-universe-card {
    display: flex;
    gap: 13px;
    min-height: 85px;
    padding: 15px;
}

.ajx-universe-card__icon {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 11px;
    color: #3d55c8;
    font-size: 15px;
    font-weight: 800;
    background: #eef1ff;
}

.ajx-universe-card h3 {
    margin: 2px 0 4px;
    font-size: 15px;
}

.ajx-universe-card p {
    margin: 0;
    color: var(--ajx-muted);
    font-size: 11px;
    line-height: 1.4;
}

.ajx-city-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ajx-city-card {
    display: block;
    min-height: 110px;
    padding: 18px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ajx-city-card:hover,
.ajx-department-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(31, 47, 98, .12);
}

.ajx-city-card strong,
.ajx-city-card span,
.ajx-city-card small {
    display: block;
}

.ajx-city-card strong {
    margin-bottom: 5px;
    font-size: 17px;
}

.ajx-city-card span {
    color: var(--ajx-muted);
    font-size: 13px;
}

.ajx-city-card small {
    margin-top: 11px;
    color: #5067d8;
    font-weight: 700;
}

.ajx-department-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 13px;
}

.ajx-department-card > span {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    color: #3650c6;
    font-weight: 800;
    background: #edf1ff;
}

.ajx-department-card strong,
.ajx-department-card small {
    display: block;
}

.ajx-department-card small {
    margin-top: 3px;
    color: var(--ajx-muted);
}

.ajx-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    padding: 25px 28px;
    border: 1px solid var(--ajx-border);
    border-radius: 18px;
    background: #f8faff;
}

.ajx-trust strong {
    display: block;
    margin-bottom: 7px;
}

.ajx-trust p {
    margin: 0;
    color: var(--ajx-muted);
    font-size: 13px;
    line-height: 1.55;
}

/* Pages locales ---------------------------------------------------- */

.ajx-local {
    padding: 0 0 60px;
    background: #fff;
}

.ajx-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 17px 0;
    color: #7d859d;
    font-size: 12px;
}

.ajx-breadcrumb a:hover {
    color: var(--ajx-purple);
}

.ajx-local-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 22px;
    align-items: start;
}

.ajx-local-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
    min-height: 245px;
    overflow: hidden;
    margin-bottom: 15px;
    border-radius: 18px;
    background:
        radial-gradient(circle at 78% 18%, rgba(108, 188, 255, .30) 0 7px, transparent 8px),
        linear-gradient(110deg, #f7fbff 0%, #eef8ff 58%, #f8f1ff 100%);
}

.ajx-local-hero__copy {
    position: relative;
    z-index: 2;
    padding: 32px 30px;
}

.ajx-local-hero h1 {
    margin: 0 0 13px;
    color: #101b3a;
    font-size: clamp(30px, 4vw, 43px);
    line-height: 1.1;
    letter-spacing: -.035em;
}

.ajx-highlight {
    color: var(--ajx-purple);
}

.ajx-local-hero p {
    max-width: 620px;
    margin: 0;
    color: #606a83;
    font-size: 14px;
    line-height: 1.65;
}

.ajx-local-hero__art {
    position: relative;
    overflow: hidden;
    min-height: 245px;
}

.ajx-local-hero__art:after {
    content: "";
    position: absolute;
    right: 10px;
    bottom: 22px;
    width: 260px;
    height: 75px;
    border-radius: 50% 50% 20% 20%;
    background: rgba(85, 177, 234, .23);
}

.ajx-cloud {
    position: absolute;
    width: 72px;
    height: 24px;
    border-radius: 20px;
    background: rgba(255,255,255,.9);
    box-shadow: 20px -10px 0 rgba(255,255,255,.9), 38px 2px 0 rgba(255,255,255,.9);
}

.ajx-cloud--one {
    top: 42px;
    left: 20px;
}

.ajx-cloud--two {
    top: 75px;
    right: 55px;
    transform: scale(.75);
}

.ajx-umbrella {
    position: absolute;
    z-index: 2;
    right: 75px;
    top: 67px;
    color: #8050d9;
    font-size: 95px;
    transform: rotate(-10deg);
    text-shadow: 0 8px 18px rgba(82, 61, 172, .18);
}

.ajx-rain {
    position: absolute;
    right: 54px;
    top: 150px;
    color: #4db1ed;
    font-size: 28px;
    transform: rotate(78deg);
}

.ajx-cityscape {
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 36px;
    height: 67px;
    opacity: .48;
    background:
        linear-gradient(90deg,
            transparent 0 4%,
            #5eb4e5 4% 10%,
            transparent 10% 14%,
            #5eb4e5 14% 22%,
            transparent 22% 27%,
            #5eb4e5 27% 36%,
            transparent 36% 41%,
            #5eb4e5 41% 50%,
            transparent 50% 55%,
            #5eb4e5 55% 66%,
            transparent 66% 71%,
            #5eb4e5 71% 82%,
            transparent 82% 86%,
            #5eb4e5 86% 96%,
            transparent 96%);
}

.ajx-filter-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 3px 1px 12px;
    scrollbar-width: thin;
}

.ajx-filter-strip a {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
    min-height: 52px;
    padding: 8px 13px;
    border: 1px solid var(--ajx-border);
    border-radius: 12px;
    color: #3e4760;
    font-size: 12px;
    background: #fff;
}

.ajx-filter-strip a.is-active {
    border-color: #ac80ef;
    color: #6532b9;
    background: #f6efff;
}

.ajx-filter-strip small {
    display: grid;
    min-width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 50%;
    color: #6c5c92;
    font-size: 9px;
    background: #f1edf8;
}

.ajx-results-head {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 8px 2px 17px;
    color: #444e68;
    font-size: 13px;
}

.ajx-content-section {
    margin-bottom: 29px;
    padding: 16px;
    border: 1px solid #e6e9f4;
    border-radius: 16px;
    background: #fff;
}

.ajx-content-section__head,
.ajx-sidebar-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.ajx-content-section__head h2,
.ajx-sidebar-card h2 {
    margin: 0;
    color: #161f3e;
    font-size: 18px;
}

.ajx-content-section__head a {
    color: #783ed0;
    font-size: 12px;
    font-weight: 700;
}

.ajx-place-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ajx-page .ae2-card {
    overflow: hidden;
    border: 1px solid #e3e6ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(31, 47, 98, .055);
}

.ajx-page .ae2-card__visual {
    position: relative;
    display: grid;
    height: 125px;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.8) 0 18px, transparent 19px),
        linear-gradient(135deg, #e8f7ff, #f9e8f3);
}

.ajx-page .ae2-card__visual:after {
    content: "";
    position: absolute;
    left: -20px;
    right: -20px;
    bottom: -35px;
    height: 75px;
    border-radius: 50%;
    background: rgba(124, 93, 218, .10);
}

.ajx-page .ae2-card__visual > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 14px;
    color: #445bc7;
    font-size: 20px;
    font-weight: 800;
    background: rgba(255,255,255,.9);
    box-shadow: 0 7px 18px rgba(42, 66, 157, .12);
}

.ajx-page .ae2-card__body {
    padding: 13px 14px 15px;
}

.ajx-page .ae2-card__type {
    color: #e44e8f;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.ajx-page .ae2-card h3 {
    margin: 7px 0 5px;
    font-size: 15px;
    line-height: 1.25;
}

.ajx-page .ae2-card__location,
.ajx-page .ae2-card__summary {
    margin: 0;
    color: #737b91;
    font-size: 11px;
    line-height: 1.45;
}

.ajx-page .ae2-card__summary {
    margin-top: 8px;
}

.ajx-page .ae2-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 10px;
}

.ajx-page .ae2-card__tags span {
    padding: 5px 7px;
    border-radius: 999px;
    color: #5e6380;
    font-size: 9px;
    background: #f2f4fa;
}

.ajx-page .ae2-card__link {
    display: inline-block;
    margin-top: 11px;
    color: #763fc7;
    font-size: 11px;
    font-weight: 800;
}

.ajx-idea-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ajx-idea-card {
    overflow: hidden;
    border: 1px solid #e3e6ef;
    border-radius: 14px;
    background: #fff;
}

.ajx-idea-card__visual {
    display: flex;
    min-height: 105px;
    align-items: flex-start;
    padding: 10px;
    background-color: #f2d8df;
    background-position: center;
    background-size: cover;
}

.ajx-idea-card__visual--editorial {
    background: linear-gradient(135deg, #dff7f1, #e8ebff);
}

.ajx-idea-card__visual span {
    padding: 5px 8px;
    border-radius: 999px;
    color: #a52d62;
    font-size: 9px;
    font-weight: 800;
    background: rgba(255,255,255,.88);
}

.ajx-idea-card__body {
    padding: 13px;
}

.ajx-idea-card strong {
    display: block;
    font-size: 14px;
}

.ajx-idea-card p {
    margin: 7px 0;
    color: #727a91;
    font-size: 11px;
    line-height: 1.45;
}

.ajx-idea-card small {
    color: #7742c8;
    font-weight: 700;
}

.ajx-resource-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ajx-resource-grid > a {
    min-height: 130px;
    padding: 15px;
    border: 1px solid #e3e6ef;
    border-radius: 13px;
    background: linear-gradient(145deg, #fff, #faf6ff);
}

.ajx-resource-grid span {
    display: inline-block;
    margin-bottom: 10px;
    padding: 5px 8px;
    border-radius: 999px;
    color: #b13a78;
    font-size: 9px;
    font-weight: 800;
    background: #ffe9f4;
}

.ajx-resource-grid strong {
    display: block;
    font-size: 14px;
}

.ajx-resource-grid p {
    margin: 8px 0 0;
    color: #737b91;
    font-size: 11px;
    line-height: 1.5;
}

.ajx-local-sidebar {
    position: sticky;
    top: 15px;
    display: grid;
    gap: 16px;
}

.ajx-sidebar-card {
    padding: 19px;
    border: 1px solid #e3e6ef;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(31, 47, 98, .055);
}

.ajx-selection-card h2:before {
    content: "✦";
    margin-right: 9px;
    color: var(--ajx-orange);
}

.ajx-selection-card ul {
    margin: 17px 0 0;
    padding: 0;
    list-style: none;
}

.ajx-selection-card li {
    position: relative;
    margin-bottom: 12px;
    padding-left: 17px;
    color: #5f6880;
    font-size: 12px;
    line-height: 1.45;
}

.ajx-selection-card li:before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--ajx-purple);
    font-weight: 800;
}

.ajx-selection-card p {
    margin: 15px 0 0;
    color: #7145c2;
    font-size: 11px;
}

.ajx-mini-map {
    position: relative;
    display: grid;
    min-height: 165px;
    place-items: center;
    overflow: hidden;
    margin: 14px 0;
    border-radius: 13px;
    color: #435170;
    background:
        linear-gradient(27deg, transparent 47%, rgba(100,180,214,.35) 48% 51%, transparent 52%),
        linear-gradient(155deg, transparent 45%, rgba(132,188,126,.22) 46% 58%, transparent 59%),
        repeating-linear-gradient(90deg, #f4f2e9 0 24px, #f7f6f0 25px 48px);
}

.ajx-map-marker {
    position: absolute;
    top: 62px;
    left: 48%;
    color: var(--ajx-pink);
    font-size: 27px;
    text-shadow: 0 3px 7px rgba(163, 38, 98, .25);
}

.ajx-mini-map strong {
    margin-top: 54px;
    font-size: 12px;
}

.ajx-nearby-links a,
.ajx-more-card a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-top: 1px solid #eef0f5;
    color: #7149bd;
    font-size: 12px;
}

.ajx-nearby-links small {
    color: #9198a9;
}

.ajx-practical-card {
    background: linear-gradient(135deg, #fbf9ff, #fff6f9);
}

.ajx-practical-card p {
    margin: 10px 0 0;
    color: #687088;
    font-size: 12px;
    line-height: 1.55;
}

.ajx-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-top: 18px;
    font-size: 12px;
}

.ajx-pagination a {
    padding: 8px 12px;
    border: 1px solid #dedff0;
    border-radius: 9px;
    color: #6841bd;
}

/* Responsive ------------------------------------------------------- */

@media (max-width: 980px) {
    .ajx-hub-hero__grid,
    .ajx-local-layout {
        grid-template-columns: 1fr;
    }

    .ajx-local-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ajx-universe-grid,
    .ajx-department-grid,
    .ajx-city-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .ajx-container,
    .ajx-local-container {
        width: min(100% - 22px, 1120px);
    }

    .ajx-hub-hero {
        padding: 38px 0;
    }

    .ajx-hub-hero__grid {
        gap: 26px;
    }

    .ajx-hub-hero h1 {
        font-size: 39px;
    }

    .ajx-department-search > div,
    .ajx-local-hero,
    .ajx-place-grid,
    .ajx-idea-grid,
    .ajx-resource-grid,
    .ajx-trust,
    .ajx-local-sidebar {
        grid-template-columns: 1fr;
    }

    .ajx-department-search button {
        width: 100%;
    }

    .ajx-local-hero__art {
        min-height: 175px;
    }

    .ajx-local-hero__copy {
        padding: 25px 21px;
    }

    .ajx-universe-grid,
    .ajx-department-grid,
    .ajx-city-grid {
        grid-template-columns: 1fr;
    }

    .ajx-results-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ========================================================================
   AnimyJob — restauration locale « structure capture » — V2.3.1 DESIGN
   ------------------------------------------------------------------------
   Design uniquement. Aucun impact sur contrôleur, routes, BDD ou cron.
   Objectif : retrouver la structure large avec hero illustré, filtres en
   cartes, 4 cartes par ligne et sidebar à droite.
   ======================================================================== */

/* Largeur locale proche de la maquette, sans modifier le hub national. */
.ajx-local .ajx-local-container {
    width: min(1760px, calc(100% - 56px));
}

.ajx-local .ajx-local-layout {
    grid-template-columns: minmax(0, 1fr) 370px;
    gap: 28px;
}

.ajx-local .ajx-local-main {
    min-width: 0;
}

/* Hero clair, horizontal et compact. */
.ajx-local .ajx-local-hero {
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr);
    min-height: 230px;
    margin-bottom: 16px;
    border: 1px solid #edf0f8;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(31, 47, 98, .035);
}

.ajx-local .ajx-local-hero__copy {
    padding: 34px 30px;
}

.ajx-local .ajx-local-hero h1 {
    max-width: 820px;
    font-size: clamp(31px, 3vw, 45px);
}

.ajx-local .ajx-local-hero p {
    max-width: 720px;
    font-size: 14px;
}

.ajx-local .ajx-local-hero__art {
    min-height: 230px;
}

/* Filtres façon petites cartes de la capture. */
.ajx-local .ajx-filter-strip {
    display: grid;
    grid-template-columns: repeat(10, minmax(88px, 1fr));
    gap: 8px;
    overflow-x: auto;
    padding: 0 0 14px;
}

.ajx-local .ajx-filter-strip a {
    position: relative;
    min-width: 88px;
    min-height: 82px;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 9px 8px 8px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 14px rgba(31, 47, 98, .035);
}

.ajx-local .ajx-filter-strip a:hover {
    transform: translateY(-1px);
    border-color: #cbb0f4;
    box-shadow: 0 8px 18px rgba(88, 59, 156, .08);
}

.ajx-local .ajx-filter-strip a.is-active {
    border-color: #a872ec;
    background: linear-gradient(180deg, #fbf8ff, #f5efff);
    box-shadow: 0 7px 18px rgba(112, 71, 217, .10);
}

.ajx-local .ajx-filter-icon {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 50%;
    color: #7144c5;
    font-size: 12px;
    font-weight: 900;
    background: #f0e9ff;
}

.ajx-local .ajx-filter-strip a:nth-child(3n+1) .ajx-filter-icon {
    color: #d2558f;
    background: #ffedf5;
}

.ajx-local .ajx-filter-strip a:nth-child(3n+2) .ajx-filter-icon {
    color: #4f6fd6;
    background: #edf2ff;
}

.ajx-local .ajx-filter-strip a:nth-child(3n) .ajx-filter-icon {
    color: #b97122;
    background: #fff2df;
}

.ajx-local .ajx-filter-strip span {
    max-width: 100%;
    overflow: hidden;
    color: #454b62;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ajx-local .ajx-filter-strip small {
    position: absolute;
    top: 6px;
    right: 6px;
    min-width: 20px;
    height: 20px;
    padding: 0 4px;
    color: #75698d;
    background: #f3f0f8;
}

/* Ligne résultats + faux select visuel, comme la maquette. */
.ajx-local .ajx-results-head {
    align-items: center;
    padding: 5px 2px 15px;
}

.ajx-local .ajx-results-head > span {
    padding: 9px 13px;
    border: 1px solid #e2e5ef;
    border-radius: 9px;
    color: #535b72;
    background: #fff;
}

.ajx-local .ajx-results-head > span:before {
    content: "Trier par : ";
    color: #80879a;
}

/* Sections et cartes plus denses : 4 colonnes comme la capture. */
.ajx-local .ajx-content-section {
    margin-bottom: 24px;
    padding: 16px;
    border-radius: 16px;
    box-shadow: 0 4px 18px rgba(31, 47, 98, .025);
}

.ajx-local .ajx-place-grid,
.ajx-local .ajx-idea-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ajx-local .ajx-resource-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ajx-local .ae2-card,
.ajx-local .ajx-idea-card {
    min-width: 0;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(31, 47, 98, .05);
}

.ajx-local .ae2-card__body,
.ajx-local .ajx-idea-card__body {
    padding: 13px 14px 14px;
}

.ajx-local .ae2-card h3 {
    font-size: 14px;
    line-height: 1.28;
}

.ajx-local .ae2-card__summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.ajx-local .ajx-idea-card__visual {
    min-height: 110px;
}

/* Pas de vert décoratif : bleu/lilas à la place. */
.ajx-local .ajx-idea-card__visual--editorial {
    background: linear-gradient(135deg, #eaf3ff, #eee8ff);
}

/* Sidebar proche de la capture. */
.ajx-local .ajx-local-sidebar {
    top: 18px;
    gap: 18px;
}

.ajx-local .ajx-sidebar-card {
    padding: 22px;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(31, 47, 98, .045);
}

.ajx-local .ajx-sidebar-card h2 {
    font-size: 17px;
}

.ajx-local .ajx-mini-map {
    min-height: 230px;
}

/* Adaptation progressive : 4 -> 3 -> 2 -> 1 cartes. */
@media (max-width: 1460px) {
    .ajx-local .ajx-local-container {
        width: min(1380px, calc(100% - 40px));
    }

    .ajx-local .ajx-local-layout {
        grid-template-columns: minmax(0, 1fr) 330px;
        gap: 22px;
    }

    .ajx-local .ajx-place-grid,
    .ajx-local .ajx-idea-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ajx-local .ajx-filter-strip {
        grid-template-columns: repeat(10, minmax(92px, 1fr));
    }
}

@media (max-width: 1120px) {
    .ajx-local .ajx-local-layout {
        grid-template-columns: 1fr;
    }

    .ajx-local .ajx-local-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ajx-local .ajx-place-grid,
    .ajx-local .ajx-idea-grid,
    .ajx-local .ajx-resource-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .ajx-local .ajx-local-container {
        width: min(100% - 22px, 1760px);
    }

    .ajx-local .ajx-local-hero {
        grid-template-columns: 1fr;
    }

    .ajx-local .ajx-local-hero__art {
        min-height: 170px;
    }

    .ajx-local .ajx-place-grid,
    .ajx-local .ajx-idea-grid,
    .ajx-local .ajx-resource-grid,
    .ajx-local .ajx-local-sidebar {
        grid-template-columns: 1fr;
    }

    .ajx-local .ajx-results-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ========================================================================
   TERRITOIRE V2.3.2 — modernisation locale + vraie carte interactive
   ======================================================================== */

.ajx-local {
    background: linear-gradient(180deg, #ffffff 0, #fbfcff 420px, #ffffff 900px);
}

.ajx-local .ajx-local-hero {
    border: 1px solid #e6e8f2;
    border-radius: 24px;
    background:
        radial-gradient(circle at 84% 19%, rgba(238, 66, 139, .10) 0 7px, transparent 8px),
        radial-gradient(circle at 73% 63%, rgba(88, 177, 235, .13) 0 10px, transparent 11px),
        linear-gradient(112deg, #f9fcff 0%, #edf8ff 58%, #f7f1ff 100%);
    box-shadow: 0 16px 38px rgba(31, 47, 98, .065);
}

.ajx-local .ajx-local-hero__copy {
    padding: 38px 36px;
}

.ajx-local .ajx-highlight {
    background: linear-gradient(90deg, #7047d9, #e44289);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.ajx-local .ajx-filter-strip {
    gap: 10px;
    padding: 2px 2px 18px;
}

.ajx-local .ajx-filter-strip a {
    min-height: 88px;
    border-color: #e2e6f1;
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 7px 20px rgba(31, 47, 98, .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ajx-local .ajx-filter-strip a:hover {
    transform: translateY(-3px);
    border-color: #c7a7ee;
    box-shadow: 0 12px 28px rgba(83, 57, 145, .10);
}

.ajx-local .ajx-filter-strip a.is-active {
    border-color: #9d6de2;
    background: linear-gradient(180deg, #fff, #f7f1ff);
    box-shadow: 0 11px 27px rgba(112, 71, 217, .12);
}

.ajx-local .ajx-filter-icon {
    width: 35px;
    height: 35px;
    box-shadow: inset 0 0 0 1px rgba(112, 71, 217, .05);
}

.ajx-local .ajx-results-head {
    margin-top: 3px;
    padding-bottom: 18px;
}

.ajx-local .ajx-results-head strong {
    color: #202944;
    font-size: 14px;
}

.ajx-local .ajx-results-head > span {
    border-radius: 12px;
    box-shadow: 0 4px 13px rgba(31, 47, 98, .035);
}

.ajx-local .ajx-content-section {
    margin-bottom: 28px;
    padding: 20px;
    border-color: #e5e8f1;
    border-radius: 22px;
    box-shadow: 0 10px 30px rgba(31, 47, 98, .045);
}

.ajx-local .ajx-content-section__head {
    margin-bottom: 18px;
}

.ajx-local .ajx-content-section__head h2 {
    font-size: 19px;
    letter-spacing: -.015em;
}

.ajx-local .ajx-content-section__head > a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    border-radius: 10px;
    color: #6c39bd;
    background: #f8f4ff;
    transition: background .18s ease, transform .18s ease;
}

.ajx-local .ajx-content-section__head > a:hover {
    transform: translateX(2px);
    background: #f0e8ff;
}

.ajx-local .ae2-card,
.ajx-local .ajx-idea-card,
.ajx-local .ajx-resource-grid > a {
    border-color: #e3e6ef;
    border-radius: 17px;
    box-shadow: 0 8px 22px rgba(31, 47, 98, .055);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ajx-local .ae2-card:hover,
.ajx-local .ajx-idea-card:hover,
.ajx-local .ajx-resource-grid > a:hover {
    transform: translateY(-3px);
    border-color: #d5c3ee;
    box-shadow: 0 14px 30px rgba(66, 49, 121, .09);
}

.ajx-local .ajx-local-sidebar {
    gap: 20px;
}

.ajx-local .ajx-sidebar-card {
    padding: 24px;
    border-color: #e3e6ef;
    border-radius: 21px;
    box-shadow: 0 12px 32px rgba(31, 47, 98, .055);
}

.ajx-local .ajx-sidebar-card__head {
    margin-bottom: 14px;
}

.ajx-local .ajx-map-shell {
    margin: 15px 0 9px;
    overflow: hidden;
    border: 1px solid #e0e4ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(31, 47, 98, .055);
}

.ajx-local .ajx-mini-map--interactive {
    width: 100%;
    min-height: 280px;
    height: 280px;
    margin: 0;
    border-radius: 0;
    background: #eef4f8;
}

.ajx-local .ajx-mini-map--fallback {
    min-height: 220px;
}

.ajx-local .ajx-map-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-top: 1px solid #eceef4;
    color: #7a8296;
    font-size: 11px;
    background: #fff;
}

.ajx-local .ajx-map-meta b {
    color: #7047d9;
}

.ajx-local .ajx-map-meta button {
    padding: 6px 9px;
    border: 0;
    border-radius: 8px;
    color: #6939b8;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    background: #f4effc;
}

.ajx-local .ajx-map-meta button:hover {
    background: #ebe1fb;
}

.ajx-local .ajx-mini-map--interactive .leaflet-control-zoom a {
    color: #55318e;
}

.ajx-local .ajx-mini-map--interactive .leaflet-popup-content {
    margin: 12px 14px;
    color: #343b54;
    font-size: 12px;
    line-height: 1.45;
}

.ajx-local .ajx-mini-map--interactive .leaflet-popup-content strong {
    display: block;
    margin: 0 0 3px;
    color: #18213e;
    font-size: 13px;
}

.ajx-local .ajx-mini-map--interactive .leaflet-popup-content a {
    color: #743fc7;
    font-weight: 800;
}

.ajx-leaflet-marker {
    background: transparent;
    border: 0;
}

.ajx-leaflet-marker span {
    position: relative;
    display: block;
    width: 24px;
    height: 24px;
    border: 4px solid #fff;
    border-radius: 50% 50% 50% 8px;
    background: linear-gradient(135deg, #7047d9, #ed428b);
    box-shadow: 0 5px 13px rgba(82, 49, 145, .32);
    transform: rotate(-45deg);
}

.ajx-leaflet-marker span:after {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
}

.ajx-local .ajx-nearby-links a {
    padding: 12px 4px;
    border-color: #eceef4;
    border-radius: 9px;
    transition: padding .18s ease, background .18s ease;
}

.ajx-local .ajx-nearby-links a:hover {
    padding-right: 8px;
    padding-left: 8px;
    background: #faf8ff;
}

@media (max-width: 760px) {
    .ajx-local .ajx-local-hero__copy {
        padding: 29px 23px;
    }

    .ajx-local .ajx-content-section,
    .ajx-local .ajx-sidebar-card {
        padding: 17px;
        border-radius: 18px;
    }

    .ajx-local .ajx-mini-map--interactive {
        min-height: 250px;
        height: 250px;
    }
}
