/* =========================================================================
   IMMO SEINE-EURE V7.5 — GREFFES BSA + PALETTE EMPIRE 5 TOKENS
   Phase 6 Bloc B Theme V7.5 — 2026-05-27
   Seal : EMPIRE-2026-05-27-8WV3 + EMPIRE-IMMO-2026-05-19-HOGUET

   Charge APRES main.css (cascade override) + carte.css

   Greffes appliquees :
     #1 Drop-cap narrative Playfair italic gold
     #2 Two-col form + value-prop bullets trust
     #3 Data-cards sourcees PERVAL/DVF
     #4 Commune-arrow gap allongement hover
     #5 Nav-link underline gradient gold ::after
     #6 Field input focus ring 4px gold
     #7 Footer ::before gradient gold top
     #8 Hero-veil 3-stops gradient texte contraste

   Anti-patterns retires :
     - backdrop-filter blur (perf iOS)
     - radial gradient rotate (dette)
   ========================================================================= */

/* ---------- 1. PALETTE EMPIRE 5 TOKENS (alias canoniques) ---------- */
:root {
    --navy:        #0F2236;
    --navy-2:      #1E3A5F;
    --navy-deep:   #0a1828;
    --gold:        #F4A340;
    --gold-2:      #E0913B;
    --gold-soft:   #FBE6C7;
    --cream:       #F5EBD9;
    --cream-2:     #FAF3E5;
    --paper:       #FFFCF6;
    --ink:         #1f2933;
    --mute:        rgba(15,34,54,.6);
    --line:        #E8DCC7;
    --shadow-lg:   0 18px 40px -12px rgba(15,34,54,.22), 0 8px 16px -8px rgba(15,34,54,.12);
    --shadow-md:   0 8px 24px -6px rgba(15,34,54,.18);
    --shadow-sm:   0 2px 8px rgba(15,34,54,.10);
}

/* ---------- 2. PLAYFAIR DISPLAY OVERRIDE (titres V7.5) ---------- */
body.imse-theme h1,
body.imse-theme h2,
body.imse-theme h3,
.imse-h1, .imse-h2, .imse-h3,
.imse-headline, .imse-eyebrow-headline {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    color: var(--navy);
    font-weight: 700;
    line-height: 1.2;
}

body.imse-theme h2 em,
body.imse-theme h3 em,
.imse-headline em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

/* ---------- 3. HEADER FIX : retrait backdrop-filter blur (anti-iOS) ---------- */
.imse-site-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: var(--navy) !important;
    color: var(--cream);
}

.imse-site-header .imse-brand-name,
.imse-site-header .imse-brand-sub {
    color: var(--cream);
}

.imse-site-header .imse-menu a {
    color: var(--cream);
    transition: color .2s;
    position: relative;
    padding: 6px 0;
    text-decoration: none;
}

.imse-site-header .imse-menu a:hover,
.imse-site-header .imse-menu a:focus-visible {
    color: var(--gold);
    text-decoration: none;
}

/* GREFFE #5 — Nav-link underline gradient gold ::after */
.imse-site-header .imse-menu a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--gold) 0%, var(--gold-2) 100%);
    transition: width .3s ease;
}

.imse-site-header .imse-menu a:hover::after,
.imse-site-header .imse-menu a:focus-visible::after {
    width: 100%;
}

/* CTA header "Estimation offerte" */
.imse-newsletter-cta {
    background: transparent;
    color: #fff;
    border: 1.5px solid var(--gold);
    border-radius: 999px;
    padding: .6rem 1.4rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: .2s;
    font-family: inherit;
    text-decoration: none;
}

.imse-newsletter-cta:hover,
.imse-newsletter-cta:focus-visible {
    background: var(--gold);
    color: var(--navy);
    text-decoration: none;
}

/* Hoguet strip header */
.imse-hoguet-strip {
    background: #0a1727;
    color: var(--gold);
    padding: .55rem 1rem;
    font-size: .74rem;
    text-align: center;
    letter-spacing: .05em;
}

.imse-hoguet-strip__item strong {
    color: #fff;
    font-weight: 500;
}

.imse-hoguet-strip__sep {
    opacity: .4;
    margin: 0 .5rem;
}

/* ---------- 4. GREFFE #8 — Hero-veil 3-stops ---------- */
.imse-hero,
.hero,
.imse-home-hero {
    position: relative;
    min-height: 420px;
    color: #fff;
    overflow: hidden;
}

.imse-hero::before,
.hero::before,
.imse-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(15,34,54,.55) 0%,
        rgba(15,34,54,.78) 70%,
        rgba(15,34,54,.92) 100%);
    z-index: 1;
}

.imse-hero::after,
.hero::after,
.imse-home-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 800px 400px at 50% 30%,
        rgba(244,163,64,.12) 0%,
        transparent 70%);
    z-index: 1;
    pointer-events: none;
}

.imse-hero > *,
.hero > *,
.imse-home-hero > * {
    position: relative;
    z-index: 2;
}

.imse-hero h1,
.hero h1 {
    color: #fff;
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
    letter-spacing: -.01em;
}

.imse-hero h1 em,
.hero h1 em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

/* ---------- 5. GREFFE #1 — Drop-cap narrative Playfair italic gold ---------- */
.imse-narrative-body p:first-of-type::first-letter,
.narrative-body p:first-of-type::first-letter,
.imse-home-bio-julien p:first-of-type::first-letter,
.drop-cap::first-letter {
    font-family: "Playfair Display", Georgia, serif;
    font-style: italic;
    font-weight: 600;
    font-size: 4.8rem;
    line-height: .9;
    color: var(--gold);
    float: left;
    padding: .35rem .6rem 0 0;
    margin-top: -.1rem;
}

/* ---------- 6. GREFFE #2 — Two-col form + value-prop bullets ---------- */
/* Section estimation form-teaser homepage : fond cream beige empire (decision Julien 27/05 PM) */
.imse-home-form-teaser,
.imse-section-form-twocol,
.section-form-twocol {
    background: var(--cream) !important;
    color: var(--ink) !important;
    padding: 5rem 1.5rem;
}

.imse-home-form-teaser h2,
.imse-home-form-teaser h3,
.imse-section-form-twocol h2,
.section-form-twocol h2 {
    color: var(--navy);
}

.imse-home-form-teaser .eyebrow,
.imse-section-form-twocol .eyebrow,
.section-form-twocol .eyebrow {
    color: var(--gold);
}

.imse-home-form-teaser p,
.imse-section-form-twocol p,
.section-form-twocol p {
    color: var(--ink);
}

.imse-section-form-twocol__inner,
.section-form-twocol__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 3rem;
    align-items: start;
}

@media (max-width: 880px) {
    .imse-section-form-twocol__inner,
    .section-form-twocol__inner {
        grid-template-columns: 1fr;
    }
}

.imse-value-props,
.value-props {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0 0;
}

.imse-value-props li,
.value-props li {
    position: relative;
    padding: .85rem 0 .85rem 2.25rem;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ink);
    border-bottom: 1px dashed var(--line);
}

.imse-value-props li:last-child,
.value-props li:last-child {
    border-bottom: none;
}

.imse-value-props li::before,
.value-props li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: .85rem;
    width: 1.5rem;
    height: 1.5rem;
    background: var(--gold);
    color: var(--navy);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-weight: 700;
    font-size: .85rem;
}

.imse-value-props li strong,
.value-props li strong {
    color: var(--navy);
    font-weight: 600;
}

/* ---------- 7. GREFFE #3 — Data-cards PERVAL/DVF ---------- */
.imse-section-data,
.section-data {
    background: var(--navy);
    color: var(--cream);
    padding: 5rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.imse-section-data::before,
.section-data::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 700px 350px at 80% 20%,
        rgba(244,163,64,.06) 0%,
        transparent 60%);
    pointer-events: none;
}

.imse-section-data__inner,
.section-data__inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* FIX BUG 1 Julien : titre section "Marche en chiffres" — Playfair centré, taille clamp, eyebrow gold au-dessus */
.imse-section-data .eyebrow,
.section-data .eyebrow {
    display: block;
    text-align: center;
    color: var(--gold) !important;
    font-family: 'Inter', sans-serif;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .18em;
    margin-bottom: 16px;
}
.imse-section-data h2,
.section-data h2 {
    font-family: "Playfair Display", Georgia, serif !important;
    color: var(--cream) !important;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    max-width: 740px;
    margin: 0 auto 2.5rem;
}
.imse-section-data h2 em,
.section-data h2 em {
    color: var(--gold) !important;
    font-style: italic;
    font-weight: 600;
}

.imse-data-grid,
.data-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}

@media (max-width: 880px) {
    .imse-data-grid,
    .data-grid {
        grid-template-columns: 1fr;
    }
}

.imse-data-card,
.data-card {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(244,163,64,.20);
    border-radius: 14px;
    padding: 2rem 1.75rem;
    position: relative;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.imse-data-card::before,
.data-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--gold) 0%, var(--gold-2) 100%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s cubic-bezier(.2,.7,.2,1);
}

.imse-data-card:hover::before,
.data-card:hover::before {
    transform: scaleX(1);
}

.imse-data-card:hover,
.data-card:hover {
    transform: translateY(-4px);
    border-color: rgba(244,163,64,.45);
    box-shadow: 0 18px 40px rgba(0,0,0,.30);
}

/* FIX BUG 2 Julien : chiffres réduits + word-break (évite débordement) */
.imse-data-card .num,
.data-card .num {
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 500;
    color: var(--gold);
    line-height: 1.1;
    margin-bottom: 12px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    text-align: center;
}

.imse-data-card .num em,
.data-card .num em {
    color: var(--gold);
    font-style: normal;
}

.imse-data-card .num-unit,
.data-card .num-unit {
    font-family: "Inter", sans-serif;
    font-size: .75em;
    font-weight: 400;
    color: var(--gold);
    opacity: .9;
}

/* FIX BUG 3 Julien : labels h3 en cream (au lieu de bleu illisible sur navy) */
.imse-data-card h3,
.data-card h3 {
    font-family: "Inter", sans-serif !important;
    color: var(--cream) !important;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: .8rem;
    line-height: 1.4;
}

.imse-data-card p,
.data-card p {
    color: rgba(245,235,217,.85) !important;
    font-size: .92rem;
    line-height: 1.55;
    margin-bottom: .6rem;
    text-align: center;
}

.imse-data-card .source,
.data-card .source {
    font-size: .72rem;
    color: rgba(244,163,64,.7) !important;
    font-style: italic;
    text-align: center;
    margin-top: 1rem;
    display: block;
}

.imse-data-card a,
.data-card a {
    color: var(--gold) !important;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .imse-data-card,
    .data-card {
        padding: 24px 18px;
    }
    .imse-data-card .num,
    .data-card .num {
        font-size: 1.6rem;
    }
}

/* ---------- 8. GREFFE #4 — Commune-arrow card hover (spec Julien 2026-05-27 PM) ---------- */
.commune-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border: 1px solid rgba(15, 34, 54, 0.08);
    border-radius: 6px;
    background: white;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    color: var(--navy);
}

.commune-card .commune-name {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    font-weight: 500;
}

.commune-card .commune-arrow {
    display: inline-block;
    font-size: 1.2rem;
    color: var(--gold);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin-left: 12px;
}

.commune-card:hover {
    background: linear-gradient(
        90deg,
        rgba(244, 163, 64, 0.04) 0%,
        rgba(244, 163, 64, 0.08) 100%
    );
    border-color: var(--gold);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(244, 163, 64, 0.12);
    text-decoration: none;
}

.commune-card:hover .commune-arrow {
    transform: translateX(8px);
}

@media (prefers-reduced-motion: reduce) {
    .commune-card, .commune-arrow {
        transition: none;
    }
    .commune-card:hover .commune-arrow {
        transform: none;
    }
}

/* Section liste communes A-Z (homepage + future pages communes hub) */
.imse-communes-az {
    background: var(--cream);
    padding: 4rem 1.5rem;
    border-top: 1px solid var(--line);
}

.imse-communes-az__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.imse-communes-az__header {
    text-align: center;
    margin-bottom: 2.5rem;
}

.imse-communes-az__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

@media (max-width: 880px) {
    .imse-communes-az__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
    .imse-communes-az__grid { grid-template-columns: 1fr; }
}

/* Footer Mon secteur : 60 communes en 10 colonnes × 6 lignes (STOP 2 Julien 28/05) */
/* Container full-width (rangée 2 du footer) */
.imse-footer-secteur {
    margin: 32px 0;
    padding: 24px 32px 0;
    border-top: 1px solid rgba(244,163,64,.15);
}

.imse-footer-secteur-title {
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    color: var(--gold);
    margin-bottom: 16px;
    text-align: center;
    font-weight: 600;
}

.footer-secteur-communes {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 4px 12px;
    margin: 0 auto;
    max-width: 1400px;
}

.footer-secteur-communes a {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: rgba(245, 235, 217, 0.85);
    text-decoration: none;
    padding: 3px 0;
    transition: color 0.2s ease, padding-left 0.2s ease;
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.4;
}

.footer-secteur-communes a::before {
    content: '→';
    color: var(--gold);
    font-size: 11px;
    opacity: .7;
    transition: transform 0.2s ease, opacity 0.2s ease;
    flex-shrink: 0;
}

.footer-secteur-communes a:hover {
    color: var(--gold);
    text-decoration: none;
}

.footer-secteur-communes a:hover::before {
    transform: translateX(3px);
    opacity: 1;
}

.footer-secteur-all {
    margin-top: 1.25rem;
    font-size: .85rem;
    text-align: center;
}

.footer-secteur-all a {
    color: var(--gold);
    text-decoration: none;
    font-weight: 600;
}

.footer-secteur-all a:hover {
    text-decoration: underline;
}

@media (max-width: 1199px) {
    .footer-secteur-communes {
        grid-template-columns: repeat(6, 1fr);
        gap: 4px 16px;
    }
}

@media (max-width: 768px) {
    .footer-secteur-communes {
        grid-template-columns: repeat(3, 1fr);
        font-size: 13px;
    }
    .footer-secteur-communes a {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .footer-secteur-communes {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ---------- 9. GREFFE #6 — Field input focus ring 4px gold ---------- */
.imse-field input,
.imse-field select,
.imse-field textarea,
.field input,
.field select,
.field textarea,
input.imse-form-input,
select.imse-form-select,
textarea.imse-form-textarea {
    transition: border-color .2s ease, box-shadow .2s ease;
}

.imse-field input:focus,
.imse-field select:focus,
.imse-field textarea:focus,
.field input:focus,
.field select:focus,
.field textarea:focus,
input.imse-form-input:focus,
select.imse-form-select:focus,
textarea.imse-form-textarea:focus,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 4px rgba(244,163,64,.14);
}

/* ---------- 10. GREFFE #7 — Footer ::before gradient gold top ---------- */
.imse-site-footer {
    position: relative;
    background: var(--navy);
    color: var(--cream);
}

.imse-site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--gold) 30%,
        var(--gold-2) 50%,
        var(--gold) 70%,
        transparent 100%);
    opacity: .85;
}

.imse-site-footer a {
    color: var(--cream);
    transition: color .2s;
}

.imse-site-footer a:hover,
.imse-site-footer a:focus-visible {
    color: var(--gold);
    text-decoration: underline;
}

.imse-footer-heading {
    color: var(--gold);
    font-family: "Playfair Display", serif;
    font-size: 1.1rem;
    margin-bottom: .9rem;
    font-weight: 600;
}

.imse-footer-hoguet {
    background: rgba(0,0,0,.20);
    border-top: 1px solid rgba(244,163,64,.15);
    padding: 1.25rem 2rem;
    font-size: .82rem;
    line-height: 1.7;
    color: rgba(245,235,217,.85);
}

.imse-footer-hoguet strong {
    color: var(--gold);
    font-weight: 600;
}

.imse-footer-bottom {
    background: rgba(0,0,0,.30);
    padding: 1rem 2rem;
    text-align: center;
    font-size: .78rem;
    color: rgba(245,235,217,.7);
}

/* ---------- 11. CARTE SVG SECTION — Navy parchemin (Phase 3.5) ---------- */
.carte-svg-section {
    position: relative;
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 50%, var(--navy-deep) 100%);
    padding: 5rem 1.5rem;
    overflow: hidden;
    color: var(--cream);
}

.carte-svg-inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.carte-svg-inner .eyebrow {
    color: var(--gold);
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 1rem;
}

.carte-svg-inner h2 {
    color: var(--cream);
    margin-bottom: 1.25rem;
}

.carte-svg-intro {
    max-width: 740px;
    margin: 0 auto 2.5rem;
    color: rgba(245,235,217,.85);
    font-size: 1.05rem;
    line-height: 1.7;
}

.carte-agglo-container {
    position: relative;
    background-color: var(--navy);
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='parchment'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.92 0 0 0 0 0.85 0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23parchment)'/></svg>"),
        linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 50%, var(--navy) 100%);
    background-blend-mode: overlay, normal;
    background-size: 400px 400px, 100% 100%;
    border-radius: 12px;
    padding: 40px;
    border: none;
    box-shadow:
        inset 0 0 80px rgba(244,163,64,.04),
        inset 0 0 0 1px rgba(244,163,64,.10),
        0 25px 70px rgba(0,0,0,.50);
}

.carte-agglo-frame {
    background: transparent;
    border: none;
}

/* ---------- 12. STICKY CTA MOBILE "Estimation offerte" ---------- */
.imse-sticky-cta,
.sticky-cta {
    position: fixed;
    bottom: 18px;
    right: 18px;
    z-index: 100;
    background: var(--gold);
    color: var(--navy);
    border-radius: 999px;
    padding: .85rem 1.4rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .82rem;
    box-shadow: 0 12px 32px rgba(244,163,64,.40);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    transition: transform .2s ease, box-shadow .2s ease;
}

.imse-sticky-cta:hover,
.imse-sticky-cta:focus-visible,
.sticky-cta:hover,
.sticky-cta:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgba(244,163,64,.50);
    text-decoration: none;
}

.imse-sticky-cta-sub,
.sticky-cta-sub {
    display: block;
    font-size: .68rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    opacity: .85;
}

@media (max-width: 540px) {
    .imse-sticky-cta,
    .sticky-cta {
        bottom: 12px;
        right: 12px;
        padding: .7rem 1.1rem;
        font-size: .75rem;
    }
}

/* ---------- 13. BTN STYLE EMPIRE ---------- */
.btn,
.imse-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .95rem 1.75rem;
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: .06em;
    font-size: .82rem;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .2s ease;
    border: none;
    font-family: inherit;
    text-decoration: none;
}

.btn-primary,
.imse-btn--primary {
    background: var(--gold);
    color: var(--navy);
}

.btn-primary:hover,
.imse-btn--primary:hover,
.btn-primary:focus-visible,
.imse-btn--primary:focus-visible {
    background: #fbbf24;
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(244,163,64,.40);
    text-decoration: none;
}

.btn-ghost,
.imse-btn--ghost {
    background: transparent;
    border: 1.5px solid var(--gold);
    color: var(--gold);
}

.btn-ghost:hover,
.imse-btn--ghost:hover {
    background: var(--gold);
    color: var(--navy);
    text-decoration: none;
}

/* ---------- 14. ACCESSIBILITY ---------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 2px;
}

/* ---------- 15. RESPONSIVE BREAKPOINTS ---------- */
@media (max-width: 1024px) {
    .imse-header-layout { padding: 12px 18px; }
    .carte-svg-section { padding: 4rem 1rem; }
}

@media (max-width: 768px) {
    .imse-header-layout {
        grid-template-columns: auto 1fr;
        gap: 12px;
    }
    .imse-primary-nav { display: none; } /* burger menu Bloc C QW H2 */
    .imse-newsletter-cta { font-size: .72rem; padding: .5rem 1rem; }
    .imse-hoguet-strip { font-size: .68rem; padding: .4rem .8rem; }
    .carte-svg-section { padding: 3rem .75rem; }
    .carte-agglo-container { padding: 24px; }
}

@media (max-width: 480px) {
    .imse-hoguet-strip__sep { display: none; }
    .imse-hoguet-strip { display: flex; flex-direction: column; gap: .25rem; }
}

/* =========================================================================
   16. DESIGN HYBRIDE NAVY/CREAM — STOP 2 JULIEN 28/05/2026
   Seal jour : EMPIRE-2026-05-28-W5W9
   Decision verrouillee : sections IMPACT VISUEL = NAVY (hero, carte,
   marche, 6 phares, footer) / sections LECTURE-CONVERSION = CREAM
   (estimation, conseiller, 60 A-Z, accompagnement, index).
   Effet visuel : 4 blocs coherents (navy / cream / navy / cream / navy).
   ========================================================================= */

/* ---------- 16.1 PALETTE ETENDUE (10 tokens supplementaires) ---------- */
:root {
    /* Alias officiels STOP 2 */
    --navy-primary:  #0F2236;
    --gold-primary:  #F4A340;
    --cream-primary: #F5EBD9;
    /* Variations navy (sections impact) */
    --navy-soft:     #1a3450;
    --navy-deep-2:   #0a1828;
    --navy-medium:   #142b44;
    --navy-rich:     #0d1e2f;
    /* Variations cream (sections lecture) */
    --cream-warm:    #FAF3E5;
    --cream-deep:    #EBE0CC;
    --cream-light:   #FCF6E7;
}

/* ---------- 16.2 SECTIONS NAVY (impact visuel) ---------- */

/* Section 4 : Carte SVG (override section 11 existante) */
.carte-svg-section {
    position: relative;
    background: linear-gradient(135deg,
        var(--navy-primary) 0%,
        var(--navy-soft) 50%,
        var(--navy-deep-2) 100%) !important;
    padding: 80px 40px;
    overflow: hidden;
    color: var(--cream-primary);
}

/* Section 5 : Marche en chiffres (override section 7 existante) */
.imse-section-data,
.section-data {
    background: linear-gradient(180deg,
        var(--navy-deep-2) 0%,
        var(--navy-primary) 50%,
        var(--navy-rich) 100%) !important;
    padding: 80px 40px;
    position: relative;
}

/* Section 6 : 6 communes phares photos */
.imse-home-communes {
    background: linear-gradient(180deg,
        var(--navy-rich) 0%,
        var(--navy-primary) 100%);
    padding: 80px 40px;
    position: relative;
    color: var(--cream-primary);
}
.imse-home-communes .imse-home-communes__header h2,
.imse-home-communes h2 {
    color: var(--cream-primary);
}
.imse-home-communes h2 em {
    color: var(--gold-primary);
}
.imse-home-communes .eyebrow,
.imse-home-communes__eyebrow {
    color: var(--gold-primary);
}
.imse-home-communes p,
.imse-home-communes__intro {
    color: rgba(245,235,217,.85);
}

/* Section footer (override section 10) */
.imse-site-footer {
    position: relative;
    background: linear-gradient(180deg,
        var(--navy-primary) 0%,
        var(--navy-deep-2) 100%) !important;
    color: var(--cream-primary);
}

/* ---------- 16.3 SECTIONS CREAM (lecture / conversion) ---------- */

/* Section 2 : Estimation form-teaser (override section 6 existante) */
.imse-home-form-teaser,
.imse-section-form-twocol,
.section-form-twocol {
    background: linear-gradient(180deg,
        var(--cream-primary) 0%,
        var(--cream-warm) 100%) !important;
    color: var(--ink) !important;
    padding: 80px 40px;
    position: relative;
}

/* Section 3 : Conseiller terrain bio Julien */
.imse-home-bio,
.imse-home-bio--v722 {
    background: linear-gradient(180deg,
        var(--cream-warm) 0%,
        var(--cream-primary) 50%,
        var(--cream-deep) 100%);
    padding: 80px 40px;
    position: relative;
    color: var(--ink);
}
.imse-home-bio h2,
.imse-home-bio__title {
    color: var(--navy-primary);
}
.imse-home-bio h2 em {
    color: var(--gold-primary);
}
.imse-home-bio .eyebrow,
.imse-home-bio__eyebrow {
    color: var(--gold-primary);
}
.imse-home-bio p {
    color: rgba(15,34,54,.85);
}

/* Section 7 : 60 communes A-Z (override section 8 existante) */
.imse-communes-az {
    background: linear-gradient(180deg,
        var(--cream-warm) 0%,
        var(--cream-primary) 100%) !important;
    padding: 80px 40px;
    position: relative;
    color: var(--ink);
    border-top: none;
}
.imse-communes-az h2,
.imse-communes-az__title {
    color: var(--navy-primary);
}
.imse-communes-az h2 em {
    color: var(--gold-primary);
}
.imse-communes-az .eyebrow {
    color: var(--gold-primary);
}

/* Section 8 : Mon accompagnement 3 etapes */
.imse-home-process {
    background: linear-gradient(180deg,
        var(--cream-deep) 0%,
        var(--cream-primary) 50%,
        var(--cream-warm) 100%);
    padding: 80px 40px;
    position: relative;
    color: var(--ink);
}
.imse-home-process h2 {
    color: var(--navy-primary);
}
.imse-home-process h2 em {
    color: var(--gold-primary);
}
.imse-home-process .eyebrow {
    color: var(--gold-primary);
}
.imse-home-process p {
    color: rgba(15,34,54,.85);
}

