/* MDCA 2026 Design Tokens */
:root {
    --dc-primary: #e27d60;
    --dc-primary-dk: #c4633a;
    --dc-primary-lt: #f0ebe8;
    --dc-blue: #003366;
    --dc-blue-dk: #002244;
    --dc-blue-lt: #e8eef5;
    --dc-gray: #566573;
    --dc-gray-lt: #f0f1f2;
    --dc-white: #ffffff;
    --dc-bg: #F8F7F5;
    --dc-text: #1a1a2e;
}

/* ============================================
   v5.4 — FINAL POLISH
   ============================================ */

/* KILL ALL ANIMATIONS — no more white spaces */
.dc-pour-qui-section, .dc-pour-qui-section *,
.dc-modules-section, .dc-modules-section *,
.dc-mdca-section, .dc-mdca-section *,
.dc-contact-section, .dc-contact-section *,
.dc-anim-hidden, .dc-section-tag, .dc-pq-card, .dc-mdca-item, .dc-module-card {
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
}

/* TABLET MENU BREAKPOINTS */
@media (max-width: 1100px) {
    .main-navigation .menu > li > a { padding: 0 7px !important; font-size: 11.5px !important; letter-spacing: 0 !important; }
}
@media (max-width: 950px) {
    .main-navigation .menu > li > a { padding: 0 5px !important; font-size: 10.5px !important; }
}

