/*
 * Habillage « Prospectus » (body.vpc-prospectus).
 * Collage néo-brutaliste façon prospectus de supermarché : fond jaune
 * pointillé, encre noire, étoiles de prix rouges, coupons découpables,
 * scotch, tampons et annotations au feutre bleu.
 *
 * Ce fichier porte le socle commun à toutes les pages publiques (variables,
 * en-tête, coupons, pied de page, navigation mobile, connexion, cookies) et
 * l'accueil (index.php). Les pages intérieures (fiche deal, favoris, ajout,
 * profil, classement) ajoutent prospectus-pages.css, via
 * includes/prospectus_head.php.
 *
 * Chargé après styles.css et responsive-design.css : il redéfinit leurs
 * variables (le Prospectus n'a qu'un seul visage, sans bascule clair/sombre)
 * puis restyle les composants existants. Le balisage des cartes, des filtres
 * et du défilement infini (script.js, filters.js) n'est pas modifié.
 * Maquette d'origine : vraimentpascher.fr-design/refontes-2026-10/prospectus.html
 */

body.vpc-prospectus,
body.vpc-prospectus.light-theme {
    --pros-y: #ffe500;
    --pros-ink: #0d0d0d;
    --pros-red: #ff2a2a;
    --pros-blue: #2140ff;
    --pros-pink: #ff8ad1;
    --pros-paper: #fffdf6;
    --pros-green: #00a35a;
    --pros-big: 'Anton', Impact, sans-serif;
    --pros-body: 'Archivo', system-ui, sans-serif;
    --pros-hand: 'Permanent Marker', cursive;
    --pros-mono: 'DM Mono', ui-monospace, monospace;

    --font-main: var(--pros-body);
    --bg-body: var(--pros-y);
    --bg-surface: var(--pros-paper);
    --bg-card: var(--pros-paper);
    --bg-card-hover: #fff;
    --bg-input: #fff;
    --bg-header: var(--pros-paper);
    --bg-dropdown: var(--pros-paper);
    --bg-badge: rgba(0, 0, 0, .06);
    --bg-modal: rgba(255, 253, 246, .98);
    --border-color: var(--pros-ink);
    --border-hover: var(--pros-ink);
    --text-primary: var(--pros-ink);
    --text-secondary: #333;
    --text-muted: #5a5a5a;
    --text-link: var(--pros-blue);
    --text-on-primary: #fff;
    --neon-primary: var(--pros-blue);
    --neon-secondary: var(--pros-blue);
    --neon-accent: var(--pros-green);
    --neon-hot: var(--pros-red);
    --neon-warm: #ff7a00;
    --neon-cold: var(--pros-blue);
    --neon-glow: none;
    --neon-glow-strong: none;
    --shadow-sm: none;
    --shadow-md: 4px 4px 0 var(--pros-ink);
    --shadow-lg: 7px 7px 0 var(--pros-ink);
    --shadow-card: 6px 6px 0 var(--pros-ink);
    background: var(--pros-y) !important;
    background-image: radial-gradient(rgba(0, 0, 0, .09) 1.2px, transparent 1.6px) !important;
    background-size: 14px 14px !important;
    color: var(--pros-ink);
    font-family: var(--pros-body);
    overflow-x: hidden;
}
body.vpc-prospectus ::selection { background: var(--pros-ink); color: var(--pros-y); }
body.vpc-prospectus :focus-visible { outline: 3px solid var(--pros-blue); outline-offset: 3px; }