/* Section 9 : Index semantique keyword cloud */
.imse-home-wordcloud {
    background: linear-gradient(180deg,
        var(--cream-warm) 0%,
        var(--cream-primary) 100%);
    padding: 60px 40px;
    position: relative;
    color: var(--ink);
}
.imse-home-wordcloud h2 {
    color: var(--navy-primary);
}
.imse-home-wordcloud .eyebrow {
    color: var(--gold-primary);
}

/* ---------- 16.4 WAVE DIVIDERS SVG (STOP 2.1 - remplacement ::after degrades) ---------- */
/* Vagues subtiles propres entre sections navy <-> cream.                            */
/* Les SVG sont ajoutes en HTML dans front-page.php (4 jonctions).                   */

.imse-section-divider {
    line-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    pointer-events: none;
}

.imse-section-divider svg {
    display: block;
    width: 100%;
    height: 60px;
}

@media (max-width: 768px) {
    .imse-section-divider svg {
        height: 40px;
    }
}

/* Anti-decalage : enlever margin verticale sur sections autour wave dividers */
.imse-section-divider + section,
.imse-section-divider + .imse-home-form-teaser,
.imse-section-divider + .imse-home-bio,
.imse-section-divider + .imse-home-communes,
.imse-section-divider + .imse-communes-az,
.imse-section-divider + .imse-home-process,
.imse-section-divider + .imse-home-wordcloud,
.imse-section-divider + .carte-svg-section,
.imse-section-divider + .section-data {
    margin-top: 0;
}

/* ---------- 16.5 CARDS ADAPTEES PAR FOND ---------- */

/* Data-cards sur navy (section 5) : contraste eleve */
.imse-section-data .data-card,
.section-data .data-card,
.imse-section-data .imse-data-card,
.section-data .imse-data-card {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(244,163,64,.20);
    color: var(--cream-primary);
}
.imse-section-data .data-card .data-card__value,
.section-data .data-card .data-card__value,
.imse-section-data .data-card strong,
.section-data .data-card strong {
    color: var(--gold-primary);
}