/* DEMO TOPBAR */
.dc-demo-topbar { background: #003366; width: 100%; box-sizing: border-box; z-index: 100; position: relative; }
.dc-demo-topbar-inner { max-width: 1280px; margin: 0 auto; padding: 9px 40px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: nowrap; }
.dc-demo-topbar-left { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; overflow: hidden; }
.dc-demo-dot { width: 7px; height: 7px; border-radius: 50%; background: #e27d60; flex-shrink: 0; animation: dcDemoPulse 2s ease-in-out infinite; }
@keyframes dcDemoPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(1.3)} }
.dc-demo-label { font-size: 12px; font-weight: 800; color: #ffffff; white-space: nowrap; flex-shrink: 0; }
.dc-demo-sep { color: rgba(0,40,80,.4); font-size: 12px; flex-shrink: 0; }
.dc-demo-sub { font-size: 11px; color: rgba(0,40,80,.75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
.dc-demo-topbar-cta { display: inline-flex; align-items: center; gap: 5px; background: #e27d60; color: white; font-size: 11px; font-weight: 700; padding: 5px 14px; border-radius: 20px; text-decoration: none; white-space: nowrap; flex-shrink: 0; transition: background .15s; }
.dc-demo-topbar-cta:hover { background: #c4633a; color: white; }
@media(max-width:600px){ .dc-demo-topbar-inner{padding:8px 16px} .dc-demo-sub{display:none} }

/* REASSURANCE BAND (replaces references) */
.dc-reassurance-band { background: #F8F7F5 !important; border-top: 1px solid #e2dfdc !important; border-bottom: 1px solid #e2dfdc !important; padding: 14px 60px !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 16px !important; flex-wrap: wrap !important; font-size: 12px !important; color: #566573 !important; font-weight: 500 !important; }
.dc-rsep { color: #C5C9DC !important; font-weight: 400 !important; }

/* CONTACT FORM LAYOUT FIX */
.dc-contact-inner { max-width: 1200px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: 2fr 3fr !important; gap: 56px !important; align-items: start !important; width: 100% !important; }
.dc-contact-form-wrap { background: white !important; border-radius: 20px !important; padding: 40px !important; box-shadow: 0 24px 64px rgba(0,0,0,.18) !important; border: 1px solid rgba(255,255,255,.15) !important; }
.dc-contact-section { padding: 72px 60px !important; overflow: hidden !important; }
@media(max-width:900px){ .dc-contact-inner{grid-template-columns:1fr!important;gap:36px!important} .dc-contact-section{padding:48px 24px!important} }

/* ALL CONTENT VISIBLE — no animations, no white spaces */
.dc-anim-hidden, .dc-section-tag, .dc-pq-card, .dc-mdca-item, .dc-module-card, .dc-section-title,
.dc-pour-qui-section *, .dc-mdca-section *, .dc-modules-section *, .dc-contact-section * {
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
    animation: none !important;
    min-height: auto !important;
}

/* SECTION SPACING — compact */
.dc-pour-qui-section { padding: 64px 60px !important; min-height: auto !important; }
.dc-modules-section { padding: 56px 60px !important; min-height: auto !important; }
.dc-mdca-section { padding: 72px 60px !important; min-height: auto !important; }

/* HERO MOCKUP FIX */
.dc-hero-mockup { width: 300px !important; max-width: 300px !important; overflow: hidden !important; }
.dc-mockup-bar > *:last-child { font-size: 9px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; max-width: 160px !important; }
.dc-mockup-modules > div { overflow: hidden !important; white-space: nowrap !important; text-overflow: ellipsis !important; }
.dc-hero-mockup, .dc-hero-mockup *, .dc-hero-visual * { opacity: 1 !important; }
.dc-hero-trust { flex-wrap: nowrap !important; overflow: hidden !important; }
@media(max-width:1024px){ .dc-hero-mockup{display:none!important} .dc-hero{min-height:auto!important} }

/* PAGE HEADERS — full width gradient */
.nxv-page-header { width: 100% !important; max-width: 100% !important; padding: 40px 60px 44px !important; background: linear-gradient(135deg,#e27d60 0%,#003366 100%) !important; border-bottom: 3px solid #e27d60 !important; position: relative !important; overflow: hidden !important; }
.nxv-page-header::before { content: '' !important; position: absolute !important; right: -40px !important; top: -40px !important; width: 200px !important; height: 200px !important; border-radius: 50% !important; border: 28px solid rgba(226,125,96,.1) !important; pointer-events: none !important; }
.nxv-page-header h1 { font-size: 28px !important; font-weight: 800 !important; color: white !important; margin: 0 0 6px !important; position: relative; z-index: 1; }
.nxv-page-header p { font-size: 14px !important; color: rgba(255,255,255,.72) !important; margin: 0 !important; position: relative; z-index: 1; }
.nxv-section { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
.nxv-section > *:not(.nxv-page-header) { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 40px !important; padding-right: 40px !important; box-sizing: border-box !important; }
@media(max-width:768px){ .nxv-page-header{padding:28px 20px 32px!important} .nxv-section>*:not(.nxv-page-header){padding-left:16px!important;padding-right:16px!important} }

/* VOTE BUTTONS */
button[class*="vote"], button[class*="voter"], .nxv-budget-vote-btn { background: #e27d60 !important; color: white !important; border: none !important; border-radius: 8px !important; padding: 10px 24px !important; font-size: 13px !important; font-weight: 700 !important; cursor: pointer !important; }
button[class*="vote"]:hover { background: #003366 !important; }

/* PETITIONS MIN HEIGHT */

/* CARTOGRAPHY BUTTON — not floating */
.nxv-carto-add-btn, [class*="add-point"] { position: static !important; }

/* LOGO SUBTITLE */
.dc-logo-sub { font-size: 8px !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; color: rgba(255,255,255,.5) !important; margin-top: -2px !important; font-weight: 500 !important; }

/* ============================================
   v5.0 — COMMERCIAL HOME + NEW SECTIONS
   ============================================ */

/* References band (legacy, hidden) */
.dc-references-band { display: none !important; }

/* References band */
.dc-references-band { background: white; border-bottom: 1px solid #edecea; padding: 20px 60px; }
.dc-references-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.dc-ref-label { font-size: 11px; font-weight: 700; color: #888; text-transform: uppercase; letter-spacing: 1px; white-space: nowrap; }
.dc-ref-logos { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; flex: 1; }
.dc-ref-item { display: flex; flex-direction: column; gap: 2px; opacity: .65; transition: opacity .2s; }
.dc-ref-item:hover { opacity: 1; }
.dc-ref-logo-text { font-size: 14px; font-weight: 800; color: #e27d60; }
.dc-ref-logo-sub { font-size: 9px; color: #888; text-transform: uppercase; letter-spacing: .5px; }
.dc-ref-sep { width: 1px; height: 32px; background: #e2dfdc; }

/* Pour qui section */
.dc-pour-qui-section { padding: 64px 48px; background: #F8F7F5; }
.dc-pour-qui-inner { max-width: 1200px; margin: 0 auto; }
.dc-section-title { text-align: center; margin-bottom: 48px; }
.dc-section-tag { font-size: 11px; font-weight: 700; color: #e27d60; text-transform: uppercase; letter-spacing: 2px; display: block; margin-bottom: 12px; }
.dc-section-title h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; color: #e27d60; margin: 0 0 12px; }
.dc-section-title p { font-size: 15px; color: #566573; max-width: 500px; margin: 0 auto; line-height: 1.7; }
.dc-highlight-gold { color: #c4633a; }
.dc-pour-qui-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: start; }
.dc-pq-card { background: white; border-radius: 16px; border: 1px solid #e2dfdc; padding: 28px 24px; position: relative; transition: transform .2s, box-shadow .2s; }
.dc-pq-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,51,102,.1); }
.dc-pq-featured { border: 2px solid #e27d60; transform: translateY(-8px); }
.dc-pq-featured:hover { transform: translateY(-12px); }
.dc-pq-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: #e27d60; color: white; font-size: 10px; font-weight: 700; padding: 4px 16px; border-radius: 20px; white-space: nowrap; }
.dc-pq-icon { font-size: 32px; margin-bottom: 12px; }
.dc-pq-range { font-size: 11px; font-weight: 700; color: #e27d60; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; }
.dc-pq-title { font-size: 18px; font-weight: 800; color: #e27d60; margin-bottom: 10px; }
.dc-pq-desc { font-size: 13px; color: #566573; line-height: 1.7; margin-bottom: 16px; }
.dc-pq-modules { list-style: none; padding: 0; border-top: 1px solid #edecea; padding-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.dc-pq-modules li { font-size: 12px; color: #566573; padding-left: 18px; position: relative; }
.dc-pq-modules li::before { content: '\2713'; position: absolute; left: 0; color: #003366; font-weight: 700; font-size: 11px; }

/* MD Conseil engagements section */
.dc-mdca-section { background: linear-gradient(135deg, #e27d60 0%, #003366 100%); padding: 64px 48px; }
.dc-mdca-inner { max-width: 1200px; margin: 0 auto; }
.dc-mdca-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.dc-mdca-item { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 24px; transition: background .2s; }
.dc-mdca-item:hover { background: rgba(255,255,255,.13); }
.dc-mdca-icon { font-size: 28px; margin-bottom: 12px; }
.dc-mdca-item h3 { font-size: 15px; font-weight: 700; color: white; margin: 0 0 8px; }
.dc-mdca-item p { font-size: 13px; color: rgba(255,255,255,.7); line-height: 1.7; margin: 0; }

/* Testimonials */
.dc-temoignages-section { padding: 64px 48px; background: white; }
.dc-temoignages-inner { max-width: 1200px; margin: 0 auto; }
.dc-temoignages-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 40px; align-items: start; }
.dc-temoignage-card { background: #F8F7F5; border-radius: 16px; border: 1px solid #e2dfdc; padding: 28px 24px; margin: 0; transition: transform .2s; }
.dc-temoignage-card:hover { transform: translateY(-3px); }
.dc-temoignage-featured { background: #e27d60; border-color: #e27d60; transform: translateY(-6px); }
.dc-temoignage-featured:hover { transform: translateY(-9px); }
.dc-temoignage-card blockquote { margin: 0 0 20px; padding: 0; border: none; }
.dc-temoignage-card blockquote p { font-size: 14px; line-height: 1.75; color: #e27d60; font-style: italic; margin: 0; }
.dc-temoignage-featured blockquote p { color: rgba(255,255,255,.9); }
.dc-temoignage-card figcaption { display: flex; align-items: center; gap: 12px; border-top: 1px solid rgba(0,51,102,.1); padding-top: 16px; }
.dc-temoignage-featured figcaption { border-top-color: rgba(255,255,255,.2); }
.dc-temoignage-avatar { width: 40px; height: 40px; border-radius: 50%; background: #e27d60; color: white; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex-shrink: 0; }
.dc-temoignage-featured .dc-temoignage-avatar { background: rgba(255,255,255,.2); }
.dc-temoignage-card figcaption strong { display: block; font-size: 13px; font-weight: 700; color: #e27d60; }
.dc-temoignage-featured figcaption strong { color: white; }
.dc-temoignage-card figcaption span { font-size: 11px; color: #566573; display: block; }
.dc-temoignage-featured figcaption span { color: rgba(255,255,255,.6); }

/* Contact section */
.dc-contact-section { background: #002244; padding: 64px 48px; }
.dc-contact-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.dc-contact-avantages { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; margin-bottom: 32px; }
.dc-contact-avantages li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: rgba(255,255,255,.8); line-height: 1.5; }
.dc-contact-check { color: #e27d60; font-weight: 700; flex-shrink: 0; }
.dc-contact-form-wrap { background: white; border-radius: 16px; padding: 36px; box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.dc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dc-contact-form .dc-form-group { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.dc-contact-form .dc-label { font-size: 13px; font-weight: 600; color: #e27d60; }
.dc-required { color: #c4633a; margin-left: 2px; }
.dc-contact-form input, .dc-contact-form select, .dc-contact-form textarea {
    width: 100%; padding: 11px 14px; border: 2px solid #e2dfdc; border-radius: 8px;
    font-size: 14px; color: #111827; font-family: inherit; box-sizing: border-box;
    transition: border .15s; outline: none; background: white;
}
.dc-contact-form input:focus, .dc-contact-form select:focus, .dc-contact-form textarea:focus {
    border-color: #e27d60; box-shadow: 0 0 0 3px rgba(0,51,102,.1);
}
.dc-contact-form textarea { resize: vertical; min-height: 80px; }
.dc-form-rgpd { font-size: 12px; color: #566573; line-height: 1.6; margin-bottom: 20px; }
.dc-form-rgpd a { color: #e27d60; }
.dc-btn-full { width: 100%; justify-content: center; }
.dc-contact-success { background: #f0ebe8; border: 1px solid #e27d60; border-radius: 8px; padding: 12px 16px; font-size: 13px; color: #002244; margin-bottom: 16px; }
.dc-contact-error { background: #f0ebe8; border: 1px solid #F09595; border-radius: 8px; padding: 12px 16px; font-size: 13px; color: #791F1F; margin-bottom: 16px; }

/* Hero CTA buttons */
.dc-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.dc-hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(226,125,96,.12); border: 1px solid rgba(226,125,96,.3); color: #e27d60; padding: 6px 16px; border-radius: 30px; font-size: 12px; font-weight: 600; letter-spacing: .5px; margin-bottom: 24px; }
.dc-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: #e27d60; }

/* Homepage spacing */
.dc-home > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.dc-home-footer { display: none !important; }
.home .entry-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.home .inside-article { margin-bottom: 0 !important; padding-bottom: 0 !important; }

@media (max-width: 900px) {
    .dc-pour-qui-grid { grid-template-columns: 1fr; }
    .dc-pq-featured { transform: none; }
    .dc-mdca-grid { grid-template-columns: 1fr; }
    .dc-temoignages-grid { grid-template-columns: 1fr; }
    .dc-temoignage-featured { transform: none; }
    .dc-contact-inner { grid-template-columns: 1fr; }
    .dc-form-row { grid-template-columns: 1fr; }
    .dc-contact-section, .dc-pour-qui-section, .dc-mdca-section, .dc-temoignages-section { padding: 40px 20px; }
    .dc-references-band { padding: 16px 20px; }
    .dc-references-inner { gap: 16px; }
    .dc-ref-sep { display: none; }
}

/* Force hero mockup visible (no animations on it) */
.dc-hero-mockup, .dc-hero-mockup *, .dc-hero-visual, .dc-hero-visual * {
    opacity: 1 !important;
    transform: none !important;
}
.dc-hero-visual { animation: dc-float 6s ease-in-out infinite !important; }

/* Reset animations on homepage to avoid white spaces */
.dc-home .dc-anim-hidden { opacity: 1 !important; transform: none !important; }
.dc-section-title { opacity: 1 !important; transform: none !important; min-height: auto !important; height: auto !important; }

/* Consistent section spacing */
.dc-pour-qui-section { padding: 64px 48px !important; }
.dc-modules-section { padding: 64px 48px !important; }
.dc-mdca-section { padding: 64px 48px !important; }
.dc-contact-section { padding: 64px 48px !important; }

/* Section visual enhancements */
.dc-stats-band { border-bottom: 4px solid #e27d60 !important; box-shadow: 0 4px 24px rgba(0,51,102,.06) !important; }
.dc-hero::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #e27d60 0%, #c4633a 50%, #e27d60 100%); }
.dc-mdca-section { background: linear-gradient(135deg, #e27d60 0%, #003366 100%) !important; position: relative !important; overflow: hidden !important; }
.dc-mdca-section::before { content: ''; position: absolute; top: -100px; right: -100px; width: 400px; height: 400px; border-radius: 50%; background: rgba(226,125,96,.06); pointer-events: none; }
.dc-contact-section { background: linear-gradient(135deg, #003366 0%, #002244 100%) !important; }
.dc-pq-featured { box-shadow: 0 12px 40px rgba(0,51,102,.15) !important; }

/* ---- HOMEPAGE: reduce excessive spacing ---- */
.dc-hero { min-height: auto !important; padding: 60px 48px !important; }
.dc-stats-band { padding: 0 !important; }
.dc-modules-section { padding: 48px 40px !important; }
.dc-why-section { padding: 48px 40px !important; }
.dc-city-section { padding: 48px 40px !important; margin: 0 !important; }

/* Remove the duplicate home footer — GP footer is enough */
.dc-home-footer { display: none !important; }

/* ---- FOOTER: dark background, white text, always visible ---- */
.site-footer {
    background: #001f44 !important;
    border-top: 3px solid #e27d60 !important;
    padding: 0 !important;
    color: rgba(255,255,255,0.6) !important;
}
.site-footer *, .site-info, .site-info *,
.inside-site-info, .copyright-bar, .copyright-bar * {
    color: rgba(255,255,255,0.6) !important;
    background: transparent !important;
}
.dc-footer-bar {
    background: transparent !important;
    color: rgba(255,255,255,0.6) !important;
}
.dc-footer-brand-name { color: #ffffff !important; }
.dc-footer-pipe, .dc-footer-sep { color: rgba(255,255,255,0.25) !important; }
.dc-footer-tagline { color: rgba(255,255,255,0.5) !important; }
.dc-footer-highlight, .dc-footer-mdc-label { color: rgba(255,255,255,0.45) !important; }
b.dc-footer-highlight, .dc-footer-bar strong { color: #e27d60 !important; }
.dc-footer-a11y-link { color: rgba(255,255,255,0.4) !important; }
.dc-footer-mdc-logo { filter: brightness(0) invert(1) !important; opacity: 0.6 !important; }
.inside-site-info, .inside-site-info.grid-container {
    max-width: 100% !important; width: 100% !important;
    padding: 0 !important; overflow: visible !important;
    background: transparent !important;
}
.copyright-bar { overflow: visible !important; background: transparent !important; }

/* ---- Remove white gaps between home sections ---- */
.dc-home > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.dc-city-section + .dc-home-footer,
.dc-city-section + footer { margin-top: 0 !important; }

/* Eliminate any white gap before GeneratePress footer on homepage */
.home .entry-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.home .inside-article { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.home .site-content { margin-bottom: 0 !important; }

@media (max-width: 900px) {
    .dc-hero { min-height: auto !important; padding: 40px 20px !important; }
    .dc-modules-section, .dc-why-section, .dc-city-section { padding: 32px 20px !important; }
}

/* ============================================
   v4.1 CRITICAL FIXES
   ============================================ */

/* BUG 1: Page headers MUST be full width even inside .nxv-section */
.nxv-page-header, .dc-page-header, [class*="page-header"] {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    box-sizing: border-box !important;
    padding: 36px 60px 40px !important;
    position: relative !important;
    background: #003366 !important;
    border-bottom: 3px solid #e27d60 !important;
    overflow: hidden !important;
}
.nxv-page-header h1, .dc-page-header h1 { color: white !important; font-size: 28px !important; font-weight: 800 !important; margin: 0 0 6px !important; position: relative; z-index: 1; }
.nxv-page-header p, .dc-page-header p { color: rgba(255,255,255,0.8) !important; font-size: 14px !important; margin: 0 !important; position: relative; z-index: 1; }
.nxv-page-header::before, .dc-page-header::before {
    content: ''; position: absolute; right: -40px; top: -40px;
    width: 200px; height: 200px; border-radius: 50%;
    border: 28px solid rgba(226,125,96,0.1); pointer-events: none;
}

/* ALL module wrappers: full width outer, centered content */
.entry-content > .nxv-section,
.entry-content > .dc-section,
.entry-content > div > .nxv-section,
.entry-content > .nxv-signalement-citoyen,
.entry-content > .nxv-agenda-citoyen,
.entry-content > .nxv-concertation-citoyen,
.entry-content > .nxv-enquete-section,
.entry-content > [class*="nxv-"][class*="-citoyen"],
.entry-content > [class*="dc-"][class*="-citoyen"],
.entry-content > [class*="dc-"][class*="-section"],
.entry-content > [class*="nxv-"][class*="-section"] {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Content inside ALL module wrappers: centered with margins */
.nxv-section > *:not(.nxv-page-header):not(.dc-page-header),
.dc-section > *:not(.nxv-page-header):not(.dc-page-header),
.nxv-signalement-citoyen > *:not(.nxv-page-header),
.nxv-agenda-citoyen > *:not(.nxv-page-header),
.nxv-concertation-citoyen > *:not(.nxv-page-header),
.nxv-enquete-section > *:not(.nxv-page-header),
[class*="nxv-"][class*="-citoyen"] > *:not(.nxv-page-header),
[class*="dc-"][class*="-citoyen"] > *:not(.nxv-page-header):not(.dc-page-header) {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
    box-sizing: border-box;
}

/* Gestionnaire wraps: centered content */
.nxv-gestionnaire-wrap {
    max-width: 1200px;
    margin: 24px auto;
    padding: 0 32px;
    box-sizing: border-box;
}

/* Minimum height for module pages */
.nxv-section, .dc-section,
.nxv-signalement-citoyen, .nxv-agenda-citoyen,
[class*="nxv-"][class*="-citoyen"],
[class*="dc-"][class*="-section"] { min-height: auto; }

/* Login page — special case, no max-width restriction */
.nxv-login-page, .dc-login-page {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 70vh;
}

/* BUG 9: Cartography add button — not floating */
.dc-add-point-btn, .nxv-add-point-btn, [class*="add-point"] {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: auto !important;
}

@media (max-width: 900px) {
    .nxv-page-header, .dc-page-header { padding: 28px 20px 32px !important; }
    .nxv-section > *:not(.nxv-page-header) { padding-left: 16px; padding-right: 16px; }
}

/* ============================================
   FOOTER + LAYOUT v3.4
   ============================================ */

/* Footer: full width, no clipping */
.site-footer { background: #001f44 !important; border-top: 3px solid #e27d60 !important; padding: 0 !important; width: 100% !important; max-width: 100% !important; }
.inside-site-info, .inside-site-info.grid-container, .copyright-bar, .site-info {
    max-width: 100% !important; width: 100% !important;
    padding: 0 !important; overflow: visible !important;
}
.dc-footer-bar {
    display: flex !important; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 16px; padding: 20px 48px;
    color: rgba(255,255,255,0.55); font-size: 13px; line-height: 1.5;
    width: 100%; max-width: 1280px; margin: 0 auto;
    box-sizing: border-box; font-family: 'Inter', sans-serif;
}
.dc-footer-left { display: flex; align-items: center; gap: 10px; }
.dc-footer-brand-name { color: #fff; font-size: 16px; font-weight: 800; letter-spacing: -0.2px; white-space: nowrap; }
.dc-footer-pipe { color: rgba(255,255,255,0.2); }
.dc-footer-tagline { color: rgba(255,255,255,0.5); font-size: 12px; white-space: nowrap; }
.dc-footer-center { color: rgba(255,255,255,0.4); font-size: 11px; text-align: center; }
.dc-footer-a11y-link { color: rgba(255,255,255,0.4); font-size: 11px; text-decoration: underline; }
.dc-footer-a11y-link:hover { color: rgba(255,255,255,0.7); }
.dc-footer-mdc { display: flex; align-items: center; gap: 8px; text-decoration: none; opacity: 0.85; transition: opacity 0.15s; }
.dc-footer-mdc:hover { opacity: 1; }
.dc-footer-mdc-label { color: rgba(255,255,255,0.45); font-size: 10px; text-transform: uppercase; letter-spacing: 1px; white-space: nowrap; }
.dc-footer-mdc-logo { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: 0.7; }

/* Layout: sections full width, content with margins */
.dc-modules-section, .dc-why-section, .dc-city-section {
    width: 100% !important; max-width: 100% !important;
}

/* Module content containers: centered with proper margins */
.nxv-section, .nxv-signalement-citoyen, .nxv-budget-grid,
.dc-concertation-wrap, .dc-enquete-wrap,
[class*="nxv-"][class*="-grid"], [class*="nxv-"][class*="-list"] {
    max-width: 1200px; margin-left: auto; margin-right: auto;
    padding-left: 32px; padding-right: 32px; box-sizing: border-box;
}
/* Budget grid: 2 columns with gap */
.nxv-budget-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)) !important;
    gap: 24px !important;
}
/* Concertation contribution types */
.dc-contrib-type-avis { background: #f0ebe8; color: #e27d60; }
.dc-contrib-type-proposition { background: #f0ebe8; color: #002244; }
.dc-contrib-type-question { background: #f0ebe8; color: #7A5B00; }
.dc-contrib-type-opposition { background: #f0ebe8; color: #A32D2D; }
/* Enquête legal banner */
.dc-legal-banner { background: #f0ebe8; border: 1px solid #e27d60; border-left: 4px solid #e27d60; padding: 16px 20px; border-radius: 8px; margin-bottom: 24px; font-size: 13px; color: #5F5500; }
/* Vote points controls */
.dc-vote-controls { display: flex; align-items: center; gap: 8px; margin: 12px 0; }
.dc-vote-controls button { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #e2dfdc; background: white; font-size: 18px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.15s; color: #e27d60; }
.dc-vote-controls button:hover { background: #f0ebe8; border-color: #e27d60; }
.dc-vote-controls .dc-points-value { font-size: 20px; font-weight: 800; color: #e27d60; min-width: 28px; text-align: center; }
.dc-has-points { border-color: #e27d60 !important; box-shadow: 0 0 0 2px rgba(0,51,102,0.1); }
/* Points header */
.dc-points-header { display: flex; align-items: center; gap: 20px; padding: 20px 24px; background: #f0ebe8; border-radius: 12px; margin-bottom: 24px; }
.dc-points-num { font-size: 48px; font-weight: 900; color: #e27d60; line-height: 1; }
/* Collapsible sections */
.dc-collapsible-toggle { cursor: pointer; display: flex; align-items: center; gap: 8px; font-weight: 600; color: #e27d60; font-size: 14px; padding: 12px 0; }
.dc-collapsible-content { display: none; padding: 16px 0; }
.dc-collapsible-content.open { display: block; }
@media (max-width: 768px) {
    .nxv-budget-grid { grid-template-columns: 1fr !important; }
    .nxv-section, .dc-concertation-wrap, .dc-enquete-wrap { padding-left: 16px; padding-right: 16px; }
}
.dc-modules-inner, .dc-why-inner, .dc-city-content {
    max-width: 1280px !important; margin: 0 auto !important;
    padding-left: 48px !important; padding-right: 48px !important;
    box-sizing: border-box !important;
}
/* Module wraps: padding for content */
.nxv-section, .nxv-signalement-citoyen, .nxv-budget-grid,
[class*="nxv-"][class*="-grid"], [class*="nxv-"][class*="-list"] {
    max-width: 1200px; margin-left: auto; margin-right: auto;
    padding-left: 32px; padding-right: 32px; box-sizing: border-box;
}
@media (max-width: 768px) {
    .dc-footer-bar { padding: 16px 20px; flex-direction: column; gap: 12px; text-align: center; }
    .dc-footer-left { justify-content: center; }
    .dc-modules-inner, .dc-why-inner { padding-left: 20px !important; padding-right: 20px !important; }
    .nxv-section, .nxv-signalement-citoyen { padding-left: 16px; padding-right: 16px; }
}

/* Global full-width base */
body, .site, #page, .hfeed { max-width: 100% !important; width: 100% !important; overflow-x: hidden !important; }
.grid-container { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.site-content, .content-area, #primary, .entry-content, .page-content {
    max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
}
.page .inside-article { padding: 0 !important; max-width: 100% !important; margin: 0 !important; }
.site-main .grid-container, .content-area .grid-container, .entry-content .grid-container {
    max-width: 100% !important; padding: 0 !important;
}

/* ============================================
   BUG FIXES v3.2 — Must be FIRST for specificity
   ============================================ */

/* BUG 5: Force module cards visible (disable scroll animation) */
.dc-module-card, .nxv-module-card, [class*="module-card"] {
    opacity: 1 !important;
    transform: none !important;
}
.dc-module-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 32px rgba(0,51,102,0.12) !important;
}
.dc-anim-hidden {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.dc-anim-visible { opacity: 1 !important; transform: none !important; }

/* BUG 8: Stats band between hero and modules */
.dc-stats-band {
    background: white !important;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    border-bottom: 2px solid #edecea !important;
    width: 100% !important;
    position: relative;
    z-index: 3;
}
.dc-stat-item {
    text-align: center !important;
    padding: 28px 20px !important;
    border-right: 1px solid #edecea !important;
}
.dc-stat-item:last-child { border-right: none !important; }
.dc-stat-num {
    display: block !important;
    font-size: 36px !important;
    font-weight: 800 !important;
    color: #003366 !important;
    line-height: 1 !important;
}
.dc-stat-label {
    display: block !important;
    font-size: 12px !important;
    color: #566573 !important;
    margin-top: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
    font-weight: 500 !important;
}

/* BUG 9: Page headers proper size */
.nxv-page-header, .dc-page-header {
    background: #003366 !important;
    padding: 40px 60px 44px !important;
    border-bottom: 3px solid #e27d60 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
}
.nxv-page-header::before, .dc-page-header::before {
    content: '' !important;
    position: absolute !important;
    right: -40px !important;
    top: -40px !important;
    width: 200px !important;
    height: 200px !important;
    border-radius: 50% !important;
    border: 28px solid rgba(226,125,96,0.1) !important;
    pointer-events: none !important;
}
.nxv-page-header h1, .dc-page-header h1 {
    font-size: 28px !important;
    font-weight: 800 !important;
    color: white !important;
    margin: 0 0 6px !important;
    position: relative !important;
    z-index: 1 !important;
}
.nxv-page-header p, .dc-page-header p {
    font-size: 14px !important;
    color: rgba(255,255,255,0.8) !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
}

/* ============================================
   FULL WIDTH + HEADER + HERO FIXES (v3.0)
   Must be at TOP for specificity
   ============================================ */

/* --- FULL WIDTH GLOBAL --- */
body, .site, .site-content, #page, .hfeed {
    max-width: 100% !important;
    width: 100% !important;
    overflow-x: hidden !important;
}
.grid-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.site-content, .content-area, #primary,
.entry-content, .page-content {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.site-main .grid-container,
.content-area .grid-container,
.entry-content .grid-container {
    max-width: 100% !important;
    padding: 0 !important;
}
.page .inside-article {
    padding: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* --- HEADER (60px, logo left, nav right) --- */
.site-header {
    background: #003366 !important;
    border-bottom: 3px solid #e27d60 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: 0 2px 16px rgba(0,51,102,0.25) !important;
    padding: 0 !important;
}
.site-header::after { display: none !important; }
.site-header .inside-header {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 40px !important;
    height: 60px !important;
    min-height: 60px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    flex-wrap: nowrap !important;
    box-sizing: border-box !important;
}
.site-header.dc-header-scrolled {
    box-shadow: 0 4px 30px rgba(0,51,102,0.25) !important;
}

/* Hide native GP branding */
.site-branding, .site-title, .site-description,
.main-title, .header-image, .site-logo { display: none !important; }

/* Logo wrapper */
.dc-logo-wrapper {
    flex-shrink: 0 !important;
    padding: 0 !important;
    height: 60px !important;
    display: flex !important;
    align-items: center !important;
}
.dc-logo-link {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}
.dc-logo-link svg { flex-shrink: 0 !important; width: 36px !important; height: 36px !important; }
.dc-logo-text-wrap { display: flex; flex-direction: column; line-height: 1.1; }
.dc-logo-name {
    display: block; color: white !important; font-size: 18px !important;
    font-weight: 800 !important; letter-spacing: -0.3px !important;
    line-height: 1.1 !important; white-space: nowrap !important;
    font-family: 'Inter', Arial, sans-serif !important;
}
.dc-logo-accent { color: #e27d60 !important; }
.dc-logo-sub {
    display: block; color: rgba(255,255,255,0.65) !important;
    font-size: 9px !important; letter-spacing: 1.2px !important;
    text-transform: uppercase !important; margin-top: 1px !important;
    font-family: 'Inter', Arial, sans-serif !important;
}

/* Nav right-aligned, compact */
.main-navigation {
    flex: 1 !important; display: flex !important;
    justify-content: flex-end !important; align-items: center !important;
    height: 60px !important;
    background: transparent !important;
}
.main-navigation, .main-navigation .main-nav ul li a { background-color: transparent !important; }
.main-navigation .menu, .main-navigation .main-nav > ul {
    display: flex !important; align-items: center !important;
    flex-wrap: nowrap !important; gap: 2px !important;
    list-style: none !important; margin: 0 !important; padding: 0 !important;
    height: 60px !important;
}
.main-navigation .menu > li {
    display: flex !important; align-items: center !important; height: 60px !important;
}
.main-navigation .menu > li > a {
    display: flex !important; align-items: center !important;
    height: 44px !important; padding: 0 12px !important;
    font-size: 13px !important; font-weight: 500 !important;
    color: rgba(255,255,255,0.8) !important;
    text-decoration: none !important; white-space: nowrap !important;
    border-radius: 6px !important;
    transition: color 0.15s, background 0.15s !important;
}
.main-navigation .menu > li > a:hover,
.main-navigation .current-menu-item > a {
    color: white !important; background: rgba(255,255,255,0.12) !important;
}
/* Golden connexion button */
.main-navigation a[href*="connexion"],
.main-navigation a[href*="connexion/"] {
    background: #e27d60 !important; color: white !important;
    font-weight: 700 !important; border-radius: 6px !important;
    margin-left: 8px !important;
}
.main-navigation a[href*="connexion"]:hover { background: #c4633a !important; color: white !important; }
/* Hamburger */
.menu-toggle {
    color: white !important; background: rgba(255,255,255,0.1) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 6px !important; min-height: 44px !important; min-width: 44px !important;
}
/* Prevent stray logo outside header */
body > .dc-logo-link, body > .dc-logo-wrapper, body > a.dc-logo-link { display: none !important; }

/* --- HERO TEXT COLORS (critical: white on blue) --- */
.dc-hero, .dc-hero * { color: white; }
.dc-hero h1, .dc-hero .dc-hero-title,
.dc-hero .dc-title-line1, .dc-hero .dc-title-line2 {
    color: white !important;
    font-size: clamp(32px, 3.5vw, 52px) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
}
.dc-hero .dc-title-em, .dc-hero em { color: #e27d60 !important; font-style: normal !important; }
.dc-hero p, .dc-hero .dc-hero-sub {
    color: rgba(255,255,255,0.88) !important;
    font-size: 16px !important; line-height: 1.7 !important;
}
.dc-hero-trust, .dc-hero .dc-trust-item {
    color: rgba(255,255,255,0.8) !important; font-size: 13px !important; opacity: 1 !important;
}
.dc-hero .dc-trust-sep { color: rgba(255,255,255,0.4) !important; }
.dc-hero .dc-hero-eyebrow { color: #e27d60 !important; }

/* Hero full width layout */
.dc-hero {
    width: 100% !important; max-width: 100% !important;
    margin: 0 !important; padding: 80px 60px !important;
    box-sizing: border-box !important;
    display: flex !important; align-items: center !important;
    justify-content: space-between !important; gap: 60px !important;
    min-height: auto !important; position: relative !important; overflow: hidden !important;
    background: #003366 !important;
}
.dc-hero-content { flex: 1 !important; max-width: 580px !important; position: relative !important; z-index: 2 !important; }
.dc-hero-visual { flex-shrink: 0 !important; position: relative !important; z-index: 2 !important; }

/* Stats band full width */
.dc-stats-band { width: 100% !important; max-width: 100% !important; }

/* Sections with inner containers */
.dc-modules-section, .dc-why-section, .dc-city-section, .dc-home-footer {
    width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
}
.dc-modules-inner, .dc-why-inner, .dc-city-content, .dc-home-footer-content {
    max-width: 1200px !important; margin: 0 auto !important; padding: 0 40px !important;
}

/* --- FOOTER --- */
.site-footer {
    background: #001f44 !important;
    border-top: 3px solid #e27d60 !important;
    padding: 0 !important;
}
.dc-footer-inner {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; flex-wrap: wrap; padding: 20px 24px;
    color: rgba(255,255,255,0.55); font-size: 13px; font-family: 'Inter', sans-serif;
}
.dc-footer-brand {
    font-size: 15px; font-weight: 800; color: white !important;
    text-decoration: none; letter-spacing: -0.3px;
}
.dc-footer-brand span { color: #e27d60 !important; }
.dc-footer-sep { opacity: 0.3; }
.dc-footer-inner strong { color: #e27d60 !important; font-weight: 600; }
.dc-footer-inner a { color: #e27d60 !important; text-decoration: underline; }

/* --- RGAA ACCESSIBILITY --- */
/* sr-only */
.sr-only {
    position: absolute !important; width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important; overflow: hidden !important;
    clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}
/* Skip link */
.dc-skip-link {
    position: absolute; top: -100px; left: 16px; z-index: 99999;
    background: #e27d60; color: white;
    padding: 12px 20px; font-weight: 700; font-size: 14px;
    border-radius: 0 0 8px 8px; text-decoration: none;
    transition: top 0.2s; font-family: 'Inter', sans-serif;
}
.dc-skip-link:focus { top: 0 !important; outline: 3px solid #003366; }
/* Focus visible */
*:focus-visible {
    outline: 3px solid #e27d60 !important;
    outline-offset: 3px !important;
}
*:focus:not(:focus-visible) { outline: none !important; }
.dc-module-card:focus-visible, .nxv-btn-primary:focus-visible, .dc-btn-gold:focus-visible {
    box-shadow: 0 0 0 3px #e27d60, 0 0 0 5px #e27d60 !important;
    outline: none !important;
}
/* Touch targets 44px */
button, .nxv-btn-primary, .nxv-btn-gold, .dc-btn-gold,
.dc-module-card, a.dc-btn-ghost, .nxv-pill, .nxv-budget-vote-btn,
.main-navigation a { min-height: 44px; }
/* Contrast fixes RGAA 3.2 */
.nxv-stat-label, .dc-stat-label, .nxv-module-card p,
.dc-module-card p, .nxv-signalement-item-date,
.nxv-signalement-count, .nxv-footer-tagline { color: #566573 !important; }
/* Links underlined (RGAA 10.2) except nav/buttons */
.entry-content a:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]):not([class*="card"]):not([class*="link"]), .dc-content-wrap a:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]):not([class*="card"]):not([class*="link"]) { text-decoration: underline !important; }
.main-navigation a, .dc-btn-gold, .nxv-btn-primary, .dc-btn-ghost, [class*="dc-conc-btn"], [class*="dc-eq-btn"], [class*="dc-signal-btn"], [class*="dc-hero2-btn"], [class*="dc-bp-"], .dc-blc-btn, .dc-bi-submit,
.dc-module-card, .dc-footer-brand, .dc-logo-link, .nxv-module-link { text-decoration: none !important; }
/* Reduced motion (RGAA 13.2) */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    .dc-hero-visual { animation: none !important; }
    .dc-anim-hidden { opacity: 1 !important; transform: none !important; }
}
/* High contrast (RGAA) */
@media (forced-colors: active) {
    .dc-btn-gold, .nxv-btn-primary { border: 2px solid ButtonText !important; }
    .dc-module-card { border: 1px solid ButtonText !important; }
}
/* no-js fallback */
.no-js .dc-anim-hidden { opacity: 1 !important; transform: none !important; }

/* Form styles (RGAA 11) */
.dc-label { display: block; font-size: 14px; font-weight: 600; color: #e27d60; margin-bottom: 6px; }
.dc-required { color: #c4633a; margin-left: 3px; }
.dc-input {
    width: 100%; height: 48px; padding: 0 14px;
    border: 2px solid #d4cfcc; border-radius: 8px;
    font-size: 15px; color: #111827; background: white;
    transition: border 0.15s;
}
.dc-input:focus { border-color: #e27d60 !important; outline: 3px solid rgba(226,125,96,0.4) !important; outline-offset: 2px !important; }
.dc-input[aria-invalid="true"] { border-color: #c4633a !important; }
.dc-field-hint { font-size: 12px; color: #566573; margin-top: 4px; display: block; }
.dc-field-error { font-size: 12px; color: #A32D2D; margin-top: 4px; display: block; }

/* Accessibility page */
.dc-accessibility-page { padding: 0 40px 60px; max-width: 800px; margin: 0 auto; }
.dc-accessibility-page h2 { color: #e27d60; font-size: 22px; margin: 32px 0 12px; }
.dc-accessibility-page h3 { font-size: 18px; margin: 20px 0 8px; }
.dc-accessibility-page p, .dc-accessibility-page li { color: #333; line-height: 1.8; font-size: 15px; }
.dc-accessibility-page ul { padding-left: 20px; }
.dc-content-wrap { padding: 24px 40px 60px; max-width: 800px; margin: 0 auto; }

/* Hero responsive */
@media (max-width: 900px) {
    .dc-hero { flex-direction: column !important; padding: 60px 24px !important; min-height: auto !important; }
    .dc-hero-visual { display: none !important; }
    .dc-hero h1, .dc-hero-title { font-size: 32px !important; }
    .dc-hero-trust { flex-wrap: wrap; gap: 8px; }
    .site-header .inside-header { padding: 0 16px !important; }
}

/* ============================================
   DIACITE — Global Design System
   Complete CSS — all nxv- classes preserved
   ============================================ */

/* ---- :root Variables ---- */
:root {
    /* Legacy nxv- variables (backward compat) */
    --nxv-blue: #003366;
    --nxv-blue-dark: #002244;
    --nxv-blue-light: #1a4d8a;
    --nxv-gold: #e27d60;
    --nxv-gold-dark: #c4633a;
    --nxv-white: #ffffff;
    --nxv-off: #F8F7F5;
    --nxv-text: #111827;
    --nxv-muted: #6B7280;
    --nxv-border: #E5E7EB;
    --nxv-success: #566573;
    --nxv-danger: #e27d60;
    --nxv-warning: #e27d60;
    --nxv-radius: 12px;
    --nxv-radius-sm: 8px;
    --nxv-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
    --nxv-shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
    --nxv-transition: all 0.2s ease;

    /* New dc- variables */
    --dc-blue: #003366;
    --dc-blue-dark: #003366;
    --dc-blue-deeper: #001f44;
    --dc-blue-light: #1a4d8a;
    --dc-gold: #e27d60;
    --dc-gold-dark: #c4633a;
    --dc-white: #ffffff;
    --dc-off: #F8F7F5;
    --dc-text: #111827;
    --dc-muted: #6B7280;
    --dc-border: #E5E7EB;
    --dc-success: #566573;
    --dc-danger: #e27d60;
    --dc-warning: #e27d60;
    --dc-radius: 12px;
    --dc-radius-sm: 8px;
    --dc-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
    --dc-shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
    --dc-transition: all 0.2s ease;
}

/* ---- Reset & Base ---- */
.nxv-home, .nxv-login-page, [class^="nxv-"],
.dc-home, .dc-login-page, [class^="dc-"] {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--nxv-text);
    line-height: 1.6;
    box-sizing: border-box;
}
[class^="nxv-"] *, [class^="nxv-"] *::before, [class^="nxv-"] *::after,
[class^="dc-"] *, [class^="dc-"] *::before, [class^="dc-"] *::after {
    box-sizing: border-box;
}

/* ---- Buttons ---- */
.nxv-btn-primary {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 28px; background: var(--nxv-blue); color: var(--nxv-white);
    border: none; border-radius: var(--nxv-radius-sm); font-weight: 600;
    font-size: 15px; cursor: pointer; text-decoration: none;
    transition: var(--nxv-transition);
}
.nxv-btn-primary:hover { background: var(--nxv-blue-light); color: var(--nxv-white); transform: translateY(-1px); }
.nxv-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.nxv-btn-gold {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 28px; background: var(--nxv-gold); color: var(--nxv-text);
    border: none; border-radius: var(--nxv-radius-sm); font-weight: 600;
    font-size: 15px; cursor: pointer; text-decoration: none;
    transition: var(--nxv-transition);
}
.nxv-btn-gold:hover { background: var(--nxv-gold-dark); color: var(--nxv-text); transform: translateY(-1px); }

.nxv-btn-sm { padding: 8px 16px; font-size: 13px; }
.nxv-btn-lg { padding: 16px 36px; font-size: 16px; }
.nxv-btn-full { width: 100%; }
.nxv-btn-outline {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 10px 24px; background: transparent; color: var(--nxv-blue);
    border: 2px solid var(--nxv-blue); border-radius: var(--nxv-radius-sm);
    font-weight: 600; font-size: 14px; cursor: pointer; text-decoration: none;
    transition: var(--nxv-transition);
}
.nxv-btn-outline:hover { background: var(--nxv-blue); color: var(--nxv-white); }
.nxv-btn-danger { background: var(--nxv-danger); color: white; padding: 8px 16px; border: none; border-radius: var(--nxv-radius-sm); font-weight: 600; cursor: pointer; font-size: 13px; }
.nxv-btn-danger:hover { opacity: 0.9; }
.nxv-btn-success { background: var(--nxv-success); color: white; padding: 8px 16px; border: none; border-radius: var(--nxv-radius-sm); font-weight: 600; cursor: pointer; font-size: 13px; }

/* ---- Cards ---- */
.nxv-card {
    background: var(--nxv-white); border-radius: var(--nxv-radius);
    box-shadow: var(--nxv-shadow); padding: 24px;
    transition: var(--nxv-transition); border: 1px solid var(--nxv-border);
}
.nxv-card:hover { box-shadow: var(--nxv-shadow-lg); }

/* ---- Badges ---- */
.nxv-badge {
    display: inline-flex; align-items: center; padding: 4px 12px;
    border-radius: 100px; font-size: 12px; font-weight: 600;
}
.nxv-badge-blue { background: #f0ebe8; color: var(--nxv-blue); }
.nxv-badge-green { background: #f0ebe8; color: #566573; }
.nxv-badge-red { background: #f0ebe8; color: #DC2626; }
.nxv-badge-orange { background: #f0ebe8; color: #e27d60; }
.nxv-badge-gold { background: #f0ebe8; color: var(--nxv-gold-dark); }

/* ---- Progress Bar ---- */
.nxv-progress { background: #E5E7EB; border-radius: 100px; height: 8px; overflow: hidden; }
.nxv-progress-bar { height: 100%; border-radius: 100px; transition: width 0.5s ease; }
.nxv-progress-blue .nxv-progress-bar { background: var(--nxv-blue); }
.nxv-progress-gold .nxv-progress-bar { background: var(--nxv-gold); }
.nxv-progress-green .nxv-progress-bar { background: var(--nxv-success); }

/* ---- Toast ---- */
.nxv-toast-container { position: fixed; top: 24px; right: 24px; z-index: 99999; display: flex; flex-direction: column; gap: 8px; }
.nxv-toast {
    padding: 14px 20px; border-radius: var(--nxv-radius-sm);
    color: white; font-weight: 500; font-size: 14px;
    box-shadow: var(--nxv-shadow-lg); animation: nxvSlideIn 0.3s ease;
    display: flex; align-items: center; gap: 8px; min-width: 280px;
}
.nxv-toast-success { background: var(--nxv-success); }
.nxv-toast-error { background: var(--nxv-danger); }
.nxv-toast-info { background: var(--nxv-blue); }
@keyframes nxvSlideIn { from { transform: translateX(100px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes nxvSlideOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100px); opacity: 0; } }

/* ---- Page Header (nxv legacy) ---- */
.nxv-page-header {
    background: var(--nxv-blue); color: white; padding: 48px 32px 52px;
    margin: -20px -20px 32px; position: relative;
    border-bottom: 4px solid var(--nxv-gold);
}
.nxv-page-header h1 { color: white; font-size: 28px; font-weight: 800; margin: 0 0 8px; }
.nxv-page-header p { color: rgba(255,255,255,0.8); font-size: 16px; margin: 0; }

/* ---- Forms ---- */
.nxv-form-group { margin-bottom: 20px; }
.nxv-form-group label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; color: var(--nxv-text); }
.nxv-form-group input, .nxv-form-group textarea, .nxv-form-group select {
    width: 100%; padding: 12px 16px; border: 2px solid var(--nxv-border);
    border-radius: var(--nxv-radius-sm); font-size: 15px; font-family: inherit;
    transition: var(--nxv-transition); background: white;
}
.nxv-form-group input:focus, .nxv-form-group textarea:focus, .nxv-form-group select:focus {
    outline: none; border-color: var(--nxv-blue); box-shadow: 0 0 0 3px rgba(0,51,102,0.1);
}
.nxv-form-group textarea { min-height: 100px; resize: vertical; }

/* ---- Pills/Filters ---- */
.nxv-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.nxv-pill {
    padding: 8px 16px; border-radius: 100px; border: 2px solid var(--nxv-border);
    background: white; cursor: pointer; font-size: 13px; font-weight: 500;
    transition: var(--nxv-transition); color: var(--nxv-muted);
}
.nxv-pill:hover, .nxv-pill.active { background: var(--nxv-blue); color: white; border-color: var(--nxv-blue); }

/* ---- Tables ---- */
.nxv-table-wrap { overflow-x: auto; }
.nxv-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.nxv-table th { text-align: left; padding: 12px 16px; background: var(--nxv-off); font-weight: 600; color: var(--nxv-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 2px solid var(--nxv-border); }
.nxv-table td { padding: 12px 16px; border-bottom: 1px solid var(--nxv-border); vertical-align: middle; }
.nxv-table tr:hover td { background: var(--nxv-off); }
.nxv-table select { padding: 6px 10px; border: 1px solid var(--nxv-border); border-radius: 6px; font-size: 13px; }

/* ---- Stats Grid ---- */
.nxv-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 32px; }
.nxv-stat-card {
    background: white; border-radius: var(--nxv-radius); padding: 24px;
    text-align: center; box-shadow: var(--nxv-shadow); border: 1px solid var(--nxv-border);
}
.nxv-stat-number { display: block; font-size: 32px; font-weight: 800; color: var(--nxv-blue); }
.nxv-stat-label { display: block; font-size: 13px; color: var(--nxv-muted); margin-top: 4px; }
.nxv-stat-blue .nxv-stat-number { color: var(--nxv-blue); }
.nxv-stat-green .nxv-stat-number { color: var(--nxv-success); }
.nxv-stat-purple .nxv-stat-number { color: #003366; }
.nxv-stat-orange .nxv-stat-number { color: #e27d60; }

/* ---- Modules Grid (nxv legacy) ---- */
.nxv-modules-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.nxv-module-link {
    display: flex; align-items: center; gap: 12px; padding: 16px 20px;
    background: white; border-radius: var(--nxv-radius-sm); border: 1px solid var(--nxv-border);
    text-decoration: none; color: var(--nxv-text); transition: var(--nxv-transition);
}
.nxv-module-link:hover { border-color: var(--nxv-blue); box-shadow: var(--nxv-shadow); transform: translateY(-2px); }
.nxv-module-icon { font-size: 24px; }

/* ---- Modal ---- */
.nxv-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5); z-index: 9999; display: none;
    align-items: center; justify-content: center;
}
.nxv-modal-overlay.active { display: flex; }
.nxv-modal {
    background: white; border-radius: var(--nxv-radius); padding: 32px;
    max-width: 560px; width: 90%; max-height: 90vh; overflow-y: auto;
    box-shadow: var(--nxv-shadow-lg);
}
.nxv-modal h2 { margin: 0 0 24px; font-size: 20px; }
.nxv-modal-close {
    float: right; background: none; border: none; font-size: 24px;
    cursor: pointer; color: var(--nxv-muted); padding: 0; line-height: 1;
}
.nxv-modal-actions { display: flex; gap: 12px; margin-top: 24px; justify-content: flex-end; }

/* ---- Login Page ---- */
.nxv-login-page { display: flex; justify-content: center; align-items: center; min-height: 60vh; padding: 40px 20px; }
.nxv-login-card { background: white; border-radius: var(--nxv-radius); box-shadow: var(--nxv-shadow-lg); padding: 48px; max-width: 460px; width: 100%; }
.nxv-login-header { text-align: center; margin-bottom: 32px; }
.nxv-login-header h1 { font-size: 24px; margin: 16px 0 8px; }
.nxv-login-header p { color: var(--nxv-muted); margin: 0; }
.nxv-login-form { margin-bottom: 24px; }
.nxv-login-forgot { display: block; text-align: center; margin-top: 16px; color: var(--nxv-blue); font-size: 14px; text-decoration: none; }
.nxv-login-forgot:hover { text-decoration: underline; }

.nxv-login-prompt { text-align: center; padding: 60px 20px; }
.nxv-login-prompt-inner { max-width: 400px; margin: 0 auto; }
.nxv-login-prompt h2 { font-size: 22px; margin: 16px 0 8px; }
.nxv-login-prompt p { color: var(--nxv-muted); margin: 0 0 24px; }

.nxv-demo-accounts { background: var(--nxv-off); border-radius: var(--nxv-radius-sm); padding: 20px; }
.nxv-demo-accounts h3 { font-size: 14px; color: var(--nxv-muted); margin: 0 0 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.nxv-demo-account { display: flex; align-items: center; gap: 12px; padding: 8px 0; font-size: 14px; }
.nxv-demo-account + .nxv-demo-account { border-top: 1px solid var(--nxv-border); }
.nxv-demo-role { background: var(--nxv-blue); color: white; padding: 4px 10px; border-radius: 100px; font-size: 11px; font-weight: 600; min-width: 90px; text-align: center; }
.nxv-demo-role-admin { background: var(--nxv-gold); color: var(--nxv-text); }
.nxv-demo-account code { background: white; padding: 2px 6px; border-radius: 4px; font-size: 13px; }

.nxv-alert { padding: 12px 16px; border-radius: var(--nxv-radius-sm); margin-bottom: 16px; font-size: 14px; }
.nxv-alert-error { background: #f0ebe8; color: #DC2626; border: 1px solid #FECACA; }

/* ---- Logo (nxv legacy) ---- */
.nxv-logo-mark {
    display: inline-block; width: 32px; height: 32px;
    background: var(--nxv-gold); border-radius: 6px; vertical-align: middle;
    margin-right: 8px;
}
.nxv-logo-text { font-weight: 800; font-size: 22px; color: var(--nxv-blue); vertical-align: middle; }
.nxv-login-logo .nxv-logo-mark { width: 40px; height: 40px; border-radius: 8px; }
.nxv-login-logo .nxv-logo-text { font-size: 26px; }

/* ============================================
   HOMEPAGE (nxv legacy)
   ============================================ */
.nxv-hero {
    background: var(--nxv-blue); color: white; padding: 80px 40px 100px;
    text-align: center; position: relative; overflow: hidden;
    margin: -20px -20px 0;
}
.nxv-hero::after {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0;
    height: 4px; background: var(--nxv-gold);
}
.nxv-hero-content { max-width: 700px; margin: 0 auto; position: relative; z-index: 1; }
.nxv-hero h1 { font-size: 44px; font-weight: 800; line-height: 1.15; margin: 0 0 20px; color: white; }
.nxv-hero-highlight { color: var(--nxv-gold); }
.nxv-hero-sub { font-size: 18px; color: rgba(255,255,255,0.85); margin: 0 0 36px; line-height: 1.7; }
.nxv-hero-cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.nxv-hero-decoration {
    position: absolute; top: -50%; right: -10%; width: 500px; height: 500px;
    background: rgba(255,255,255,0.03); border-radius: 50%;
}

.nxv-home-stats { background: white; padding: 0; margin-top: -40px; position: relative; z-index: 2; }
.nxv-stats-container {
    display: grid; grid-template-columns: repeat(4, 1fr);
    max-width: 900px; margin: 0 auto;
    background: white; border-radius: var(--nxv-radius); box-shadow: var(--nxv-shadow-lg);
    overflow: hidden;
}
.nxv-home-stat { padding: 32px 20px; text-align: center; }
.nxv-home-stat + .nxv-home-stat { border-left: 1px solid var(--nxv-border); }
.nxv-home-stat-number { display: block; font-size: 28px; font-weight: 800; color: var(--nxv-blue); }
.nxv-home-stat-label { display: block; font-size: 13px; color: var(--nxv-muted); margin-top: 4px; }

.nxv-home-modules { padding: 80px 40px; max-width: 1100px; margin: 0 auto; }
.nxv-section-header { text-align: center; margin-bottom: 48px; }
.nxv-section-header h2 { font-size: 32px; font-weight: 800; margin: 0 0 12px; }
.nxv-section-header p { font-size: 16px; color: var(--nxv-muted); margin: 0; }

.nxv-modules-showcase { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.nxv-module-card {
    display: block; background: white; border-radius: var(--nxv-radius);
    padding: 28px; text-decoration: none; color: var(--nxv-text);
    border: 1px solid var(--nxv-border); transition: var(--nxv-transition);
}
.nxv-module-card:hover { border-color: var(--nxv-blue); box-shadow: var(--nxv-shadow-lg); transform: translateY(-4px); color: var(--nxv-text); }
.nxv-module-card-icon { width: 52px; height: 52px; background: var(--nxv-off); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--nxv-blue); margin-bottom: 16px; }
.nxv-module-card h3 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.nxv-module-card p { font-size: 14px; color: var(--nxv-muted); margin: 0 0 16px; line-height: 1.5; }
.nxv-module-card-tag { display: inline-block; background: var(--nxv-off); color: var(--nxv-blue); padding: 4px 12px; border-radius: 100px; font-size: 12px; font-weight: 600; }

.nxv-home-city {
    background: var(--nxv-blue); color: white; padding: 80px 40px;
    text-align: center; margin: 0 -20px; position: relative;
}
.nxv-home-city::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--nxv-gold); }
.nxv-city-content { max-width: 800px; margin: 0 auto; }
.nxv-city-content h2 { font-size: 32px; font-weight: 800; color: white; margin: 0 0 20px; }
.nxv-city-content > p { color: rgba(255,255,255,0.8); font-size: 16px; line-height: 1.7; margin: 0 0 40px; }
.nxv-city-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.nxv-city-highlight { background: rgba(255,255,255,0.1); border-radius: var(--nxv-radius-sm); padding: 24px; }
.nxv-city-highlight strong { display: block; font-size: 28px; color: var(--nxv-gold); margin-bottom: 4px; }
.nxv-city-highlight span { font-size: 14px; color: rgba(255,255,255,0.8); }

.nxv-home-footer {
    background: var(--nxv-blue-dark); color: white; padding: 40px;
    text-align: center; margin: 0 -20px -20px;
    border-top: 3px solid var(--nxv-gold);
}
.nxv-footer-content { max-width: 600px; margin: 0 auto; }
.nxv-footer-brand { margin-bottom: 8px; }
.nxv-footer-brand .nxv-logo-text { color: white; }
.nxv-footer-tagline { color: rgba(255,255,255,0.6); font-size: 14px; margin: 0 0 24px; }
.nxv-footer-credits p { color: rgba(255,255,255,0.7); font-size: 14px; margin: 4px 0; }
.nxv-footer-copy { font-size: 12px !important; color: rgba(255,255,255,0.4) !important; }

/* ---- Gestionnaire Sidebar Nav ---- */
.nxv-gestionnaire-wrap { display: flex; gap: 24px; min-height: 600px; }
.nxv-sidebar {
    width: 240px; flex-shrink: 0; background: white; border-radius: var(--nxv-radius);
    border: 1px solid var(--nxv-border); padding: 16px; align-self: flex-start;
    position: sticky; top: 80px;
}
.nxv-sidebar h3 { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--nxv-muted); margin: 0 0 12px; padding: 0 8px; }
.nxv-sidebar a {
    display: block; padding: 10px 12px; border-radius: 6px; text-decoration: none;
    color: var(--nxv-text); font-size: 14px; font-weight: 500; transition: var(--nxv-transition);
}
.nxv-sidebar a:hover { background: var(--nxv-off); color: var(--nxv-blue); }
.nxv-sidebar a.active { background: var(--nxv-blue); color: white; }
.nxv-main-content { flex: 1; min-width: 0; }

/* ---- Leaflet Overrides (nxv legacy) ---- */
.nxv-map { height: 400px; border-radius: var(--nxv-radius); border: 1px solid var(--nxv-border); z-index: 1; }
.nxv-map-full { height: 500px; }

/* ---- Logo wrap (nxv legacy) ---- */
.nxv-logo-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
    padding: 8px 0 !important;
    flex-shrink: 0 !important;
}
.nxv-logo-wrap-text { display: flex; flex-direction: column; line-height: 1.2; }
.nxv-logo-wrap-name { font-family: Inter, sans-serif; font-weight: 700; font-size: 20px; color: white; }
.nxv-logo-wrap-tagline { font-family: Inter, sans-serif; font-weight: 400; font-size: 10px; color: rgba(255,255,255,0.65); }

/* ---- Footer inner (nxv legacy) ---- */
.nxv-footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 1100px;
    margin: 0 auto;
}

/* ---- Leaflet map fix (nxv legacy) ---- */
#nxv-signalement-map { height: 400px !important; width: 100% !important; min-height: 400px !important; }
.nxv-signalement-map { height: 400px !important; width: 100% !important; min-height: 400px !important; }

/* ============================================
   HEADER REDESIGNED
   ============================================ */
.site-header { background: #003366 !important; border-bottom: 3px solid #e27d60 !important; padding: 0 !important; position: sticky !important; top: 0 !important; z-index: 999 !important; box-shadow: 0 2px 20px rgba(0,51,102,0.3) !important; }
.site-header::after { display: none !important; }
.site-header .site-branding, .site-header .site-title, .site-header .site-description, .site-header .main-title, .header-image, .site-logo { display: none !important; }
.site-header .inside-header { padding: 0 20px !important; min-height: 56px !important; display: flex !important; align-items: center !important; }
.site-header.dc-header-scrolled { box-shadow: 0 4px 30px rgba(0,51,102,0.25) !important; }

/* ============================================
   DC LOGO LINK
   ============================================ */
.dc-logo-link { display: flex; align-items: center; gap: 10px; text-decoration: none; padding: 10px 20px; flex-shrink: 0; }
.dc-logo-name { display: block; color: white; font-size: 20px; font-weight: 800; letter-spacing: -0.5px; line-height: 1; }
.dc-logo-accent { color: #e27d60; }
.dc-logo-sub { display: block; color: rgba(255,255,255,0.6); font-size: 10px; font-weight: 400; letter-spacing: 0.5px; text-transform: uppercase; margin-top: 2px; }

/* ============================================
   NAVIGATION — COMPACT SINGLE-LINE
   ============================================ */
.main-navigation, .main-navigation .main-nav ul li a { background-color: transparent !important; }
.main-navigation .menu, .main-navigation .main-nav > ul { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 2px !important; }
.main-navigation a, .main-navigation .main-nav ul li a { color: rgba(255,255,255,0.75) !important; font-size: 12px !important; font-weight: 500 !important; padding: 6px 10px !important; border-radius: 6px !important; transition: all 0.15s !important; white-space: nowrap !important; }
.main-navigation a:hover, .main-navigation .main-nav ul li a:hover, .main-navigation .main-nav ul li.current-menu-item > a { color: #fff !important; background: rgba(255,255,255,0.12) !important; }
.menu-item-login > a, .main-navigation a[href*="/connexion"], .main-navigation a[href*="/connexion/"] { background: #e27d60 !important; color: white !important; font-weight: 700 !important; border-radius: 6px !important; padding: 6px 18px !important; margin-left: 4px !important; }
.menu-item-login > a:hover, .main-navigation a[href*="/connexion"]:hover { background: #c4633a !important; color: white !important; }
.menu-toggle { color: white !important; border-color: rgba(255,255,255,0.3) !important; }

/* ============================================
   DC HERO SECTION
   ============================================ */
.dc-hero { background: #003366; min-height: 85vh; display: flex; align-items: center; justify-content: space-between; padding: 80px 60px; position: relative; overflow: hidden; gap: 60px; margin: -20px -20px 0; }
.dc-hero::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(circle at 20% 50%, rgba(226,125,96,0.08) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255,255,255,0.04) 0%, transparent 40%), radial-gradient(circle at 60% 80%, rgba(43,62,204,0.5) 0%, transparent 50%); pointer-events: none; }
.dc-hero::after { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px); background-size: 60px 60px; pointer-events: none; }
.dc-hero-content { position: relative; z-index: 2; max-width: 580px; }
.dc-hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; background: rgba(226,125,96,0.12); border: 1px solid rgba(226,125,96,0.3); color: #e27d60; padding: 6px 16px; border-radius: 30px; font-size: 12px; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 24px; animation: dc-fadein-up 0.6s ease both; }
.dc-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: #e27d60; animation: dc-pulse 2s infinite; }
@keyframes dc-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.8); } }
.dc-hero-title { font-size: clamp(32px, 4vw, 52px); font-weight: 800; color: white; line-height: 1.1; letter-spacing: -1px; margin-bottom: 20px; }
.dc-title-line1 { display: block; animation: dc-fadein-up 0.6s 0.1s ease both; }
.dc-title-line2 { display: block; animation: dc-fadein-up 0.6s 0.2s ease both; }
.dc-title-em { font-style: normal; color: #e27d60; position: relative; }
.dc-title-em::after { content: ''; position: absolute; bottom: -4px; left: 0; right: 0; height: 3px; background: #e27d60; transform-origin: left; animation: dc-underline 0.6s 0.8s ease both; transform: scaleX(0); }
@keyframes dc-underline { to { transform: scaleX(1); } }
.dc-hero-sub { font-size: 17px; color: rgba(255,255,255,0.72); line-height: 1.7; margin-bottom: 36px; animation: dc-fadein-up 0.6s 0.3s ease both; }
.dc-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; animation: dc-fadein-up 0.6s 0.4s ease both; margin-bottom: 28px; }
.dc-btn-gold { display: inline-flex; align-items: center; gap: 8px; background: #e27d60; color: white; padding: 13px 26px; border-radius: 8px; font-size: 14px; font-weight: 700; text-decoration: none; letter-spacing: 0.3px; transition: all 0.2s; box-shadow: 0 4px 20px rgba(226,125,96,0.35); border: none; cursor: pointer; font-family: 'Inter', sans-serif; }
.dc-btn-gold:hover { background: #c4633a; transform: translateY(-2px); box-shadow: 0 8px 30px rgba(226,125,96,0.45); color: white; }
.dc-btn-ghost { display: inline-flex; align-items: center; color: rgba(255,255,255,0.85); padding: 13px 26px; border-radius: 8px; font-size: 14px; font-weight: 500; border: 1px solid rgba(255,255,255,0.25); text-decoration: none; transition: all 0.2s; }
.dc-btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.5); color: white; }
.dc-hero-trust { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,0.55); font-size: 12px; animation: dc-fadein-up 0.6s 0.5s ease both; }
.dc-trust-item { display: flex; align-items: center; gap: 5px; }
.dc-trust-sep { opacity: 0.3; }
.dc-hero-visual { position: relative; z-index: 2; flex-shrink: 0; animation: dc-float 6s ease-in-out infinite, dc-fadein-right 0.8s 0.3s ease both; }
@keyframes dc-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes dc-fadein-right { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
.dc-hero-mockup { background: rgba(255,255,255,0.08); backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.15); border-radius: 16px; width: 280px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.dc-mockup-bar { background: rgba(255,255,255,0.08); padding: 10px 14px; display: flex; gap: 6px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.dc-mockup-bar span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.2); }
.dc-mockup-bar span:nth-child(1) { background: #e27d60; }
.dc-mockup-content { padding: 16px; }
.dc-mockup-stat { background: rgba(255,255,255,0.06); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; border: 1px solid rgba(255,255,255,0.08); }
.dc-mockup-num { font-size: 22px; font-weight: 800; color: white; line-height: 1; }
.dc-mockup-num.dc-gold { color: #e27d60; }
.dc-mockup-lbl { font-size: 11px; color: rgba(255,255,255,0.5); margin-top: 3px; }
.dc-mockup-modules { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 8px; }
.dc-mm { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; padding: 8px 10px; font-size: 11px; color: rgba(255,255,255,0.7); }
@keyframes dc-fadein-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* ============================================
   DC STATS BAND
   ============================================ */
.dc-stats-band { background: white; display: grid; grid-template-columns: repeat(4, 1fr); box-shadow: 0 4px 20px rgba(0,51,102,0.06); position: relative; z-index: 2; }
.dc-stat-item { text-align: center; padding: 32px 20px; border-right: 1px solid #edecea; position: relative; }
.dc-stat-item:last-child { border-right: none; }
.dc-stat-num { font-size: 38px; font-weight: 800; color: #e27d60; line-height: 1; font-variant-numeric: tabular-nums; }
.dc-stat-label { font-size: 12px; color: #6B7280; margin-top: 6px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 500; }
.dc-stat-item::after { content: ''; position: absolute; bottom: 0; left: 20%; right: 20%; height: 2px; background: #e27d60; transform: scaleX(0); transition: transform 0.8s ease; }
.dc-stat-item.dc-visible::after { transform: scaleX(1); }

/* ============================================
   DC MODULES SECTION
   ============================================ */
.dc-modules-section { padding: 80px 48px; }
.dc-modules-inner { max-width: 1100px; margin: 0 auto; }
.dc-section-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #e27d60; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.dc-section-eyebrow::before { content: ''; width: 24px; height: 2px; background: #e27d60; }
.dc-section-title { font-size: 32px; font-weight: 800; color: #e27d60; margin-bottom: 48px; letter-spacing: -0.5px; }
.dc-section-title span { color: #e27d60; }
.dc-modules-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.dc-module-card { display: block; background: white; border-radius: 16px; border: 1px solid #e8e5e2; padding: 28px; cursor: pointer; transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); position: relative; overflow: hidden; border-top: 4px solid var(--dc-card-color, #e27d60); text-decoration: none; color: var(--nxv-text); }
.dc-module-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,51,102,0.04), transparent 60%); opacity: 0; transition: opacity 0.3s; }
.dc-module-card:hover { transform: translateY(-6px) scale(1.01); box-shadow: 0 20px 40px rgba(0,51,102,0.12); border-color: var(--dc-card-color, #e27d60); color: var(--nxv-text); }
.dc-module-card:hover::before { opacity: 1; }
.dc-card-num { position: absolute; top: 10px; right: 16px; font-size: 52px; font-weight: 900; color: var(--dc-card-color, #e27d60); opacity: 0.05; line-height: 1; transition: opacity 0.3s; }
.dc-module-card:hover .dc-card-num { opacity: 0.08; }
.dc-card-icon { width: 48px; height: 48px; border-radius: 12px; background: #f0ebe8; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.dc-module-card:hover .dc-card-icon { transform: scale(1.1) rotate(-3deg); }
.dc-module-card h3 { font-size: 18px; font-weight: 700; margin: 0 0 8px; position: relative; z-index: 1; }
.dc-module-card p { font-size: 14px; color: #6B7280; margin: 0 0 16px; line-height: 1.5; position: relative; z-index: 1; }
.dc-card-arrow { position: absolute; bottom: 20px; right: 20px; width: 28px; height: 28px; background: var(--dc-card-color, #e27d60); border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateX(-8px); transition: all 0.25s; }
.dc-module-card:hover .dc-card-arrow { opacity: 1; transform: translateX(0); }

/* ============================================
   DC WHY SECTION
   ============================================ */
.dc-why-section { padding: 80px 48px; background: #F8F7F5; }
.dc-why-inner { max-width: 1000px; margin: 0 auto; }
.dc-why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.dc-why-item { background: white; border-radius: 16px; padding: 28px; border: 1px solid #e8e5e2; transition: all 0.25s; }
.dc-why-item:hover { box-shadow: 0 8px 30px rgba(0,51,102,0.08); transform: translateY(-3px); }
.dc-why-icon { width: 48px; height: 48px; background: #f0ebe8; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; font-size: 24px; }
.dc-why-item h3 { font-size: 16px; font-weight: 700; color: #e27d60; margin: 0 0 8px; }
.dc-why-item p { font-size: 13px; color: #6B7280; line-height: 1.7; margin: 0; }

/* ============================================
   DC CITY SECTION
   ============================================ */
.dc-city-section { background: #e27d60; color: white; padding: 80px 40px; text-align: center; margin: 0 -20px; position: relative; }
.dc-city-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: #e27d60; }
.dc-city-content { max-width: 800px; margin: 0 auto; }
.dc-city-content h2 { font-size: 32px; font-weight: 800; color: white; margin: 0 0 20px; }
.dc-city-content > p { color: rgba(255,255,255,0.8); font-size: 16px; line-height: 1.7; margin: 0 0 40px; }
.dc-city-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dc-city-highlight { background: rgba(255,255,255,0.1); border-radius: 8px; padding: 24px; }
.dc-city-highlight strong { display: block; font-size: 28px; color: #e27d60; margin-bottom: 4px; }
.dc-city-highlight span { font-size: 14px; color: rgba(255,255,255,0.8); }

/* ============================================
   DC HOME FOOTER
   ============================================ */
.dc-home-footer { background: #001f44; color: white; padding: 40px; text-align: center; margin: 0 -20px -20px; border-top: 3px solid #e27d60; }
.dc-home-footer-content { max-width: 600px; margin: 0 auto; }
.dc-home-footer-brand { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 12px; }
.dc-home-footer-name { font-size: 18px; font-weight: 800; color: white; }
.dc-home-footer-name span { color: #e27d60; }
.dc-home-footer-content p { color: rgba(255,255,255,0.5); font-size: 13px; margin: 4px 0; }
.dc-home-footer-content strong { color: #e27d60; }

/* ============================================
   SITE FOOTER (GeneratePress)
   ============================================ */
.site-footer { background: #001f44 !important; border-top: 3px solid #e27d60 !important; padding: 20px 24px !important; text-align: center !important; }
.site-footer, .site-footer a, .site-footer p, .site-info { color: rgba(255,255,255,0.55) !important; font-size: 13px !important; font-family: 'Inter', sans-serif !important; }
.site-footer strong { color: #e27d60 !important; }
.dc-footer-content { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; color: rgba(255,255,255,0.55); font-size: 13px; padding: 4px; }
.dc-footer-logo { font-size: 16px; font-weight: 800; color: white !important; text-decoration: none; letter-spacing: -0.3px; }
.dc-footer-logo span { color: #e27d60 !important; }
.dc-footer-sep { opacity: 0.3; }
.dc-footer-content strong { color: #e27d60 !important; font-weight: 600; }

/* ============================================
   DC PAGE HEADERS WITH WAVE
   ============================================ */
.dc-page-header { background: #003366; padding: 40px 48px 50px; position: relative; overflow: hidden; margin: -20px -20px 32px; }
.dc-page-header::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 30px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30'%3E%3Cpath d='M0,30 C300,0 900,0 1200,30 L1200,30 L0,30 Z' fill='%23F7F8FF'/%3E%3C/svg%3E") no-repeat bottom center / cover; }
.dc-page-header::before { content: ''; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; border: 30px solid rgba(226,125,96,0.12); }
.dc-page-header h1 { font-size: 28px; font-weight: 800; color: white; margin: 0 0 6px; position: relative; z-index: 1; }
.dc-page-header p { color: rgba(255,255,255,0.7); font-size: 14px; margin: 0; position: relative; z-index: 1; }

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.dc-anim-hidden { opacity: 0; transform: translateY(24px); transition: opacity 0.5s ease, transform 0.5s ease; }
.dc-anim-visible { opacity: 1; transform: translateY(0); }

/* ============================================
   SKELETON LOADING
   ============================================ */
.dc-skeleton { background: linear-gradient(90deg, #f0f2f8 25%, #e8ebf5 50%, #f0f2f8 75%); background-size: 200% 100%; animation: dc-skeleton-wave 1.5s infinite; border-radius: 8px; }
@keyframes dc-skeleton-wave { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ============================================
   LEAFLET MAP FIX (dc- prefix)
   ============================================ */
#dc-signalement-map, .dc-signalement-map, #dc-map { height: 400px !important; width: 100% !important; min-height: 400px !important; }

/* ============================================
   BOTTOM NAVIGATION MOBILE
   ============================================ */
.nxv-bottom-nav {
    display: none;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 500;
    background: white;
    border-top: 1px solid #e2dfdc;
    height: 60px;
    align-items: center;
    justify-content: space-around;
    padding: 0 8px;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
}
.nxv-bnav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-decoration: none;
    color: var(--nxv-muted);
    font-size: 10px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    padding: 6px 8px;
    border-radius: 8px;
    transition: all 0.15s;
    position: relative;
}
.nxv-bnav-item svg { width: 20px; height: 20px; }
.nxv-bnav-item.active { color: var(--nxv-blue); }
.nxv-bnav-item.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    background: var(--nxv-gold);
    border-radius: 50%;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    /* Show bottom nav */
    .nxv-bottom-nav { display: flex; }

    /* Add bottom padding so content isn't hidden behind bottom nav */
    body { padding-bottom: 64px; }

    /* Header */
    .nxv-logo-wrap { padding: 10px 16px !important; }
    .dc-logo-link { padding: 10px 16px; }

    /* Hero (nxv legacy) */
    .nxv-hero { padding: 40px 16px 60px; }
    .nxv-hero h1 { font-size: 26px; }
    .nxv-hero-sub { font-size: 15px; margin-bottom: 24px; }
    .nxv-hero-cta { flex-direction: column; align-items: center; }

    /* Hero (dc new) */
    .dc-hero { min-height: auto; flex-direction: column; padding: 48px 20px 40px; gap: 32px; }
    .dc-hero-title { font-size: 28px; }
    .dc-hero-visual { order: -1; }
    .dc-hero-mockup { width: 220px; }
    .dc-hero-actions { flex-direction: column; }
    .dc-btn-gold, .dc-btn-ghost { width: 100%; justify-content: center; }
    .dc-hero-trust { flex-wrap: wrap; justify-content: center; }

    /* Stats band (nxv) */
    .nxv-stats-container { grid-template-columns: 1fr 1fr; }
    .nxv-home-stat + .nxv-home-stat { border-left: none; }
    .nxv-home-stat:nth-child(even) { border-left: 1px solid var(--nxv-border); }
    .nxv-home-stat { padding: 20px 12px; }

    /* Stats band (dc) */
    .dc-stats-band { grid-template-columns: repeat(2, 1fr); }
    .dc-stat-item { padding: 20px 12px; }
    .dc-stat-num { font-size: 28px; }

    /* Module cards (nxv) */
    .nxv-modules-showcase { grid-template-columns: 1fr 1fr; gap: 10px; }
    .nxv-home-modules { padding: 40px 16px; }
    .nxv-module-card { padding: 20px; }
    .nxv-module-card p { font-size: 12px; }

    /* Module cards (dc) */
    .dc-modules-section { padding: 40px 16px; }
    .dc-modules-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .dc-module-card { padding: 20px; }
    .dc-section-title { font-size: 24px; margin-bottom: 28px; }

    /* Why section */
    .dc-why-section { padding: 40px 16px; }
    .dc-why-grid { grid-template-columns: 1fr; }

    /* Page headers */
    .nxv-page-header { padding: 32px 16px 36px; margin: -20px -10px 24px; }
    .nxv-page-header h1 { font-size: 22px; }
    .dc-page-header { padding: 28px 16px 40px; margin: -20px -10px 24px; }
    .dc-page-header h1 { font-size: 22px; }

    /* Gestionnaire layout */
    .nxv-gestionnaire-wrap { flex-direction: column; }
    .nxv-sidebar { width: 100%; position: static; display: flex; flex-wrap: wrap; gap: 8px; }
    .nxv-sidebar h3 { width: 100%; }
    .nxv-sidebar a { flex: 1; min-width: 100px; text-align: center; font-size: 12px; padding: 8px 6px; }

    /* Stats grid */
    .nxv-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .nxv-stat-card { padding: 16px; }
    .nxv-stat-number { font-size: 24px; }

    /* City highlights */
    .nxv-city-highlights { grid-template-columns: 1fr; }
    .nxv-home-city { padding: 40px 16px; }
    .dc-city-highlights { grid-template-columns: 1fr; }
    .dc-city-section { padding: 40px 16px; }

    /* Cards */
    .nxv-card { padding: 16px; }

    /* Tables */
    .nxv-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* Map */
    .nxv-map { height: 280px; }
    .nxv-map-full { height: 320px; }
    #dc-signalement-map, .dc-signalement-map, #dc-map { height: 300px !important; min-height: 300px !important; }

    /* Modals */
    .nxv-modal { padding: 20px; max-width: 100%; }

    /* Buttons full width */
    .nxv-hero .nxv-btn-primary,
    .nxv-hero .nxv-btn-gold { width: 100%; text-align: center; }

    /* Footer */
    .nxv-home-footer { padding: 24px 16px; margin-bottom: 0; }
    .dc-home-footer { padding: 24px 16px; }
    .dc-footer-content { flex-direction: column; gap: 6px; }

    /* Login */
    .nxv-login-card { padding: 24px; }
}

@media (max-width: 480px) {
    .nxv-modules-showcase { grid-template-columns: 1fr; }
    .dc-modules-grid { grid-template-columns: 1fr; }
    .nxv-hero h1 { font-size: 22px; }
    .dc-hero-title { font-size: 24px; }
    .nxv-home-stat-number { font-size: 22px; }
    .dc-stat-num { font-size: 24px; }
    .nxv-section-header h2 { font-size: 24px; }
    .nxv-city-content h2 { font-size: 24px; }
    .dc-city-content h2 { font-size: 24px; }
    .dc-hero-mockup { width: 180px; }
}

/* ============================================
   HEADER LAYOUT + LOGO (DEFINITIVE FIX)
   ============================================ */

/* Header container: flex row, logo left, nav right */
.site-header .inside-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 !important;
    min-height: 56px !important;
    flex-wrap: nowrap !important;
}

/* Hide ALL native GP branding */
.site-branding, .site-title, .site-description,
.main-title, .header-image, .site-logo { display: none !important; }

/* Logo wrapper (injected via generate_before_header_content) */
.dc-logo-wrapper {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    padding: 0 20px !important;
    height: 56px !important;
}
.dc-logo-link {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}
.dc-logo-text-wrap {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}
.dc-logo-name {
    display: block;
    color: white !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: -0.3px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    font-family: 'Inter', Arial, sans-serif !important;
}
.dc-logo-accent { color: #e27d60 !important; }
.dc-logo-sub {
    display: block;
    color: rgba(255,255,255,0.65) !important;
    font-size: 9px !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    margin-top: 1px !important;
    font-family: 'Inter', Arial, sans-serif !important;
}

/* Navigation takes remaining space, aligned right */
.main-navigation {
    flex: 1 !important;
    display: flex !important;
    justify-content: flex-end !important;
}

/* Prevent stray logo outside header */
body > .dc-logo-link,
body > .dc-logo-wrapper,
body > a.dc-logo-link { display: none !important; }

/* ============================================
   BLOC 2D — FOOTER
   ============================================ */
.site-footer {
    background: #001f44 !important;
    border-top: 3px solid #e27d60 !important;
    padding: 0 !important;
}
.dc-footer-inner {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; flex-wrap: wrap; padding: 20px 24px;
    color: rgba(255,255,255,0.55); font-size: 13px;
    font-family: 'Inter', sans-serif;
}
.dc-footer-brand {
    font-size: 15px; font-weight: 800; color: white !important;
    text-decoration: none; letter-spacing: -0.3px;
}
.dc-footer-brand span { color: #e27d60 !important; }
.dc-footer-sep { opacity: 0.3; }
.dc-footer-inner strong { color: #e27d60 !important; font-weight: 600; }

/* ============================================
   BLOC 4 — ACCESSIBILITY WCAG 2.1 AA
   ============================================ */

/* Skip link */
.dc-skip-link {
    position: absolute; top: -100px; left: 0; z-index: 99999;
    background: #e27d60; color: white;
    padding: 10px 20px; font-weight: 700; font-size: 14px;
    border-radius: 0 0 8px 0; text-decoration: none;
    transition: top 0.2s; font-family: 'Inter', sans-serif;
}
.dc-skip-link:focus { top: 0; outline: 3px solid #003366; }

/* Focus visible */
*:focus-visible {
    outline: 3px solid #e27d60 !important;
    outline-offset: 2px !important;
}
*:focus:not(:focus-visible) { outline: none !important; }
.dc-module-card:focus-visible,
.nxv-btn-primary:focus-visible,
.dc-btn-gold:focus-visible {
    box-shadow: 0 0 0 3px #e27d60, 0 0 0 5px #e27d60 !important;
    outline: none !important;
}

/* Touch targets min 44px */
button, .nxv-btn-primary, .nxv-btn-gold, .dc-btn-gold,
.dc-module-card, a.dc-btn-ghost, .nxv-pill, .nxv-budget-vote-btn {
    min-height: 44px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    .dc-hero-visual { animation: none !important; }
    .dc-anim-hidden { opacity: 1 !important; transform: none !important; }
    .dc-stat-item::after { transition: none !important; }
}

/* High contrast mode */
@media (forced-colors: active) {
    .dc-btn-gold, .nxv-btn-primary {
        border: 2px solid ButtonText !important;
    }
    .dc-module-card {
        border: 1px solid ButtonText !important;
    }
    .dc-logo-accent { forced-color-adjust: none; }
}

/* Contrast fixes: upgrade muted text from #6B7280 to #4B5563 */
.nxv-stat-label, .dc-stat-label, .nxv-module-card p,
.dc-module-card p, .nxv-signalement-item-date,
.nxv-signalement-count, .dc-trust-item, .nxv-footer-tagline,
.nxv-demo-account, .nxv-login-header p { color: #4B5563 !important; }

/* On dark backgrounds, ensure min opacity 0.75 */
.dc-hero-sub { color: rgba(255,255,255,0.78) !important; }
.dc-hero-trust { color: rgba(255,255,255,0.6) !important; }
.dc-page-header p, .nxv-page-header p { color: rgba(255,255,255,0.8) !important; }

/* ============================================
   v6.0 — UI/UX AUDIT FIXES
   ============================================ */

/* FIX 1: Modules grid responsive (was missing breakpoints) */
.dc-modules-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
}
@media (max-width: 1024px) {
    .dc-modules-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
    .dc-modules-grid { grid-template-columns: 1fr !important; }
    .dc-pour-qui-grid { grid-template-columns: 1fr !important; }
    .dc-mdca-grid { grid-template-columns: 1fr !important; }
}

/* FIX 2: Module card icon — SVG instead of emoji */
.dc-card-icon {
    width: 48px; height: 48px; border-radius: 12px;
    background: rgba(var(--dc-card-color-rgb, 30,47,168), 0.08);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 12px; color: var(--dc-card-color, #e27d60);
}
.dc-card-icon svg { width: 24px; height: 24px; }
.dc-card-link-text { font-size: 12px; color: #e27d60; font-weight: 600; }

/* FIX 3: Footer contrast — WCAG AA (min 4.5:1) */
.dc-footer-wrap { width: 100%; box-sizing: border-box; padding: 20px 60px; }
.dc-footer-inner {
    max-width: 1200px; margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 16px;
}
.dc-footer-brand { display: flex; align-items: center; gap: 10px; }
.dc-footer-brand-name { color: white !important; font-size: 15px; font-weight: 800; white-space: nowrap; }
.dc-footer-accent { color: #e27d60 !important; }
.dc-footer-pipe { color: rgba(255,255,255,.4) !important; }
.dc-footer-tagline { color: rgba(255,255,255,.7) !important; font-size: 12px; }
.dc-footer-copy { color: rgba(255,255,255,.6) !important; font-size: 12px; text-align: center; }
.dc-footer-a11y-link { color: rgba(255,255,255,.7) !important; text-decoration: underline !important; }
.dc-footer-a11y-link:hover, .dc-footer-a11y-link:focus { color: white !important; }
.dc-footer-mdc { display: flex; align-items: center; gap: 8px; text-decoration: none !important; transition: opacity .15s; }
.dc-footer-mdc:hover { opacity: 1; }
.dc-footer-mdc-label { color: rgba(255,255,255,.6) !important; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; }
.dc-footer-mdc-logo { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: .8; }
@media (max-width: 768px) {
    .dc-footer-wrap { padding: 16px 20px; }
    .dc-footer-inner { flex-direction: column; gap: 12px; text-align: center; }
    .dc-footer-brand { justify-content: center; }
}

/* FIX 4: S7 "Testez Diacite" — proper CSS classes (no inline styles) */
.dc-testez-section { background: #F8F7F5; padding: 64px 48px; text-align: center; }
.dc-testez-inner { max-width: 700px; margin: 0 auto; }
.dc-testez-title {
    font-size: clamp(24px, 3vw, 34px); font-weight: 800;
    color: #e27d60; margin: 0 0 16px; line-height: 1.2;
}
.dc-testez-desc { font-size: 15px; color: #566573; line-height: 1.7; margin: 0 0 32px; }
.dc-testez-ctas { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.dc-testez-links {
    margin-top: 24px; display: flex; align-items: center;
    justify-content: center; gap: 24px; flex-wrap: wrap;
}
.dc-testez-link {
    font-size: 13px; color: #566573; text-decoration: none !important;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 8px; border-radius: 6px; min-height: 44px;
    transition: color .15s, background .15s;
}
.dc-testez-link:hover, .dc-testez-link:focus { color: #e27d60 !important; background: rgba(0,51,102,.06); }
@media (max-width: 768px) {
    .dc-testez-section { padding: 40px 20px; }
    .dc-testez-links { gap: 8px; }
}

/* FIX 5: Primary and outline buttons (used in S7) */
.dc-btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    background: #e27d60; color: white; border: none;
    padding: 14px 32px; border-radius: 8px; font-size: 15px;
    font-weight: 700; cursor: pointer; font-family: inherit;
    min-height: 44px; transition: background .15s;
    text-decoration: none !important;
}
.dc-btn-primary:hover, .dc-btn-primary:focus { background: #003366; color: white; }
.dc-btn-outline {
    display: inline-flex; align-items: center;
    color: #e27d60; border: 2px solid #e27d60;
    padding: 13px 32px; border-radius: 8px; font-size: 15px;
    font-weight: 700; text-decoration: none !important; min-height: 44px;
    background: transparent; transition: background .15s, color .15s;
}
.dc-btn-outline:hover, .dc-btn-outline:focus { background: #e27d60; color: white !important; }

/* FIX 6: "Nos engagements" dark section title variant */
.dc-section-title--dark h2 { color: white !important; }
.dc-section-title--dark p { color: rgba(255,255,255,.75) !important; }
.dc-section-tag--light { color: #e27d60 !important; }

/* FIX 7: Contact section — CSS classes for inline styles */
.dc-contact-title { color: white; font-size: 28px; font-weight: 800; margin: 12px 0 16px; }
.dc-contact-desc { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.7; margin-bottom: 24px; }
.dc-contact-mdc { border-top: 1px solid rgba(255,255,255,.15); padding-top: 20px; }
.dc-contact-mdc-name { color: white; font-size: 16px; font-weight: 800; display: block; }
.dc-contact-mdc-sub { color: rgba(255,255,255,.7); font-size: 12px; display: block; margin-top: 2px; }
.dc-contact-mdc-link { color: rgba(255,255,255,.6) !important; font-size: 11px; text-decoration: underline !important; margin-top: 8px; display: inline-block; }
.dc-contact-mdc-link:hover { color: white !important; }

/* FIX 8: RGPD checkbox — bigger touch target */
.dc-form-rgpd label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; min-height: 44px; padding: 8px 0; }
.dc-form-rgpd input[type="checkbox"] { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; accent-color: #e27d60; cursor: pointer; }
.dc-form-rgpd a { color: #e27d60; text-decoration: underline; }

/* FIX 9: Hover states → also apply on focus/active for touch */
.dc-pq-card:focus-within, .dc-pq-card:active { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,51,102,.1); }
.dc-pq-featured:focus-within, .dc-pq-featured:active { transform: translateY(-12px); }
.dc-mdca-item:focus-within, .dc-mdca-item:active { background: rgba(255,255,255,.13); }
.dc-module-card:focus, .dc-module-card:active { transform: translateY(-4px) !important; box-shadow: 0 12px 32px rgba(0,51,102,.12) !important; }

/* FIX 10: Logo subtitle — better contrast on blue header */
.dc-logo-sub { color: rgba(255,255,255,.7) !important; }

/* FIX 11: Navigation — group items with "Plus" dropdown on tablet */
@media (max-width: 1100px) {
    .main-navigation .menu > li > a { padding: 0 8px !important; font-size: 12px !important; letter-spacing: 0 !important; }
}
@media (max-width: 950px) {
    .main-navigation .menu > li > a { padding: 0 6px !important; font-size: 11px !important; }
}

/* FIX 12: Mockup modules (SVG version) */
.dc-mockup-modules {
    margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.dc-mockup-mod {
    background: rgba(255,255,255,.1); border-radius: 8px;
    padding: 8px 10px; font-size: 10px; color: white;
    display: flex; align-items: center; gap: 6px;
}

/* FIX 13: Stats band — responsive on mobile */
@media (max-width: 600px) {
    .dc-stats-band { grid-template-columns: repeat(2, 1fr) !important; }
    .dc-stat-item { padding: 20px 12px !important; }
    .dc-stat-num { font-size: 28px !important; }
    .dc-stat-item:nth-child(2) { border-right: none !important; }
}

/* FIX 14: Pour qui icon — SVG sizing */
.dc-pq-icon { margin-bottom: 12px; line-height: 1; }
.dc-pq-icon svg { width: 32px; height: 32px; }

/* ============================================
   MODULES BENTO v2 — Effet wahou, pro
   ============================================ */

.dc-mod-section {
    background: #F8F7F5; padding: 72px 60px; position: relative; overflow: hidden;
}
.dc-mod-section::before {
    content: ''; position: absolute; left: -120px; bottom: -120px;
    width: 400px; height: 400px; border-radius: 50%;
    background: radial-gradient(circle, rgba(0,51,102,.04) 0%, transparent 70%);
    pointer-events: none;
}
.dc-mod-inner { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }

/* Bento grid */

/* Card base */

/* Featured = dark card */

/* Num watermark */

/* Top row: icon + badge */
 50%{opacity:.4;transform:scale(1.5)} }

/* Content */

/* CTA */

/* Mini visualizations (featured cards only) */

.dc-mod-mini-stat span {
    font-size: 20px; font-weight: 800; color: white;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 1024px) {
    .dc-mod-section { padding: 56px 40px; }
}
@media (max-width: 640px) {
    .dc-mod-section { padding: 40px 16px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
}

/* ============================================
   RESPONSIVE FIXES — Tablet 768px gap
   ============================================ */

/* Tablet: 3-col grids → 2-col */
@media (max-width: 768px) {
    .dc-pour-qui-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
    .dc-mdca-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
    .dc-temoignages-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }

    /* Hero padding tablet */
    .dc-hero { padding: 48px 32px !important; min-height: auto !important; }
    .dc-hero-content { max-width: 100% !important; }

    /* Map height tablet */
    .dc-signal-map-container { height: 340px; }

    /* Signalement hero tablet */
    .dc-signal-hero-inner { grid-template-columns: 1fr !important; padding: 36px 32px; }
    .dc-signal-hero-card { display: none; }
    .dc-signal-list-inner, .dc-signal-map-header { padding-left: 32px; padding-right: 32px; }
}

/* Small mobile: grids → 1-col, stats 2x2 */
@media (max-width: 480px) {
    .dc-pour-qui-grid,
    .dc-mdca-grid,
    .dc-temoignages-grid { grid-template-columns: 1fr !important; }
    .dc-stats-band { grid-template-columns: repeat(2, 1fr) !important; }
    .dc-stat-num { font-size: 24px !important; }
    .dc-stat-item { padding: 16px 10px !important; }
    .dc-signal-stat-num { font-size: 20px; }

    /* Form inputs mobile */
    .dc-signal-input, .dc-signal-textarea,
    .dc-contact-form input, .dc-contact-form textarea { padding: 9px 10px; font-size: 16px; }
}

/* ============================================
   MDCA 2026 — DEFINITIVE OVERRIDES
   Last block = highest priority
   ============================================ */

/* Header */
.site-header { background: #003366 !important; border-bottom: 3px solid #e27d60 !important; }
.main-navigation a { color: rgba(255,255,255,0.85) !important; }
.main-navigation a:hover,
.main-navigation .current-menu-item > a { color: #e27d60 !important; background: rgba(255,255,255,0.08) !important; }

/* Hero home */
.dc-hero { background: linear-gradient(135deg, #003366 0%, #002244 60%, #001533 100%) !important; }
.dc-hero::after { background: linear-gradient(90deg, #e27d60 0%, #c4633a 50%, #e27d60 100%) !important; }

/* Buttons CTA */
.dc-btn-gold, .dc-btn-primary, .nxv-btn-primary,
.dc-signal-btn-primary, .dc-signal-btn-submit { background: #e27d60 !important; color: white !important; }
.dc-btn-gold:hover, .dc-btn-primary:hover, .nxv-btn-primary:hover,
.dc-signal-btn-primary:hover { background: #c4633a !important; }

/* Stats */
.dc-stats-band { background: white !important; }
.dc-stat-num { color: #e27d60 !important; }

/* Section tags + highlights */
.dc-section-tag { color: #e27d60 !important; }
.dc-highlight-gold { color: #e27d60 !important; }
.dc-section-title h2 { color: #003366 !important; }

/* Page headers modules */
.nxv-page-header, .dc-page-header { background: linear-gradient(135deg, #003366 0%, #002244 100%) !important; border-bottom: 3px solid #e27d60 !important; }

/* Demo topbar */
.dc-demo-topbar { background: #e27d60 !important; }
.dc-demo-label { color: white !important; }
.dc-demo-sep { color: rgba(255,255,255,0.5) !important; }
.dc-demo-sub { color: rgba(255,255,255,0.8) !important; }
.dc-demo-dot { background: white !important; }
.dc-demo-topbar-cta { background: #003366 !important; color: white !important; }
.dc-demo-topbar-cta:hover { background: #002244 !important; }

/* Module numbers */
.dc-card-num, .dc-mod-num { color: #e27d60 !important; }

/* Footer */
.site-footer { background: #003366 !important; border-top: 3px solid #e27d60 !important; }

/* Links global */
.entry-content a:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]), .dc-content-wrap a:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]) { color: #e27d60 !important; }
.entry-content a:hover:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]), .dc-content-wrap a:hover:not([class*="btn"]):not([class*="cta"]):not([class*="dc-mod"]):not([class*="dc-bento"]):not([class*="dc-testez"]):not([class*="dc-hero"]):not([class*="dc-blc"]):not([class*="nxv-module"]) { color: #c4633a !important; }
.main-navigation a, .dc-btn-gold, .nxv-btn-primary, .dc-btn-primary,
.dc-module-card, .dc-mod-card, .dc-footer-brand, .dc-logo-link { text-decoration: none !important; }

/* GP override */
:root { --accent: #e27d60 !important; }

/* Featured module cards dark bg */
.dc-section-title--dark h2 { color: white !important; }
.dc-section-title--dark p { color: rgba(255,255,255,0.75) !important; }
.dc-section-tag--light { color: #e27d60 !important; }

/* ============================================
   DIACITE v3.1 — FIX MOBILE COMPLET
   ============================================ */
html, body { overflow-x: hidden !important; max-width: 100vw !important; }
.leaflet-container, .nxv-signalement-map, #dc-signal-map { max-width: 100% !important; overflow: hidden !important; }

@media (max-width: 768px) {
    /* Menu mobile */
    .main-navigation .main-nav, .main-navigation ul.menu, .main-navigation ul.sf-menu { display: none !important; }
    .main-navigation.toggled .main-nav, .main-navigation.toggled ul.menu, .main-navigation.toggled ul.sf-menu {
        display: flex !important; flex-direction: column !important; width: 100% !important;
        background: #003366 !important; padding: 8px 0 16px !important;
        position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important;
        z-index: 9999 !important; box-shadow: 0 8px 24px rgba(0,0,0,.3) !important;
    }
    .main-navigation.toggled .menu-item { width: 100% !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; }
    .main-navigation.toggled .menu-item a { display: block !important; padding: 12px 24px !important; color: rgba(255,255,255,.85) !important; font-size: 15px !important; }
    .main-navigation.toggled .current-menu-item > a { color: #e27d60 !important; background: rgba(255,255,255,.05) !important; }
    .menu-toggle { display: flex !important; align-items: center !important; justify-content: center !important; width: 44px !important; height: 44px !important; background: rgba(255,255,255,.15) !important; border: 1.5px solid rgba(255,255,255,.3) !important; border-radius: 8px !important; color: white !important; flex-shrink: 0 !important; }
    .site-header { position: relative !important; }
    .inside-header { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 0 16px !important; gap: 12px !important; }

    /* Hero */
    .dc-hero { padding: 32px 20px !important; min-height: auto !important; }
    .dc-hero-content { max-width: 100% !important; }
    .dc-hero-mockup, .dc-hero-visual { display: none !important; }
    .dc-hero-title, .dc-hero h1 { font-size: 26px !important; }
    .dc-hero-ctas { flex-direction: column !important; gap: 10px !important; }
    .dc-hero-ctas a, .dc-hero-ctas button { width: 100% !important; justify-content: center !important; text-align: center !important; }
    .dc-hero-trust { flex-direction: column !important; gap: 6px !important; }
    .dc-trust-sep { display: none !important; }

    /* Stats */
    .dc-stats-band { grid-template-columns: repeat(2, 1fr) !important; padding: 24px 20px !important; }
    .dc-stat-num { font-size: 24px !important; }

    /* Bento modules */
    .dc-mod-section { padding: 40px 16px !important; }
    .dc-mod-inner { padding: 0 !important; }

    /* Page headers */
    .nxv-page-header { padding: 28px 20px !important; }
    .nxv-page-header h1 { font-size: 24px !important; }

    /* Demo topbar */
    .dc-demo-topbar-inner { flex-wrap: wrap !important; }
    .dc-demo-sub { display: none !important; }

    /* Signalements */
    .dc-signal-hero { padding: 28px 16px !important; }
    .dc-signal-hero-inner { grid-template-columns: 1fr !important; }
    .dc-signal-hero-card { display: none !important; }
    .dc-signal-hero-title, .dc-signal-title { font-size: 24px !important; }
    .dc-signal-list-wrap, .dc-signal-list-inner { padding: 16px !important; }
    .dc-signal-map-header { padding: 12px 16px !important; flex-direction: column !important; align-items: flex-start !important; }
    .nxv-signalement-map, #dc-signal-map, .dc-signal-map-container { height: 260px !important; }
    .dc-signal-filters-bar, .dc-signal-filters-wrap { flex-direction: column !important; align-items: flex-start !important; }
    .dc-signal-filters { width: 100% !important; overflow-x: auto !important; flex-wrap: nowrap !important; }

    /* Consultations */

    /* Sections homepage */
    .dc-pour-qui-section { padding: 40px 16px !important; }
    .dc-pour-qui-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
    .dc-mdca-section { padding: 40px 16px !important; }
    .dc-mdca-grid { grid-template-columns: 1fr !important; }
    .dc-testez-section { padding: 40px 16px !important; }
    .dc-contact-section { padding: 40px 16px !important; }
    .dc-contact-inner { grid-template-columns: 1fr !important; gap: 24px !important; }
    .dc-form-row { grid-template-columns: 1fr !important; }
    .dc-section-title h2 { font-size: 24px !important; }

    /* Footer */
    .dc-footer-wrap { padding: 24px 16px !important; }
    .dc-footer-inner { flex-direction: column !important; gap: 16px !important; text-align: center !important; }
    .dc-footer-brand { justify-content: center !important; }

    /* Modal bottom sheet mobile */
    .dc-signal-modal-overlay { align-items: flex-end !important; padding: 0 !important; }
    .dc-signal-modal { max-width: 100% !important; border-radius: 16px 16px 0 0 !important; max-height: 85vh !important; }
}

/* Tablette 769-1024 */
@media (min-width: 769px) and (max-width: 1024px) {
    .dc-pour-qui-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .dc-mdca-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .dc-signal-list-wrap, .dc-signal-list-inner { padding: 24px !important; }
}

/* ============================================
   DIACITE v3.3 — MOBILE FIX FINAL
   GeneratePress has-inline-mobile-toggle fix
   ============================================ */
html { overflow-x: hidden !important; }
body { overflow-x: hidden !important; max-width: 100vw !important; }

@media (max-width: 768px) {

    /* === FIX DOUBLE BURGER ===
       GP generates 2 navs:
       1) nav#mobile-menu-control-wrapper (inline burger in header) — KEEP THIS ONE
       2) nav#site-navigation (contains 2nd burger + menu) — HIDE ITS BURGER
    */

    /* Hide the second burger inside #site-navigation */
    #site-navigation > .inside-navigation > .menu-toggle {
        display: none !important;
    }

    /* Style the first burger (in mobile-menu-control-wrapper) */
    #mobile-menu-control-wrapper {
        display: flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
        order: 2 !important;
        padding: 0 !important;
        background: transparent !important;
        height: auto !important;
        width: auto !important;
    }
    #mobile-menu-control-wrapper .menu-toggle {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        background: rgba(255,255,255,.12) !important;
        border: 1.5px solid rgba(255,255,255,.25) !important;
        border-radius: 8px !important;
        color: white !important;
        cursor: pointer !important;
        padding: 0 !important;
    }
    #mobile-menu-control-wrapper .menu-toggle:hover,
    #mobile-menu-control-wrapper .menu-toggle:focus {
        background: rgba(255,255,255,.2) !important;
    }
    #mobile-menu-control-wrapper .menu-toggle .gp-icon { font-size: 18px !important; }

    /* Header layout: logo left, burger right */
    .site-header { position: relative !important; z-index: 9999 !important; }
    .inside-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 16px !important;
        height: 56px !important;
        flex-wrap: nowrap !important;
    }
    .dc-logo-wrapper { order: 1 !important; flex-shrink: 0 !important; }
    .site-branding { display: none !important; }

    /* The main nav (#site-navigation) becomes the dropdown */
    #site-navigation {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 9998 !important;
        background: #003366 !important;
        display: none !important;
        flex-basis: auto !important;
    }
    #site-navigation.toggled {
        display: block !important;
        box-shadow: 0 8px 32px rgba(0,0,0,.4) !important;
    }

    /* Menu items vertical */
    #site-navigation .inside-navigation { padding: 0 !important; }
    #site-navigation .main-nav { display: block !important; }
    #site-navigation .main-nav .menu {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 8px 0 16px !important;
    }
    #site-navigation .main-nav .menu-item {
        width: 100% !important;
        display: block !important;
        height: auto !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }
    #site-navigation .main-nav .menu-item a {
        display: block !important;
        padding: 13px 24px !important;
        color: rgba(255,255,255,.85) !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        height: auto !important;
        border-radius: 0 !important;
        background: transparent !important;
    }
    #site-navigation .main-nav .menu-item a:hover,
    #site-navigation .main-nav .current-menu-item > a {
        color: #e27d60 !important;
        background: rgba(255,255,255,.06) !important;
    }

    /* Prevent nav from taking full width in header row */
    .main-navigation#site-navigation { flex-basis: auto !important; }
    .main-navigation { overflow: visible !important; }
    .inside-navigation { max-width: 100vw !important; overflow: visible !important; }
    .dc-hero { padding: 32px 16px 40px !important; }
    .dc-hero-inner { display: block !important; }
    .dc-hero-mockup, .dc-hero-visual { display: none !important; }
    .dc-hero-title, .dc-hero h1 { font-size: 26px !important; }
    .dc-hero-ctas { flex-direction: column !important; gap: 10px !important; }
    .dc-hero-ctas a, .dc-hero-ctas button { width: 100% !important; justify-content: center !important; }
    .dc-hero-trust { flex-direction: column !important; gap: 6px !important; }
    .dc-trust-sep { display: none !important; }
    .dc-mod-section { padding: 32px 0 !important; }
    .dc-mod-inner { padding: 0 16px !important; }
    .dc-signal-hero { padding: 28px 16px !important; }
    .dc-signal-hero-inner { display: block !important; }
    .dc-signal-hero-card { display: none !important; }
    .dc-signal-hero-title, .dc-signal-title { font-size: 22px !important; }
    .dc-signal-list-wrap, .dc-signal-list-inner { padding: 16px !important; }
    .dc-signal-filters { overflow-x: auto !important; flex-wrap: nowrap !important; }
    .dc-signal-map-header { padding: 12px 16px !important; flex-direction: column !important; align-items: flex-start !important; }
    .nxv-signalement-map, #dc-signal-map, #dc-map-leaf, .dc-signal-map-container { height: 260px !important; max-width: 100vw !important; }
    .dc-pour-qui-section { padding: 40px 16px !important; }
    .dc-pour-qui-grid { grid-template-columns: 1fr !important; }
    .dc-mdca-section { padding: 40px 16px !important; }
    .dc-mdca-grid { grid-template-columns: 1fr !important; }
    .dc-testez-section { padding: 40px 16px !important; }
    .dc-contact-section { padding: 40px 16px !important; }
    .dc-contact-inner { grid-template-columns: 1fr !important; gap: 24px !important; }
    .dc-form-row { grid-template-columns: 1fr !important; }
    .dc-section-title h2 { font-size: 24px !important; }
    .dc-stats-band { grid-template-columns: 1fr 1fr !important; padding: 24px 16px !important; }
    .dc-stat-num { font-size: 24px !important; }
    .nxv-page-header { padding: 28px 20px !important; }
    .nxv-page-header h1 { font-size: 24px !important; }
    .dc-footer-wrap { flex-direction: column !important; text-align: center !important; padding: 24px 16px !important; gap: 16px !important; }
    .dc-footer-inner { flex-direction: column !important; gap: 12px !important; }
    .dc-demo-topbar-inner { flex-wrap: wrap !important; padding: 8px 16px !important; justify-content: center !important; }
    .dc-demo-sub { display: none !important; }
    .dc-signal-modal-overlay { align-items: flex-end !important; padding: 0 !important; }
    .dc-signal-modal { max-width: 100% !important; border-radius: 16px 16px 0 0 !important; max-height: 85vh !important; }
    .dc-signal-filters-bar, .dc-signal-filters-wrap { flex-direction: column !important; align-items: flex-start !important; }
}

@media (min-width: 769px) and (max-width: 1024px) {
    html, body { overflow-x: hidden !important; }
    .dc-signal-list-wrap, .dc-signal-list-inner { padding: 24px !important; }
    .dc-pour-qui-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .dc-mdca-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Agenda: badge acces libre */
.nxv-agenda-badge-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--dc-blue-lt, #e8eef5);
    color: var(--dc-blue, #003366);
    font-size: 12px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid rgba(0,51,102,.15);
}

/* ============================================
   BENTO v2 — PREMIUM MODULES SECTION
   ============================================ */

/* Section */
.dc-mod-section { background: #F8F7F5; padding: 80px 48px; position: relative; overflow: hidden; }
.dc-mod-section::before { content:''; position:absolute; left:-200px; top:-200px; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(226,125,96,.04) 0%,transparent 70%); pointer-events:none; }
.dc-mod-section::after { content:''; position:absolute; right:-150px; bottom:-150px; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(0,51,102,.03) 0%,transparent 70%); pointer-events:none; }
.dc-mod-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; }

/* Header */
.dc-mod-header { text-align:center; margin-bottom:16px; }
.dc-mod-tag { display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:700; color:#e27d60; text-transform:uppercase; letter-spacing:2.5px; margin-bottom:16px; }
.dc-mod-tag-line { width:24px; height:2px; background:linear-gradient(90deg,#e27d60,#c4633a); border-radius:2px; }
.dc-mod-title { font-size:clamp(28px,4vw,44px); font-weight:800; color:#1a1a2e; margin:0 0 14px; line-height:1.15; }
.dc-mod-title em { font-style:normal; color:#e27d60; position:relative; }
.dc-mod-title em::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:3px; background:linear-gradient(90deg,#e27d60,transparent); border-radius:2px; }
.dc-mod-subtitle { font-size:16px; color:#566573; max-width:520px; margin:0 auto; line-height:1.7; }

/* Hint */
.dc-mod-hint { display:flex; align-items:center; justify-content:center; gap:8px; font-size:11px; color:#9ca3af; margin-bottom:32px; }
.dc-mod-hint-dot { width:6px; height:6px; border-radius:50%; background:#e27d60; animation:dcHintPulse 2.5s ease-in-out infinite; }
@keyframes dcHintPulse { 0%,100%{opacity:.4;transform:scale(1)} 50%{opacity:1;transform:scale(1.4)} }

/* Bento Grid */
.dc-bento { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.dc-bento-lg { grid-column:span 3; }
.dc-bento-md { grid-column:span 2; }
.dc-bento-wide { grid-column:span 4; }
.dc-bento-enquete { grid-column:span 2; }

/* Card base */
.dc-bento-card {
    position:relative; overflow:hidden;
    background:white; border:1px solid #e8e5e2;
    border-radius:20px; padding:28px;
    text-decoration:none !important; color:#1a1a2e;
    display:flex; flex-direction:column;
    transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease, border-color .3s ease;
    cursor:pointer;
}
.dc-bento-card:hover {
    transform:translateY(-8px);
    box-shadow:0 24px 64px rgba(0,51,102,.12), 0 8px 24px rgba(0,51,102,.06);
    border-color:transparent;
}

/* Glow on hover (featured cards) */
.dc-bento-glow {
    position:absolute; inset:-1px; border-radius:20px;
    opacity:0; transition:opacity .4s ease;
    z-index:0; pointer-events:none;
}
.dc-bento-budget .dc-bento-glow { background:linear-gradient(135deg,rgba(0,51,102,.06),rgba(226,125,96,.06)); }
.dc-bento-signal .dc-bento-glow { background:linear-gradient(135deg,rgba(226,125,96,.06),rgba(0,51,102,.06)); }
.dc-bento-card:hover .dc-bento-glow { opacity:1; }

/* Featured cards — dark gradient */
.dc-bento-budget { background:linear-gradient(135deg,#003366 0%,#001f44 100%); border:none; padding:32px; }
.dc-bento-signal { background:linear-gradient(145deg,#e27d60 0%,#c4633a 100%); border:none; padding:32px; }
.dc-bento-budget, .dc-bento-signal { color:white; }
.dc-bento-budget h3, .dc-bento-signal h3 { color:white; font-size:22px; }
.dc-bento-budget p, .dc-bento-signal p { color:rgba(255,255,255,.75); font-size:14px; }
.dc-bento-budget .dc-bento-cta, .dc-bento-signal .dc-bento-cta { color:rgba(255,255,255,.7); }
.dc-bento-budget:hover .dc-bento-cta, .dc-bento-signal:hover .dc-bento-cta { color:white; }
.dc-bento-budget .dc-bento-icon { background:rgba(255,255,255,.12); color:white; }
.dc-bento-signal .dc-bento-icon { background:rgba(255,255,255,.18); color:white; }

/* Decorative circles on featured */
.dc-bento-budget::before, .dc-bento-signal::before {
    content:''; position:absolute; right:-50px; top:-50px;
    width:220px; height:220px; border-radius:50%;
    background:rgba(255,255,255,.04); pointer-events:none;
}
.dc-bento-budget::after, .dc-bento-signal::after {
    content:''; position:absolute; left:-30px; bottom:-30px;
    width:140px; height:140px; border-radius:50%;
    background:rgba(255,255,255,.03); pointer-events:none;
}

/* Content */
.dc-bento-content { position:relative; z-index:1; flex:1; display:flex; flex-direction:column; }
.dc-bento-head { display:flex; align-items:center; gap:10px; margin-bottom:16px; }

/* Icon */
.dc-bento-icon {
    width:44px; height:44px; border-radius:12px;
    background:#e8eef5; color:#003366;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
    transition:transform .4s cubic-bezier(.34,1.56,.64,1), background .3s;
}
.dc-bento-icon-warm { background:#fef0ec; color:#e27d60; }
.dc-bento-card:hover .dc-bento-icon { transform:scale(1.12) rotate(-5deg); }

/* Badges */
.dc-bento-badge {
    font-size:10px; font-weight:700; text-transform:uppercase;
    letter-spacing:.8px; padding:4px 12px; border-radius:20px;
}
.dc-bento-badge-pop { background:rgba(226,125,96,.15); color:#c4633a; border:1px solid rgba(226,125,96,.2); }
.dc-bento-badge-live {
    background:rgba(255,255,255,.15); color:white; border:1px solid rgba(255,255,255,.2);
    display:inline-flex; align-items:center; gap:5px;
}
.dc-bento-badge-trans { background:#e8eef5; color:#003366; border:1px solid rgba(0,51,102,.1); }
.dc-bento-badge-legal { background:#fef0ec; color:#c4633a; border:1px solid rgba(226,125,96,.15); }

/* Pulse */
.dc-bento-pulse { width:6px; height:6px; border-radius:50%; background:white; animation:dcBentoPulse 2s ease-in-out infinite; }
@keyframes dcBentoPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.6)} }

/* Typography */
.dc-bento-card h3 { font-size:18px; font-weight:800; margin:0 0 6px; line-height:1.3; position:relative; z-index:1; }
.dc-bento-card p { font-size:13px; color:#566573; line-height:1.65; margin:0 0 16px; flex:1; position:relative; z-index:1; }

/* CTA */
.dc-bento-cta {
    display:inline-flex; align-items:center; gap:6px;
    font-size:12px; font-weight:700; color:#003366;
    margin-top:auto; padding-top:12px;
    position:relative; z-index:1;
    transition:gap .25s ease, color .2s;
}
.dc-bento-card:hover .dc-bento-cta { gap:10px; }

/* Number watermark */
.dc-bento-num {
    position:absolute; top:8px; right:16px;
    font-size:72px; font-weight:900; line-height:1;
    color:rgba(0,51,102,.04); pointer-events:none; z-index:0;
    transition:color .3s;
}
.dc-bento-budget .dc-bento-num, .dc-bento-signal .dc-bento-num { color:rgba(255,255,255,.06); font-size:80px; }
.dc-bento-card:hover .dc-bento-num { color:rgba(0,51,102,.07); }
.dc-bento-budget:hover .dc-bento-num, .dc-bento-signal:hover .dc-bento-num { color:rgba(255,255,255,.1); }

/* ---- MINI VISUALIZATIONS ---- */

/* Bar chart (Budget) */
.dc-bento-chart {
    background:rgba(255,255,255,.07); border-radius:12px;
    padding:16px 18px 12px; margin-top:auto;
}
.dc-bento-bars { display:flex; align-items:flex-end; gap:8px; height:56px; margin-bottom:10px; }
.dc-bar {
    flex:1; border-radius:4px 4px 0 0;
    background:rgba(255,255,255,.18);
    height:var(--h,50%);
    transition:height .6s cubic-bezier(.34,1.56,.64,1) var(--d,0s), background .3s;
}
.dc-bar-accent { background:rgba(226,125,96,.7) !important; }
.dc-bento-card:hover .dc-bar { background:rgba(255,255,255,.3); }
.dc-bento-card:hover .dc-bar-accent { background:rgba(226,125,96,.9) !important; }
.dc-bento-chart-footer { display:flex; align-items:center; gap:8px; font-size:10px; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:.5px; }
.dc-chart-sep { color:rgba(255,255,255,.2); }

/* KPIs (Signalements) */
.dc-bento-kpis {
    display:flex; align-items:center; gap:0; margin-top:auto;
    background:rgba(255,255,255,.1); border-radius:12px; padding:14px 0; overflow:hidden;
}
.dc-bento-kpi { flex:1; text-align:center; }
.dc-kpi-num { display:block; font-size:22px; font-weight:800; color:white; line-height:1.1; }
.dc-kpi-num small { font-size:13px; font-weight:600; }
.dc-kpi-label { display:block; font-size:10px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }
.dc-bento-kpi-divider { width:1px; height:32px; background:rgba(255,255,255,.12); flex-shrink:0; }

/* Donut (Sondages) */
.dc-bento-donut-wrap { position:relative; width:80px; height:80px; margin:auto; margin-top:8px; }
.dc-bento-donut { width:100%; height:100%; transform:rotate(-90deg); }
.dc-donut-seg1 { transition:stroke-dasharray .8s ease .2s; }
.dc-donut-seg2 { transition:stroke-dasharray .8s ease .4s; }
.dc-bento-card:hover .dc-donut-seg1 { stroke-dasharray:58 30; }
.dc-bento-card:hover .dc-donut-seg2 { stroke-dasharray:30 58; }
.dc-donut-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:18px; font-weight:800; color:#003366; line-height:1; }
.dc-donut-center small { font-size:9px; color:#9ca3af; text-transform:uppercase; letter-spacing:.5px; font-weight:600; margin-top:2px; }

/* Calendar (Agenda) */
.dc-bento-cal { margin-top:8px; }
.dc-cal-row { display:grid; grid-template-columns:repeat(5,1fr); gap:4px; margin-bottom:4px; text-align:center; }
.dc-cal-day { font-size:9px; color:#9ca3af; font-weight:600; text-transform:uppercase; padding:2px 0; }
.dc-cal-row span:not(.dc-cal-day):not(.dc-cal-event) { font-size:12px; color:#566573; padding:4px; border-radius:6px; }
.dc-cal-event { font-size:12px; color:white !important; background:#e27d60; border-radius:6px; padding:4px; font-weight:700; }

/* Map dots (Cartographie) */
.dc-bento-map { position:relative; height:72px; margin-top:8px; border-radius:10px; background:linear-gradient(135deg,#e8eef5 0%,#f0ebe8 100%); overflow:hidden; }
.dc-map-grid { position:absolute; inset:0; background-image:radial-gradient(circle,rgba(0,51,102,.06) 1px,transparent 1px); background-size:14px 14px; }
.dc-map-pin { position:absolute; width:10px; height:10px; border-radius:50%; background:#003366; box-shadow:0 0 0 3px rgba(0,51,102,.15); transition:transform .3s ease; z-index:1; }
.dc-map-pin-accent { background:#e27d60; box-shadow:0 0 0 3px rgba(226,125,96,.2); }
.dc-bento-card:hover .dc-map-pin { transform:scale(1.3); }

/* Contribution pills (Concertation) */
.dc-bento-contribs { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.dc-contrib-pill { font-size:11px; font-weight:600; padding:4px 12px; border-radius:20px; transition:transform .2s; }
.dc-bento-card:hover .dc-contrib-pill { transform:translateY(-2px); }
.dc-pill-avis { background:#e8eef5; color:#003366; }
.dc-pill-prop { background:#e8f5e9; color:#1b5e20; }
.dc-pill-quest { background:#fff8e1; color:#7a5b00; }
.dc-pill-opp { background:#fce4ec; color:#a32d2d; }

/* Interaction note */
.dc-mod-interaction {
    display:flex; align-items:center; justify-content:center; gap:10px;
    margin-top:32px; padding:16px 24px;
    background:white; border:1px solid #e8e5e2; border-radius:12px;
    font-size:13px; color:#566573; line-height:1.6;
}
.dc-mod-interaction svg { flex-shrink:0; color:#e27d60; }

/* ---- RESPONSIVE ---- */
@media (max-width:1024px) {
    .dc-bento { grid-template-columns:repeat(2,1fr); }
    .dc-bento-lg { grid-column:span 1; }
    .dc-bento-md { grid-column:span 1; }
    .dc-bento-wide { grid-column:span 2; }
    .dc-bento-enquete { grid-column:span 2; }
    .dc-mod-section { padding:56px 32px; }
}
@media (max-width:640px) {
    .dc-bento { grid-template-columns:1fr; }
    .dc-bento-lg, .dc-bento-md, .dc-bento-wide, .dc-bento-enquete { grid-column:span 1; }
    .dc-mod-section { padding:40px 16px; }
    .dc-mod-title { font-size:26px; }
    .dc-bento-card { padding:22px; }
    .dc-bento-budget, .dc-bento-signal { padding:24px; }
    .dc-mod-interaction { flex-direction:column; text-align:center; }
}

/* ============================================
   HERO v2 — IMMERSIVE LANDING
   ============================================ */

/* Container */
.dc-hero2 {
    position: relative;
    min-height: 92vh;
    background: #001a33;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0;
    overflow: hidden;
}

/* Animated background */
.dc-hero2-bg {
    position: absolute; inset: 0; z-index: 0; overflow: hidden;
}
.dc-hero2-grid {
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black 30%, transparent 80%);
}
.dc-hero2-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .6;
    will-change: transform;
}
.dc-hero2-orb1 {
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(226,125,96,.2) 0%, transparent 70%);
    top: -10%; left: -5%;
    animation: dcOrb1 18s ease-in-out infinite;
}
.dc-hero2-orb2 {
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(0,51,102,.35) 0%, transparent 70%);
    bottom: -15%; right: -5%;
    animation: dcOrb2 22s ease-in-out infinite;
}
.dc-hero2-orb3 {
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(226,125,96,.1) 0%, transparent 70%);
    top: 40%; left: 50%;
    animation: dcOrb3 15s ease-in-out infinite;
}
@keyframes dcOrb1 { 0%,100%{transform:translate(0,0)} 33%{transform:translate(60px,40px)} 66%{transform:translate(-30px,60px)} }
@keyframes dcOrb2 { 0%,100%{transform:translate(0,0)} 33%{transform:translate(-50px,-30px)} 66%{transform:translate(40px,-50px)} }
@keyframes dcOrb3 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-60px,30px) scale(1.15)} }

/* Inner layout */
.dc-hero2-inner {
    position: relative; z-index: 1;
    max-width: 1280px; margin: 0 auto;
    padding: 80px 60px 60px;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 64px;
    align-items: center;
    width: 100%; box-sizing: border-box;
}

/* Content */
.dc-hero2-content { position: relative; z-index: 2; }

/* Eyebrow */
.dc-hero2-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(226,125,96,.08);
    border: 1px solid rgba(226,125,96,.2);
    padding: 7px 18px; border-radius: 30px;
    font-size: 12px; font-weight: 600;
    color: rgba(226,125,96,.9);
    letter-spacing: .3px;
    margin-bottom: 28px;
    backdrop-filter: blur(10px);
    animation: dcFadeUp .6s ease both;
}
.dc-hero2-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: #e27d60;
    animation: dcDotPulse 2.5s ease-in-out infinite;
}
@keyframes dcDotPulse { 0%,100%{box-shadow:0 0 0 0 rgba(226,125,96,.4)} 50%{box-shadow:0 0 0 6px rgba(226,125,96,0)} }
.dc-hero2-sep { color: rgba(226,125,96,.3); }

/* Title */
.dc-hero2-title {
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -1.5px;
    color: white;
    margin: 0 0 24px;
}
.dc-hero2-l1 {
    display: block;
    animation: dcFadeUp .6s .1s ease both;
}
.dc-hero2-l2 {
    display: block;
    animation: dcFadeUp .6s .2s ease both;
}
.dc-hero2-l2 em {
    font-style: normal;
    position: relative;
    color: #e27d60;
}
.dc-hero2-l2 em::after {
    content: '';
    position: absolute;
    bottom: -3px; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #e27d60, transparent);
    border-radius: 2px;
    animation: dcUnderline .8s .8s ease both;
    transform: scaleX(0);
    transform-origin: left;
}
@keyframes dcUnderline { to{transform:scaleX(1)} }

/* Description */
.dc-hero2-desc {
    font-size: 17px;
    color: rgba(255,255,255,.6);
    line-height: 1.75;
    margin: 0 0 36px;
    max-width: 480px;
    animation: dcFadeUp .6s .3s ease both;
}

/* CTAs */
.dc-hero2-ctas {
    display: flex; gap: 14px; flex-wrap: wrap;
    margin-bottom: 40px;
    animation: dcFadeUp .6s .4s ease both;
}
.dc-hero2-btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    background: #e27d60;
    color: white !important;
    padding: 14px 28px; border-radius: 10px;
    font-size: 15px; font-weight: 700;
    text-decoration: none !important;
    letter-spacing: .2px;
    transition: all .25s cubic-bezier(.34,1.56,.64,1);
    box-shadow: 0 4px 24px rgba(226,125,96,.35), inset 0 1px 0 rgba(255,255,255,.15);
    border: none; cursor: pointer;
}
.dc-hero2-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 36px rgba(226,125,96,.5), inset 0 1px 0 rgba(255,255,255,.2);
    background: #d06a4e;
}
.dc-hero2-btn-secondary {
    display: inline-flex; align-items: center; gap: 8px;
    color: rgba(255,255,255,.8) !important;
    padding: 14px 24px; border-radius: 10px;
    font-size: 14px; font-weight: 500;
    text-decoration: none !important;
    border: 1px solid rgba(255,255,255,.15);
    transition: all .25s ease;
    backdrop-filter: blur(8px);
    background: rgba(255,255,255,.04);
}
.dc-hero2-btn-secondary:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.3);
    color: white !important;
    transform: translateY(-2px);
}

/* Trust badges */
.dc-hero2-trust {
    display: flex; align-items: center; gap: 0;
    animation: dcFadeUp .6s .5s ease both;
}
.dc-hero2-trust-item {
    display: flex; align-items: center; gap: 6px;
    color: rgba(255,255,255,.4);
    font-size: 12px; font-weight: 500;
    padding: 0 16px;
}
.dc-hero2-trust-item svg { color: rgba(226,125,96,.6); flex-shrink: 0; }
.dc-hero2-trust-sep {
    width: 1px; height: 16px;
    background: rgba(255,255,255,.1);
    flex-shrink: 0;
}

/* ---- DASHBOARD PREVIEW ---- */
.dc-hero2-visual {
    position: relative; z-index: 2;
    animation: dcFadeRight .8s .3s ease both;
}
.dc-hero2-dashboard {
    background: rgba(255,255,255,.06);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
        0 32px 80px rgba(0,0,0,.4),
        0 0 0 1px rgba(255,255,255,.05),
        inset 0 1px 0 rgba(255,255,255,.08);
    animation: dcFloat 8s ease-in-out infinite;
}

/* Dashboard bar */
.dc-dash-bar {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px;
    background: rgba(255,255,255,.04);
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.dc-dash-dots { display: flex; gap: 5px; }
.dc-dash-dots span {
    width: 8px; height: 8px; border-radius: 50%;
}
.dc-dash-dots span:nth-child(1) { background: #ff5f57; }
.dc-dash-dots span:nth-child(2) { background: #ffbd2e; }
.dc-dash-dots span:nth-child(3) { background: #28ca41; }
.dc-dash-url {
    font-size: 10px; color: rgba(255,255,255,.3);
    background: rgba(255,255,255,.05);
    padding: 3px 12px; border-radius: 6px;
    flex: 1; text-align: center;
    font-family: monospace;
}

/* Dashboard stats */
.dc-dash-stats {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
    background: rgba(255,255,255,.04);
    margin: 0;
}
.dc-dash-stat {
    padding: 16px 18px;
    background: rgba(0,26,51,.5);
    position: relative;
}
.dc-dash-stat-num {
    display: block;
    font-size: 24px; font-weight: 800; color: white;
    line-height: 1;
}
.dc-dash-stat-label {
    display: block;
    font-size: 10px; color: rgba(255,255,255,.4);
    text-transform: uppercase; letter-spacing: .5px;
    margin-top: 4px;
}
.dc-dash-stat-trend {
    position: absolute; top: 14px; right: 14px;
    font-size: 10px; font-weight: 700;
    color: #28ca41;
    background: rgba(40,202,65,.1);
    padding: 2px 7px; border-radius: 4px;
}

/* Dashboard chart */
.dc-dash-chart {
    padding: 14px 18px 10px;
    background: rgba(0,26,51,.3);
}
.dc-dash-chart-label {
    font-size: 10px; color: rgba(255,255,255,.3);
    text-transform: uppercase; letter-spacing: .5px;
    margin-bottom: 8px;
}
.dc-dash-sparkline { width: 100%; height: 44px; display: block; }

/* Dashboard modules */
.dc-dash-modules {
    display: flex; flex-wrap: wrap; gap: 6px;
    padding: 12px 18px;
    background: rgba(0,26,51,.4);
}
.dc-dash-mod {
    display: flex; align-items: center; gap: 5px;
    font-size: 10px; color: rgba(255,255,255,.4);
    background: rgba(255,255,255,.04);
    padding: 4px 10px; border-radius: 6px;
    font-weight: 500;
}
.dc-dash-mod-active { color: rgba(255,255,255,.7); }
.dc-dash-mod-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: #28ca41; flex-shrink: 0;
}
.dc-dash-mod-dot-off { background: rgba(255,255,255,.15); }

/* Dashboard notification */
.dc-dash-notif {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 18px;
    background: rgba(226,125,96,.08);
    border-top: 1px solid rgba(226,125,96,.1);
    animation: dcNotifSlide 4s 2s ease infinite;
}
.dc-dash-notif-icon { font-size: 14px; }
.dc-dash-notif-text strong {
    display: block; font-size: 11px; color: rgba(255,255,255,.8); font-weight: 600;
}
.dc-dash-notif-text span {
    font-size: 10px; color: rgba(255,255,255,.35);
}
@keyframes dcNotifSlide {
    0%,15%,100%{opacity:1;transform:translateY(0)}
    5%{opacity:0;transform:translateY(8px)}
    10%{opacity:0;transform:translateY(-8px)}
}

/* Scroll indicator */
.dc-hero2-scroll {
    position: absolute;
    bottom: 28px; left: 50%;
    transform: translateX(-50%);
    display: flex; flex-direction: column;
    align-items: center; gap: 6px;
    color: rgba(255,255,255,.25);
    font-size: 10px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 1.5px;
    animation: dcScrollBounce 2s ease-in-out infinite;
    z-index: 3;
}
@keyframes dcScrollBounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* Animations */
@keyframes dcFadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes dcFadeRight { from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:translateX(0)} }
@keyframes dcFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

/* ---- STATS BAND v2 ---- */
.dc-stats2 {
    background: white;
    border-bottom: 1px solid #edecea;
    position: relative; z-index: 5;
}
.dc-stats2-inner {
    max-width: 1200px; margin: 0 auto;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
}
.dc-stats2-item {
    flex: 1;
    display: flex; align-items: center; gap: 14px;
    padding: 24px 32px;
    justify-content: center;
}
.dc-stats2-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: #fef0ec;
    color: #e27d60;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.dc-stats2-num {
    display: block;
    font-size: 22px; font-weight: 800; color: #003366;
    line-height: 1;
}
.dc-stats2-label {
    display: block;
    font-size: 11px; color: #9ca3af;
    text-transform: uppercase; letter-spacing: .5px;
    margin-top: 2px;
}
.dc-stats2-divider {
    width: 1px; height: 40px;
    background: #edecea;
    flex-shrink: 0;
}

/* ---- RESPONSIVE ---- */
@media (max-width:1024px) {
    .dc-hero2-inner { grid-template-columns: 1fr; gap: 40px; padding: 60px 32px 50px; text-align: center; }
    .dc-hero2-visual { max-width: 380px; margin: 0 auto; }
    .dc-hero2-desc { max-width: 100%; margin-left: auto; margin-right: auto; }
    .dc-hero2-ctas { justify-content: center; }
    .dc-hero2-trust { justify-content: center; flex-wrap: wrap; gap: 8px; }
    .dc-hero2-trust-sep { display: none; }
    .dc-hero2-trust-item { padding: 4px 10px; }
    .dc-hero2-eyebrow { margin-left: auto; margin-right: auto; }
}
@media (max-width:768px) {
    .dc-hero2 { min-height: auto; }
    .dc-hero2-inner { padding: 48px 20px 40px; }
    .dc-hero2-title { font-size: 32px; letter-spacing: -1px; }
    .dc-hero2-desc { font-size: 15px; }
    .dc-hero2-visual { display: none; }
    .dc-hero2-scroll { display: none; }
    .dc-stats2-inner { flex-wrap: wrap; }
    .dc-stats2-item { flex: 1 1 45%; padding: 18px 20px; }
    .dc-stats2-divider { display: none; }
    .dc-hero2-eyebrow { font-size: 10px; padding: 6px 12px; flex-wrap: wrap; justify-content: center; text-align: center; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .dc-hero2-orb, .dc-hero2-dashboard, .dc-hero2-scroll,
    .dc-hero2-eyebrow, .dc-hero2-l1, .dc-hero2-l2,
    .dc-hero2-desc, .dc-hero2-ctas, .dc-hero2-trust,
    .dc-hero2-visual, .dc-dash-notif, .dc-hero2-dot {
        animation: none !important;
    }
    .dc-hero2-l2 em::after { transform: scaleX(1); }
}

/* Hide old hero */
.dc-hero:not(.dc-hero2) { display: none !important; }

/* ============================================
   BUDGET PARTICIPATIF v2 — PREMIUM
   ============================================ */

/* Layout */
.dc-budget { width:100%; max-width:100%; margin:0; padding:0; }
.dc-budget-body { max-width:1100px; margin:0 auto; padding:0 32px 48px; box-sizing:border-box; }

/* Hero */
.dc-budget-hero { position:relative; background:#003366; padding:56px 32px 48px; overflow:hidden; }
.dc-budget-hero-bg { position:absolute; inset:0; background-image:radial-gradient(circle at 20% 60%,rgba(226,125,96,.12) 0%,transparent 50%),radial-gradient(circle at 80% 30%,rgba(255,255,255,.03) 0%,transparent 40%); pointer-events:none; }
.dc-budget-hero-inner { position:relative; z-index:1; max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.dc-budget-hero-content h1 { font-size:clamp(26px,4vw,38px); font-weight:800; color:white; line-height:1.15; margin:0 0 14px; }
.dc-budget-hero-content em { font-style:normal; color:#e27d60; }
.dc-budget-hero-content p { font-size:15px; color:rgba(255,255,255,.65); line-height:1.7; margin:0; max-width:460px; }
.dc-budget-hero-content p strong { color:rgba(255,255,255,.9); }
.dc-budget-hero-tag { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; color:#e27d60; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:16px; background:rgba(226,125,96,.1); padding:5px 14px; border-radius:20px; border:1px solid rgba(226,125,96,.2); }

/* Hero stats */
.dc-budget-hero-stats { display:flex; align-items:center; gap:0; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:20px 0; backdrop-filter:blur(12px); }
.dc-budget-hero-stat { text-align:center; padding:0 28px; }
.dc-bhs-num { display:block; font-size:26px; font-weight:800; color:white; line-height:1; }
.dc-bhs-label { display:block; font-size:10px; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:.5px; margin-top:4px; }
.dc-bhs-sep { width:1px; height:36px; background:rgba(255,255,255,.1); flex-shrink:0; }

/* Process timeline */
.dc-budget-process { background:white; border-bottom:1px solid #edecea; padding:24px 32px; }
.dc-budget-process-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; gap:0; }
.dc-bp-step { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.dc-bp-icon { width:36px; height:36px; border-radius:10px; background:#f0f1f2; color:#9ca3af; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .2s; }
.dc-bp-text strong { display:block; font-size:13px; font-weight:700; color:#1a1a2e; }
.dc-bp-text span { font-size:11px; color:#9ca3af; }
.dc-bp-badge { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:3px 8px; border-radius:12px; flex-shrink:0; }
.dc-bp-badge-done { background:#ecfdf5; color:#059669; }
.dc-bp-badge-active { background:#fef0ec; color:#e27d60; display:inline-flex; align-items:center; gap:4px; }
.dc-bp-pulse { width:5px; height:5px; border-radius:50%; background:#e27d60; animation:dcBpPulse 2s ease-in-out infinite; }
@keyframes dcBpPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }
.dc-bp-line { flex:1; height:2px; background:#edecea; margin:0 8px; min-width:16px; }
.dc-bp-line-done { background:#059669; }
.dc-bp-line-active { background:linear-gradient(90deg,#059669,#e27d60); }
.dc-bp-done .dc-bp-icon { background:#ecfdf5; color:#059669; }
.dc-bp-active .dc-bp-icon { background:#fef0ec; color:#e27d60; box-shadow:0 0 0 3px rgba(226,125,96,.15); }

/* Points header */
.dc-budget-points { display:flex; align-items:center; gap:28px; padding:24px 28px; background:#fafafa; border:1px solid #edecea; border-radius:16px; margin:28px 0; }
.dc-bp-remaining { display:flex; align-items:center; gap:16px; }
.dc-bp-ring { position:relative; width:64px; height:64px; flex-shrink:0; }
.dc-bp-ring svg { width:100%; height:100%; transform:rotate(-90deg); }
.dc-bp-ring span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:800; color:#e27d60; }
.dc-bp-remaining > div strong { display:block; font-size:14px; font-weight:700; color:#1a1a2e; }
.dc-bp-remaining > div span { font-size:12px; color:#9ca3af; }
.dc-bp-action { flex:1; }
.dc-bp-action p { font-size:13px; color:#566573; margin:0 0 12px; line-height:1.6; }
.dc-bp-submit { background:#e27d60; color:white; border:none; padding:11px 24px; border-radius:10px; font-size:14px; font-weight:700; cursor:pointer; transition:all .2s; font-family:inherit; }
.dc-bp-submit:hover:not(:disabled) { background:#c4633a; transform:translateY(-2px); box-shadow:0 4px 16px rgba(226,125,96,.3); }
.dc-bp-submit:disabled { opacity:.5; cursor:not-allowed; }

/* Login CTA */
.dc-budget-login-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px 24px; background:linear-gradient(135deg,#003366,#001f44); border-radius:14px; margin:28px 0; }
.dc-blc-left { display:flex; align-items:center; gap:12px; color:white; }
.dc-blc-left svg { color:#e27d60; flex-shrink:0; }
.dc-blc-left strong { display:block; font-size:14px; font-weight:700; }
.dc-blc-left span { font-size:12px; color:rgba(255,255,255,.55); }
.dc-blc-btn { background:#e27d60; color:white !important; padding:10px 20px; border-radius:8px; font-size:13px; font-weight:700; text-decoration:none !important; white-space:nowrap; transition:all .2s; }
.dc-blc-btn:hover { background:#c4633a; transform:translateY(-2px); }

/* Project grid */
.dc-budget-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-bottom:40px; }

/* Project card */
.dc-budget-card { position:relative; background:white; border:1px solid #e8e5e2; border-radius:16px; overflow:hidden; transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s; }
.dc-budget-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,51,102,.08); }
.dc-budget-card-voted { border-color:#e27d60; box-shadow:0 0 0 2px rgba(226,125,96,.15); }
.dc-budget-card-bar { height:4px; }
.dc-budget-card-body { padding:22px 24px 24px; }

/* Rank badge */
.dc-budget-rank { position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; z-index:2; }
.dc-rank-1 { background:#e27d60; color:white; box-shadow:0 4px 12px rgba(226,125,96,.3); }
.dc-rank-2 { background:#003366; color:white; }
.dc-rank-3 { background:#e8eef5; color:#003366; }

/* Card meta */
.dc-budget-card-meta { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.dc-bcm-quartier { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--qc,#e27d60); background:color-mix(in srgb, var(--qc,#e27d60) 10%,white); padding:3px 10px; border-radius:6px; }
.dc-bcm-montant { font-size:13px; font-weight:700; color:#003366; }

/* Card content */
.dc-budget-card h3 { font-size:17px; font-weight:800; color:#1a1a2e; margin:0 0 6px; line-height:1.3; }
.dc-budget-card p { font-size:13px; color:#566573; line-height:1.6; margin:0 0 16px; }

/* Progress */
.dc-budget-progress { margin-bottom:16px; }
.dc-budget-progress-track { height:6px; background:#f0f1f2; border-radius:3px; overflow:hidden; }
.dc-budget-progress-fill { height:100%; border-radius:3px; transition:width .5s cubic-bezier(.34,1.56,.64,1); }
.dc-budget-progress-info { display:flex; justify-content:space-between; margin-top:6px; font-size:12px; color:#9ca3af; }
.dc-budget-progress-info strong { color:#1a1a2e; }
.dc-budget-pct { font-weight:700; color:#003366; }

/* Vote controls */
.dc-budget-vote { display:flex; align-items:center; gap:10px; padding-top:4px; }
.dc-bv-btn { width:36px; height:36px; border-radius:50%; border:1.5px solid #e8e5e2; background:white; display:flex; align-items:center; justify-content:center; cursor:pointer; color:#566573; transition:all .2s; }
.dc-bv-btn:hover:not(:disabled) { border-color:#e27d60; color:#e27d60; background:#fef0ec; }
.dc-bv-btn:disabled { opacity:.3; cursor:not-allowed; }
.dc-bv-pts { min-width:28px; text-align:center; font-size:22px; font-weight:800; color:#e27d60; }
.dc-bv-label { font-size:11px; color:#9ca3af; }

/* Idea section */
.dc-budget-idea { margin-top:8px; }
.dc-budget-idea-header { display:flex; align-items:center; justify-content:space-between; padding:16px 22px; background:white; border:1px solid #e8e5e2; border-radius:12px; cursor:pointer; transition:all .2s; }
.dc-budget-idea-header:hover { border-color:#e27d60; }
.dc-bi-left { display:flex; align-items:center; gap:12px; }
.dc-bi-left svg { color:#e27d60; flex-shrink:0; }
.dc-bi-left strong { display:block; font-size:14px; font-weight:700; color:#1a1a2e; }
.dc-bi-left span { font-size:12px; color:#9ca3af; }
.dc-bi-arrow { color:#9ca3af; transition:transform .2s; font-size:12px; }
.dc-budget-idea-body { padding:24px; border:1px solid #e8e5e2; border-top:none; border-radius:0 0 12px 12px; background:#fafafa; }
.dc-bi-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.dc-bi-field { display:flex; flex-direction:column; gap:5px; }
.dc-bi-field label { font-size:12px; font-weight:600; color:#566573; }
.dc-bi-field input, .dc-bi-field select, .dc-bi-field textarea { padding:10px 14px; border:1.5px solid #e8e5e2; border-radius:8px; font-size:14px; font-family:inherit; background:white; transition:border .15s; outline:none; width:100%; box-sizing:border-box; }
.dc-bi-field input:focus, .dc-bi-field select:focus, .dc-bi-field textarea:focus { border-color:#e27d60; box-shadow:0 0 0 3px rgba(226,125,96,.08); }
.dc-bi-field textarea { resize:vertical; min-height:80px; }
.dc-bi-counter { font-size:11px; color:#9ca3af; text-align:right; margin-top:2px; }
.dc-bi-submit { background:#e27d60; color:white; border:none; padding:11px 24px; border-radius:10px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; transition:all .2s; }
.dc-bi-submit:hover { background:#c4633a; }
.dc-bi-success { margin-top:14px; padding:12px 16px; background:#ecfdf5; border:1px solid #6ce9a6; border-radius:8px; color:#059669; font-size:13px; }

/* Lead card highlight */
.dc-budget-card-lead { border-color:rgba(226,125,96,.25); }
.dc-budget-card-lead .dc-budget-card-bar { height:5px; }

/* Responsive */
@media (max-width:900px) {
    .dc-budget-hero-inner { flex-direction:column; text-align:center; }
    .dc-budget-hero-content p { max-width:100%; }
    .dc-budget-process-inner { flex-wrap:wrap; gap:8px; justify-content:center; }
    .dc-bp-line { min-width:8px; flex:0 0 24px; }
    .dc-bp-badge { display:none; }
    .dc-budget-points { flex-direction:column; text-align:center; gap:16px; }
    .dc-bp-remaining { justify-content:center; }
    .dc-budget-grid { grid-template-columns:1fr; }
    .dc-bi-row { grid-template-columns:1fr; }
    .dc-budget-hero-stats { flex-wrap:wrap; justify-content:center; gap:16px; }
    .dc-bhs-sep { display:none; }
    .dc-budget-hero-stat { padding:8px 20px; }
}

/* ============================================
   BUTTON CONTRAST FIX — WCAG AA (4.5:1 min)
   All orange (#e27d60) bg → white text
   All blue (#003366) bg → white text
   ============================================ */

/* Orange background buttons → white text */
.dc-btn-gold,
.dc-btn-gold:hover,
.dc-btn-gold:focus,
.dc-btn-gold:visited,
.nxv-btn-gold,
.nxv-btn-gold:hover,
.dc-btn-primary,
.dc-btn-primary:hover,
.dc-bp-submit,
.dc-bp-submit:hover,
.dc-blc-btn,
.dc-blc-btn:hover,
.dc-bi-submit,
.dc-bi-submit:hover,
.dc-hero2-btn-primary,
.dc-hero2-btn-primary:hover,
.dc-demo-topbar-cta,
.dc-demo-topbar-cta:hover,
.dc-contact-form button[type="submit"],
.dc-contact-form .dc-btn-gold,
button[class*="vote"],
button[class*="voter"],
.nxv-budget-vote-btn,
.dc-signal-btn-primary,
.dc-signal-btn-submit,
[class*="dc-btn"][style*="background:#e27d60"],
[class*="dc-btn"][style*="background: #e27d60"] {
    color: white !important;
}

/* Blue background buttons → white text */
.nxv-btn-primary,
.nxv-btn-primary:hover,
.nxv-btn-primary:focus,
.nxv-btn-primary:visited {
    color: white !important;
}

/* Outline buttons: orange border + orange text on white bg — OK contrast */
.dc-btn-outline,
.nxv-btn-outline {
    color: #c4633a !important;
    border-color: #c4633a !important;
    background: white !important;
}
.dc-btn-outline:hover,
.nxv-btn-outline:hover {
    background: #e27d60 !important;
    color: white !important;
    border-color: #e27d60 !important;
}

/* Ghost buttons on dark bg → white text, visible border */
.dc-btn-ghost,
.dc-btn-ghost:hover,
.dc-hero2-btn-secondary,
.dc-hero2-btn-secondary:hover {
    color: white !important;
}

/* Vote +/- controls — ensure icon is visible */
.dc-vote-controls button,
.dc-bv-btn {
    color: #003366 !important;
    border-color: #d0d5dd !important;
}
.dc-vote-controls button:hover,
.dc-bv-btn:hover:not(:disabled) {
    color: white !important;
    background: #e27d60 !important;
    border-color: #e27d60 !important;
}

/* Disabled buttons — muted but still readable */
.dc-btn-gold:disabled,
.nxv-btn-primary:disabled,
.dc-bp-submit:disabled,
button:disabled {
    opacity: 0.45 !important;
    color: white !important;
}

/* Pill badges — ensure text readable */
.dc-bento-badge,
.dc-mod-badge,
.nxv-pill,
.dc-bp-badge {
    font-weight: 700 !important;
}

/* Fix specific: signal status badges text contrast */
.nxv-signal-status,
[class*="signal-status"],
[class*="statut-badge"] {
    font-weight: 700 !important;
}

/* Nav menu links — ensure contrast on blue bg */
.main-navigation a,
.main-navigation .menu-item a {
    color: white !important;
}
.main-navigation .menu-item a:hover,
.main-navigation .current-menu-item > a {
    color: #e27d60 !important;
}

/* Footer links */
.site-footer a,
.dc-footer-bar a {
    color: rgba(255,255,255,.6) !important;
}
.site-footer a:hover,
.dc-footer-bar a:hover {
    color: #e27d60 !important;
}

/* Form submit on contact section (dark bg) */
.dc-contact-section .dc-btn-gold,
.dc-contact-section .dc-btn-full,
.dc-contact-section button[type="submit"] {
    background: #e27d60 !important;
    color: white !important;
}
.dc-contact-section .dc-btn-gold:hover,
.dc-contact-section button[type="submit"]:hover {
    background: #c4633a !important;
    color: white !important;
}

/* Collapsible toggles — text needs to be visible */
.nxv-collapsible-toggle,
.dc-collapsible-toggle,
#dc-rules-toggle,
#dc-idea-toggle {
    color: #1a1a2e !important;
}

/* Agenda badge info */
.nxv-agenda-badge-info {
    color: #003366 !important;
    background: #e8eef5 !important;
}

/* Gestionnaire sidebar links */
.nxv-sidebar a,
.nxv-dashboard-nav a {
    color: #003366 !important;
}
.nxv-sidebar a:hover,
.nxv-dashboard-nav a:hover {
    color: #e27d60 !important;
}

/* ============================================
   MISSING BUTTON DEFINITIONS
   ============================================ */

/* Concertation buttons */
.dc-conc-btn-primary { color: white !important; }
.dc-conc-btn-primary:hover { background: #c4633a !important; color: white !important; }
.dc-conc-btn-secondary:hover { background: rgba(255,255,255,.2); }
.dc-conc-page-btn { min-height: 44px; }
.dc-conc-page-btn:hover { background: #e27d60; color: white !important; border-color: #e27d60; }

/* Enquete buttons */
.dc-eq-btn-primary { color: white !important; }
.dc-eq-btn-primary:hover { background: #c4633a !important; color: white !important; }
.dc-eq-btn-secondary:hover { background: rgba(255,255,255,.2); }
.dc-eq-page-btn { min-height: 44px; }
.dc-eq-page-btn:hover { background: #e27d60; color: white !important; border-color: #e27d60; }

/* Signal buttons */
.dc-signal-map-btn:hover,
.dc-signal-vote-btn:hover { background: #e27d60 !important; color: white !important; border-color: #e27d60 !important; }
.dc-signal-vote-btn.dc-signal-voted { background: #e27d60; color: white; border-color: #e27d60; }

/* Agenda inscription button */
.nxv-agenda-inscription-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 6px; padding: 10px 22px;
    background: #e27d60; color: white !important;
    border: none; border-radius: 8px;
    font-size: 13px; font-weight: 700;
    cursor: pointer; font-family: inherit;
    transition: all .2s; min-height: 44px;
}
.nxv-agenda-inscription-btn:hover { background: #c4633a; transform: translateY(-1px); }
.nxv-agenda-inscription-btn.inscrit {
    background: white; color: #e27d60 !important;
    border: 2px solid #e27d60;
}
.nxv-agenda-inscription-btn.inscrit:hover { background: #fef0ec; }
.nxv-agenda-inscription-btn:disabled {
    background: #e8e5e2; color: #9ca3af !important;
    cursor: not-allowed; border: none;
}

/* Add option button (gestionnaire) */
.nxv-add-option-btn {
    background: white; color: #003366;
    border: 1.5px dashed #d0d5dd; border-radius: 8px;
    padding: 8px 16px; font-size: 13px; font-weight: 600;
    cursor: pointer; font-family: inherit; transition: all .15s;
}
.nxv-add-option-btn:hover { border-color: #e27d60; color: #e27d60; background: #fef0ec; }

/* Secondary button */
.nxv-btn-secondary {
    display: inline-flex; align-items: center; gap: 6px;
    background: white; color: #003366;
    border: 1.5px solid #d0d5dd; border-radius: 8px;
    padding: 8px 18px; font-size: 13px; font-weight: 600;
    cursor: pointer; font-family: inherit; transition: all .15s;
}
.nxv-btn-secondary:hover { border-color: #003366; background: #e8eef5; }

/* Delete button */
.nxv-btn-delete {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 6px;
    background: white; color: #dc2626;
    border: 1.5px solid #fecaca; cursor: pointer;
    font-size: 14px; font-family: inherit; transition: all .15s;
}
.nxv-btn-delete:hover { background: #fef2f2; border-color: #dc2626; }

/* ============================================
   NUCLEAR CONTRAST FIX — LAST RULE WINS
   Ensures text is always readable on its bg.
   ============================================ */

/* Hero v2: EVERYTHING white on dark bg */
.dc-hero2,
.dc-hero2 *:not(svg):not(path):not(circle):not(rect):not(line):not(polygon):not(defs):not(stop):not(linearGradient) {
    color: white !important;
}
.dc-hero2 em,
.dc-hero2-l2 em,
.dc-hero2 .dc-hero2-l2 em {
    color: #e27d60 !important;
}
.dc-hero2-desc,
.dc-hero2 .dc-hero2-desc {
    color: rgba(255,255,255,.6) !important;
}
.dc-hero2-eyebrow,
.dc-hero2-eyebrow * {
    color: rgba(226,125,96,.9) !important;
}
.dc-hero2-sep {
    color: rgba(226,125,96,.3) !important;
}
.dc-hero2-trust-item {
    color: rgba(255,255,255,.4) !important;
}
.dc-hero2-trust-item svg {
    color: rgba(226,125,96,.6) !important;
}
.dc-hero2-scroll,
.dc-hero2-scroll * {
    color: rgba(255,255,255,.25) !important;
}
.dc-hero2-btn-primary,
.dc-hero2-btn-primary * {
    color: white !important;
}
.dc-hero2-btn-secondary {
    color: rgba(255,255,255,.8) !important;
}
.dc-hero2-btn-secondary:hover {
    color: white !important;
}

/* Dashboard preview inside hero */
.dc-dash-url { color: rgba(255,255,255,.3) !important; }
.dc-dash-stat-num { color: white !important; }
.dc-dash-stat-label { color: rgba(255,255,255,.4) !important; }
.dc-dash-stat-trend { color: #28ca41 !important; }
.dc-dash-chart-label { color: rgba(255,255,255,.3) !important; }
.dc-dash-mod { color: rgba(255,255,255,.4) !important; }
.dc-dash-mod-active { color: rgba(255,255,255,.7) !important; }
.dc-dash-notif-text strong { color: rgba(255,255,255,.8) !important; }
.dc-dash-notif-text span { color: rgba(255,255,255,.35) !important; }

/* Stats band v2: dark text on white bg */
.dc-stats2 * { color: inherit; }
.dc-stats2-num { color: #003366 !important; }
.dc-stats2-label { color: #9ca3af !important; }
.dc-stats2-icon { color: #e27d60 !important; }

/* Old hero (if somehow visible): force white */
.dc-hero,
.dc-hero * { color: white; }
.dc-hero em,
.dc-hero .dc-title-em { color: #e27d60 !important; }

/* Budget hero: white text */
.dc-budget-hero,
.dc-budget-hero * {
    color: white !important;
}
.dc-budget-hero em { color: #e27d60 !important; }
.dc-budget-hero p { color: rgba(255,255,255,.65) !important; }
.dc-budget-hero p strong { color: rgba(255,255,255,.9) !important; }
.dc-bhs-label { color: rgba(255,255,255,.45) !important; }

/* Concertation hero */
.dc-conc-hero,
.dc-conc-hero *,
.dc-enquete-hero,
.dc-enquete-hero * {
    color: white !important;
}

/* Signal hero */
.dc-signal-hero,
.dc-signal-hero * {
    color: white !important;
}

/* MD Conseil section (gradient bg) */
.dc-mdca-section h3 { color: white !important; }
.dc-mdca-section p { color: rgba(255,255,255,.7) !important; }

/* Contact section (dark bg) */
.dc-contact-section .dc-contact-title { color: white !important; }
.dc-contact-section .dc-contact-desc { color: rgba(255,255,255,.7) !important; }
.dc-contact-section .dc-contact-avantages li { color: rgba(255,255,255,.8) !important; }
.dc-contact-section .dc-contact-mdc-name { color: white !important; }
.dc-contact-section .dc-contact-mdc-sub { color: rgba(255,255,255,.5) !important; }

/* Contact form (white bg inside dark section) */
.dc-contact-form-wrap,
.dc-contact-form-wrap * { color: inherit; }
.dc-contact-form .dc-label { color: #1a1a2e !important; }
.dc-contact-form input,
.dc-contact-form select,
.dc-contact-form textarea { color: #1a1a2e !important; }

/* Section titles on light backgrounds — dark text */
.dc-pour-qui-section .dc-section-title h2 { color: #003366 !important; }
.dc-pour-qui-section .dc-section-title p { color: #566573 !important; }
.dc-mod-section .dc-mod-title { color: #1a1a2e !important; }
.dc-mod-section .dc-mod-subtitle { color: #566573 !important; }

/* Bento cards on white bg — dark text */
.dc-bento-card h3 { color: #1a1a2e !important; }
.dc-bento-card p { color: #566573 !important; }
/* But featured (dark bg) cards — white text */
.dc-bento-budget h3,
.dc-bento-budget p,
.dc-bento-signal h3,
.dc-bento-signal p {
    color: white !important;
}
.dc-bento-budget p,
.dc-bento-signal p {
    color: rgba(255,255,255,.75) !important;
}

/* Process timeline on white bg */
.dc-budget-process .dc-bp-text strong { color: #1a1a2e !important; }
.dc-budget-process .dc-bp-text span { color: #9ca3af !important; }

/* Budget cards on white bg */
.dc-budget-card h3 { color: #1a1a2e !important; }
.dc-budget-card p { color: #566573 !important; }

/* Page headers: always white on blue */
.nxv-page-header h1,
.dc-page-header h1 { color: white !important; }
.nxv-page-header p,
.dc-page-header p { color: rgba(255,255,255,.8) !important; }

/* All orange bg buttons: white text */
[class*="btn-primary"],
[class*="btn-gold"],
.dc-bp-submit,
.dc-blc-btn,
.dc-bi-submit,
.nxv-agenda-inscription-btn:not(.inscrit) {
    color: white !important;
}

/* ============================================
/* ============================================
/* ============================================
   SPACING CLEANUP — NO UNWANTED WHITE SPACE
   ============================================ */

/* Kill all GP default padding on article wrappers for our pages */
.page .inside-article,
.page .entry-content,
.single .inside-article,
.single .entry-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}

/* Kill GP separate-containers padding */
.separate-containers .inside-article,
.separate-containers .site-main > * {
    padding: 0 !important;
    margin-bottom: 0 !important;
}
.separate-containers .site-main {
    margin: 0 !important;
}

/* No min-height on content wrappers — let content define height */
.entry-content,
.site-content,
.content-area,
.nxv-section,
.dc-section,
[class*="nxv-"][class*="-citoyen"],
[class*="dc-"][class*="-section"] {
    min-height: auto !important;
}

/* No margin-top on entry-content (GP default is 2em) */
.entry-content:not(:first-child) {
    margin-top: 0 !important;
}

/* Sections stack with zero gap between them */
.dc-home > *,
.dc-budget > *,
.dc-sondages > *,
.dc-sondages > * > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* But allow internal padding of sections (they handle their own spacing) */
.dc-quest-main,
.dc-quest-rapides,
.dc-quest-main,
.dc-budget-body {
    margin-top: 0 !important;
}

/* GP site-main margin reset */
.site-main {
    margin: 0 !important;
    padding: 0 !important;
}

/* No bottom gap before footer */
.site-content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* ============================================
   QUESTIONNAIRES PAGE — CLEAN v3
   ============================================ */

/* Wrapper */
.dc-quest{width:100%;margin:0;padding:0}

/* Hero compact */
.dc-quest-hero{background:linear-gradient(135deg,#003366,#001a33);padding:44px 32px;position:relative;overflow:hidden}
.dc-quest-hero::before{content:'';position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;border:40px solid rgba(226,125,96,.05);pointer-events:none}
.dc-quest-hero-inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.dc-quest-hero h1{font-size:clamp(22px,3vw,32px);font-weight:800;color:white !important;line-height:1.15;margin:0 0 10px}
.dc-quest-hero em{font-style:normal;color:#e27d60 !important}
.dc-quest-hero p{font-size:14px;color:rgba(255,255,255,.55) !important;margin:0;line-height:1.6}
.dc-quest-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:#e27d60 !important;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}
.dc-quest-pulse{width:6px;height:6px;border-radius:50%;background:#e27d60;animation:dcQP 2s ease-in-out infinite}
@keyframes dcQP{0%,100%{box-shadow:0 0 0 0 rgba(226,125,96,.4)}50%{box-shadow:0 0 0 5px rgba(226,125,96,0)}}
.dc-quest-hero-nums{display:flex;gap:20px}
.dc-quest-hero-num{text-align:center;padding:12px 18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:12px}
.dc-quest-hero-num strong{display:block;font-size:22px;font-weight:800;color:white !important;line-height:1}
.dc-quest-hero-num span{font-size:10px;color:rgba(255,255,255,.4) !important;text-transform:uppercase;letter-spacing:.3px}

/* Main questionnaire */
.dc-quest-main{max-width:800px;margin:0 auto;padding:28px 24px 40px}

/* Intro */
.dc-quest-intro{display:flex;align-items:flex-start;gap:16px;padding:20px;background:#f8f7f5;border:1px solid #edecea;border-radius:14px;margin-bottom:24px}
.dc-quest-intro-icon{width:44px;height:44px;border-radius:10px;background:#e8eef5;color:#003366;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dc-quest-intro h2{font-size:18px;font-weight:800;color:#1a1a2e !important;margin:0 0 4px;line-height:1.3}
.dc-quest-intro p{font-size:13px;color:#566573 !important;margin:0;line-height:1.6}

/* Progress */
.dc-quest-progress{margin-bottom:24px}
.dc-quest-pbar{height:3px;background:#f0f1f2;border-radius:3px;overflow:hidden;margin-bottom:12px}
.dc-quest-pfill{height:100%;background:#e27d60;border-radius:3px;transition:width .3s ease;width:25%}
.dc-quest-steps{display:flex;gap:4px}
.dc-quest-step{flex:1;display:flex;align-items:center;gap:6px;padding:8px 10px;background:white;border:1.5px solid #e8e5e2;border-radius:8px;cursor:pointer;font-family:inherit;transition:all .15s}
.dc-quest-step:hover{border-color:#d0d5dd}
.dc-quest-step.active{border-color:#e27d60;background:#fef8f6}
.dc-quest-step.done{border-color:#059669;background:#ecfdf5}
.dc-quest-step-n{width:24px;height:24px;border-radius:50%;background:#f0f1f2;color:#9ca3af !important;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dc-quest-step.active .dc-quest-step-n{background:#e27d60;color:white !important}
.dc-quest-step.done .dc-quest-step-n{background:#059669;color:white !important}
.dc-quest-step-t{font-size:10px;font-weight:600;color:#9ca3af !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-quest-step.active .dc-quest-step-t{color:#1a1a2e !important}
.dc-quest-step.done .dc-quest-step-t{color:#059669 !important}

/* Section */
.dc-quest-sec-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #edecea}
.dc-quest-sec-num{font-size:28px;font-weight:900;color:rgba(0,51,102,.06) !important;line-height:1;min-width:32px}
.dc-quest-sec-head h3{font-size:18px;font-weight:800;color:#1a1a2e !important;margin:0 0 2px}
.dc-quest-sec-head p{font-size:12px;color:#9ca3af !important;margin:0}

/* Question */
.dc-quest-q{margin-bottom:20px;padding:16px 20px;background:white;border:1px solid #e8e5e2;border-radius:12px;transition:border-color .15s}
.dc-quest-q:hover{border-color:#d0d5dd}
.dc-quest-q-err{border-color:#ef4444 !important;animation:dcShk .3s ease}
@keyframes dcShk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.dc-quest-label{display:block;font-size:14px;font-weight:700;color:#1a1a2e !important;margin-bottom:12px;line-height:1.5}
.dc-quest-req{color:#ef4444}
.dc-quest-label em{font-style:normal;display:block;font-size:11px;font-weight:500;color:#9ca3af !important;margin-top:3px}

/* Likert */
.dc-quest-likert-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px}
.dc-quest-likert{display:grid;gap:0;min-width:560px}
.dc-ql-col{font-size:10px;font-weight:700;color:#566573 !important;text-align:center;padding:8px 4px;text-transform:uppercase;letter-spacing:.2px}
.dc-ql-row{font-size:12px;font-weight:600;color:#1a1a2e !important;padding:10px 12px;border-radius:6px 0 0 6px}
.dc-ql-alt{background:#fafafa}
.dc-ql-cell{display:flex;align-items:center;justify-content:center;padding:8px}
.dc-ql-radio{cursor:pointer;display:flex}
.dc-ql-radio input{display:none}
.dc-ql-radio span{width:20px;height:20px;border-radius:50%;border:2px solid #d0d5dd;transition:all .15s}
.dc-ql-radio:hover span{border-color:#e27d60;background:#fef8f6}
.dc-ql-radio input:checked+span{border-color:#e27d60;background:#e27d60;box-shadow:inset 0 0 0 3px white}

/* Radio/Checkbox */
.dc-quest-opts{display:flex;flex-direction:column;gap:6px}
.dc-quest-opt{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;border:1.5px solid #e8e5e2;cursor:pointer;transition:all .15s}
.dc-quest-opt:hover{border-color:#d0d5dd;background:#fafafa}
.dc-quest-opt.selected{border-color:#e27d60;background:#fef8f6}
.dc-quest-opt input{display:none}
.dc-qo-mark{width:18px;height:18px;border-radius:50%;border:2px solid #d0d5dd;flex-shrink:0;position:relative;transition:all .15s}
.dc-qo-check{border-radius:4px}
.dc-quest-opt.selected .dc-qo-mark{border-color:#e27d60}
.dc-quest-opt.selected .dc-qo-mark::after{content:'';position:absolute;inset:3px;border-radius:50%;background:#e27d60}
.dc-quest-opt.selected .dc-qo-check::after{border-radius:1px}
.dc-quest-opt span:last-child{font-size:13px;font-weight:600;color:#1a1a2e !important}
.dc-quest-limit{font-size:11px;color:#9ca3af !important;font-weight:600;margin-top:4px;padding:4px 10px;background:#f0f1f2;border-radius:6px;display:inline-block}
.dc-quest-limit .dc-ql-n{color:#e27d60 !important;font-weight:800}

/* Textarea */
.dc-quest-ta{width:100%;padding:12px 14px;border:1.5px solid #e8e5e2;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;min-height:60px;outline:none;transition:border .15s;box-sizing:border-box;color:#1a1a2e !important}
.dc-quest-ta:focus{border-color:#e27d60;box-shadow:0 0 0 2px rgba(226,125,96,.08)}

/* Nav */
.dc-quest-nav{display:flex;align-items:center;gap:10px;padding-top:20px;border-top:1px solid #edecea;margin-top:4px}
.dc-quest-nav span{flex:1}
.dc-quest-btn-prev{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;border:1.5px solid #e8e5e2;background:white;color:#566573 !important;transition:all .15s}
.dc-quest-btn-prev:hover{border-color:#003366;color:#003366 !important}
.dc-quest-btn-next{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;border:none;background:#003366;color:white !important;transition:all .15s}
.dc-quest-btn-next:hover{background:#002244;transform:translateY(-1px)}
.dc-quest-btn-submit{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;border:none;background:#e27d60;color:white !important;transition:all .15s}
.dc-quest-btn-submit:hover{background:#c4633a;transform:translateY(-1px)}
.dc-quest-btn-submit:disabled{opacity:.5;cursor:not-allowed}

/* Success */
.dc-quest-ok{text-align:center;padding:48px 20px}
.dc-quest-ok-check{width:56px;height:56px;border-radius:50%;background:#ecfdf5;color:#059669 !important;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.dc-quest-ok h3{font-size:20px;font-weight:800;color:#1a1a2e !important;margin:0 0 6px}
.dc-quest-ok p{font-size:13px;color:#566573 !important;max-width:360px;margin:0 auto}

/* Quick polls */
.dc-quest-rapides{max-width:1000px;margin:0 auto;padding:32px 24px 40px}
.dc-quest-rapides h2{font-size:20px;font-weight:800;color:#1a1a2e !important;margin:0 0 4px}
.dc-quest-rapides>p{font-size:13px;color:#9ca3af !important;margin:0 0 20px}
.dc-quest-rapides-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}

/* Quick poll card */
.dc-qr-card{background:white;border:1px solid #e8e5e2;border-radius:14px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.dc-qr-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,51,102,.06)}
.dc-qr-bar{height:3px}
.dc-qr-inner{padding:20px}
.dc-qr-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dc-qr-badge-open{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#e27d60 !important;background:rgba(226,125,96,.08);padding:3px 10px;border-radius:12px;display:inline-flex;align-items:center;gap:4px}
.dc-qr-dot{width:5px;height:5px;border-radius:50%;background:#e27d60}
.dc-qr-badge-closed{font-size:10px;font-weight:700;color:#9ca3af !important;background:#f0f1f2;padding:3px 10px;border-radius:12px}
.dc-qr-votes{font-size:11px;font-weight:700;color:#003366 !important;background:#e8eef5;padding:3px 10px;border-radius:12px}
.dc-qr-card h3{font-size:15px;font-weight:700;color:#1a1a2e !important;margin:0 0 8px;line-height:1.35}
.dc-qr-deadline{font-size:11px;color:#e27d60 !important;font-weight:600;margin-bottom:12px}

/* Quick poll options */
.dc-qr-opts{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.dc-qr-opt{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;border:1.5px solid #e8e5e2;cursor:pointer;transition:all .15s;font-size:13px;font-weight:600;color:#1a1a2e !important}
.dc-qr-opt:hover{border-color:#d0d5dd}
.dc-qr-opt.selected{border-color:#e27d60;background:#fef8f6}
.dc-qr-opt input{display:none}
.dc-qr-mark{width:16px;height:16px;border-radius:50%;border:2px solid #d0d5dd;flex-shrink:0;position:relative;transition:all .15s}
.dc-qr-opt.selected .dc-qr-mark{border-color:#e27d60}
.dc-qr-opt.selected .dc-qr-mark::after{content:'';position:absolute;inset:3px;border-radius:50%;background:#e27d60}

/* Quick poll vote btn */
.dc-qr-vote{width:100%;height:40px;background:#e27d60;color:white !important;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.dc-qr-vote:hover:not(:disabled){background:#c4633a}
.dc-qr-vote:disabled{opacity:.3;cursor:not-allowed}
.dc-qr-vote.voted{background:#003366;opacity:1}

/* Quick poll results */
.dc-qr-results{display:flex;flex-direction:column;gap:8px}
.dc-qr-result-top{display:flex;justify-content:space-between;font-size:12px;color:#1a1a2e !important;margin-bottom:3px}
.dc-qr-bar-track{height:5px;background:#f0f1f2;border-radius:3px;overflow:hidden}
.dc-qr-bar-track>div{height:100%;border-radius:3px;transition:width .5s ease}
.dc-qr-voted{font-size:11px;color:#566573 !important;text-align:center;padding:6px;background:#f0f1f2;border-radius:6px;margin-top:8px;font-weight:600}

/* Responsive */
@media(max-width:768px){
    .dc-quest-hero-inner{flex-direction:column;text-align:center}
    .dc-quest-hero-nums{justify-content:center}
    .dc-quest-main{padding:20px 16px 32px}
    .dc-quest-steps{flex-direction:column}
    .dc-quest-likert{min-width:480px}
    .dc-quest-rapides{padding:24px 16px 32px}
    .dc-quest-rapides-grid{grid-template-columns:1fr}
    .dc-quest-nav{flex-wrap:wrap}
    .dc-quest-btn-prev,.dc-quest-btn-next,.dc-quest-btn-submit{flex:1;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.dc-qr-card{transition:none}.dc-qr-card:hover{transform:none}.dc-quest-pulse{animation:none}}

/* ============================================
   NEXOVIA — SHOWCASE PAGE
   ============================================ */
.dc-nex{width:100%;margin:0;padding:0}

/* Hero */
.dc-nex-hero{position:relative;background:linear-gradient(135deg,#003366,#001a33);padding:56px 32px 52px;overflow:hidden}
.dc-nex-hero-bg{position:absolute;inset:0;background-image:radial-gradient(circle at 25% 50%,rgba(226,125,96,.1),transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.03),transparent 40%);pointer-events:none}
.dc-nex-hero-bg::before{content:'';position:absolute;right:-100px;bottom:-100px;width:400px;height:400px;border-radius:50%;border:60px solid rgba(226,125,96,.04)}
.dc-nex-hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:center;position:relative;z-index:1}
.dc-nex-badge{display:inline-block;font-size:11px;font-weight:700;color:#e27d60 !important;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px;background:rgba(226,125,96,.1);padding:5px 14px;border-radius:20px;border:1px solid rgba(226,125,96,.2)}
.dc-nex-hero h1{font-size:clamp(36px,5vw,56px);font-weight:900;color:white !important;margin:0 0 8px;letter-spacing:-1px;line-height:1.05}
.dc-nex-hero-sub{font-size:16px;color:rgba(255,255,255,.5) !important;margin:0 0 16px;font-weight:500}
.dc-nex-hero-desc{font-size:14px;color:rgba(255,255,255,.45) !important;line-height:1.7;margin:0 0 28px;max-width:460px}
.dc-nex-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.dc-nex-btn-primary{display:inline-flex;align-items:center;gap:8px;background:#e27d60;color:white !important;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:700;text-decoration:none !important;transition:all .2s;border:none;cursor:pointer}
.dc-nex-btn-primary:hover{background:#c4633a;transform:translateY(-2px);box-shadow:0 4px 16px rgba(226,125,96,.3)}
.dc-nex-btn-ghost{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.7) !important;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:500;text-decoration:none !important;border:1px solid rgba(255,255,255,.15);transition:all .2s}
.dc-nex-btn-ghost:hover{background:rgba(255,255,255,.08);color:white !important}

/* ID Card */
.dc-nex-id-card{background:rgba(255,255,255,.06);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:24px;box-shadow:0 24px 64px rgba(0,0,0,.3);animation:dcNexFloat 8s ease-in-out infinite}
@keyframes dcNexFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.dc-nex-id-top{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}
.dc-nex-id-avatar{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#e27d60,#c4633a);color:white !important;font-size:20px;font-weight:900;display:flex;align-items:center;justify-content:center}
.dc-nex-id-top strong{display:block;font-size:18px;font-weight:800;color:white !important}
.dc-nex-id-top span{font-size:11px;color:rgba(255,255,255,.4) !important}
.dc-nex-id-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.dc-nex-id-num{display:block;font-size:20px;font-weight:800;color:white !important;line-height:1.1}
.dc-nex-id-lab{display:block;font-size:10px;color:rgba(255,255,255,.35) !important;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
.dc-nex-id-maire{background:rgba(255,255,255,.04);border-radius:10px;padding:12px;text-align:center}
.dc-nex-id-maire span{display:block;font-size:10px;color:rgba(255,255,255,.35) !important;text-transform:uppercase;letter-spacing:1px}
.dc-nex-id-maire strong{display:block;font-size:15px;font-weight:800;color:white !important;margin:2px 0}
.dc-nex-id-maire em{font-style:normal;font-size:11px;color:rgba(255,255,255,.3) !important}

/* Section defaults */
.dc-nex-sec-inner{max-width:1100px;margin:0 auto;padding:48px 32px}
.dc-nex-sec-head{text-align:center;margin-bottom:32px}
.dc-nex-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:#e27d60 !important;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px}
.dc-nex-sec-head h2{font-size:clamp(22px,3vw,32px);font-weight:800;color:#1a1a2e !important;margin:0;line-height:1.2}

/* Quartiers */
.dc-nex-quartiers{background:#f8f7f5}
.dc-nex-q-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.dc-nex-q-card{background:white;border:1px solid #e8e5e2;border-radius:16px;padding:24px;text-align:center;transition:all .25s;position:relative;overflow:hidden}
.dc-nex-q-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--qc)}
.dc-nex-q-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,51,102,.08)}
.dc-nex-q-icon{width:48px;height:48px;border-radius:50%;background:var(--qc);color:white !important;font-size:20px;font-weight:900;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.dc-nex-q-card h3{font-size:18px;font-weight:800;color:#1a1a2e !important;margin:0 0 4px}
.dc-nex-q-card p{font-size:12px;color:#9ca3af !important;margin:0 0 8px}
.dc-nex-q-pop{font-size:11px;font-weight:700;color:var(--qc) !important;display:block;margin-bottom:12px}
.dc-nex-q-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.dc-nex-q-tags span{font-size:10px;font-weight:600;color:#566573 !important;background:#f0f1f2;padding:2px 8px;border-radius:10px}

/* Timeline */
.dc-nex-timeline{background:white}
.dc-nex-tl{position:relative;display:flex;flex-direction:column;gap:0;padding-left:32px}
.dc-nex-tl-line{position:absolute;left:11px;top:0;bottom:0;width:2px;background:#e8e5e2}
.dc-nex-tl-item{position:relative;display:flex;gap:16px;padding:20px 0}
.dc-nex-tl-dot{position:absolute;left:-28px;top:24px;width:14px;height:14px;border-radius:50%;background:#e8e5e2;border:3px solid white;z-index:1}
.dc-nex-tl-done .dc-nex-tl-dot{background:#059669}
.dc-nex-tl-active .dc-nex-tl-dot{background:#e27d60;box-shadow:0 0 0 4px rgba(226,125,96,.2)}
.dc-nex-tl-date{font-size:12px;font-weight:700;color:#9ca3af !important;min-width:70px;padding-top:4px}
.dc-nex-tl-card{flex:1;background:#fafafa;border:1px solid #edecea;border-radius:12px;padding:16px 20px}
.dc-nex-tl-active .dc-nex-tl-card{border-color:#e27d60;background:#fef8f6}
.dc-nex-tl-card h4{font-size:15px;font-weight:800;color:#1a1a2e !important;margin:0 0 4px}
.dc-nex-tl-card p{font-size:12px;color:#566573 !important;margin:0 0 10px;line-height:1.5}
.dc-nex-tl-links{display:flex;gap:6px;flex-wrap:wrap}
.dc-nex-tl-links a{font-size:11px;font-weight:700;color:#003366 !important;background:#e8eef5;padding:3px 10px;border-radius:8px;text-decoration:none !important;transition:all .15s}
.dc-nex-tl-links a:hover{background:#003366;color:white !important}
.dc-nex-tl-soon{font-size:11px;color:#9ca3af !important;font-weight:600}

/* Personas */
.dc-nex-personas{background:#f8f7f5}
.dc-nex-p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.dc-nex-p-card{background:white;border:1px solid #e8e5e2;border-radius:16px;padding:24px;text-align:center;transition:all .25s}
.dc-nex-p-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,51,102,.06)}
.dc-nex-p-avatar{width:52px;height:52px;border-radius:50%;color:white !important;font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.dc-nex-p-card h4{font-size:16px;font-weight:800;color:#1a1a2e !important;margin:0 0 2px}
.dc-nex-p-card p{font-size:12px;color:#9ca3af !important;margin:0 0 12px}
.dc-nex-p-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.dc-nex-p-pill{font-size:10px;font-weight:600;color:#566573 !important;background:#f0f1f2;padding:3px 10px;border-radius:10px}

/* Live dashboard */
.dc-nex-live{background:white}
.dc-nex-live-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}
.dc-nex-live-card{background:#fafafa;border:1px solid #edecea;border-radius:14px;padding:20px;text-decoration:none !important;transition:all .25s;display:flex;flex-direction:column;gap:12px}
.dc-nex-live-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,51,102,.06);border-color:#e27d60}
.dc-nex-lc-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.dc-nex-lc-num{display:block;font-size:24px;font-weight:800;color:#1a1a2e !important;line-height:1}
.dc-nex-lc-lab{display:block;font-size:11px;color:#9ca3af !important;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
.dc-nex-lc-sub{font-size:11px;color:#9ca3af !important}

/* Upcoming events */
.dc-nex-upcoming{margin-bottom:32px}
.dc-nex-upcoming h3{font-size:16px;font-weight:800;color:#1a1a2e !important;margin:0 0 14px}
.dc-nex-up-list{display:flex;flex-direction:column;gap:8px}
.dc-nex-up-item{display:flex;align-items:center;gap:14px;padding:14px 18px;background:#fafafa;border:1px solid #edecea;border-radius:12px;text-decoration:none !important;transition:all .2s}
.dc-nex-up-item:hover{border-color:#e27d60;background:#fef8f6;transform:translateX(4px)}
.dc-nex-up-date{text-align:center;min-width:48px}
.dc-nex-up-day{display:block;font-size:22px;font-weight:800;color:#003366 !important;line-height:1}
.dc-nex-up-month{display:block;font-size:10px;font-weight:700;color:#e27d60 !important;text-transform:uppercase}
.dc-nex-up-info{flex:1}
.dc-nex-up-info strong{display:block;font-size:14px;font-weight:700;color:#1a1a2e !important}
.dc-nex-up-info span{font-size:11px;color:#9ca3af !important}
.dc-nex-up-item svg{color:#d0d5dd;flex-shrink:0;transition:color .2s}
.dc-nex-up-item:hover svg{color:#e27d60}

/* Connections */
.dc-nex-connections h3{font-size:16px;font-weight:800;color:#1a1a2e !important;margin:0 0 14px}
.dc-nex-conn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.dc-nex-conn{background:#fafafa;border:1px solid #edecea;border-radius:12px;padding:18px;transition:all .2s}
.dc-nex-conn:hover{border-color:#e27d60;transform:translateY(-3px)}
.dc-nex-conn-icons{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.dc-nex-conn-icons span:not(.dc-nex-conn-arrow){font-size:10px;font-weight:700;padding:4px 10px;border-radius:8px}
.dc-nex-conn-arrow{font-size:14px;color:#d0d5dd !important}
.dc-nex-conn p{font-size:12px;color:#566573 !important;margin:0;line-height:1.5}

/* CTA */
.dc-nex-cta{background:linear-gradient(135deg,#003366,#001a33);padding:0}
.dc-nex-cta-inner{max-width:600px;margin:0 auto;padding:56px 32px;text-align:center}
.dc-nex-cta h2{font-size:26px;font-weight:800;color:white !important;margin:0 0 10px}
.dc-nex-cta p{font-size:14px;color:rgba(255,255,255,.5) !important;margin:0 0 24px;line-height:1.6}

/* Responsive */
@media(max-width:1024px){
    .dc-nex-hero-inner{grid-template-columns:1fr;text-align:center}
    .dc-nex-hero-card{max-width:340px;margin:0 auto}
    .dc-nex-hero-ctas{justify-content:center}
    .dc-nex-q-grid{grid-template-columns:1fr 1fr}
    .dc-nex-live-grid{grid-template-columns:1fr 1fr}
    .dc-nex-p-grid{grid-template-columns:1fr 1fr}
    .dc-nex-conn-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
    .dc-nex-hero{padding:40px 20px}
    .dc-nex-sec-inner{padding:32px 16px}
    .dc-nex-q-grid{grid-template-columns:1fr}
    .dc-nex-live-grid{grid-template-columns:1fr}
    .dc-nex-p-grid{grid-template-columns:1fr}
    .dc-nex-hero-card{display:none}
    .dc-nex-hero-desc{max-width:100%}
}
@media(prefers-reduced-motion:reduce){.dc-nex-id-card{animation:none}}
/* Nexovia menu item — distinct style */
.menu-item-nexovia > a {
    background: rgba(226,125,96,.12) !important;
    color: #e27d60 !important;
    border-radius: 6px !important;
    padding: 4px 14px !important;
    font-weight: 700 !important;
    margin-right: 4px !important;
}
.menu-item-nexovia > a:hover {
    background: #e27d60 !important;
    color: white !important;
}
/* Logic section */
.dc-nex-logic{background:white}
.dc-nex-logic-sub{font-size:14px;color:#566573 !important;max-width:500px;margin:8px auto 0;line-height:1.6}

/* Flow grid */
.dc-nex-flow{margin-top:8px}
.dc-nex-flow-hub{text-align:center;margin-bottom:24px}
.dc-nex-flow-center{display:inline-flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#003366,#001a33);color:white !important;padding:16px 32px;border-radius:16px;box-shadow:0 8px 24px rgba(0,51,102,.15)}
.dc-nex-flow-center strong{font-size:20px;font-weight:900;display:block;color:white !important}
.dc-nex-flow-center span{font-size:11px;color:rgba(255,255,255,.5) !important}

.dc-nex-flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* Flow card */
.dc-nex-flow-card{background:#fafafa;border:1.5px solid #e8e5e2;border-radius:14px;padding:20px;position:relative;transition:all .25s;cursor:default}
.dc-nex-flow-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,51,102,.06);border-color:#e27d60}
.dc-nex-fc-num{position:absolute;top:10px;right:12px;font-size:28px;font-weight:900;color:rgba(0,51,102,.04) !important;line-height:1}
.dc-nex-fc-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.dc-nex-flow-card h4{font-size:15px;font-weight:800;color:#1a1a2e !important;margin:0 0 2px}
.dc-nex-flow-card p{font-size:11px;color:#9ca3af !important;margin:0 0 10px}
.dc-nex-fc-link{font-size:12px;color:#566573 !important;line-height:1.5;margin-bottom:12px;padding:10px 12px;background:white;border-radius:8px;border-left:3px solid #e27d60}
.dc-nex-fc-link strong{color:#003366 !important}
.dc-nex-fc-cta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#e27d60 !important;text-decoration:none !important;transition:gap .15s}
.dc-nex-fc-cta:hover{gap:8px}

@media(max-width:1024px){.dc-nex-flow-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.dc-nex-flow-grid{grid-template-columns:1fr}}
/* Pour Qui — Nexovia reference */
.dc-pq-nexovia {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,.7) !important;
    background: rgba(255,255,255,.1);
    padding: 8px 14px;
    border-radius: 8px;
    margin-bottom: 14px;
}
.dc-pq-nexovia svg { color: rgba(255,255,255,.6); flex-shrink: 0; }
.dc-pq-nexovia a {
    color: white !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(255,255,255,.3) !important;
}
.dc-pq-nexovia a:hover { text-decoration-color: white !important; }

/* Pour Qui featured — bigger icon */
.dc-pq-featured .dc-pq-icon svg { width: 40px; height: 40px; }

/* Engagements grid — 4 cols for 8 items */
.dc-mdca-grid { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 1024px) { .dc-mdca-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px) { .dc-mdca-grid { grid-template-columns: 1fr !important; } }
