:root {
    --jag-front-green: #8db243;
    --jag-front-green-dark: #3f5e0a;
    --jag-front-green-deep: #314b08;
    --jag-front-green-soft: #eef4e3;
    --jag-front-bg: #ededed;
    --jag-front-bg-soft: #f5f6f3;
    --jag-front-surface: #ffffff;
    --jag-front-text: #2b2f33;
    --jag-front-muted: #747b82;
    --jag-front-border: #d9ddd4;
    --jag-front-danger: #b42318;
    --jag-front-shadow: 0 7px 22px rgba(31, 41, 55, .07);
    --jag-front-radius: 10px;
}

* { box-sizing: border-box; }
html { background: var(--jag-front-bg); color: var(--jag-front-text); font-family: Arial, Helvetica, sans-serif; }
body { margin: 0; background: var(--jag-front-bg); color: var(--jag-front-text); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; }

.jag-front-shell { width: min(1280px, calc(100% - 32px)); margin: 0 auto; }
.jag-front-body { min-height: 100vh; }
.jag-front-main { min-height: 60vh; }
.jag-front-section { padding: 24px 0 48px; }
.jag-front-muted { color: var(--jag-front-muted); }

.jag-front-header { background: #fff; border-bottom: 1px solid #ddd; }
.jag-front-header-inner { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.jag-front-brand { display: inline-flex; flex-direction: column; text-decoration: none; font-weight: 800; color: var(--jag-front-green-dark); line-height: 1; }
.jag-front-brand img { display: block; max-width: 190px; max-height: 58px; object-fit: contain; }
.jag-front-brand span { font-size: 18px; }
.jag-front-brand strong { font-size: 20px; }
.jag-front-nav { display: flex; align-items: center; gap: 18px; font-size: 14px; }
.jag-front-nav a, .jag-front-nav-button { text-decoration: none; color: #61676d; background: transparent; border: 0; padding: 0; cursor: pointer; }
.jag-front-nav a:hover, .jag-front-nav-button:hover { color: var(--jag-front-green-dark); }
.jag-front-logout-form { margin: 0; }
.jag-front-nav .jag-front-deposit { color: #fff; background: var(--jag-front-green); padding: 14px 18px; font-weight: 700; }

.jag-front-search-strip { background: var(--jag-front-green); color: #fff; }
.jag-front-search-strip-inner { min-height: 72px; display: flex; align-items: center; gap: 18px; }
.jag-front-search-strip strong { font-size: 18px; }
.jag-front-search-strip span { opacity: .92; }

.jag-front-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 18px 0 10px; color: #70767b; font-size: 13px; }
.jag-front-breadcrumb a { color: var(--jag-front-green-dark); text-decoration: none; }

.jag-front-ad-page { padding-bottom: 48px; }
.jag-front-ad-titlebar { background: #fff; border: 1px solid var(--jag-front-border); border-radius: var(--jag-front-radius); padding: 20px 22px; margin-bottom: 14px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; box-shadow: var(--jag-front-shadow); }
.jag-front-ad-titlecopy h1 { margin: 5px 0 8px; font-size: clamp(25px, 3vw, 36px); line-height: 1.1; color: #32363a; }
.jag-front-ad-category { display: inline-block; color: var(--jag-front-green-dark); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.jag-front-ad-meta { display: flex; gap: 14px; flex-wrap: wrap; color: var(--jag-front-muted); font-size: 13px; }
.jag-front-ad-titleprice { color: var(--jag-front-green-dark); font-size: 26px; font-weight: 800; white-space: nowrap; }

.jag-front-ad-grid { display: grid; grid-template-columns: 205px minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.jag-front-ad-left, .jag-front-ad-right, .jag-front-ad-center { display: grid; gap: 14px; min-width: 0; }

.jag-front-card, .jag-front-side-panel, .jag-front-contact-panel { background: #fff; border: 1px solid var(--jag-front-border); border-radius: var(--jag-front-radius); box-shadow: var(--jag-front-shadow); overflow: hidden; }
.jag-front-side-panel, .jag-front-contact-panel { padding: 17px; }
.jag-front-side-panel h2, .jag-front-contact-panel h2 { font-size: 17px; margin: 0 0 14px; }
.jag-front-side-panel p { margin: 0; color: #626970; font-size: 13px; line-height: 1.55; }
.jag-front-side-soft { background: #fafbf8; }

.jag-front-side-data { margin: 0; display: grid; gap: 12px; }
.jag-front-side-data div { display: grid; gap: 3px; padding-bottom: 10px; border-bottom: 1px solid #eceee9; }
.jag-front-side-data div:last-child { border-bottom: 0; padding-bottom: 0; }
.jag-front-side-data dt { color: var(--jag-front-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.jag-front-side-data dd { margin: 0; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }

.jag-front-share-actions { display: grid; gap: 8px; }
.jag-front-mini-action { border: 1px solid #d2d7cc; background: #fff; border-radius: 6px; padding: 9px 10px; cursor: pointer; color: #4a4f54; text-align: left; }
.jag-front-mini-action:hover { border-color: var(--jag-front-green); color: var(--jag-front-green-dark); }
.jag-front-share-feedback { min-height: 16px; margin: 8px 0 0; font-size: 11px; color: var(--jag-front-green-dark); }

.jag-front-gallery { padding: 12px; }
.jag-front-gallery-main { width: 100%; min-height: 420px; border: 0; border-radius: 7px; background: #f2f3f0; display: flex; align-items: center; justify-content: center; padding: 0; cursor: zoom-in; overflow: hidden; }
.jag-front-gallery-main img { width: 100%; height: 480px; object-fit: contain; display: block; background: #f4f4f2; }
.jag-front-gallery-empty { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--jag-front-muted); gap: 5px; }
.jag-front-gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; padding-top: 10px; }
.jag-front-gallery-thumb { flex: 0 0 76px; height: 62px; padding: 2px; border: 2px solid transparent; border-radius: 6px; background: #fff; cursor: pointer; overflow: hidden; }
.jag-front-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.jag-front-gallery-thumb.is-active { border-color: var(--jag-front-green); }

.jag-front-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border-bottom: 1px solid var(--jag-front-border); }
.jag-front-card-heading h2 { margin: 0; font-size: 20px; }
.jag-front-card-body { padding: 18px; }
.jag-front-ad-description { font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }

.jag-front-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jag-front-spec-item { display: grid; grid-template-columns: minmax(110px, .85fr) minmax(0, 1.15fr); gap: 12px; padding: 13px 18px; border-bottom: 1px solid #eceee9; }
.jag-front-spec-item:nth-child(odd) { border-right: 1px solid #eceee9; }
.jag-front-spec-item span { color: var(--jag-front-muted); font-size: 13px; }
.jag-front-spec-item strong { text-align: right; font-size: 14px; overflow-wrap: anywhere; }

.jag-front-public-location { padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.jag-front-public-location > div:first-child { display: grid; gap: 5px; }
.jag-front-public-location span { color: var(--jag-front-muted); font-size: 12px; }
.jag-front-public-location strong { font-size: 20px; }
.jag-front-public-location small { color: var(--jag-front-muted); line-height: 1.4; }
.jag-front-location-mark { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--jag-front-green-soft); color: var(--jag-front-green-dark); font-weight: 800; }

.jag-front-contact-panel { display: grid; gap: 14px; }
.jag-front-contact-price { color: var(--jag-front-green-dark); font-size: 25px; font-weight: 800; padding-bottom: 12px; border-bottom: 1px solid #e7eae3; }
.jag-front-contact-seller { display: grid; gap: 3px; }
.jag-front-contact-seller span { color: var(--jag-front-muted); font-size: 12px; }
.jag-front-contact-seller strong { font-size: 20px; }
.jag-front-contact-seller small { color: var(--jag-front-muted); }
.jag-front-owner-note { padding: 10px 12px; border-radius: 6px; background: var(--jag-front-green-soft); color: var(--jag-front-green-dark); font-size: 13px; font-weight: 700; }
.jag-front-action-help { color: var(--jag-front-muted); font-size: 11px; line-height: 1.4; }

.jag-front-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 14px; border: 1px solid transparent; border-radius: 6px; text-decoration: none; font-weight: 700; cursor: pointer; }
.jag-front-btn:disabled { cursor: not-allowed; opacity: .65; }
.jag-front-btn-primary { background: var(--jag-front-green); color: #fff; border-color: var(--jag-front-green); }
.jag-front-btn-primary:hover:not(:disabled) { background: #7ea238; }
.jag-front-btn-secondary { background: #fff; color: #4d5358; border-color: #cfd4ca; }
.jag-front-btn-secondary:hover { border-color: var(--jag-front-green); color: var(--jag-front-green-dark); }
.jag-front-btn-block { width: 100%; }
.jag-front-text-action { color: var(--jag-front-green-dark); font-weight: 700; font-size: 13px; text-decoration: none; }
.jag-front-text-danger { color: var(--jag-front-danger); }

.jag-front-related-section { margin-top: 20px; background: #fff; border: 1px solid var(--jag-front-border); border-radius: var(--jag-front-radius); padding: 18px; box-shadow: var(--jag-front-shadow); }
.jag-front-related-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 14px; }
.jag-front-related-heading span { color: var(--jag-front-muted); font-size: 12px; }
.jag-front-related-heading h2 { margin: 3px 0 0; font-size: 21px; }
.jag-front-related-heading a { color: var(--jag-front-green-dark); font-weight: 700; text-decoration: none; font-size: 13px; }
.jag-front-ad-cards { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 11px; }
.jag-front-ad-card { min-width: 0; border: 1px solid #dfe3db; background: #fff; text-decoration: none; color: inherit; border-radius: 7px; overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.jag-front-ad-card:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(31, 41, 55, .09); }
.jag-front-ad-card-media { height: 112px; background: #f0f1ee; display: flex; align-items: center; justify-content: center; color: var(--jag-front-muted); font-size: 12px; }
.jag-front-ad-card-media img { width: 100%; height: 100%; object-fit: cover; }
.jag-front-ad-card-body { padding: 10px; display: grid; gap: 5px; }
.jag-front-ad-card-body strong { font-size: 13px; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.jag-front-ad-card-body span { color: var(--jag-front-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jag-front-ad-card-body b { color: var(--jag-front-green-dark); font-size: 13px; }

.jag-front-seller-page-head { background: #fff; border: 1px solid var(--jag-front-border); border-radius: var(--jag-front-radius); box-shadow: var(--jag-front-shadow); padding: 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.jag-front-seller-page-head h1 { margin: 4px 0; }
.jag-front-seller-page-head p { margin: 0; color: var(--jag-front-muted); }
.jag-front-seller-count { background: var(--jag-front-green-soft); color: var(--jag-front-green-dark); padding: 10px 13px; border-radius: 999px; font-weight: 700; }
.jag-front-ad-cards-page { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jag-front-ad-cards-page .jag-front-ad-card-media { height: 175px; }

.jag-front-empty-state { padding: 64px 24px; text-align: center; background: #fff; border-radius: var(--jag-front-radius); border: 1px solid var(--jag-front-border); }
.jag-front-empty-state h1 { margin: 8px 0; }
.jag-front-empty-state p { color: var(--jag-front-muted); margin-bottom: 22px; }
.jag-front-empty-kicker { color: var(--jag-front-green-dark); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 12px; }

.jag-front-lightbox { width: min(1100px, 92vw); max-height: 92vh; border: 0; border-radius: 10px; background: #111; padding: 42px 14px 14px; }
.jag-front-lightbox::backdrop { background: rgba(0, 0, 0, .78); }
.jag-front-lightbox img { display: block; width: 100%; max-height: 80vh; object-fit: contain; }
.jag-front-lightbox-close { position: absolute; top: 8px; right: 10px; border: 0; color: #fff; background: transparent; font-size: 28px; cursor: pointer; }

.jag-front-footer { margin-top: 36px; background: #fff; border-top: 1px solid #d7dad4; color: #60666b; }
.jag-front-footer-inner { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }

@media (max-width: 1180px) {
    .jag-front-ad-grid { grid-template-columns: minmax(0, 1fr) 290px; }
    .jag-front-ad-left { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); order: 3; }
    .jag-front-ad-center { grid-column: 1; grid-row: 1; }
    .jag-front-ad-right { grid-column: 2; grid-row: 1; }
    .jag-front-ad-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
    .jag-front-header-inner { align-items: flex-start; padding: 12px 0; }
    .jag-front-nav { flex-wrap: wrap; justify-content: flex-end; gap: 10px 14px; }
    .jag-front-search-strip-inner { padding: 13px 0; flex-direction: column; align-items: flex-start; gap: 4px; }
    .jag-front-ad-titlebar { align-items: flex-start; flex-direction: column; }
    .jag-front-ad-titleprice { font-size: 23px; }
    .jag-front-ad-grid { display: flex; flex-direction: column; }
    .jag-front-ad-center { order: 1; width: 100%; }
    .jag-front-ad-right { order: 2; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jag-front-ad-left { order: 3; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jag-front-gallery-main, .jag-front-gallery-empty { min-height: 300px; }
    .jag-front-gallery-main img { height: 360px; }
    .jag-front-ad-cards, .jag-front-ad-cards-page { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .jag-front-shell { width: min(100% - 20px, 1280px); }
    .jag-front-header-inner { flex-direction: column; }
    .jag-front-nav { width: 100%; justify-content: flex-start; }
    .jag-front-nav .jag-front-deposit { margin-left: auto; }
    .jag-front-ad-titlebar { padding: 16px; }
    .jag-front-ad-meta { display: grid; gap: 5px; }
    .jag-front-gallery-main img { height: 290px; }
    .jag-front-gallery-main, .jag-front-gallery-empty { min-height: 240px; }
    .jag-front-spec-grid { grid-template-columns: 1fr; }
    .jag-front-spec-item { grid-template-columns: 1fr; gap: 4px; border-right: 0 !important; }
    .jag-front-spec-item strong { text-align: left; }
    .jag-front-ad-right, .jag-front-ad-left { grid-template-columns: 1fr; }
    .jag-front-public-location { align-items: flex-start; }
    .jag-front-related-heading { align-items: flex-start; flex-direction: column; }
    .jag-front-ad-cards, .jag-front-ad-cards-page { grid-template-columns: 1fr; }
    .jag-front-ad-card { display: grid; grid-template-columns: 120px 1fr; }
    .jag-front-ad-card-media, .jag-front-ad-cards-page .jag-front-ad-card-media { height: 110px; }
    .jag-front-footer-inner { flex-direction: column; align-items: flex-start; justify-content: center; padding: 18px 0; }
}

/* =========================================================
   FICHE ANNONCE — VERSION ÉPURÉE
   Chaque information publique n'est affichée qu'une fois.
========================================================= */

.jag-front-ad-titlebar-clean {
    align-items: flex-start;
}

.jag-front-ad-grid-clean {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 16px;
    align-items: start;
}

.jag-front-public-actions {
    display: grid;
    gap: 14px;
}

.jag-front-location-block {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(320px, 1.2fr);
    gap: 0;
    min-height: 260px;
}

.jag-front-location-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 22px;
    background: #fbfcf9;
}

.jag-front-location-copy > span {
    color: var(--jag-front-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.jag-front-location-copy > strong {
    font-size: 22px;
    color: #34393d;
}

.jag-front-location-copy > small {
    color: var(--jag-front-green-dark);
    font-weight: 700;
}

.jag-front-location-copy > p {
    margin: 8px 0 0;
    color: var(--jag-front-muted);
    font-size: 12px;
    line-height: 1.55;
}

.jag-front-location-map,
.jag-front-location-map-empty {
    min-height: 260px;
    border-left: 1px solid var(--jag-front-border);
    background: #eef1eb;
}

.jag-front-location-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 260px;
    border: 0;
}

.jag-front-location-map-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 28px;
    text-align: center;
    color: var(--jag-front-muted);
}

.jag-front-location-map-empty strong {
    color: var(--jag-front-green-dark);
    font-size: 22px;
}

.jag-front-location-map-empty span {
    max-width: 320px;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 960px) {
    .jag-front-ad-grid-clean {
        grid-template-columns: 1fr;
    }

    .jag-front-ad-grid-clean .jag-front-ad-right {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .jag-front-location-block {
        grid-template-columns: 1fr;
    }

    .jag-front-location-map,
    .jag-front-location-map-empty {
        border-left: 0;
        border-top: 1px solid var(--jag-front-border);
    }

    .jag-front-ad-grid-clean .jag-front-ad-right {
        grid-template-columns: 1fr;
    }
}

.jag-front-contact-form {
    margin: 0;
}

/* Coordonnées révélées uniquement après action du membre connecté */
.jag-front-contact-reveal-list {
    display: grid;
    gap: 8px;
    padding: 10px 0;
    border-top: 1px solid #e7eae3;
    border-bottom: 1px solid #e7eae3;
}

.jag-front-contact-reveal {
    width: 100%;
    display: grid;
    gap: 3px;
    padding: 10px 11px;
    border: 1px solid #d7ddcf;
    border-radius: 7px;
    background: #fafbf8;
    color: var(--jag-front-text);
    text-align: left;
    cursor: pointer;
}

.jag-front-contact-reveal:hover:not(:disabled) {
    border-color: var(--jag-front-green);
    background: var(--jag-front-green-soft);
}

.jag-front-contact-reveal:disabled {
    cursor: wait;
    opacity: .7;
}

.jag-front-contact-reveal span {
    color: var(--jag-front-muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.jag-front-contact-reveal strong,
.jag-front-contact-revealed-value {
    color: var(--jag-front-green-dark);
    font-size: 13px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.jag-front-contact-revealed-value {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.jag-front-contact-reveal-feedback {
    min-height: 0;
    margin: 0;
    color: var(--jag-front-danger);
    font-size: 11px;
    line-height: 1.4;
}

.jag-front-contact-reveal-feedback:empty {
    display: none;
}

.jag-front-contact-reveal-link {
    text-decoration: none;
}


/* ==========================================================================
   JAG V2 — Front public des annonces — Phase 1
   ========================================================================== */

.jag-front-quick-links {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
}

.jag-front-quick-links a {
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 999px;
    color: #fff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
}

.jag-front-quick-links a:hover {
    background: rgba(255,255,255,.13);
}

.jag-home-page {
    padding: 28px 0 52px;
}

.jag-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
    gap: 22px;
    align-items: stretch;
}

.jag-home-hero-copy,
.jag-home-stats {
    background: #fff;
    border: 1px solid var(--jag-front-border);
    border-radius: 14px;
    box-shadow: var(--jag-front-shadow);
}

.jag-home-hero-copy {
    padding: clamp(28px, 4vw, 54px);
}

.jag-home-kicker {
    color: var(--jag-front-green-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.jag-home-hero h1 {
    max-width: 760px;
    margin: 10px 0 13px;
    color: #26302b;
    font-size: clamp(32px, 4vw, 52px);
    line-height: 1.05;
}

.jag-home-hero p {
    max-width: 720px;
    margin: 0;
    color: var(--jag-front-muted);
    font-size: 16px;
    line-height: 1.65;
}

.jag-home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 24px;
}

.jag-home-stats {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    padding: 10px 20px;
}

.jag-home-stats a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 5px;
    border-bottom: 1px solid #e9ece6;
    text-decoration: none;
}

.jag-home-stats a:last-child {
    border-bottom: 0;
}

.jag-home-stats strong {
    color: var(--jag-front-green-dark);
    font-size: 30px;
}

.jag-home-stats span {
    color: #656c68;
    font-size: 13px;
    font-weight: 700;
    text-align: right;
}

.jag-home-latest {
    margin-top: 26px;
}

.jag-home-section-heading,
.jag-public-list-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 15px;
}

.jag-home-section-heading span {
    color: var(--jag-front-muted);
    font-size: 12px;
}

.jag-home-section-heading h2,
.jag-public-list-heading h1 {
    margin: 4px 0 0;
    color: #2d3530;
}

.jag-home-section-heading h2 {
    font-size: 26px;
}

.jag-home-section-heading > a {
    color: var(--jag-front-green-dark);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.jag-home-ad-grid,
.jag-public-ad-grid {
    display: grid;
    gap: 14px;
}

.jag-home-ad-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jag-public-ad-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jag-home-ad-card,
.jag-public-ad-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--jag-front-border);
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 4px 15px rgba(31,41,55,.055);
    transition: transform .15s ease, box-shadow .15s ease;
}

.jag-home-ad-card:hover,
.jag-public-ad-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(31,41,55,.09);
}

.jag-home-ad-media,
.jag-public-ad-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: #f0f2ed;
}

.jag-home-ad-media {
    height: 180px;
}

.jag-public-ad-media {
    height: 210px;
}

.jag-home-ad-media img,
.jag-public-ad-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.jag-public-no-photo {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 7px;
    color: #9aa19a;
}

.jag-public-no-photo svg {
    width: 42px;
    height: 42px;
    fill: currentColor;
}

.jag-public-no-photo small {
    font-size: 11px;
}

.jag-public-type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.jag-home-ad-media > .jag-public-type-badge,
.jag-public-ad-media > .jag-public-type-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

.jag-public-type-badge.is-offer {
    background: #edf6df;
    color: #4d7216;
    border: 1px solid #cfdfb7;
}

.jag-public-type-badge.is-wanted {
    background: #eef3fb;
    color: #365f96;
    border: 1px solid #cfdced;
}

.jag-home-ad-body,
.jag-public-ad-content {
    display: grid;
    gap: 7px;
    padding: 13px;
}

.jag-home-ad-body small,
.jag-public-ad-category {
    color: var(--jag-front-green-dark);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.jag-home-ad-body h3,
.jag-public-ad-content h2 {
    margin: 0;
}

.jag-home-ad-body h3 {
    min-height: 38px;
    font-size: 14px;
    line-height: 1.35;
}

.jag-public-ad-content h2 {
    min-height: 42px;
    font-size: 15px;
    line-height: 1.35;
}

.jag-home-ad-body h3 a,
.jag-public-ad-content h2 a {
    color: #303733;
    text-decoration: none;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.jag-home-ad-body > strong,
.jag-public-ad-price {
    color: var(--jag-front-green-dark);
    font-size: 16px;
    font-weight: 850;
}

.jag-home-ad-body > span {
    color: var(--jag-front-muted);
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jag-public-list-page {
    padding-bottom: 54px;
}

.jag-public-list-heading {
    padding: 15px 0 4px;
}

.jag-public-list-heading h1 {
    font-size: clamp(27px, 3vw, 38px);
}

.jag-public-list-heading p {
    margin: 7px 0 0;
    color: var(--jag-front-muted);
    font-size: 13px;
}

.jag-public-type-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 15px 0 18px;
    padding: 8px;
    border: 1px solid var(--jag-front-border);
    border-radius: 10px;
    background: #fff;
}

.jag-public-type-tabs a {
    padding: 9px 15px;
    border-radius: 7px;
    color: #626965;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.jag-public-type-tabs a:hover,
.jag-public-type-tabs a.is-active {
    background: var(--jag-front-green-soft);
    color: var(--jag-front-green-dark);
}

.jag-public-ad-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    padding-top: 8px;
    border-top: 1px solid #edf0ea;
    color: var(--jag-front-muted);
    font-size: 10px;
}

.jag-public-ad-footer span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jag-public-list-error {
    margin: 14px 0;
    padding: 12px 14px;
    border: 1px solid #e6c5c0;
    border-radius: 9px;
    background: #fff6f5;
    color: #8c3b33;
    font-size: 12px;
}

.jag-public-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 25px;
}

.jag-public-pagination a {
    padding: 9px 13px;
    border: 1px solid #d2d8ce;
    border-radius: 7px;
    background: #fff;
    color: var(--jag-front-green-dark);
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.jag-public-pagination span {
    color: var(--jag-front-muted);
    font-size: 12px;
}

.jag-front-ad-labels {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.jag-front-ad-labels .jag-public-type-badge {
    position: static;
}

@media (max-width: 1080px) {
    .jag-home-ad-grid,
    .jag-public-ad-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .jag-home-hero {
        grid-template-columns: minmax(0, 1fr) 320px;
    }
}

@media (max-width: 820px) {
    .jag-front-quick-links {
        margin-left: 0;
    }

    .jag-home-hero {
        grid-template-columns: 1fr;
    }

    .jag-home-stats {
        grid-template-columns: repeat(3, minmax(0,1fr));
        grid-template-rows: none;
    }

    .jag-home-stats a {
        align-items: flex-start;
        flex-direction: column;
        border-bottom: 0;
        border-right: 1px solid #e9ece6;
    }

    .jag-home-stats a:last-child {
        border-right: 0;
    }

    .jag-home-ad-grid,
    .jag-public-ad-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .jag-front-quick-links {
        flex-wrap: wrap;
    }

    .jag-home-section-heading,
    .jag-public-list-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .jag-home-stats {
        grid-template-columns: 1fr;
    }

    .jag-home-stats a {
        align-items: center;
        flex-direction: row;
        border-right: 0;
        border-bottom: 1px solid #e9ece6;
    }

    .jag-home-ad-grid,
    .jag-public-ad-grid {
        grid-template-columns: 1fr;
    }

    .jag-home-ad-card,
    .jag-public-ad-card {
        display: grid;
        grid-template-columns: 128px minmax(0,1fr);
    }

    .jag-home-ad-media,
    .jag-public-ad-media {
        height: 100%;
        min-height: 130px;
    }

    .jag-public-pagination {
        justify-content: space-between;
        gap: 8px;
    }
}

/* ========================================================================== 
   JAG V2 - Refonte visuelle publique 2026-08-13
   ========================================================================== */

:root {
    --jag-green: #8DB243;
    --jag-green-dark: #3F5E0A;
    --jag-green-soft: #eef5df;
    --jag-bg: #f5f6f3;
    --jag-bg-alt: #ededed;
    --jag-card: #ffffff;
    --jag-text: #2f332c;
    --jag-muted: #73796f;
    --jag-border: #e1e5dc;
    --jag-shadow: 0 14px 36px rgba(43, 54, 30, .10);
    --jag-radius: 16px;
}

.jag-front-body {
    background: var(--jag-bg);
    color: var(--jag-text);
}

.jag-front-shell {
    width: min(1220px, calc(100% - 40px));
    margin-inline: auto;
}

.jag-site-header {
    position: sticky;
    top: 0;
    z-index: 80;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--jag-border);
    backdrop-filter: blur(12px);
}

.jag-site-header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.jag-site-brand {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--jag-text);
    text-decoration: none;
    white-space: nowrap;
}

.jag-site-brand img {
    display: block;
    max-width: 270px;
    max-height: 52px;
    object-fit: contain;
}

.jag-site-brand-mark {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--jag-green);
    color: #fff;
    font-size: 24px;
    transform: rotate(-14deg);
}

.jag-site-brand-name {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.025em;
}

.jag-site-brand-name strong { color: var(--jag-green); }

.jag-site-brand small {
    padding: 2px 6px;
    border: 1px solid var(--jag-green);
    border-radius: 999px;
    color: var(--jag-green-dark);
    font-weight: 800;
}

.jag-site-nav {
    display: flex;
    align-items: center;
    gap: 8px;
}

.jag-site-nav > a,
.jag-site-nav-text-button {
    border: 0;
    background: transparent;
    color: #4d514a;
    text-decoration: none;
    font: inherit;
    font-weight: 650;
    padding: 11px 12px;
    border-radius: 9px;
    cursor: pointer;
}

.jag-site-nav > a:hover,
.jag-site-nav > a.is-active,
.jag-site-nav-text-button:hover {
    color: var(--jag-green-dark);
    background: var(--jag-green-soft);
}

.jag-site-nav .jag-site-login {
    border: 1px solid #cbd9ad;
    color: var(--jag-green-dark);
}

.jag-site-nav .jag-site-deposit {
    color: #fff;
    background: linear-gradient(135deg, var(--jag-green), #6f9823);
    box-shadow: 0 8px 18px rgba(118, 153, 45, .20);
    padding-inline: 17px;
}

.jag-site-nav .jag-site-deposit:hover { color:#fff; background: var(--jag-green-dark); }
.jag-front-logout-form { margin: 0; }
.jag-mobile-menu-toggle { display: none; }

.jag-front-main { min-height: 58vh; }

.jag-hero-modern {
    position: relative;
    min-height: 330px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(39, 47, 32, .82), rgba(55, 62, 46, .45)),
        radial-gradient(circle at 80% 20%, rgba(141, 178, 67, .32), transparent 35%),
        linear-gradient(135deg, #77816d, #a3a995 45%, #6e725f);
}

/* Aucun maillage n'est ajouté au-dessus de l'image du bandeau. */

.jag-hero-modern.has-image {
    background:
        linear-gradient(90deg, rgba(39, 47, 32, .78), rgba(55, 62, 46, .42)),
        var(--jag-hero-image) center / cover no-repeat;
}

.jag-hero-modern.is-search-hidden {
    min-height: 260px;
}

.jag-hero-modern.is-search-hidden .jag-hero-modern-inner {
    padding-block: 54px;
}

.jag-hero-modern.is-search-hidden .jag-hero-modern-copy {
    margin-bottom: 0;
}

.jag-public-home.is-search-hidden .jag-home-modern-section {
    padding-top: 42px;
}

.jag-hero-modern-inner {
    position: relative;
    z-index: 2;
    padding-block: 52px 66px;
}

.jag-hero-modern-copy {
    text-align: center;
    color: #fff;
    max-width: 760px;
    margin: 0 auto 28px;
}

.jag-hero-badge {
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.22);
    font-size: 13px;
    font-weight: 700;
}

.jag-hero-modern h1 {
    margin: 13px 0 7px;
    font-size: clamp(34px, 5vw, 54px);
    line-height: 1.02;
    letter-spacing: -.04em;
}

.jag-hero-modern-copy p { margin: 0; font-size: 18px; color: rgba(255,255,255,.92); }

.jag-search-hero-card,
.jag-search-topbar-form {
    display: grid;
    grid-template-columns: 1.1fr .9fr .9fr auto;
    gap: 12px;
    align-items: end;
}

.jag-search-hero-card {
    position: relative;
    max-width: 1050px;
    margin: 0 auto -104px;
    padding: 21px 22px;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 17px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 24px 50px rgba(31,36,28,.24);
}

.jag-search-hero-card label,
.jag-search-topbar-form label,
.jag-search-filters label {
    display: grid;
    gap: 7px;
    color: #4f544b;
    font-size: 12px;
    font-weight: 750;
}

.jag-search-hero-card input,
.jag-search-hero-card select,
.jag-search-topbar-form input,
.jag-search-topbar-form select,
.jag-search-filters input,
.jag-search-filters select,
.jag-results-toolbar select {
    min-height: 46px;
    width: 100%;
    border: 1px solid #d9ded4;
    border-radius: 9px;
    background: #fff;
    color: var(--jag-text);
    padding: 10px 12px;
    font: inherit;
    outline: none;
}

.jag-search-hero-card input:focus,
.jag-search-hero-card select:focus,
.jag-search-topbar-form input:focus,
.jag-search-topbar-form select:focus,
.jag-search-filters input:focus,
.jag-search-filters select:focus {
    border-color: var(--jag-green);
    box-shadow: 0 0 0 3px rgba(141,178,67,.14);
}

.jag-search-submit {
    min-height: 46px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--jag-green), #78a42b);
    color: #fff;
    padding: 0 22px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}

.jag-search-submit:hover { background: var(--jag-green-dark); }

.jag-search-advanced-link {
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    color: #5d6457;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.jag-home-modern-section { padding-block: 72px 24px; }
.jag-home-modern-section + .jag-home-modern-section { padding-top: 36px; }

.jag-modern-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.jag-modern-section-heading span { color: var(--jag-green-dark); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; font-weight: 850; }
.jag-modern-section-heading h2 { margin: 3px 0 0; font-size: 25px; }
.jag-modern-section-heading a { color: var(--jag-green-dark); font-weight: 750; text-decoration: none; }

.jag-category-card-grid {
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: 11px;
}

.jag-category-card {
    min-height: 132px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 15px 9px;
    text-align: center;
    border: 1px solid var(--jag-border);
    border-radius: 14px;
    background: #fff;
    color: var(--jag-text);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(45,56,35,.045);
    transition: .18s ease;
}

.jag-category-card:hover { transform: translateY(-3px); border-color: #bace92; box-shadow: var(--jag-shadow); }
.jag-category-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--jag-green-soft); color:var(--jag-green-dark); font-size:24px; font-weight:900; }
.jag-category-card strong { font-size: 13px; }
.jag-category-card small { color: var(--jag-muted); }
.jag-category-card.is-more { background: #f9fbf5; }

.jag-home-map-band { margin-top: 20px; background: linear-gradient(90deg, #f0f2ed, #fafbf8); border-block: 1px solid #e6e9e2; }
.jag-home-map-layout { display:grid; grid-template-columns: .78fr 1.05fr 1.15fr; align-items:center; min-height:310px; gap: 36px; padding-block:34px; }
.jag-home-intro-copy.is-map-disabled { grid-column: span 2; max-width: 760px; }
.jag-home-map-copy h2, .jag-home-intro-copy h2 { margin: 4px 0 10px; font-size: 25px; }
.jag-home-map-copy p, .jag-home-intro-copy p { color:#5f655b; line-height:1.65; }
.jag-map-pin { color: var(--jag-green); font-size: 22px; }
.jag-brand-green { color: var(--jag-green-dark); }
.jag-home-seo-extra { margin-top:12px; color:#5f655b; line-height:1.65; }

.jag-france-visual { display:block; max-width:360px; margin:auto; }
.jag-france-visual svg { width:100%; height:auto; overflow:visible; }
.jag-france-shape { fill:var(--jag-map-fill, #3F5E0A); stroke:#fff; stroke-width:4; filter: drop-shadow(0 9px 13px rgba(63,94,10,.15)); }
.jag-france-lines { fill:none; stroke:rgba(255,255,255,.72); stroke-width:2; }
.jag-france-visual circle { fill:var(--jag-map-fill, var(--jag-green-dark)); stroke:#fff; stroke-width:4; }
.jag-france-visual text { fill:#fff; font-size:12px; text-anchor:middle; font-weight:800; }

.jag-home-seo-heading { padding: 18px 0 0; text-align:center; color:#60665b; }
.jag-home-seo-heading h1,
.jag-home-seo-heading p { margin:0; font-size:18px; }

.jag-modern-ad-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.jag-modern-ad-card {
    overflow: hidden;
    border: 1px solid var(--jag-border);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(43,53,34,.055);
}

.jag-modern-ad-media { position:relative; }
.jag-modern-ad-image { position:relative; display:grid; place-items:center; aspect-ratio: 4/3; overflow:hidden; background:#eef0eb; color:#90978b; text-decoration:none; }
.jag-modern-ad-image img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.jag-modern-ad-card:hover .jag-modern-ad-image img { transform:scale(1.035); }
.jag-modern-ad-body { padding:12px 12px 14px; }
.jag-modern-ad-category { display:block; color:var(--jag-green-dark); font-size:11px; font-weight:800; margin-bottom:5px; }
.jag-modern-ad-body h3 { margin:0 0 5px; font-size:15px; line-height:1.3; min-height:39px; }
.jag-modern-ad-body h3 a { color:var(--jag-text); text-decoration:none; }
.jag-modern-ad-body p { margin:0 0 7px; color:var(--jag-muted); font-size:12px; }
.jag-modern-ad-body > strong { color:#6f9e1e; font-size:15px; }
.jag-ad-heart { position:absolute; top:9px; right:9px; z-index:3; display:grid; place-items:center; width:32px; height:32px; padding:0; border:1px solid #dfe3da; border-radius:50%; background:#fff; color:#656b60; box-shadow:0 3px 10px rgba(0,0,0,.14); font:inherit; font-size:20px; line-height:1; text-decoration:none; cursor:pointer; transition:transform .15s ease, color .15s ease, background .15s ease, border-color .15s ease; }
.jag-ad-heart:hover { transform:scale(1.08); color:#8a1f1f; }
.jag-ad-heart.is-active { color:#b42323; background:#fff5f5; border-color:#e8b8b8; }
.jag-ad-favorite-form { position:absolute; top:9px; right:9px; z-index:3; margin:0; padding:0; }
.jag-ad-favorite-form .jag-ad-heart { position:static; }
.jag-ad-heart-login { display:grid; }

.jag-favorites-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:38px 0 24px; }
.jag-favorites-heading h1 { margin:5px 0 8px; font-size:clamp(28px, 4vw, 40px); }
.jag-favorites-heading p { margin:0; color:var(--jag-muted); }
.jag-front-eyebrow { color:var(--jag-green-dark); font-size:12px; font-weight:800; letter-spacing:.08em; }
.jag-favorites-heading .jag-search-submit,
.jag-front-empty-state .jag-search-submit { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.jag-favorites-content { padding-bottom:48px; }
.jag-favorites-summary { margin-bottom:14px; }
.jag-favorites-grid { margin-bottom:24px; }
.jag-front-alert { margin-bottom:18px; padding:12px 14px; border-radius:9px; }
.jag-front-alert-danger { border:1px solid #efc7c2; background:#fff5f3; color:#9b2d24; }


/* Recherche / carte */
.jag-search-page { background:#f7f8f5; padding-bottom:0; }
.jag-search-topbar { background:#fff; border-bottom:1px solid var(--jag-border); padding:15px 0; }
.jag-search-topbar-form { grid-template-columns: 1.35fr 1fr 1fr .78fr auto; }
.jag-search-breadcrumb { display:flex; gap:10px; align-items:center; padding:16px 0 13px; font-size:12px; color:#7a8174; }
.jag-search-breadcrumb a { color:#6d7468; text-decoration:none; }
.jag-search-layout { display:grid; grid-template-columns: 285px minmax(0,1fr); gap:18px; align-items:start; padding-bottom:38px; }

.jag-search-filters { position:sticky; top:92px; border:1px solid var(--jag-border); border-radius:13px; background:#fff; overflow:hidden; }
.jag-search-filters form { display:block; }
.jag-filter-title-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:16px; border-bottom:1px solid var(--jag-border); }
.jag-filter-title-row h1 { margin:0; font-size:16px; }
.jag-filter-title-row a { color:var(--jag-green-dark); text-decoration:none; font-size:12px; }
.jag-filter-section { padding:14px 16px; border-bottom:1px solid var(--jag-border); display:grid; gap:11px; }
.jag-filter-section h2 { margin:0; font-size:13px; }
.jag-filter-two-cols { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.jag-filter-check { grid-template-columns:auto 1fr auto !important; align-items:center; font-weight:600 !important; }
.jag-filter-check input { width:auto; min-height:0; }
.jag-filter-check span { padding:4px 7px; border-radius:6px; background:#f1f2ee; color:#8e948a; }
.jag-filter-pills { display:flex; gap:6px; flex-wrap:wrap; }
.jag-filter-pills label { display:inline-flex; }
.jag-filter-pills input { position:absolute; opacity:0; pointer-events:none; }
.jag-filter-pills span { display:inline-flex; padding:7px 10px; border:1px solid #dfe3da; border-radius:7px; background:#fff; font-size:12px; cursor:pointer; }
.jag-filter-pills input:checked + span { border-color:var(--jag-green); background:var(--jag-green); color:#fff; }
.jag-specific-filter-preview p { margin:0; color:#7c8277; font-size:12px; line-height:1.5; }
.jag-filter-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:9px; padding:15px 16px; }
.jag-filter-reset { display:grid; place-items:center; min-height:44px; border:1px solid #dce1d7; border-radius:8px; color:#656b61; text-decoration:none; font-weight:700; }

.jag-search-results { min-width:0; }
.jag-results-toolbar { min-height:49px; display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:10px; }
.jag-results-toolbar > div:first-child { display:grid; gap:2px; }
.jag-results-toolbar small { color:var(--jag-muted); }
.jag-results-toolbar-actions { display:flex; align-items:center; gap:6px; }
.jag-results-toolbar-actions label { display:flex; align-items:center; gap:7px; color:#73796e; font-size:12px; }
.jag-results-toolbar-actions select { min-height:38px; padding:6px 8px; width:auto; }
.jag-results-toolbar-actions button { min-height:38px; padding:0 12px; border:1px solid #dfe3da; background:#fff; border-radius:8px; color:#6b7167; cursor:pointer; }
.jag-results-toolbar-actions button.is-active { color:var(--jag-green-dark); background:var(--jag-green-soft); border-color:#cfddaF; }

.jag-results-map { position:relative; height:390px; overflow:hidden; border:1px solid #d8dfd1; border-radius:14px; background:linear-gradient(135deg,#b9ddec,#cfdfbd 56%,#d6d8bd); margin-bottom:15px; }
.jag-map-water { position:absolute; inset:0; background:radial-gradient(circle at 18% 70%, rgba(103,180,218,.48), transparent 38%), linear-gradient(30deg,rgba(255,255,255,.08),rgba(75,119,44,.06)); }
.jag-results-france { position:absolute; width:57%; height:92%; left:21%; top:4%; }
.jag-results-france > path:first-child { fill:rgba(215,225,182,.85); stroke:#fff; stroke-width:4; }
.jag-results-france-lines { fill:none; stroke:rgba(255,255,255,.75); stroke-width:2; }
.jag-map-cluster { position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; min-width:46px; height:46px; padding:0 8px; border-radius:999px; background:var(--jag-green-dark); color:#fff; text-decoration:none; font-size:11px; font-weight:850; border:3px solid #fff; box-shadow:0 6px 16px rgba(47,70,14,.28); }
.jag-map-cluster:hover { background:var(--jag-green); transform:translate(-50%,-50%) scale(1.06); }
.jag-map-controls { position:absolute; top:12px; left:12px; display:grid; gap:5px; }
.jag-map-controls button { width:34px; height:34px; border:1px solid #d7ddd1; border-radius:7px; background:#fff; font-size:20px; cursor:pointer; }
.jag-map-caption { position:absolute; right:12px; bottom:12px; padding:8px 11px; border-radius:8px; background:rgba(255,255,255,.94); color:#62685e; font-size:11px; }
.jag-search-ad-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.jag-modern-pagination { display:flex; align-items:center; justify-content:center; gap:18px; padding:22px 0 6px; }
.jag-modern-pagination a { color:var(--jag-green-dark); text-decoration:none; font-weight:750; }
.jag-modern-pagination span { color:#747a70; }

/* Footer */
.jag-modern-footer { margin-top:0; border-top:1px solid #dfe3db; background:#fff; }
.jag-modern-footer-grid { display:grid; grid-template-columns:1.45fr repeat(3,1fr); gap:42px; padding-block:32px; }
.jag-modern-footer-grid h3 { margin:0 0 10px; font-size:13px; }
.jag-modern-footer-grid > div { display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.jag-modern-footer-grid a, .jag-footer-link-button { color:#6a7065; font-size:12px; text-decoration:none; background:none; border:0; padding:0; font:inherit; cursor:pointer; text-align:left; }
.jag-modern-footer-grid a:hover, .jag-footer-link-button:hover { color:var(--jag-green-dark); text-decoration:underline; }
.jag-footer-brand-block strong { font-size:16px; }
.jag-footer-brand-block p { margin:0; color:#777d72; line-height:1.5; max-width:300px; font-size:12px; }
.jag-footer-rss { color:#aa641c !important; margin-top:5px; }
.jag-modern-footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-block:15px 22px; border-top:1px solid #eef0eb; color:#878c83; font-size:11px; }

/* Cookies */
.jag-cookie-compact { position:fixed; left:24px; bottom:24px; z-index:120; width:min(340px,calc(100vw - 48px)); padding:19px; border:1px solid #dfe4d9; border-radius:14px; background:#fff; box-shadow:0 18px 55px rgba(30,37,25,.20); }
.jag-cookie-compact h2 { margin:0 25px 8px 0; font-size:15px; }
.jag-cookie-compact p { margin:0; color:#6f756b; font-size:12px; line-height:1.55; }
.jag-cookie-compact .jag-cookie-required-note { margin-top:8px; color:#4d5e32; }
.jag-cookie-compact .jag-cookie-required-note strong { color:#355006; }
.jag-cookie-close { position:absolute; right:11px; top:9px; border:0; background:transparent; color:#8b9187; font-size:21px; cursor:pointer; }
.jag-cookie-compact-actions { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:10px; margin-top:15px; }
.jag-cookie-compact-actions .jag-cookie-text-action { margin-right:auto; }
.jag-cookie-text-action { border:0; background:transparent; padding:0; color:#62685e; text-decoration:underline; cursor:pointer; }
.jag-cookie-primary,.jag-cookie-secondary { min-height:40px; border-radius:8px; padding:0 17px; font-weight:800; cursor:pointer; }
.jag-cookie-primary { border:1px solid var(--jag-green); background:var(--jag-green); color:#fff; }
.jag-cookie-secondary { border:1px solid #d9ddd4; background:#fff; color:#62685e; }
.jag-cookie-floating { position:fixed; z-index:115; right:22px; bottom:22px; width:48px; height:48px; border:0; border-radius:50%; background:var(--jag-green); color:#fff; box-shadow:0 8px 22px rgba(65,94,20,.28); cursor:pointer; font-size:20px; }
.jag-cookie-modal[hidden], .jag-cookie-compact[hidden] { display:none !important; }
.jag-cookie-modal { position:fixed; inset:0; z-index:150; display:grid; place-items:center; padding:24px; }
.jag-cookie-modal-backdrop { position:absolute; inset:0; background:rgba(22,26,19,.66); }
.jag-cookie-dialog { position:relative; z-index:2; width:min(840px,100%); max-height:90vh; overflow:auto; padding:30px; border-radius:17px; background:#fff; box-shadow:0 30px 80px rgba(0,0,0,.28); }
.jag-cookie-dialog h2 { margin:0 0 9px; text-align:center; font-size:20px; }
.jag-cookie-dialog > p { margin:0 auto 24px; max-width:650px; text-align:center; color:#747a70; line-height:1.6; }
.jag-cookie-option { position:relative; display:grid !important; grid-template-columns:1fr auto; align-items:center; gap:20px; min-height:72px; padding:13px 0; border-top:1px solid #edf0ea; }
.jag-cookie-option div { display:grid; gap:4px; }
.jag-cookie-option strong { font-size:14px; }
.jag-cookie-option small { color:#83897e; font-weight:400; }
.jag-cookie-option input { position:absolute; opacity:0; pointer-events:none; }
.jag-cookie-switch { width:62px; height:32px; border-radius:999px; background:#c6c9c5; position:relative; cursor:pointer; transition:.2s; }
.jag-cookie-switch::after { content:''; position:absolute; top:4px; left:4px; width:24px; height:24px; border-radius:50%; background:#fff; transition:.2s; box-shadow:0 2px 5px rgba(0,0,0,.16); }
.jag-cookie-option input:checked + .jag-cookie-switch { background:var(--jag-green); }
.jag-cookie-option input:checked + .jag-cookie-switch::after { left:34px; }
.jag-cookie-option input:disabled + .jag-cookie-switch { opacity:.45; cursor:not-allowed; }
.jag-cookie-option.is-required input:checked + .jag-cookie-switch { background:var(--jag-green); opacity:1; cursor:not-allowed; }
.jag-cookie-required { min-width:100px; text-align:center; padding:9px 13px; border-radius:8px; background:#c6c8ca; color:#fff; }
.jag-cookie-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
.jag-cookie-modal-open { overflow:hidden; }

@media (max-width: 1100px) {
    .jag-site-nav { gap:2px; }
    .jag-site-nav > a, .jag-site-nav-text-button { padding-inline:8px; font-size:13px; }
    .jag-category-card-grid { grid-template-columns:repeat(5,1fr); }
    .jag-modern-ad-grid { grid-template-columns:repeat(3,1fr); }
    .jag-search-ad-grid { grid-template-columns:repeat(3,1fr); }
    .jag-home-map-layout { grid-template-columns:1fr 1fr; }
    .jag-home-intro-copy { grid-column:1/-1; text-align:center; max-width:850px; margin:auto; }
}

@media (max-width: 820px) {
    .jag-front-shell { width:min(100% - 24px,1220px); }
    .jag-mobile-menu-toggle { display:block; border:0; background:var(--jag-green-soft); color:var(--jag-green-dark); border-radius:8px; width:42px; height:42px; font-size:22px; }
    .jag-site-nav { display:none; position:absolute; top:76px; left:12px; right:12px; flex-direction:column; align-items:stretch; padding:12px; border:1px solid var(--jag-border); border-radius:12px; background:#fff; box-shadow:var(--jag-shadow); }
    .jag-site-nav.is-open { display:flex; }
    .jag-search-hero-card, .jag-search-topbar-form { grid-template-columns:1fr; }
    .jag-search-hero-card { margin-bottom:-170px; padding-bottom:52px; }
    .jag-home-modern-section { padding-top:190px; }
    .jag-home-modern-section + .jag-home-modern-section { padding-top:30px; }
    .jag-category-card-grid { grid-template-columns:repeat(3,1fr); }
    .jag-home-map-layout { grid-template-columns:1fr; text-align:center; }
    .jag-modern-ad-grid, .jag-search-ad-grid { grid-template-columns:repeat(2,1fr); }
    .jag-search-layout { grid-template-columns:1fr; }
    .jag-search-filters { position:static; }
    .jag-results-toolbar { align-items:flex-start; flex-direction:column; }
    .jag-results-toolbar-actions { flex-wrap:wrap; }
    .jag-results-map { height:330px; }
    .jag-modern-footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 520px) {
    .jag-site-brand-name { font-size:17px; }
    .jag-site-brand small { display:none; }
    .jag-hero-modern { min-height:390px; }
    .jag-hero-modern h1 { font-size:36px; }
    .jag-category-card-grid { grid-template-columns:repeat(2,1fr); }
    .jag-modern-ad-grid, .jag-search-ad-grid { grid-template-columns:1fr; }
    .jag-home-modern-section { padding-top:220px; }
    .jag-modern-section-heading { align-items:flex-start; flex-direction:column; }
    .jag-results-map { height:270px; }
    .jag-modern-footer-grid { grid-template-columns:1fr; }
    .jag-modern-footer-bottom { flex-direction:column; }
    .jag-cookie-dialog { padding:24px 18px; }
    .jag-cookie-dialog-actions { flex-direction:column; }
}


/* Pages d'information publiques */
.jag-info-page { padding: 34px 0 70px; background: #f3f4f1; min-height: 56vh; }
.jag-info-shell { max-width: 1060px; }
.jag-info-breadcrumb { display:flex; gap:10px; align-items:center; margin-bottom:18px; font-size:14px; color:#6b7280; }
.jag-info-breadcrumb a { color:#557a16; text-decoration:none; }
.jag-info-card { background:#fff; border:1px solid #e1e6dc; border-radius:18px; box-shadow:0 12px 34px rgba(44,62,28,.07); overflow:hidden; }
.jag-info-card header { padding:30px 34px 24px; border-bottom:1px solid #edf0ea; background:linear-gradient(135deg,#fff,#f7faef); }
.jag-info-card header > span { display:block; color:#7ca52c; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.jag-info-card h1 { margin:0; color:#2f382a; font-size:34px; line-height:1.15; }
.jag-info-content { padding:32px 34px; color:#4b5563; font-size:16px; line-height:1.8; white-space:normal; }
.jag-info-contact { margin:0 34px 34px; padding:18px 20px; border-radius:12px; background:#f4f8ea; border:1px solid #dbe8bd; display:flex; flex-direction:column; gap:6px; }
.jag-info-contact a { color:#5e861c; font-weight:700; }
@media (max-width:700px) { .jag-info-card header,.jag-info-content { padding-left:22px; padding-right:22px; } .jag-info-card h1{font-size:28px;} .jag-info-contact{margin-left:22px;margin-right:22px;} }

/* =========================================================
   JAG 001.8 - Messages publics + retour en haut
========================================================= */

.jag-public-list-warning {
    margin: 0 0 14px;
    padding: 11px 14px;
    border: 1px solid #eed7a5;
    border-radius: 10px;
    background: #fff9eb;
    color: #715820;
    font-size: 14px;
}

.jag-scroll-top {
    position: fixed;
    z-index: 1250;
    right: 22px;
    bottom: 22px;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #8DB243;
    color: #fff;
    box-shadow: 0 10px 28px rgba(40, 55, 24, .24);
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}

.jag-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.jag-scroll-top:hover,
.jag-scroll-top:focus-visible {
    background: #3F5E0A;
}

body:has(.jag-cookie-floating) .jag-scroll-top {
    bottom: 78px;
}

@media (max-width: 720px) {
    .jag-scroll-top {
        right: 14px;
        bottom: 14px;
        width: 42px;
        height: 42px;
    }

    body:has(.jag-cookie-floating) .jag-scroll-top {
        bottom: 70px;
    }
}

/* =========================================================
   JAG 001.6 - Image de fond du bandeau d'accueil
========================================================= */

.jag-hero-modern.has-image {
    background-image: var(--jag-hero-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

@media (max-width: 700px) {
    .jag-favorites-heading { align-items:flex-start; flex-direction:column; }
}

/* JAG V2 001.9 — résultats pleine largeur : suppression du panneau de recherche latéral */
.jag-search-layout.jag-search-layout-full {
    display: block;
    padding-bottom: 38px;
}

.jag-search-layout-full .jag-search-results {
    width: 100%;
    min-width: 0;
}

.jag-active-search-region {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 12px;
    padding: 10px 14px;
    border: 1px solid #dce5cf;
    border-radius: 10px;
    background: #f5f9ec;
    color: #4d5745;
    font-size: 13px;
}

.jag-active-search-region strong {
    color: var(--jag-green-dark);
}

.jag-active-search-region a {
    color: var(--jag-green-dark);
    font-weight: 750;
    text-decoration: none;
}

.jag-active-search-region a:hover {
    text-decoration: underline;
}

@media (max-width: 620px) {
    .jag-active-search-region {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* =========================================================
   JAG V2 002.1 — recherche publique simplifiée et fidèle V1
========================================================= */

/* Les en-têtes de catégories/régions/départements restent visuellement distincts. */
.jag-search-hero-card select option:disabled,
.jag-search-topbar-form select option:disabled {
    color: #ffffff;
    background: #a9a9a9;
    font-weight: 800;
}

/* Le bandeau utilise l'image brute : aucun voile, aucun maillage. */
.jag-hero-modern.has-image {
    background-image: var(--jag-hero-image) !important;
}

/* JAG V2 002.7.3 : le tri réel est revenu dans la barre de résultats. */
.jag-results-toolbar-simple {
    justify-content: space-between;
}

.jag-results-toolbar-actions form {
    display: flex;
    align-items: center;
    margin: 0;
}

/* Les favoris visuels ont été retirés des cartes ; aucune réserve d'espace. */
.jag-modern-ad-media {
    position: relative;
}


/* Options payantes actives — JAG V2 002.2.4 */

/*
 * En tête : aucun libellé public, l'effet est uniquement le classement.
 * Premium : mise en valeur discrète sans libellé.
 * Urgente : pastille professionnelle intégrée DANS la photo.
 * Encadrée : cadre renforcé et immédiatement visible.
 */

.jag-modern-ad-card,
.jag-front-ad-card,
.jag-front-ad-titlebar {
    position: relative;
}

/* Encadrée : vraie mise en avant visuelle autour de toute la carte. */
.jag-modern-ad-card.is-paid-framed,
.jag-front-ad-card.is-paid-framed,
.jag-front-ad-titlebar.is-paid-framed {
    border: 3px solid #3f5e0a !important;
    outline: 3px solid rgba(141, 178, 67, .48);
    outline-offset: 2px;
    box-shadow:
        0 14px 30px rgba(63, 94, 10, .24),
        0 0 0 1px rgba(255,255,255,.92) inset !important;
}

.jag-modern-ad-card.is-paid-framed::before,
.jag-front-ad-card.is-paid-framed::before,
.jag-front-ad-titlebar.is-paid-framed::before {
    content: "";
    position: absolute;
    z-index: 5;
    inset: 3px;
    border: 1px solid rgba(141, 178, 67, .58);
    border-radius: inherit;
    pointer-events: none;
}

/* Premium : fond légèrement valorisé, sans écrire « Premium ». */
.jag-modern-ad-card.is-paid-premium,
.jag-front-ad-card.is-paid-premium,
.jag-front-ad-titlebar.is-paid-premium {
    background: linear-gradient(180deg, #fff9df 0%, #fffdf4 35%, #ffffff 100%);
}

.jag-modern-ad-card.is-paid-premium .jag-modern-ad-body,
.jag-front-ad-card.is-paid-premium .jag-front-ad-card-body {
    background: linear-gradient(180deg, rgba(255,249,223,.88), rgba(255,255,255,.98));
}

/* Urgente : badge compact superposé à l'image, jamais au-dessus de celle-ci. */
.jag-modern-ad-card.is-paid-urgent .jag-modern-ad-image::after,
.jag-front-ad-card.is-paid-urgent .jag-front-ad-card-media::after {
    content: "URGENT";
    position: absolute;
    z-index: 6;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 25px;
    padding: 4px 9px;
    border: 1px solid rgba(255,255,255,.92);
    border-radius: 6px;
    background: #a62920;
    color: #fff;
    box-shadow: 0 4px 12px rgba(98, 21, 16, .28);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .07em;
    pointer-events: none;
}

.jag-front-ad-card-media {
    position: relative;
}

/* Sur la fiche annonce, le badge reste dans la ligne d'informations. */
.jag-front-ad-labels .jag-paid-option-badge.is-urgent {
    position: static;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 9px;
    border: 0;
    border-radius: 6px;
    background: #a62920;
    color: #fff;
    box-shadow: none;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .06em;
}

.jag-front-ad-titlebar.is-paid-urgent h1 {
    color: inherit;
}


/* --------------------------------------------------------------------------
   Régie publicitaire JAG V2 — 002.5.0
   -------------------------------------------------------------------------- */
.jag-advertising-slot{position:relative;width:min(1180px,calc(100% - 32px));margin:18px auto;padding:8px;border:1px solid #e2e8da;border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(38,54,22,.06);overflow:hidden}.jag-advertising-label{position:absolute;z-index:3;left:10px;top:8px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.9);border:1px solid #e0e5da;color:#7c8277;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.jag-advertising-banner{display:block;min-height:58px;border-radius:8px;overflow:hidden;background:#f5f7f1}.jag-advertising-banner picture,.jag-advertising-banner img{display:block;width:100%}.jag-advertising-banner img{height:auto;max-height:220px;object-fit:cover}.jag-advertising-external{min-height:80px;display:grid;place-items:center}.jag-advertising-consent-placeholder{width:100%;padding:24px 16px;text-align:center;background:#f8faf5;color:#70786a;font-size:13px;border-radius:8px}.jag-search-ad-grid .jag-advertising-slot-search_in_results{grid-column:1/-1;width:100%;margin:8px 0 18px}.jag-front-ad-page>.jag-advertising-slot{width:100%;margin:16px 0}.jag-advertising-slot.is-mobile-only{display:none}@media(max-width:700px){.jag-advertising-slot{width:calc(100% - 20px);margin:12px auto;padding:6px}.jag-advertising-slot.is-desktop-only{display:none}.jag-advertising-slot.is-mobile-only{display:block}.jag-advertising-banner img{max-height:180px}}


/* JAG V2 002.7.0 — accueil sans barre de recherche */
@media (max-width: 820px) {
    .jag-public-home.is-search-hidden .jag-home-modern-section {
        padding-top: 36px;
    }
}

@media (max-width: 520px) {
    .jag-hero-modern.is-search-hidden {
        min-height: 300px;
    }

    .jag-public-home.is-search-hidden .jag-home-modern-section {
        padding-top: 30px;
    }
}


/* =========================================================
   JAG V2 002.7.1 — Recherche et navigation catégories
========================================================= */

.jag-search-category-browser {
    margin: 0 0 14px;
    padding: 16px;
    border: 1px solid var(--jag-border);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(37, 52, 23, .045);
}

.jag-search-category-browser-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.jag-search-category-browser-head > div {
    display: grid;
    gap: 2px;
}

.jag-search-category-browser-head span {
    color: var(--jag-green-dark);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.jag-search-category-browser-head strong {
    font-size: 15px;
}

.jag-search-category-browser-head > a {
    color: var(--jag-green-dark);
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.jag-search-category-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.jag-search-category-links a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid #dfe5d7;
    border-radius: 999px;
    background: #fafbf8;
    color: #596152;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: .16s ease;
}

.jag-search-category-links a:hover {
    border-color: #b9cf97;
    background: #f3f8ea;
    color: var(--jag-green-dark);
}

.jag-search-category-links a.is-active {
    border-color: var(--jag-green-dark);
    background: var(--jag-green-dark);
    color: #fff;
}

.jag-active-search-filters {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid #dce5cf;
    border-radius: 11px;
    background: #f7faF2;
}

.jag-active-search-filters-label {
    display: grid;
    gap: 1px;
    min-width: 105px;
}

.jag-active-search-filters-label strong {
    color: #394432;
    font-size: 12px;
}

.jag-active-search-filters-label span {
    color: #7a8274;
    font-size: 10px;
}

.jag-active-search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.jag-active-search-chips a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 31px;
    padding: 5px 9px;
    border: 1px solid #d5dfc8;
    border-radius: 8px;
    background: #fff;
    color: #586150;
    font-size: 11px;
    text-decoration: none;
}

.jag-active-search-chips a strong {
    color: var(--jag-green-dark);
}

.jag-active-search-chips a > span {
    display: grid;
    place-items: center;
    width: 17px;
    height: 17px;
    margin-left: 2px;
    border-radius: 50%;
    background: #edf2e7;
    color: #6d7566;
    font-size: 13px;
    line-height: 1;
}

.jag-active-search-chips a:hover {
    border-color: #b9ce99;
}

.jag-active-search-reset {
    color: var(--jag-green-dark);
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.jag-results-toolbar-simple small strong {
    color: var(--jag-green-dark);
}

@media (max-width: 1050px) {
    .jag-search-topbar-form {
        grid-template-columns: 1.3fr 1fr 1fr auto;
    }

    .jag-search-topbar-form label:nth-of-type(4) {
        grid-column: 1 / 2;
    }

    .jag-search-topbar-form .jag-search-submit {
        grid-column: 4 / 5;
        grid-row: 1 / 2;
    }
}

@media (max-width: 820px) {
    .jag-search-topbar-form {
        grid-template-columns: 1fr 1fr;
    }

    .jag-search-topbar-form label,
    .jag-search-topbar-form label:nth-of-type(4),
    .jag-search-topbar-form .jag-search-submit {
        grid-column: auto;
        grid-row: auto;
    }

    .jag-active-search-filters {
        grid-template-columns: 1fr auto;
    }

    .jag-active-search-chips {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 560px) {
    .jag-search-topbar-form {
        grid-template-columns: 1fr;
    }

    .jag-search-category-browser-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .jag-search-category-links {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: thin;
    }

    .jag-search-category-links a {
        flex: 0 0 auto;
    }

    .jag-active-search-filters {
        grid-template-columns: 1fr;
    }

    .jag-active-search-filters-label,
    .jag-active-search-chips {
        grid-column: 1;
        grid-row: auto;
    }

    .jag-active-search-reset {
        justify-self: start;
    }
}

/* =========================================================
   JAG V2 002.7.4 — Fiche annonce mobile + favoris
   Corrige la collision avec les anciennes règles de grille.
========================================================= */
.jag-front-detail-favorite-form {
    margin: 0;
    width: 100%;
}

.jag-front-detail-favorite {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    box-sizing: border-box;
    text-decoration: none;
    font: inherit;
}

.jag-front-detail-favorite > span {
    color: #9a2626;
    font-size: 18px;
    line-height: 1;
}

.jag-front-detail-favorite.is-active {
    border-color: #e3b2b2;
    background: #fff5f5;
    color: #922424;
    font-weight: 700;
}

.jag-front-detail-favorite-login {
    color: #4a4f54;
}

@media (max-width: 960px) {
    /*
     * Les anciennes règles .jag-front-ad-center/.jag-front-ad-right
     * plaçaient encore les enfants sur deux colonnes, même après le passage
     * de .jag-front-ad-grid-clean à une seule colonne. Cela créait une
     * seconde colonne implicite et réduisait le contenu principal à quelques
     * pixels sur téléphone.
     */
    .jag-front-ad-grid-clean > .jag-front-ad-center,
    .jag-front-ad-grid-clean > .jag-front-ad-right {
        grid-column: 1 / -1;
        grid-row: auto;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .jag-front-ad-grid-clean > .jag-front-ad-center {
        order: 1;
    }

    .jag-front-ad-grid-clean > .jag-front-ad-right {
        order: 2;
    }

    .jag-front-ad-grid-clean .jag-front-card,
    .jag-front-ad-grid-clean .jag-front-contact-panel,
    .jag-front-ad-grid-clean .jag-front-side-panel {
        min-width: 0;
        max-width: 100%;
    }

    .jag-front-ad-description {
        overflow-wrap: anywhere;
        word-break: normal;
    }
}

@media (max-width: 600px) {
    .jag-front-ad-page {
        overflow-x: clip;
    }

    .jag-front-ad-grid-clean {
        width: 100%;
        min-width: 0;
    }

    .jag-front-location-block,
    .jag-front-location-copy,
    .jag-front-location-map,
    .jag-front-location-map-empty,
    .jag-front-location-map iframe {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .jag-front-location-map iframe,
    .jag-front-location-map,
    .jag-front-location-map-empty {
        min-height: 230px;
    }

    .jag-front-gallery-main,
    .jag-front-gallery-empty {
        width: 100%;
        min-width: 0;
    }
}


/* =========================================================
   JAG V2 002.7.6.1 — Accueil : correction du chevauchement mobile
   Le formulaire reste intégralement dans le bandeau sur petit écran ;
   la section catégories n'a plus à réserver 190/220px de compensation.
========================================================= */
@media (max-width: 820px) {
    .jag-public-home:not(.is-search-hidden) .jag-search-hero-card {
        margin-bottom: 0;
    }

    .jag-public-home:not(.is-search-hidden) .jag-home-modern-section {
        padding-top: 36px;
    }

    .jag-public-home:not(.is-search-hidden) .jag-home-modern-section + .jag-home-modern-section {
        padding-top: 30px;
    }
}

@media (max-width: 520px) {
    .jag-public-home:not(.is-search-hidden) .jag-home-modern-section {
        padding-top: 28px;
    }
}


/* =========================================================
   JAG V2 002.7.6.9 — Page 404 publique
========================================================= */
.jag-404-page {
    min-height: 58vh;
    padding: 46px 0 72px;
    background:
        radial-gradient(circle at 15% 0%, rgba(142,178,67,.14), transparent 32%),
        linear-gradient(180deg, #f7f8f4 0%, #eef1ea 100%);
}
.jag-404-shell { max-width: 1040px; }
.jag-404-card {
    position: relative;
    overflow: hidden;
    padding: 44px 46px 38px;
    border: 1px solid #dfe5d8;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(47,63,34,.09);
    text-align: center;
}
.jag-404-code {
    position: absolute;
    top: -34px;
    right: 24px;
    color: rgba(63,94,10,.055);
    font-size: clamp(130px, 20vw, 230px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.08em;
    pointer-events: none;
    user-select: none;
}
.jag-404-kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 12px;
    border: 1px solid #d8e6bb;
    border-radius: 999px;
    background: #f4f8ea;
    color: #557a16;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.jag-404-card h1 {
    position: relative;
    max-width: 760px;
    margin: 18px auto 14px;
    color: #2f382a;
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.12;
}
.jag-404-lead {
    position: relative;
    max-width: 720px;
    margin: 0 auto;
    color: #687064;
    font-size: 17px;
    line-height: 1.7;
}
.jag-404-actions {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 28px;
}
.jag-404-primary,
.jag-404-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 19px;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.jag-404-primary {
    background: #7da928;
    color: #fff;
    box-shadow: 0 8px 20px rgba(88,123,27,.18);
}
.jag-404-primary:hover { background: #638b1c; transform: translateY(-1px); }
.jag-404-secondary {
    border: 1px solid #cfd9c5;
    background: #fff;
    color: #405024;
}
.jag-404-secondary:hover { background: #f6f9ef; transform: translateY(-1px); }
.jag-404-links {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid #edf0ea;
}
.jag-404-links a {
    display: grid;
    grid-template-columns: 38px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 15px;
    border: 1px solid #e3e8de;
    border-radius: 13px;
    background: #fbfcf9;
    color: #38402f;
    text-align: left;
    text-decoration: none;
}
.jag-404-links a > span {
    grid-row: 1 / 3;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #edf5de;
    color: #557a16;
    font-size: 18px;
    font-weight: 900;
}
.jag-404-links strong { font-size: 14px; }
.jag-404-links small { overflow-wrap: anywhere; color: #7b8277; font-size: 12px; line-height: 1.35; }
.jag-404-links a:hover { border-color: #bed297; background: #f7faef; }
.jag-404-seo-note { margin: 24px 0 0; color: #9aa095; font-size: 12px; }
@media (max-width: 900px) {
    .jag-404-links { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
    .jag-404-page { padding: 24px 0 44px; }
    .jag-404-card { padding: 32px 20px 28px; border-radius: 16px; }
    .jag-404-code { top: -12px; right: 10px; font-size: 118px; }
    .jag-404-card h1 { font-size: 31px; }
    .jag-404-lead { font-size: 15px; }
    .jag-404-actions { flex-direction: column; }
    .jag-404-primary, .jag-404-secondary { width: 100%; box-sizing: border-box; }
    .jag-404-links { grid-template-columns: 1fr; }
}

/* JAG V2 002.7.9 — partage social des annonces */
.jag-front-share-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.jag-front-share-actions .jag-front-mini-action{justify-content:center}
.jag-front-share-facebook{font-weight:800}
.jag-front-share-facebook>span,.jag-front-share-whatsapp>span{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;font-weight:900;background:#eef2f6}
.jag-front-group-link{display:inline-flex;margin-top:.2rem;font-weight:700}
@media(max-width:520px){.jag-front-share-actions{grid-template-columns:1fr}}