/* Commune-cards sur navy (section 6 phares) */
.imse-home-communes .commune-card {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(244,163,64,.15);
    color: var(--cream-primary);
    transition: transform .3s cubic-bezier(.4,0,.2,1), border-color .3s, box-shadow .3s;
}
.imse-home-communes .commune-card:hover {
    transform: translateY(-4px);
    border-color: rgba(244,163,64,.45);
    box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
.imse-home-communes .commune-card h3,
.imse-home-communes .commune-card .commune-card__title {
    color: var(--cream-primary);
}
.imse-home-communes .commune-card .commune-arrow {
    color: var(--gold-primary);
}

/* Commune-cards sur cream (section 7 A-Z) : sobre + hover dore */
.imse-communes-az .imse-communes-az__grid a,
.imse-communes-az .commune-link {
    background: #fff;
    border: 1px solid rgba(15,34,54,.08);
    color: var(--navy-primary);
    transition: background .25s, border-color .25s, transform .25s;
}
.imse-communes-az .imse-communes-az__grid a:hover,
.imse-communes-az .commune-link:hover {
    background: linear-gradient(135deg, var(--gold-soft) 0%, #fff 100%);
    border-color: var(--gold-primary);
    transform: translateY(-2px);
}

/* ---------- 16.6 FOOTER LOGOS RS — ROND DORE (SVG inline existants preserves) ---------- */
.imse-footer-social-icons,
.footer-rs-icons {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.imse-footer-social-icons a,
.imse-rs-icon--footer,
.footer-rs-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(244,163,64,.10);
    border: 1px solid rgba(244,163,64,.30);
    color: var(--gold-primary) !important;
    transition: all .3s cubic-bezier(.4,0,.2,1);
    text-decoration: none !important;
}

.imse-footer-social-icons a:hover,
.imse-rs-icon--footer:hover,
.imse-footer-social-icons a:focus-visible,
.footer-rs-icons a:hover {
    background: var(--gold-primary);
    color: var(--navy-primary) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(244,163,64,.30);
    text-decoration: none !important;
}

.imse-footer-social-icons a svg,
.imse-rs-icon--footer svg,
.footer-rs-icons a svg {
    width: 22px;
    height: 22px;
}

@media (prefers-reduced-motion: reduce) {
    .imse-footer-social-icons a,
    .imse-rs-icon--footer,
    .footer-rs-icons a {
        transition: none;
    }
    .imse-footer-social-icons a:hover,
    .imse-rs-icon--footer:hover {
        transform: none;
    }
}

/* ---------- 16.7 FOOTER LAYOUT 3 RANGEES ---------- */
/* Rangee 1 : 4 colonnes (Identite / Navigation / Suivez-moi / Legal) */
.imse-footer-layout {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap: 2.5rem;
    padding: 3rem 2rem 1.5rem;
    max-width: 1400px;
    margin: 0 auto;
}

.imse-footer-col {
    color: var(--cream-primary);
}

@media (max-width: 1023px) {
    .imse-footer-layout {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
}

@media (max-width: 640px) {
    .imse-footer-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Rangee 2 : "Mon secteur" 60 communes full-width (cible .imse-footer-secteur) */
/* (deja stylee 16.X plus haut via .imse-footer-secteur et .footer-secteur-communes 10x6) */

/* Rangee 3 : Hoguet (deja stylee section 10 .imse-footer-hoguet) */

/* ---------- 16.8 HERO PRESERVATION ABSOLUE ---------- */
/* Photo drone + voile 3-stops + titre + CTAs intacts. */
/* Aucun override sur .imse-hero-banner__overlay ou __title (Greffe BSA #8 preservee). */
/* Le seul ajout est .imse-hero-banner--v721::after = fondu vers cream (transition 16.4). */

/* =========================================================================
   16.9 STOP 2.1 - FIX CONTRASTE TEXTES + FORM NAVY (28/05/2026 PM)
   Seal jour : EMPIRE-2026-05-28-W5W9

   Cause racine identifiee : body.imse-theme h2 (spec 0,1,2 dans main.css)
   override .imse-home-X h2 (spec 0,1,1) -> textes navy sur fond navy = invisible.
   Solution : !important sur les color rules + selectors enfants precis.
   ========================================================================= */

/* ---------- 16.9.1 SECTIONS NAVY : textes cream/gold force ---------- */

/* Section 4 : Carte SVG */
.carte-svg-section,
.carte-svg-inner { color: var(--cream-primary) !important; }
.carte-svg-inner h2,
.carte-svg-section h2 {
    color: var(--cream-primary) !important;
}
.carte-svg-inner h2 em {
    color: var(--gold-primary) !important;
}
.carte-svg-inner .eyebrow {
    color: var(--gold-primary) !important;
}
.carte-svg-intro,
.carte-svg-section p {
    color: rgba(245,235,217,.85) !important;
}
.carte-svg-cta {
    background: var(--gold-primary) !important;
    color: var(--navy-primary) !important;
}
.carte-svg-cta:hover,
.carte-svg-cta:focus-visible {
    background: #FBBF24 !important;
    color: var(--navy-primary) !important;
}

/* Section 5 : Marche en chiffres (.section-data) */
.section-data,
.imse-section-data,
.section-data h2,
.imse-section-data h2 {
    color: var(--cream-primary) !important;
}
.section-data h2 em,
.imse-section-data h2 em,
.section-data .eyebrow,
.imse-section-data .eyebrow {
    color: var(--gold-primary) !important;
}
.section-data p,
.imse-section-data p {
    color: rgba(245,235,217,.85) !important;
}

/* Section 6 : 6 communes phares (.imse-home-communes) - PB4 + PB5 fix */
.imse-home-communes,
.imse-home-communes__inner {
    color: var(--cream-primary) !important;
}
.imse-home-communes h2,
.imse-home-communes__title {
    color: var(--cream-primary) !important;
}
.imse-home-communes h2 em,
.imse-home-communes__title em {
    color: var(--gold-primary) !important;
}
.imse-home-communes__eyebrow,
.imse-home-communes .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-communes__subtitle,
.imse-home-communes p {
    color: rgba(245,235,217,.85) !important;
}
/* PB5 - Footnote "Votre commune n est pas dans cette selection" */
.imse-home-communes__footnote {
    color: rgba(245,235,217,.85) !important;
}
.imse-home-communes__footnote a {
    color: var(--gold-primary) !important;
}
.imse-home-communes__footnote a:hover {
    color: #FBBF24 !important;
    text-decoration: underline;
}
/* Cards phares (titre/cta) */
.imse-home-communes__card,
.imse-home-communes__card-title,
.imse-home-communes__card-cta {
    color: var(--cream-primary) !important;
}
.imse-home-communes__card-cta {
    color: var(--gold-primary) !important;
}

/* Footer navy (heading + texte) deja stylee, juste renforcer */
.imse-site-footer,
.imse-site-footer .imse-footer-col,
.imse-site-footer .imse-footer-list a {
    color: var(--cream-primary) !important;
}
.imse-site-footer .imse-footer-heading {
    color: var(--gold-primary) !important;
}
.imse-site-footer .imse-footer-list a:hover {
    color: var(--gold-primary) !important;
}

/* ---------- 16.9.2 SECTIONS CREAM : textes navy/gold force ---------- */

/* Section 2 : Form-teaser (header au-dessus form) - reste cream avec textes navy */
.imse-home-form-teaser,
.imse-home-form-teaser__inner,
.imse-home-form-teaser__header {
    color: var(--ink) !important;
}
.imse-home-form-teaser__title,
.imse-home-form-teaser h2 {
    color: var(--navy-primary) !important;
}
.imse-home-form-teaser__title em,
.imse-home-form-teaser h2 em {
    color: var(--gold-primary) !important;
}
.imse-home-form-teaser__eyebrow,
.imse-home-form-teaser .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-form-teaser__subtitle,
.imse-home-form-teaser__header p {
    color: rgba(15,34,54,.85) !important;
}

/* Section 3 : Bio Julien conseiller terrain */
.imse-home-bio,
.imse-home-bio--v722 {
    color: var(--ink) !important;
}
.imse-home-bio h2,
.imse-home-bio__title {
    color: var(--navy-primary) !important;
}
.imse-home-bio h2 em,
.imse-home-bio__title em {
    color: var(--gold-primary) !important;
}
.imse-home-bio__eyebrow,
.imse-home-bio .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-bio p,
.imse-home-bio__lede,
.imse-home-bio__body {
    color: rgba(15,34,54,.88) !important;
}

/* Section 7 : 60 communes A-Z */
.imse-communes-az,
.imse-communes-az__inner {
    color: var(--ink) !important;
}
.imse-communes-az h2,
.imse-communes-az__title {
    color: var(--navy-primary) !important;
}
.imse-communes-az h2 em,
.imse-communes-az__title em {
    color: var(--gold-primary) !important;
}
.imse-communes-az .eyebrow,
.imse-communes-az__eyebrow {
    color: var(--gold-primary) !important;
}
.imse-communes-az p,
.imse-communes-az .lede {
    color: rgba(15,34,54,.85) !important;
}
/* Fallback "Votre commune n apparait pas" */
.imse-communes-az em {
    color: rgba(15,34,54,.85) !important;
}
.imse-communes-az em a {
    color: var(--gold-primary) !important;
    font-style: normal;
    font-weight: 600;
}
.imse-communes-az em a:hover {
    color: var(--navy-primary) !important;
    text-decoration: underline;
}

/* Section 8 : Mon accompagnement 3 etapes - PB6 fix */
.imse-home-process,
.imse-home-process__inner {
    color: var(--ink) !important;
}
.imse-home-process h2,
.imse-home-process__title {
    color: var(--navy-primary) !important;
}
.imse-home-process h2 em,
.imse-home-process__title em {
    color: var(--gold-primary) !important;
}
.imse-home-process__eyebrow,
.imse-home-process .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-process__step,
.imse-home-process__step-title,
.imse-home-process__step-desc {
    color: rgba(15,34,54,.85) !important;
}
.imse-home-process__step-title {
    color: var(--navy-primary) !important;
}
.imse-home-process__step-number {
    color: var(--gold-primary) !important;
}
.imse-home-process__step strong {
    color: var(--navy-primary) !important;
    font-weight: 600;
}
.imse-home-process__cta-btn {
    background: var(--navy-primary) !important;
    color: var(--cream-primary) !important;
    border: 2px solid var(--gold-primary) !important;
}
.imse-home-process__cta-btn:hover,
.imse-home-process__cta-btn:focus-visible {
    background: var(--gold-primary) !important;
    color: var(--navy-primary) !important;
}

/* Section 9 : Wordcloud / index semantique */
.imse-home-wordcloud,
.imse-home-wordcloud__inner {
    color: var(--ink) !important;
}
.imse-home-wordcloud h2,
.imse-home-wordcloud__title {
    color: var(--navy-primary) !important;
}
.imse-home-wordcloud h2 em,
.imse-home-wordcloud__title em {
    color: var(--gold-primary) !important;
}
.imse-home-wordcloud__eyebrow,
.imse-home-wordcloud .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-wordcloud p,
.imse-home-wordcloud__lede {
    color: rgba(15,34,54,.85) !important;
}
.imse-home-wordcloud__word {
    color: rgba(15,34,54,.78) !important;
    transition: color .2s;
}
.imse-home-wordcloud__word:hover {
    color: var(--gold-primary) !important;
}

/* ---------- 16.9.3 FORM ESTIMATION : BOX NAVY + BORDURE GOLD (STOP 2.1) ---------- */
/* Section autour = cream (preservee). Form lui-meme = navy + gold = POP */

.imse-home-form-teaser__form {
    background: var(--navy-primary) !important;
    border: 2px solid var(--gold-primary) !important;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 15px 40px rgba(15,34,54,.2);
    margin-top: 2rem;
}

/* Labels du form sur fond navy = cream */
.imse-home-form-teaser__form .imse-home-form-teaser__label,
.imse-home-form-teaser__form label,
.imse-home-form-teaser__form .imse-home-form-teaser__field > span {
    color: var(--cream-primary) !important;
}

/* Optionnel marker */
.imse-home-form-teaser__form .imse-home-form-teaser__optional {
    color: rgba(245,235,217,.6) !important;
    font-weight: 400;
}

/* Champs input/select/textarea = fond blanc + texte navy */
.imse-home-form-teaser__form input,
.imse-home-form-teaser__form select,
.imse-home-form-teaser__form textarea,
.imse-home-form-teaser__input,
.imse-home-form-teaser__select {
    background: #fff !important;
    color: var(--navy-primary) !important;
    border: 1px solid rgba(244,163,64,.30) !important;
    border-radius: 6px;
    padding: .65rem .85rem;
    font-size: 1rem;
}

/* Placeholder texte */
.imse-home-form-teaser__form input::placeholder,
.imse-home-form-teaser__form textarea::placeholder {
    color: rgba(15,34,54,.50) !important;
}

/* Focus ring gold (Greffe #6 preservee) */
.imse-home-form-teaser__form input:focus,
.imse-home-form-teaser__form select:focus,
.imse-home-form-teaser__form textarea:focus,
.imse-home-form-teaser__form input:focus-visible,
.imse-home-form-teaser__form select:focus-visible {
    outline: none !important;
    border-color: var(--gold-primary) !important;
    box-shadow: 0 0 0 4px rgba(244,163,64,.25) !important;
}

/* Submit button = gold */
.imse-home-form-teaser__form button[type="submit"],
.imse-home-form-teaser__form .imse-home-form-teaser__submit,
.imse-home-form-teaser__form input[type="submit"] {
    background: var(--gold-primary) !important;
    color: var(--navy-primary) !important;
    border: none !important;
    font-weight: 700 !important;
    padding: .95rem 1.75rem;
    border-radius: 999px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-size: .82rem;
    cursor: pointer;
    transition: all .25s;
}

.imse-home-form-teaser__form button[type="submit"]:hover,
.imse-home-form-teaser__form .imse-home-form-teaser__submit:hover,
.imse-home-form-teaser__form button[type="submit"]:focus-visible {
    background: #FBBF24 !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(244,163,64,.40);
}

/* Notice / disclaimer texte sous bouton */
.imse-home-form-teaser__form .imse-home-form-teaser__notice,
.imse-home-form-teaser__form small {
    color: rgba(245,235,217,.75) !important;
    font-size: .82rem;
}

.imse-home-form-teaser__form a {
    color: var(--gold-primary) !important;
}
.imse-home-form-teaser__form a:hover {
    color: #FBBF24 !important;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .imse-home-form-teaser__form {
        padding: 24px 20px;
        border-radius: 10px;
    }
}

/* ---------- 16.9.4 ANCHOR ATTRIBUT data-empire-skip-contrast NEUTRALISATION ---------- */
/* Le selecteur data-empire-skip-contrast pourrait etre utilise par un script d'auto-contrast.
   Le STOP 2.1 garantit les contrastes manuellement, donc on s assure que rien ne casse. */
.imse-home-form-teaser[data-empire-skip-contrast] *,
.imse-home-bio[data-empire-skip-contrast] *,
.imse-home-communes[data-empire-skip-contrast] *,
.imse-home-process[data-empire-skip-contrast] *,
.imse-home-wordcloud[data-empire-skip-contrast] *,
.imse-site-footer[data-empire-skip-contrast] * {
    /* couleurs preservees par regles ci-dessus */
}

/* ========================================================================= */
/* FIN section 16.9 STOP 2.1 - Fix contraste + Form Navy + Wave Dividers     */
/* ========================================================================= */


/* =========================================================================
   16.10 STOP 2.2 - FIX FONDS REELS (28/05/2026 SOIR)
   Seal jour : EMPIRE-2026-05-28-W5W9

   Cause racine : imse-home-sections.css charge APRES greffes et n a pas
   !important sur backgrounds. Mes greffes section 16.3 sur process /
   wordcloud / 6 phares n avaient PAS !important non plus -> sections.css
   gagnait par source order.

   Fonds reels effectifs (apres cascade complete) :
   - Section 6 communes (6 phares "Mon secteur")  = CREAM #FAF4E5 (theme)
   - Section 8 process (Mon accompagnement)       = NAVY #0F2236 (theme)
   - Section 9 wordcloud (Index semantique)       = NAVY #0F2236 (theme)

   STOP 2.2 decision Julien : accepter ces fonds + adapter les textes.
   Architecture finale homepage (mosaique navy/cream) :
     1 navy / 2 cream / 3 cream / 4 navy / 5 navy / 6 cream / 7 cream / 8 navy / 9 navy / footer navy
   ========================================================================= */

/* ---------- 16.10.1 FIX PB1 HERO TITRE BLANC ---------- */
/* Cause : section 2 Playfair override force body.imse-theme h1 = color: navy.
   Le hero title hero-mosaic.css = color: #fff perdait contre body.imse-theme h1.
   Fix : reimpose color: #fff sur .imse-hero-banner__title avec !important. */
.imse-hero-banner__title,
.imse-hero-banner--home .imse-hero-banner__title,
.imse-hero-banner--v721 .imse-hero-banner__title {
    color: #ffffff !important;
}
.imse-hero-banner__title em,
.imse-hero-banner--v721 .imse-hero-banner__title em {
    color: var(--gold-primary) !important;
    font-style: italic;
}
.imse-hero-banner__lede {
    color: rgba(250,244,229,.92) !important;
}
.imse-hero-banner__eyebrow {
    color: var(--gold-primary) !important;
}
.imse-hero-banner__signature,
.imse-hero-banner__signature-label,
.imse-hero-banner__signature span {
    color: rgba(245,235,217,.78) !important;
}
.imse-hero-banner__signature-label {
    color: var(--gold-primary) !important;
    font-weight: 600;
}

/* ---------- 16.10.2 FIX PB2-3 SECTION 6 PHARES = CREAM (theme accepte) ---------- */
/* Inverse complet de mes rules section 16.9.1 (qui forcaient cream textes sur cream fond) */

.imse-home-communes,
.imse-home-communes__inner {
    color: var(--ink) !important;
}
.imse-home-communes h2,
.imse-home-communes__title {
    color: var(--navy-primary) !important;
}
.imse-home-communes h2 em,
.imse-home-communes__title em {
    color: var(--gold-primary) !important;
}
.imse-home-communes__eyebrow,
.imse-home-communes .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-communes__subtitle,
.imse-home-communes p {
    color: rgba(15,34,54,.85) !important;
}

/* PB3 footnote "Votre commune n'est pas dans cette selection" */
.imse-home-communes__footnote {
    color: rgba(15,34,54,.85) !important;
}
.imse-home-communes__footnote a {
    color: var(--gold-primary) !important;
    font-weight: 600;
    text-decoration: none;
}
.imse-home-communes__footnote a:hover {
    color: var(--navy-primary) !important;
    text-decoration: underline;
}

/* Cards phares sur cream : sobre + hover gold (override 16.5 navy variants) */
.imse-home-communes .commune-card,
.imse-home-communes__card {
    background: #fff !important;
    border: 1px solid rgba(15,34,54,.08) !important;
    color: var(--ink) !important;
    transition: transform .3s cubic-bezier(.4,0,.2,1), border-color .3s, box-shadow .3s, background .3s;
}
.imse-home-communes .commune-card:hover,
.imse-home-communes__card:hover {
    background: linear-gradient(135deg, var(--gold-soft) 0%, #fff 100%) !important;
    border-color: var(--gold-primary) !important;
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(15,34,54,.15) !important;
}
.imse-home-communes .commune-card h3,
.imse-home-communes__card-title,
.imse-home-communes .commune-card .commune-name {
    color: var(--navy-primary) !important;
}
.imse-home-communes__card-cta,
.imse-home-communes .commune-card .commune-arrow,
.imse-home-communes .commune-card span:last-child {
    color: var(--gold-primary) !important;
}

/* ---------- 16.10.3 FIX PB4a SECTION PROCESS = NAVY (theme accepte) ---------- */
/* Inverse complet de mes rules section 16.9.2 (qui forcaient navy textes sur navy fond) */

.imse-home-process,
.imse-home-process__inner {
    color: var(--cream-primary) !important;
}
.imse-home-process h2,
.imse-home-process__title {
    color: var(--cream-primary) !important;
}
.imse-home-process h2 em,
.imse-home-process__title em {
    color: var(--gold-primary) !important;
}
.imse-home-process__eyebrow,
.imse-home-process .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-process__step,
.imse-home-process__step-desc {
    color: rgba(245,235,217,.85) !important;
}
.imse-home-process__step-title {
    color: var(--cream-primary) !important;
}
.imse-home-process__step-number {
    color: var(--gold-primary) !important;
}
.imse-home-process__step strong {
    color: var(--cream-primary) !important;
    font-weight: 600;
}
.imse-home-process__cta {
    text-align: center;
    margin-top: 2rem;
}
.imse-home-process__cta-btn {
    background: var(--gold-primary) !important;
    color: var(--navy-primary) !important;
    border: 2px solid var(--gold-primary) !important;
    padding: .95rem 1.75rem;
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-size: .82rem;
    text-decoration: none !important;
    display: inline-block;
    transition: all .25s;
}
.imse-home-process__cta-btn:hover,
.imse-home-process__cta-btn:focus-visible {
    background: #FBBF24 !important;
    color: var(--navy-primary) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(244,163,64,.40);
}

/* ---------- 16.10.4 FIX PB4b SECTION WORDCLOUD = NAVY (theme accepte) ---------- */

.imse-home-wordcloud,
.imse-home-wordcloud__inner {
    color: var(--cream-primary) !important;
}
.imse-home-wordcloud h2,
.imse-home-wordcloud__title {
    color: var(--cream-primary) !important;
}
.imse-home-wordcloud h2 em,
.imse-home-wordcloud__title em {
    color: var(--gold-primary) !important;
}
.imse-home-wordcloud__eyebrow,
.imse-home-wordcloud .eyebrow {
    color: var(--gold-primary) !important;
}
.imse-home-wordcloud p,
.imse-home-wordcloud__lede {
    color: rgba(245,235,217,.85) !important;
}
.imse-home-wordcloud__word {
    color: rgba(245,235,217,.78) !important;
    transition: color .2s;
}
.imse-home-wordcloud__word:hover {
    color: var(--gold-primary) !important;
}

/* ---------- 16.10.5 PRESERVATION FORM-TEASER CREAM (greffes !important wins) ---------- */
/* Le fond cream du form-teaser via greffes section 16.3 est preserve.
   Le form box interne reste navy (section 16.9.3) preserve.
   Aucune modification necessaire ici. */

/* ---------- 16.10.6 PRESERVATION BIO CREAM (theme default cream) ---------- */
/* Bio recoit fond cream du theme + textes navy (deja gere par section 16.9.2).
   Aucune modification necessaire ici. */

/* ---------- 16.10.7 PRESERVATION CARTE + MARCHE NAVY (greffes !important wins) ---------- */
/* .carte-svg-section et .section-data ont fond navy via greffes section 16.2 + !important.
   Textes cream forces via section 16.9.1.
   Aucune modification necessaire ici. */

/* ---------- 16.10.8 PRESERVATION COMMUNES-AZ CREAM (greffes !important wins) ---------- */
/* .imse-communes-az fond cream via greffes section 16.3 + !important.
   Textes navy forces via section 16.9.2.
   Aucune modification necessaire ici. */

/* ========================================================================= */
/* FIN section 16.10 STOP 2.2 - Fix fonds reels + Hero blanc                 */
/* ========================================================================= */

/* ========================================================================= */
/* FIN section 16 — Design Hybride Navy/Cream STOP 2 Julien 28/05/2026       */
/* ========================================================================= */

/* =========================================================================
   17. STOP 3 - FIX LOGO HEADER : SPEC REF HTML Homepage V7.5
   ----------------------------------------------------------------------------
   Source : C:/Users/Julien/immo-seine-eure-fr/Immo seine eure/Homepage V7.5.html
   Spec validee par Julien : logo PNG original 64x64 direct, sans cercle
   wrapper CSS, sans background. Le PNG porte deja sa bordure gold + disque
   cream interne (design d'origine). Hover : transform scale + rotate + gold.
   PNG VPS3 = original (restaure depuis pre-stop3-20260528-215925).
   ========================================================================= */

.imse-site-header .imse-brand-link {
    gap: 14px !important;
}

.imse-site-header .imse-brand-mark {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
    overflow: visible;
}

.imse-site-header .imse-brand-mark img {
    width: 64px;
    height: 64px;
    display: block;
    object-fit: contain;
    transition: transform .3s ease, filter .3s ease;
}

.imse-site-header .imse-brand-link:hover .imse-brand-mark img,
.imse-site-header .imse-brand-link:focus-visible .imse-brand-mark img {
    transform: scale(1.05) rotate(-2deg);
    filter: drop-shadow(0 4px 12px rgba(244,163,64,.35));
}

/* Sub-text logo : harmonisation spec ref */
.imse-site-header .imse-brand-sub {
    font-size: .65rem !important;
    letter-spacing: .16em !important;
    color: rgba(245,235,217,.7) !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    margin-top: 3px !important;
}

/* Responsive : reduire logo sur mobile pour preserver espace nav */
@media (max-width: 768px) {
    .imse-site-header .imse-brand-mark,
    .imse-site-header .imse-brand-mark img {
        width: 52px;
        height: 52px;
    }
}

/* ========================================================================= */
/* FIN section 17 STOP 3 - Badge cream rond logo header                       */
/* ========================================================================= */

/* ========================================================================= */
/* 18. STOP 3.5 - MOBILE HOMEPAGE FIXES (29/05/2026 — seal L7YJ)              */
/* ========================================================================= */

/* FIX 1 : CTAs hero compacts mobile (768px + 480px stack vertical) */
@media (max-width: 768px) {
    .imse-hero .imse-btn,
    .imse-hero .btn,
    .hero .imse-btn,
    .hero .btn,
    .imse-hero-banner .imse-btn,
    .imse-hero-banner .btn,
    .imse-hero-banner__ctas .imse-btn,
    .imse-hero-banner__ctas .btn,
    .imse-hero-banner__cta {
        padding: .6rem 1.1rem;
        font-size: .72rem;
        letter-spacing: .04em;
        gap: .35rem;
    }
}

@media (max-width: 480px) {
    .imse-hero .imse-btn,
    .imse-hero .btn,
    .hero .imse-btn,
    .hero .btn,
    .imse-hero-banner .imse-btn,
    .imse-hero-banner .btn,
    .imse-hero-banner__ctas .imse-btn,
    .imse-hero-banner__ctas .btn,
    .imse-hero-banner__cta {
        padding: .55rem 1rem;
        font-size: .68rem;
        letter-spacing: .03em;
    }
    /* Stack vertical 2 CTAs si trop large */
    .imse-hero-banner__ctas,
    .imse-hero .imse-hero-ctas,
    .hero .hero-ctas {
        flex-direction: column;
        gap: .65rem;
        align-items: stretch;
    }
    .imse-hero-banner__ctas .imse-btn,
    .imse-hero-banner__ctas .btn {
        justify-content: center;
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
    }
}

/* FIX 2 : Centrage textes mobile sections cream finales */
@media (max-width: 768px) {
    .imse-home-form-teaser__header,
    .imse-home-form-teaser__header h2,
    .imse-home-form-teaser__header p,
    .imse-home-form-teaser__title,
    .imse-home-form-teaser__subtitle,
    .imse-home-form-teaser__eyebrow,
    .imse-home-bio,
    .imse-home-bio h2,
    .imse-home-bio p,
    .imse-home-bio__title,
    .imse-home-bio__lede,
    .imse-home-bio__body,
    .imse-home-bio__eyebrow,
    .imse-communes-az,
    .imse-communes-az h2,
    .imse-communes-az p,
    .imse-communes-az__title,
    .imse-communes-az .lede,
    .imse-communes-az__eyebrow,
    .imse-home-process,
    .imse-home-process h2,
    .imse-home-process p,
    .imse-home-process__title,
    .imse-home-process__step,
    .imse-home-process__step-title,
    .imse-home-process__step-desc,
    .imse-home-process__eyebrow,
    .imse-home-wordcloud,
    .imse-home-wordcloud h2,
    .imse-home-wordcloud p,
    .imse-home-wordcloud__title,
    .imse-home-wordcloud__lede,
    .imse-home-wordcloud__eyebrow {
        text-align: center;
    }
    /* Exclusion : value-props bullets restent left pour lisibilite checklist */
    .imse-home-form-teaser .imse-value-props li,
    .imse-home-form-teaser .value-props li {
        text-align: left;
    }
}

/* ========================================================================= */
/* FIN section 18 STOP 3.5 - Mobile homepage fixes                            */
/* ========================================================================= */

/* =========================================================================
   20. STOP 4 P0 — Mobile homepage fixes critiques (audit 2026-05-31)
   Seal jour : EMPIRE-2026-06-01-MV7E
   Reference : D:/@empire/reports/immo-fr/phase-6/audit-mobile-homepage-2026-05-31.md
   5 P0 : burger menu mobile + pilule header tronquee + sticky CTAs +
   inputs zoom iOS Safari + body padding-bottom global mobile.
   ========================================================================= */

/* ---------- 20.1 BURGER MENU MOBILE (P0 #1, #5) ---------- */
.imse-menu-toggle {
    display: none;
    background: transparent;
    border: 1.5px solid var(--gold, #F4A340);
    border-radius: 8px;
    width: 44px;
    height: 44px;
    padding: 0;
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    transition: border-color .2s ease, background .2s ease;
    flex-shrink: 0;
}

.imse-menu-toggle:hover,
.imse-menu-toggle:focus-visible {
    border-color: var(--cream-primary, #F5EBD9);
    background: rgba(244, 163, 64, .08);
    outline: none;
}

.imse-menu-toggle__bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--gold, #F4A340);
    border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
}

.imse-menu-toggle[aria-expanded="true"] .imse-menu-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.imse-menu-toggle[aria-expanded="true"] .imse-menu-toggle__bar:nth-child(2) {
    opacity: 0;
}

.imse-menu-toggle[aria-expanded="true"] .imse-menu-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.imse-newsletter-cta__text-short {
    display: none;
}

@media (max-width: 768px) {
    .imse-site-header {
        position: relative;
    }

    .imse-menu-toggle {
        display: inline-flex;
    }

    .imse-header-layout {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
        padding: 10px 12px;
    }

    .imse-header-layout .imse-brand {
        flex: 1 1 auto;
        min-width: 0;
    }

    .imse-header-layout .imse-newsletter-cta {
        flex-shrink: 0;
    }

    .imse-primary-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--navy-primary, #0F2236);
        border-top: 1px solid rgba(244, 163, 64, .20);
        border-bottom: 2px solid var(--gold, #F4A340);
        z-index: 998;
        padding: 1rem;
        box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }

    .imse-primary-nav.is-open {
        display: block;
        animation: imse-menu-slide-down .25s ease;
    }

    .imse-primary-nav .imse-menu {
        flex-direction: column;
        gap: 0;
        align-items: stretch;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .imse-primary-nav .imse-menu li {
        list-style: none;
        border-bottom: 1px solid rgba(244, 163, 64, .12);
    }

    .imse-primary-nav .imse-menu li:last-child {
        border-bottom: none;
    }

    .imse-site-header .imse-menu a,
    .imse-primary-nav .imse-menu a {
        display: flex;
        align-items: center;
        min-height: 48px;
        padding: 12px 16px;
        font-size: 1rem;
        color: var(--cream-primary, #F5EBD9);
        text-decoration: none;
        letter-spacing: .04em;
    }

    .imse-primary-nav .imse-menu a::after {
        display: none;
    }

    .imse-primary-nav .imse-menu a:hover,
    .imse-primary-nav .imse-menu a:focus-visible {
        background: rgba(244, 163, 64, .10);
        color: var(--gold, #F4A340);
        text-decoration: none;
    }

    body.imse-menu-open {
        overflow: hidden;
    }
}

@keyframes imse-menu-slide-down {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------- 20.2 PILULE HEADER "ESTIMATION OFFERTE" (P0 #2) ---------- */
/* Petit viewport : texte raccourci "Estimer" pour eviter troncature */
@media (max-width: 540px) {
    .imse-newsletter-cta {
        padding: .45rem .8rem;
        font-size: .68rem;
        letter-spacing: .04em;
        white-space: nowrap;
        border-width: 1px;
    }
    .imse-newsletter-cta__text-full {
        display: none;
    }
    .imse-newsletter-cta__text-short {
        display: inline;
    }
}

@media (max-width: 380px) {
    .imse-newsletter-cta {
        padding: .4rem .6rem;
        font-size: .64rem;
    }
}

/* ---------- 20.3 STICKY CTA HOMEPAGE TAP TARGET + ANTI-COLLISION (P0 #3) ---------- */
@media (max-width: 480px) {
    .imse-sticky-cta,
    .sticky-cta {
        min-height: 44px;
        padding: .65rem 1rem;
        font-size: .72rem;
        right: 12px;
        bottom: 12px;
    }
    /* Si jamais un deuxieme sticky secondaire existe : masquer mobile */
    .imse-sticky-cta__btn--secondary,
    .sticky-cta--secondary {
        display: none !important;
    }
    /* Anti-collision : tant que la banniere CMP est visible, on remonte */
    body:has(.empire-cmp-banner:not(.hidden):not([aria-hidden="true"])) .imse-sticky-cta,
    body:has(.empire-cmp-banner:not(.hidden):not([aria-hidden="true"])) .sticky-cta {
        bottom: calc(12px + var(--imse-cmp-banner-h, 180px));
    }
}

/* ---------- 20.4 INPUTS FONT-SIZE 16PX iOS NO-ZOOM (P0 #4) ---------- */
/* iOS Safari declenche zoom auto au focus si input font-size < 16px */
@media (max-width: 768px) {
    body.imse-theme input[type="text"],
    body.imse-theme input[type="email"],
    body.imse-theme input[type="tel"],
    body.imse-theme input[type="number"],
    body.imse-theme input[type="search"],
    body.imse-theme input[type="password"],
    body.imse-theme input[type="url"],
    body.imse-theme input[type="date"],
    body.imse-theme select,
    body.imse-theme textarea,
    body.imse-theme .imse-home-form-teaser__input,
    body.imse-theme .imse-home-form-teaser__select,
    body.imse-theme .imse-w1-input,
    .imse-home-form-teaser__form input,
    .imse-home-form-teaser__form select,
    .imse-home-form-teaser__form textarea {
        font-size: 16px !important;
    }
}

/* ---------- 20.5 BODY PADDING-BOTTOM GLOBAL MOBILE (anti-masquage sticky) ---------- */
@media (max-width: 768px) {
    body.imse-theme {
        padding-bottom: 80px;
    }
}

/* ========================================================================= */
/* FIN section 20 STOP 4 P0 - Mobile homepage fixes critiques               */
/* ========================================================================= */

/* =========================================================================
   21. STOP 4 P1 LAYOUT — Padding sections + tap targets + hero tablette
   Seal jour : EMPIRE-2026-06-01-MV7E
   5 P1 structurels : padding 80→48 / 8 sections, tap targets hero/sticky
   wcag, hero photo letterbox 768, hover neutralize touch devices.
   ========================================================================= */

/* ---------- 21.1 PADDING SECTIONS NAVY/CREAM MOBILE (P1 #14) ---------- */
/* Reduction 80px/40px -> 48px/16px sur 8 sections principales <=540px */
@media (max-width: 540px) {
    body.imse-theme .imse-home-form-teaser,
    body.imse-theme .imse-home-bio,
    body.imse-theme .imse-home-bio--v722,
    body.imse-theme .section-data,
    body.imse-theme .imse-data-section,
    body.imse-theme .carte-svg-section,
    body.imse-theme .imse-home-communes,
    body.imse-theme .imse-communes-az,
    body.imse-theme .imse-home-process,
    body.imse-theme .imse-home-wordcloud,
    body.imse-theme .imse-home-cta-final {
        padding-left: 16px !important;
        padding-right: 16px !important;
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }
}

/* ---------- 21.2 TAP TARGETS HERO + STICKY WCAG 44px (P1 #23, #24) ---------- */
@media (max-width: 768px) {
    body.imse-theme .imse-hero-banner .imse-btn,
    body.imse-theme .imse-hero-banner__cta-primary,
    body.imse-theme .imse-hero-banner__cta-secondary {
        min-height: 44px;
        padding: 12px 20px;
    }
    body.imse-theme .imse-sticky-cta,
    body.imse-theme .sticky-cta {
        min-height: 44px;
    }
    /* Nav menu items mobile : tap target 44px */
    body.imse-theme .imse-primary-nav .imse-menu a {
        min-height: 48px;
    }
}

/* ---------- 21.3 HERO PHOTO LETTERBOX TABLETTE 768 (P1 #12) ---------- */
@media (min-width: 640px) and (max-width: 1023px) {
    body.imse-theme .imse-hero-banner,
    body.imse-theme .imse-hero-banner--v721,
    body.imse-theme .hero-section {
        min-height: 70vh;
        max-height: 85vh;
    }
    body.imse-theme .imse-hero-banner__bg,
    body.imse-theme .imse-hero-banner__image,
    body.imse-theme .hero-background {
        background-size: cover !important;
        background-position: center center !important;
    }
}

/* ---------- 21.4 ANTI-COLLISION CMP BANNER (P1 #11, #15) ---------- */
/* Quand le cookie banner CMP est visible, on remonte sticky CTA + on ajoute
   un padding-bottom dynamique au main pour eviter le masquage du contenu */
@media (max-width: 768px) {
    body.imse-theme:has(.empire-cmp-banner:not(.hidden):not([aria-hidden="true"])) .imse-main-layout,
    body.imse-theme:has(.empire-cmp-banner:not(.hidden):not([aria-hidden="true"])) main {
        padding-bottom: 200px;
    }
}

/* ---------- 21.5 NEUTRALIZE HOVER SUR TOUCH DEVICES (P2 #48 fast-tracked) ---------- */
/* Empeche les hovers sticky sur mobile (transform translateY restant apres tap) */
@media (hover: none) and (pointer: coarse) {
    body.imse-theme .imse-btn:hover,
    body.imse-theme .imse-newsletter-cta:hover,
    body.imse-theme .imse-sticky-cta:hover,
    body.imse-theme .sticky-cta:hover,
    body.imse-theme .imse-home-communes__card:hover,
    body.imse-theme .commune-card:hover,
    body.imse-theme .imse-data-card:hover,
    body.imse-theme .data-card:hover {
        transform: none !important;
    }
}

/* ========================================================================= */
/* FIN section 21 STOP 4 P1 LAYOUT - Mobile structural fixes                */
/* ========================================================================= */

/* =========================================================================
   22. STOP 4 P1 CONTENUS — Header/hoguet/eyebrow/cookie/grids tablette
   Seal jour : EMPIRE-2026-06-01-MV7E
   11 P1 contenus : hoguet compact, brand-sub hidden, eyebrow no-overflow,
   cookie banner compactage, grids tablette 640+ (data-cards 3col, 6 phares
   3col, footer 4col), 60 communes 2col mobile + line-clamp commune-cards.
   ========================================================================= */

/* ---------- 22.1 HOGUET-STRIP HEADER MOBILE (P1 #6) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-hoguet-strip {
        font-size: .62rem;
        padding: .35rem .6rem;
        white-space: nowrap;
        overflow-x: auto;
        flex-direction: row;
        gap: .5rem;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    body.imse-theme .imse-hoguet-strip::-webkit-scrollbar {
        display: none;
    }
    body.imse-theme .imse-hoguet-strip__sep {
        display: inline;
        opacity: .35;
    }
    body.imse-theme .imse-hoguet-strip__item {
        flex-shrink: 0;
    }
}

/* ---------- 22.2 BRAND-SUB HIDE MOBILE (P1 #7) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-site-header .imse-brand-sub,
    .imse-site-header .imse-brand-sub {
        display: none !important;
    }
    body.imse-theme .imse-site-header .imse-brand-name {
        font-size: 1rem !important;
        letter-spacing: .02em !important;
    }
}

/* ---------- 22.3 HERO EYEBROW NO-OVERFLOW (P1 #8) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-hero-banner__eyebrow {
        font-size: .68rem;
        letter-spacing: .02em;
        line-height: 1.35;
        white-space: normal;
        text-align: center;
    }
}

/* ---------- 22.4 HERO TITLE NO-BREAK SEINE-EURE (P2 #30 fast-tracked) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-hero-banner__title {
        font-size: 1.45rem;
        line-height: 1.25;
        word-break: keep-all;
    }
    body.imse-theme .imse-hero-banner__title em {
        display: inline-block;
        white-space: nowrap;
    }
}

/* ---------- 22.5 COOKIE BANNER CMP COMPACTAGE (P1 #17) ---------- */
@media (max-width: 480px) {
    body.imse-theme .empire-cmp-banner {
        font-size: .78rem;
        padding: .75rem 1rem;
    }
    body.imse-theme .empire-cmp-banner p,
    body.imse-theme .empire-cmp-banner__text {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: .5rem;
        line-height: 1.45;
    }
    body.imse-theme .empire-cmp-banner__actions {
        display: flex;
        flex-wrap: wrap;
        gap: .4rem;
    }
    body.imse-theme .empire-cmp-banner__actions button,
    body.imse-theme .empire-cmp-banner__actions a {
        flex: 1 1 calc(50% - .4rem);
        min-height: 40px;
        font-size: .78rem;
    }
}

/* ---------- 22.6 60 COMMUNES A-Z GRID 2-COL MOBILE (P1 #18) ---------- */
@media (max-width: 540px) {
    body.imse-theme .imse-communes-az__grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px;
    }
    body.imse-theme .imse-communes-az__grid .commune-card,
    body.imse-theme .imse-communes-az__grid a {
        padding: 10px 12px;
        font-size: .9rem;
        min-height: 44px;
        display: flex;
        align-items: center;
    }
}

/* ---------- 22.7 GRIDS TABLETTE 640+ (P1 #19 6phares 3col, #21 datacards 3col) ---------- */
@media (min-width: 640px) and (max-width: 1023px) {
    body.imse-theme .imse-home-communes__grid,
    body.imse-theme .commune-cards-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }
    body.imse-theme .imse-data-section__grid,
    body.imse-theme .data-cards-grid,
    body.imse-theme .section-data .imse-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
    body.imse-theme .imse-home-communes__card-desc,
    body.imse-theme .commune-desc {
        font-size: .875rem;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ---------- 22.8 FOOTER 60 COMMUNES GRID TABLETTE+ (P1 #20) ---------- */
@media (min-width: 640px) and (max-width: 899px) {
    body.imse-theme .footer-secteur-communes,
    body.imse-theme .imse-footer__communes-list {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}
@media (min-width: 900px) {
    body.imse-theme .footer-secteur-communes,
    body.imse-theme .imse-footer__communes-list {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ---------- 22.9 FOOTER 60 COMMUNES TAP TARGETS (P2 #46 fast-tracked) ---------- */
@media (max-width: 768px) {
    body.imse-theme .footer-secteur-communes a,
    body.imse-theme .imse-footer__communes-list a {
        padding: 8px 6px;
        font-size: 13px;
        min-height: 36px;
        display: flex;
        align-items: center;
    }
}

/* ---------- 22.10 SECTION HOGUET FOOTER COLLAPSIBLE (P2 #34 fast-tracked) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-footer-hoguet,
    body.imse-theme .footer-mentions-hoguet {
        font-size: .72rem;
        line-height: 1.6;
        padding: 1rem .85rem;
    }
}

/* ---------- 22.11 PROCESS STEPS COMPACT MOBILE (P2 #33 fast-tracked) ---------- */
@media (max-width: 480px) {
    body.imse-theme .imse-home-process__step {
        padding: 1.25rem 1rem !important;
    }
    body.imse-theme .imse-home-process__step-title {
        font-size: 1.1rem !important;
    }
    body.imse-theme .imse-home-process__step-desc {
        font-size: .82rem !important;
        line-height: 1.5;
    }
}

/* ========================================================================= */
/* FIN section 22 STOP 4 P1 CONTENUS - Mobile content fixes                 */
/* ========================================================================= */

/* =========================================================================
   23. STOP 4.1 BIS — HOT-FIXES post-validation iPhone Julien 01/06
   Seal jour : EMPIRE-2026-06-01-MV7E
   3 hot-fixes : hero CTAs coupes mobile + contraste form-teaser navy
   (texte invisible) + espace wave dividers / sections rondes.
   ========================================================================= */

/* ---------- 23.1 HERO CTAs MOBILE NO-CUT (HOT-FIX 1) ---------- */
/* Compactage CTAs + hero hauteur suffisante pour afficher les 2 boutons */
@media (max-width: 768px) {
    body.imse-theme .imse-hero-banner--v721,
    body.imse-theme .imse-hero-banner--home {
        min-height: 88vh;
        padding-bottom: 2rem;
    }
    body.imse-theme .imse-hero-banner__inner {
        padding-top: 4vh;
        padding-bottom: 4vh;
    }
    body.imse-theme .imse-hero-banner__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
        width: 100%;
        margin-top: 1.25rem;
    }
    body.imse-theme .imse-hero-banner__cta,
    body.imse-theme .imse-hero-banner__cta--ghost {
        padding: 11px 18px !important;
        font-size: .82rem !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
        max-width: 90% !important;
        min-height: 44px !important;
        white-space: nowrap;
    }
}

@media (max-width: 480px) {
    body.imse-theme .imse-hero-banner--v721,
    body.imse-theme .imse-hero-banner--home {
        min-height: 92vh;
    }
    body.imse-theme .imse-hero-banner__cta,
    body.imse-theme .imse-hero-banner__cta--ghost {
        padding: 10px 16px !important;
        font-size: .78rem !important;
        letter-spacing: .04em !important;
        flex: 1 1 100% !important;
        max-width: 280px !important;
    }
    body.imse-theme .imse-hero-banner__actions {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }
}

@media (max-width: 380px) {
    body.imse-theme .imse-hero-banner__cta,
    body.imse-theme .imse-hero-banner__cta--ghost {
        padding: 9px 14px !important;
        font-size: .74rem !important;
        max-width: 260px !important;
    }
    body.imse-theme .imse-hero-banner__title {
        font-size: 1.35rem !important;
    }
}

/* ---------- 23.2 FORM-TEASER CONTRASTE NAVY BG -> CREAM TEXT (HOT-FIX 2) ---------- */
/* Section "Estimez votre bien en 4 questions" : fond navy gradient mais textes
   forces en navy/ink par STOP 2.2 -> invisible. Override cream avec spec 0,3,0+ */
body.imse-theme .imse-home-form-teaser,
body.imse-theme #imse-form-teaser {
    color: var(--cream-primary, #F5EBD9) !important;
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__legal,
body.imse-theme .imse-home-form-teaser p.imse-home-form-teaser__legal,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__legal {
    color: rgba(245, 235, 217, 0.78) !important;
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__legal a,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__legal a {
    color: var(--gold-primary, #F4A340) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    font-weight: 600;
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__legal a:hover,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__legal a:hover {
    color: var(--cream-primary, #F5EBD9) !important;
}

/* Titre + subtitle + eyebrow restent visibles sur navy gradient */
body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__title,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__title {
    color: var(--cream-primary, #F5EBD9) !important;
}
body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__title em,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__title em {
    color: var(--gold-primary, #F4A340) !important;
}
body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__subtitle,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__subtitle {
    color: rgba(245, 235, 217, 0.85) !important;
}
body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__eyebrow,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__eyebrow {
    color: var(--gold-primary, #F4A340) !important;
}

/* ---------- 23.3 WAVE DIVIDERS NO-GAP (HOT-FIX 3) ---------- */
/* Wave SVG entre sections : line-height 0 + margin -1px pour eviter line
   blanche / espace creme parasite (avant listing 60 communes notamment). */
body.imse-theme .imse-section-divider {
    line-height: 0;
    margin: 0;
    padding: 0;
    display: block;
    font-size: 0;
}

body.imse-theme .imse-section-divider svg {
    display: block;
    width: 100%;
    margin-top: -1px;
    margin-bottom: -1px;
    vertical-align: top;
}

/* Sections principales : no parasite margin around dividers */
body.imse-theme .imse-home-form-teaser,
body.imse-theme .imse-home-bio,
body.imse-theme .carte-svg-section,
body.imse-theme .imse-home-communes,
body.imse-theme .imse-communes-az,
body.imse-theme .imse-home-process,
body.imse-theme .section-data,
body.imse-theme .imse-data-section,
body.imse-theme .imse-home-wordcloud,
body.imse-theme .imse-home-cta-final {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ========================================================================= */
/* FIN section 23 STOP 4.1 BIS - Hot-fixes post-validation iPhone Julien    */
/* ========================================================================= */


/* =========================================================================
   SECTION 24.A — STOP 4 COMPOSE-A : Refonte design page Estimation
   Sections AUTOUR du wizard (Pourquoi + Temoignages + CTA tel bandeau)
   Wizard + FAQ + methodology INTACTS (STOP 3.5 BIS valide)
   Palette empire : navy #0F2236 / cream #F8F4ED / gold #C9A961
   ========================================================================= */

/* ---------- Tokens locaux (fallback si variables empire absentes) ---------- */
.imse-estim-pourquoi,
.imse-estim-temoignages,
.imse-estim-cta-tel {
	--imse-c-navy: #0F2236;
	--imse-c-navy-soft: #1E3A5F;
	--imse-c-cream: #F8F4ED;
	--imse-c-cream-deep: #EFE7D6;
	--imse-c-gold: #C9A961;
	--imse-c-gold-hover: #B89548;
	--imse-c-text-on-cream: #2A2A2A;
	--imse-c-text-muted-on-cream: #555;
	--imse-c-text-on-navy: #F8F4ED;
	--imse-c-text-muted-on-navy: rgba(248, 244, 237, 0.78);
	--imse-radius: 12px;
	--imse-shadow-card: 0 4px 18px rgba(15, 34, 54, 0.08);
	--imse-shadow-card-navy: 0 4px 22px rgba(0, 0, 0, 0.28);
}

/* =========================================================
   24.A.1 — Section "Pourquoi estimer avec moi" (cream)
   ========================================================= */
.imse-estim-pourquoi {
	background-color: var(--imse-c-cream);
	color: var(--imse-c-text-on-cream);
	padding: 72px 20px;
	position: relative;
}

.imse-estim-pourquoi__container {
	max-width: 1180px;
	margin: 0 auto;
}

.imse-estim-pourquoi__header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 48px;
}

.imse-estim-pourquoi__eyebrow {
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--imse-c-gold);
	margin: 0 0 12px;
}

body.imse-theme .imse-estim-pourquoi__title,
.imse-estim-pourquoi__title {
	font-size: clamp(1.7rem, 3.2vw, 2.4rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--imse-c-navy);
	margin: 0 0 16px;
}

.imse-estim-pourquoi__lead {
	font-size: 1.05rem;
	line-height: 1.55;
	color: var(--imse-c-text-muted-on-cream);
	margin: 0;
}

.imse-estim-pourquoi__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 720px) {
	.imse-estim-pourquoi__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 980px) {
	.imse-estim-pourquoi__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;
	}
}

.imse-estim-pourquoi__card {
	background: #ffffff;
	border: 1px solid rgba(15, 34, 54, 0.08);
	border-radius: var(--imse-radius);
	padding: 32px 26px;
	box-shadow: var(--imse-shadow-card);
	transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.imse-estim-pourquoi__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 26px rgba(15, 34, 54, 0.12);
}

.imse-estim-pourquoi__icon {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(201, 169, 97, 0.14);
	color: var(--imse-c-gold);
	margin-bottom: 18px;
}

body.imse-theme .imse-estim-pourquoi__card-title,
.imse-estim-pourquoi__card-title {
	font-size: 1.18rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--imse-c-navy);
	margin: 0 0 10px;
}

.imse-estim-pourquoi__card-text {
	font-size: 0.97rem;
	line-height: 1.6;
	color: var(--imse-c-text-muted-on-cream);
	margin: 0;
}

/* =========================================================
   24.A.2 — Section "Ce que disent mes clients" (navy)
   ========================================================= */
.imse-estim-temoignages {
	background-color: var(--imse-c-navy);
	color: var(--imse-c-text-on-navy);
	padding: 80px 20px;
	position: relative;
}

.imse-estim-temoignages__container {
	max-width: 1180px;
	margin: 0 auto;
}

.imse-estim-temoignages__header {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 48px;
}

.imse-estim-temoignages__eyebrow {
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--imse-c-gold);
	margin: 0 0 12px;
}

body.imse-theme .imse-estim-temoignages__title,
.imse-estim-temoignages__title {
	font-size: clamp(1.7rem, 3.2vw, 2.4rem);
	font-weight: 700;
	line-height: 1.2;
	color: #ffffff;
	margin: 0 0 16px;
}

.imse-estim-temoignages__lead {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--imse-c-text-muted-on-navy);
	margin: 0;
}

.imse-estim-temoignages__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}

@media (min-width: 720px) {
	.imse-estim-temoignages__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 980px) {
	.imse-estim-temoignages__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 28px;
	}
}

.imse-estim-temoignages__card {
	position: relative;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(201, 169, 97, 0.22);
	border-radius: var(--imse-radius);
	padding: 36px 26px 26px;
	box-shadow: var(--imse-shadow-card-navy);
	display: flex;
	flex-direction: column;
}

.imse-estim-temoignages__quote-mark {
	position: absolute;
	top: 8px;
	left: 18px;
	font-family: Georgia, serif;
	font-size: 4.2rem;
	line-height: 1;
	color: var(--imse-c-gold);
	opacity: 0.55;
	pointer-events: none;
}

.imse-estim-temoignages__quote {
	margin: 0 0 22px;
	padding: 0;
	border: 0;
	font-size: 0.98rem;
	line-height: 1.65;
	color: #ffffff;
	font-style: normal;
}

.imse-estim-temoignages__quote p {
	margin: 0;
}

.imse-estim-temoignages__author {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid rgba(201, 169, 97, 0.22);
}

.imse-estim-temoignages__author-name {
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--imse-c-gold);
	letter-spacing: 0.02em;
}

.imse-estim-temoignages__author-meta {
	font-size: 0.85rem;
	color: var(--imse-c-text-muted-on-navy);
}

.imse-estim-temoignages__disclaimer {
	margin: 40px auto 0;
	max-width: 760px;
	font-size: 0.86rem;
	line-height: 1.55;
	text-align: center;
	color: var(--imse-c-text-muted-on-navy);
	font-style: italic;
}

/* =========================================================
   24.A.3 — CTA secondaire bandeau tel (gold sur navy)
   ========================================================= */
.imse-estim-cta-tel {
	background-color: var(--imse-c-navy);
	color: var(--imse-c-text-on-navy);
	padding: 56px 20px;
	border-top: 1px solid rgba(201, 169, 97, 0.18);
}

.imse-estim-cta-tel__container {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	text-align: center;
}

@media (min-width: 880px) {
	.imse-estim-cta-tel__container {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
		gap: 40px;
	}
}

.imse-estim-cta-tel__text {
	flex: 1 1 auto;
}

.imse-estim-cta-tel__eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--imse-c-gold);
	margin: 0 0 8px;
}

body.imse-theme .imse-estim-cta-tel__title,
.imse-estim-cta-tel__title {
	font-size: clamp(1.35rem, 2.6vw, 1.85rem);
	font-weight: 700;
	line-height: 1.25;
	color: #ffffff;
	margin: 0 0 8px;
}

.imse-estim-cta-tel__sub {
	font-size: 0.97rem;
	line-height: 1.55;
	color: var(--imse-c-text-muted-on-navy);
	margin: 0;
	max-width: 560px;
}

@media (min-width: 880px) {
	.imse-estim-cta-tel__sub {
		max-width: none;
	}
}

.imse-estim-cta-tel__action {
	flex: 0 0 auto;
}

.imse-estim-cta-tel__btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 28px;
	background: var(--imse-c-gold);
	color: var(--imse-c-navy);
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 6px 20px rgba(201, 169, 97, 0.35);
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	min-height: 56px;
}

.imse-estim-cta-tel__btn:hover,
.imse-estim-cta-tel__btn:focus-visible {
	background: var(--imse-c-gold-hover);
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(201, 169, 97, 0.45);
	color: var(--imse-c-navy);
	text-decoration: none;
}

.imse-estim-cta-tel__btn:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}

.imse-estim-cta-tel__btn-num {
	font-variant-numeric: tabular-nums;
}

/* =========================================================
   24.A.4 — Mobile fine-tune <= 720px
   ========================================================= */
@media (max-width: 720px) {
	.imse-estim-pourquoi {
		padding: 56px 16px;
	}
	.imse-estim-temoignages {
		padding: 56px 16px;
	}
	.imse-estim-cta-tel {
		padding: 44px 16px;
	}
	.imse-estim-pourquoi__card {
		padding: 26px 22px;
	}
	.imse-estim-temoignages__card {
		padding: 32px 22px 22px;
	}
	.imse-estim-temoignages__quote-mark {
		font-size: 3.4rem;
	}
	.imse-estim-cta-tel__btn {
		width: 100%;
		justify-content: center;
		font-size: 1.08rem;
	}
}

/* =========================================================
   24.A.5 — Reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	.imse-estim-pourquoi__card,
	.imse-estim-cta-tel__btn {
		transition: none;
	}
	.imse-estim-pourquoi__card:hover,
	.imse-estim-cta-tel__btn:hover {
		transform: none;
	}
}

/* =========================================================================
   24.B CONSEILS HUB BLOG (01/06/2026 - Phase 6 STOP 4.2)
   Seal : EMPIRE-2026-06-01-CONSEILS-V1

   Template : page-conseils.php
   URL      : /conseils/
   Voix     : V6 humanisee + VOUVOIEMENT (Option C STOP 3.5 BIS)
   Palette  : --navy-primary / --cream-primary / --gold-primary (existantes)

   Architecture sections :
     S1 Hero navy (compact)
     S2 Articles a venir (cream centre + CTA gold estimation)
     S3 4 categories (navy + grid 4col / 2col / 1col + icones inline SVG)
     S4 Lead magnet (cream + form email stub deux colonnes)
     Sticky CTA tel mobile

   Anti-regression :
     - reutilise .imse-section-divider (16.4) sans override
     - reutilise variables empire
     - aucun !important sauf si conflit cascade theme
   ========================================================================= */

/* ---------- 24.B.0 RESET MAIN ---------- */
.imse-conseils-main {
    overflow-x: hidden;
}

/* ---------- 24.B.1 HERO NAVY (variant compact) ---------- */
.imse-conseils-hero {
    background:
        linear-gradient(135deg, #0F2236 0%, #14304a 60%, #1B3A5E 100%);
    color: var(--cream-primary);
    padding: clamp(3.5rem, 7vw, 6rem) 1.25rem clamp(3rem, 6vw, 5rem);
    position: relative;
    isolation: isolate;
}
.imse-conseils-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 20%, rgba(244,163,64,.08) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 80%, rgba(244,163,64,.05) 0%, transparent 60%);
    pointer-events: none;
    z-index: -1;
}
.imse-conseils-hero__inner {
    max-width: 920px;
    margin: 0 auto;
    text-align: center;
}
.imse-conseils-hero__eyebrow {
    display: inline-block;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--gold-primary);
    margin-bottom: 1.25rem;
    text-transform: uppercase;
}
.imse-conseils-hero__h1 {
    font-family: Fraunces, Playfair Display, Georgia, serif;
    font-weight: 600;
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    line-height: 1.12;
    color: #ffffff;
    margin: 0 0 1.25rem;
    letter-spacing: -.01em;
}
.imse-conseils-hero__h1 em {
    color: var(--gold-primary);
    font-style: italic;
}
.imse-conseils-hero__lede {
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.65;
    color: rgba(245,235,217,.92);
    max-width: 760px;
    margin: 0 auto 2rem;
}
.imse-conseils-hero__ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ---------- 24.B.2 BOUTONS CONSEILS ---------- */
.imse-conseils-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .85rem 1.6rem;
    font-family: inherit;
    font-size: .92rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: none;
    border-radius: 999px;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: transform .25s cubic-bezier(.4,0,.2,1),
                background .25s,
                border-color .25s,
                color .25s,
                box-shadow .25s;
    line-height: 1.2;
}
.imse-conseils-btn--gold {
    background: var(--gold-primary);
    color: #0F2236;
    border-color: var(--gold-primary);
    box-shadow: 0 6px 18px rgba(244,163,64,.28);
}
.imse-conseils-btn--gold:hover,
.imse-conseils-btn--gold:focus-visible {
    background: #e8932e;
    border-color: #e8932e;
    color: #0F2236;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(244,163,64,.36);
}
.imse-conseils-btn--ghost {
    background: transparent;
    color: var(--cream-primary);
    border-color: rgba(245,235,217,.45);
}
.imse-conseils-btn--ghost:hover,
.imse-conseils-btn--ghost:focus-visible {
    background: rgba(245,235,217,.08);
    border-color: var(--gold-primary);
    color: var(--gold-primary);
}
.imse-conseils-btn--ghost-navy {
    background: transparent;
    color: var(--navy-primary);
    border-color: rgba(15,34,54,.35);
}
.imse-conseils-btn--ghost-navy:hover,
.imse-conseils-btn--ghost-navy:focus-visible {
    background: rgba(15,34,54,.05);
    border-color: var(--navy-primary);
    color: var(--navy-primary);
}
.imse-conseils-btn--lg {
    padding: 1rem 2rem;
    font-size: 1rem;
}
.imse-conseils-btn--full {
    width: 100%;
}

/* ---------- 24.B.3 ARTICLES A VENIR (cream) ---------- */
.imse-conseils-articles-soon {
    background: var(--cream-primary);
    color: var(--ink);
    padding: clamp(3rem, 6vw, 5rem) 1.25rem;
}
.imse-conseils-articles-soon__inner {
    max-width: 780px;
    margin: 0 auto;
    text-align: center;
}
.imse-conseils-articles-soon__eyebrow {
    display: inline-block;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--gold-primary);
    margin-bottom: 1rem;
    text-transform: uppercase;
}
.imse-conseils-articles-soon__title {
    font-family: Fraunces, Playfair Display, Georgia, serif;
    font-weight: 600;
    font-size: clamp(1.75rem, 3.6vw, 2.5rem);
    line-height: 1.18;
    color: var(--navy-primary);
    margin: 0 0 1.25rem;
    letter-spacing: -.005em;
}
.imse-conseils-articles-soon__title em {
    color: var(--gold-primary);
    font-style: italic;
}
.imse-conseils-articles-soon__lede {
    font-size: clamp(1rem, 1.4vw, 1.1rem);
    line-height: 1.65;
    color: rgba(15,34,54,.85);
    margin: 0 auto 2rem;
    max-width: 640px;
}
.imse-conseils-articles-soon__cta-wrap {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}
.imse-conseils-articles-soon__note {
    font-size: .85rem;
    color: rgba(15,34,54,.65);
    margin: 0;
    font-style: italic;
}

/* ---------- 24.B.4 CATEGORIES NAVY (4 cards) ---------- */
.imse-conseils-categories {
    background: var(--navy-primary);
    color: var(--cream-primary);
    padding: clamp(3.5rem, 7vw, 6rem) 1.25rem;
}
.imse-conseils-categories__inner {
    max-width: 1200px;
    margin: 0 auto;
}
.imse-conseils-categories__eyebrow {
    display: block;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--gold-primary);
    margin-bottom: 1rem;
    text-transform: uppercase;
    text-align: center;
}
.imse-conseils-categories__title {
    font-family: Fraunces, Playfair Display, Georgia, serif;
    font-weight: 600;
    font-size: clamp(1.75rem, 3.6vw, 2.5rem);
    line-height: 1.18;
    color: #ffffff;
    margin: 0 auto 1rem;
    text-align: center;
    max-width: 820px;
    letter-spacing: -.005em;
}
.imse-conseils-categories__title em {
    color: var(--gold-primary);
    font-style: italic;
}
.imse-conseils-categories__lede {
    font-size: clamp(1rem, 1.4vw, 1.1rem);
    line-height: 1.65;
    color: rgba(245,235,217,.88);
    margin: 0 auto 2.5rem;
    max-width: 720px;
    text-align: center;
}
.imse-conseils-categories__grid {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}
.imse-conseils-cat-card {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(244,163,64,.22);
    border-radius: 16px;
    padding: 1.75rem 1.5rem;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    transition: transform .3s cubic-bezier(.4,0,.2,1),
                background .3s,
                border-color .3s,
                box-shadow .3s;
}
.imse-conseils-cat-card:hover,
.imse-conseils-cat-card:focus-within {
    background: rgba(244,163,64,.08);
    border-color: var(--gold-primary);
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(0,0,0,.28);
}
.imse-conseils-cat-card__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(244,163,64,.14);
    color: var(--gold-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.imse-conseils-cat-card__title {
    font-family: Fraunces, Playfair Display, Georgia, serif;
    font-weight: 600;
    font-size: 1.35rem;
    color: #ffffff;
    margin: 0;
    letter-spacing: -.005em;
}
.imse-conseils-cat-card__desc {
    font-size: .92rem;
    line-height: 1.55;
    color: rgba(245,235,217,.82);
    margin: 0;
    flex-grow: 1;
}
.imse-conseils-cat-card__badge {
    display: inline-block;
    align-self: flex-start;
    font-size: .68rem;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
    background: rgba(244,163,64,.18);
    color: var(--gold-primary);
    padding: .35rem .65rem;
    border-radius: 999px;
    border: 1px solid rgba(244,163,64,.32);
    margin-top: auto;
}
.imse-conseils-categories__footnote {
    text-align: center;
    font-size: .95rem;
    color: rgba(245,235,217,.78);
    margin: 1rem auto 0;
    max-width: 720px;
}
.imse-conseils-categories__footnote a {
    color: var(--gold-primary);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid rgba(244,163,64,.4);
    transition: color .2s, border-color .2s;
}
.imse-conseils-categories__footnote a:hover,
.imse-conseils-categories__footnote a:focus-visible {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

/* ---------- 24.B.5 LEAD MAGNET (cream + form stub) ---------- */
.imse-conseils-lead-magnet {
    background: var(--cream-primary);
    color: var(--ink);
    padding: clamp(3rem, 6vw, 5rem) 1.25rem;
}
.imse-conseils-lead-magnet__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
}
.imse-conseils-lead-magnet__content {
    align-self: center;
}
.imse-conseils-lead-magnet__eyebrow {
    display: inline-block;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--gold-primary);
    margin-bottom: 1rem;
    text-transform: uppercase;
}
.imse-conseils-lead-magnet__title {
    font-family: Fraunces, Playfair Display, Georgia, serif;
    font-weight: 600;
    font-size: clamp(1.6rem, 3vw, 2.15rem);
    line-height: 1.2;
    color: var(--navy-primary);
    margin: 0 0 1rem;
    letter-spacing: -.005em;
}
.imse-conseils-lead-magnet__title em {
    color: var(--gold-primary);
    font-style: italic;
}
.imse-conseils-lead-magnet__lede {
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(15,34,54,.85);
    margin: 0 0 1.5rem;
}
.imse-conseils-lead-magnet__bullets {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .65rem;
}
.imse-conseils-lead-magnet__bullets li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .95rem;
    color: rgba(15,34,54,.82);
    line-height: 1.5;
}
.imse-conseils-lead-magnet__bullets li svg {
    color: var(--gold-primary);
    flex-shrink: 0;
    margin-top: .2rem;
}
.imse-conseils-lead-magnet__form {
    background: #ffffff;
    border: 1px solid rgba(15,34,54,.08);
    border-radius: 16px;
    padding: clamp(1.75rem, 3vw, 2.25rem);
    box-shadow: 0 12px 32px rgba(15,34,54,.08);
    display: flex;
    flex-direction: column;
    gap: .9rem;
}
.imse-conseils-lead-magnet__form-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.imse-conseils-lead-magnet__label {
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(15,34,54,.75);
    margin-bottom: -.4rem;
}
.imse-conseils-lead-magnet__input {
    width: 100%;
    padding: .85rem 1rem;
    font-family: inherit;
    font-size: 1rem;
    color: var(--ink);
    background: #fff;
    border: 1.5px solid rgba(15,34,54,.18);
    border-radius: 10px;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}
.imse-conseils-lead-magnet__input:focus {
    outline: none;
    border-color: var(--gold-primary);
    box-shadow: 0 0 0 4px rgba(244,163,64,.18);
}
.imse-conseils-lead-magnet__consent {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .82rem;
    line-height: 1.5;
    color: rgba(15,34,54,.78);
    margin: .25rem 0 .25rem;
}
.imse-conseils-lead-magnet__consent input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: .2rem;
    width: 16px;
    height: 16px;
    accent-color: var(--gold-primary);
}
.imse-conseils-lead-magnet__consent a {
    color: var(--gold-primary);
    text-decoration: underline;
}
.imse-conseils-lead-magnet__form-note {
    font-size: .8rem;
    color: rgba(15,34,54,.65);
    margin: .35rem 0 0;
    line-height: 1.5;
    font-style: italic;
    text-align: center;
}
.imse-conseils-lead-magnet__form-note a {
    color: var(--navy-primary);
    font-weight: 600;
    text-decoration: underline;
}

/* ---------- 24.B.6 STICKY CTA TEL MOBILE ---------- */
.imse-conseils-mobile-cta-sticky {
    display: none;
}
@media (max-width: 768px) {
    .imse-conseils-mobile-cta-sticky {
        position: fixed;
        bottom: 16px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 9990;
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        padding: .8rem 1.25rem;
        background: var(--gold-primary);
        color: #0F2236;
        font-weight: 700;
        font-size: .9rem;
        text-decoration: none;
        border-radius: 999px;
        box-shadow: 0 10px 28px rgba(15,34,54,.32);
        letter-spacing: .01em;
        transition: transform .25s, box-shadow .25s;
    }
    .imse-conseils-mobile-cta-sticky:hover,
    .imse-conseils-mobile-cta-sticky:focus-visible {
        transform: translateX(-50%) translateY(-2px);
        box-shadow: 0 14px 32px rgba(15,34,54,.4);
        color: #0F2236;
    }
    .imse-conseils-mobile-cta-sticky__num {
        font-variant-numeric: tabular-nums;
    }
}

/* ---------- 24.B.7 RESPONSIVE TABLETTE (4col -> 2col) ---------- */
@media (max-width: 960px) {
    .imse-conseils-categories__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
    .imse-conseils-lead-magnet__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* ---------- 24.B.8 RESPONSIVE MOBILE (2col -> 1col + paddings reduits) ---------- */
@media (max-width: 600px) {
    .imse-conseils-categories__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .imse-conseils-hero {
        padding: 2.5rem 1rem 2rem;
    }
    .imse-conseils-articles-soon,
    .imse-conseils-categories,
    .imse-conseils-lead-magnet {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .imse-conseils-hero__ctas,
    .imse-conseils-articles-soon__cta-wrap {
        flex-direction: column;
        align-items: stretch;
        gap: .75rem;
    }
    .imse-conseils-hero__ctas .imse-conseils-btn,
    .imse-conseils-articles-soon__cta-wrap .imse-conseils-btn {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .imse-conseils-cat-card {
        padding: 1.4rem 1.2rem;
    }
    /* Eviter chevauchement sticky CTA tel avec form bottom */
    .imse-conseils-lead-magnet {
        padding-bottom: 5.5rem;
    }
}

/* ---------- 24.B.9 ANTI-CASCADE THEME (overrides defensifs) ---------- */
/* body.imse-theme h1/h2/h3 force navy + Playfair sur tout le site.
   Sur hero navy, on doit reimposer blanc + Fraunces. */
body.imse-theme .imse-conseils-hero__h1,
body.imse-theme .imse-conseils-categories__title,
body.imse-theme .imse-conseils-cat-card__title {
    color: #ffffff;
    font-family: Fraunces, Playfair Display, Georgia, serif;
}
body.imse-theme .imse-conseils-hero__h1 em,
body.imse-theme .imse-conseils-categories__title em {
    color: var(--gold-primary);
}
/* Sur cream, garder navy (deja par defaut theme - mais securisons em gold) */
body.imse-theme .imse-conseils-articles-soon__title em,
body.imse-theme .imse-conseils-lead-magnet__title em {
    color: var(--gold-primary);
}

/* ========================================================================= */
/* FIN section 24.B STOP 4.2 - Conseils hub blog                              */
/* ========================================================================= */

/* =========================================================================
   24.C. PAGE CONTACT REFONTE — Phase 6 STOP 4.2 (Compose-C)
   ----------------------------------------------------------------------------
   Template : page-contact.php
   URL critique preservee : /contact-immobilier-julien-jehanno/
   Voix V6 + vouvoiement integral.
   Palette empire navy/cream/gold, waves SVG empire, responsive mobile-first.
   ========================================================================= */

/* ---------- 24.C.1 HERO SPLIT NAVY (60/40) ---------- */
body.imse-theme .imse-contact-hero {
    background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
    color: var(--cream);
    padding: 80px 24px 100px;
    position: relative;
}

body.imse-theme .imse-contact-hero__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 64px;
    align-items: center;
}

body.imse-theme .imse-contact-hero__eyebrow {
    display: inline-block;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .22em;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 18px;
}

body.imse-theme .imse-contact-hero__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--cream);
    font-size: clamp(2rem, 4.2vw, 3rem);
    line-height: 1.15;
    margin: 0 0 18px;
    font-weight: 700;
}

body.imse-theme .imse-contact-hero__title em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

body.imse-theme .imse-contact-hero__lede {
    color: rgba(245,235,217,.88);
    font-size: 1.06rem;
    line-height: 1.65;
    margin: 0 0 32px;
    max-width: 60ch;
}

/* ---------- 24.C.2 COORDONNEES (telephone / email / zone / bureau) ---------- */
body.imse-theme .imse-contact-coords {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    display: grid;
    gap: 18px;
}

body.imse-theme .imse-contact-coords__item {
    display: grid;
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 2px;
    align-items: start;
    padding: 14px 16px;
    background: rgba(244,163,64,.06);
    border-left: 3px solid var(--gold);
    border-radius: 6px;
}

body.imse-theme .imse-contact-coords__icon {
    grid-row: 1 / span 2;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(244,163,64,.14);
    color: var(--gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

body.imse-theme .imse-contact-coords__label {
    font-family: "Inter", sans-serif;
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(245,235,217,.62);
    font-weight: 600;
}

body.imse-theme .imse-contact-coords__value {
    color: var(--cream);
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    word-break: break-word;
}

body.imse-theme .imse-contact-coords__value--phone {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.45rem;
    color: var(--gold);
    font-weight: 600;
    letter-spacing: .02em;
}

body.imse-theme a.imse-contact-coords__value:hover,
body.imse-theme a.imse-contact-coords__value:focus-visible {
    color: var(--gold);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

/* ---------- 24.C.3 RESEAUX SOCIAUX (cercles dores hover) ---------- */
body.imse-theme .imse-contact-rs {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-top: 24px;
}

body.imse-theme .imse-contact-rs__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--gold);
    color: var(--navy);
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
    text-decoration: none;
}

body.imse-theme .imse-contact-rs__link:hover,
body.imse-theme .imse-contact-rs__link:focus-visible {
    transform: translateY(-3px) scale(1.06);
    background: var(--cream);
    box-shadow: 0 8px 22px -8px rgba(244,163,64,.7);
    outline: none;
}

body.imse-theme .imse-contact-rs__link:focus-visible {
    outline: 2px solid var(--cream);
    outline-offset: 3px;
}

/* ---------- 24.C.4 PORTRAIT JULIEN (40%) ---------- */
body.imse-theme .imse-contact-hero__portrait {
    text-align: center;
}

body.imse-theme .imse-contact-portrait {
    width: 280px;
    height: 280px;
    margin: 0 auto 22px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--navy-deep);
    border: 3px solid var(--gold);
    box-shadow: 0 18px 40px -12px rgba(244,163,64,.35), 0 8px 16px -8px rgba(0,0,0,.4);
    position: relative;
}

body.imse-theme .imse-contact-portrait__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.imse-theme .imse-contact-portrait__placeholder {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.imse-theme .imse-contact-portrait__placeholder svg {
    width: 100%;
    height: 100%;
    display: block;
}

body.imse-theme .imse-contact-portrait__caption-pending {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Inter", sans-serif;
    font-size: .68rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(245,235,217,.7);
    background: rgba(10,24,40,.6);
    padding: 4px 10px;
    border-radius: 12px;
    border: 1px solid rgba(244,163,64,.3);
}

body.imse-theme .imse-contact-portrait__name {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--cream);
    font-size: 1.35rem;
    margin: 0 0 4px;
    font-weight: 700;
}

body.imse-theme .imse-contact-portrait__role {
    color: var(--gold);
    font-size: .92rem;
    letter-spacing: .04em;
    margin: 0 0 12px;
}

body.imse-theme .imse-contact-portrait__hoguet {
    color: rgba(245,235,217,.55);
    font-size: .72rem;
    line-height: 1.55;
    margin: 0;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
}

body.imse-theme .imse-contact-portrait__hoguet abbr {
    text-decoration: none;
    border-bottom: 1px dotted rgba(245,235,217,.4);
    cursor: help;
}

/* ---------- 24.C.5 SECTION POURQUOI (cream, 3 cards) ---------- */
body.imse-theme .imse-contact-pourquoi {
    background: var(--cream);
    color: var(--navy);
    padding: 80px 24px;
}

body.imse-theme .imse-contact-pourquoi__inner {
    max-width: 1180px;
    margin: 0 auto;
    text-align: center;
}

body.imse-theme .imse-contact-pourquoi__eyebrow {
    display: inline-block;
    font-family: "Inter", sans-serif;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    color: var(--gold-2);
    text-transform: uppercase;
    margin-bottom: 14px;
}

body.imse-theme .imse-contact-pourquoi__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--navy);
    font-size: clamp(1.8rem, 3.4vw, 2.4rem);
    line-height: 1.2;
    margin: 0 0 14px;
}