/* ================================================================= en-tête */
body.vpc-prospectus .header {
    background: var(--pros-paper) !important;
    border-bottom: 4px solid var(--pros-ink) !important;
    box-shadow: none !important;
    backdrop-filter: none;
}
body.vpc-prospectus .scroll-progress { background: var(--pros-red) !important; height: 4px; box-shadow: none; }
body.vpc-prospectus .logo { transform: rotate(-2deg) !important; }
body.vpc-prospectus .logo-content { background: var(--pros-ink); padding: 8px 14px 6px; box-shadow: 5px 5px 0 var(--pros-red); }
body.vpc-prospectus .logo-text { font-family: var(--pros-big) !important; font-weight: 400 !important; letter-spacing: .01em !important; }
body.vpc-prospectus .logo-vraiment { color: var(--pros-y) !important; }
body.vpc-prospectus .logo-pascher { color: #fff !important; }
body.vpc-prospectus .logo-fr { color: var(--pros-red) !important; }
body.vpc-prospectus .logo-slogan { color: rgba(255, 255, 255, .75) !important; font-family: var(--pros-body); letter-spacing: .02em; }
body.vpc-prospectus .slogan-highlight { color: var(--pros-y) !important; }
body.vpc-prospectus .header .btn-icon,
body.vpc-prospectus .header .nav-tab-icon,
body.vpc-prospectus .header .view-btn,
body.vpc-prospectus .header-categories-btn {
    background: #fff !important;
    border: 2.5px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    color: var(--pros-ink) !important;
    box-shadow: 3px 3px 0 var(--pros-ink) !important;
}
body.vpc-prospectus .header .nav-tab-icon.active,
body.vpc-prospectus .header .view-btn.active { background: var(--pros-ink) !important; color: var(--pros-y) !important; }
body.vpc-prospectus .new-text-icon { color: inherit !important; font-family: var(--pros-big); font-weight: 400; letter-spacing: .04em; }
body.vpc-prospectus .header .deals-badge,
body.vpc-prospectus .header .filter-count { background: var(--pros-red) !important; color: #fff !important; border: 2px solid var(--pros-ink); border-radius: 0; box-shadow: none; }
body.vpc-prospectus .search-bar {
    background: #fff !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--pros-ink);
}
body.vpc-prospectus .search-input { font: 700 14px var(--pros-body) !important; color: var(--pros-ink) !important; }
body.vpc-prospectus .search-input::placeholder { color: #777; }
body.vpc-prospectus .search-icon { color: var(--pros-ink); }
body.vpc-prospectus .search-results { background: var(--pros-paper) !important; border: 3px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: 6px 6px 0 var(--pros-ink) !important; }
body.vpc-prospectus .btn-add-deal {
    background: var(--pros-red) !important;
    color: #fff !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--pros-ink) !important;
    transform: rotate(2deg);
    font-family: var(--pros-big) !important;
    font-weight: 400 !important;
    letter-spacing: .03em;
    text-transform: uppercase;
}
body.vpc-prospectus .btn-add-deal:hover { transform: rotate(0); }
body.vpc-prospectus .header-avatar-img { border-radius: 0; }
body.vpc-prospectus .header-categories-menu { background: var(--pros-paper) !important; border: 3px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: 7px 7px 0 var(--pros-ink) !important; }

/* =================================================================== une */
.pros-hero {
    position: relative;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 20px;
    max-width: 1500px;
    margin: 0 auto;
    padding: 34px 36px 76px;
    font-family: var(--pros-body);
}
.pros-hero h1 {
    font: 400 clamp(64px, 8.6vw, 140px)/0.86 var(--pros-big);
    text-transform: uppercase;
    margin: 6px 0 0;
    color: var(--pros-ink);
    letter-spacing: -.005em;
}
.pros-hl { background: var(--pros-ink); color: var(--pros-y); padding: 0 .08em; display: inline-block; transform: rotate(-2deg); }
.pros-red { color: var(--pros-red); position: relative; display: inline-block; }
.pros-red svg { position: absolute; left: -2%; bottom: -16px; width: 104%; height: 22px; }
.pros-red svg path { fill: none; stroke: var(--pros-blue); stroke-width: 7; stroke-linecap: round; }
.pros-sub { font: 700 22px/1.35 var(--pros-body); max-width: 560px; margin: 40px 0 24px; color: var(--pros-ink); }
.pros-sub b { background: var(--pros-paper); padding: 0 6px; border: 2px solid var(--pros-ink); white-space: nowrap; }
.pros-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.pros-btn {
    display: inline-block;
    font: 400 24px/1.1 var(--pros-big);
    text-transform: uppercase;
    letter-spacing: .02em;
    padding: 15px 24px;
    border: 3.5px solid var(--pros-ink);
    box-shadow: 7px 7px 0 var(--pros-ink);
    background: var(--pros-ink);
    color: var(--pros-y) !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform .12s, box-shadow .12s;
}
.pros-btn:hover { transform: translate(-2px, -2px); box-shadow: 9px 9px 0 var(--pros-ink); }
.pros-btn:active { transform: translate(4px, 4px); box-shadow: 2px 2px 0 var(--pros-ink); }
.pros-btn-alt { background: var(--pros-paper); color: var(--pros-ink) !important; transform: rotate(-1.5deg); }
.pros-proof { display: flex; align-items: center; gap: 12px; margin-top: 28px; font: 700 15px/1.4 var(--pros-body); color: var(--pros-ink); }
.pros-proof b { font-weight: 900; }
.pros-faces { display: flex; flex: none; }
.pros-faces img { width: 44px; height: 44px; border-radius: 50%; border: 3px solid var(--pros-ink); margin-left: -12px; background: var(--pros-paper); object-fit: cover; }
.pros-faces img:first-child { margin-left: 0; }

.pros-collage { position: relative; min-height: 560px; }
.pros-poster {
    position: absolute; left: 6%; top: 4%; width: 74%;
    display: block;
    background: var(--pros-paper);
    border: 3.5px solid var(--pros-ink);
    padding: 18px 18px 22px;
    transform: rotate(-4deg);
    box-shadow: 12px 12px 0 var(--pros-ink);
    color: var(--pros-ink) !important;
    text-decoration: none !important;
    transition: transform .2s;
}
.pros-poster:hover { transform: rotate(-2deg) scale(1.01); }
.pros-poster-img { display: grid; place-items: center; background: #fff; height: 300px; border-bottom: 3px dashed var(--pros-ink); }
.pros-poster-img img { max-width: 82%; max-height: 92%; object-fit: contain; }
.pros-poster-shop { display: block; margin-top: 12px; font: 800 13px var(--pros-body); text-transform: uppercase; letter-spacing: .02em; }
.pros-poster-title {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
    font: 400 34px/0.98 var(--pros-big); text-transform: uppercase; margin: 6px 0 4px;
}
.pros-poster-old { display: block; font: 700 22px var(--pros-body); text-decoration: line-through; text-decoration-thickness: 3px; text-decoration-color: var(--pros-red); }
.pros-tape { position: absolute; width: 130px; height: 34px; background: rgba(255, 255, 255, .6); border: 1px solid rgba(0, 0, 0, .08); }
.pros-tape-a { top: -16px; left: 40px; transform: rotate(-8deg); }
.pros-tape-b { top: -14px; right: 30px; transform: rotate(10deg); }
.pros-burst { position: absolute; right: -1%; top: -2%; width: 240px; height: 240px; transform: rotate(10deg); filter: drop-shadow(7px 7px 0 var(--pros-ink)); pointer-events: none; }
.pros-burst svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pros-burst polygon { fill: var(--pros-red); stroke: var(--pros-ink); stroke-width: 4; }
.pros-burst > div { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; color: #fff; }
.pros-burst b { display: block; font: 400 46px/0.9 var(--pros-big); white-space: nowrap; }
.pros-burst span { font: 400 32px/1 var(--pros-big); color: var(--pros-y); }
.pros-stamp {
    position: absolute; left: -2%; bottom: -4%;
    width: 140px; height: 140px; border-radius: 50%;
    border: 5px solid var(--pros-green); outline: 2px solid var(--pros-green); outline-offset: -12px;
    color: var(--pros-green);
    display: grid; place-content: center; text-align: center;
    font: 900 14px/1.05 var(--pros-body); text-transform: uppercase;
    transform: rotate(-16deg);
    background: rgba(255, 255, 255, .25);
}
.pros-stamp b { display: block; font-size: 32px; }
.pros-note { position: absolute; right: 2%; bottom: 0; width: 270px; font: 400 24px/1.15 var(--pros-hand); color: var(--pros-blue); transform: rotate(-5deg); }
.pros-note svg { position: absolute; left: -90px; top: -70px; width: 120px; height: 100px; }
.pros-note path { fill: none; stroke: var(--pros-blue); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }

/* ========================================================= bande défilante */
.pros-band {
    background: var(--pros-ink);
    transform: rotate(-2deg);
    margin: 0 -40px 20px;
    padding: 14px 0;
    white-space: nowrap;
    overflow: hidden;
    border-top: 4px solid var(--pros-red);
    border-bottom: 4px solid var(--pros-red);
}
.pros-band > div { display: inline-flex; gap: 34px; animation: pros-band 60s linear infinite; }
.pros-band a { font: 400 40px/1 var(--pros-big); text-transform: uppercase; color: var(--pros-y) !important; text-decoration: none !important; }
.pros-band i { font-style: normal; color: var(--pros-red); }
@keyframes pros-band { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .pros-band > div { animation: none; } }

/* ============================================================ mise en page */
body.vpc-prospectus .deals-layout-wrapper { padding-top: 40px; }
body.vpc-prospectus .deals-sidebar {
    background: var(--pros-paper) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 7px 7px 0 var(--pros-ink) !important;
    transform: rotate(-.6deg);
}
body.vpc-prospectus .sidebar-section-title,
body.vpc-prospectus .categories-menu-btn { font: 400 22px var(--pros-big) !important; text-transform: uppercase; letter-spacing: .02em; color: var(--pros-ink) !important; }
body.vpc-prospectus .categories-menu-btn { background: var(--pros-y) !important; border: 2.5px solid var(--pros-ink) !important; border-radius: 0 !important; padding: 10px 12px !important; }
body.vpc-prospectus .filter-label { font: 800 13px var(--pros-body) !important; text-transform: uppercase; }
body.vpc-prospectus select,
body.vpc-prospectus .filter-select { background: #fff !important; border: 2.5px solid var(--pros-ink) !important; border-radius: 0 !important; color: var(--pros-ink) !important; font: 700 13px var(--pros-body) !important; }
body.vpc-prospectus .price-value { font: 400 18px var(--pros-big) !important; color: var(--pros-ink) !important; background: none !important; }
body.vpc-prospectus .noUi-target { background: #fff !important; border: 2.5px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: none !important; }
body.vpc-prospectus .noUi-connect { background: var(--pros-red) !important; }
body.vpc-prospectus .noUi-handle { background: var(--pros-ink) !important; border: 2px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: none !important; }
body.vpc-prospectus .filter-toggle-label { font: 700 13px var(--pros-body) !important; color: var(--pros-ink) !important; }
body.vpc-prospectus .filter-toggle-slider { border: 2px solid var(--pros-ink) !important; background: #fff !important; }
body.vpc-prospectus .filter-toggle input:checked + .filter-toggle-slider { background: var(--pros-green) !important; }
body.vpc-prospectus .btn-filter-apply,
body.vpc-prospectus .btn-filter-reset { border: 2.5px solid var(--pros-ink) !important; border-radius: 0 !important; font: 400 17px var(--pros-big) !important; text-transform: uppercase; letter-spacing: .02em; box-shadow: 3px 3px 0 var(--pros-ink) !important; }
body.vpc-prospectus .btn-filter-apply { background: var(--pros-ink) !important; color: var(--pros-y) !important; }
body.vpc-prospectus .btn-filter-reset { background: #fff !important; color: var(--pros-ink) !important; }
body.vpc-prospectus .filter-sidebar-footer { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; padding-right: 4px; }
body.vpc-prospectus .filter-sidebar-footer button { min-width: 0 !important; width: 100% !important; padding: 10px 4px !important; font-size: 15px !important; }
body.vpc-prospectus .categories-submenu,
body.vpc-prospectus .subcategories-submenu { background: var(--pros-paper) !important; border: 3px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: 6px 6px 0 var(--pros-ink) !important; }
body.vpc-prospectus .category-count,
body.vpc-prospectus .subcat-badge { background: var(--pros-ink) !important; color: var(--pros-y) !important; border-radius: 0 !important; }

/* Titre de section + onglets de tri */
.pros-sec-head { display: flex; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin: 0 0 18px; }
.pros-sec-head h2 { font: 400 76px/0.86 var(--pros-big); text-transform: uppercase; margin: 0; color: var(--pros-ink); overflow-wrap: anywhere; }
.pros-hand { font: 400 24px/1.15 var(--pros-hand); color: var(--pros-blue); transform: rotate(-3deg); display: inline-block; }
body.vpc-prospectus .vpc-browse { gap: 10px; margin-bottom: 30px; padding: 4px 4px 10px; scrollbar-width: none; }
body.vpc-prospectus .vpc-browse a {
    font: 800 14px var(--pros-body);
    text-transform: uppercase;
    border: 3px solid var(--pros-ink);
    border-radius: 0;
    padding: 9px 14px;
    background: var(--pros-paper);
    color: var(--pros-ink);
    box-shadow: 3px 3px 0 var(--pros-ink);
}
body.vpc-prospectus .vpc-browse a.selected { background: var(--pros-ink); color: var(--pros-y); border-color: var(--pros-ink); }

/* ============================================================ coupons (cartes) */
body.vpc-prospectus .deals-grid { gap: 34px 28px !important; padding: 8px 8px 20px; }
body.vpc-prospectus .deals-grid .deal-card {
    position: relative;
    overflow: visible !important;
    background: var(--pros-paper) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 7px 7px 0 var(--pros-ink) !important;
    transition: transform .15s, box-shadow .15s !important;
}
/* Pointillés de découpe, à l'intérieur du coupon. */
body.vpc-prospectus .deals-grid .deal-card::before {
    content: ''; position: absolute; inset: 6px; z-index: 4;
    border: 2px dashed rgba(0, 0, 0, .3); pointer-events: none;
}
body.vpc-prospectus .deals-grid .deal-card::after {
    content: '✂'; position: absolute; left: 16px; top: -16px; z-index: 5;
    font-size: 20px; line-height: 1; background: var(--pros-y); padding: 0 4px; color: var(--pros-ink);
}
body.vpc-prospectus .deals-grid .deal-card:nth-child(4n+1) { transform: rotate(-1deg); }
body.vpc-prospectus .deals-grid .deal-card:nth-child(4n+2) { transform: rotate(.8deg); }
body.vpc-prospectus .deals-grid .deal-card:nth-child(4n+3) { transform: rotate(-.4deg); }
body.vpc-prospectus .deals-grid .deal-card:nth-child(4n) { transform: rotate(1.1deg); }
body.vpc-prospectus .deals-grid .deal-card:hover { transform: rotate(0) translate(-2px, -2px) !important; box-shadow: 10px 10px 0 var(--pros-ink) !important; }
body.vpc-prospectus .deals-grid .deal-card-image {
    background: #fff !important;
    margin: 12px 12px 0 !important;
    width: auto !important;
    border: 2px solid var(--pros-ink);
    overflow: visible !important;
}
body.vpc-prospectus .deals-grid .deal-card .deal-reduction {
    display: grid !important; place-items: center;
    left: auto !important; right: -22px !important; top: -22px !important;
    width: 70px !important; height: 70px !important; min-height: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: var(--pros-red) !important;
    color: #fff !important;
    border: 3px solid var(--pros-ink);
    font: 400 22px/1 var(--pros-big) !important;
    transform: rotate(12deg);
    z-index: 6 !important;
    box-shadow: none !important;
}
body.vpc-prospectus .deal-new-ribbon {
    background: var(--pros-ink) !important; color: var(--pros-y) !important;
    font: 400 15px var(--pros-big) !important; letter-spacing: .04em;
    border-radius: 0 !important; transform: rotate(-6deg); box-shadow: none !important;
}
body.vpc-prospectus .deals-grid .deal-image-exit-btn {
    left: 20px !important; right: auto !important; top: 20px !important;
    border-radius: 0 !important;
    background: var(--pros-y) !important;
    border: 2.5px solid var(--pros-ink) !important;
    color: var(--pros-ink) !important;
    box-shadow: 2px 2px 0 var(--pros-ink);
}
body.vpc-prospectus .deals-grid .deal-card-body { padding: 14px 18px 8px !important; }
body.vpc-prospectus .deal-merchant-info { font: 800 12px var(--pros-body) !important; text-transform: uppercase; }
body.vpc-prospectus .deal-merchant-info a,
body.vpc-prospectus .deal-merchant-small { color: #444 !important; }
body.vpc-prospectus .deal-author-small { font: 400 15px var(--pros-hand); text-transform: none; color: var(--pros-blue) !important; }
body.vpc-prospectus .deal-title { font: 800 16px/1.25 var(--pros-body) !important; color: var(--pros-ink) !important; }
body.vpc-prospectus .deal-description { font: 500 12px/1.55 var(--pros-body) !important; color: #444 !important; }
body.vpc-prospectus .deal-price-current { font: 400 34px/1 var(--pros-big) !important; color: var(--pros-ink) !important; letter-spacing: .01em; }
body.vpc-prospectus .deal-price-original { font: 700 14px var(--pros-body) !important; color: #555 !important; text-decoration: line-through; text-decoration-color: var(--pros-red); text-decoration-thickness: 2px; }
body.vpc-prospectus .deal-thermo { background: var(--pros-ink); color: var(--pros-y) !important; padding: 3px 8px 3px 4px; font: 400 16px var(--pros-big); border-radius: 0; }
body.vpc-prospectus .deal-thermo .temp-value { color: var(--pros-y) !important; font: 400 16px var(--pros-big) !important; }
body.vpc-prospectus .free-shipping { font: 800 11px var(--pros-body); text-transform: uppercase; background: var(--pros-green); color: #fff; padding: 3px 7px; border: 2px solid var(--pros-ink); }
body.vpc-prospectus .promo-tag { background: var(--pros-y) !important; border: 2px dashed var(--pros-ink) !important; border-radius: 0 !important; color: var(--pros-ink) !important; font: 500 12px var(--pros-mono); }
body.vpc-prospectus .deal-odr-badge { background: var(--pros-pink); color: var(--pros-ink); border: 2px solid var(--pros-ink); border-radius: 0; font-weight: 800; }
body.vpc-prospectus .deals-grid .deal-actions-row {
    margin: 0 12px 12px !important;
    width: auto !important;
    border-top: 2px solid var(--pros-ink) !important;
    padding: 8px 6px !important;
    font: 700 12px var(--pros-body) !important;
    color: var(--pros-ink) !important;
}
body.vpc-prospectus .deal-actions-row a,
body.vpc-prospectus .deal-actions-row button { color: var(--pros-ink) !important; }
body.vpc-prospectus .deal-actions-heart.active,
body.vpc-prospectus .btn-favorite-deal.active { color: var(--pros-red) !important; }

/* Invitation glissée dans la grille (visiteurs non connectés) */
.pros-join-card {
    display: flex; flex-direction: column; justify-content: center; gap: 14px;
    background: var(--pros-pink);
    border: 3px solid var(--pros-ink);
    box-shadow: 7px 7px 0 var(--pros-ink);
    padding: 26px 22px;
    transform: rotate(1.4deg);
    font-family: var(--pros-body);
}
.pros-join-card strong { font: 400 46px/0.92 var(--pros-big); text-transform: uppercase; color: var(--pros-ink); }
.pros-join-card .pros-btn { font-size: 20px; padding: 12px 16px; align-self: flex-start; }

/* Bandeaux de fin, chargement, vide, catégories */
body.vpc-prospectus .deal-end-banner,
body.vpc-prospectus .empty-state,
body.vpc-prospectus .search-results-banner,
body.vpc-prospectus .category-hero,
body.vpc-prospectus .expires-hero {
    background: var(--pros-paper) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 6px 6px 0 var(--pros-ink) !important;
    color: var(--pros-ink) !important;
}
body.vpc-prospectus .deal-card-end-text { font: 400 20px var(--pros-hand) !important; color: var(--pros-blue) !important; }
body.vpc-prospectus .deal-end-top-btn { background: var(--pros-ink) !important; color: var(--pros-y) !important; border-radius: 0 !important; }
body.vpc-prospectus .category-tab { border: 2.5px solid var(--pros-ink) !important; border-radius: 0 !important; background: #fff !important; color: var(--pros-ink) !important; font: 800 13px var(--pros-body) !important; }
body.vpc-prospectus .category-tab.active { background: var(--pros-ink) !important; color: var(--pros-y) !important; }
body.vpc-prospectus .category-hero-title { font: 400 34px var(--pros-big) !important; text-transform: uppercase; }
body.vpc-prospectus .loader-ring { border-color: var(--pros-ink) transparent var(--pros-red) transparent !important; }
body.vpc-prospectus .loader-text { font: 400 16px var(--pros-big); color: var(--pros-ink) !important; text-transform: uppercase; }

/* ================================================================ la bande */
.pros-crew {
    display: grid; grid-template-columns: 1fr 1.05fr; gap: 50px; align-items: center;
    max-width: 1500px; margin: 30px auto 0; padding: 60px 36px 90px;
    font-family: var(--pros-body);
}
.pros-polas { position: relative; height: 470px; }
.pros-pola {
    position: absolute; width: 190px;
    background: #fff; border: 3px solid var(--pros-ink); padding: 10px 10px 14px;
    box-shadow: 6px 6px 0 var(--pros-ink);
    text-align: center; color: var(--pros-ink) !important; text-decoration: none !important;
    font-family: var(--pros-body); cursor: pointer;
    transition: transform .15s;
}
.pros-pola:hover { z-index: 3; }
.pros-pola-face { display: grid; place-items: center; height: 150px; border: 2px solid var(--pros-ink); overflow: hidden; font: 400 80px var(--pros-big); color: rgba(0, 0, 0, .35); }
.pros-pola-face img { width: 82%; height: 82%; object-fit: contain; }
.pros-pola b { display: block; font: 400 22px var(--pros-hand); margin-top: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pros-pola > span:last-child { font: 800 12px var(--pros-body); text-transform: uppercase; }
.pros-pola .pros-tape { width: 80px; height: 26px; top: -14px; left: 55px; }
.pros-pola:nth-child(1) { left: 0; top: 30px; transform: rotate(-7deg); } .pros-pola:nth-child(1) .pros-pola-face { background: #ffb36b; }
.pros-pola:nth-child(2) { left: 210px; top: 0; transform: rotate(4deg); } .pros-pola:nth-child(2) .pros-pola-face { background: var(--pros-pink); }
.pros-pola:nth-child(3) { left: 420px; top: 40px; transform: rotate(-3deg); } .pros-pola:nth-child(3) .pros-pola-face { background: #9be7ff; }
.pros-pola:nth-child(4) { left: 95px; top: 255px; transform: rotate(5deg); } .pros-pola:nth-child(4) .pros-pola-face { background: #c9b8ff; }
.pros-pola:nth-child(5) { left: 315px; top: 265px; transform: rotate(-6deg); } .pros-pola:nth-child(5) .pros-pola-face { background: #b8ff9b; }
.pros-pola-empty { border-style: dashed; }
.pros-pola-empty .pros-pola-face { border-style: dashed; }
.pros-join {
    background: var(--pros-ink); color: #fff;
    padding: 36px 36px 32px;
    border: 4px solid var(--pros-ink);
    box-shadow: 12px 12px 0 var(--pros-red);
    transform: rotate(1deg);
}
.pros-join .pros-hand { color: var(--pros-y); transform: none; }
.pros-join h2 { font: 400 72px/0.9 var(--pros-big); text-transform: uppercase; margin: 8px 0 22px; color: #fff; }
.pros-join h2 em { font-style: normal; color: var(--pros-y); }
.pros-steps { display: grid; gap: 14px; margin-bottom: 26px; }
.pros-steps > div { display: grid; grid-template-columns: 54px 1fr; gap: 14px; align-items: center; font: 600 17px/1.35 var(--pros-body); }
.pros-steps i { width: 54px; height: 54px; border-radius: 50%; background: var(--pros-y); color: var(--pros-ink); display: grid; place-items: center; font: 400 30px var(--pros-big); font-style: normal; transform: rotate(-8deg); }
.pros-steps b { color: var(--pros-y); }
.pros-join .pros-btn { background: var(--pros-y); color: var(--pros-ink) !important; border-color: var(--pros-y); box-shadow: 7px 7px 0 var(--pros-red); }
.pros-fine { margin-top: 18px; font: 500 13px var(--pros-mono); color: #aaa; }

/* ============================================================== pied de page */
body.vpc-prospectus .footer { background: var(--pros-ink) !important; border-top: 4px solid var(--pros-red) !important; color: var(--pros-y) !important; }
body.vpc-prospectus .footer p,
body.vpc-prospectus .footer a { color: var(--pros-y) !important; font: 700 14px var(--pros-body); }
body.vpc-prospectus .footer .neon { color: #fff !important; text-shadow: none !important; }

/* ============================================================ navigation mobile */
body.vpc-prospectus .mobile-bottom-nav {
    background: var(--pros-paper) !important;
    border-top: 4px solid var(--pros-ink) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}
body.vpc-prospectus .mobile-nav-item { color: var(--pros-ink) !important; font-family: var(--pros-body); font-weight: 800; }

/* Compte dans l'en-tête mobile : remplace le bouton Filtres, déjà dans la barre du bas */
.header-account { display: none; }
@media (max-width: 768px) {
    body.vpc-prospectus #filterToggleBtn { display: none !important; }
    body.vpc-prospectus .header-inner { min-height: 66px; overflow: visible; }
    body.vpc-prospectus .header-account {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        order: 0;
        margin-right: auto;
        border: 3px solid var(--pros-ink);
        box-shadow: 4px 4px 0 var(--pros-red);
        cursor: pointer;
        text-decoration: none;
    }
    body.vpc-prospectus .header-account-avatar {
        width: 56px;
        height: 56px;
        padding: 0;
        overflow: hidden;
        background: var(--pros-paper);
        transform: rotate(-3deg);
    }
    body.vpc-prospectus .header-account-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
    body.vpc-prospectus .header-account-login {
        gap: 7px;
        height: 44px;
        padding: 0 13px;
        background: var(--pros-ink);
        color: var(--pros-y);
        font: 400 18px/1 var(--pros-big);
        text-transform: uppercase;
        letter-spacing: 0.02em;
        transform: rotate(-2deg);
    }
    body.vpc-prospectus .header-account:active { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--pros-red); }

    /* « + » central, posé dans un demi-cercle qui dépasse de la barre */
    body.vpc-prospectus .mobile-bottom-nav { overflow: visible; }
    body.vpc-prospectus .mobile-nav-add {
        z-index: 1;
        justify-content: flex-end;
        padding-bottom: 5px;
    }
    body.vpc-prospectus .mobile-nav-add::before {
        content: '';
        position: absolute;
        top: -34px;
        left: 50%;
        width: 88px;
        height: 88px;
        margin-left: -44px;
        border-radius: 50%;
        background: var(--pros-paper);
        border: 4px solid var(--pros-ink);
        box-sizing: border-box;
        clip-path: inset(0 0 calc(100% - 34px) 0);
        z-index: -1;
    }
    body.vpc-prospectus .mobile-nav-add::after { display: none; }
    body.vpc-prospectus .nav-add-bubble {
        position: absolute;
        top: -20px;
        left: 50%;
        width: 60px;
        height: 60px;
        margin-left: -30px;
        border-radius: 50%;
        background: var(--pros-red);
        color: #fff;
        border: 3px solid var(--pros-ink);
        box-shadow: 3px 3px 0 var(--pros-ink);
        display: grid;
        place-items: center;
        transform: rotate(-6deg);
        transition: transform 0.15s ease, box-shadow 0.15s ease;
    }
    body.vpc-prospectus .mobile-nav-add:hover .nav-add-bubble { transform: rotate(0deg) scale(1.05); }
    body.vpc-prospectus .mobile-nav-add:active .nav-add-bubble { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--pros-ink); }
    body.vpc-prospectus .mobile-nav-add .nav-label { font-weight: 900; text-transform: uppercase; letter-spacing: 0.03em; }
}

/* Tiroir « Menu » (bouton gauche de la barre du bas) : remplace l'habillage néon */
body.vpc-prospectus .mobile-menu-modal.active { background: rgba(13, 13, 13, 0.55); }
body.vpc-prospectus .mobile-menu-content {
    background: var(--pros-paper);
    border-right: 4px solid var(--pros-ink);
    box-shadow: 8px 0 0 var(--pros-red);
}
body.vpc-prospectus .mobile-menu-header {
    background: var(--pros-ink);
    border-bottom: 4px solid var(--pros-red);
    box-shadow: none;
    padding: 14px 16px;
}
body.vpc-prospectus .mobile-menu-header h2 {
    font: 400 30px/1 var(--pros-big);
    text-transform: uppercase;
    letter-spacing: 0.01em;
    color: var(--pros-y);
    text-shadow: none;
    transform: rotate(-2deg);
}
body.vpc-prospectus .mobile-menu-close,
body.vpc-prospectus .mobile-menu-back {
    width: 38px;
    height: 38px;
    justify-content: center;
    background: var(--pros-y);
    color: var(--pros-ink);
    border: 2.5px solid var(--pros-y);
    filter: none;
}
body.vpc-prospectus .mobile-menu-close:hover,
body.vpc-prospectus .mobile-menu-back:hover {
    background: var(--pros-red);
    border-color: var(--pros-red);
    color: #fff;
    filter: none;
}
body.vpc-prospectus .mobile-menu-items,
body.vpc-prospectus .mobile-menu-categories,
body.vpc-prospectus .mobile-menu-subcategories { padding: 0; background: var(--pros-paper); }
body.vpc-prospectus .mobile-menu-main-item,
body.vpc-prospectus .mobile-category-btn,
body.vpc-prospectus .mobile-subcategory {
    background: transparent;
    color: var(--pros-ink);
    font: 800 15px var(--pros-body);
    text-transform: uppercase;
    letter-spacing: 0.01em;
    border: 0;
    border-left: 6px solid transparent;
    border-bottom: 2px dashed rgba(13, 13, 13, 0.35);
    text-shadow: none;
}
body.vpc-prospectus .mobile-subcategory { font-size: 14px; text-transform: none; }
body.vpc-prospectus .mobile-menu-main-item:hover,
body.vpc-prospectus .mobile-category-btn:hover,
body.vpc-prospectus .mobile-subcategory:hover {
    background: var(--pros-y);
    color: var(--pros-ink);
    border-left-color: var(--pros-red);
    text-shadow: none;
}
body.vpc-prospectus .mobile-category-btn svg,
body.vpc-prospectus .mobile-category-btn:hover svg { color: var(--pros-ink); filter: none; }
body.vpc-prospectus .mobile-category-btn .category-count,
body.vpc-prospectus .mobile-subcategory span:last-child {
    background: var(--pros-ink);
    color: var(--pros-y);
    border: 0;
    border-radius: 0;
    font: 500 12px var(--pros-mono);
    text-shadow: none;
    padding: 2px 7px;
    margin: 0 10px 0 auto;
}
body.vpc-prospectus .mobile-subcategory span:last-child { margin-right: 0; }

/* Panneaux (filtres et catégories en mode mobile, connexion) */
body.vpc-prospectus .filter-panel-container,
body.vpc-prospectus .categories-panel-container,
body.vpc-prospectus .modal-content,
body.vpc-prospectus .auth-modal-content {
    background: var(--pros-paper) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 8px 8px 0 var(--pros-ink) !important;
}

/* ==================================================================== tablette */
@media (max-width: 1199px) {
    .pros-hero { padding: 26px 24px 64px; }
    .pros-collage { min-height: 500px; }
    .pros-poster-img { height: 240px; }
    .pros-burst { width: 200px; height: 200px; }
    .pros-burst b { font-size: 38px; }
    .pros-crew { grid-template-columns: 1fr; }
    .pros-polas { max-width: 640px; }
}

/* ===================================================================== mobile */
@media (max-width: 720px) {
    body.vpc-prospectus .logo-content { padding: 6px 10px 4px; box-shadow: 4px 4px 0 var(--pros-red); }
    .pros-hero { grid-template-columns: 1fr; padding: 18px 16px 50px; }
    .pros-hero h1 { font-size: 17vw; }
    .pros-sub { font-size: 17px; margin: 34px 0 20px; }
    .pros-sub b { white-space: normal; }
    .pros-btn { font-size: 20px; padding: 13px 18px; box-shadow: 5px 5px 0 var(--pros-ink); }
    .pros-proof { font-size: 13px; }
    .pros-faces img { width: 36px; height: 36px; }
    .pros-collage { min-height: 470px; margin-top: 16px; }
    .pros-poster { left: 2%; width: 80%; padding: 12px 12px 16px; box-shadow: 8px 8px 0 var(--pros-ink); }
    .pros-poster-img { height: 200px; }
    .pros-poster-title { font-size: 26px; }
    .pros-burst { width: 158px; height: 158px; right: -8px; top: -4%; }
    .pros-burst b { font-size: 28px; }
    .pros-burst span { font-size: 22px; }
    .pros-stamp { width: 104px; height: 104px; font-size: 11px; left: 0; bottom: -3%; }
    .pros-stamp b { font-size: 22px; }
    .pros-note { width: 190px; font-size: 18px; right: 0; bottom: -6px; }
    .pros-note svg { display: none; }
    .pros-band a { font-size: 28px; }
    .pros-band > div { gap: 22px; }
    body.vpc-prospectus .deals-layout-wrapper { padding: 30px 14px 18px !important; }
    .pros-sec-head h2 { font-size: 54px; }
    .pros-hand { font-size: 19px; }
    body.vpc-prospectus .vpc-browse a { font-size: 12px; padding: 8px 11px; white-space: nowrap; }
    body.vpc-prospectus .deals-grid { gap: 30px !important; padding: 8px 6px 10px; }
    body.vpc-prospectus .deals-grid .deal-card { box-shadow: 5px 5px 0 var(--pros-ink) !important; }
    body.vpc-prospectus .deals-grid .deal-card .deal-reduction { width: 62px !important; height: 62px !important; font-size: 20px !important; right: -12px !important; top: -18px !important; }
    body.vpc-prospectus .deal-price-current { font-size: 32px !important; }
    .pros-join-card strong { font-size: 40px; }
    .pros-crew { padding: 30px 16px 110px; gap: 30px; margin-top: 10px; }
    .pros-polas { height: auto; display: flex; gap: 16px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 18px 16px 22px; }
    .pros-pola { position: relative; left: auto !important; top: auto !important; flex: none; width: 150px; }
    .pros-pola-face { height: 110px; font-size: 60px; }
    .pros-pola b { font-size: 18px; }
    .pros-pola .pros-tape { left: 35px; }
    .pros-join { padding: 26px 20px; box-shadow: 8px 8px 0 var(--pros-red); }
    .pros-join h2 { font-size: 52px; }
    .pros-steps > div { font-size: 15px; }
}

/* Encart annonceur glissé par script.js pendant le défilement infini. */
body.vpc-prospectus .sponsor-card {
    background: var(--pros-blue) !important;
    color: #fff !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 7px 7px 0 var(--pros-ink) !important;
    transform: rotate(-1deg) !important;
    font-family: var(--pros-body);
}
body.vpc-prospectus .sponsor-badge { background: var(--pros-y) !important; color: var(--pros-ink) !important; border-radius: 0 !important; font: 800 11px var(--pros-body) !important; text-transform: uppercase; }
body.vpc-prospectus .sponsor-title { font: 400 30px/0.95 var(--pros-big) !important; text-transform: uppercase; color: #fff !important; }
body.vpc-prospectus .sponsor-description { color: rgba(255, 255, 255, .9) !important; font: 600 14px/1.45 var(--pros-body) !important; }
body.vpc-prospectus .sponsor-btn { background: var(--pros-y) !important; color: var(--pros-ink) !important; border: 3px solid var(--pros-ink) !important; border-radius: 0 !important; box-shadow: 4px 4px 0 var(--pros-ink) !important; font: 400 18px var(--pros-big) !important; text-transform: uppercase; }

/* L'image de l'affiche reste dans son cadre. */
.pros-poster-img { overflow: hidden; }

/* Pages catégorie : le grand titre Prospectus suffit, on garde les onglets. */
body.vpc-prospectus .category-hero { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: -10px 0 26px !important; }
body.vpc-prospectus .category-hero-header { display: none !important; }
body.vpc-prospectus .category-tabs { display: flex; flex-wrap: wrap; gap: 10px !important; }
body.vpc-prospectus .category-tab { padding: 8px 13px !important; box-shadow: 3px 3px 0 var(--pros-ink) !important; text-transform: uppercase; }

/* ================================================================ connexion */
body.vpc-prospectus .modal-overlay { background: rgba(13, 13, 13, .55) !important; backdrop-filter: none !important; }
body.vpc-prospectus .modal-box {
    background: var(--pros-paper) !important;
    border: 4px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 12px 12px 0 var(--pros-ink) !important;
    color: var(--pros-ink);
    font-family: var(--pros-body);
}
body.vpc-prospectus .modal-tabs { gap: 8px; border: 0 !important; background: none !important; padding: 0 !important; margin-bottom: 22px !important; }
body.vpc-prospectus .modal-tab {
    flex: 1;
    background: #fff !important;
    color: var(--pros-ink) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 3px 3px 0 var(--pros-ink) !important;
    font: 400 18px/1.1 var(--pros-big) !important;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 10px 8px !important;
}
body.vpc-prospectus .modal-tab.active { background: var(--pros-ink) !important; color: var(--pros-y) !important; transform: rotate(-1.5deg); }
body.vpc-prospectus .modal-tab::after { display: none !important; }
body.vpc-prospectus .auth-panel h3 { font: 400 26px/1 var(--pros-big) !important; text-transform: uppercase; color: var(--pros-ink) !important; }
body.vpc-prospectus .auth-panel p { color: #333 !important; font-family: var(--pros-body); }
body.vpc-prospectus .modal-box .form-group label { font: 800 12px var(--pros-body) !important; text-transform: uppercase; letter-spacing: .03em; color: var(--pros-ink) !important; }
body.vpc-prospectus .modal-box .form-group input {
    background: #fff !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--pros-ink) !important;
    font: 700 15px var(--pros-body) !important;
}
body.vpc-prospectus .modal-box .form-group input:focus { box-shadow: 4px 4px 0 var(--pros-blue) !important; outline: none; }
body.vpc-prospectus .forgot-link { color: var(--pros-blue) !important; font: 400 15px var(--pros-hand) !important; text-decoration: none !important; }
body.vpc-prospectus .auth-submit-btn {
    background: var(--pros-red) !important;
    color: #fff !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 5px 5px 0 var(--pros-ink) !important;
    font: 400 20px/1.1 var(--pros-big) !important;
    text-transform: uppercase;
    letter-spacing: .03em;
}
body.vpc-prospectus .auth-submit-btn:hover { transform: translate(-1px, -1px); box-shadow: 7px 7px 0 var(--pros-ink) !important; }
body.vpc-prospectus .modal-close {
    background: #fff !important;
    color: var(--pros-ink) !important;
    border: 3px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 3px 3px 0 var(--pros-ink) !important;
}
body.vpc-prospectus .auth-separator span { background: var(--pros-paper) !important; color: var(--pros-ink) !important; font: 400 18px var(--pros-hand) !important; }
body.vpc-prospectus .auth-separator::before,
body.vpc-prospectus .auth-separator::after { background: var(--pros-ink) !important; height: 2px !important; }
body.vpc-prospectus .social-btn {
    background: #fff !important;
    color: var(--pros-ink) !important;
    border: 2.5px solid var(--pros-ink) !important;
    border-radius: 0 !important;
    box-shadow: 3px 3px 0 var(--pros-ink) !important;
    font: 800 14px var(--pros-body) !important;
}
body.vpc-prospectus .auth-legal { color: #444 !important; font: 500 12px var(--pros-mono) !important; }
body.vpc-prospectus .auth-legal a { color: var(--pros-blue) !important; }

/* ================================================================== cookies */
body.vpc-prospectus .cookie-consent-overlay { background: rgba(13, 13, 13, .55); backdrop-filter: none; -webkit-backdrop-filter: none; }
body.vpc-prospectus .cookie-consent {
    background: var(--pros-paper);
    color: var(--pros-ink);
    border: 3px solid var(--pros-ink);
    border-radius: 0;
    box-shadow: 7px 7px 0 var(--pros-ink);
    font-family: var(--pros-body);
}
body.vpc-prospectus .cookie-consent::before {
    content: '🍪 Petit mot'; position: absolute; left: 18px; top: -15px;
    background: var(--pros-ink); color: var(--pros-y);
    font: 400 14px/1 var(--pros-big); letter-spacing: .05em; text-transform: uppercase;
    padding: 6px 10px; transform: rotate(-3deg);
}
body.vpc-prospectus .cookie-consent-text { color: var(--pros-ink); font: 600 14px/1.45 var(--pros-body); }
body.vpc-prospectus .cookie-consent-link { color: var(--pros-blue); font-weight: 800; }
body.vpc-prospectus .cookie-btn {
    border: 3px solid var(--pros-ink);
    border-radius: 0;
    box-shadow: 3px 3px 0 var(--pros-ink);
    font: 400 17px/1.1 var(--pros-big);
    text-transform: uppercase;
    letter-spacing: .03em;
}
body.vpc-prospectus .cookie-btn-refuse { background: #fff; color: var(--pros-ink); border-color: var(--pros-ink); }
body.vpc-prospectus .cookie-btn-refuse:hover { color: var(--pros-ink); border-color: var(--pros-ink); }
body.vpc-prospectus .cookie-btn-accept { background: var(--pros-ink); color: var(--pros-y); }
@media (max-width: 768px) {
    body.vpc-prospectus .cookie-consent { bottom: 82px; }
}