body.imse-theme .imse-contact-pourquoi__title em {
    color: var(--gold-2);
    font-style: italic;
    font-weight: 600;
}

body.imse-theme .imse-contact-pourquoi__lede {
    color: rgba(15,34,54,.78);
    font-size: 1.05rem;
    line-height: 1.65;
    max-width: 62ch;
    margin: 0 auto 48px;
}

body.imse-theme .imse-contact-pourquoi__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    text-align: left;
}

body.imse-theme .imse-contact-pourquoi__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 32px 28px;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body.imse-theme .imse-contact-pourquoi__card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--gold);
}

body.imse-theme .imse-contact-pourquoi__icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(244,163,64,.12);
    color: var(--gold-2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

body.imse-theme .imse-contact-pourquoi__card-title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--navy);
    font-size: 1.3rem;
    margin: 0 0 12px;
    font-weight: 700;
}

body.imse-theme .imse-contact-pourquoi__card-text {
    color: rgba(15,34,54,.78);
    font-size: .98rem;
    line-height: 1.65;
    margin: 0;
}

/* ---------- 24.C.6 FORMULAIRE CONTACT (navy) ---------- */
body.imse-theme .imse-contact-form-section {
    background: var(--navy);
    color: var(--cream);
    padding: 80px 24px;
}

body.imse-theme .imse-contact-form-section__inner {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

body.imse-theme .imse-contact-form-section__eyebrow {
    display: inline-block;
    font-family: "Inter", sans-serif;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 14px;
}

body.imse-theme .imse-contact-form-section__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--cream);
    font-size: clamp(1.8rem, 3.2vw, 2.3rem);
    margin: 0 0 14px;
    line-height: 1.2;
}

body.imse-theme .imse-contact-form-section__title em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

body.imse-theme .imse-contact-form-section__lede {
    color: rgba(245,235,217,.85);
    font-size: 1.02rem;
    margin: 0 auto 40px;
    max-width: 56ch;
    line-height: 1.6;
}

body.imse-theme .imse-contact-form {
    text-align: left;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(244,163,64,.25);
    border-radius: 12px;
    padding: 36px 32px;
}

body.imse-theme .imse-contact-form__honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

body.imse-theme .imse-contact-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
}

body.imse-theme .imse-contact-form__field {
    display: block;
    margin-bottom: 18px;
}

body.imse-theme .imse-contact-form__row .imse-contact-form__field {
    margin-bottom: 0;
}

body.imse-theme .imse-contact-form__label {
    display: block;
    font-family: "Inter", sans-serif;
    font-size: .82rem;
    font-weight: 600;
    color: var(--cream);
    margin-bottom: 8px;
    letter-spacing: .03em;
}

body.imse-theme .imse-contact-form__optional {
    color: rgba(245,235,217,.55);
    font-weight: 400;
    font-size: .78rem;
}

body.imse-theme .imse-contact-form input[type="text"],
body.imse-theme .imse-contact-form input[type="email"],
body.imse-theme .imse-contact-form input[type="tel"],
body.imse-theme .imse-contact-form textarea {
    width: 100%;
    background: var(--cream);
    color: var(--navy);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 12px 14px;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 1rem;
    line-height: 1.4;
    transition: border-color .2s, box-shadow .2s;
}

body.imse-theme .imse-contact-form textarea {
    resize: vertical;
    min-height: 140px;
}

body.imse-theme .imse-contact-form input:focus,
body.imse-theme .imse-contact-form textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 4px rgba(244,163,64,.25);
}

body.imse-theme .imse-contact-form__consent {
    color: rgba(245,235,217,.68);
    font-size: .82rem;
    line-height: 1.55;
    margin: 18px 0 22px;
}

body.imse-theme .imse-contact-form__consent a {
    color: var(--gold);
    text-decoration: underline;
}

body.imse-theme .imse-contact-form__submit {
    margin: 0;
    text-align: center;
}

body.imse-theme .imse-contact-form__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--gold);
    color: var(--navy);
    border: none;
    border-radius: 6px;
    padding: 14px 32px;
    font-family: "Inter", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, transform .2s, box-shadow .2s;
}

body.imse-theme .imse-contact-form__cta:hover,
body.imse-theme .imse-contact-form__cta:focus-visible {
    background: var(--gold-2);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px -10px rgba(244,163,64,.6);
    outline: none;
}

/* ---------- 24.C.7 SECTION MAP + HORAIRES + ZONE (cream) ---------- */
body.imse-theme .imse-contact-map-section {
    background: var(--cream);
    color: var(--navy);
    padding: 80px 24px;
}

body.imse-theme .imse-contact-map-section__inner {
    max-width: 1180px;
    margin: 0 auto;
}

body.imse-theme .imse-contact-map-section__head {
    text-align: center;
    margin-bottom: 48px;
}

body.imse-theme .imse-contact-map-section__eyebrow {
    display: inline-block;
    font-family: "Inter", sans-serif;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    color: var(--gold-2);
    text-transform: uppercase;
    margin-bottom: 14px;
}

body.imse-theme .imse-contact-map-section__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--navy);
    font-size: clamp(1.8rem, 3.2vw, 2.3rem);
    margin: 0 0 14px;
    line-height: 1.2;
}

body.imse-theme .imse-contact-map-section__title em {
    color: var(--gold-2);
    font-style: italic;
    font-weight: 600;
}

body.imse-theme .imse-contact-map-section__lede {
    color: rgba(15,34,54,.78);
    font-size: 1.02rem;
    line-height: 1.6;
    max-width: 60ch;
    margin: 0 auto;
}

body.imse-theme .imse-contact-map-section__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 40px;
    align-items: stretch;
}

body.imse-theme .imse-contact-map {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-md);
    background: var(--paper);
}

body.imse-theme .imse-contact-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

body.imse-theme .imse-contact-infos {
    display: grid;
    gap: 24px;
    align-content: start;
}

body.imse-theme .imse-contact-infos__block {
    background: var(--paper);
    border: 1px solid var(--line);
    border-left: 4px solid var(--gold);
    border-radius: 8px;
    padding: 24px 26px;
}

body.imse-theme .imse-contact-infos__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--navy);
    font-size: 1.2rem;
    margin: 0 0 14px;
    font-weight: 700;
}

body.imse-theme .imse-contact-infos__list {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
    color: rgba(15,34,54,.85);
    font-size: .96rem;
    line-height: 1.7;
}

body.imse-theme .imse-contact-infos__list li {
    padding: 4px 0;
    border-bottom: 1px dashed rgba(15,34,54,.08);
}

body.imse-theme .imse-contact-infos__list li:last-child {
    border-bottom: none;
}

body.imse-theme .imse-contact-infos__list strong {
    color: var(--navy);
    margin-right: 8px;
}

body.imse-theme .imse-contact-infos__list--cols {
    columns: 2;
    column-gap: 18px;
}

body.imse-theme .imse-contact-infos__list--cols li {
    border-bottom: none;
    padding: 2px 0;
    break-inside: avoid;
}

body.imse-theme .imse-contact-infos__note {
    color: rgba(15,34,54,.7);
    font-size: .9rem;
    line-height: 1.6;
    margin: 8px 0 0;
}

body.imse-theme .imse-contact-infos__note a {
    color: var(--gold-2);
    text-decoration: underline;
    font-weight: 600;
}

/* ---------- 24.C.8 CTA FINAL APPEL DIRECT (navy) ---------- */
body.imse-theme .imse-contact-cta-final {
    background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
    color: var(--cream);
    padding: 80px 24px 90px;
    text-align: center;
}

body.imse-theme .imse-contact-cta-final__inner {
    max-width: 760px;
    margin: 0 auto;
}

body.imse-theme .imse-contact-cta-final__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--cream);
    font-size: clamp(1.8rem, 3.4vw, 2.4rem);
    margin: 0 0 14px;
    line-height: 1.2;
}

body.imse-theme .imse-contact-cta-final__title em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

body.imse-theme .imse-contact-cta-final__lede {
    color: rgba(245,235,217,.86);
    font-size: 1.04rem;
    line-height: 1.6;
    margin: 0 auto 32px;
    max-width: 56ch;
}

body.imse-theme .imse-contact-cta-final__btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: var(--gold);
    color: var(--navy);
    border-radius: 8px;
    padding: 18px 36px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.55rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .25s, background .25s, box-shadow .25s;
    box-shadow: 0 16px 36px -12px rgba(244,163,64,.55);
}

body.imse-theme .imse-contact-cta-final__btn:hover,
body.imse-theme .imse-contact-cta-final__btn:focus-visible {
    background: var(--cream);
    color: var(--navy);
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 20px 44px -10px rgba(244,163,64,.7);
    outline: none;
    text-decoration: none;
}

body.imse-theme .imse-contact-cta-final__legal {
    color: rgba(245,235,217,.5);
    font-size: .74rem;
    line-height: 1.6;
    margin: 32px 0 0;
}

/* ---------- 24.C.9 RESPONSIVE BREAKPOINTS ---------- */
@media (max-width: 960px) {
    body.imse-theme .imse-contact-hero__inner {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: center;
    }
    body.imse-theme .imse-contact-hero__portrait {
        order: -1;
    }
    body.imse-theme .imse-contact-hero__lede {
        margin-left: auto;
        margin-right: auto;
    }
    body.imse-theme .imse-contact-coords {
        max-width: 520px;
        margin-left: auto;
        margin-right: auto;
    }
    body.imse-theme .imse-contact-coords__item {
        text-align: left;
    }
    body.imse-theme .imse-contact-rs {
        justify-content: center;
    }
    body.imse-theme .imse-contact-pourquoi__grid {
        grid-template-columns: 1fr;
        gap: 22px;
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
    }
    body.imse-theme .imse-contact-map-section__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 768px) {
    body.imse-theme .imse-contact-hero {
        padding: 56px 20px 72px;
    }
    body.imse-theme .imse-contact-portrait {
        width: 220px;
        height: 220px;
    }
    body.imse-theme .imse-contact-coords__value--phone {
        font-size: 1.3rem;
    }
    body.imse-theme .imse-contact-pourquoi,
    body.imse-theme .imse-contact-form-section,
    body.imse-theme .imse-contact-map-section,
    body.imse-theme .imse-contact-cta-final {
        padding: 56px 20px 64px;
    }
    body.imse-theme .imse-contact-form {
        padding: 26px 22px;
    }
    body.imse-theme .imse-contact-form__row {
        grid-template-columns: 1fr;
        gap: 0;
    }
    body.imse-theme .imse-contact-form__row .imse-contact-form__field {
        margin-bottom: 18px;
    }
    body.imse-theme .imse-contact-cta-final__btn {
        font-size: 1.3rem;
        padding: 16px 28px;
        width: 100%;
        max-width: 320px;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    body.imse-theme .imse-contact-portrait {
        width: 180px;
        height: 180px;
    }
    body.imse-theme .imse-contact-rs {
        gap: 12px;
    }
    body.imse-theme .imse-contact-rs__link {
        width: 44px;
        height: 44px;
    }
    body.imse-theme .imse-contact-infos__list--cols {
        columns: 1;
    }
}

/* ========================================================================= */
/* FIN section 24.C - Page Contact refonte Phase 6 STOP 4.2                  */
/* ========================================================================= */


/* ============================================================
   Section 25 — STOP 4.1 TER · Fixes mobile homepage cohésion
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-01
   Scope : Fix1 form-teaser intro mobile + Fix2 bio CTA center mobile
           + Fix3 indication clic carte mobile + Fix6 espace footnote→A-Z
   Spec : body.imse-theme prefix (anti-cascade STOP 3.5 BIS)
   Mobile-first · 0 backdrop-filter · Pas de regression Sections 20-24
   ============================================================ */

/* ---- FIX 1 — Section "Démarrez maintenant" intro mobile lisible ---- */
@media (max-width: 768px) {
  body.imse-theme .imse-home-form-teaser__inner {
    padding: 28px 18px 24px;
  }
  body.imse-theme .imse-home-form-teaser__header {
    padding-bottom: 12px;
    margin-bottom: 12px;
  }
  body.imse-theme .imse-home-form-teaser__eyebrow {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    line-height: 1.4;
    margin-bottom: 10px;
    text-transform: uppercase;
  }
  body.imse-theme .imse-home-form-teaser__title {
    font-size: 1.5rem;
    line-height: 1.25;
    margin: 0 0 10px;
  }
  body.imse-theme .imse-home-form-teaser__subtitle {
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 16px;
    max-width: 100%;
  }
  body.imse-theme .imse-home-form-teaser__form {
    margin-top: 0.75rem;
  }
}

/* Desktop : préserver confort */
@media (min-width: 769px) {
  body.imse-theme .imse-home-form-teaser__title {
    font-size: 2rem;
  }
  body.imse-theme .imse-home-form-teaser__subtitle {
    font-size: 1.0625rem;
    line-height: 1.65;
  }
}

/* ---- FIX 2 — Bouton "En savoir plus sur moi" centré mobile ---- */
@media (max-width: 768px) {
  body.imse-theme .imse-home-bio__actions {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    text-align: center;
    margin: 16px auto 0;
  }
  body.imse-theme .imse-home-bio__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 280px;
    width: auto;
    text-align: center;
  }
}

/* ---- FIX 3 — Indication clic carte mobile-friendly (Option C) ---- */
@keyframes imse-carte-pulse {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

body.imse-theme .carte-svg-inner::before {
  content: "👆 Touchez votre territoire sur la carte";
  display: block;
  text-align: center;
  margin: 0 auto 12px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--gold-primary, #F4A340);
  letter-spacing: 0.05em;
  line-height: 1.4;
  animation: imse-carte-pulse 2.4s ease-in-out infinite;
}

/* Desktop : hover-based, message statique */
@media (min-width: 769px) {
  body.imse-theme .carte-svg-inner::before {
    content: "Cliquez sur votre commune";
    animation: none;
    opacity: 0.85;
    font-size: 0.95rem;
    margin-bottom: 16px;
  }
}

/* A11y : respecter prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  body.imse-theme .carte-svg-inner::before {
    animation: none;
    opacity: 1;
  }
}

/* Communes SVG cliquables : signal visuel renforcé */
body.imse-theme .carte-agglo-container svg path,
body.imse-theme .carte-svg-section svg path[data-commune] {
  cursor: pointer;
  transition: fill 0.3s ease, opacity 0.2s ease;
}
body.imse-theme .carte-agglo-container svg path:hover,
body.imse-theme .carte-agglo-container svg path:focus,
body.imse-theme .carte-svg-section svg path[data-commune]:hover,
body.imse-theme .carte-svg-section svg path[data-commune]:focus {
  opacity: 0.85;
  outline: none;
}

/* ---- FIX 6 — Eliminer espace béant footnote communes → A-Z ---- */
@media (max-width: 768px) {
  body.imse-theme .imse-home-communes {
    padding-bottom: 24px;
  }
  body.imse-theme .imse-home-communes__footnote {
    margin-bottom: 0;
    padding-bottom: 0;
  }
  body.imse-theme .imse-communes-az {
    padding-top: 32px;
  }
}

@media (min-width: 769px) {
  body.imse-theme .imse-home-communes {
    padding-bottom: 36px;
  }
  body.imse-theme .imse-communes-az {
    padding-top: 48px;
  }
}

/* Continuité cream entre les 2 sections : pas de margin parasite */
body.imse-theme .imse-home-communes + .imse-communes-az {
  margin-top: 0 !important;
  padding-top: 32px !important;
}
@media (min-width: 769px) {
  body.imse-theme .imse-home-communes + .imse-communes-az {
    padding-top: 48px !important;
  }
}

/* ============================================================
   FIN Section 25 — STOP 4.1 TER
   ============================================================ */


/* ============================================================
   SECTION 26 — STOP 4.1 QUATER HOT-FIXES SURGICAL (2026-06-01)
   SEAL : EMPIRE-2026-06-01-MV7E
   ------------------------------------------------------------
   HOT-FIX 1 : Réduit gros blanc hero→form-teaser mobile +
               agrandit eyebrow "petit texte perdu"
   HOT-FIX 2 : Smiley 👆 → 👇 (via override Section 25)
   HOT-FIX 3 : Indication "Touchez votre territoire" déplacée
               AU-DESSUS de la carte SVG (pas haut de section)
   ------------------------------------------------------------
   Override surgical Section 25 :
   - .carte-svg-inner::before { content: none !important }
   - Nouveau .carte-agglo-container::before porte l'indication
   ============================================================ */

/* -- HOT-FIX 1 : Wave divider hero→cream compactée mobile -- */
@media (max-width: 768px) {
  body.imse-theme .imse-section-divider--to-cream svg {
    height: 32px;
  }
}
@media (max-width: 480px) {
  body.imse-theme .imse-section-divider--to-cream svg {
    height: 24px;
  }
}

/* -- HOT-FIX 1 : Form-teaser inner padding-top compacté mobile (override Section 25 28px) -- */
@media (max-width: 768px) {
  body.imse-theme .imse-home-form-teaser__inner {
    padding-top: 18px;
  }
  body.imse-theme .imse-home-form-teaser__header {
    padding-bottom: 8px;
    margin-bottom: 8px;
  }
  /* Eyebrow AGRANDI mobile — anti "petit texte perdu" */
  body.imse-theme .imse-home-form-teaser__eyebrow {
    font-size: 0.88rem;
    letter-spacing: 0.06em;
    margin-bottom: 12px;
  }
  /* Title remonté serré contre eyebrow */
  body.imse-theme .imse-home-form-teaser__title {
    margin-top: 6px;
  }
}

/* -- HOT-FIX 2 + HOT-FIX 3 : Annule indication en haut de section (Section 25) -- */
body.imse-theme .carte-svg-inner::before {
  content: none !important;
}

/* -- HOT-FIX 3 : Nouvelle indication AU-DESSUS de la carte SVG -- */
body.imse-theme .carte-agglo-container {
  position: relative;
}

body.imse-theme .carte-agglo-container::before {
  content: "👇 Touchez votre territoire sur la carte";
  display: block;
  text-align: center;
  margin: 0 auto 14px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--gold-primary, #F4A340);
  letter-spacing: 0.05em;
  line-height: 1.4;
  animation: imse-carte-pulse 2.4s ease-in-out infinite;
}

/* Desktop ≥ 1024px : "Cliquez" + pas d'animation */
@media (min-width: 1024px) {
  body.imse-theme .carte-agglo-container::before {
    content: "👇 Cliquez sur votre territoire";
    animation: none;
    opacity: 0.85;
  }
}

/* A11y : motion-reduced — désactive animation */
@media (prefers-reduced-motion: reduce) {
  body.imse-theme .carte-agglo-container::before {
    animation: none;
    opacity: 1;
  }
}

/* ============================================================
   FIN SECTION 26 — STOP 4.1 QUATER HOT-FIXES SURGICAL
   ============================================================ */


/* ============================================================
   Section 27 — Surgical CORRECTION cause racine contraste form-teaser invisible
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-01 (post Phase 6 STOP 3.5 BIS)
   ------------------------------------------------------------
   CAUSE RACINE (3 tentatives échouées avant ce fix) :
   1. STOP 2 (28/05) design hybride : .imse-home-form-teaser bg passé
      de NAVY gradient (init L454 imse-home-sections.css) -> CREAM
      + textes forcés en NAVY/ink (greffes.css L1458-1477).
   2. STOP 4.1 BIS Section 23.2 (01/06) : lecture INVERSE du code.
      Commentaire "fond navy gradient mais textes forces en navy" -> faux.
      Le fond était DEJA cream post-STOP 2. Forcer text en CREAM
      sur fond CREAM = INVISIBLE.
   3. Section 27 reverse Section 23.2 incorrecte : textes back to NAVY
      sur fond CREAM (palette hybride STOP 2 correcte).

   LEÇON ANTI-RECIDIVE (lessons learned empire) :
   Avant tout override couleur, GREP le background actuel ET les rules
   cascade existantes (init + STOP 2 + STOP 4.x). Ne pas se fier au
   commentaire d'une section précédente : lire le CSS effectif.
   ------------------------------------------------------------
   Spec : body.imse-theme préfixée (0,3,0) + !important pour battre
   Section 23.2. Override surgical uniquement sur règles incorrectes.
   0 backdrop-filter, mobile-first, pas de régression Sections 20-26.
   ============================================================ */

/* ---------- FIX A : Contraste textes form-teaser (override Section 23.2) ---------- */
/* Section bg = CREAM (STOP 2). Textes DOIVENT être NAVY.
   Exceptions conservées : eyebrow GOLD + title em GOLD + legal links GOLD. */

body.imse-theme .imse-home-form-teaser,
body.imse-theme #imse-form-teaser {
    color: var(--navy-primary, #0F2236) !important;
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__title,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__title {
    color: var(--navy-primary, #0F2236) !important;
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__subtitle,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__subtitle {
    color: rgba(15, 34, 54, 0.85) !important; /* navy 85% — hiérarchie visuelle */
}

body.imse-theme .imse-home-form-teaser .imse-home-form-teaser__legal,
body.imse-theme #imse-form-teaser .imse-home-form-teaser__legal {
    color: rgba(15, 34, 54, 0.7) !important; /* navy 70% — mention légale discrète */
}

/* CONSERVER règles GOLD existantes (déjà OK en greffes.css) :
   - .imse-home-form-teaser__eyebrow { color: gold !important; }
   - .imse-home-form-teaser__title em { color: gold !important; }
   - .imse-home-form-teaser__legal a { color: gold !important; }
   Aucune modif nécessaire — citées ici pour traçabilité. */

/* ATTENTION : .imse-home-form-teaser__form (form interne navy bg + border gold,
   STOP 2 L1613) reste navy. Ses labels/inputs (cream sur navy, STOP 2 L1623)
   restent cream. PAS de modification — palette hybride validée Julien 28/05. */


/* ---------- FIX B : Pilule sticky CTA — anti-chevauchement form mobile ---------- */
/* La sticky CTA homepage (position fixed bottom right) peut chevaucher
   le form-teaser sur viewport mobile court. Padding-bottom + z-index sécurise. */

@media (max-width: 768px) {
    body.imse-theme .imse-home-form-teaser {
        padding-bottom: 100px !important; /* gap sticky CTA — 56px bouton + 24px gap + marge */
    }

    body.imse-theme .imse-home-form-teaser__form {
        margin-bottom: 24px !important;
        position: relative !important;
        z-index: 1 !important; /* form au-dessus du flux normal mais sous sticky */
    }

    /* Harmonisation z-index sticky CTA (déjà fait Section 20, rappel défensif) */
    body.imse-theme .imse-sticky-cta,
    body.imse-theme .sticky-cta {
        z-index: 998 !important; /* sous modales (z-index 999+) mais au-dessus form */
    }
}

/* .imse-sticky-cta position fixed bottom right préservée — validation Julien. */

/* ============================================================
   Section 27 — Fin
   Fixes : (A) contraste textes form-teaser navy sur cream
           (B) sticky CTA no-overlap form mobile via padding-bottom + z-index
   Override Section 23.2 STOP 4.1 BIS incorrecte (reverse cause racine).
   Pas de regression Sections 20-26.
   ============================================================ */


/* ============================================================
   Section 28 — STOP 4.1 SEXTIES · 2 ajustements hauteur homepage mobile
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-01 (post-STOP 4.1 QUINTER validation Julien)
   ------------------------------------------------------------
   AJUSTEMENT 1 — Réduire hauteur __form navy box mobile
     Cause : STOP 2 L1613 padding: 32px + bouton .95rem 1.75rem + legal taille std
     Fix   : padding 22px 18px + bouton 0.85/1.5rem + legal 0.78rem
   AJUSTEMENT 2 — Réduire espace cream entre form-teaser et imse-home-bio
     Cause : Section 27 QUINTER padding-bottom 100px + bio init 5rem padding-top
             = ~180px de cream vide mobile
     Fix   : form-teaser padding-bottom 100px → 28px
             + bio padding 5rem → 2.5rem mobile
             = ~68px (-62%)
   ------------------------------------------------------------
   Sticky CTA z-index 998 préservé (Section 27 + Section 20).
   Sticky position:fixed gère chevauchement via z-index, pas via padding.
   Anti-régression : Sections 20→27 préservées, palette hybride STOP 2 intacte.
   ============================================================ */

/* ---------- AJUSTEMENT 1 — Hauteur __form navy box mobile ---------- */
@media (max-width: 768px) {
    body.imse-theme .imse-home-form-teaser__form {
        padding: 22px 18px !important;       /* 32px → 22px haut/bas + 18px lat */
        margin-top: 0.5rem !important;        /* override Section 26 0.75rem */
    }

    /* Gap entre rows compact */
    body.imse-theme .imse-home-form-teaser__row {
        gap: 12px !important;
    }
    body.imse-theme .imse-home-form-teaser__row + .imse-home-form-teaser__row {
        margin-top: 12px !important;
    }

    /* Bouton submit compact */
    body.imse-theme .imse-home-form-teaser__form button[type="submit"],
    body.imse-theme .imse-home-form-teaser__form .imse-home-form-teaser__submit,
    body.imse-theme .imse-home-form-teaser__form input[type="submit"] {
        margin-top: 14px !important;
        padding: 0.85rem 1.5rem !important;   /* .95rem 1.75rem → .85rem 1.5rem */
    }

    /* Legal mention discret compact */
    body.imse-theme .imse-home-form-teaser__legal {
        margin-top: 12px !important;
        font-size: 0.78rem !important;
        line-height: 1.45 !important;
    }
}

/* ---------- AJUSTEMENT 2 — Espace cream form-teaser ↔ bio mobile ---------- */
@media (max-width: 768px) {
    /* Override Section 27 QUINTER padding-bottom 100px (défensif inutile sticky fixed) */
    body.imse-theme .imse-home-form-teaser {
        padding-bottom: 28px !important;      /* 100px → 28px */
    }

    /* Réduire padding bio mobile (init theme L10 = 5rem 1.5rem = 80px) */
    body.imse-theme .imse-home-bio,
    body.imse-theme .imse-home-bio--v722 {
        padding-top: 2.5rem !important;       /* 5rem → 2.5rem (40px) */
        padding-bottom: 2.5rem !important;    /* harmonisation visuelle */
    }
}

/* Note défensive : sticky CTA z-index 998 reste géré par Section 27 + Section 20.
   Pas de modif sticky ici — position:fixed gère le chevauchement. */

/* ============================================================
   Section 28 — Fin
   Fixes : AJ1 __form compact mobile + AJ2 espace cream réduit -62%
   Pas de régression Sections 20-27. Palette hybride STOP 2 intacte.
   ============================================================ */

/* ============================================================
   Section 29 — STOP 4.3 · CSS pages communes types (Louviers + PdA + Acquigny)
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-01 (post-SEXTIES validation)
   ------------------------------------------------------------
   SCOPE :
     1. .commune-faq + .commune-faq__item — FAQ accordeon HTML5 <details>/<summary>
     2. .commune-voisines + .commune-arrows + .commune-arrow (standalone) — liens voisines
     3. Polish .section-vivre.narrative-body : H2/H3 spacing + lists + paragraphs
   ------------------------------------------------------------
   Pattern : body.imse-theme prefixe (spec 0,3,0). Mobile-first.
   Anti-regression Sections 20-28 preservees. 0 backdrop-filter.
   ============================================================ */

/* ---------- 1. FAQ accordeon (HTML5 details/summary natif) ---------- */
body.imse-theme .commune-faq {
    max-width: 820px;
    margin: 3rem auto;
    padding: 0 1rem;
}

body.imse-theme .commune-faq > h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--navy-primary, #0F2236);
    margin: 0 0 1.5rem;
    text-align: center;
}

body.imse-theme .commune-faq__item {
    background: #FFFFFF;
    border: 1px solid rgba(15, 34, 54, 0.08);
    border-radius: 12px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: box-shadow 0.25s ease;
}

body.imse-theme .commune-faq__item:hover,
body.imse-theme .commune-faq__item[open] {
    box-shadow: 0 6px 24px rgba(15, 34, 54, 0.08);
}

body.imse-theme .commune-faq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 22px;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--navy-primary, #0F2236);
    list-style: none;
    user-select: none;
    transition: background 0.2s ease;
}

body.imse-theme .commune-faq__q::-webkit-details-marker { display: none; }

body.imse-theme .commune-faq__q::after {
    content: '+';
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--gold-primary, #F4A340);
    color: var(--navy-primary, #0F2236);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 26px;
    text-align: center;
    transition: transform 0.3s ease, background 0.2s ease;
}

body.imse-theme .commune-faq__item[open] .commune-faq__q::after {
    content: '−';
    transform: rotate(180deg);
}

body.imse-theme .commune-faq__q:hover { background: rgba(244, 163, 64, 0.04); }
body.imse-theme .commune-faq__q:focus-visible {
    outline: 3px solid rgba(244, 163, 64, 0.4);
    outline-offset: -2px;
}

body.imse-theme .commune-faq__a {
    padding: 0 22px 20px;
    color: rgba(15, 34, 54, 0.85);
}

body.imse-theme .commune-faq__a p {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    line-height: 1.65;
}
body.imse-theme .commune-faq__a p:last-child { margin-bottom: 0; }

body.imse-theme .commune-faq__a a {
    color: var(--gold-primary, #F4A340);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    body.imse-theme .commune-faq { margin: 2rem auto; }
    body.imse-theme .commune-faq > h2 { font-size: 1.4rem; }
    body.imse-theme .commune-faq__q { padding: 14px 16px; font-size: 0.98rem; }
    body.imse-theme .commune-faq__a { padding: 0 16px 16px; }
}

/* ---------- 2. Communes voisines (greffe BSA #4 commune-arrow standalone) ---------- */
body.imse-theme .commune-voisines {
    max-width: 820px;
    margin: 2.5rem auto;
    padding: 1.5rem;
    background: rgba(15, 34, 54, 0.03);
    border-left: 3px solid var(--gold-primary, #F4A340);
    border-radius: 0 8px 8px 0;
}

body.imse-theme .commune-voisines > h3 {
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--navy-primary, #0F2236);
    margin: 0 0 1rem;
    letter-spacing: 0.02em;
}

body.imse-theme .commune-arrows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

body.imse-theme .commune-arrows li { margin: 0; }

body.imse-theme .commune-arrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #FFFFFF;
    border: 1px solid rgba(244, 163, 64, 0.3);
    border-radius: 999px;
    color: var(--navy-primary, #0F2236);
    font-size: 0.92rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
}

body.imse-theme .commune-arrow:hover,
body.imse-theme .commune-arrow:focus-visible {
    background: var(--gold-primary, #F4A340);
    color: var(--navy-primary, #0F2236);
    border-color: var(--gold-primary, #F4A340);
    transform: translateX(2px);
    text-decoration: none;
}

body.imse-theme .commune-arrow:focus-visible {
    outline: 3px solid rgba(244, 163, 64, 0.4);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    body.imse-theme .commune-voisines { margin: 2rem auto; padding: 1.25rem; }
    body.imse-theme .commune-arrow { padding: 7px 14px; font-size: 0.88rem; }
}

/* ---------- 3. Polish section-vivre narrative-body (H2/H3 communes) ---------- */
body.imse-theme .section-vivre.narrative-body {
    max-width: 820px;
    margin: 4rem auto;
    padding: 0 1.5rem;
}

body.imse-theme .section-vivre.narrative-body > .eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gold-primary, #F4A340);
    margin-bottom: 1.25rem;
    text-align: center;
}

body.imse-theme .section-vivre.narrative-body h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.85rem;
    font-weight: 600;
    color: var(--navy-primary, #0F2236);
    margin: 2.5rem 0 1rem;
    line-height: 1.25;
}

body.imse-theme .section-vivre.narrative-body h3 {
    font-family: 'Inter', sans-serif;
    font-size: 1.18rem;
    font-weight: 600;
    color: var(--navy-primary, #0F2236);
    margin: 2rem 0 0.75rem;
    line-height: 1.35;
}

body.imse-theme .section-vivre.narrative-body p {
    font-family: 'Inter', sans-serif;
    font-size: 1.06rem;
    line-height: 1.75;
    color: rgba(15, 34, 54, 0.88);
    margin: 0 0 1.15rem;
}

body.imse-theme .section-vivre.narrative-body strong {
    color: var(--navy-primary, #0F2236);
    font-weight: 600;
}

body.imse-theme .section-vivre.narrative-body em {
    color: rgba(15, 34, 54, 0.78);
    font-style: italic;
}

body.imse-theme .section-vivre.narrative-body ul,
body.imse-theme .section-vivre.narrative-body ol {
    margin: 0 0 1.5rem 1.5rem;
    padding: 0;
}

body.imse-theme .section-vivre.narrative-body li {
    margin-bottom: 0.5rem;
    font-size: 1.04rem;
    line-height: 1.65;
    color: rgba(15, 34, 54, 0.88);
}

body.imse-theme .section-vivre.narrative-body a {
    color: var(--gold-primary, #F4A340);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
}

body.imse-theme .section-vivre.narrative-body a:hover {
    color: var(--navy-primary, #0F2236);
}

@media (max-width: 768px) {
    body.imse-theme .section-vivre.narrative-body { margin: 2.5rem auto; padding: 0 1.25rem; }
    body.imse-theme .section-vivre.narrative-body h2 { font-size: 1.5rem; margin: 2rem 0 0.9rem; }
    body.imse-theme .section-vivre.narrative-body h3 { font-size: 1.08rem; margin: 1.5rem 0 0.6rem; }
    body.imse-theme .section-vivre.narrative-body p { font-size: 1rem; line-height: 1.7; }
    body.imse-theme .section-vivre.narrative-body li { font-size: 0.98rem; }
}

/* ============================================================
   Section 29 — Fin
   FAQ accordeon + commune-voisines + polish narrative-body.
   Pas de regression Sections 20-28. Palette empire intacte.
   ============================================================ */
/* ============================================================
   SECTION 30 BIS — STOP 4.3 BIS — Fix pages communes
   ------------------------------------------------------------
   Date     : 2026-06-01
   Cible    : template-commune-v75.php (60 communes)
   Prefixe  : body.imse-theme (spec 0,3,0)
   Cascade  : empile apres Sections 23, 25, 26, 27, 28
   Palette  : navy #0F2236 | gold #F4A340 | cream #FAF4E5
              ink rgba(15,34,54,0.85)
   Bugs     :
     BUG 1 — Form 2-cols chaos mobile (stack 1-col + inputs propres)
     BUG 2 — Hero "Immobilier {Commune} ({CP})" colle bord gauche mobile
     BUG 3 — Pilule sticky "ESTIMATION OFFERTE" chevauche hero
   ============================================================ */

/* Reset border-box defensif pour zone communes (anti-padding cassant grids) */
body.imse-theme .hero-commune *,
body.imse-theme .hero-commune *::before,
body.imse-theme .hero-commune *::after,
body.imse-theme .section-form-twocol *,
body.imse-theme .section-form-twocol *::before,
body.imse-theme .section-form-twocol *::after {
  box-sizing: border-box;
}

/* ============================================================
   BUG 1 — Form 2-cols chaos mobile
   ------------------------------------------------------------
   Stack 1-col mobile + structure inputs/labels/selects propre
   + focus state gold + RGPD aligne + submit pill full-width
   ============================================================ */

/* --- 1.A — Layout mobile-first : 1 col stack vertical --- */
body.imse-theme .section-form-twocol {
  padding: 48px 20px;
  background: #fff;
}

body.imse-theme .section-form-twocol__inner {
  display: block !important;
  grid-template-columns: 1fr !important;
  gap: 28px;
  max-width: 100%;
  margin: 0 auto;
}

body.imse-theme .form-twocol-content,
body.imse-theme .form-twocol-form {
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
}

body.imse-theme .form-twocol-content {
  margin-bottom: 24px;
}

body.imse-theme .form-twocol-content .eyebrow {
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #F4A340;
  font-weight: 600;
  margin: 0 0 10px;
}

body.imse-theme .form-twocol-content h2 {
  font-size: 1.6rem;
  line-height: 1.25;
  color: #0F2236;
  margin: 0 0 12px;
  font-weight: 700;
}

body.imse-theme .form-twocol-content p {
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(15, 34, 54, 0.85);
  margin: 0 0 16px;
}

/* --- 1.B — Champs form : labels + structure flex --- */
body.imse-theme .imse-estim-form .field {
  display: flex !important;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

body.imse-theme .imse-estim-form .field-label,
body.imse-theme .imse-estim-form label {
  font-size: 0.92rem;
  font-weight: 500;
  color: #0F2236;
  margin-bottom: 4px;
  line-height: 1.3;
}

/* --- 1.C — Inputs + selects : full width + anti iOS-zoom 16px --- */
body.imse-theme .imse-estim-form input[type="text"],
body.imse-theme .imse-estim-form input[type="email"],
body.imse-theme .imse-estim-form input[type="tel"],
body.imse-theme .imse-estim-form input[type="number"],
body.imse-theme .imse-estim-form select,
body.imse-theme .imse-estim-form textarea {
  width: 100% !important;
  padding: 11px 14px;
  border: 1px solid rgba(15, 34, 54, 0.18);
  border-radius: 6px;
  font-size: 16px; /* anti iOS-zoom — minimum 16px */
  line-height: 1.4;
  color: #0F2236;
  background: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

/* Select : appearance none + caret gold custom */
body.imse-theme .imse-estim-form select {
  padding-right: 36px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23F4A340' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  cursor: pointer;
}

/* Focus state : border gold + halo gold 25% */
body.imse-theme .imse-estim-form input:focus,
body.imse-theme .imse-estim-form select:focus,
body.imse-theme .imse-estim-form textarea:focus {
  outline: none;
  border-color: #F4A340;
  box-shadow: 0 0 0 3px rgba(244, 163, 64, 0.25);
}

/* --- 1.D — RGPD consent : checkbox align top + texte petit --- */
body.imse-theme .imse-estim-form .rgpd-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 16px 0;
  font-size: 0.85rem;
  line-height: 1.45;
  color: rgba(15, 34, 54, 0.75);
}

body.imse-theme .imse-estim-form .rgpd-consent input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  accent-color: #F4A340;
  cursor: pointer;
}

body.imse-theme .imse-estim-form .rgpd-consent label,
body.imse-theme .imse-estim-form .rgpd-consent a {
  font-size: 0.85rem;
  margin: 0;
  font-weight: 400;
}

body.imse-theme .imse-estim-form .rgpd-consent a {
  color: #0F2236;
  text-decoration: underline;
}

/* --- 1.E — Submit pill gold full-width mobile --- */
body.imse-theme .imse-estim-form button[type="submit"],
body.imse-theme .imse-estim-form .btn-primary[type="submit"],
body.imse-theme .imse-estim-form .btn-submit {
  width: 100%;
  padding: 14px 24px;
  border: none;
  border-radius: 999px;
  background: #F4A340;
  color: #0F2236;
  font-weight: 600;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.25s, transform 0.15s, box-shadow 0.25s;
  margin-top: 8px;
  font-family: inherit;
}

body.imse-theme .imse-estim-form button[type="submit"]:hover,
body.imse-theme .imse-estim-form .btn-primary[type="submit"]:hover,
body.imse-theme .imse-estim-form .btn-submit:hover {
  background: #e69528;
  box-shadow: 0 4px 14px rgba(244, 163, 64, 0.35);
  transform: translateY(-1px);
}

/* --- 1.F — Desktop @media min-width 769 : grid 2 cols 1fr 1fr --- */
@media (min-width: 769px) {
  body.imse-theme .section-form-twocol {
    padding: 80px 32px;
  }
  body.imse-theme .section-form-twocol__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 3rem;
    max-width: 1100px;
    align-items: start;
  }
  body.imse-theme .form-twocol-content {
    margin-bottom: 0;
    padding-right: 8px;
  }
  body.imse-theme .form-twocol-content h2 {
    font-size: 2rem;
  }
  body.imse-theme .form-twocol-content p {
    font-size: 1.05rem;
  }
}

/* ============================================================
   BUG 2 — Hero "Immobilier {Commune} ({CP})" colle bord gauche
   ------------------------------------------------------------
   Padding-x sur .imse-hero.hero-commune + h1 word-break
   + lede + CTAs flex propres mobile + scaling desktop
   ============================================================ */

/* --- 2.A — Mobile-first : padding 60px 24px (zone tampon haut) --- */
body.imse-theme .imse-hero.hero-commune {
  padding: 60px 24px 100px; /* bottom 100px = zone tampon sticky CTA (cf BUG 3) */
  position: relative;
}

body.imse-theme .imse-hero.hero-commune .hero-inner {
  padding: 0;
  max-width: 100%;
  position: relative;
  z-index: 1;
}

/* --- 2.B — H1 wrap propre mobile (commune longue = "Saint-Pierre-du-Vauvray") --- */
body.imse-theme .imse-hero.hero-commune h1 {
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  margin: 0 0 1rem;
  font-size: 1.85rem;
  line-height: 1.2;
  font-weight: 700;
  color: #FAF4E5;
}

body.imse-theme .imse-hero.hero-commune h1 em {
  font-style: normal;
  color: #F4A340;
}

body.imse-theme .imse-hero.hero-commune h1 .hero-cp {
  font-size: 0.78em;
  font-weight: 500;
  color: rgba(250, 244, 229, 0.75);
  white-space: nowrap;
  margin-left: 0.25em;
}

/* --- 2.C — Lede mobile lisible --- */
body.imse-theme .imse-hero.hero-commune .lede {
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(250, 244, 229, 0.92);
  margin: 0 0 1.25rem;
}

/* --- 2.D — CTAs flex wrap mobile (2 btns cote a cote ou stack si troit) --- */
body.imse-theme .imse-hero.hero-commune .hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 1.5rem;
}

body.imse-theme .imse-hero.hero-commune .hero-ctas .btn {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.25s, transform 0.15s, box-shadow 0.25s;
  white-space: nowrap;
}

body.imse-theme .imse-hero.hero-commune .hero-ctas .btn-primary {
  background: #F4A340;
  color: #0F2236;
}

body.imse-theme .imse-hero.hero-commune .hero-ctas .btn-ghost {
  background: transparent;
  color: #FAF4E5;
  border: 1.5px solid rgba(250, 244, 229, 0.55);
}

body.imse-theme .imse-hero.hero-commune .hero-ctas .btn-primary:hover {
  background: #e69528;
  box-shadow: 0 4px 14px rgba(244, 163, 64, 0.35);
  transform: translateY(-1px);
}

body.imse-theme .imse-hero.hero-commune .hero-ctas .btn-ghost:hover {
  background: rgba(250, 244, 229, 0.1);
  border-color: #FAF4E5;
}

/* --- 2.E — Desktop @media min-width 769 : padding 90px 48px + scale type --- */
@media (min-width: 769px) {
  body.imse-theme .imse-hero.hero-commune {
    padding: 90px 48px;
  }
  body.imse-theme .imse-hero.hero-commune h1 {
    font-size: 2.4rem;
  }
  body.imse-theme .imse-hero.hero-commune .lede {
    font-size: 1.1rem;
  }
  body.imse-theme .imse-hero.hero-commune .hero-ctas .btn {
    flex: 0 0 auto;
    padding: 14px 28px;
    font-size: 1rem;
  }
}

/* --- 2.F — Desktop large @media min-width 1024 : max-width 1100 centered --- */
@media (min-width: 1024px) {
  body.imse-theme .imse-hero.hero-commune .hero-inner {
    max-width: 1100px;
    margin: 0 auto;
  }
  body.imse-theme .imse-hero.hero-commune h1 {
    font-size: 2.7rem;
  }
}

/* ============================================================
   BUG 3 — Pilule sticky "ESTIMATION OFFERTE" chevauche hero
   ------------------------------------------------------------
   Padding-bottom 100px sur hero mobile = zone tampon visuelle
   + z-index harmonise + sticky preserve bottom right
   ============================================================ */

/* --- 3.A — Sticky CTA z-index harmonisation (defensif Section 27) --- */
body.imse-theme .imse-sticky-cta {
  z-index: 998;
}

/* --- 3.B — Hero z-index sous sticky mais au-dessus du flux normal --- */
body.imse-theme .imse-hero.hero-commune .hero-inner {
  position: relative;
  z-index: 1;
}

/* --- 3.C — Sticky CTA preserve mobile (bottom right) sans cacher contenu --- */
@media (max-width: 768px) {
  body.imse-theme .imse-sticky-cta {
    bottom: 16px;
    right: 16px;
  }
  /* Le padding-bottom 100px sur .hero-commune (cf BUG 2.A) cree
     la zone tampon = pas d'overlap visible entre H1 et pilule */
}

/* --- 3.D — Desktop sticky preserve mais hero sans tampon (overlap impossible) --- */
@media (min-width: 769px) {
  body.imse-theme .imse-hero.hero-commune {
    padding-bottom: 90px; /* override 100px mobile : desktop hero plus haut */
  }
}

/* ============================================================
   FIN SECTION 30 BIS — STOP 4.3 BIS
   ============================================================ */
/* ============================================================
   Section 31 STOP 4.3 TER · 2 ajustements pages communes
   SEAL EMPIRE-2026-06-01-MV7E
   AJ1 : Hero CTAs compacts + centres (mobile col / desktop row)
   AJ2 : Form box decoration (bg section cream-light + form box
         blanc bordure shadow + inputs cream-light focus halo +
         submit hover lift + checkbox RGPD aligne)
   Override Section 30 BIS pour btns flex 1>0 + cream-light bg inputs
   Anti-regression Sections 20-30 BIS preservees (specificite 0,3,0)
   ============================================================ */

/* ============================================================
   AJUSTEMENT 1 — Hero CTAs compacts + centres
   ============================================================ */

/* Mobile : stack vertical centre, btns compacts */
@media (max-width: 768px) {
  body.imse-theme .imse-hero.hero-commune .hero-ctas {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
  }
  body.imse-theme .imse-hero.hero-commune .hero-ctas .btn {
    flex: 0 0 auto !important;
    width: auto;
    min-width: 240px;
    max-width: 320px;
    padding: 12px 28px;
    font-size: 0.95rem;
    text-align: center;
  }
}

/* Desktop : row centree, btns compacts */
@media (min-width: 769px) {
  body.imse-theme .imse-hero.hero-commune .hero-ctas {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 16px;
  }
  body.imse-theme .imse-hero.hero-commune .hero-ctas .btn {
    flex: 0 0 auto !important;
    min-width: 240px;
    max-width: 280px;
    padding: 14px 28px;
    font-size: 1rem;
    text-align: center;
  }
}

/* ============================================================
   AJUSTEMENT 2 — Form box decoration
   ============================================================ */

/* 2.A — Section bg cream-light pour faire ressortir form box */
body.imse-theme .section-form-twocol {
  background: #FCF6E7;
}

/* 2.B — Form box decoration (bg blanc + border + shadow + radius) */
body.imse-theme .imse-estim-form {
  background: #ffffff;
  border: 1px solid rgba(15, 34, 54, 0.10);
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(15, 34, 54, 0.06);
  padding: 24px;
  max-width: 560px;
  margin: 0 auto;
}

/* 2.C — Inputs/selects cream-light + border legerement marquee */
body.imse-theme .imse-estim-form input,
body.imse-theme .imse-estim-form select,
body.imse-theme .imse-estim-form textarea {
  background: #FCF6E7 !important;
  border: 1px solid rgba(15, 34, 54, 0.15) !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  font-size: 16px;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* 2.C focus — bg blanc + halo gold */
body.imse-theme .imse-estim-form input:focus,
body.imse-theme .imse-estim-form select:focus,
body.imse-theme .imse-estim-form textarea:focus {
  background: #ffffff !important;
  border-color: #F4A340 !important;
  box-shadow: 0 0 0 4px rgba(244, 163, 64, 0.20) !important;
  outline: none;
}

/* 2.D — Submit hover lift (full-width preserve par Section 30 BIS) */
body.imse-theme .imse-estim-form button[type="submit"] {
  margin-top: 12px;
  transition: all 0.3s ease;
  border: 2px solid transparent;
}
body.imse-theme .imse-estim-form button[type="submit"]:hover {
  background: #ffffff !important;
  color: #0F2236 !important;
  border: 2px solid #F4A340 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(244, 163, 64, 0.30);
}

/* 2.E — Checkbox RGPD aligne propre */
body.imse-theme .imse-estim-form .rgpd-consent {
  padding: 8px 0;
}
body.imse-theme .imse-estim-form .rgpd-consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin-top: 2px;
  accent-color: #F4A340;
}

/* Mobile : form box padding compact + full-width */
@media (max-width: 768px) {
  body.imse-theme .imse-estim-form {
    padding: 20px;
    max-width: 100%;
  }
}

/* 2.F — Desktop : form box max-width 480 (deja dans grid 2-col) */
@media (min-width: 769px) {
  body.imse-theme .imse-estim-form {
    max-width: 480px;
  }
}

/* Section 31 - Fin */

/* ============================================================
   Section 32 — STOP 4 Etape A · Quick-wins LCP + CLS
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-01 nuit
   ------------------------------------------------------------
   QUICKWIN 1 : Anti-CLS portraits + images (aspect-ratio defensif)
   QUICKWIN 2 : content-visibility: auto sur sections below-fold
                (reduit cout layout/paint Lighthouse)
   QUICKWIN 3 : hero-banner aspect-ratio mobile (anti-CLS shift)
   Anti-regression : Sections 20-31 preservees (specificite 0,3,0)
   ============================================================ */

/* ---------- QUICKWIN 1 — Anti-CLS portraits + images ---------- */
body.imse-theme .imse-home-bio__portrait {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 280px;
    height: auto;
    object-fit: cover;
}

body.imse-theme .imse-w1-portrait-img {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 240px;
    height: auto;
    object-fit: cover;
}

/* ---------- QUICKWIN 2 — content-visibility below-fold ---------- */
/* Reduit cout layout/paint hors viewport initial.
   Application defensive sur sections lourdes pages communes : */
body.imse-theme .commune-faq,
body.imse-theme .commune-voisines,
body.imse-theme .section-data,
body.imse-theme .cta-final {
    content-visibility: auto;
    contain-intrinsic-size: auto 500px;
}

/* Pages communes : section vivre (long content) */
body.imse-theme .section-vivre.narrative-body {
    content-visibility: auto;
    contain-intrinsic-size: auto 1200px;
}

/* ---------- QUICKWIN 3 — Hero banner aspect-ratio mobile ---------- */
/* Anti-CLS shift quand le hero-banner background-image arrive en async */
@media (max-width: 768px) {
    body.imse-theme .imse-hero-banner--home {
        min-height: 70vh;
        aspect-ratio: auto;
    }

    /* Hero commune (pages communes) : fix dimensions explicites mobile */
    body.imse-theme .imse-hero.hero-commune {
        min-height: auto;
    }
    body.imse-theme .imse-hero.hero-commune .hero-photo {
        position: absolute;
        inset: 0;
        z-index: 0;
    }
}

/* ============================================================
   Section 32 — Fin
   Anti-CLS aspect-ratio portraits + content-visibility below-fold
   + hero banner dimensions explicites.
   Pas de regression Sections 20-31.
   ============================================================ */

/* ============================================================
   Section 33 — STOP 4 Etape F · Page jeu-concours
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-02 nuit
   Scope : styles page-jeu-concours.php (hero + etapes + lot + form + reglement)
   Palette empire navy/gold/cream stricte
   ============================================================ */

/* ===== HERO ===== */
body.imse-theme .imse-concours-hero {
    background: linear-gradient(135deg, #0F2236 0%, #1E3A5F 50%, #0F2236 100%);
    color: #FAF4E5;
    padding: 80px 24px 60px;
    text-align: center;
}
body.imse-theme .imse-concours-hero__inner {
    max-width: 820px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-hero__eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #F4A340;
    margin-bottom: 1.25rem;
}
body.imse-theme .imse-concours-hero__h1 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 2.2rem;
    line-height: 1.2;
    margin: 0 0 1rem;
    font-weight: 600;
}
body.imse-theme .imse-concours-hero__h1 em {
    font-style: normal;
    color: #F4A340;
}
body.imse-theme .imse-concours-hero__lede {
    font-size: 1.1rem;
    line-height: 1.55;
    color: rgba(250, 244, 229, 0.92);
    margin: 0 0 2rem;
}
body.imse-theme .imse-concours-hero__cta-wrap {
    margin-top: 1.5rem;
}

/* ===== BTNS ===== */
body.imse-theme .imse-concours-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.25s ease;
    cursor: pointer;
    border: 2px solid transparent;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
body.imse-theme .imse-concours-btn--gold {
    background: #F4A340;
    color: #0F2236;
}
body.imse-theme .imse-concours-btn--gold:hover {
    background: #fff;
    color: #0F2236;
    border-color: #F4A340;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(244, 163, 64, 0.35);
}
body.imse-theme .imse-concours-btn--ghost {
    background: transparent;
    color: #0F2236;
    border-color: rgba(15, 34, 54, 0.30);
}
body.imse-theme .imse-concours-btn--ghost:hover {
    border-color: #F4A340;
    background: rgba(244, 163, 64, 0.06);
}
body.imse-theme .imse-concours-btn--submit {
    width: 100%;
    margin-top: 16px;
}

/* ===== ETAPES ===== */
body.imse-theme .imse-concours-etapes {
    background: #FAF4E5;
    padding: 60px 24px;
}
body.imse-theme .imse-concours-etapes__inner {
    max-width: 1100px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-etapes__h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.85rem;
    color: #0F2236;
    text-align: center;
    margin: 0 0 2.5rem;
}
body.imse-theme .imse-concours-etapes__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}
@media (min-width: 769px) {
    body.imse-theme .imse-concours-etapes__list {
        grid-template-columns: repeat(3, 1fr);
    }
}
body.imse-theme .imse-concours-etapes__item {
    background: #fff;
    padding: 28px 24px;
    border-radius: 12px;
    border: 1px solid rgba(15, 34, 54, 0.08);
    text-align: center;
}
body.imse-theme .imse-concours-etapes__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #F4A340;
    color: #0F2236;
    font-family: 'Fraunces', serif;
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 16px;
}
body.imse-theme .imse-concours-etapes__h3 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.25rem;
    color: #0F2236;
    margin: 0 0 8px;
}
body.imse-theme .imse-concours-etapes__item p {
    font-size: 0.95rem;
    line-height: 1.55;
    color: rgba(15, 34, 54, 0.85);
    margin: 0;
}

/* ===== LOT ===== */
body.imse-theme .imse-concours-lot {
    background: #fff;
    padding: 70px 24px;
    text-align: center;
}
body.imse-theme .imse-concours-lot__inner {
    max-width: 820px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-lot__eyebrow {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #F4A340;
    margin-bottom: 1rem;
}
body.imse-theme .imse-concours-lot__h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 2rem;
    color: #0F2236;
    margin: 0 0 1rem;
}
body.imse-theme .imse-concours-lot__h2 em {
    font-style: normal;
    color: #F4A340;
}
body.imse-theme .imse-concours-lot__lede {
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(15, 34, 54, 0.85);
    margin: 0 0 1rem;
}
body.imse-theme .imse-concours-lot__valeur {
    font-size: 0.95rem;
    color: rgba(15, 34, 54, 0.75);
}

/* ===== FORM ===== */
body.imse-theme .imse-concours-form-section {
    background: #FCF6E7;
    padding: 70px 24px;
}
body.imse-theme .imse-concours-form-section__inner {
    max-width: 620px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-form-section__h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.85rem;
    color: #0F2236;
    text-align: center;
    margin: 0 0 0.5rem;
}
body.imse-theme .imse-concours-form-section__lede {
    text-align: center;
    color: rgba(15, 34, 54, 0.78);
    margin: 0 0 2rem;
}
body.imse-theme .imse-concours-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 24px;
    font-weight: 600;
}
body.imse-theme .imse-concours-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 24px;
}
body.imse-theme .imse-concours-form {
    background: #fff;
    border: 1px solid rgba(15, 34, 54, 0.10);
    border-radius: 12px;
    padding: 28px 24px;
    box-shadow: 0 6px 24px rgba(15, 34, 54, 0.06);
}
body.imse-theme .imse-concours-form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
@media (min-width: 480px) {
    body.imse-theme .imse-concours-form__row {
        grid-template-columns: 1fr 1fr;
    }
}
body.imse-theme .imse-concours-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
body.imse-theme .imse-concours-form__label {
    font-size: 0.92rem;
    font-weight: 500;
    color: #0F2236;
    margin-bottom: 4px;
}
body.imse-theme .imse-concours-form input[type="text"],
body.imse-theme .imse-concours-form input[type="email"],
body.imse-theme .imse-concours-form input[type="tel"],
body.imse-theme .imse-concours-form select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(15, 34, 54, 0.15);
    border-radius: 8px;
    font-size: 16px;
    background: #FCF6E7;
    color: #0F2236;
    transition: all 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}
body.imse-theme .imse-concours-form input:focus,
body.imse-theme .imse-concours-form select:focus {
    outline: none;
    background: #fff;
    border-color: #F4A340;
    box-shadow: 0 0 0 4px rgba(244, 163, 64, 0.20);
}
body.imse-theme .imse-concours-form__checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 16px 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: rgba(15, 34, 54, 0.78);
}
body.imse-theme .imse-concours-form__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-top: 2px;
    accent-color: #F4A340;
    cursor: pointer;
}
body.imse-theme .imse-concours-form__checkbox a {
    color: #F4A340;
    text-decoration: underline;
}
body.imse-theme .imse-concours-form__legal {
    text-align: center;
    font-size: 0.82rem;
    color: rgba(15, 34, 54, 0.65);
    margin-top: 16px;
}

/* ===== REGLEMENT ===== */
body.imse-theme .imse-concours-reglement {
    background: #fff;
    padding: 60px 24px;
}
body.imse-theme .imse-concours-reglement__inner {
    max-width: 820px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-reglement__h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.6rem;
    color: #0F2236;
    text-align: center;
    margin: 0 0 1.5rem;
}
body.imse-theme .imse-concours-reglement__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.imse-theme .imse-concours-reglement__list li {
    padding: 12px 0;
    border-bottom: 1px solid rgba(15, 34, 54, 0.08);
    font-size: 0.98rem;
    line-height: 1.55;
    color: rgba(15, 34, 54, 0.85);
}
body.imse-theme .imse-concours-reglement__list li:last-child {
    border-bottom: none;
}
body.imse-theme .imse-concours-reglement__list strong {
    color: #0F2236;
}

/* ===== CROSS-SELL ===== */
body.imse-theme .imse-concours-crosssell {
    background: #0F2236;
    color: #FAF4E5;
    padding: 60px 24px;
    text-align: center;
}
body.imse-theme .imse-concours-crosssell__inner {
    max-width: 820px;
    margin: 0 auto;
}
body.imse-theme .imse-concours-crosssell__h2 {
    font-family: 'Fraunces', 'DM Serif Display', Georgia, serif;
    font-size: 1.85rem;
    color: #FAF4E5;
    margin: 0 0 1rem;
}
body.imse-theme .imse-concours-crosssell__lede {
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(250, 244, 229, 0.88);
    margin: 0 0 2rem;
}
body.imse-theme .imse-concours-crosssell__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}
body.imse-theme .imse-concours-crosssell .imse-concours-btn--ghost {
    color: #FAF4E5;
    border-color: rgba(250, 244, 229, 0.30);
}
body.imse-theme .imse-concours-crosssell .imse-concours-btn--ghost:hover {
    border-color: #F4A340;
    background: rgba(244, 163, 64, 0.08);
    color: #FAF4E5;
}

/* ===== SIGNATURE ===== */
body.imse-theme .imse-concours-signature {
    background: #FAF4E5;
    padding: 40px 24px;
    text-align: center;
    font-size: 0.9rem;
    color: rgba(15, 34, 54, 0.75);
}
body.imse-theme .imse-concours-signature a {
    color: #F4A340;
    text-decoration: none;
    font-weight: 600;
}

/* ===== MOBILE ===== */
@media (max-width: 768px) {
    body.imse-theme .imse-concours-hero { padding: 60px 20px 50px; }
    body.imse-theme .imse-concours-hero__h1 { font-size: 1.75rem; }
    body.imse-theme .imse-concours-hero__lede { font-size: 1rem; }
    body.imse-theme .imse-concours-etapes__h2,
    body.imse-theme .imse-concours-lot__h2,
    body.imse-theme .imse-concours-form-section__h2,
    body.imse-theme .imse-concours-crosssell__h2 { font-size: 1.45rem; }
    body.imse-theme .imse-concours-form { padding: 20px 18px; }
}

/* ============================================================
   Section 34 — Polish pré-bascule · Page Contact 60 communes grid
   SEAL : EMPIRE-2026-06-01-MV7E
   Date : 2026-06-02 PM
   Scope : Refonte Zone d'intervention page Contact (chips 60 communes)
   ============================================================ */

body.imse-theme .imse-contact-communes-grid {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 1rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

@media (min-width: 769px) {
    body.imse-theme .imse-contact-communes-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
}

body.imse-theme .imse-contact-communes-grid li {
    margin: 0;
    padding: 0;
}

body.imse-theme .imse-contact-communes-grid .commune-chip {
    display: block;
    padding: 8px 12px;
    background: rgba(244, 163, 64, 0.08);
    border: 1px solid rgba(244, 163, 64, 0.25);
    border-radius: 6px;
    color: #0F2236;
    font-size: 0.88rem;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.3;
    transition: all 0.2s ease;
    word-break: break-word;
    hyphens: auto;
}

body.imse-theme .imse-contact-communes-grid .commune-chip:hover,
body.imse-theme .imse-contact-communes-grid .commune-chip:focus-visible {
    background: #F4A340;
    border-color: #F4A340;
    color: #0F2236;
    transform: translateX(2px);
    box-shadow: 0 2px 8px rgba(244, 163, 64, 0.30);
    text-decoration: none;
}

body.imse-theme .imse-contact-communes-grid .commune-chip:focus-visible {
    outline: 3px solid rgba(244, 163, 64, 0.4);
    outline-offset: 2px;
}

/* Mobile : font slightly smaller for long names */
@media (max-width: 480px) {
    body.imse-theme .imse-contact-communes-grid .commune-chip {
        font-size: 0.82rem;
        padding: 7px 10px;
    }
}
/* ========================================================================= */
/* FIN imse-v75-greffes.css — 8 greffes BSA + palette empire + responsive    */
/* ========================================================================= */

/* ============================================================
   Section 35 — Refonte jeu-concours · Design empire premium
   SEAL : EMPIRE-2026-06-02-0V8T
   Date : 2026-06-03
   Scope : Refonte complete page /jeu-concours/ + /jeu-concours/merci/
   Prefixe : .imse-jc- (cohabitation propre Section 33 legacy .imse-concours-)
   Palette stricte navy #0F2236 / cream #F5EBD9 / cream-light #FCF6E7 / gold #E89030
   Style form box : herite STOP 4.3 TER (form box blanc bordé + cream-light bg + shadow)
   ============================================================ */

/* ===== TOKENS LOCAUX ===== */
body.imse-theme .imse-jc-main {
    --jc-navy: #0F2236;
    --jc-navy-soft: #1B3A5B;
    --jc-cream: #F5EBD9;
    --jc-cream-light: #FCF6E7;
    --jc-gold: #E89030;
    --jc-gold-light: #F4A340;
    --jc-text-on-cream: #0F2236;
    --jc-text-on-navy: #F5EBD9;
    --jc-text-muted: rgba(15, 34, 54, 0.72);
    --jc-border-soft: rgba(15, 34, 54, 0.10);
    --jc-shadow-soft: 0 6px 24px rgba(15, 34, 54, 0.06);
    color: var(--jc-text-on-cream);
}

/* ===== EYEBROW / H2 PARTAGES ===== */
body.imse-theme .imse-jc-eyebrow {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--jc-gold);
    margin-bottom: 1.25rem;
}
body.imse-theme .imse-jc-eyebrow--on-navy {
    color: var(--jc-gold-light);
}
body.imse-theme .imse-jc-section-h2 {
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: clamp(1.75rem, 4.5vw, 2.4rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--jc-navy);
    margin: 0 0 1rem;
    text-align: center;
}
body.imse-theme .imse-jc-section-h2 em {
    font-style: italic;
    color: var(--jc-gold);
}
body.imse-theme .imse-jc-section-h2--on-navy {
    color: var(--jc-text-on-navy);
}

/* ===== BTNS ===== */
body.imse-theme .imse-jc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 30px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.25s ease;
    cursor: pointer;
    border: 2px solid transparent;
    letter-spacing: 0.04em;
    line-height: 1.2;
    min-height: 48px;
}
body.imse-theme .imse-jc-btn--gold {
    background: var(--jc-gold);
    color: var(--jc-navy);
    box-shadow: 0 4px 14px rgba(232, 144, 48, 0.30);
}
body.imse-theme .imse-jc-btn--gold:hover,
body.imse-theme .imse-jc-btn--gold:focus-visible {
    background: #fff;
    color: var(--jc-navy);
    border-color: var(--jc-gold);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(232, 144, 48, 0.40);
}
body.imse-theme .imse-jc-btn--ghost {
    background: transparent;
    color: var(--jc-navy);
    border-color: rgba(15, 34, 54, 0.20);
}
body.imse-theme .imse-jc-btn--ghost:hover,
body.imse-theme .imse-jc-btn--ghost:focus-visible {
    border-color: var(--jc-gold);
    background: rgba(232, 144, 48, 0.06);
    color: var(--jc-navy);
}
body.imse-theme .imse-jc-btn--hero {
    padding: 16px 36px;
    font-size: 1.02rem;
}
body.imse-theme .imse-jc-btn--submit {
    width: 100%;
    padding: 16px 28px;
    font-size: 1.05rem;
    margin-top: 1rem;
}
body.imse-theme .imse-jc-btn--card {
    width: 100%;
    margin-top: auto;
}

/* ===== WAVES SVG ===== */
body.imse-theme .imse-jc-wave {
    position: relative;
    margin-bottom: -1px;
    line-height: 0;
    overflow: hidden;
}
body.imse-theme .imse-jc-wave svg {
    display: block;
    width: 100%;
    height: 60px;
}
@media (max-width: 768px) {
    body.imse-theme .imse-jc-wave svg {
        height: 36px;
    }
}

/* ============================================================
   SECTION 1 — HERO
   ============================================================ */
body.imse-theme .imse-jc-hero {
    background: linear-gradient(135deg, var(--jc-navy) 0%, var(--jc-navy-soft) 50%, var(--jc-navy) 100%);
    color: var(--jc-text-on-navy);
    padding: 64px 24px 40px;
    position: relative;
}
body.imse-theme .imse-jc-hero__inner {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero {
        padding: 90px 24px 80px;
    }
    body.imse-theme .imse-jc-hero__inner {
        grid-template-columns: 1.1fr 1fr;
        gap: 48px;
    }
}
body.imse-theme .imse-jc-hero__visual {
    order: -1;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero__visual {
        order: 2;
    }
}
body.imse-theme .imse-jc-hero__visual img,
body.imse-theme .imse-jc-hero__svg svg {
    width: 100%;
    height: auto;
    display: block;
}
body.imse-theme .imse-jc-hero__content {
    text-align: center;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero__content {
        text-align: left;
    }
}
body.imse-theme .imse-jc-hero__eyebrow {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--jc-gold-light);
    margin-bottom: 1.25rem;
}
body.imse-theme .imse-jc-hero__h1 {
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: clamp(2rem, 6vw, 3rem);
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 1.25rem;
    color: var(--jc-text-on-navy);
}
body.imse-theme .imse-jc-hero__h1 em {
    font-style: italic;
    color: var(--jc-gold-light);
}
body.imse-theme .imse-jc-hero__lede {
    font-size: 1.1rem;
    line-height: 1.55;
    color: rgba(245, 235, 217, 0.92);
    margin: 0 0 1.75rem;
    max-width: 540px;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero__lede {
        margin-left: 0;
        margin-right: 0;
    }
}
@media (max-width: 899px) {
    body.imse-theme .imse-jc-hero__lede {
        margin-left: auto;
        margin-right: auto;
    }
}
body.imse-theme .imse-jc-hero__badges {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
}
@media (min-width: 600px) {
    body.imse-theme .imse-jc-hero__badges {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 14px;
    }
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero__badges {
        justify-content: flex-start;
    }
}
body.imse-theme .imse-jc-hero__badges li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(232, 144, 48, 0.14);
    border: 1px solid rgba(232, 144, 48, 0.30);
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--jc-text-on-navy);
}
body.imse-theme .imse-jc-hero__badge-icon {
    font-size: 1.1em;
}
body.imse-theme .imse-jc-hero__cta-wrap {
    display: flex;
    justify-content: center;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-hero__cta-wrap {
        justify-content: flex-start;
    }
}

/* ============================================================
   SECTION 2 — ETAPES (cream bg)
   ============================================================ */
body.imse-theme .imse-jc-etapes {
    background: var(--jc-cream);
    padding: 70px 24px 50px;
    text-align: center;
    position: relative;
}
body.imse-theme .imse-jc-etapes__inner {
    max-width: 1100px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-etapes__list {
    list-style: none;
    padding: 0;
    margin: 2.5rem 0 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
@media (min-width: 769px) {
    body.imse-theme .imse-jc-etapes__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 28px;
    }
}
body.imse-theme .imse-jc-etape {
    background: #fff;
    padding: 32px 24px;
    border-radius: 14px;
    border: 1px solid var(--jc-border-soft);
    box-shadow: var(--jc-shadow-soft);
    position: relative;
    text-align: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.imse-theme .imse-jc-etape:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 32px rgba(15, 34, 54, 0.10);
}
body.imse-theme .imse-jc-etape__num {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--jc-gold);
    color: var(--jc-navy);
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(232, 144, 48, 0.35);
}
body.imse-theme .imse-jc-etape__icon {
    margin: 12px auto 16px;
    display: flex;
    justify-content: center;
}
body.imse-theme .imse-jc-etape__h3 {
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--jc-navy);
    margin: 0 0 10px;
}
body.imse-theme .imse-jc-etape__desc {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--jc-text-muted);
    margin: 0;
}

/* ============================================================
   SECTION 3 — LOT (navy bg, split layout)
   ============================================================ */
body.imse-theme .imse-jc-lot {
    background: var(--jc-navy);
    color: var(--jc-text-on-navy);
    padding: 80px 24px 60px;
    position: relative;
}
body.imse-theme .imse-jc-lot__inner {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-lot__inner {
        grid-template-columns: 1fr 1fr;
        gap: 56px;
    }
}
body.imse-theme .imse-jc-lot__visual {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.30);
    max-width: 460px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-lot__visual img,
body.imse-theme .imse-jc-lot__svg svg {
    width: 100%;
    height: auto;
    display: block;
}
body.imse-theme .imse-jc-lot__content .imse-jc-eyebrow {
    color: var(--jc-gold-light);
}
body.imse-theme .imse-jc-lot__content .imse-jc-section-h2 {
    color: var(--jc-text-on-navy);
    text-align: center;
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-lot__content .imse-jc-section-h2 {
        text-align: left;
    }
    body.imse-theme .imse-jc-lot__content {
        text-align: left;
    }
}
body.imse-theme .imse-jc-lot__content {
    text-align: center;
}
body.imse-theme .imse-jc-lot__lede {
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(245, 235, 217, 0.88);
    margin: 0 0 1.5rem;
}
body.imse-theme .imse-jc-lot__features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
body.imse-theme .imse-jc-lot__features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--jc-text-on-navy);
}
body.imse-theme .imse-jc-check {
    color: var(--jc-gold-light);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 2px;
}

/* ============================================================
   SECTION 4 — FORMULAIRE (cream-light bg + form box blanc bordé)
   Style verrouillé STOP 4.3 TER
   ============================================================ */
body.imse-theme .imse-jc-form-section {
    background: var(--jc-cream-light);
    padding: 80px 24px 60px;
    text-align: center;
    position: relative;
}
body.imse-theme .imse-jc-form-section__inner {
    max-width: 600px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-form-section__lede {
    color: var(--jc-text-muted);
    margin: 0 0 2rem;
    font-size: 1rem;
    line-height: 1.55;
}

/* Form box blanc bordé (style verrouillé STOP 4.3 TER) */
body.imse-theme .imse-jc-form-box {
    background: #fff;
    border: 1px solid rgba(15, 34, 54, 0.10);
    border-radius: 12px;
    padding: 28px 24px;
    box-shadow: 0 6px 24px rgba(15, 34, 54, 0.06);
    text-align: left;
    margin-top: 0.5rem;
}
@media (min-width: 600px) {
    body.imse-theme .imse-jc-form-box {
        padding: 36px 32px;
    }
}

/* Honeypot — caché visuellement mais accessible a11y */
body.imse-theme .imse-jc-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Messages succes/erreur */
body.imse-theme .imse-jc-msg {
    padding: 14px 18px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-weight: 500;
    font-size: 0.95rem;
    text-align: left;
}
body.imse-theme .imse-jc-msg--error {
    background: #fdecea;
    color: #8a1f10;
    border: 1px solid #f5c2bb;
}
body.imse-theme .imse-jc-msg--success {
    background: #e4f4e8;
    color: #195226;
    border: 1px solid #b8dfc1;
}

/* Fieldset + legend */
body.imse-theme .imse-jc-fieldset {
    border: none;
    padding: 0;
    margin: 0 0 24px;
}
body.imse-theme .imse-jc-fieldset:last-of-type {
    margin-bottom: 0;
}
body.imse-theme .imse-jc-legend {
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--jc-gold);
    margin: 0 0 14px;
    padding: 0;
}

/* Form row + field */
body.imse-theme .imse-jc-form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
@media (min-width: 500px) {
    body.imse-theme .imse-jc-form__row--2col {
        grid-template-columns: 1fr 1fr;
    }
}
body.imse-theme .imse-jc-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
body.imse-theme .imse-jc-form__field:last-child {
    margin-bottom: 0;
}
body.imse-theme .imse-jc-form__row .imse-jc-form__field {
    margin-bottom: 0;
}
body.imse-theme .imse-jc-form__label {
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--jc-navy);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
body.imse-theme .imse-jc-form__hint {
    font-size: 0.82rem;
    color: var(--jc-text-muted);
    margin-bottom: 4px;
    font-style: italic;
}
body.imse-theme .imse-jc-req {
    color: var(--jc-gold);
    font-weight: 700;
}
body.imse-theme .imse-jc-emoji {
    font-size: 1.05em;
}

/* Inputs */
body.imse-theme .imse-jc-form input[type="text"],
body.imse-theme .imse-jc-form input[type="email"],
body.imse-theme .imse-jc-form input[type="tel"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(15, 34, 54, 0.15);
    border-radius: 8px;
    font-size: 16px;
    background: var(--jc-cream-light);
    color: var(--jc-navy);
    transition: all 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    font-family: inherit;
    line-height: 1.4;
}
body.imse-theme .imse-jc-form input::placeholder {
    color: rgba(15, 34, 54, 0.45);
}
body.imse-theme .imse-jc-form input:focus {
    outline: none;
    background: #fff;
    border-color: var(--jc-gold);
    box-shadow: 0 0 0 4px rgba(232, 144, 48, 0.20);
}
body.imse-theme .imse-jc-form input:invalid:not(:placeholder-shown):not(:focus) {
    border-color: rgba(207, 78, 47, 0.50);
}

/* Radios */
body.imse-theme .imse-jc-radios {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 6px;
}
body.imse-theme .imse-jc-radio {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: var(--jc-cream-light);
    border: 1px solid rgba(15, 34, 54, 0.10);
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.92rem;
    line-height: 1.4;
    color: var(--jc-navy);
    transition: all 0.18s ease;
}
body.imse-theme .imse-jc-radio:hover {
    border-color: rgba(232, 144, 48, 0.50);
    background: rgba(232, 144, 48, 0.04);
}
body.imse-theme .imse-jc-radio input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    flex-shrink: 0;
    accent-color: var(--jc-gold);
    cursor: pointer;
}
body.imse-theme .imse-jc-radio input[type="radio"]:checked + span {
    font-weight: 600;
}
body.imse-theme .imse-jc-radio:has(input:checked) {
    background: rgba(232, 144, 48, 0.08);
    border-color: var(--jc-gold);
}

/* Checkboxes */
body.imse-theme .imse-jc-form__checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 14px 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--jc-navy);
    cursor: pointer;
}
body.imse-theme .imse-jc-form__checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin-top: 1px;
    accent-color: var(--jc-gold);
    cursor: pointer;
    flex-shrink: 0;
}
body.imse-theme .imse-jc-form__checkbox a {
    color: var(--jc-gold);
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.imse-theme .imse-jc-form__checkbox a:hover {
    color: var(--jc-navy);
}
body.imse-theme .imse-jc-form__checkbox--optional {
    color: var(--jc-text-muted);
    font-size: 0.85rem;
}
body.imse-theme .imse-jc-form__checkbox--optional em {
    color: rgba(15, 34, 54, 0.55);
    font-size: 0.92em;
    font-style: italic;
}

/* Legal mention */
body.imse-theme .imse-jc-form__legal {
    text-align: center;
    font-size: 0.82rem;
    color: var(--jc-text-muted);
    margin: 16px 0 0;
    line-height: 1.5;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* ============================================================
   SECTION 5 — REGLEMENT (cream bg + FAQ accordeon)
   ============================================================ */
body.imse-theme .imse-jc-reglement {
    background: var(--jc-cream);
    padding: 70px 24px 50px;
    text-align: center;
    position: relative;
}
body.imse-theme .imse-jc-reglement__inner {
    max-width: 820px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-reglement__lede {
    color: var(--jc-text-muted);
    margin: 0 0 2rem;
    font-size: 1rem;
}

/* FAQ accordion (style verrouillé Section 29) */
body.imse-theme .imse-jc-faq {
    text-align: left;
    margin-top: 1rem;
}
body.imse-theme .imse-jc-faq__item {
    background: #fff;
    border: 1px solid var(--jc-border-soft);
    border-radius: 10px;
    margin-bottom: 12px;
    box-shadow: var(--jc-shadow-soft);
    overflow: hidden;
    transition: all 0.2s ease;
}
body.imse-theme .imse-jc-faq__item[open] {
    border-color: rgba(232, 144, 48, 0.40);
}
body.imse-theme .imse-jc-faq__q {
    cursor: pointer;
    padding: 18px 50px 18px 22px;
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--jc-navy);
    list-style: none;
    position: relative;
    line-height: 1.4;
    transition: color 0.2s ease;
}
body.imse-theme .imse-jc-faq__q::-webkit-details-marker { display: none; }
body.imse-theme .imse-jc-faq__q::after {
    content: '+';
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    background: rgba(232, 144, 48, 0.12);
    border-radius: 50%;
    color: var(--jc-gold);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease, background 0.2s ease;
}
body.imse-theme .imse-jc-faq__item[open] .imse-jc-faq__q::after {
    transform: translateY(-50%) rotate(45deg);
    background: var(--jc-gold);
    color: #fff;
}
body.imse-theme .imse-jc-faq__q:hover {
    color: var(--jc-gold);
}
body.imse-theme .imse-jc-faq__a {
    padding: 0 22px 20px;
    font-size: 0.98rem;
    line-height: 1.65;
    color: var(--jc-text-muted);
}
body.imse-theme .imse-jc-faq__a p {
    margin: 0 0 10px;
}
body.imse-theme .imse-jc-faq__a p:last-child { margin-bottom: 0; }
body.imse-theme .imse-jc-faq__a a {
    color: var(--jc-gold);
    text-decoration: underline;
}

/* ============================================================
   SECTION 6 — CROSS-SELL (navy bg, 2 cards)
   ============================================================ */
body.imse-theme .imse-jc-crosssell {
    background: var(--jc-navy);
    color: var(--jc-text-on-navy);
    padding: 80px 24px 70px;
    text-align: center;
    position: relative;
}
body.imse-theme .imse-jc-crosssell__inner {
    max-width: 1100px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-cards-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 2.5rem;
}
@media (min-width: 700px) {
    body.imse-theme .imse-jc-cards-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 28px;
    }
}
@media (min-width: 900px) {
    body.imse-theme .imse-jc-cards-grid--3col {
        grid-template-columns: repeat(3, 1fr);
    }
}
body.imse-theme .imse-jc-card {
    background: var(--jc-cream-light);
    padding: 32px 24px;
    border-radius: 14px;
    border: 1px solid rgba(245, 235, 217, 0.18);
    text-align: center;
    color: var(--jc-navy);
    display: flex;
    flex-direction: column;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.18);
}
body.imse-theme .imse-jc-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}
body.imse-theme .imse-jc-card__icon {
    margin: 0 auto 14px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(232, 144, 48, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}
body.imse-theme .imse-jc-card__h3 {
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--jc-navy);
    margin: 0 0 10px;
    line-height: 1.3;
}
body.imse-theme .imse-jc-card__desc {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--jc-text-muted);
    margin: 0 0 20px;
    flex-grow: 1;
}

/* ============================================================
   SIGNATURE (mini-strip)
   ============================================================ */
body.imse-theme .imse-jc-signature {
    background: var(--jc-cream-light);
    padding: 32px 24px;
    text-align: center;
    font-size: 0.85rem;
    color: var(--jc-text-muted);
    line-height: 1.6;
    border-top: 1px solid rgba(15, 34, 54, 0.08);
}
body.imse-theme .imse-jc-signature p {
    margin: 0;
    max-width: 760px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-signature strong {
    color: var(--jc-navy);
}
body.imse-theme .imse-jc-signature a {
    color: var(--jc-gold);
    text-decoration: none;
    font-weight: 600;
}
body.imse-theme .imse-jc-signature a:hover {
    text-decoration: underline;
}

/* ============================================================
   PAGE MERCI — SECTION 7 (confirmation post-submission)
   ============================================================ */
body.imse-theme .imse-jc-merci-hero {
    background: linear-gradient(135deg, var(--jc-navy) 0%, var(--jc-navy-soft) 50%, var(--jc-navy) 100%);
    color: var(--jc-text-on-navy);
    padding: 90px 24px 70px;
    text-align: center;
    position: relative;
}
body.imse-theme .imse-jc-merci-hero__inner {
    max-width: 720px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-merci-hero__visual {
    margin: 0 auto 1.75rem;
    max-width: 280px;
}
body.imse-theme .imse-jc-merci-hero__visual img,
body.imse-theme .imse-jc-merci-hero__svg svg {
    width: 100%;
    height: auto;
    display: block;
}
body.imse-theme .imse-jc-merci-hero .imse-jc-eyebrow {
    color: var(--jc-gold-light);
}
body.imse-theme .imse-jc-merci-hero__h1 {
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: clamp(2rem, 5.5vw, 2.8rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--jc-text-on-navy);
    margin: 0 0 1rem;
}
body.imse-theme .imse-jc-merci-hero__lede {
    font-size: 1.1rem;
    line-height: 1.6;
    color: rgba(245, 235, 217, 0.90);
    margin: 0;
}
body.imse-theme .imse-jc-merci-hero__lede strong {
    color: var(--jc-gold-light);
}

body.imse-theme .imse-jc-merci-ctas {
    background: var(--jc-cream-light);
    padding: 70px 24px 60px;
    text-align: center;
}
body.imse-theme .imse-jc-merci-ctas__inner {
    max-width: 1120px;
    margin: 0 auto;
}
body.imse-theme .imse-jc-merci-ctas__lede {
    color: var(--jc-text-muted);
    margin: 0 0 1rem;
    font-size: 1rem;
}
body.imse-theme .imse-jc-merci-ctas .imse-jc-card {
    background: #fff;
    border-color: var(--jc-border-soft);
    box-shadow: var(--jc-shadow-soft);
}

/* Share buttons */
body.imse-theme .imse-jc-share {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: auto;
}
body.imse-theme .imse-jc-share__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    color: #fff;
    border: none;
    cursor: pointer;
}
body.imse-theme .imse-jc-share__btn svg {
    flex-shrink: 0;
}
body.imse-theme .imse-jc-share__btn--fb {
    background: #1877F2;
}
body.imse-theme .imse-jc-share__btn--fb:hover {
    background: #145fc1;
    transform: translateY(-1px);
}
body.imse-theme .imse-jc-share__btn--wa {
    background: #25D366;
}
body.imse-theme .imse-jc-share__btn--wa:hover {
    background: #1ea854;
    transform: translateY(-1px);
}
body.imse-theme .imse-jc-share__btn--mail {
    background: var(--jc-navy);
}
body.imse-theme .imse-jc-share__btn--mail:hover {
    background: var(--jc-navy-soft);
    transform: translateY(-1px);
}

/* ============================================================
   MOBILE FIRST FINE-TUNING (< 480px)
   ============================================================ */
@media (max-width: 480px) {
    body.imse-theme .imse-jc-hero {
        padding: 56px 18px 32px;
    }
    body.imse-theme .imse-jc-hero__badges li {
        padding: 7px 12px;
        font-size: 0.82rem;
    }
    body.imse-theme .imse-jc-etapes,
    body.imse-theme .imse-jc-reglement,
    body.imse-theme .imse-jc-merci-ctas {
        padding: 56px 18px 40px;
    }
    body.imse-theme .imse-jc-lot,
    body.imse-theme .imse-jc-form-section,
    body.imse-theme .imse-jc-crosssell {
        padding: 60px 18px 44px;
    }
    body.imse-theme .imse-jc-form-box {
        padding: 22px 18px;
    }
    body.imse-theme .imse-jc-faq__q {
        font-size: 0.98rem;
        padding: 16px 48px 16px 18px;
    }
    body.imse-theme .imse-jc-faq__a {
        padding: 0 18px 18px;
        font-size: 0.93rem;
    }
    body.imse-theme .imse-jc-card {
        padding: 26px 20px;
    }
    body.imse-theme .imse-jc-merci-hero {
        padding: 60px 18px 50px;
    }
    body.imse-theme .imse-jc-merci-hero__visual {
        max-width: 220px;
    }
}

/* ===== END Section 35 ===== */

/* ============================================================
   Section 36 — STOP jeu-concours BIS · Bannière homepage
   SEAL : EMPIRE-2026-06-03-36XB
   Date : 2026-06-03
   Scope : Bannière sticky top homepage uniquement (mu-plugin empire-imse-banner-concours.php)
   ============================================================ */

body.imse-theme .imse-jeu-concours-banner {
  --gold-primary: #E89030;
  --gold-light: #F4A340;
  --navy-primary: #0F2236;
  --cream-primary: #F5EBD9;

  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;
  background: linear-gradient(135deg, var(--gold-primary) 0%, var(--gold-light) 100%);
  color: var(--navy-primary);
  box-shadow: 0 2px 8px rgba(15, 34, 54, 0.15);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 0.85rem;
  line-height: 1.4;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

body.imse-theme .imse-jeu-concours-banner[hidden],
body.imse-theme .imse-jeu-concours-banner.is-closed {
  display: none;
}

body.imse-theme .imse-jeu-concours-banner__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: nowrap;
  padding: 8px 44px 8px 16px;
  color: var(--navy-primary);
  text-decoration: none;
  font-weight: 500;
  text-align: center;
  transition: background-color 0.2s ease;
  min-height: 40px;
}

body.imse-theme .imse-jeu-concours-banner__link:hover,
body.imse-theme .imse-jeu-concours-banner__link:focus {
  background-color: rgba(15, 34, 54, 0.05);
  color: var(--navy-primary);
  text-decoration: none;
}

body.imse-theme .imse-jeu-concours-banner__link:focus-visible {
  outline: 2px solid var(--navy-primary);
  outline-offset: -2px;
}

body.imse-theme .imse-jeu-concours-banner__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
  flex-shrink: 0;
}

body.imse-theme .imse-jeu-concours-banner__text-desktop {
  display: none;
}

body.imse-theme .imse-jeu-concours-banner__text-mobile {
  display: inline-block;
  color: var(--navy-primary);
}

body.imse-theme .imse-jeu-concours-banner__text-desktop strong,
body.imse-theme .imse-jeu-concours-banner__text-mobile strong {
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.imse-theme .imse-jeu-concours-banner__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
  margin-left: 4px;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

body.imse-theme .imse-jeu-concours-banner__link:hover .imse-jeu-concours-banner__arrow,
body.imse-theme .imse-jeu-concours-banner__link:focus .imse-jeu-concours-banner__arrow {
  transform: translateX(4px);
}

body.imse-theme .imse-jeu-concours-banner__close {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: var(--navy-primary);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

body.imse-theme .imse-jeu-concours-banner__close:hover,
body.imse-theme .imse-jeu-concours-banner__close:focus {
  background-color: rgba(15, 34, 54, 0.1);
  color: var(--navy-primary);
}

body.imse-theme .imse-jeu-concours-banner__close:focus-visible {
  outline: 2px solid var(--navy-primary);
  outline-offset: 2px;
}

/* ============================================================
   Section 36 — Desktop ≥ 769px
   ============================================================ */
@media (min-width: 769px) {
  body.imse-theme .imse-jeu-concours-banner {
    font-size: 0.9rem;
  }

  body.imse-theme .imse-jeu-concours-banner__link {
    padding: 11px 56px 11px 24px;
    gap: 10px;
    min-height: 44px;
  }

  body.imse-theme .imse-jeu-concours-banner__icon {
    font-size: 1.2rem;
  }

  body.imse-theme .imse-jeu-concours-banner__text-desktop {
    display: inline-block;
    color: var(--navy-primary);
  }

  body.imse-theme .imse-jeu-concours-banner__text-mobile {
    display: none;
  }

  body.imse-theme .imse-jeu-concours-banner__arrow {
    font-size: 1.1rem;
    margin-left: 6px;
  }

  body.imse-theme .imse-jeu-concours-banner__close {
    right: 12px;
    width: 32px;
    height: 32px;
    font-size: 1.4rem;
  }
}

/* ============================================================
   Section 36 — Print : masquer bannière
   ============================================================ */
@media print {
  body.imse-theme .imse-jeu-concours-banner {
    display: none;
  }
}

/* ============================================================
   Section 36 — Reduce motion : désactiver transitions
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  body.imse-theme .imse-jeu-concours-banner,
  body.imse-theme .imse-jeu-concours-banner__link,
  body.imse-theme .imse-jeu-concours-banner__arrow,
  body.imse-theme .imse-jeu-concours-banner__close {
    transition: none;
  }

  body.imse-theme .imse-jeu-concours-banner__link:hover .imse-jeu-concours-banner__arrow,
  body.imse-theme .imse-jeu-concours-banner__link:focus .imse-jeu-concours-banner__arrow {
    transform: none;
  }
}


/* ============================================================
   Section 37 — STOP jeu-concours BIS · Fixes contraste footer + bouton submit
   SEAL : EMPIRE-2026-06-03-36XB
   Date : 2026-06-03
   Scope :
     FIX 1 — Contraste footer (5ème occurrence — leçon empire GREP cascade)
     FIX 2 — Bouton "Je participe au tirage" plus gros + centré
   ============================================================ */

/* ------------------------------------------------------------
   FIX 1 — CONTRASTE FOOTER (anti-récidive 5ème bug)
   Cible : tous textes/liens enfants de .imse-site-footer
   Stratégie : spec 0,2,0 / 0,3,0 sans !important
   Palette : cream #F5EBD9 sur navy #0F2236 + gold #F4A340 hover
   ------------------------------------------------------------ */

/* Base : tous descendants texte → cream */
body.imse-theme .imse-site-footer,
body.imse-theme .imse-site-footer p,
body.imse-theme .imse-site-footer span,
body.imse-theme .imse-site-footer strong,
body.imse-theme .imse-site-footer li {
    color: #F5EBD9;
}

/* Headings footer (h3 brand + h4 colonnes + secteur title) */
body.imse-theme .imse-site-footer .imse-footer-heading,
body.imse-theme .imse-site-footer h3.imse-footer-heading,
body.imse-theme .imse-site-footer h4.imse-footer-heading,
body.imse-theme .imse-site-footer .imse-footer-secteur-title {
    color: #F5EBD9;
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* Identité brand (Julien Jehanno) */
body.imse-theme .imse-site-footer .imse-footer-identity-name {
    color: #F5EBD9;
    font-weight: 600;
}

body.imse-theme .imse-site-footer .imse-footer-identity-name strong {
    color: #F5EBD9;
}

/* Textes secondaires : statut + adresse → cream 85% */
body.imse-theme .imse-site-footer .imse-footer-identity-status,
body.imse-theme .imse-site-footer .imse-footer-identity-address {
    color: rgba(245, 235, 217, 0.85);
}

/* Contact tel + mailto → cream */
body.imse-theme .imse-site-footer .imse-footer-identity-contact,
body.imse-theme .imse-site-footer .imse-footer-identity-contact a {
    color: #F5EBD9;
}

/* TOUS liens footer → cream + underline subtil */
body.imse-theme .imse-site-footer a {
    color: #F5EBD9;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    text-decoration-color: rgba(245, 235, 217, 0.45);
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

/* Hover liens → gold + underline plus visible */
body.imse-theme .imse-site-footer a:hover,
body.imse-theme .imse-site-footer a:focus {
    color: #F4A340;
    text-decoration-color: #F4A340;
}

/* Focus-visible a11y : halo gold */
body.imse-theme .imse-site-footer a:focus-visible {
    outline: 2px solid #F4A340;
    outline-offset: 3px;
    border-radius: 2px;
}

/* Liste navigation + légal */
body.imse-theme .imse-site-footer .imse-footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

body.imse-theme .imse-site-footer .imse-footer-list li {
    color: #F5EBD9;
    margin-bottom: 0.5rem;
}

body.imse-theme .imse-site-footer .imse-footer-list li a {
    color: #F5EBD9;
}

/* Section secteur 60 communes : chips A-Z */
body.imse-theme .imse-site-footer .imse-footer-secteur {
    border-top: 1px solid rgba(245, 235, 217, 0.18);
    padding-top: 2rem;
    margin-top: 2rem;
}

body.imse-theme .imse-site-footer .imse-footer-secteur-title {
    color: #F5EBD9;
    margin-bottom: 1rem;
}

body.imse-theme .imse-site-footer .footer-secteur-communes a {
    color: rgba(245, 235, 217, 0.80);
    text-decoration: none;
    transition: color 180ms ease;
}

body.imse-theme .imse-site-footer .footer-secteur-communes a:hover,
body.imse-theme .imse-site-footer .footer-secteur-communes a:focus {
    color: #F4A340;
    text-decoration: underline;
    text-decoration-color: #F4A340;
    text-underline-offset: 3px;
}

body.imse-theme .imse-site-footer .footer-secteur-communes a:focus-visible {
    outline: 2px solid #F4A340;
    outline-offset: 2px;
    border-radius: 2px;
}

/* Icônes sociales : conteneur + liens */
body.imse-theme .imse-site-footer .imse-footer-social-icons a,
body.imse-theme .imse-site-footer .imse-footer-social-icons svg {
    color: #F5EBD9;
    fill: currentColor;
}

body.imse-theme .imse-site-footer .imse-footer-social-icons a:hover,
body.imse-theme .imse-site-footer .imse-footer-social-icons a:focus {
    color: #F4A340;
}

/* ------------------------------------------------------------
   FIX 2 — BOUTON "JE PARTICIPE AU TIRAGE" plus gros + centré
   Override Section 35 ligne 6503 → !important obligatoire
   Desktop ≥ 769px : 18px 40px, 1.15rem, min-h 56px, min-w 320px, max-w 420px
   Mobile < 769px  : 16px 24px, 1.05rem, width 100%, min-h 52px
   ------------------------------------------------------------ */

/* Base bouton submit (mobile-first) */
body.imse-theme .imse-jc-btn--submit {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    padding: 16px 24px !important;
    margin: 24px auto 12px !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    border-radius: 999px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease !important;
}

/* Parent flex centrage de secours */
body.imse-theme .imse-jc-form .imse-jc-btn--submit,
body.imse-theme .imse-jc-form-actions {
    text-align: center;
}

/* Hover : lift subtil */
body.imse-theme .imse-jc-btn--submit:hover,
body.imse-theme .imse-jc-btn--submit:focus {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(15, 34, 54, 0.18) !important;
}

/* Focus-visible a11y */
body.imse-theme .imse-jc-btn--submit:focus-visible {
    outline: 2px solid #F4A340 !important;
    outline-offset: 3px !important;
}

/* Active : retour position */
body.imse-theme .imse-jc-btn--submit:active {
    transform: translateY(0) !important;
    box-shadow: 0 4px 12px rgba(15, 34, 54, 0.14) !important;
}

/* Desktop ≥ 769px : bouton plus gros + centrage strict */
@media (min-width: 769px) {
    body.imse-theme .imse-jc-btn--submit {
        width: auto !important;
        min-width: 320px !important;
        max-width: 420px !important;
        min-height: 56px !important;
        padding: 18px 40px !important;
        margin: 32px auto 16px !important;
        font-size: 1.15rem !important;
    }
}

/* ============================================================
   FIN Section 37
   ============================================================ */