/* =============================================
   CONCIERGE ANGELS — LUXE THEME
   Remplace les templates Elementor
   ============================================= */

/* --- 1. VARIABLES & RESET --- */
:root {
    --color-bg:      #0b0b0b;
    --color-surface: #141414;
    --color-text:    #e0e0e0;
    --color-muted:   #aaa;
    --color-gold:    #D4AF37;
    --color-border:  #222;
    --font-heading:  'Marcellus', serif;
    --font-body:     'Inter', sans-serif;
    --font-accent:   'Playfair Display', serif;
    --nav-h:         80px;
    --max-content:   700px;
    --max-wide:      1200px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.9;
}

a { color: var(--color-gold); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/* --- 2. NAVIGATION --- */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(11, 11, 11, 0.97);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--color-border);
    height: var(--nav-h);
}

.nav-inner {
    max-width: var(--max-wide);
    margin: 0 auto;
    padding: 0 30px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 30px;
}

.nav-logo img {
    height: 45px;
    width: auto;
}

/* WordPress menu reset */
.nav-menu,
.nav-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-menu {
    display: flex;
    gap: 0;
    flex: 1;
}

.nav-menu > li {
    position: relative;
}

.nav-menu > li > a {
    color: var(--color-text);
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 8px 12px;
    display: block;
    transition: color 0.2s;
    white-space: nowrap;
}

.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-ancestor > a {
    color: var(--color-gold);
}

/* Dropdown */
.nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    background: #1a1a1a;
    border: 1px solid var(--color-border);
    border-top: 2px solid var(--color-gold);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: all 0.2s ease;
    padding: 8px 0;
}

.nav-menu > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-menu .sub-menu li a {
    color: var(--color-muted);
    font-size: 13px;
    padding: 10px 20px;
    display: block;
    transition: color 0.2s, background 0.2s;
}

.nav-menu .sub-menu li a:hover {
    color: var(--color-gold);
    background: rgba(255,255,255,0.03);
}

/* Sous-menu niveau 3 (desktop) */
.nav-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    margin-top: 0;
    border-top: 2px solid var(--color-gold);
}

.nav-menu .sub-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-menu .sub-menu li {
    position: relative;
}

/* Indicateur flèche pour les items avec enfants dans le sous-menu */
.nav-menu .sub-menu .menu-item-has-children > a::after {
    content: '›';
    float: right;
    color: var(--color-gold);
    margin-left: 8px;
}

/* Nav CTA téléphone */
.nav-cta {
    flex-shrink: 0;
    color: var(--color-gold);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    padding: 10px 20px;
    border: 1px solid var(--color-gold);
    white-space: nowrap;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-cta:hover {
    background: var(--color-gold);
    color: #000;
}

/* Hamburger */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    flex-direction: column;
    gap: 5px;
    flex-shrink: 0;
}

.nav-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-text);
    transition: all 0.3s;
}

.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- 3. HERO --- */

/* Accroche sous le H1 */
.hero-accroche {
    font-size: clamp(1rem, 2vw, 1.15rem);
    color: rgba(255,255,255,0.75);
    margin: 18px auto 0;
    max-width: 640px;
    font-weight: 300;
    line-height: 1.6;
}

/* Bénéfices clés dans le hero */
.hero-benefits {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 25px;
    flex-wrap: wrap;
    margin: 22px 0 0;
}

.hero-benefits li {
    color: rgba(255,255,255,0.85);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 7px;
}

.hero-benefits li i {
    color: var(--color-gold);
    font-size: 14px;
}

/* CTA ancre dans le hero */
.hero-cta-anchor {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    background: var(--color-gold);
    color: #000;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 15px 30px;
    text-decoration: none;
    transition: background 0.3s, transform 0.3s;
}

.hero-cta-anchor:hover {
    background: #fff;
    transform: translateY(2px);
}

.hero-cta-anchor i {
    animation: bounce-down 1.5s infinite;
}

@keyframes bounce-down {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(4px); }
}

.page-hero {
    height: 55vh;
    min-height: 320px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?q=80&w=2000&auto=format&fit=crop');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.72) 100%);
}

.hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 20px;
    max-width: 900px;
}

.hero-breadcrumb {
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    display: block;
    margin-bottom: 18px;
}

.hero-breadcrumb a {
    color: var(--color-gold);
    transition: opacity 0.2s;
}
.hero-breadcrumb a:hover { opacity: 0.7; }

.hero-title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 4vw, 3.2rem);
    color: #fff;
    line-height: 1.25;
    margin: 0;
    text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}

/* --- 3B. STRIP PLATEFORMES --- */
/* ══ PLATEFORMES STRIP — logos avec couleurs de marque ══ */
.platforms-strip {
    background: #0e0e0e;
    border-top: 1px solid rgba(255,255,255,.06);
    border-bottom: 1px solid rgba(255,255,255,.06);
    padding: 20px 24px;
}
.platforms-inner {
    max-width: var(--max-wide);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}
.platforms-label {
    color: #555;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-right: 4px;
}
.platforms-logos {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.platform-badge {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.6);
    font-size: .75rem;
    font-weight: 600;
    padding: 6px 14px 6px 10px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background .2s, border-color .2s, color .2s;
    letter-spacing: .01em;
}
.platform-badge:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #fff; }
.pb-svg { width: 16px; height: 16px; flex-shrink: 0; font-size: 14px; }

/* Couleurs de marque */
.pb-airbnb     { border-color: rgba(255,90,95,.3); }
.pb-airbnb:hover { border-color: #FF5A5F; color: #FF5A5F; }
.pb-airbnb .pb-svg { color: #FF5A5F; }

.pb-booking    { border-color: rgba(0,85,170,.3); }
.pb-booking:hover { border-color: #0057b8; color: #4ab3f4; }
.pb-booking .pb-svg { color: #0057b8; }

.pb-vrbo       { border-color: rgba(0,163,224,.25); }
.pb-vrbo:hover { border-color: #00a3e0; color: #00a3e0; }
.pb-vrbo .pb-svg { color: #00a3e0; }

.pb-expedia    { border-color: rgba(255,195,0,.25); }
.pb-expedia:hover { border-color: #ffc300; color: #ffc300; }
.pb-expedia .pb-svg { color: #ffc300; }

.pb-tripadvisor { border-color: rgba(52,168,83,.25); }
.pb-tripadvisor:hover { border-color: #34a853; color: #34a853; }
.pb-tripadvisor .pb-svg { color: #34a853; }

.pb-google     { border-color: rgba(66,133,244,.25); }
.pb-google:hover { border-color: #4285f4; color: #4285f4; }
.pb-google .pb-svg { color: #4285f4; }

.pb-leboncoin  { border-color: rgba(243,111,0,.25); }
.pb-leboncoin:hover { border-color: #f36f00; color: #f36f00; }
.pb-leboncoin .pb-svg { color: #f36f00; }

.pb-gites      { border-color: rgba(76,153,0,.25); }
.pb-gites:hover { border-color: #4c9900; color: #4c9900; }
.pb-gites .pb-svg { color: #4c9900; }

/* ══ VILLE DATA CARD — unique par ville ══════════════════ */
.ville-data-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* En-tête */
.vdc-header {
    background: linear-gradient(135deg, #1a1005 0%, #2c1f00 100%);
    border-bottom: 2px solid var(--color-gold);
    padding: 18px 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
.vdc-city-info { display: flex; flex-direction: column; gap: 3px; }
.vdc-city-name {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: #fff;
    font-weight: 700;
}
.vdc-type {
    font-size: .72rem;
    color: rgba(212,175,55,.8);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.vdc-rating {
    display: flex;
    align-items: center;
    gap: 3px;
    background: rgba(212,175,55,.12);
    border: 1px solid rgba(212,175,55,.3);
    padding: 5px 10px;
    border-radius: 4px;
    flex-shrink: 0;
}
.vdc-rating .fa-star { color: var(--color-gold); font-size: .8rem; }
.vdc-rating strong { color: #fff; font-size: .95rem; line-height: 1; }
.vdc-rating span { color: rgba(255,255,255,.5); font-size: .75rem; }

/* Stats 2×2 grid */
.vdc-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--color-border);
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}
.vdc-stat-item {
    background: var(--color-surface);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.vdc-stat-item strong {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    color: var(--color-text);
    font-weight: 700;
    line-height: 1;
}
.vdc-stat--accent strong { color: var(--color-gold); }
.vdc-stat-item span {
    font-size: .7rem;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Sections internes */
.vdc-section { padding: 14px 20px; border-bottom: 1px solid var(--color-border); }
.vdc-section:last-of-type { border-bottom: none; }
.vdc-section-title {
    font-size: .72rem;
    color: rgba(212,175,55,.9);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.vdc-section-title .fa-location-dot,
.vdc-section-title .fa-chart-bar { font-size: .7rem; }

/* Quartiers */
.vdc-quartiers {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.vdc-quartier {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .82rem;
    color: var(--color-text);
}
.vdc-q-rank {
    width: 18px;
    height: 18px;
    background: rgba(212,175,55,.15);
    border: 1px solid rgba(212,175,55,.3);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .65rem;
    font-weight: 700;
    color: var(--color-gold);
    flex-shrink: 0;
}

/* Saisonnalité — barres mensuelles */
.vdc-season {
    display: flex;
    gap: 4px;
    align-items: flex-end;
    height: 60px;
}
.vdc-month {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    height: 100%;
    justify-content: flex-end;
}
.vdc-bar-wrap {
    flex: 1;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.vdc-bar {
    width: 100%;
    min-height: 3px;
    background: rgba(212,175,55,.3);
    border-radius: 2px 2px 0 0;
    transition: background .2s;
}
.vdc-month--peak .vdc-bar { background: var(--color-gold); }
.vdc-mname {
    font-size: .58rem;
    color: var(--color-muted);
    letter-spacing: 0;
    line-height: 1;
}

/* CTA */
.vdc-cta {
    margin-top: auto;
    padding: 16px 20px;
    border-top: 1px solid var(--color-border);
    background: rgba(212,175,55,.04);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.vdc-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--color-gold);
    color: #1a1005;
    font-weight: 700;
    font-size: .85rem;
    padding: 12px 20px;
    text-decoration: none;
    transition: opacity .2s;
    letter-spacing: .02em;
}
.vdc-cta-btn:hover { opacity: .88; }
.vdc-cta-note {
    text-align: center;
    font-size: .72rem;
    color: var(--color-muted);
    margin: 0;
}
.vdc-cta-note strong { color: var(--color-text); }

/* Carte compacte (sections suivantes) */
.vdc-compact .vdc-stats { display: none; }
.vdc-trust-list {
    list-style: none;
    padding: 16px 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.vdc-trust-list li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: .82rem;
    color: var(--color-muted);
    border-bottom: 1px solid rgba(255,255,255,.04);
    padding-bottom: 7px;
}
.vdc-trust-list .fa-check { color: var(--color-gold); flex-shrink: 0; font-size: .7rem; margin-top: 2px; }
.vdc-trust-list strong { color: var(--color-text); }

/* Image : s'étire pour prendre toute la hauteur du bloc */
.vdc-image-wrap { flex: 1; display: flex; flex-direction: column; min-height: 360px; }
.vdc-image-wrap figure { flex: 1; margin: 0; display: flex; }
.vdc-image-wrap figure img,
.vdc-image-wrap img { flex: 1; width: 100%; object-fit: cover; display: block; border: 1px solid var(--color-border); }

/* Data card : s'étire pour prendre toute la hauteur du bloc */
.ville-data-card { flex: 1; }

/* Hauteur égale texte/média — clé : grid + stretch */
.ville-seo-block { align-items: stretch; }
.ville-seo-media {
    display: flex;
    flex-direction: column;
    /* La colonne prend toute la hauteur de la ligne grid */
    min-height: 100%;
}
.ville-seo-media--data { min-height: 480px; }

/* --- 4A. LAYOUT — PAGE SERVICE (simple) --- */
.page-content {
    max-width: var(--max-content);
    width: 90%;
    margin: -60px auto 100px;
    padding: 60px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
    position: relative;
    z-index: 3;
}

/* --- 4B. LAYOUT — PAGE VILLE (avec formulaire sidebar) --- */
.ville-layout {
    max-width: var(--max-wide);
    width: 92%;
    margin: -60px auto 100px;
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 35px;
    position: relative;
    z-index: 3;
    align-items: start;
}

.ville-main {
    background: var(--color-surface);
    padding: 55px 60px;
    border: 1px solid var(--color-border);
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
    min-width: 0; /* fix grid overflow */
}

.ville-sidebar {
    position: sticky;
    top: calc(var(--nav-h) + 20px);
}

.devis-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-gold);
    padding: 35px 30px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}

/* En-tête carte devis */
.devis-header {
    margin-bottom: 22px;
}

.devis-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(212,175,55,0.1);
    border: 1px solid rgba(212,175,55,0.25);
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 5px 12px;
    margin-bottom: 14px;
}

.devis-card .devis-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: 6px;
    line-height: 1.2;
}

.devis-card .devis-subtitle {
    font-size: 13px;
    color: var(--color-muted);
    margin-bottom: 0;
    line-height: 1.5;
}

/* Réassurance sous le formulaire */
.devis-reassurance {
    list-style: none;
    padding: 0;
    margin: 18px 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
}

.devis-reassurance li {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
    color: #666;
}

.devis-reassurance li i {
    color: var(--color-gold);
    font-size: 12px;
    width: 14px;
    flex-shrink: 0;
}

/* Social proof sous la carte */
.devis-proof {
    margin-top: 20px;
    padding: 22px 25px;
    background: #0e0e0e;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-gold);
}

.proof-stars {
    color: var(--color-gold);
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.proof-quote {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 0.95rem;
    color: #ccc;
    line-height: 1.6;
    margin-bottom: 10px;
    border: none;
    padding: 0;
    background: none;
}

.proof-author {
    font-size: 12px;
    color: #555;
    font-style: normal;
}

/* --- 5. TYPOGRAPHIE (zone de contenu) --- */
.content-area { text-align: left; }

.content-area > *:first-child { margin-top: 0 !important; }

.content-area h2 {
    font-family: var(--font-heading);
    color: var(--color-gold);
    font-size: 1.75rem;
    margin: 50px 0 18px;
    border-bottom: 1px solid rgba(212,175,55,0.2);
    padding-bottom: 12px;
    line-height: 1.3;
}

.content-area h3 {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1.3rem;
    margin: 35px 0 15px;
    line-height: 1.35;
}

.content-area p {
    color: #ccc;
    font-weight: 300;
    margin-bottom: 20px;
}

.content-area strong { color: #fff; font-weight: 600; }

.content-area a {
    color: var(--color-gold);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.2s;
}
.content-area a:hover { opacity: 0.75; }

.content-area ul {
    list-style: none;
    padding: 0;
    margin-bottom: 25px;
}

.content-area ul li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 12px;
    color: #ccc;
    font-weight: 300;
}

.content-area ul li::before {
    content: '✦';
    color: var(--color-gold);
    position: absolute;
    left: 0;
    top: 4px;
    font-size: 11px;
}

.content-area ol {
    padding-left: 22px;
    margin-bottom: 25px;
}

.content-area ol li {
    color: #ccc;
    font-weight: 300;
    margin-bottom: 10px;
    padding-left: 8px;
}

.content-area ol li::marker {
    color: var(--color-gold);
}

.content-area blockquote {
    border-left: 3px solid var(--color-gold);
    margin: 35px 0;
    padding: 20px 30px;
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 1.2rem;
    background: rgba(255,255,255,0.02);
    color: #fff;
}

/* Tables (comparatifs) */
.content-area table {
    width: 100%;
    border-collapse: collapse;
    margin: 30px 0;
    font-size: 14px;
    overflow-x: auto;
    display: block;
}

.content-area table th {
    background: rgba(212,175,55,0.08);
    color: var(--color-gold);
    font-family: var(--font-heading);
    font-weight: 400;
    padding: 12px 15px;
    text-align: left;
    border: 1px solid var(--color-border);
    white-space: nowrap;
}

.content-area table td {
    padding: 12px 15px;
    border: 1px solid var(--color-border);
    color: #ccc;
    vertical-align: top;
    font-weight: 300;
}

.content-area table tr:nth-child(even) td {
    background: rgba(255,255,255,0.02);
}

/* FAQ (details/summary) */
.content-area details {
    border: 1px solid var(--color-border);
    margin-bottom: 10px;
    padding: 0;
}

.content-area summary {
    font-family: var(--font-heading);
    color: #fff;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1rem;
    transition: color 0.2s;
}

.content-area summary::-webkit-details-marker { display: none; }

.content-area summary::after {
    content: '+';
    color: var(--color-gold);
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-left: 15px;
}

.content-area details[open] summary {
    color: var(--color-gold);
    border-bottom: 1px solid var(--color-border);
}

.content-area details[open] summary::after { content: '−'; }

.content-area details > *:not(summary) {
    padding: 20px;
    color: #ccc;
    font-weight: 300;
    font-size: 15px;
}

/* --- 6. COMPOSANTS CTA --- */
.btn-luxe {
    display: inline-block;
    padding: 14px 32px;
    border: 1px solid var(--color-gold);
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s;
}

.btn-luxe:hover {
    background: var(--color-gold);
    color: #000;
}

.btn-luxe-filled {
    display: inline-block;
    background: var(--color-gold);
    color: #000 !important;
    border: 1px solid var(--color-gold);
    font-weight: 600;
    text-decoration: none !important;
    padding: 14px 32px;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: all 0.3s;
}

.btn-luxe-filled:hover {
    background: #fff;
    border-color: #fff;
    color: #000 !important;
}

.cta-box {
    background: linear-gradient(135deg, #1a1a1a 0%, #252525 100%);
    border-left: 4px solid var(--color-gold);
    padding: 30px;
    margin: 35px 0;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.cta-box h4 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    color: #fff;
    margin-bottom: 8px;
}

.cta-box p {
    font-size: 0.9rem;
    color: #aaa;
    margin-bottom: 18px;
    line-height: 1.5;
}

.cta-footer {
    margin-top: 60px;
    padding-top: 50px;
    border-top: 1px solid var(--color-border);
    text-align: center;
}

.cta-footer h3 { margin-top: 0; }

.btn-group {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 25px;
}

/* Cluster de boutons flottants */
.floating-cta-cluster {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 100001; /* au-dessus du scroll-to-top (10000) */
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

.floating-cta {
    background: var(--color-gold);
    color: #000;
    padding: 14px 22px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 5px 20px rgba(212,175,55,0.4);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: transform 0.3s, background 0.3s;
    text-decoration: none;
}

.floating-cta:hover {
    transform: translateY(-4px);
    background: #fff;
    color: #000;
}

/* Bouton WhatsApp — vert */
.floating-cta--whatsapp {
    background: #25D366;
    color: #fff;
    box-shadow: 0 5px 20px rgba(37,211,102,0.4);
}
.floating-cta--whatsapp:hover {
    background: #1ebe5d;
    color: #fff;
}
.floating-cta--whatsapp i { font-size: 16px; }

/* --- 7. FORMINATOR — OVERRIDES THÈME LUXE --- */
.devis-card .forminator-custom-form .forminator-label,
.devis-card .forminator-custom-form label {
    color: var(--color-text) !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-bottom: 5px !important;
}

.devis-card .forminator-custom-form input[type="text"],
.devis-card .forminator-custom-form input[type="email"],
.devis-card .forminator-custom-form input[type="tel"],
.devis-card .forminator-custom-form textarea,
.devis-card .forminator-custom-form select {
    background: #ffffff !important;
    border: 1px solid #ccc !important;
    color: #111111 !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    padding: 11px 14px !important;
    border-radius: 6px !important;
    width: 100% !important;
    transition: border-color 0.2s !important;
    box-shadow: none !important;
}

.devis-card .forminator-custom-form input:focus,
.devis-card .forminator-custom-form textarea:focus,
.devis-card .forminator-custom-form select:focus {
    border-color: var(--color-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(212,175,55,0.18) !important;
    background: #fffef8 !important;
    color: #111 !important;
}
.home-hero-form .forminator-input:focus,
.hero-right .forminator-input:focus {
    border-color: var(--color-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(212,175,55,0.18) !important;
    background: #fffef8 !important;
}

.devis-card .forminator-custom-form .forminator-checkbox label,
.devis-card .forminator-custom-form .forminator-radio label {
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    color: #ccc !important;
}

.devis-card .forminator-custom-form .forminator-button,
.devis-card .forminator-custom-form button[type="submit"] {
    background: var(--color-gold) !important;
    color: #000 !important;
    font-family: var(--font-body) !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    padding: 15px 35px !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    width: 100% !important;
    transition: background 0.3s !important;
    margin-top: 5px !important;
}

.devis-card .forminator-custom-form .forminator-button:hover,
.devis-card .forminator-custom-form button[type="submit"]:hover {
    background: #fff !important;
}

.devis-card .forminator-custom-form .forminator-row {
    margin-bottom: 12px !important;
}

.devis-card .forminator-custom-form .forminator-form-flash-message,
.devis-card .forminator-custom-form .forminator-response-output {
    background: rgba(212,175,55,0.08) !important;
    border: 1px solid var(--color-gold) !important;
    color: var(--color-gold) !important;
    border-radius: 0 !important;
    font-size: 14px !important;
}

/* --- 8. FOOTER --- */
.site-footer {
    background: #070707;
    border-top: 1px solid var(--color-border);
    padding: 65px 40px 30px;
    margin-top: auto;
    width: 100%;
    box-sizing: border-box;
}

.footer-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr 1fr;
    gap: 50px;
    margin-bottom: 55px;
}

.footer-logo img {
    height: 42px;
    width: auto;
    margin-bottom: 18px;
}

.footer-tagline {
    color: #555;
    font-size: 13px;
    line-height: 1.7;
    margin-bottom: 20px;
}

.footer-contact-line {
    color: var(--color-muted);
    font-size: 13px;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-contact-line a {
    color: var(--color-muted);
    transition: color 0.2s;
}
.footer-contact-line a:hover { color: var(--color-gold); }

.footer-contact-line i {
    color: var(--color-gold);
    font-size: 12px;
    width: 14px;
}

.footer-social {
    display: flex;
    gap: 10px;
    margin-top: 22px;
}

.footer-social a {
    width: 36px;
    height: 36px;
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-muted);
    font-size: 14px;
    text-decoration: none;
    transition: all 0.25s;
}

.footer-social a:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(212,175,55,0.05);
}

.footer-col-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
}

.footer-col ul {
    list-style: none;
    padding: 0;
}

.footer-col ul li {
    margin-bottom: 10px;
}

.footer-col ul li a {
    color: #555;
    font-size: 13px;
    transition: color 0.2s;
    text-decoration: none;
}

.footer-col ul li a:hover {
    color: var(--color-gold);
}

.footer-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 0 0 25px;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.footer-copy {
    color: #333;
    font-size: 12px;
}

.footer-legal {
    display: flex;
    gap: 20px;
}

.footer-legal a {
    color: #333;
    font-size: 12px;
    text-decoration: none;
    transition: color 0.2s;
}

.footer-legal a:hover { color: var(--color-gold); }

/* --- 9. RESPONSIVE --- */
@media (max-width: 1100px) {
    .ville-layout {
        grid-template-columns: 1fr 320px;
        gap: 25px;
    }
}

@media (max-width: 900px) {
    .ville-layout {
        grid-template-columns: 1fr;
    }

    .ville-sidebar {
        position: static;
        order: -1;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 35px;
    }
}

@media (max-width: 768px) {
    /* Nav mobile */
    .nav-toggle { display: flex !important; }

    /* Nav mobile — géré par le CSS inline dans header-luxe.php
       (ID #navMenu avec !important pour garantir la priorité) */

    .nav-menu > li > a {
        padding: 15px 0;
        font-size: 14px;
        border-bottom: 1px solid var(--color-border);
    }

    /* Sous-menus mobile */
    .nav-menu .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        border: none;
        border-top: none;
        background: transparent;
        padding: 0 0 5px 15px;
        display: none;
        transition: none;
    }

    .nav-menu > li.is-open > .sub-menu { display: block; }

    /* Niveau 3 mobile */
    .nav-menu .sub-menu .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        border: none;
        background: transparent;
        padding: 0 0 4px 15px;
        display: none;
    }

    .nav-menu .sub-menu li.is-open > .sub-menu { display: block; }

    .nav-menu .sub-menu .menu-item-has-children > a::after { content: none; }

    .nav-menu .sub-menu li a {
        padding: 10px 0;
        font-size: 13px;
        border-bottom: 1px solid rgba(255,255,255,0.04);
    }

    .nav-cta { display: none; }

    /* Hero */
    .page-hero {
        height: 42vh;
        min-height: 260px;
        background-attachment: scroll;
    }

    /* Content */
    .page-content {
        padding: 30px 22px;
        margin-top: -30px;
        width: 95%;
    }

    .ville-main {
        padding: 30px 22px;
        margin-top: 0;
    }

    .ville-layout {
        width: 95%;
        margin-top: -30px;
    }

    .devis-card { padding: 28px 20px; }

    /* Footer */
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    /* Floating CTA cluster */
    .floating-cta-cluster {
        bottom: 20px;
        right: 20px;
        gap: 10px;
    }
    .floating-cta {
        padding: 12px 16px;
    }
    .floating-cta .cta-label { display: none; }
    .floating-cta i { font-size: 18px; }

    /* Hero landing page */
    .hero-benefits {
        flex-direction: column;
        gap: 10px;
        align-items: center;
    }

    .hero-cta-anchor {
        font-size: 12px;
        padding: 13px 22px;
    }

    /* Strip plateformes */
    .platforms-inner {
        gap: 12px;
    }

    .platforms-label { display: none; }

    /* Proof */
    .devis-proof { display: none; } /* masqué sur mobile pour alléger */
}


/* ============================================================
   CRO UPGRADE — composants de conversion
   ============================================================ */

/* ── Hero : accroche ── */
.hero-accroche {
    color: rgba(255,255,255,0.78);
    font-size: 1.05rem;
    font-weight: 300;
    margin: 16px auto 0;
    max-width: 680px;
    line-height: 1.6;
}

/* ── Hero : trust stats ── */
.hero-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-top: 28px;
    flex-wrap: wrap;
    row-gap: 12px;
}

.trust-stat {
    text-align: center;
    padding: 0 24px;
}

.trust-stat strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.9rem;
    color: #fff;
    line-height: 1;
}

.trust-stat strong em {
    font-style: normal;
    font-size: 1.1rem;
    color: var(--color-gold);
}

.trust-stat span {
    display: block;
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-top: 5px;
}

.trust-divider {
    width: 1px;
    height: 36px;
    background: rgba(255,255,255,0.15);
    flex-shrink: 0;
}

/* ── Hero : double CTA ── */
.hero-cta-group {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 30px;
    flex-wrap: wrap;
}

.btn-hero-primary {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--color-gold);
    color: #000;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 16px 32px;
    text-decoration: none;
    transition: background 0.3s, transform 0.2s;
    white-space: nowrap;
}

.btn-hero-primary:hover {
    background: #fff;
    transform: translateY(-2px);
}

.btn-hero-secondary {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid rgba(255,255,255,0.4);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 15px 28px;
    text-decoration: none;
    transition: border-color 0.3s, background 0.3s;
    white-space: nowrap;
}

.btn-hero-secondary:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(212,175,55,0.08);
}

/* ── Process strip ── */
.process-strip {
    background: #0f0f0f;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 30px 30px;
}

.process-inner {
    max-width: var(--max-wide);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    flex-wrap: wrap;
    row-gap: 20px;
}

.process-step {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0 30px;
    flex: 1;
    min-width: 200px;
}

.step-num {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    color: rgba(212,175,55,0.2);
    line-height: 1;
    flex-shrink: 0;
}

.step-body strong {
    display: block;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 4px;
}

.step-body p {
    color: #666;
    font-size: 12px;
    line-height: 1.4;
    margin: 0;
}

.process-arrow {
    color: rgba(212,175,55,0.3);
    font-size: 14px;
    flex-shrink: 0;
    padding: 0 5px;
}

/* ── Devis card — nouveaux éléments ── */
.devis-urgency {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(34,197,94,0.08);
    border: 1px solid rgba(34,197,94,0.2);
    color: #4ade80;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 5px 12px;
    margin-bottom: 16px;
}

.devis-urgency i {
    font-size: 8px;
    animation: pulse-dot 2s infinite;
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.3; }
}

.devis-card .devis-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1.2;
    margin-bottom: 8px;
}

.devis-card .devis-title span {
    color: var(--color-gold);
}

.devis-volume {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(212,175,55,0.06);
    border-left: 2px solid var(--color-gold);
    padding: 9px 14px;
    margin-bottom: 18px;
    font-size: 12px;
    color: #aaa;
}

.devis-volume i {
    color: var(--color-gold);
    font-size: 13px;
    flex-shrink: 0;
}

/* Téléphone alternatif sous le form */
.devis-phone-alt {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
    text-align: center;
}

.devis-phone-alt p {
    font-size: 12px;
    color: #555;
    margin-bottom: 8px;
}

.devis-phone-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-gold);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: opacity 0.2s;
}

.devis-phone-link:hover { opacity: 0.75; }

.devis-phone-link i { font-size: 14px; }

/* ── Social proof — version enrichie ── */
.devis-proof {
    margin-top: 16px;
    padding: 20px 22px;
    background: #0e0e0e;
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-gold);
}

.proof-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}

.proof-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-gold), #a07d1a);
    color: #000;
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.proof-meta { flex: 1; min-width: 0; }

.proof-name {
    display: block;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 2px;
}

.proof-location {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: #555;
    margin-bottom: 6px;
}

.proof-location i { color: var(--color-gold); font-size: 10px; }

.proof-stars {
    color: var(--color-gold);
    font-size: 11px;
    letter-spacing: 2px;
}

.proof-quote {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 0.9rem;
    color: #bbb;
    line-height: 1.6;
    border: none;
    padding: 0;
    background: none;
    margin: 0;
}

/* ── CTA mid-content ── */
.cta-mid {
    margin: 45px 0;
    background: linear-gradient(135deg, #161616 0%, #1e1a0e 100%);
    border: 1px solid rgba(212,175,55,0.2);
    border-left: 4px solid var(--color-gold);
    padding: 28px 30px;
}

.cta-mid-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    flex-wrap: wrap;
}

.cta-mid-text strong {
    display: block;
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 5px;
}

.cta-mid-text span {
    font-size: 13px;
    color: #888;
}

.cta-mid-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.cta-mid .btn-luxe,
.cta-mid .btn-luxe-filled {
    padding: 12px 22px;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
}

/* ── CTA inline dans le contenu ── */
.cta-inline {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
    margin: 28px 0;
}
.cta-inline .btn-luxe-filled,
.cta-inline .btn-luxe {
    padding: 11px 22px;
    font-size: 11px;
}

/* ── CTA footer — version enrichie ── */
.cta-footer-eyebrow {
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 12px;
}

.cta-footer-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1.6rem;
    margin: 0 0 12px;
}

.cta-footer-sub {
    font-size: 13px;
    color: #666;
    margin-bottom: 0;
}

/* ── Barre sticky mobile ── */
.mobile-sticky-bar {
    display: none; /* visible uniquement sur mobile via media query */
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9998;
    background: #0d0d0d;
    border-top: 1px solid var(--color-border);
    height: 64px;
    transition: transform 0.35s ease;
}

.mobile-sticky-bar.is-hidden {
    transform: translateY(110%);
}

.msb-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex: 1;
    height: 100%;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    transition: background 0.2s;
}

.msb-btn i { font-size: 16px; }

.msb-phone {
    color: var(--color-text);
    border-right: 1px solid var(--color-border);
}

.msb-phone:hover { background: rgba(255,255,255,0.04); }

.msb-devis {
    background: var(--color-gold);
    color: #000;
}

.msb-devis:hover { background: #f0c832; }

.msb-whatsapp {
    color: #fff;
    background: #25D366;
    border-right: 1px solid rgba(255,255,255,0.15);
}
.msb-whatsapp:hover { background: #1ebe5d; }

/* ── Responsive CRO ── */
@media (max-width: 768px) {

    /* Affiche la barre sticky mobile */
    .mobile-sticky-bar {
        display: flex;
    }

    /* Masque les boutons flottants sur mobile (remplacés par la barre sticky) */
    .floating-cta-cluster { display: none; }

    /* Espace pour que le contenu ne se cache pas derrière la barre */
    body { padding-bottom: 64px; }

    /* Hero trust stats */
    .hero-trust { gap: 0; }
    .trust-stat  { padding: 0 14px; }
    .trust-stat strong { font-size: 1.5rem; }
    .trust-divider { height: 28px; }

    /* Hero CTAs */
    .hero-cta-group { flex-direction: column; gap: 10px; }
    .btn-hero-primary,
    .btn-hero-secondary { width: 100%; justify-content: center; }

    /* Process strip */
    .process-inner  { flex-direction: column; align-items: flex-start; gap: 0; }
    .process-step   { padding: 14px 20px; border-bottom: 1px solid var(--color-border); width: 100%; }
    .process-step:last-child { border-bottom: none; }
    .process-arrow  { display: none; }

    /* CTA mid */
    .cta-mid-inner { flex-direction: column; gap: 16px; }
    .cta-mid-actions { width: 100%; }
    .cta-mid .btn-luxe,
    .cta-mid .btn-luxe-filled { flex: 1; justify-content: center; }

    /* Social proof visible sur mobile (version allégée) */
    .devis-proof { display: block; }
}

@media (max-width: 480px) {
    /* Trust stats : empilés verticalement */
    .hero-trust {
        flex-wrap: wrap;
        gap: 0;
        row-gap: 0;
        justify-content: center;
    }
    .trust-divider { display: none; }
    .trust-stat {
        padding: 10px 14px;
        border-bottom: 1px solid rgba(255,255,255,0.07);
        width: 50%;
        box-sizing: border-box;
    }

    .hero-accroche { font-size: 1rem; line-height: 1.6; }
}


/* ============================================================
   HERO SPLIT — formulaire visible dès le chargement
   ============================================================ */

.hero-split {
    height: auto;
    min-height: calc(100vh - var(--nav-h));
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
    /* Override du centrage par défaut */
}

/* Overlay plus léger côté gauche */
.hero-split::before {
    background: linear-gradient(
        105deg,
        rgba(0,0,0,0.78) 0%,
        rgba(0,0,0,0.55) 60%,
        rgba(0,0,0,0.20) 100%
    );
}

/* Colonne gauche : H1 + trust */
.hero-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 60px 80px 7%;
    position: relative;
    z-index: 2;
    max-width: 680px;
}

.hero-left .hero-breadcrumb {
    text-align: left;
    margin-bottom: 16px;
}

.hero-left .hero-title {
    text-align: left;
    font-size: clamp(1.6rem, 2.8vw, 2.8rem);
}

.hero-left .hero-accroche {
    text-align: left;
    max-width: none;
    margin: 14px 0 0;
}

.hero-left .hero-trust {
    justify-content: flex-start;
    margin-top: 30px;
}

.hero-phone-cta {
    margin-top: 28px;
    align-self: flex-start;
}

/* Colonne droite : formulaire */
.hero-right {
    width: 460px;
    flex-shrink: 0;
    background: rgba(9, 9, 9, 0.94);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-left: 1px solid rgba(212,175,55,0.12);
    padding: 22px 28px 18px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    position: relative;
    z-index: 2;
    overflow-y: auto;
}
/* Masquer les éléments non essentiels dans le hero pour tenir sans scroll */
.hero-right .devis-volume      { display: none !important; }
.hero-right .devis-phone-alt   { display: none !important; }
.hero-right .devis-reassurance { display: none !important; }
.hero-right .devis-proof       { display: none !important; }
.hero-right .devis-card        { padding: 0 !important; background: transparent !important; border: none !important; box-shadow: none !important; }

/* .hero-right .devis-card — géré dans le bloc hero-right ci-dessus */

/* ── Contenu SEO pleine largeur ── */
/* ══════════════════════════════════════════════════════════════
   VILLE SEO SECTIONS — Layout alterné texte / image + engagement
   ══════════════════════════════════════════════════════════════ */

/* Conteneur global */
.ville-seo-wrap {
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

/* Intro pleine largeur */
.ville-seo-intro {
    padding: 56px 20px 0;
}
.ville-seo-intro-inner {
    max-width: 820px;
    margin: 0 auto;
    color: var(--color-muted);
    font-size: .93rem;
    line-height: 1.85;
}
.ville-seo-intro-inner p:last-child { margin-bottom: 0; }

/* Sections alternées */
.ville-seo-sections {
    max-width: var(--max-wide);
    width: 92%;
    margin: 0 auto;
    padding: 0 0 60px;
}

/* Bloc alterné : texte + média */
.ville-seo-block {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 56px;
    padding: 60px 0;
    border-bottom: 1px solid var(--color-border);
    align-items: center;
}
.ville-seo-block--reverse {
    grid-template-columns: 420px 1fr;
}
.ville-seo-block--reverse .ville-seo-media { order: -1; }
.ville-seo-block--full {
    grid-template-columns: 1fr;
}
.ville-seo-block--full .ville-seo-media { display: none; }
.ville-seo-block:last-of-type { border-bottom: none; }

/* Colonne texte */
.ville-seo-text {
    color: var(--color-muted);
    font-size: .93rem;
    line-height: 1.85;
}
.ville-seo-text h2 {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-text);
    font-weight: 700;
    margin: 0 0 20px;
    line-height: 1.25;
    position: relative;
    padding-left: 18px;
}
.ville-seo-text h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background: var(--color-gold);
}
.ville-seo-text h3 {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: var(--color-text);
    font-weight: 600;
    margin: 24px 0 10px;
}
.ville-seo-text p { margin: 0 0 16px; }
.ville-seo-text p:last-child { margin-bottom: 0; }
.ville-seo-text strong { color: var(--color-text); font-weight: 600; }
/* Liens dans le contenu SEO — discrets */
.ville-seo-text a {
    color: var(--color-gold);
    text-decoration: none;
    border-bottom: 1px solid rgba(212,175,55,.35);
    transition: border-color .2s;
}
.ville-seo-text a:hover { border-color: var(--color-gold); }
.ville-seo-text ul,
.ville-seo-text ol { padding-left: 20px; margin: 0 0 16px; }
.ville-seo-text li {
    margin-bottom: 8px;
    padding-left: 4px;
    position: relative;
}
.ville-seo-text ul > li::marker { color: var(--color-gold); }
/* Tables */
.ville-seo-text .wp-block-table,
.ville-seo-text figure.wp-block-table { overflow-x: auto; margin: 20px 0; }
.ville-seo-text table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}
.ville-seo-text th {
    background: linear-gradient(135deg, #1a1005, #2c1f00);
    color: var(--color-gold);
    padding: 11px 14px;
    text-align: left;
    border: 1px solid rgba(212,175,55,.2);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.ville-seo-text td {
    padding: 11px 14px;
    border: 1px solid var(--color-border);
    color: var(--color-muted);
    vertical-align: top;
    line-height: 1.5;
}
.ville-seo-text tr:nth-child(even) td { background: rgba(255,255,255,.02); }
.ville-seo-text tr:hover td { background: rgba(212,175,55,.04); }

/* Colonne média — image : même hauteur que le texte */
.ville-seo-media figure,
.ville-seo-media img {
    width: 100%;
    height: 100%;
    min-height: 340px;
    object-fit: cover;
    display: block;
    border: 1px solid var(--color-border);
}
.ville-seo-media figure { margin: 0; height: 100%; }

/* Colonne média — décorative (sans image) */
.ville-seo-media--deco {
    display: flex;
    align-items: stretch;
}
.ve-deco-card {
    flex: 1;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 4px solid var(--color-gold);
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}
.ve-deco-icon {
    font-size: 3.5rem;
    color: var(--color-gold);
    opacity: .8;
}
.ve-deco-label {
    font-family: var(--font-heading);
    font-size: 1rem;
    color: var(--color-text);
    font-weight: 600;
    margin: 0;
    letter-spacing: .05em;
}
.ve-deco-list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    text-align: left;
}
.ve-deco-list li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    color: var(--color-muted);
    font-size: .88rem;
}
.ve-deco-list li .fa-check { color: var(--color-gold); flex-shrink: 0; }
.ve-deco-btn {
    margin-top: auto;
    background: var(--color-gold);
    color: #1a1005;
    font-weight: 700;
    font-size: .85rem;
    padding: 11px 22px;
    text-decoration: none;
    display: inline-block;
    transition: opacity .2s;
}
.ve-deco-btn:hover { opacity: .85; }

/* ── Blocs d'engagement ── */
.ville-engage {
    padding: 0;
    margin: 0;
}

/* Engagement — chiffres clés */
.ville-engage--stats {
    background: var(--color-gold);
    margin: 0 -4vw;
}
.ve-stats-inner {
    max-width: var(--max-wide);
    width: 92%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0;
    padding: 32px 0;
}
.ve-stat {
    flex: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ve-stat strong {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    color: #1a1005;
    font-weight: 800;
    line-height: 1;
}
.ve-stat strong em {
    font-size: 1rem;
    font-style: normal;
}
.ve-stat span {
    font-size: .78rem;
    color: rgba(26,16,5,.75);
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.ve-stat-sep {
    width: 1px;
    height: 48px;
    background: rgba(26,16,5,.2);
    flex-shrink: 0;
}

/* Engagement — témoignage */
.ville-engage--testimonial {
    padding: 56px 20px;
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.ve-testimonial-inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}
.ve-quote-icon {
    font-size: 3rem;
    color: var(--color-gold);
    opacity: .35;
    margin-bottom: 16px;
}
.ve-quote {
    margin: 0 0 20px;
    padding: 0;
    border: none;
}
.ve-quote p {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    color: var(--color-text);
    line-height: 1.6;
    font-style: italic;
    margin: 0 0 16px;
}
.ve-quote footer {
    font-size: .85rem;
    color: var(--color-muted);
}
.ve-quote cite { font-style: normal; }
.ve-stars {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: var(--color-gold);
    font-size: 1.1rem;
}
.ve-stars span {
    font-size: .8rem;
    color: var(--color-muted);
    margin-left: 6px;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .ville-seo-block,
    .ville-seo-block--reverse { grid-template-columns: 1fr 320px; gap: 36px; }
    .ve-stats-inner { flex-wrap: wrap; }
}
@media (max-width: 768px) {
    .ville-seo-intro { padding: 40px 16px 0; }
    .ville-seo-sections { width: 100%; padding: 0 16px 40px; }
    .ville-seo-block,
    .ville-seo-block--reverse {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 40px 0;
    }
    .ville-seo-block--reverse .ville-seo-media { order: 0; }
    .ville-seo-media figure,
    .ville-seo-media img { height: 220px; }
    .ville-seo-media--deco { min-height: 200px; }
    .ve-deco-card { padding: 28px 20px; }
    .ve-deco-icon { font-size: 2.5rem; }
    .ville-seo-text h2 { font-size: 1.25rem; }
    .ve-stats-inner { padding: 20px 16px; gap: 12px; }
    .ve-stat strong { font-size: 1.6rem; }
    .ve-stat-sep { width: 40px; height: 1px; }
    .ve-quote p { font-size: 1rem; }
}

/* Compatibilité descendante — ancien .ville-content-wrap (plus utilisé) */
.ville-content-wrap {
    max-width: var(--max-wide);
    width: 92%;
    margin: 60px auto 0;
}
.ville-content-wrap .ville-main {
    padding: 55px 65px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
    margin-bottom: 0;
}

/* ── Section formulaire bas de page ── */
.bottom-form-section {
    background: #0a0a0a;
    border-top: 1px solid var(--color-border);
    padding: 52px 20px;
    margin-top: 0;
}

.bottom-form-wrap {
    max-width: var(--max-wide);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 70px;
    align-items: start;
}

/* En-tête gauche */
.bottom-form-eyebrow {
    display: block;
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 14px;
}

.bottom-form-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.6rem, 2.5vw, 2.5rem);
    line-height: 1.25;
    margin: 0 0 16px;
    border: none;
    padding: 0;
}

.bottom-form-sub {
    color: #666;
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 30px;
}

.bottom-form-benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 30px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.bottom-form-benefits li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #ccc;
    font-size: 14px;
    font-weight: 300;
}

.bottom-form-benefits li::before { display: none; } /* override content-area ul */

.bottom-form-benefits li i {
    color: var(--color-gold);
    font-size: 14px;
    flex-shrink: 0;
}

.bottom-form-phone {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--color-gold);
    font-size: 1.15rem;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s;
}

.bottom-form-phone:hover { opacity: 0.75; }
.bottom-form-phone i { font-size: 16px; }

/* Carte formulaire droite */
.bottom-form-card .devis-card {
    box-shadow: 0 30px 60px rgba(0,0,0,0.6);
}

/* ── Forminator dans bottom-form-card — inputs blancs, texte noir ── */
.bottom-form-card .forminator-custom-form { margin: 0 !important; }
.bottom-form-card .forminator-row { display: flex !important; flex-wrap: wrap !important; gap: 0 8px !important; margin-bottom: 6px !important; }
.bottom-form-card .forminator-col-6 { width: calc(50% - 4px) !important; flex-shrink: 0 !important; }
.bottom-form-card .forminator-col-12 { width: 100% !important; }
.bottom-form-card .forminator-field { margin-bottom: 2px !important; }
.bottom-form-card label.forminator-label { font-size: .72rem !important; margin-bottom: 3px !important; letter-spacing: .04em; }
.bottom-form-card .forminator-input,
.bottom-form-card .forminator-custom-form textarea {
    background: #ffffff !important;
    color: #111111 !important;
    border: 1px solid #ccc !important;
    border-radius: 5px !important;
    padding: 8px 12px !important;
    font-size: .88rem !important;
    min-height: unset !important;
}
.bottom-form-card .forminator-input::placeholder,
.bottom-form-card .forminator-custom-form textarea::placeholder { color: #999 !important; }
.bottom-form-card .forminator-custom-form textarea { height: 90px !important; resize: none !important; }
.bottom-form-card .forminator-field-checkbox .forminator-field {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px 12px !important;
}
.bottom-form-card .forminator-field-checkbox .forminator-field > .forminator-label { grid-column: 1 / -1 !important; }
.bottom-form-card .forminator-checkbox-label { font-size: .82rem !important; }
.bottom-form-card .forminator-button-submit { width: 100% !important; margin-top: 10px !important; }
.bottom-form-card .forminator-module-edit-link { display: none !important; }

/* ── Compact bottom form — bfs-* ── */
.bfs-inner {
    width: min(620px, 100%);
    margin: 0 auto;
    text-align: center;
}

.bfs-header {
    margin-bottom: 24px;
}

.bfs-meta {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 12px;
    font-size: .8rem;
    color: var(--color-muted);
}

.bfs-meta i {
    color: var(--color-gold);
    margin-right: 4px;
}

.bfs-form-card {
    background: rgba(20,20,20,.95);
    border: 1px solid rgba(212,175,55,.2);
    border-radius: 14px;
    padding: 24px 28px;
    text-align: left;
}

.bfs-form-card .forminator-custom-form { margin: 0 !important; }
.bfs-form-card .forminator-row { display: flex !important; flex-wrap: wrap !important; gap: 0 8px !important; margin-bottom: 6px !important; }
.bfs-form-card .forminator-col-6 { width: calc(50% - 4px) !important; flex-shrink: 0 !important; }
.bfs-form-card .forminator-col-12 { width: 100% !important; }
.bfs-form-card .forminator-field { margin-bottom: 2px !important; }
.bfs-form-card label.forminator-label { font-size: .72rem !important; margin-bottom: 3px !important; letter-spacing: .04em; color: #aaa !important; }
.bfs-form-card .forminator-input,
.bfs-form-card .forminator-custom-form textarea {
    background: #1a1a1a !important;
    color: #f0f0f0 !important;
    border: 1px solid #333 !important;
    border-radius: 5px !important;
    padding: 8px 12px !important;
    font-size: .88rem !important;
    min-height: unset !important;
}
.bfs-form-card .forminator-input::placeholder,
.bfs-form-card .forminator-custom-form textarea::placeholder { color: #666 !important; }
.bfs-form-card .forminator-custom-form textarea { height: 70px !important; resize: none !important; }
.bfs-form-card .forminator-field-checkbox .forminator-field {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px 12px !important;
}
.bfs-form-card .forminator-field-checkbox .forminator-field > .forminator-label { grid-column: 1 / -1 !important; }
.bfs-form-card .forminator-checkbox-label { font-size: .82rem !important; color: #ccc !important; }
.bfs-form-card .forminator-button-submit { width: 100% !important; margin-top: 8px !important; }
.bfs-form-card .forminator-module-edit-link { display: none !important; }

.bfs-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    color: var(--color-muted);
    font-size: .88rem;
    text-decoration: none;
    transition: color .2s;
}
.bfs-phone:hover { color: var(--color-gold); }
.bfs-phone i { color: var(--color-gold); }

/* ── Hero split — centrage texte ── */
.hero-split .hero-left .hero-breadcrumb,
.hero-split .hero-left .hero-title,
.hero-split .hero-left .hero-accroche {
    text-align: center;
}
.hero-split .hero-left .hero-actions {
    justify-content: center;
}
.hero-split .hero-left .hero-trust {
    justify-content: center;
}

/* ── Responsive hero split ── */
@media (max-width: 1024px) {
    .hero-right { width: 380px; padding: 35px 28px; }
    .hero-left  { padding: 60px 40px 60px 5%; }
}

@media (max-width: 900px) {
    /* Hero : passage en colonne, form sous le H1 */
    .hero-split {
        flex-direction: column;
        min-height: auto;
    }

    .hero-left {
        padding: 60px 24px 40px;
        max-width: none;
    }

    .hero-left .hero-title { text-align: center; }
    .hero-left .hero-accroche { text-align: center; }
    .hero-left .hero-trust { justify-content: center; }
    .hero-left .hero-breadcrumb { text-align: center; }
    .hero-phone-cta { align-self: center; }

    .hero-right {
        width: 100%;
        border-left: none;
        border-top: 1px solid rgba(212,175,55,0.12);
        padding: 40px 24px;
        background: rgba(9,9,9,0.98);
    }

    .hero-right .devis-card {
        max-width: 520px;
        margin: 0 auto;
    }

    /* Contenu */
    .ville-content-wrap { width: 95%; margin-top: 40px; }
    .ville-content-wrap .ville-main { padding: 35px 24px; }

    /* Bottom form */
    .bottom-form-wrap {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .bottom-form-section { padding: 60px 24px; }
}

@media (max-width: 600px) {
    .hero-left { padding: 40px 20px 30px; }
    .hero-right { padding: 30px 18px; }

    .bottom-form-section { padding: 50px 18px; margin-top: 40px; }
    .bottom-form-title { font-size: 1.5rem; }
}


/* ============================================================
   HERO VILLE — layout centré avec formulaire
   ============================================================ */

.ville-hero {
    height: auto;
    min-height: calc(100vh - var(--nav-h));
    display: flex;
    align-items: center;
    justify-content: center;
    /* Photo Unsplash unique pour toutes les pages conciergerie ville */
    background-image: url('https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?q=80&w=2000&auto=format&fit=crop') !important;
    background-size: cover !important;
    background-position: center !important;
    background-attachment: fixed !important;
    position: relative;
}

.ville-hero-inner {
    width: min(1140px, 94%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 48px;
    align-items: center;
    padding: 60px 0;
    position: relative;
    z-index: 2;
}

/* Colonne texte */
.ville-hero-text {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ville-hero-text .hero-breadcrumb,
.ville-hero-text .hero-title,
.ville-hero-text .hero-accroche {
    text-align: left;
}

.ville-hero-text .hero-trust {
    justify-content: flex-start;
}

/* ── Colonne formulaire hero ville — compact, sans scroll ── */

/* Masquer les éléments non essentiels */
.ville-hero-form .devis-volume,
.ville-hero-form .devis-phone-alt,
.ville-hero-form .devis-proof      { display: none !important; }

/* Réassurance en ligne */
.ville-hero-form .devis-reassurance {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 4px 14px !important;
    margin-top: 8px !important;
    padding-top: 8px !important;
    border-top: 1px solid rgba(255,255,255,.06) !important;
}
.ville-hero-form .devis-reassurance li { font-size: .7rem !important; color: #555 !important; }

/* Carte compact */
.ville-hero-form .devis-card {
    background: rgba(10,10,10,.97);
    border: 1px solid rgba(212,175,55,.2);
    border-top: 2px solid var(--color-gold);
    box-shadow: 0 30px 60px rgba(0,0,0,.5);
    padding: 18px 22px 14px;
}

/* Titres compacts */
.ville-hero-form .devis-urgency  { font-size: .62rem !important; padding: 3px 10px !important; margin-bottom: 6px !important; display: inline-flex !important; }
.ville-hero-form .devis-title    { font-size: .92rem !important; margin-bottom: 2px !important; line-height: 1.2 !important; }
.ville-hero-form .devis-subtitle { font-size: .68rem !important; margin-bottom: 6px !important; color: rgba(255,255,255,.45) !important; }

/* Forminator — layout compact */
.ville-hero-form .forminator-custom-form { margin: 0 !important; }
.ville-hero-form .forminator-row  { display: flex !important; flex-wrap: wrap !important; gap: 0 8px !important; margin-bottom: 4px !important; }
.ville-hero-form .forminator-col-6  { width: calc(50% - 4px) !important; flex-shrink: 0 !important; }
.ville-hero-form .forminator-col-12 { width: 100% !important; }
.ville-hero-form .forminator-field  { margin-bottom: 0 !important; }

/* Labels ultra-compacts */
.ville-hero-form label.forminator-label { font-size: .62rem !important; margin-bottom: 2px !important; letter-spacing: .04em !important; }

/* Inputs petits — fond blanc, texte noir */
.ville-hero-form .forminator-input,
.ville-hero-form .forminator-custom-form select {
    padding: 5px 10px !important;
    font-size: .82rem !important;
    min-height: unset !important;
    height: 30px !important;
    background: #ffffff !important;
    color: #111111 !important;
    border: 1px solid #ccc !important;
    border-radius: 5px !important;
}
.ville-hero-form .forminator-input::placeholder { color: #888 !important; }

/* Masquer textarea */
.ville-hero-form .forminator-row:has(textarea) { display: flex !important; }

/* Checkboxes 2 colonnes */
.ville-hero-form .forminator-field-checkbox .forminator-field {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 12px !important;
}
.ville-hero-form .forminator-field-checkbox .forminator-field > .forminator-label { grid-column: 1 / -1 !important; }
.ville-hero-form .forminator-checkbox-label { font-size: .72rem !important; line-height: 1.35 !important; }
.ville-hero-form .forminator-checkbox       { padding: 1px 0 !important; }

/* Bouton submit compact */
.ville-hero-form .forminator-button-submit {
    padding: 9px 20px !important;
    font-size: .85rem !important;
    margin-top: 6px !important;
    width: 100% !important;
}

/* Masquer lien admin */
.ville-hero-form .forminator-module-edit-link { display: none !important; }

@media (max-width: 960px) {
    .ville-hero-inner {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 50px 0;
    }
    .ville-hero-text .hero-title,
    .ville-hero-text .hero-accroche,
    .ville-hero-text .hero-breadcrumb {
        text-align: center;
    }
    .ville-hero-text .hero-trust {
        justify-content: center;
    }
    .ville-hero-text .hero-phone-cta {
        align-self: center;
    }
    .ville-hero-form .devis-card {
        max-width: 520px;
        margin: 0 auto;
    }
}

/* ============================================================
   FIXES hero-split
   1. backdrop-filter est incompatible avec background-attachment:fixed
      sur Chrome/Safari — on force scroll sur le hero split
   2. Alignement vertical correct des colonnes
   ============================================================ */

.hero-split {
    background-attachment: scroll;
}

.hero-split .hero-left,
.hero-split .hero-right {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* S'assure que le contenu gauche est bien au-dessus de l'overlay */
.hero-split .hero-left {
    position: relative;
    z-index: 3;
}

.hero-split .hero-right {
    position: relative;
    z-index: 3;
}

/* Correction hauteur minimale hero sur desktop */
@media (min-width: 901px) {
    .hero-split {
        min-height: calc(100vh - var(--nav-h));
    }
}


/* ============================================================
   NOUVEAUX TEMPLATES — styles complémentaires
   page-service, page-about, page-contact, page-legal,
   single, archive, home, page (fallback)
   ============================================================ */


/* ── PAGE SERVICE ── */

/* Hero */
.service-hero {
    background-image: url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?q=80&w=2000&auto=format&fit=crop');
}

/* Conteneur contenu service */
.service-content-wrap {
    max-width: 900px;
    width: 92%;
    margin: 60px auto;
}

.service-main {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 60px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
}

/* Barre CTA intermédiaire */
.service-cta-bar {
    background: linear-gradient(135deg, #111 0%, #1a160a 100%);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 32px 30px;
}

.service-cta-bar-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    flex-wrap: wrap;
}

.service-cta-text strong {
    display: block;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 4px;
}

.service-cta-text span {
    font-size: 13px;
    color: #888;
}

.service-cta-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.service-cta-actions .btn-luxe,
.service-cta-actions .btn-luxe-filled {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    padding: 13px 24px;
    text-decoration: none;
}

/* Section formulaire service */
.service-form-section {
    background: #090909;
    border-top: 1px solid var(--color-border);
    padding: 80px 30px;
}

.service-form-wrap {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

.service-form-eyebrow {
    display: block;
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 12px;
}

.service-form-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin: 0 0 12px;
}

.service-form-sub {
    font-size: 13px;
    color: #666;
    margin-bottom: 35px;
}

.service-devis-card {
    text-align: left;
}


/* ── PAGE À PROPOS ── */

.about-content-wrap {
    max-width: 1000px;
    width: 92%;
    margin: 60px auto;
}

.about-main {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 60px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
}

/* Section valeurs */
.about-values-section {
    background: #0a0a0a;
    border-top: 1px solid var(--color-border);
    padding: 80px 30px;
}

.about-values-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.about-values-header {
    text-align: center;
    margin-bottom: 50px;
}

.about-values-eyebrow {
    display: block;
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 12px;
}

.about-values-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin: 0;
    border: none;
    padding: 0;
}

/* Grille 3 valeurs */
.about-values {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.value-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-gold);
    padding: 40px 30px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.value-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.4);
}

.value-icon {
    width: 52px;
    height: 52px;
    background: rgba(212,175,55,0.08);
    border: 1px solid rgba(212,175,55,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
}

.value-icon i {
    color: var(--color-gold);
    font-size: 20px;
}

.value-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1.2rem;
    margin: 0 0 14px;
}

.value-desc {
    color: #888;
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
    font-weight: 300;
}

/* CTA section about */
.about-cta-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    padding: 80px 30px;
    text-align: center;
}

.about-cta-inner {
    max-width: 700px;
    margin: 0 auto;
}

.about-cta-eyebrow {
    display: block;
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 12px;
}

.about-cta-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin: 0 0 16px;
    border: none;
    padding: 0;
}

.about-cta-sub {
    color: #666;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 32px;
}


/* ── PAGE CONTACT ── */

.contact-hero {
    background-image: url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?q=80&w=2000&auto=format&fit=crop');
    height: 40vh;
    min-height: 280px;
}

/* Layout 2 colonnes */
.contact-layout-wrap {
    padding: 70px 30px;
    background: var(--color-bg);
}

.contact-layout {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 50px;
    align-items: start;
}

/* Carte infos gauche */
.contact-info-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 50px 40px;
}

.contact-info-title {
    font-family: var(--font-heading);
    color: var(--color-gold);
    font-size: 1.4rem;
    margin: 0 0 32px;
    border-bottom: 1px solid rgba(212,175,55,0.2);
    padding-bottom: 16px;
}

.contact-info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}

.contact-info-icon {
    width: 44px;
    height: 44px;
    background: rgba(212,175,55,0.08);
    border: 1px solid rgba(212,175,55,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contact-info-icon i {
    color: var(--color-gold);
    font-size: 16px;
}

.contact-info-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 4px;
}

.contact-info-label {
    font-size: 11px;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 500;
}

.contact-info-value {
    color: var(--color-text);
    font-size: 15px;
    font-weight: 400;
    text-decoration: none;
    transition: color 0.2s;
}

a.contact-info-value:hover { color: var(--color-gold); }

/* Horaires */
.contact-hours {
    border-top: 1px solid var(--color-border);
    padding-top: 30px;
    margin-bottom: 30px;
}

.contact-hours-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1rem;
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.contact-hours-title i { color: var(--color-gold); font-size: 14px; }

.contact-hours-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-hours-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
}

.contact-hours-list span { color: #666; }
.contact-hours-list strong { color: var(--color-text); font-weight: 500; }

/* Réseaux sociaux */
.contact-social {
    border-top: 1px solid var(--color-border);
    padding-top: 28px;
}

.contact-social-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: 1rem;
    margin: 0 0 16px;
}

.contact-social-links {
    display: flex;
    gap: 12px;
}

.contact-social-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.25s;
}

.contact-social-link:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(212,175,55,0.05);
}

.contact-social-link i { font-size: 15px; }

/* Formulaire contact */
.contact-form-col {
    position: sticky;
    top: calc(var(--nav-h) + 20px);
}

.contact-devis-card {
    box-shadow: 0 30px 60px rgba(0,0,0,0.5);
}


/* ── PAGE LÉGALE ── */

.legal-header {
    background: #0d0d0d;
    border-bottom: 1px solid var(--color-border);
    padding: 60px 30px 50px;
}

.legal-header-inner {
    max-width: 800px;
    margin: 0 auto;
}

.legal-breadcrumb {
    font-size: 11px;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 2px;
    display: block;
    margin-bottom: 18px;
}

.legal-breadcrumb a {
    color: var(--color-gold);
    text-decoration: none;
    transition: opacity 0.2s;
}

.legal-breadcrumb a:hover { opacity: 0.7; }

.legal-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    margin: 0;
    line-height: 1.25;
}

.legal-wrap {
    max-width: 800px;
    width: 92%;
    margin: 60px auto 100px;
}

/* Contenu page légale */
.legal-content {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 50px 55px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.3);
    font-size: 15px;
    line-height: 1.85;
}

.legal-content h2 { font-size: 1.4rem; }
.legal-content h3 { font-size: 1.1rem; }


/* ── PAGE FALLBACK (page.php) ── */

.default-page-wrap {
    max-width: 900px;
    width: 92%;
    margin: 60px auto 100px;
}

.default-page-content {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 60px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
}


/* ── BLOG — GRILLE D'ARTICLES ── */

.blog-layout-wrap {
    max-width: 1200px;
    width: 92%;
    margin: 60px auto 100px;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.blog-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s, box-shadow 0.3s;
    overflow: hidden;
}

.blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.4);
    border-color: rgba(212,175,55,0.3);
}

.blog-card-img-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    text-decoration: none;
}

.blog-card-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s ease;
}

.blog-card:hover .blog-card-img {
    transform: scale(1.04);
}

.blog-card-body {
    padding: 28px 26px 26px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.blog-cat-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--color-gold);
    border: 1px solid rgba(212,175,55,0.3);
    padding: 3px 10px;
    margin-bottom: 14px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.blog-cat-badge:hover {
    background: rgba(212,175,55,0.1);
    color: var(--color-gold);
}

.blog-card-title {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    margin: 0 0 12px;
    line-height: 1.35;
}

.blog-card-title a {
    color: #fff;
    text-decoration: none;
    transition: color 0.2s;
}

.blog-card-title a:hover { color: var(--color-gold); }

.blog-card-excerpt {
    color: #777;
    font-size: 13px;
    line-height: 1.6;
    font-weight: 300;
    margin-bottom: 0;
    flex: 1;
}

.blog-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.blog-card-date {
    font-size: 11px;
    color: #555;
    display: flex;
    align-items: center;
    gap: 6px;
}

.blog-card-date i { color: var(--color-gold); font-size: 10px; }

.blog-card-read {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-gold);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.2s;
    white-space: nowrap;
}

.blog-card-read:hover { gap: 10px; color: var(--color-gold); }

/* Pagination blog */
.blog-pagination {
    margin-top: 60px;
    display: flex;
    justify-content: center;
}

.blog-pagination .nav-links {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.blog-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.25s;
}

.blog-pagination .page-numbers:hover,
.blog-pagination .page-numbers.current {
    background: var(--color-gold);
    border-color: var(--color-gold);
    color: #000;
}

.blog-pagination .page-numbers.prev,
.blog-pagination .page-numbers.next {
    width: auto;
    padding: 0 18px;
    gap: 8px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Aucun article */
.blog-no-posts {
    text-align: center;
    padding: 80px 20px;
    color: #555;
}

.blog-no-posts p {
    font-size: 1.1rem;
    margin-bottom: 24px;
    color: #666;
}

/* Hero blog */
.blog-hero {
    background-image: url('https://images.unsplash.com/photo-1556155092-490a1ba16284?q=80&w=2000&auto=format&fit=crop');
}


/* ── ARTICLE SINGLE ── */

/* Hero article */
.article-hero {
    height: 60vh;
    min-height: 380px;
    position: relative;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
}

.article-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.1) 0%,
        rgba(0,0,0,0.85) 100%
    );
}

.article-hero-content {
    position: relative;
    z-index: 2;
    padding: 50px 60px;
    max-width: 900px;
}

.article-cat-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #000;
    background: var(--color-gold);
    padding: 4px 14px;
    margin-bottom: 16px;
    text-decoration: none;
}

.article-hero-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.6rem, 3.5vw, 2.8rem);
    line-height: 1.25;
    margin: 0 0 20px;
    text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}

.article-hero-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,0.65);
    font-size: 13px;
}

.article-meta-sep { color: rgba(255,255,255,0.3); }
.article-meta-date,
.article-meta-author {
    display: flex;
    align-items: center;
    gap: 7px;
}

.article-meta-date i,
.article-meta-author i { color: var(--color-gold); font-size: 12px; }

/* Layout article 2 colonnes */
.article-layout-wrap {
    max-width: 1200px;
    width: 92%;
    margin: 60px auto;
}

.article-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    align-items: start;
}

.article-content {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 55px 60px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
    min-width: 0;
}

/* Sidebar article */
.article-sidebar {
    position: sticky;
    top: calc(var(--nav-h) + 20px);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.sidebar-devis-card {
    /* Hérite de .devis-card */
}

.sidebar-recent-posts {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 28px 26px;
}

.sidebar-widget-title {
    font-family: var(--font-heading);
    color: var(--color-gold);
    font-size: 1rem;
    margin: 0 0 22px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(212,175,55,0.2);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.sidebar-posts-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sidebar-post-item::before { display: none; }

.sidebar-post-link {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    text-decoration: none;
    transition: opacity 0.2s;
}

.sidebar-post-link:hover { opacity: 0.8; }

.sidebar-post-thumb {
    width: 70px;
    height: 60px;
    flex-shrink: 0;
    overflow: hidden;
}

.sidebar-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sidebar-post-body {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 0;
}

.sidebar-post-date {
    font-size: 11px;
    color: #555;
}

.sidebar-post-title {
    font-family: var(--font-heading);
    color: #ddd;
    font-size: 13px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Navigation prev/next article */
.article-nav {
    margin-top: 50px;
    padding-top: 35px;
    border-top: 1px solid var(--color-border);
}

.article-nav-inner {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.article-nav-link {
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-decoration: none;
    max-width: 45%;
    transition: opacity 0.2s;
}

.article-nav-link:hover { opacity: 0.75; }

.article-nav-next {
    text-align: right;
    margin-left: auto;
}

.article-nav-dir {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-gold);
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.article-nav-next .article-nav-dir { justify-content: flex-end; }

.article-nav-title {
    color: #ccc;
    font-size: 13px;
    line-height: 1.45;
    font-family: var(--font-heading);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Articles similaires */
.related-posts {
    background: #080808;
    border-top: 1px solid var(--color-border);
    padding: 80px 30px;
}

.related-posts-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.related-posts-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.related-posts-title {
    font-family: var(--font-heading);
    color: #fff;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    margin: 0;
}

.related-posts-all {
    font-size: 11px;
    padding: 10px 22px;
}

.related-posts .blog-grid {
    gap: 24px;
}


/* ── RESPONSIVE — NOUVEAUX TEMPLATES ── */

@media (max-width: 1100px) {
    .contact-layout {
        grid-template-columns: 1fr 420px;
        gap: 35px;
    }

    .article-layout {
        grid-template-columns: 1fr 300px;
        gap: 28px;
    }
}

@media (max-width: 900px) {

    /* Page service */
    .service-main,
    .about-main,
    .default-page-content,
    .legal-content {
        padding: 35px 26px;
    }

    /* Valeurs : 2 colonnes */
    .about-values {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Contact : 1 colonne */
    .contact-layout {
        grid-template-columns: 1fr;
    }

    .contact-form-col {
        position: static;
    }

    /* Article layout : 1 colonne — sidebar après le contenu */
    .article-layout {
        grid-template-columns: 1fr;
    }

    .article-sidebar {
        position: static;
        order: 1;
    }

    /* Masquer le formulaire devis dans la sidebar sur tablette */
    .sidebar-devis-card {
        display: none;
    }

    .article-hero-content {
        padding: 35px 30px;
    }

    /* Blog grid : 2 colonnes */
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    /* CTA bar service */
    .service-cta-bar-inner {
        flex-direction: column;
        gap: 16px;
    }

    .service-cta-actions {
        width: 100%;
    }

    .service-cta-actions .btn-luxe,
    .service-cta-actions .btn-luxe-filled {
        flex: 1;
        justify-content: center;
    }

    /* Page légale */
    .legal-header { padding: 40px 22px 35px; }
    .legal-wrap { width: 95%; margin: 40px auto 70px; }

    /* Valeurs : 1 colonne */
    .about-values {
        grid-template-columns: 1fr;
    }

    /* Contact layout */
    .contact-layout-wrap { padding: 50px 20px; }
    .contact-info-card { padding: 35px 24px; }

    /* Article hero */
    .article-hero { height: 50vh; min-height: 300px; }
    .article-hero-content { padding: 25px 20px; }
    .article-content { padding: 30px 22px; }

    /* Masquer toute la sidebar (avec formulaire) sur mobile */
    .article-sidebar {
        display: none;
    }

    /* Blog grid : 1 colonne */
    .blog-grid {
        grid-template-columns: 1fr;
    }

    /* Articles similaires */
    .related-posts { padding: 50px 20px; }
    .related-posts-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {

    .service-form-wrap,
    .service-content-wrap,
    .about-content-wrap,
    .default-page-wrap,
    .legal-wrap {
        width: 96%;
    }

    .article-layout-wrap,
    .blog-layout-wrap {
        width: 96%;
    }

    .blog-card-body { padding: 22px 18px 18px; }

    .article-nav-inner {
        flex-direction: column;
        gap: 24px;
    }

    .article-nav-link {
        max-width: 100%;
    }
}

/* =============================================================
   HOMEPAGE — front-page.php
   ============================================================= */

/* Hero split homepage */
.home-hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    background: url('https://images.unsplash.com/photo-1560185893-a55cbc8c57e8?w=1800&q=80') center/cover no-repeat;
    background-attachment: scroll;
    position: relative;
}
.home-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(11,11,11,.92) 45%, rgba(11,11,11,.7) 100%);
    z-index: 1;
}
.home-hero-inner {
    position: relative;
    z-index: 2;
    width: min(1300px, 96%);
    margin: 0 auto;
    padding: calc(var(--nav-h) + 20px) 0 20px;
    display: grid;
    grid-template-columns: 1fr 500px;
    gap: 30px;
    align-items: center;
    min-height: 100vh;
    box-sizing: border-box;
}
.home-hero-content {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.home-hero-eyebrow,
.home-hero-content > span:first-child {
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.hero-title-accent {
    color: var(--color-gold);
}
.home-hero-form .devis-card {
    background: rgba(20,20,20,.97);
    border: 1px solid rgba(212,175,55,.25);
    border-radius: 12px;
    padding: 14px 22px 12px;
}
/* ——— Hero form : tout visible, zéro scroll ——— */
.home-hero-form { overflow: visible; }
.home-hero-form .devis-urgency,
.hero-right .devis-urgency  { font-size: .65rem; padding: 3px 10px; margin-bottom: 6px; display: inline-flex; }
.home-hero-form .devis-title,
.hero-right .devis-title    { font-size: .95rem; margin-bottom: 1px; line-height: 1.25; }
.home-hero-form .devis-subtitle,
.hero-right .devis-subtitle { font-size: .68rem; margin-bottom: 6px; color: rgba(255,255,255,.5); }

/* Forminator — margin et rows (hero accueil + hero pages villes) */
.home-hero-form .forminator-custom-form,
.hero-right .forminator-custom-form { margin: 0 !important; }

.home-hero-form .forminator-row,
.hero-right .forminator-row  { display: flex !important; flex-wrap: wrap !important; gap: 0 8px !important; margin-bottom: 4px !important; }

.home-hero-form .forminator-col-6,
.hero-right .forminator-col-6  { width: calc(50% - 4px) !important; flex-shrink: 0 !important; }

.home-hero-form .forminator-col-12,
.hero-right .forminator-col-12 { width: 100% !important; }

.home-hero-form .forminator-field,
.hero-right .forminator-field  { margin-bottom: 0 !important; }

/* Inputs compacts — fond blanc, texte noir */
.home-hero-form .forminator-input,
.hero-right .forminator-input {
    padding: 5px 10px !important;
    font-size: .82rem !important;
    min-height: unset !important;
    height: 30px !important;
    background: #ffffff !important;
    color: #111111 !important;
    border: 1px solid #ccc !important;
    border-radius: 5px !important;
}
.home-hero-form .forminator-input::placeholder,
.hero-right .forminator-input::placeholder { color: #888 !important; }

.home-hero-form label.forminator-label,
.hero-right label.forminator-label { font-size: .65rem !important; margin-bottom: 2px !important; letter-spacing: .04em; }

/* Textarea visible dans tous les formulaires (demande utilisateur 2026-03-30) */
.home-hero-form .forminator-row:has(textarea) { display: block; }
.hero-right .forminator-row:has(textarea) { display: block; }

/* Checkboxes en 2 colonnes */
.home-hero-form .forminator-field-checkbox .forminator-field,
.hero-right .forminator-field-checkbox .forminator-field {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 12px !important;
}
/* Label "Services" pleine largeur */
.home-hero-form .forminator-field-checkbox .forminator-field > .forminator-label,
.hero-right .forminator-field-checkbox .forminator-field > .forminator-label {
    grid-column: 1 / -1 !important;
}

.home-hero-form .forminator-checkbox-label,
.hero-right .forminator-checkbox-label { font-size: .74rem !important; line-height: 1.4 !important; }

.home-hero-form .forminator-checkbox,
.hero-right .forminator-checkbox { padding: 1px 0 !important; }

/* Masquer lien admin Forminator */
.home-hero-form .forminator-module-edit-link,
.hero-right .forminator-module-edit-link { display: none !important; }

/* Bouton submit */
.home-hero-form .forminator-button-submit,
.hero-right .forminator-button-submit { padding: 9px 20px !important; font-size: .88rem !important; margin-top: 6px !important; width: 100% !important; }
.btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

/* Section header générique */
.section-header {
    text-align: center;
    margin-bottom: 48px;
}
.section-eyebrow {
    font-family: var(--font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
    display: block;
    margin-bottom: 10px;
}
.section-title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: var(--color-text);
    margin-bottom: 16px;
    line-height: 1.25;
}
.section-sub {
    color: var(--color-muted);
    max-width: 640px;
    margin: 0 auto;
    font-size: .95rem;
    line-height: 1.7;
}

/* Services grid */
.home-services-section {
    padding: 80px 0;
    background: var(--color-surface);
}
.home-services-inner {
    width: min(1200px, 94%);
    margin: 0 auto;
}
.home-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.service-card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 36px 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: relative;
    transition: border-color .25s, transform .25s;
}
.service-card:hover {
    border-color: rgba(212,175,55,.5);
    transform: translateY(-4px);
}
.service-card-featured {
    border-color: rgba(212,175,55,.4);
    background: linear-gradient(160deg, rgba(20,20,20,1) 60%, rgba(212,175,55,.06) 100%);
}
.service-card-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-gold);
    color: #000;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 4px 14px;
    border-radius: 20px;
    white-space: nowrap;
}
.service-card-icon {
    width: 52px;
    height: 52px;
    border-radius: 10px;
    background: rgba(212,175,55,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    font-size: 1.3rem;
}
.service-card-title {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    color: var(--color-text);
    margin: 0;
}
.service-card-desc {
    color: var(--color-muted);
    font-size: .9rem;
    line-height: 1.65;
    margin: 0;
}
.service-card-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.service-card-list li {
    color: var(--color-muted);
    font-size: .85rem;
    display: flex;
    align-items: center;
    gap: 8px;
}
.service-card-list li i {
    color: var(--color-gold);
    font-size: .75rem;
    flex-shrink: 0;
}
.service-card-link {
    margin-top: auto;
    color: var(--color-gold);
    text-decoration: none;
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .04em;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: gap .2s;
}
.service-card-link:hover { gap: 14px; }

/* Reviews */
.home-reviews-section {
    padding: 80px 0;
    background: var(--color-bg);
}
.home-reviews-inner {
    width: min(1200px, 94%);
    margin: 0 auto;
}
.home-reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 48px;
}
.review-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 28px 24px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.review-stars { color: var(--color-gold); font-size: .9rem; }
.review-text {
    color: var(--color-muted);
    font-size: .9rem;
    line-height: 1.65;
    flex: 1;
    font-style: italic;
}
.review-author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
}
.review-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(212,175,55,.15);
    color: var(--color-gold);
    font-size: .75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.review-author strong {
    display: block;
    font-size: .9rem;
    color: var(--color-text);
}
.review-author span {
    font-size: .75rem;
    color: var(--color-muted);
}
.reviews-aggregate {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--color-muted);
    font-size: .9rem;
}
.reviews-aggregate .reviews-stars { color: var(--color-gold); }
.reviews-aggregate strong { color: var(--color-text); }

/* About founders */
.home-about-section {
    padding: 80px 0;
    background: var(--color-surface);
}
.home-about-inner {
    width: min(1200px, 94%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}
.home-about-text {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.home-about-text p {
    color: var(--color-muted);
    line-height: 1.7;
    margin: 0;
}
.home-about-founders {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.founder-card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}
.founder-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}
.founder-info {
    padding: 14px;
}
.founder-info strong {
    display: block;
    color: var(--color-text);
    font-size: .9rem;
    margin-bottom: 4px;
}
.founder-info span {
    color: var(--color-gold);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* Barre garanties accueil */
.home-guarantee-strip {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 36px 0;
}
.home-guarantee-inner {
    width: min(1200px, 94%);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
.guarantee-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    flex: 1;
    min-width: 160px;
}
.guarantee-item i {
    font-size: 1.4rem;
    color: var(--color-gold);
    margin-bottom: 4px;
}
.guarantee-item strong {
    color: var(--color-text);
    font-size: .9rem;
}
.guarantee-item span {
    color: var(--color-muted);
    font-size: .78rem;
    line-height: 1.4;
}
.guarantee-sep {
    width: 1px;
    height: 50px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* Boutons dans la section À propos — inline, pas plein largeur */
.home-about-cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
}
.home-about-cta .btn-luxe,
.home-about-cta .btn-luxe-filled {
    padding: 12px 24px;
    font-size: 11px;
}

/* SEO text section homepage */
.home-seo-content {
    padding: 60px 0;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}
.home-seo-inner {
    width: min(860px, 94%);
    margin: 0 auto;
    color: var(--color-muted);
    line-height: 1.8;
    font-size: .9rem;
}
.home-seo-inner h2 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    color: var(--color-text);
    margin: 32px 0 12px;
}
.home-seo-inner h2:first-child { margin-top: 0; }
.home-seo-inner p { margin: 0 0 16px; }
.home-seo-inner strong { color: var(--color-text); }

/* ══════════════════════════════════════════════════════
   SECTION SEO — Conciergerie d'appartement (homepage)
   ══════════════════════════════════════════════════════ */
.home-seo-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 80px 24px;
}
.home-seo-wrap {
    width: min(1080px, 100%);
    margin: 0 auto;
}

/* En-tête éditorial */
.seo-header {
    max-width: 760px;
    margin: 0 auto 56px;
    text-align: center;
}
.seo-main-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.8vw, 2.1rem);
    color: var(--color-text);
    line-height: 1.3;
    margin: 12px 0 20px;
}
.seo-lead {
    color: var(--color-muted);
    font-size: 1rem;
    line-height: 1.8;
}
.seo-lead strong { color: var(--color-text); font-weight: 600; }

/* Deux colonnes editoriales (toujours visibles) */
.seo-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 56px;
    margin-bottom: 48px;
}
.seo-col-title {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    color: var(--color-text);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(212,175,55,.3);
}
.seo-col p {
    color: var(--color-muted);
    font-size: .93rem;
    line-height: 1.8;
    margin: 0 0 14px;
}
.seo-col strong { color: var(--color-text); font-weight: 600; }

/* Chiffres clés inline */
.seo-stats-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    background: rgba(212,175,55,.06);
    border: 1px solid rgba(212,175,55,.2);
    padding: 24px 32px;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 0;
}
.seo-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 8px 32px;
}
.seo-stat strong {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    color: var(--color-gold);
    line-height: 1;
    margin-bottom: 4px;
}
.seo-stat span {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-muted);
}
.seo-stat-sep {
    width: 1px;
    height: 36px;
    background: rgba(212,175,55,.25);
    flex-shrink: 0;
}

/* ── Contenu étendu ── */
.seo-full {
    border-top: 1px solid var(--color-border);
    padding-top: 40px;
    margin-top: 8px;
}
.seo-full h3 {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: var(--color-text);
    margin: 40px 0 14px;
    padding-left: 16px;
    border-left: 3px solid var(--color-gold);
    line-height: 1.35;
}
.seo-full h3:first-child { margin-top: 0; }
.seo-full p {
    color: var(--color-muted);
    font-size: .93rem;
    line-height: 1.85;
    margin: 0 0 16px;
    max-width: 900px;
}
.seo-full strong { color: var(--color-text); font-weight: 600; }

/* Grille services (icône + texte) */
.seo-services-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 20px 0 32px;
}
.seo-service-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: rgba(255,255,255,.03);
    border: 1px solid var(--color-border);
    padding: 16px 18px;
}
.seo-service-item > i {
    color: var(--color-gold);
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.seo-service-item > div { display: flex; flex-direction: column; gap: 4px; }
.seo-service-item strong {
    font-size: .88rem;
    color: var(--color-text);
    font-weight: 600;
}
.seo-service-item span {
    font-size: .8rem;
    color: var(--color-muted);
    line-height: 1.5;
}

/* Liste SEO avec chevron doré */
.seo-list {
    list-style: none;
    padding: 0;
    margin: 14px 0 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.seo-list li {
    padding-left: 22px;
    position: relative;
    color: var(--color-muted);
    font-size: .92rem;
    line-height: 1.65;
}
.seo-list li::before {
    content: '›';
    position: absolute;
    left: 0;
    color: var(--color-gold);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.35;
}
.seo-list strong { color: var(--color-text); }

/* Bouton "Lire la suite" */
.seo-toggle-wrap {
    margin-top: 36px;
    display: flex;
    justify-content: center;
}
.seo-read-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: transparent;
    border: 1px solid var(--color-gold);
    color: var(--color-gold);
    font-family: var(--font-body);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 14px 32px;
    cursor: pointer;
    transition: background .25s, color .25s;
}
.seo-read-more-btn:hover {
    background: var(--color-gold);
    color: #000;
}
.seo-read-more-btn .btn-label-more,
.seo-read-more-btn .btn-label-less {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .seo-services-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .home-seo-section { padding: 52px 18px; }
    .seo-cols { grid-template-columns: 1fr; gap: 28px; }
    .seo-stats-row { gap: 0; padding: 20px 16px; }
    .seo-stat { padding: 8px 16px; }
    .seo-stat strong { font-size: 1.4rem; }
    .seo-stat-sep { display: none; }
    .seo-stats-row { display: grid; grid-template-columns: 1fr 1fr; }
    .seo-full h3 { font-size: 1rem; }
    .seo-read-more-btn { padding: 12px 20px; font-size: .75rem; }
}

/* Responsive homepage tablette */
@media (max-width: 1024px) {
    .home-hero-inner {
        grid-template-columns: 1fr;
    }
    .home-hero-content { order: 1; }
    .home-hero-form    { order: 2; }
    .home-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .home-about-inner {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 768px) {
    /* Hero homepage mobile : texte EN PREMIER, formulaire EN DESSOUS
       On passe le hero en block pour neutraliser le flex + align-items:center
       qui centrait le contenu et cachait le texte quand text+form > 100vh */
    .home-hero {
        min-height: auto;
        height: auto;
        display: block;
    }
    .home-hero-inner {
        grid-template-columns: 1fr !important;
        min-height: auto !important;
        padding: calc(var(--nav-h) + 24px) 18px 40px;
        gap: 28px;
    }
    .home-hero-content {
        order: 1;
    }
    .home-hero-form {
        order: 2;
    }
    .home-services-grid,
    .home-reviews-grid {
        grid-template-columns: 1fr;
    }
    .home-about-founders {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* =============================================
   SIMULATEUR DE REVENUS v2 — sliders
   ============================================= */

.simulator-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 64px 20px;
}

.sim-ui {
    width: min(1100px, 100%);
    margin: 0 auto;
}

.sim-header {
    text-align: center;
    margin-bottom: 36px;
}

.sim-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--color-text);
    margin-bottom: 10px;
    line-height: 1.3;
}

.sim-sub {
    color: var(--color-muted);
    font-size: .9rem;
}

/* Grid panel */
.sim-panel {
    background: rgba(10,10,10,.98);
    border: 1px solid rgba(212,175,55,.2);
    border-radius: 16px;
    padding: 32px 36px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 40px;
}

.sim-block-full { grid-column: 1 / -1; }

.sim-block-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: 12px;
}

/* Type selector */
.sim-types {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sim-type-btn {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    color: var(--color-muted);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    padding: 8px 18px;
    cursor: pointer;
    transition: border-color .2s, color .2s, background .2s;
}

.sim-type-btn:hover {
    border-color: rgba(212,175,55,.4);
    color: var(--color-text);
}

.sim-type-btn.is-active {
    border-color: var(--color-gold);
    background: rgba(212,175,55,.1);
    color: var(--color-gold);
}

/* Range slider */
.sim-range {
    width: 100%;
    accent-color: var(--color-gold);
    cursor: pointer;
    margin: 6px 0;
}

.sim-range-ends {
    display: flex;
    justify-content: space-between;
    font-size: .7rem;
    color: #555;
    margin-top: 4px;
}

/* Options */
.sim-opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sim-opt {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .82rem;
    color: var(--color-muted);
    cursor: pointer;
    padding: 7px 12px;
    border: 1px solid #2a2a2a;
    border-radius: 8px;
    transition: border-color .2s, color .2s;
}

.sim-opt:hover {
    border-color: rgba(212,175,55,.3);
    color: var(--color-text);
}

.sim-opt input[type="checkbox"] {
    accent-color: var(--color-gold);
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.sim-opt:has(input:checked) {
    border-color: rgba(212,175,55,.5);
    color: var(--color-text);
    background: rgba(212,175,55,.07);
}

/* Result bar */
.sim-result-bar {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    background: linear-gradient(135deg, rgba(212,175,55,.12), rgba(10,10,10,.6));
    border: 1px solid rgba(212,175,55,.3);
    border-radius: 12px;
    padding: 20px 28px;
}

.sim-res-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sim-res-lbl {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.sim-res-amount {
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    color: var(--color-gold);
    line-height: 1;
}

.sim-res-range {
    font-size: .88rem;
    color: var(--color-text);
    font-weight: 600;
}

.sim-res-annual {
    font-size: 1.1rem;
    color: var(--color-text);
    font-weight: 700;
}

.sim-res-sep {
    width: 1px;
    height: 40px;
    background: rgba(212,175,55,.2);
    flex-shrink: 0;
}

.sim-res-cta {
    margin-left: auto;
}

/* --- Responsive simulateur v2 --- */
@media (max-width: 768px) {
    .sim-panel {
        grid-template-columns: 1fr;
        padding: 24px 20px;
        gap: 20px;
    }
    .sim-block-full { grid-column: 1; }
    .sim-result-bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .sim-res-sep { width: 100%; height: 1px; }
    .sim-res-cta { margin-left: 0; width: 100%; text-align: center; }
}

/* =============================================
   FAQ — PAGES VILLES
   ============================================= */

.ville-faq {
    background: var(--color-bg);
    padding: 64px 0;
    border-top: 1px solid var(--color-border);
}

.ville-faq-wrap {
    width: min(800px, 94%);
    margin: 0 auto;
}

.ville-faq-header {
    text-align: center;
    margin-bottom: 40px;
}

.ville-faq-tag {
    display: inline-block;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
    border: 1px solid rgba(212,175,55,.35);
    border-radius: 20px;
    padding: 4px 14px;
    margin-bottom: 14px;
}

.ville-faq-title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    color: var(--color-text);
    line-height: 1.3;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.faq-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    overflow: hidden;
    transition: border-color .2s;
}

.faq-item:has(.faq-q[aria-expanded="true"]) {
    border-color: rgba(212,175,55,.3);
}

.faq-q {
    width: 100%;
    background: none;
    border: none;
    padding: 18px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    text-align: left;
    color: var(--color-text);
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.4;
    transition: color .2s;
}

.faq-q:hover {
    color: var(--color-gold);
}

.faq-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: 1px solid rgba(212,175,55,.4);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    font-size: 1rem;
    line-height: 1;
    transition: transform .25s, background .2s;
}

.faq-q[aria-expanded="true"] .faq-icon {
    transform: rotate(45deg);
    background: rgba(212,175,55,.12);
}

.faq-a {
    padding: 0 22px 18px;
    color: var(--color-muted);
    font-size: .88rem;
    line-height: 1.75;
}

.faq-a[hidden] {
    display: none;
}

/* --- Responsive FAQ --- */
@media (max-width: 600px) {
    .faq-q {
        font-size: .88rem;
        padding: 14px 16px;
    }
    .faq-a {
        padding: 0 16px 14px;
        font-size: .84rem;
    }
}

/* ============================================================
   PAGE À PROPOS — redesign
   ============================================================ */

/* Stats strip */
.about-stats-strip {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 48px 20px;
}

.about-stats-inner {
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    text-align: center;
}

.about-stat-num {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--color-gold);
    line-height: 1;
    display: block;
    margin-bottom: 6px;
}

.about-stat-lbl {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
}

/* Story section */
.about-story-section {
    padding: 72px 20px;
}

.about-story-inner {
    width: min(var(--max-content), 100%);
    margin: 0 auto;
}

.about-story-eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 16px;
}

.about-story-title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: var(--color-text);
    line-height: 1.3;
    margin-bottom: 24px;
}

.about-story-body {
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.85;
}

/* Team section */
.about-team-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    padding: 64px 20px;
}

.about-team-inner {
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
}

.about-team-header {
    text-align: center;
    margin-bottom: 40px;
}

.about-team-eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 12px;
}

.about-team-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--color-text);
}

.about-team-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    max-width: 700px;
    margin: 0 auto;
}

.about-team-card {
    background: rgba(10,10,10,.9);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
    text-align: center;
    padding-bottom: 28px;
    transition: border-color .2s;
}

.about-team-card:hover {
    border-color: rgba(212,175,55,.3);
}

.about-team-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    object-position: top;
    display: block;
    margin-bottom: 16px;
}

.about-team-name {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    color: var(--color-text);
    display: block;
    margin-bottom: 4px;
}

.about-team-role {
    font-size: .78rem;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* Values section tweak (already exists but fix z) */
.about-values-section {
    padding: 64px 20px;
}

@media (max-width: 768px) {
    .about-stats-inner {
        grid-template-columns: repeat(2, 1fr);
    }
    .about-team-grid {
        grid-template-columns: 1fr;
        max-width: 360px;
    }
}

/* ============================================================
   PAGE SERVICE — redesign v2
   ============================================================ */

/* Hero buttons */
.service-hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

/* Features grid */
.svc-features-section {
    padding: 64px 20px;
    border-bottom: 1px solid var(--color-border);
}

.svc-features-inner {
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
}

.svc-features-header {
    text-align: center;
    margin-bottom: 40px;
}

.svc-features-eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 12px;
}

.svc-features-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--color-text);
}

.svc-features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.svc-feature-card {
    background: rgba(10,10,10,.9);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 24px 22px;
    transition: border-color .2s, transform .2s;
}

.svc-feature-card:hover {
    border-color: rgba(212,175,55,.3);
    transform: translateY(-2px);
}

.svc-feature-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(212,175,55,.1);
    border: 1px solid rgba(212,175,55,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    font-size: 1.1rem;
    margin-bottom: 14px;
}

.svc-feature-title {
    font-family: var(--font-heading);
    font-size: .95rem;
    color: var(--color-text);
    margin-bottom: 8px;
}

.svc-feature-desc {
    font-size: .83rem;
    color: var(--color-muted);
    line-height: 1.7;
}

/* Process steps */
.svc-process-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 64px 20px;
}

.svc-process-inner {
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
}

.svc-process-header {
    text-align: center;
    margin-bottom: 40px;
}

.svc-process-eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 12px;
}

.svc-process-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--color-text);
}

.svc-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    position: relative;
}

.svc-step {
    text-align: center;
    padding: 28px 20px;
}

.svc-step-num {
    font-family: var(--font-heading);
    font-size: 3.5rem;
    color: rgba(212,175,55,.15);
    line-height: 1;
    display: block;
    margin-bottom: 8px;
}

.svc-step-icon {
    color: var(--color-gold);
    font-size: 1.4rem;
    margin-bottom: 12px;
    display: block;
}

.svc-step-title {
    font-family: var(--font-heading);
    font-size: 1rem;
    color: var(--color-text);
    margin-bottom: 8px;
}

.svc-step-desc {
    font-size: .83rem;
    color: var(--color-muted);
    line-height: 1.7;
}

/* Improved CTA bar */
.service-cta-bar {
    background: linear-gradient(135deg, rgba(212,175,55,.1), rgba(10,10,10,.6));
    border-top: 1px solid rgba(212,175,55,.2);
    border-bottom: 1px solid rgba(212,175,55,.2);
    padding: 32px 20px;
}

.service-cta-bar-inner {
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.service-cta-text strong {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    color: var(--color-text);
    display: block;
    margin-bottom: 4px;
}

.service-cta-text span {
    font-size: .88rem;
    color: var(--color-muted);
}

.service-cta-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* Service form section compact */
.service-form-section {
    padding: 52px 20px;
    background: #0a0a0a;
    border-top: 1px solid var(--color-border);
}

.service-form-wrap {
    width: min(620px, 100%);
    margin: 0 auto;
    text-align: center;
}

.service-form-header {
    margin-bottom: 24px;
}

.service-form-eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 10px;
}

.service-form-title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 3vw, 2rem);
    color: var(--color-text);
    margin-bottom: 8px;
}

.service-form-sub {
    font-size: .84rem;
    color: var(--color-muted);
}

.service-devis-card {
    text-align: left;
    background: rgba(20,20,20,.95);
    border: 1px solid rgba(212,175,55,.2);
    border-radius: 14px;
    padding: 28px 28px;
}

.service-devis-card .forminator-custom-form { margin: 0 !important; }
.service-devis-card .forminator-row { display: flex !important; flex-wrap: wrap !important; gap: 0 8px !important; margin-bottom: 6px !important; }
.service-devis-card .forminator-col-6 { width: calc(50% - 4px) !important; flex-shrink: 0 !important; }
.service-devis-card .forminator-col-12 { width: 100% !important; }
.service-devis-card .forminator-field { margin-bottom: 2px !important; }
.service-devis-card label.forminator-label { font-size: .72rem !important; color: #aaa !important; margin-bottom: 3px !important; }
.service-devis-card .forminator-input,
.service-devis-card .forminator-custom-form textarea {
    background: #1a1a1a !important;
    color: #f0f0f0 !important;
    border: 1px solid #333 !important;
    border-radius: 5px !important;
    padding: 8px 12px !important;
    font-size: .88rem !important;
    min-height: unset !important;
}
.service-devis-card .forminator-input::placeholder,
.service-devis-card .forminator-custom-form textarea::placeholder { color: #666 !important; }
.service-devis-card .forminator-custom-form textarea { height: 70px !important; resize: none !important; }
.service-devis-card .forminator-field-checkbox .forminator-field {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4px 12px !important;
}
.service-devis-card .forminator-field-checkbox .forminator-field > .forminator-label { grid-column: 1 / -1 !important; }
.service-devis-card .forminator-button-submit { width: 100% !important; margin-top: 8px !important; }
.service-devis-card .forminator-module-edit-link { display: none !important; }

.devis-phone-alt {
    text-align: center;
    margin-top: 16px;
    font-size: .82rem;
    color: var(--color-muted);
}

.devis-phone-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-gold);
    font-weight: 600;
    text-decoration: none;
    font-size: .95rem;
    margin-top: 4px;
}

@media (max-width: 768px) {
    .svc-features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .svc-steps {
        grid-template-columns: 1fr;
    }
    .service-cta-bar-inner {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 500px) {
    .svc-features-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PAGE HUB — NOS SERVICES
============================================================ */

.hub-services-section,
.hub-why-section,
.hub-zones-section {
    padding: 80px 30px;
}

.hub-services-section {
    background: var(--color-bg);
}

.hub-why-section {
    background: var(--color-surface);
}

.hub-zones-section {
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.hub-services-inner,
.hub-why-inner,
.hub-zones-inner {
    max-width: var(--max-wide);
    margin: 0 auto;
}

.hub-services-header {
    text-align: center;
    margin-bottom: 52px;
}

.hub-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 12px;
}

.hub-title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: #fff;
    margin-bottom: 16px;
}

.hub-sub {
    font-size: .95rem;
    color: var(--color-muted);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

/* --- Cards grid --- */
.hub-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    align-items: start;
}

.hub-service-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 36px 30px 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    transition: border-color .2s, transform .2s;
}

.hub-service-card:hover {
    border-color: var(--color-gold);
    transform: translateY(-3px);
}

.hub-card-featured {
    border-color: rgba(212, 175, 55, .4);
}

.hub-card-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-gold);
    color: #0b0b0b;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 4px 14px;
    border-radius: 20px;
    white-space: nowrap;
}

.hub-card-icon {
    width: 52px;
    height: 52px;
    background: rgba(212,175,55,.1);
    border: 1px solid rgba(212,175,55,.25);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: var(--color-gold);
}

.hub-card-title {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    color: #fff;
    margin: 0;
}

.hub-card-desc {
    font-size: .9rem;
    color: var(--color-muted);
    line-height: 1.7;
    margin: 0;
}

.hub-card-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hub-card-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: .85rem;
    color: var(--color-text);
}

.hub-card-features li i {
    color: var(--color-gold);
    margin-top: 4px;
    flex-shrink: 0;
}

.hub-card-cta-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.hub-sub-link {
    font-size: .8rem;
    color: var(--color-muted);
    text-decoration: none;
    padding: 4px 0;
    border-bottom: 1px solid var(--color-border);
    transition: color .2s;
}

.hub-sub-link:hover {
    color: var(--color-gold);
    border-bottom-color: var(--color-gold);
}

/* --- Why grid --- */
.hub-why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px 40px;
}

.hub-why-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hub-why-icon {
    font-size: 1.8rem;
    color: var(--color-gold);
}

.hub-why-item h3 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    color: #fff;
}

.hub-why-item p {
    font-size: .88rem;
    color: var(--color-muted);
    line-height: 1.7;
}

/* --- Zones tags --- */
.hub-zones-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 32px;
}

.hub-zones-tags span {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 20px;
    padding: 6px 18px;
    font-size: .82rem;
    color: var(--color-text);
}

/* --- CTA section --- */
.hub-cta-section {
    padding: 80px 30px;
    background: linear-gradient(135deg, #0f0f0f 0%, #1a1508 50%, #0f0f0f 100%);
    text-align: center;
    border-top: 1px solid rgba(212,175,55,.2);
}

.hub-cta-inner {
    max-width: 640px;
    margin: 0 auto;
}

.hub-cta-title {
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    color: #fff;
    margin: 12px 0 18px;
}

.hub-cta-sub {
    font-size: .95rem;
    color: var(--color-muted);
    line-height: 1.8;
    margin-bottom: 36px;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .hub-cards-grid {
        grid-template-columns: 1fr;
        max-width: 520px;
        margin: 0 auto;
    }
    .hub-why-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .hub-services-section,
    .hub-why-section,
    .hub-zones-section,
    .hub-cta-section {
        padding: 56px 20px;
    }
    .hub-why-grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════════════════════
   TEMPLATE PRESTATAIRE PAR VILLE — page-prestataire.php
   ══════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.presta-hero {
    background: url('https://images.unsplash.com/photo-1581578731548-c64695cc6952?w=1600&q=80') center/cover no-repeat;
    position: relative;
    /* Exactement un écran, comme les pages conciergerie */
    height: 100vh;
    max-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.presta-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(11,11,11,.94) 50%, rgba(11,11,11,.75) 100%);
}
.presta-hero-inner {
    position: relative;
    z-index: 2;
    width: min(1280px, 96%);
    margin: 0 auto;
    padding: 32px 0 16px;
    display: grid;
    grid-template-columns: 1fr 430px;
    gap: 40px;
    align-items: center;
}
.presta-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 10px;
}
.presta-hero-title {
    font-family: var(--font-heading);
    /* Réduit pour tenir dans 100vh */
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    color: #fff;
    line-height: 1.22;
    margin: 0 0 12px;
}
.presta-city-accent { color: var(--color-gold); }
.presta-hero-sub {
    color: rgba(255,255,255,.72);
    font-size: .88rem;
    line-height: 1.6;
    max-width: 520px;
    margin: 0 0 14px;
}
.presta-hero-sub strong { color: #fff; }
.presta-quick-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.presta-quick-list li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.85);
    font-size: .83rem;
}
.presta-quick-list li i { color: var(--color-gold); font-size: .8rem; flex-shrink: 0; }

/* CTA hero */
.presta-hero-cta { display: flex; flex-wrap: wrap; gap: 14px; }
.btn-presta-primary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--color-gold);
    color: #000;
    font-weight: 700;
    font-size: .9rem;
    letter-spacing: .04em;
    padding: 14px 28px;
    text-decoration: none;
    transition: background .25s, transform .2s;
}
.btn-presta-primary:hover { background: #c9a227; transform: translateY(-2px); color: #000; }
.btn-presta-primary.btn-large { font-size: 1rem; padding: 18px 36px; }
.btn-presta-secondary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(255,255,255,.4);
    color: rgba(255,255,255,.85);
    font-size: .88rem;
    padding: 14px 24px;
    text-decoration: none;
    transition: border-color .2s, color .2s;
}
.btn-presta-secondary:hover { border-color: var(--color-gold); color: var(--color-gold); }

/* Carte latérale hero */
.presta-hero-card {
    background: rgba(20,20,20,.97);
    border: 1px solid rgba(212,175,55,.3);
    padding: 28px 24px;
}
.presta-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-gold);
    font-weight: 700;
    font-size: .9rem;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(212,175,55,.2);
}
.presta-card-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.presta-card-list li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.presta-card-list li:last-child { border-bottom: none; padding-bottom: 0; }
.presta-card-number {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-gold);
    line-height: 1;
}
.presta-card-label {
    font-size: .8rem;
    color: rgba(255,255,255,.55);
}
.btn-presta-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--color-gold);
    color: #000;
    font-weight: 700;
    font-size: .85rem;
    padding: 12px 18px;
    text-decoration: none;
    transition: background .2s;
}
.btn-presta-card:hover { background: #c9a227; color: #000; }

/* ── Sections communes ── */
.presta-section-inner {
    width: min(1100px, 94%);
    margin: 0 auto;
}

/* ── Étapes ── */
.presta-steps-section {
    background: var(--color-bg);
    padding: 80px 20px;
    border-top: 1px solid var(--color-border);
}
.presta-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    margin-top: 48px;
}
.presta-step {
    position: relative;
    padding-top: 16px;
}
.presta-step-num {
    width: 44px;
    height: 44px;
    background: var(--color-gold);
    color: #000;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.presta-step h3 {
    font-family: var(--font-heading);
    font-size: 1rem;
    color: var(--color-text);
    margin: 0 0 10px;
}
.presta-step p {
    color: var(--color-muted);
    font-size: .88rem;
    line-height: 1.7;
    margin: 0;
}

/* ── Missions ── */
.presta-missions-section {
    background: var(--color-surface);
    padding: 80px 20px;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.presta-missions-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 48px;
}
.presta-mission-card {
    background: rgba(255,255,255,.03);
    border: 1px solid var(--color-border);
    padding: 24px 20px;
    transition: border-color .2s;
}
.presta-mission-card:hover { border-color: rgba(212,175,55,.4); }
.presta-mission-card > i {
    font-size: 1.4rem;
    color: var(--color-gold);
    margin-bottom: 14px;
    display: block;
}
.presta-mission-card h3 {
    font-family: var(--font-heading);
    font-size: .98rem;
    color: var(--color-text);
    margin: 0 0 10px;
}
.presta-mission-card p {
    color: var(--color-muted);
    font-size: .85rem;
    line-height: 1.65;
    margin: 0;
}

/* ── CTA central ── */
.presta-cta-section {
    background: linear-gradient(135deg, #0d0d0d 60%, #1a1500 100%);
    border-top: 2px solid var(--color-gold);
    padding: 80px 20px;
    text-align: center;
}
.presta-cta-inner { max-width: 700px; margin: 0 auto; }
.presta-cta-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    color: #fff;
    line-height: 1.3;
    margin: 14px 0 20px;
}
.presta-cta-sub {
    color: rgba(255,255,255,.65);
    font-size: .95rem;
    line-height: 1.75;
    margin: 0 0 32px;
}
.presta-cta-sub strong { color: #fff; }
.presta-cta-reassurance {
    margin-top: 16px;
    font-size: .8rem;
    color: rgba(255,255,255,.4);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.presta-cta-reassurance i { color: var(--color-gold); }

/* ── Contenu SEO ── */
.presta-seo-section {
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
    padding: 72px 20px;
}
.presta-seo-inner {
    width: min(1040px, 94%);
    margin: 0 auto;
}
.presta-seo-content { color: var(--color-muted); font-size: .92rem; line-height: 1.85; }

/* ── Blocs alternés texte / icône ─────────────────────────── */
.seo-block {
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 36px;
    padding: 40px 0;
    border-bottom: 1px solid var(--color-border);
    align-items: center;
}
.seo-block-even {
    grid-template-columns: 200px 1fr;
}
.seo-block-even .seo-block-media { order: -1; }
.seo-block:last-of-type { border-bottom: none; }

.seo-block-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.seo-block-text h2,
.seo-block-text h3 {
    font-family: var(--font-heading);
    color: var(--color-text);
    margin: 0 0 18px;
    line-height: 1.3;
    position: relative;
    padding-bottom: 14px;
}
.seo-block-text h2::after,
.seo-block-text h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 36px;
    height: 2px;
    background: var(--color-gold);
    opacity: .6;
    border-radius: 2px;
}
.seo-block-text h2 { font-size: 1.3rem; }
.seo-block-text h3 { font-size: 1.1rem; }
.seo-block-text p {
    margin: 0;
    font-size: .95rem;
    color: var(--color-muted);
    line-height: 1.9;
    letter-spacing: .01em;
}
.seo-block-text strong { color: var(--color-text); font-weight: 600; }
.seo-block-text ul { padding-left: 18px; margin: 0 0 14px; }
.seo-block-text li { margin-bottom: 6px; }

.seo-block-media {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-gold);
    padding: 36px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-height: 160px;
}
.seo-block-even .seo-block-media { border-top-color: rgba(212,175,55,.5); }
.seo-media-icon {
    font-size: 3.2rem;
    color: var(--color-gold);
    opacity: .85;
}

/* ── Encarts CTA inline ────────────────────────────────────── */
.seo-cta-insert {
    display: flex;
    align-items: center;
    gap: 20px;
    background: var(--color-surface);
    border: 1px solid rgba(212,175,55,.35);
    border-left: 4px solid var(--color-gold);
    padding: 22px 24px;
    margin: 8px 0 0;
}
.seo-cta-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(212,175,55,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-gold);
    font-size: 1.1rem;
}
.seo-cta-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.seo-cta-body strong {
    color: var(--color-text);
    font-size: .95rem;
}
.seo-cta-body span {
    color: var(--color-muted);
    font-size: .8rem;
}
.seo-cta-btn {
    flex-shrink: 0;
    background: var(--color-gold);
    color: #1a1005;
    font-size: .82rem;
    font-weight: 700;
    padding: 10px 18px;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity .2s;
}
.seo-cta-btn:hover { opacity: .85; }

/* Fallback si JS n'a pas tourné (contenu sans h2) */
.presta-seo-content > h2 {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    color: var(--color-text);
    margin: 36px 0 12px;
    padding-left: 14px;
    border-left: 3px solid var(--color-gold);
}
.presta-seo-content > h3 {
    font-family: var(--font-heading);
    font-size: 1rem;
    color: var(--color-text);
    margin: 28px 0 10px;
}
.presta-seo-content > p { margin: 0 0 16px; }
.presta-seo-content strong { color: var(--color-text); font-weight: 600; }
.presta-seo-content > ul { padding-left: 20px; margin: 0 0 16px; }
.presta-seo-content li { margin-bottom: 6px; }

/* Liens dans la zone d'intervention */
.zone-cities-list li a {
    color: var(--color-text);
    text-decoration: none;
    transition: color .2s;
}
.zone-cities-list li a:hover { color: var(--color-gold); }

/* Masquer les outils Tailwind/YouTube qui viennent des anciens articles */
.presta-seo-content script,
.presta-seo-content iframe,
.presta-seo-content .wp-block-embed { display: none; }

/* ── Responsive ── */
@media (max-width: 1024px) {
    .presta-hero-inner { grid-template-columns: 1fr; }
    .presta-hero-card { max-width: 480px; }
    .presta-steps-grid { grid-template-columns: 1fr 1fr; }
    .presta-missions-grid { grid-template-columns: 1fr 1fr; }
    .seo-block,
    .seo-block-even { grid-template-columns: 1fr 160px; }
    .seo-block-even .seo-block-media { order: -1; }
}
@media (max-width: 768px) {
    .presta-hero { min-height: auto; }
    .presta-hero-inner { padding: 24px 18px 40px; gap: 32px; }
    .presta-hero-title { font-size: 1.7rem; }
    .presta-steps-section,
    .presta-missions-section,
    .presta-cta-section { padding: 52px 18px; }
    .presta-steps-grid { grid-template-columns: 1fr; gap: 28px; }
    .presta-missions-grid { grid-template-columns: 1fr; }
    .btn-presta-primary.btn-large { font-size: .9rem; padding: 16px 24px; }
    /* Blocs SEO : colonne unique sur mobile */
    .seo-block,
    .seo-block-even { grid-template-columns: 1fr; }
    .seo-block-media { display: none; }
    .seo-cta-insert { flex-direction: column; align-items: flex-start; gap: 14px; }
    .seo-cta-btn { width: 100%; text-align: center; }
}

/* ══════════════════════════════════════════════════════════════
   HUB PRESTATAIRES — page-prestataire-hub.php
   ══════════════════════════════════════════════════════════════ */

/* Hero */
.phub-hero {
    background: url('https://images.unsplash.com/photo-1581578731548-c64695cc6952?w=1600&q=80') center/cover no-repeat;
    position: relative;
    min-height: 60vh;
    display: flex;
    align-items: center;
}
.phub-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(10,10,10,.96) 55%, rgba(10,10,10,.8) 100%);
}
.phub-hero-inner {
    position: relative;
    z-index: 2;
    width: min(860px, 94%);
    margin: 0 auto;
    padding: calc(var(--nav-h) + 48px) 20px 60px;
    text-align: center;
}
.phub-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 18px;
}
.phub-hero-title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4.5vw, 3rem);
    color: #fff;
    line-height: 1.2;
    margin: 0 0 20px;
}
.phub-gold { color: var(--color-gold); }
.phub-hero-sub {
    color: rgba(255,255,255,.72);
    font-size: 1.05rem;
    line-height: 1.75;
    margin: 0 0 32px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.phub-hero-sub strong { color: #fff; }
.phub-hero-actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

/* Stats bar */
.phub-stats-bar {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    border-top: 1px solid var(--color-border);
    padding: 24px 20px;
}
.phub-stats-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
    width: min(900px, 100%);
    margin: 0 auto;
}
.phub-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 40px;
}
.phub-stat strong {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-gold);
    line-height: 1;
}
.phub-stat span {
    font-size: .75rem;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.phub-stat-sep {
    width: 1px;
    height: 40px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* Annuaire */
.phub-directory-section {
    background: var(--color-bg);
    padding: 64px 20px 80px;
}
.phub-directory-inner {
    width: min(1100px, 96%);
    margin: 0 auto;
}

/* Recherche */
.phub-search-wrap {
    position: relative;
    max-width: 540px;
    margin: 0 auto 40px;
}
.phub-search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-gold);
    font-size: .9rem;
    pointer-events: none;
}
.phub-search-input {
    width: 100%;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .95rem;
    padding: 14px 16px 14px 44px;
    outline: none;
    transition: border-color .2s;
    box-sizing: border-box;
}
.phub-search-input:focus { border-color: var(--color-gold); }
.phub-search-input::placeholder { color: var(--color-muted); }

/* Nav alphabétique */
.phub-alpha-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    margin-bottom: 48px;
}
.phub-alpha-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .8rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s, border-color .2s, color .2s;
}
.phub-alpha-link:hover { background: var(--color-gold); border-color: var(--color-gold); color: #000; }
.phub-alpha-link.phub-alpha-inactive { opacity: .3; pointer-events: none; }

/* Blocs par lettre */
.phub-letter-block { margin-bottom: 48px; }
.phub-letter-heading {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    color: var(--color-gold);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 10px;
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.phub-letter-heading::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

/* Grille de villes */
.phub-city-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}
.phub-city-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 12px 16px;
    text-decoration: none;
    transition: border-color .2s, background .2s;
    position: relative;
    overflow: hidden;
}
.phub-city-card:hover {
    border-color: var(--color-gold);
    background: rgba(212,175,55,.06);
}
.phub-city-card:hover .phub-city-arrow { color: var(--color-gold); transform: translateX(3px); }
.phub-city-name {
    color: var(--color-text);
    font-size: .88rem;
    font-weight: 500;
    flex: 1;
}
.phub-city-badge {
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-gold);
    background: rgba(212,175,55,.1);
    border: 1px solid rgba(212,175,55,.2);
    padding: 2px 6px;
    white-space: nowrap;
}
.phub-city-arrow {
    color: var(--color-muted);
    font-size: .75rem;
    flex-shrink: 0;
    transition: color .2s, transform .2s;
}

/* Aucun résultat */
.phub-no-result {
    text-align: center;
    color: var(--color-muted);
    font-size: .95rem;
    padding: 40px 20px;
    line-height: 1.75;
}
.phub-no-result i { color: var(--color-gold); margin-right: 8px; }
.phub-no-result a { color: var(--color-gold); }

/* ── Responsive Hub ── */
@media (max-width: 768px) {
    .phub-hero { min-height: auto; display: block; }
    .phub-hero-inner { padding: calc(var(--nav-h) + 32px) 18px 48px; }
    .phub-hero-title { font-size: 1.7rem; }
    .phub-stat { padding: 0 20px; }
    .phub-city-grid { grid-template-columns: 1fr 1fr; }
    .phub-alpha-nav { gap: 4px; }
    .phub-alpha-link { width: 30px; height: 30px; font-size: .72rem; }
}
@media (max-width: 480px) {
    .phub-city-grid { grid-template-columns: 1fr; }
    .phub-stats-inner { gap: 16px; }
    .phub-stat-sep { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   ZONE D'INTERVENTION — page-zone.php
   ══════════════════════════════════════════════════════════════ */

/* Hero */
.zone-hero {
    min-height: 55vh;
    display: flex;
    align-items: center;
}
.zone-hero-inner {
    position: relative;
    z-index: 2;
    width: min(780px, 94%);
    margin: 0 auto;
    padding: calc(var(--nav-h) + 48px) 20px 60px;
    text-align: center;
}
.zone-hero-title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3.2rem);
    color: #fff;
    line-height: 1.2;
    margin: 0 0 20px;
}
.zone-hero-sub {
    color: rgba(255,255,255,.72);
    font-size: 1.05rem;
    line-height: 1.75;
    margin: 0 0 32px;
}
.zone-hero-sub strong { color: #fff; }
.zone-hero-cta {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* Stats */
.zone-stats-bar {
    background: rgba(10,10,10,.98);
    border-bottom: 1px solid var(--color-border);
    padding: 24px 20px;
}
.zone-stats-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: min(800px, 100%);
    margin: 0 auto;
}
.zone-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 40px;
}
.zone-stat strong {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    color: var(--color-gold);
    line-height: 1;
}
.zone-stat strong em { font-style: normal; font-size: 1rem; }
.zone-stat span {
    font-size: .72rem;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .07em;
}
.zone-stat-sep {
    width: 1px;
    height: 40px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* Section contenu */
.zone-content-section {
    background: var(--color-bg);
    padding: 72px 20px;
    border-top: 1px solid var(--color-border);
}
.zone-content-inner {
    width: min(1100px, 96%);
    margin: 0 auto;
}
.zone-intro {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 56px;
}
.zone-intro-title {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-text);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.zone-intro-title i { color: var(--color-gold); }
.zone-intro-text {
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.75;
    margin: 0;
}

/* ── Hiérarchie Région → Département → Ville ─────────────── */
.zone-regions {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 28px;
}

/* Carte région */
.zone-region {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-gold);
    padding: 20px 22px 24px;
}
.zone-region--domtom {
    border-top-color: #5aa8e0;
    grid-column: 1 / -1;
}
.zone-region-title {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.zone-region-title i { color: var(--color-gold); font-size: .85rem; }
.zone-region--domtom .zone-region-title i { color: #5aa8e0; }

/* Sections internationales */
.zone-content-section--intl { background: linear-gradient(180deg, rgba(212,175,55,.04) 0%, transparent 100%); border-top: 1px solid var(--color-border); }
.zone-pays-flag { font-size: 2.5rem; margin-bottom: .5rem; }
.zone-pays-link { color: var(--color-gold); font-size: .85rem; text-decoration: none; }
.zone-pays-link:hover { text-decoration: underline; }
.zone-cities-grid--compact { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .5rem; }
.zone-city-card--intl { padding: .6rem .8rem; }
.zone-city-card--intl .zone-city-card-top { flex-direction: column; gap: .1rem; }
.zone-city-card--intl .zone-city-cta { font-size: .68rem; margin-top: .3rem; }

/* Blocs département */
.zone-depts {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.zone-dept-title {
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-gold);
    margin: 0 0 6px;
}
.zone-region--domtom .zone-dept-title { color: #5aa8e0; }

/* Liste des villes */
.zone-cities-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.zone-cities-list li {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: .82rem;
    padding: 4px 10px;
    transition: border-color .2s, color .2s;
}
.zone-cities-list li:hover {
    border-color: rgba(212,175,55,.5);
    color: var(--color-text);
}

/* Fallback : si the_content() retourne des <ul> classiques */
.zone-cities-content > ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
}
.zone-cities-content > ul > li {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .88rem;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.zone-cities-content > ul > li::before {
    content: '';
    width: 4px; height: 4px;
    background: var(--color-gold);
    border-radius: 50%;
    flex-shrink: 0;
}
.zone-cities-content p { color: var(--color-muted); margin: 0 0 16px; }

/* CTA section */
.zone-cta-section {
    background: var(--color-surface);
    border-top: 2px solid var(--color-gold);
    padding: 80px 20px;
}
.zone-cta-inner {
    width: min(1100px, 96%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 440px;
    gap: 60px;
    align-items: start;
}
.zone-cta-title {
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    color: var(--color-text);
    margin: 12px 0 16px;
    line-height: 1.3;
}
.zone-cta-sub {
    color: var(--color-muted);
    font-size: .9rem;
    line-height: 1.7;
    margin: 0;
}

/* ── Responsive Zone ── */
@media (max-width: 1024px) {
    .zone-cta-inner { grid-template-columns: 1fr; }
    .zone-regions { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}
@media (max-width: 768px) {
    .zone-hero { min-height: auto; display: block; }
    .zone-hero-inner { padding: calc(var(--nav-h) + 28px) 18px 48px; }
    .zone-hero-title { font-size: 1.8rem; }
    .zone-stat { padding: 0 20px; }
    .zone-stat-sep { display: none; }
    /* Régions en 1 colonne pour donner de la place aux cards */
    .zone-regions { grid-template-columns: 1fr; }
    .zone-region--domtom { grid-column: auto; }
    .zone-cta-section { padding: 52px 18px; }
    /* Cards ville : 2 colonnes sur mobile, minima plus larges */
    .zone-cities-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
    /* Stats des cards : EN COLONNE sur mobile (empilées, plus lisibles) */
    .zone-city-stats {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        padding-top: 8px;
    }
    .zone-city-sep { display: none !important; }
    .zone-city-stat { flex-direction: row; align-items: center; gap: 6px; }
    .zone-city-val { font-size: .8rem; white-space: nowrap; }
    .zone-city-lbl { font-size: .58rem; }
    .zone-city-name { font-size: .88rem; }
    .zone-city-card { gap: 10px; padding: 14px 12px 12px; }
    .zone-city-cta { display: none; } /* cacher "voir les services" sur mobile */
    /* fallback ul */
    .zone-cities-content > ul { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 400px) {
    /* Très petits écrans : 1 colonne de cards */
    .zone-cities-grid { grid-template-columns: 1fr !important; }
    .zone-regions { grid-template-columns: 1fr; }
    .zone-cities-content > ul { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════
   VILLES VOISINES
═══════════════════════════════════════════════════ */
.ville-voisines {
    background: #0d0d0d;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 80px 20px;
}
.vv-inner {
    width: min(1200px, 96%);
    margin: 0 auto;
}
.vv-header {
    text-align: center;
    margin-bottom: 52px;
}
.vv-title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.8vw, 2rem);
    color: var(--color-text);
    margin: 10px 0 12px;
    line-height: 1.25;
}
.vv-sub {
    color: var(--color-muted);
    font-size: .88rem;
}
.vv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 20px;
}

/* Carte voisine */
.vv-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 28px 24px 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-decoration: none;
    color: var(--color-text);
    position: relative;
    overflow: hidden;
    transition: border-color .25s ease, transform .3s ease, box-shadow .3s ease;
}
/* barre top dorée au hover */
.vv-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-gold), transparent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s ease;
}
.vv-card:hover {
    border-color: rgba(212,175,55,.45);
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,.55);
}
.vv-card:hover::before { transform: scaleX(1); }

/* Texte haut de carte */
.vv-card-top { display: flex; flex-direction: column; gap: 5px; }
.vv-card-dept {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    font-weight: 700;
}
.vv-card-city {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    color: var(--color-text);
    line-height: 1.2;
}
.vv-card-type {
    font-size: .75rem;
    color: var(--color-muted);
    line-height: 1.4;
}

/* Stats chiffrées */
.vv-card-stats {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 0;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}
.vv-stat { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.vv-stat-sep {
    width: 1px;
    height: 24px;
    background: var(--color-border);
    flex-shrink: 0;
    margin: 0 8px;
}
.vv-stat-val {
    font-family: var(--font-heading);
    font-size: .92rem;
    color: var(--color-gold);
    letter-spacing: .01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.vv-stat-lbl {
    font-size: .62rem;
    color: var(--color-muted);
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* CTA bas de carte */
.vv-card-cta {
    margin-top: auto;
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-gold);
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity .25s ease, transform .25s ease;
}
.vv-card:hover .vv-card-cta {
    opacity: 1;
    transform: translateX(0);
}

/* Responsive voisines */
@media (max-width: 900px) {
    .vv-grid { grid-template-columns: 1fr 1fr; }
    .vv-card-cta { opacity: 1; transform: none; }
}
@media (max-width: 520px) {
    .ville-voisines { padding: 52px 16px; }
    .vv-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════
   TRONCATURE TEXTE SEO — bouton "Lire la suite"
═══════════════════════════════════════════════════ */
.seo-text-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gold);
    transition: opacity .2s;
}
.seo-text-toggle:hover { opacity: .75; }
.seo-text-toggle i {
    font-size: .75rem;
    transition: transform .3s ease;
}


/* ═══════════════════════════════════════════════════════════════
   WIDGETS LATÉRAUX — blocs SEO alternés (ca-widget)
═══════════════════════════════════════════════════════════════ */

/* ── Base commune ── */
.ca-widget {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 22px 22px 20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    height: 100%;
    box-sizing: border-box;
}
.caw-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-heading);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.caw-header i { font-size: .88rem; }

/* ─── W1 · Comparatif revenus ──────────────────────────────── */
.caw-compare { display: flex; flex-direction: column; gap: 14px; }

.caw-cmp-row {
    display: grid;
    grid-template-columns: 90px 1fr 72px;
    align-items: center;
    gap: 10px;
}
.caw-cmp-label {
    font-size: .72rem;
    color: var(--color-muted);
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.caw-cmp-track {
    height: 8px;
    background: rgba(255,255,255,.06);
    border-radius: 4px;
    overflow: hidden;
}
.caw-cmp-fill {
    width: 0; /* animé par JS */
    height: 100%;
    border-radius: 4px;
}
.caw-cmp-fill--low  { background: rgba(255,255,255,.25); }
.caw-cmp-fill--high { background: var(--color-gold); }

.caw-cmp-val {
    font-family: var(--font-heading);
    font-size: .82rem;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
    color: var(--color-text);
}
.caw-val--gold { color: var(--color-gold); }

.caw-multiplier {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    background: rgba(212, 175, 55, .08);
    border: 1px solid rgba(212, 175, 55, .18);
    border-radius: 8px;
    line-height: 1.2;
}
.caw-multiplier strong {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-gold);
    font-weight: 800;
}
.caw-multiplier span {
    font-size: .74rem;
    color: var(--color-muted);
    letter-spacing: .03em;
}
.caw-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-gold);
    text-decoration: none;
    transition: gap .2s;
    margin-top: auto;
}
.caw-link:hover { gap: 10px; }
.caw-link i { font-size: .7rem; }

/* ─── W2 · Services inclus ─────────────────────────────────── */
.caw-services {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.caw-services li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
}
.caw-services li > i {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(212, 175, 55, .1);
    border-radius: 6px;
    color: var(--color-gold);
    font-size: .8rem;
    margin-top: 1px;
}
.caw-services li div { display: flex; flex-direction: column; gap: 2px; }
.caw-services li strong {
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.3;
}
.caw-services li em {
    font-size: .72rem;
    font-style: normal;
    color: var(--color-muted);
}
.caw-badge {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-top: auto;
}
.caw-badge i { font-size: .78rem; }

/* ─── W3 · Timeline processus ──────────────────────────────── */
.caw-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.caw-step {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 12px;
    align-items: stretch;
    position: relative;
}
/* Ligne verticale entre les étapes */
.caw-step:not(.caw-step--last) .caw-step-dot::after {
    content: '';
    position: absolute;
    left: 15px;
    top: 32px;
    bottom: 0;
    width: 2px;
    background: var(--color-border);
}
.caw-step-dot {
    position: relative;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--color-border);
    border-radius: 50%;
    z-index: 1;
}
.caw-step-dot span {
    font-family: var(--font-heading);
    font-size: .72rem;
    font-weight: 800;
    color: var(--color-muted);
}
.caw-step-dot--gold {
    border-color: var(--color-gold);
    background: rgba(212, 175, 55, .12);
}
.caw-step-dot--gold span { color: var(--color-gold); }

.caw-step-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 0 18px;
}
.caw-step--last .caw-step-body { padding-bottom: 0; }
.caw-step-body strong {
    font-size: .82rem;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.3;
}
.caw-step-body em {
    font-size: .72rem;
    font-style: normal;
    color: var(--color-muted);
}
.caw-process-note {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .74rem;
    color: var(--color-muted);
    margin: 0;
    padding-top: 4px;
}
.caw-process-note i { color: var(--color-gold); }
.caw-process-note strong { color: var(--color-text); }

/* ─── W4 · Plateformes ─────────────────────────────────────── */
.caw-pf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.caw-pf-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 10px 6px;
    background: rgba(255,255,255,.03);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    transition: border-color .2s, background .2s;
}
.caw-pf-item:hover {
    border-color: rgba(212, 175, 55, .35);
    background: rgba(212, 175, 55, .05);
}
.caw-pf-icon { font-size: 1.1rem; }
.caw-pf-name {
    font-size: .68rem;
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: .04em;
}
.caw-pf-badge {
    font-size: .58rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #34c88a;
    font-weight: 700;
}
.caw-pf-note {
    font-size: .71rem;
    color: var(--color-muted);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    padding-top: 2px;
}
.caw-pf-note i { color: var(--color-gold); }

/* ─── W5 · KPIs — anneaux SVG ──────────────────────────────── */
.caw-rings {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}
.caw-ring-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
}
.caw-ring {
    position: relative;
    width: 72px;
    height: 72px;
}
.caw-ring-svg {
    width: 100%;
    height: 100%;
    display: block;
}
.caw-ring-arc {
    /* stroke-dashoffset animé par JS via IntersectionObserver */
}
.caw-ring-val {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.caw-ring-val span {
    font-family: var(--font-heading);
    font-size: .95rem;
    font-weight: 800;
    color: var(--color-text);
}
.caw-ring-val em {
    font-style: normal;
    font-size: .58rem;
    color: var(--color-muted);
    letter-spacing: .04em;
    margin-top: 1px;
}
.caw-ring-label {
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-muted);
    text-align: center;
    line-height: 1.3;
}
.caw-kpis-rows {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--color-border);
    padding-top: 12px;
    margin-top: auto;
}
.caw-kpi-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
}
.caw-kpi-row:last-child { border-bottom: none; }
.caw-kpi-row span {
    font-size: .74rem;
    color: var(--color-muted);
}
.caw-kpi-row strong {
    font-size: .8rem;
    font-weight: 700;
    color: var(--color-gold);
}

/* ── Responsive widgets ── */
@media (max-width: 900px) {
    .caw-rings { justify-content: center; gap: 16px; }
    .caw-pf-grid { grid-template-columns: repeat(3, 1fr); }
    .caw-cmp-row { grid-template-columns: 80px 1fr 65px; gap: 8px; }
}
@media (max-width: 640px) {
    .ca-widget { padding: 16px; }
    .caw-ring { width: 62px; height: 62px; }
    .caw-ring-val span { font-size: .82rem; }
}

/* ═══════════════════════════════════════════════════════
   W6 — Simulateur de revenus
═══════════════════════════════════════════════════════ */
.ca-widget--simulator .caw-sim-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
}
.caw-sim-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.caw-sim-row label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .74rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}
.caw-sim-output {
    font-family: var(--font-heading);
    font-size: .88rem;
    color: var(--color-gold);
    font-weight: 700;
}
.caw-sim-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background: rgba(255,255,255,.1);
    outline: none;
    cursor: pointer;
}
.caw-sim-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--color-gold);
    cursor: pointer;
    transition: transform .15s;
}
.caw-sim-range::-webkit-slider-thumb:hover { transform: scale(1.2); }
.caw-sim-range::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border: none;
    border-radius: 50%;
    background: var(--color-gold);
    cursor: pointer;
}
.caw-sim-result {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,.03);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 14px 12px;
    margin-top: 4px;
    text-align: center;
}
.caw-sim-lbl {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-muted);
}
.caw-sim-val {
    font-family: var(--font-heading);
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--color-gold);
    line-height: 1;
}
.caw-sim-result em {
    font-size: .62rem;
    color: var(--color-muted);
    font-style: normal;
}

/* ═══════════════════════════════════════════════════════
   W7 — Fiscalité LMNP
═══════════════════════════════════════════════════════ */
.ca-widget--fiscal .caw-fiscal-regimes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    flex: 1;
}
.caw-regime {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.caw-regime--reel {
    border-color: rgba(191,155,74,.3);
    background: rgba(191,155,74,.04);
}
.caw-regime-head {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.caw-regime-badge {
    font-family: var(--font-heading);
    font-size: .7rem;
    font-weight: 700;
    color: var(--color-muted);
    letter-spacing: .03em;
}
.caw-regime-badge--gold { color: var(--color-gold); }
.caw-regime-tag {
    font-size: .58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: rgba(255,255,255,.3);
    background: rgba(255,255,255,.06);
    border-radius: 4px;
    padding: 2px 5px;
}
.caw-regime-tag--gold {
    color: var(--color-gold);
    background: rgba(191,155,74,.12);
}
.caw-regime-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.caw-regime-list li {
    display: flex;
    gap: 6px;
    font-size: .68rem;
    color: rgba(255,255,255,.7);
    line-height: 1.35;
    align-items: flex-start;
}
.caw-regime-list li .fa-check { color: #4ade80; margin-top: 2px; flex-shrink: 0; }
.caw-regime-list li .fa-xmark  { color: rgba(255,255,255,.3); margin-top: 2px; flex-shrink: 0; }
.caw-regime-list li strong { color: #fff; }
.caw-fiscal-tip {
    font-size: .7rem;
    color: var(--color-muted);
    background: rgba(255,255,255,.03);
    border-left: 2px solid var(--color-gold);
    padding: 8px 10px;
    border-radius: 0 6px 6px 0;
    line-height: 1.5;
    margin-top: 4px;
}
.caw-fiscal-tip .fa-lightbulb { color: var(--color-gold); margin-right: 4px; }
.caw-fiscal-tip strong { color: #fff; }

@media (max-width: 640px) {
    .ca-widget--fiscal .caw-fiscal-regimes { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════
   ZONE D'INTERVENTION — Cards villes
═══════════════════════════════════════════════════ */
.zone-cities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin-top: 12px;
}

/* Card ville */
.zone-city-card {
    background: var(--color-bg);
    border: 1px solid rgba(212,175,55,.18);
    border-radius: 12px;
    padding: 20px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    text-decoration: none;
    color: var(--color-text);
    position: relative;
    overflow: hidden;
    transition: border-color .25s ease, transform .3s ease, box-shadow .3s ease;
}
.zone-city-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-gold), transparent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s ease;
}
.zone-city-card:hover {
    border-color: rgba(212,175,55,.6);
    transform: translateY(-4px);
    box-shadow: 0 14px 40px rgba(0,0,0,.5);
}
.zone-city-card:hover::before { transform: scaleX(1); }

/* Card sans lien */
.zone-city-card--no-link {
    opacity: .65;
    cursor: default;
}
.zone-city-card--no-link:hover {
    border-color: var(--color-border);
    transform: none;
    box-shadow: none;
}
.zone-city-card--no-link::before { display: none; }

/* Haut de carte */
.zone-city-card-top {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.zone-city-dept {
    font-size: .65rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-gold);
    font-weight: 700;
}
.zone-city-name {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    color: var(--color-text);
    line-height: 1.2;
}

/* Stats chiffrées */
.zone-city-stats {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 0;
    padding-top: 12px;
    border-top: 1px solid rgba(212,175,55,.12);
}
.zone-city-stat {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.zone-city-sep {
    width: 1px;
    height: 22px;
    background: var(--color-border);
    flex-shrink: 0;
    margin: 0 6px;
}
.zone-city-val {
    font-family: var(--font-heading);
    font-size: .88rem;
    color: var(--color-gold);
    letter-spacing: .01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.zone-city-lbl {
    font-size: .6rem;
    color: var(--color-muted);
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* CTA bas de carte */
.zone-city-cta {
    margin-top: auto;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-gold);
    display: flex;
    align-items: center;
    gap: 7px;
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity .25s ease, transform .25s ease;
}
.zone-city-card:hover .zone-city-cta {
    opacity: 1;
    transform: translateX(0);
}

/* Responsive */
@media (max-width: 900px) {
    .zone-cities-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
    .zone-city-cta { opacity: 1; transform: none; }
}
@media (max-width: 520px) {
    .zone-cities-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .zone-city-card { padding: 16px 14px 14px; }
    /* Stats en colonne sur très petit écran */
    .zone-city-stats {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .zone-city-sep { display: none; }
    .zone-city-stat {
        flex-direction: row;
        align-items: center;
        gap: 6px;
    }
    .zone-city-val { font-size: .82rem; }
    .zone-city-lbl { font-size: .58rem; }
}

/* ══════════════════════════════════════════════════════════════
   PRESTATAIRE — Widgets engagement (avantages, missions v2, témoignages)
   ══════════════════════════════════════════════════════════════ */

/* ── Avantages ── */
.presta-avantages-section {
    background: var(--color-surface);
    padding: 72px 20px;
    border-top: 2px solid var(--color-gold);
}
.presta-avantages-inner {
    width: min(1100px, 94%);
    margin: 0 auto;
}
.presta-avantages-header {
    text-align: center;
    margin-bottom: 48px;
}
.presta-avantages-title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.8vw, 2rem);
    color: var(--color-text);
    margin: 10px 0 0;
    line-height: 1.3;
}
.presta-avantages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 24px;
}
.presta-av-card {
    background: var(--color-bg);
    border: 1px solid rgba(212,175,55,.18);
    border-radius: 12px;
    padding: 28px 24px;
    transition: border-color .2s, transform .2s;
}
.presta-av-card:hover {
    border-color: rgba(212,175,55,.45);
    transform: translateY(-3px);
}
.presta-av-icon {
    font-size: 1.4rem;
    color: var(--color-gold);
    margin-bottom: 12px;
}
.presta-av-val {
    font-size: 2rem;
    color: var(--color-gold);
    font-weight: 700;
    font-family: var(--font-heading);
    line-height: 1;
    margin-bottom: 6px;
}
.presta-av-title {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-muted);
    margin-bottom: 12px;
}
.presta-av-text {
    font-size: .88rem;
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
}

/* ── Missions v2 ── */
.presta-missions-v2-section {
    background: var(--color-bg);
    padding: 64px 20px;
    border-top: 1px solid var(--color-border);
}
.presta-missions-v2-inner {
    width: min(1100px, 94%);
    margin: 0 auto;
}
.presta-missions-v2-title {
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    color: var(--color-text);
    margin: 0 0 36px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.presta-missions-v2-title i { color: var(--color-gold); }
.presta-missions-v2-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.presta-mission-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px;
    background: var(--color-surface);
    border-radius: 8px;
    border: 1px solid var(--color-border);
    transition: border-color .2s;
}
.presta-mission-item:hover { border-color: rgba(212,175,55,.35); }
.presta-mission-item > i {
    color: var(--color-gold);
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.presta-mission-item > div { display: flex; flex-direction: column; gap: 4px; }
.presta-mission-item strong {
    display: block;
    color: var(--color-text);
    font-size: .92rem;
    margin-bottom: 4px;
}
.presta-mission-item span {
    font-size: .82rem;
    color: var(--color-muted);
    line-height: 1.5;
}

/* ── Témoignages ── */
.presta-temoignages-section {
    background: var(--color-surface);
    padding: 72px 20px;
    border-top: 1px solid var(--color-border);
}
.presta-temo-inner {
    width: min(1100px, 94%);
    margin: 0 auto;
}
.presta-temo-title {
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    color: var(--color-text);
    margin: 0 0 40px;
    text-align: center;
}
.presta-temo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}
.presta-temo-card {
    background: var(--color-bg);
    border-left: 3px solid var(--color-gold);
    border-radius: 0 12px 12px 0;
    padding: 28px 24px;
    margin: 0;
    transition: transform .2s;
}
.presta-temo-card:hover { transform: translateY(-3px); }
.presta-temo-card p {
    font-size: .95rem;
    color: var(--color-text);
    line-height: 1.7;
    font-style: italic;
    margin: 0 0 16px;
}
.presta-temo-card footer {
    font-size: .8rem;
    color: var(--color-muted);
}
.presta-temo-card footer strong { color: var(--color-text); }

/* ── Responsive nouveaux widgets ── */
@media (max-width: 1024px) {
    .presta-avantages-grid { grid-template-columns: 1fr 1fr; }
    .presta-missions-v2-grid { grid-template-columns: 1fr 1fr; }
    .presta-temo-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .presta-avantages-section,
    .presta-missions-v2-section,
    .presta-temoignages-section { padding: 52px 18px; }
    .presta-avantages-grid { grid-template-columns: 1fr 1fr; }
    .presta-missions-v2-grid { grid-template-columns: 1fr; }
    .presta-temo-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .presta-avantages-grid { grid-template-columns: 1fr 1fr; }
    .presta-missions-v2-grid { grid-template-columns: 1fr; }
    .presta-temo-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   PRESTATAIRE — Stats bar
   ══════════════════════════════════════════════════════════════ */
.presta-stats-bar {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    border-top: 1px solid var(--color-border);
    padding: 24px 20px;
}
.presta-stats-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: min(900px, 100%);
    margin: 0 auto;
}
.presta-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 40px;
}
.presta-stat strong {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-gold);
    line-height: 1;
}
.presta-stat strong em { font-style: normal; font-size: 1rem; }
.presta-stat span {
    font-size: .72rem;
    color: var(--color-muted);
    text-transform: uppercase;
    letter-spacing: .07em;
}
.presta-stat-sep {
    width: 1px;
    height: 40px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   PRESTATAIRE — Section inscription finale
   ══════════════════════════════════════════════════════════════ */
.presta-inscription-section {
    background: var(--color-surface);
    border-top: 2px solid var(--color-gold);
    padding: 72px 20px;
}
.presta-inscription-inner {
    width: min(1100px, 94%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.presta-inscription-text .section-eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 16px;
}
.presta-inscription-title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.8vw, 2rem);
    color: var(--color-text);
    line-height: 1.3;
    margin: 0 0 16px;
}
.presta-inscription-text p {
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.75;
    margin: 0;
}
.presta-inscription-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.btn-presta-xl {
    font-size: 1.05rem !important;
    padding: 20px 40px !important;
    width: 100%;
    justify-content: center;
    text-align: center;
}

/* ── Forminator dans la section inscription (fond sombre) ── */
.presta-inscription-section .forminator-ui,
.presta-inscription-section .forminator-custom-form { background: transparent !important; }

.presta-inscription-section .forminator-field--label label,
.presta-inscription-section .forminator-label { color: rgba(255,255,255,.75) !important; font-size: .75rem !important; }

.presta-inscription-section input[type="text"],
.presta-inscription-section input[type="email"],
.presta-inscription-section input[type="tel"],
.presta-inscription-section select {
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(201,168,76,.35) !important;
    color: #fff !important;
}
.presta-inscription-section input::placeholder,
.presta-inscription-section textarea::placeholder { color: rgba(255,255,255,.35) !important; }

.presta-inscription-section .forminator-checkbox label,
.presta-inscription-section .forminator-checkbox-label { color: rgba(255,255,255,.8) !important; font-size: .82rem !important; }

/* ══════════════════════════════════════════════════════════════
   PRESTATAIRE — SEO section mobile
   ══════════════════════════════════════════════════════════════ */

/* ── Hero prestataire mobile — texte d'abord ── */
@media (max-width: 768px) {
    .presta-hero-inner {
        grid-template-columns: 1fr !important;
        padding: 24px 18px 40px !important;
    }
    .presta-hero-content { order: 1 !important; }
    .presta-hero-card { order: 2 !important; }
    .presta-hero-form { order: 2 !important; }

    /* Stats bar mobile */
    .presta-stat { padding: 0 20px; }
    .presta-stat-sep { display: none; }

    /* SEO section mobile — cache uniquement les icônes page-ville, pas les widgets prestataire */
    .seo-block-media:not(.presta-seo-block-media) { display: none !important; }

    /* Inscription section mobile */
    .presta-inscription-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .presta-inscription-section { padding: 52px 18px; }
    .btn-presta-xl { font-size: .95rem !important; padding: 16px 24px !important; }
}

/* ══════════════════════════════════════════════════════════════
   BOUTON FERMER MENU MOBILE (✕)
══════════════════════════════════════════════════════════════ */
.nav-menu-close {
    display: none; /* caché par défaut et sur desktop */
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 100002; /* au-dessus de tout */
    background: rgba(212,175,55,.12);
    border: 1px solid rgba(212,175,55,.3);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    font-size: 1.25rem;
    transition: background .2s, border-color .2s;
}
.nav-menu-close:hover {
    background: rgba(212,175,55,.25);
    border-color: var(--color-gold);
}
/* Visible seulement sur mobile ET quand le menu est ouvert */
@media (max-width: 768px) {
    .nav-menu-close.is-visible {
        display: flex;
    }
}

/* ══════════════════════════════════════════════════════════════
   FIXES MOBILE — PAGE ZONE D'INTERVENTION
══════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
    /* Stats bar : 2×2 au lieu de 4 en ligne */
    .zone-stats-inner {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 20px 0;
    }
    .zone-stat-sep { display: none !important; }
    .zone-stat { padding: 0 12px; }

    /* Boutons hero : colonne sur très petit écran */
    .zone-hero-cta {
        flex-direction: column;
        align-items: center;
    }
    .zone-hero-cta a { width: 100%; max-width: 280px; text-align: center; justify-content: center; }

    /* Cards ville : 1 colonne sur très petit écran */
    .zone-cities-grid { grid-template-columns: 1fr !important; }

    /* Eviter overflow du titre hero */
    .zone-hero-title { font-size: 1.6rem !important; }
    .zone-hero-sub { font-size: .9rem; }
}

/* Mobile sticky bar : éviter chevauchement avec floating CTA */
@media (max-width: 768px) {
    /* Evite que la barre sticky et le floating phone se chevauchent */
    .floating-cta-cluster { bottom: 80px !important; }
}

/* ══ WIDGETS SEO PRESTATAIRE ══════════════════════════════════ */

/* Surcharge largeur colonne + hauteur égale pour les widgets PHP prestataire */
.seo-block:has(.presta-seo-block-media) {
    grid-template-columns: 1fr 380px;
    align-items: stretch;
}
.seo-block-even:has(.presta-seo-block-media) {
    grid-template-columns: 380px 1fr;
    align-items: stretch;
}

/* Reset du style icône-only sur la colonne média prestataire */
.presta-seo-block-media {
    background: transparent !important;
    border: none !important;
    border-top: none !important;
    padding: 0 !important;
    text-align: left !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

.presta-seo-widget {
    background: var(--color-surface);
    border: 1px solid rgba(212,175,55,.2);
    border-radius: 14px;
    padding: 24px 20px;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Widget CTA : la card interne gère déjà le style, on neutralise le wrapper */
.presta-seo-widget--cta {
    background: transparent;
    border: none;
    padding: 0;
}
.presta-seo-widget--cta .psw-cta-card {
    height: 100%;
    box-sizing: border-box;
    justify-content: center;
}
.psw-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-heading);
    font-size: .9rem;
    color: var(--color-gold);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.psw-header i { font-size: 1rem; }

/* Widget avantages */
.psw-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.psw-list li { display: flex; align-items: baseline; gap: 10px; }
.psw-val { font-family: var(--font-heading); font-size: 1.4rem; color: var(--color-gold); font-weight: 700; min-width: 60px; }
.psw-val em { font-style: normal; font-size: .9rem; }
.psw-lbl { font-size: .82rem; color: var(--color-muted); }
.psw-cta { display: inline-flex; align-items: center; gap: 8px; background: var(--color-gold); color: #000; font-weight: 700; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; padding: 10px 18px; border-radius: 6px; text-decoration: none; margin-top: auto; transition: background .2s; }
.psw-cta:hover { background: #f0c832; }

/* Widget missions */
.psw-missions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.psw-mission { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--color-text); background: var(--color-bg); padding: 8px 10px; border-radius: 6px; }
.psw-mission i { color: var(--color-gold); font-size: .85rem; flex-shrink: 0; }

/* Widget CTA */
.psw-cta-card { background: linear-gradient(135deg, rgba(212,175,55,.08), rgba(212,175,55,.03)); border: 1px solid rgba(212,175,55,.3); border-radius: 10px; padding: 28px 22px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.psw-cta-dot { color: var(--color-gold); font-size: 1rem; }
.psw-cta-title { font-family: var(--font-heading); font-size: 1.1rem; color: var(--color-text); line-height: 1.3; }
.psw-cta-sub { font-size: .78rem; color: var(--color-muted); margin: 0; }

/* Widget témoignage */
.psw-quote { margin: 0; border-left: 3px solid var(--color-gold); padding-left: 16px; }
.psw-quote p { font-style: italic; font-size: .92rem; color: var(--color-text); line-height: 1.65; margin: 0 0 10px; }
.psw-quote footer { font-size: .78rem; color: var(--color-muted); }
.psw-stars { display: flex; align-items: center; gap: 6px; font-size: .75rem; color: var(--color-muted); margin-top: auto; }
.psw-stars i { color: var(--color-gold); font-size: .8rem; }

/* Widget comparaison */
.psw-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.psw-compare-col { padding: 14px; border-radius: 8px; }
.psw-compare-col--ca { background: rgba(212,175,55,.06); border: 1px solid rgba(212,175,55,.2); }
.psw-compare-col--solo { background: rgba(255,255,255,.02); border: 1px solid var(--color-border); }
.psw-compare-title { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.psw-compare-col--ca .psw-compare-title { color: var(--color-gold); }
.psw-compare-col--solo .psw-compare-title { color: var(--color-muted); }
.psw-compare ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.psw-compare li { font-size: .78rem; color: var(--color-muted); }
.psw-compare-col--ca li::before { content: '✓ '; color: var(--color-gold); font-weight: 700; }
.psw-compare-col--solo li::before { content: '✗ '; color: #666; }

/* Widget marché */
.psw-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.psw-stat { text-align: center; }
.psw-stat strong { display: block; font-family: var(--font-heading); font-size: 1.5rem; color: var(--color-gold); }
.psw-stat span { font-size: .68rem; color: var(--color-muted); text-transform: uppercase; letter-spacing: .05em; }
.psw-marche-note { font-size: .82rem; color: var(--color-muted); line-height: 1.55; margin: 0; }

/* Responsive widgets prestataire */
@media (max-width: 1024px) {
    .seo-block:has(.presta-seo-block-media) { grid-template-columns: 1fr 300px; }
    .seo-block-even:has(.presta-seo-block-media) { grid-template-columns: 300px 1fr; }
}
@media (max-width: 768px) {
    .seo-block:has(.presta-seo-block-media),
    .seo-block-even:has(.presta-seo-block-media) {
        grid-template-columns: 1fr;
        align-items: start;
    }
    /* Widget sous le texte sur mobile */
    .presta-seo-block-media {
        order: 2 !important;
        width: 100% !important;
    }
    .presta-seo-widget { height: auto; }
    .presta-seo-widget--cta { padding: 0; }
    .psw-compare { grid-template-columns: 1fr; }
    .psw-missions-grid { grid-template-columns: 1fr 1fr; }
    .psw-stats-grid { grid-template-columns: repeat(3, 1fr); }
}


/* ══ SECTION SECTEUR — texte + liens 2 colonnes ══════════════ */
.presta-secteur-section {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    padding: 64px 20px;
}
.presta-secteur-inner {
    width: min(960px, 94%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.presta-secteur-header { display: flex; flex-direction: column; gap: 14px; }
.presta-secteur-title {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-text);
    line-height: 1.3;
    margin: 0;
}
.presta-secteur-sub {
    font-size: .92rem;
    color: var(--color-muted);
    line-height: 1.75;
    margin: 0;
}
.presta-secteur-sub strong { color: var(--color-text); }

.presta-secteur-links {
    list-style: none;
    padding: 0;
    margin: 0;
    columns: 2;
    column-gap: 12px;
}
.presta-secteur-links li { break-inside: avoid; margin-bottom: 4px; }
.presta-secteur-links a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    font-size: .85rem;
    color: var(--color-text);
    text-decoration: none;
    border-radius: 6px;
    transition: background .15s, color .15s;
}
.presta-secteur-links a:hover {
    background: rgba(212,175,55,.08);
    color: var(--color-gold);
}
.presta-secteur-links a i {
    color: var(--color-gold);
    font-size: .7rem;
    flex-shrink: 0;
    transition: transform .15s;
}
.presta-secteur-links a:hover i { transform: translateX(3px); }

/* ══ SECTION VOISINES — 4 cartes ════════════════════════════ */
.presta-voisines-section {
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
    padding: 72px 20px;
}
.presta-voisines-inner {
    width: min(1040px, 94%);
    margin: 0 auto;
}
.presta-voisines-header {
    text-align: center;
    margin-bottom: 48px;
}
.presta-voisines-title {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    color: var(--color-text);
    margin: 10px 0 12px;
}
.presta-voisines-sub {
    font-size: .9rem;
    color: var(--color-muted);
    max-width: 520px;
    margin: 0 auto;
}
.presta-voisines-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.presta-voisine-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--color-surface);
    border: 1px solid rgba(212,175,55,.15);
    border-top: 3px solid rgba(212,175,55,.4);
    border-radius: 12px;
    padding: 24px 20px;
    text-decoration: none;
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.presta-voisine-card:hover {
    border-color: rgba(212,175,55,.5);
    border-top-color: var(--color-gold);
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.35);
}
.pvc-dept {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: rgba(212,175,55,.1);
    border: 1px solid rgba(212,175,55,.25);
    border-radius: 8px;
    font-size: .75rem;
    font-weight: 700;
    color: var(--color-gold);
    letter-spacing: .05em;
}
.pvc-name {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: var(--color-text);
    line-height: 1.2;
}
.pvc-label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .78rem;
    color: var(--color-muted);
}
.pvc-label i { color: var(--color-gold); font-size: .75rem; }
.pvc-cta {
    margin-top: auto;
    font-size: .8rem;
    font-weight: 600;
    color: var(--color-gold);
    letter-spacing: .04em;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: gap .15s;
}
.presta-voisine-card:hover .pvc-cta { gap: 10px; }

/* Responsive secteur + voisines */
@media (max-width: 768px) {
    .presta-secteur-inner { grid-template-columns: 1fr; gap: 32px; }
    .presta-secteur-links { columns: 2; }
    .presta-voisines-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .presta-voisines-title { font-size: 1.3rem; }
    .presta-voisines-section { padding: 52px 18px; }
    .presta-secteur-section { padding: 48px 18px; }
}
@media (max-width: 480px) {
    .presta-secteur-links { columns: 1; }
    .presta-voisines-grid { grid-template-columns: 1fr 1fr; }
}

/* ══ BREADCRUMB PRESTATAIRE ══════════════════════════════════ */
.presta-breadcrumb {
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    padding: 5px 20px;
}
.presta-breadcrumb ol {
    width: min(1040px, 94%);
    margin: 0 auto;
    list-style: none;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.presta-breadcrumb li {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .75rem;
    color: var(--color-muted);
}
.presta-breadcrumb li:not(:last-child)::after {
    content: '›';
    color: var(--color-border);
    font-size: .9rem;
}
.presta-breadcrumb a {
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--color-muted);
    text-decoration: none;
    transition: color .15s;
}
.presta-breadcrumb a:hover { color: var(--color-gold); }
.presta-breadcrumb a i { font-size: .7rem; }
.presta-breadcrumb li[aria-current="page"] span { color: var(--color-text); }

/* ═══════════════════════════════════════════════════════════════
   HUB PAYS — Belgique & Suisse (page-hub-pays.php)
   Version 3.5.9
═══════════════════════════════════════════════════════════════ */

/* ── Navigation régions / cantons ── */
.phub-region-nav {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    padding: 16px 0;
}
.phub-region-nav-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}
.phub-region-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 16px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 100px;
    font-size: .82rem;
    font-weight: 500;
    color: var(--color-text);
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}
.phub-region-pill i { color: var(--color-gold); font-size: .78rem; }
.phub-region-pill:hover {
    background: var(--color-gold);
    border-color: var(--color-gold);
    color: #000;
}
.phub-region-pill:hover i { color: #000; }

/* ── Barre de recherche pays ── */
.phub-search-wrap--pays {
    background: var(--color-bg);
    padding: 28px 24px 0;
}
.phub-search-inner {
    max-width: 560px;
    margin: 0 auto;
    position: relative;
}

/* ── Section principale grille pays ── */
.phub-pays-section { background: var(--color-bg); padding: 32px 0 64px; }
.phub-pays-inner   { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; gap: 48px; }

/* ── Groupe province / canton ── */
.phub-pays-group { }
.phub-pays-group-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--color-border);
}
.phub-pays-group-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.phub-pays-group-icon i { color: var(--color-gold); font-size: 1.1rem; }
.phub-pays-group-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 2px;
}
.phub-pays-group-title::after { display: none; } /* Retire underscore doré si hérité */
.phub-pays-group-count {
    font-size: .78rem;
    color: var(--color-muted);
    font-weight: 400;
}

/* ── Grille de villes ── */
.phub-pays-city-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
    gap: 10px;
}
.phub-pays-city-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    text-decoration: none;
    color: var(--color-text);
    font-size: .88rem;
    font-weight: 500;
    transition: border-color .15s, background .15s, transform .15s;
}
.phub-pays-city-card:hover {
    border-color: var(--color-gold);
    background: var(--color-bg);
    transform: translateY(-2px);
}
.phub-pays-city-dot { color: var(--color-gold); font-size: .7rem; flex-shrink: 0; }
.phub-pays-city-name { flex: 1; }
.phub-pays-city-card .phub-city-arrow { color: var(--color-muted); font-size: .7rem; opacity: 0; transition: opacity .15s; }
.phub-pays-city-card:hover .phub-city-arrow { opacity: 1; color: var(--color-gold); }

/* ── Hero variante pays ── */
.phub-hero--pays { min-height: 340px; }

/* ── Responsive ── */
@media (max-width: 768px) {
    .phub-pays-city-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
    .phub-pays-group-header { gap: 12px; }
    .phub-pays-group-icon  { width: 38px; height: 38px; }
    .phub-pays-group-title { font-size: 1rem; }
    .phub-region-pill { font-size: .76rem; padding: 6px 12px; }
}
@media (max-width: 480px) {
    .phub-pays-city-grid { grid-template-columns: 1fr 1fr; }
    .phub-pays-city-card { padding: 11px 12px; font-size: .82rem; }
}


/* ============================================================
   PRESSE — Section Forbes (homepage + footer)
   ============================================================ */

/* ── Bandeau presse homepage ── */
.press-strip {
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 18px 24px;
}
.press-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.press-label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
    white-space: nowrap;
}
.press-logos {
    display: flex;
    align-items: center;
    gap: 28px;
}
.press-item--forbes {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    color: var(--color-text);
    transition: opacity .15s;
}
.press-item--forbes:hover { opacity: .75; }
.press-forbes-svg {
    width: 100px;
    height: 28px;
    color: var(--color-gold);
    flex-shrink: 0;
}
.press-item-caption {
    font-size: .82rem;
    font-style: italic;
    color: var(--color-muted);
    border-left: 2px solid var(--color-gold);
    padding-left: 14px;
    line-height: 1.4;
}

/* ── Badge Forbes footer ── */
.footer-press {
    margin-top: 18px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.footer-press-label {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-muted);
    white-space: nowrap;
}
.footer-forbes-badge {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--color-gold);
    opacity: .85;
    transition: opacity .15s;
}
.footer-forbes-badge:hover { opacity: 1; }
.footer-forbes-badge svg {
    width: 72px;
    height: 20px;
}

/* ── Responsive presse ── */
@media (max-width: 768px) {
    .press-inner { gap: 16px; }
    .press-item-caption { display: none; } /* Caption masquée mobile — logo seul */
    .press-forbes-svg { width: 80px; height: 22px; }
}

/* ============================================================
   DONNÉES VÉRIFIÉES — badges Inside Airbnb + geo.api
   ============================================================ */

/* Badge "✓ Airbnb" sur les cartes zone */
.zone-city-card-top {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.zone-city-verified {
    margin-left: auto;
    font-size: .62rem;
    font-weight: 700;
    color: var(--color-gold);
    background: rgba(212,175,55,.1);
    border: 1px solid rgba(212,175,55,.3);
    padding: 2px 6px;
    border-radius: 4px;
    letter-spacing: .03em;
    white-space: nowrap;
}

/* Ligne source de données dans la carte ville */
.vdc-datasource {
    font-size: .7rem;
    color: var(--color-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 0 0;
    margin-top: 6px;
    border-top: 1px solid var(--color-border);
    line-height: 1.4;
}
.vdc-datasource i { color: var(--color-gold); font-size: .75rem; flex-shrink: 0; }

/* ── Prix immobilier dans data-card ── */
.vdc-section--immo { border-top: 1px solid var(--color-border); padding-top: .75rem; }
.vdc-immo-row { display: flex; gap: 1rem; margin-top: .4rem; }
.vdc-immo-item { display: flex; flex-direction: column; gap: .15rem; }
.vdc-immo-item strong { font-size: 1.05rem; font-weight: 700; color: #fff; }
.vdc-immo-item.vdc-immo-item--accent strong { color: var(--color-gold); }
.vdc-immo-item span { font-size: .72rem; color: var(--color-muted); }

/* ── Météo live dans data-card ── */
.vdc-header-right { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; }
.vdc-weather {
    display: flex; align-items: center; gap: .35rem;
    font-size: .78rem; color: var(--color-muted);
    background: rgba(255,255,255,.04);
    border: 1px solid var(--color-border);
    border-radius: 8px; padding: .25rem .55rem;
}
.vdc-weather-icon { font-size: 1rem; line-height: 1; }
.vdc-weather-temp { font-weight: 700; color: var(--color-text); font-size: .82rem; }
.vdc-weather-desc { color: var(--color-muted); font-size: .72rem; }
.vdc-weather-loading { color: var(--color-muted); font-size: .75rem; padding: .1rem 0; }

/* ── Vacances scolaires dans data-card ── */
.vdc-section--vacances { border-top: 1px solid var(--color-border); padding-top: .75rem; }
.vdc-vacances-list { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; }
.vdc-vac-item {
    display: flex; align-items: center; gap: .5rem;
    font-size: .8rem; color: var(--color-text);
}
.vdc-vac-item.vdc-vac--active { font-weight: 600; color: var(--color-gold); }
.vdc-vac-nom { font-weight: 600; min-width: 6rem; }
.vdc-vac-dates { color: var(--color-muted); font-size: .75rem; }
.vdc-vac-badge {
    background: var(--color-gold); color: #000;
    font-size: .6rem; font-weight: 700; padding: 2px 6px;
    border-radius: 99px; text-transform: uppercase; letter-spacing: .04em;
}
.vdc-vac-note {
    font-size: .72rem; color: var(--color-muted);
    margin: .4rem 0 0; font-style: italic;
}

/* ══════════════════════════════════════════════════════════════
   PRESTATAIRE — Formulaire Forminator hero (colonne droite)
   ══════════════════════════════════════════════════════════════ */

/* Remplace la .presta-hero-card — même position dans la grille */
.presta-hero-form {
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(201,168,76,.4);
    border-radius: 6px;
    padding: 22px 20px 16px;
    backdrop-filter: blur(6px);
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 430px;
    flex-shrink: 0;
    align-self: start;
}
.presta-hero-form-header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-gold);
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(201,168,76,.25);
    margin-bottom: 14px;
}
.presta-hero-form-note {
    font-size: .73rem;
    color: rgba(255,255,255,.45);
    text-align: center;
    margin: 10px 0 0;
}
.presta-hero-form-note a {
    color: rgba(255,255,255,.6);
    text-decoration: none;
}
.presta-hero-form-note a:hover { color: var(--color-gold); }

/* ── Forminator dans le hero : fond sombre ─────────────────── */
.presta-hero-form .forminator-ui,
.presta-hero-form .forminator-custom-form { background: transparent !important; }

/* Labels */
.presta-hero-form .forminator-field--label label,
.presta-hero-form .forminator-label { color: rgba(255,255,255,.75) !important; font-size: .75rem !important; }

/* Inputs */
.presta-hero-form input[type="text"],
.presta-hero-form input[type="email"],
.presta-hero-form input[type="tel"],
.presta-hero-form textarea,
.presta-hero-form select {
    background: rgba(255,255,255,.09) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    color: #fff !important;
    border-radius: 4px !important;
    font-size: .82rem !important;
    padding: 8px 10px !important;
}
.presta-hero-form input::placeholder,
.presta-hero-form textarea::placeholder { color: rgba(255,255,255,.35) !important; }
.presta-hero-form input:focus,
.presta-hero-form textarea:focus,
.presta-hero-form select:focus {
    border-color: rgba(201,168,76,.6) !important;
    outline: none !important;
    background: rgba(255,255,255,.13) !important;
}

/* Checkbox — hero form */
.presta-hero-form .forminator-checkbox label,
.presta-hero-form .forminator-checkbox-label { color: rgba(255,255,255,.7) !important; font-size: .78rem !important; }

/* ── Formulaire 25513 : forcer texte blanc sur fond sombre (hero + inscription) ── */
#forminator-module-25513 .forminator-label,
#forminator-module-25513 .forminator-checkbox-label,
#forminator-module-25513 .forminator-checkbox,
#forminator-module-25513 .forminator-radio-label { color: rgba(255,255,255,.82) !important; }
#forminator-module-25513 input[type="text"],
#forminator-module-25513 input[type="email"],
#forminator-module-25513 input[type="tel"] { color: #fff !important; }
#forminator-module-25513 input::placeholder { color: rgba(255,255,255,.35) !important; }

/* Espacements internes réduits */
.presta-hero-form .forminator-row { margin-bottom: 8px !important; }
.presta-hero-form .forminator-field { padding: 0 4px !important; }

/* Grille 2 colonnes pour les champs cols-6 */
.presta-hero-form .forminator-row { display: flex !important; flex-wrap: wrap !important; }
.presta-hero-form .forminator-col-6 { width: 50% !important; }
.presta-hero-form .forminator-col-12 { width: 100% !important; }

/* Services : checkboxes en grille 2 colonnes compacte */
.presta-hero-form .forminator-checkbox-group,
.presta-hero-form .forminator-options-list {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 8px !important;
    margin: 0 !important;
}
.presta-hero-form .forminator-checkbox,
.presta-hero-form .forminator-option {
    margin: 0 !important;
    padding: 2px 0 !important;
}
.presta-hero-form .forminator-checkbox label,
.presta-hero-form .forminator-option label {
    font-size: .76rem !important;
    color: rgba(255,255,255,.75) !important;
    line-height: 1.3 !important;
    cursor: pointer;
}

/* Réduire l'espacement global entre les rangées */
.presta-hero-form .forminator-row { margin-bottom: 6px !important; }
.presta-hero-form .forminator-field-label-wrap { margin-bottom: 2px !important; }
.presta-hero-form .forminator-field--label label { margin-bottom: 2px !important; }

/* Bouton submit */
.presta-hero-form .forminator-button-submit {
    background: var(--color-gold) !important;
    color: #1A1612 !important;
    font-weight: 700 !important;
    width: 100% !important;
    padding: 12px !important;
    font-size: .88rem !important;
    border-radius: 3px !important;
    margin-top: 6px !important;
    letter-spacing: .03em !important;
}
.presta-hero-form .forminator-button-submit:hover { opacity: .88 !important; }

/* Masquer texte de confirmation Forminator (on redirige) */
.presta-hero-form .forminator-response-output { display: none !important; }

/* ── Bas de page : formulaire dans la section inscription ───── */
.presta-inscription-form { align-items: stretch; }
.presta-inscription-form .forminator-ui,
.presta-inscription-form .forminator-custom-form { background: transparent !important; }
.presta-inscription-form .forminator-button-submit {
    background: var(--color-gold) !important;
    color: #1A1612 !important;
    font-weight: 700 !important;
    width: 100% !important;
    font-size: 1rem !important;
    padding: 16px !important;
}

/* ── Responsive : sur mobile le formulaire passe en dessous ─── */
@media (max-width: 1024px) {
    .presta-hero-form { width: 100%; }
}
@media (max-width: 768px) {
    .presta-hero-form { padding: 18px 14px 14px; }
    .presta-hero-form .forminator-col-6 { width: 100% !important; }
}

/* ══════════════════════════════════════════════════════════════
   SCROLL-TO-TOP — déplacé à gauche pour ne pas gêner les CTAs
   ══════════════════════════════════════════════════════════════ */
.progress-wrap {
    right: auto !important;
    left: 30px !important;
}
@media (max-width: 768px) {
    /* Sur mobile les CTAs flottants passent en sticky bar, donc pas de conflit */
    .progress-wrap {
        right: 16px !important;
        left: auto !important;
    }
}

/* ══════════════════════════════════════════════════════════════
   HUB PRESTATAIRES — Section formulaire inscription
   ══════════════════════════════════════════════════════════════ */
.phub-inscription-section {
    background: var(--color-surface, #F9F5EE);
    border-top: 1px solid var(--color-border, #E8E0D0);
    padding: 72px 0 80px;
}
.phub-inscription-inner {
    width: min(1100px, 92%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 60px;
    align-items: start;
}
.phub-inscription-title {
    font-family: var(--font-heading, 'Cormorant Garamond', serif);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 400;
    color: var(--color-text, #1A1612);
    margin: 0 0 14px;
}
.phub-inscription-text p { font-size: .95rem; color: var(--color-muted, #5C5448); line-height: 1.7; }
.phub-inscription-form .forminator-button-submit {
    background: var(--color-gold) !important;
    color: #1A1612 !important;
    font-weight: 700 !important;
    width: 100% !important;
    padding: 14px !important;
    font-size: .95rem !important;
}
@media (max-width: 900px) {
    .phub-inscription-inner { grid-template-columns: 1fr; gap: 32px; }
}

/* ══════════════════════════════════════════════════════════════
   PAGES DE CONFIRMATION (devis + prestataire)
   ══════════════════════════════════════════════════════════════ */
.ca-confirmation {
    max-width: 720px;
    margin: 60px auto 80px;
    padding: 0 20px;
    font-family: var(--font-body, Georgia, serif);
}
.ca-confirm-hero {
    text-align: center;
    margin-bottom: 48px;
}
.ca-confirm-icon {
    font-size: 3.5rem;
    margin-bottom: 16px;
}
.ca-confirm-title {
    font-family: var(--font-heading, 'Cormorant Garamond', serif);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 400;
    color: var(--color-text, #1A1612);
    margin: 0 0 12px;
}
.ca-confirm-sub {
    font-size: 1.05rem;
    color: var(--color-muted, #5C5448);
    line-height: 1.7;
    max-width: 560px;
    margin: 0 auto;
}
.ca-confirm-steps {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 40px;
}
.ca-confirm-step {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 20px 24px;
    background: var(--color-surface, #F9F5EE);
    border-left: 3px solid var(--color-gold, #C9A84C);
    border-radius: 2px;
}
.ca-confirm-step-num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background: var(--color-gold, #C9A84C);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    font-weight: 700;
}
.ca-confirm-step strong {
    display: block;
    font-size: 1rem;
    color: var(--color-text, #1A1612);
    margin-bottom: 6px;
}
.ca-confirm-step p {
    font-size: .9rem;
    color: var(--color-muted, #5C5448);
    line-height: 1.65;
    margin: 0;
}
.ca-confirm-cta {
    display: inline-block;
    margin-top: 14px;
    background: var(--color-gold, #C9A84C);
    color: #1A1612 !important;
    padding: 10px 22px;
    border-radius: 2px;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: opacity .2s;
}
.ca-confirm-cta:hover { opacity: .85; }
.ca-confirm-info {
    background: #fff;
    border: 1px solid var(--color-border, #E8E0D0);
    border-radius: 4px;
    padding: 24px 28px;
    margin-bottom: 32px;
}
.ca-confirm-info h3 {
    font-family: var(--font-heading, 'Cormorant Garamond', serif);
    font-size: 1.25rem;
    font-weight: 400;
    margin: 0 0 12px;
    color: var(--color-text, #1A1612);
}
.ca-confirm-info ul {
    margin: 8px 0 0 18px;
    font-size: .9rem;
    color: var(--color-text, #2E2923);
    line-height: 1.8;
}
.ca-confirm-info a { color: var(--color-gold, #C9A84C); }
.ca-confirm-contact {
    text-align: center;
    padding: 28px;
    background: var(--color-bg, #F5F0E8);
    border-radius: 4px;
    font-size: .9rem;
    color: var(--color-muted, #5C5448);
}
.ca-confirm-contact p { margin: 0 0 16px; }
.ca-confirm-phone,
.ca-confirm-email {
    display: inline-block;
    margin: 6px 10px;
    padding: 10px 22px;
    border: 1px solid var(--color-gold, #C9A84C);
    border-radius: 2px;
    color: var(--color-text, #1A1612) !important;
    font-size: .9rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .2s;
}
.ca-confirm-phone:hover,
.ca-confirm-email:hover {
    background: var(--color-gold, #C9A84C);
    color: #fff !important;
}
@media (max-width: 600px) {
    .ca-confirmation { margin-top: 32px; }
    .ca-confirm-step { flex-direction: column; gap: 12px; }
    .ca-confirm-info { padding: 18px; }
}

/* ============================================================
   PAGE-VILLE-LUXE — Éléments spécifiques haut de gamme
   ============================================================ */

/* ── Badge hero premium ── */
.luxe-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 18px;
    background: rgba(201, 168, 76, .12);
    border: 1px solid rgba(201, 168, 76, .4);
    border-radius: 2px;
    color: var(--color-gold, #C9A84C);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 16px;
}

/* ── Tags types de biens (hero) ── */
.luxe-property-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 24px;
}
.luxe-prop-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 2px;
    color: var(--color-muted, #8a7f6e);
    font-size: .8rem;
    font-weight: 500;
}
.luxe-prop-tag i { color: var(--color-gold, #C9A84C); font-size: .75em; }

/* ── Data card luxe (légère surbrillance gold) ── */
.luxe-data-card {
    border-top: 2px solid var(--color-gold, #C9A84C) !important;
}

/* ── Widget protection du bien ── */
.ca-widget--protection .caw-services li i {
    color: var(--color-gold, #C9A84C);
}

/* ── Process strip luxe (même style, texte adapté) ── */
.luxe-process-strip .step-num {
    color: var(--color-gold, #C9A84C);
    opacity: .6;
}

/* ── Devis card luxe ── */
.luxe-devis-card .devis-urgency {
    background: rgba(201, 168, 76, .1);
    border-color: rgba(201, 168, 76, .3);
    color: var(--color-gold, #C9A84C);
}

/* ============================================================
   PAGE-HUB-LUXE — Hub Zone Haut de Gamme
   ============================================================ */

/* ── Hero ── */
.lhub-hero {
    position: relative;
    background: var(--color-bg, #12100e);
    padding: clamp(80px, 10vw, 140px) 0 clamp(60px, 7vw, 100px);
    overflow: hidden;
    border-bottom: 1px solid rgba(201, 168, 76, .15);
}
.lhub-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 70% 60% at 60% 40%, rgba(201,168,76,.06) 0%, transparent 70%);
    pointer-events: none;
}
.lhub-hero-inner {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
    text-align: center;
    position: relative;
    z-index: 1;
}
.lhub-breadcrumb {
    margin-bottom: 24px;
    font-size: .82rem;
}
.lhub-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 20px;
    border: 1px solid rgba(201, 168, 76, .4);
    border-radius: 2px;
    color: var(--color-gold, #C9A84C);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: 28px;
    background: rgba(201, 168, 76, .06);
}
.lhub-hero-title {
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-text, #f0ebe2);
    margin: 0 0 20px;
}
.lhub-gold { color: var(--color-gold, #C9A84C); }
.lhub-hero-sub {
    font-size: clamp(.95rem, 2vw, 1.12rem);
    color: var(--color-muted, #8a7f6e);
    max-width: 680px;
    margin: 0 auto 32px;
    line-height: 1.7;
}

/* Types de biens (hero hub) */
.lhub-property-types {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 36px;
}
.lhub-prop-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 2px;
    color: var(--color-muted, #8a7f6e);
    font-size: .8rem;
    font-weight: 500;
}
.lhub-prop-tag i { color: var(--color-gold, #C9A84C); font-size: .75em; }

/* CTA hero */
.lhub-hero-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
.lhub-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 30px;
    background: var(--color-gold, #C9A84C);
    color: #12100e !important;
    font-weight: 700;
    font-size: .92rem;
    border-radius: 2px;
    text-decoration: none !important;
    transition: opacity .2s, transform .15s;
}
.lhub-btn-primary:hover { opacity: .88; transform: translateY(-1px); }
.lhub-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    border: 1px solid rgba(201, 168, 76, .5);
    color: var(--color-gold, #C9A84C) !important;
    font-weight: 600;
    font-size: .92rem;
    border-radius: 2px;
    text-decoration: none !important;
    transition: background .2s;
}
.lhub-btn-secondary:hover { background: rgba(201, 168, 76, .08); }

/* ── Stats bar ── */
.lhub-stats-bar {
    background: var(--color-surface, #1c1915);
    border-bottom: 1px solid var(--color-border, rgba(201,168,76,.12));
    padding: 20px 0;
}
.lhub-stats-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    flex-wrap: wrap;
}
.lhub-stat {
    text-align: center;
    padding: 0 clamp(20px, 3vw, 40px);
    flex: 1 1 120px;
}
.lhub-stat strong {
    display: block;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-gold, #C9A84C);
    line-height: 1;
    margin-bottom: 4px;
}
.lhub-stat strong em { font-size: .6em; font-style: normal; opacity: .7; }
.lhub-stat span { font-size: .78rem; color: var(--color-muted, #8a7f6e); }
.lhub-stat-sep {
    width: 1px;
    height: 36px;
    background: var(--color-border, rgba(201,168,76,.15));
    flex-shrink: 0;
}

/* ── Section pilliers ── */
.lhub-pillars {
    padding: clamp(60px, 7vw, 100px) 0;
    background: var(--color-bg, #12100e);
}
.lhub-pillars-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
}
.lhub-section-header {
    text-align: center;
    margin-bottom: clamp(40px, 5vw, 60px);
}
.lhub-section-title {
    font-size: clamp(1.5rem, 3.5vw, 2.2rem);
    font-weight: 700;
    color: var(--color-text, #f0ebe2);
    margin: 8px 0 14px;
}
.lhub-section-sub {
    color: var(--color-muted, #8a7f6e);
    font-size: .95rem;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.65;
}
.lhub-pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.lhub-pillar {
    background: var(--color-surface, #1c1915);
    border: 1px solid var(--color-border, rgba(201,168,76,.12));
    border-radius: 4px;
    padding: 36px 28px;
    transition: border-color .2s;
}
.lhub-pillar:hover { border-color: rgba(201, 168, 76, .4); }
.lhub-pillar--featured {
    border-color: rgba(201, 168, 76, .35);
    background: linear-gradient(135deg, var(--color-surface, #1c1915) 0%, rgba(201,168,76,.04) 100%);
    position: relative;
}
.lhub-pillar--featured::before {
    content: 'Essentiel';
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-gold, #C9A84C);
    color: #12100e;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 14px;
    border-radius: 0 0 4px 4px;
}
.lhub-pillar-icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(201, 168, 76, .1);
    border: 1px solid rgba(201, 168, 76, .2);
    border-radius: 50%;
    margin-bottom: 20px;
    font-size: 1.3rem;
    color: var(--color-gold, #C9A84C);
}
.lhub-pillar-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text, #f0ebe2);
    margin: 0 0 12px;
}
.lhub-pillar-text {
    color: var(--color-muted, #8a7f6e);
    font-size: .88rem;
    line-height: 1.65;
    margin: 0 0 20px;
}
.lhub-pillar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.lhub-pillar-list li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .83rem;
    color: var(--color-text, #f0ebe2);
    opacity: .85;
}
.lhub-pillar-list li i { color: var(--color-gold, #C9A84C); font-size: .75em; flex-shrink: 0; }

/* ── Navigation marchés ── */
.lhub-market-nav {
    background: var(--color-surface, #1c1915);
    border-top: 1px solid var(--color-border, rgba(201,168,76,.1));
    border-bottom: 1px solid var(--color-border, rgba(201,168,76,.1));
    padding: 16px 0;
    position: sticky;
    top: var(--nav-h, 70px);
    z-index: 90;
}
.lhub-market-nav-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}
.lhub-market-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    border: 1px solid rgba(201, 168, 76, .25);
    border-radius: 2px;
    color: var(--color-muted, #8a7f6e) !important;
    font-size: .8rem;
    font-weight: 500;
    text-decoration: none !important;
    transition: border-color .2s, color .2s, background .2s;
}
.lhub-market-pill:hover {
    border-color: var(--color-gold, #C9A84C);
    color: var(--color-gold, #C9A84C) !important;
    background: rgba(201, 168, 76, .06);
}
.lhub-market-pill i { font-size: .75em; }

/* ── Recherche ── */
.lhub-search-wrap {
    padding: 32px 0;
    background: var(--color-bg, #12100e);
}
.lhub-search-inner {
    max-width: 520px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
    position: relative;
}
.lhub-search-icon {
    position: absolute;
    left: calc(clamp(20px, 5vw, 48px) + 14px);
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-gold, #C9A84C);
    font-size: .85rem;
    pointer-events: none;
}
.lhub-search-input {
    width: 100%;
    padding: 13px 16px 13px 44px;
    background: var(--color-surface, #1c1915);
    border: 1px solid var(--color-border, rgba(201,168,76,.2));
    border-radius: 2px;
    color: var(--color-text, #f0ebe2);
    font-size: .92rem;
    outline: none;
    transition: border-color .2s;
    box-sizing: border-box;
}
.lhub-search-input:focus { border-color: var(--color-gold, #C9A84C); }
.lhub-search-input::placeholder { color: var(--color-muted, #8a7f6e); }

/* ── Section marchés ── */
.lhub-markets-section {
    background: var(--color-bg, #12100e);
    padding: 0 0 clamp(60px, 7vw, 100px);
}
.lhub-markets-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
}

/* ── Groupe marché ── */
.lhub-market-group {
    margin-bottom: clamp(48px, 6vw, 72px);
    scroll-margin-top: calc(var(--nav-h, 70px) + 80px);
}

/* En-tête de groupe */
.lhub-market-header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--color-border, rgba(201,168,76,.1));
    flex-wrap: wrap;
}
.lhub-market-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(201, 168, 76, .08);
    border: 1px solid rgba(201, 168, 76, .2);
    border-radius: 50%;
    font-size: 1.2rem;
    flex-shrink: 0;
}
.lhub-market-header-text { flex: 1 1 200px; }
.lhub-market-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-text, #f0ebe2);
    margin: 0 0 4px;
}
.lhub-market-desc {
    font-size: .82rem;
    color: var(--color-muted, #8a7f6e);
    margin: 0;
}
.lhub-market-kpis {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    background: var(--color-surface, #1c1915);
    border: 1px solid var(--color-border, rgba(201,168,76,.12));
    border-radius: 3px;
    overflow: hidden;
}
.lhub-market-kpi {
    padding: 10px 18px;
    text-align: center;
}
.lhub-market-kpi strong {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-gold, #C9A84C);
    line-height: 1;
    margin-bottom: 2px;
}
.lhub-market-kpi span { font-size: .7rem; color: var(--color-muted, #8a7f6e); white-space: nowrap; }
.lhub-market-kpi-sep {
    width: 1px;
    height: 36px;
    background: var(--color-border, rgba(201,168,76,.15));
    flex-shrink: 0;
}

/* ── Grille de villes ── */
.lhub-city-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

/* ── Carte ville ── */
.lhub-city-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 20px;
    background: var(--color-surface, #1c1915);
    border: 1px solid var(--color-border, rgba(201,168,76,.12));
    border-radius: 3px;
    text-decoration: none !important;
    transition: border-color .2s, transform .15s, box-shadow .2s;
    cursor: pointer;
}
a.lhub-city-card:hover {
    border-color: var(--color-gold, #C9A84C);
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(0,0,0,.2);
}
.lhub-city-card--soon {
    opacity: .5;
    cursor: default;
}
.lhub-city-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.lhub-city-name {
    font-size: .95rem;
    font-weight: 600;
    color: var(--color-text, #f0ebe2);
    line-height: 1.2;
}
.lhub-city-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    background: rgba(201, 168, 76, .12);
    border: 1px solid rgba(201, 168, 76, .25);
    border-radius: 2px;
    color: var(--color-gold, #C9A84C);
    font-size: .68rem;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
.lhub-city-badge--soon {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.1);
    color: var(--color-muted, #8a7f6e);
}
.lhub-city-stats {
    display: flex;
    align-items: center;
    gap: 0;
}
.lhub-city-stat {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.lhub-city-stat strong {
    font-size: .92rem;
    font-weight: 700;
    color: var(--color-gold, #C9A84C);
    line-height: 1;
    margin-bottom: 2px;
}
.lhub-city-stat span { font-size: .7rem; color: var(--color-muted, #8a7f6e); }
.lhub-city-stat-sep {
    width: 1px;
    height: 28px;
    background: var(--color-border, rgba(201,168,76,.15));
    margin: 0 14px;
    flex-shrink: 0;
}
.lhub-city-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-gold, #C9A84C);
    margin-top: 4px;
    opacity: 0;
    transition: opacity .2s;
}
a.lhub-city-card:hover .lhub-city-cta { opacity: 1; }

/* ── Section témoignages ── */
.lhub-testimonial-section {
    padding: clamp(60px, 7vw, 100px) 0;
    background: var(--color-surface, #1c1915);
    border-top: 1px solid var(--color-border, rgba(201,168,76,.1));
    text-align: center;
}
.lhub-testimonial-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
}
.lhub-testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
    text-align: left;
}
.lhub-testimonial-card {
    background: var(--color-bg, #12100e);
    border: 1px solid var(--color-border, rgba(201,168,76,.12));
    border-radius: 4px;
    padding: 28px 24px;
}
.lhub-testi-stars {
    color: var(--color-gold, #C9A84C);
    font-size: .9rem;
    margin-bottom: 16px;
    display: flex;
    gap: 3px;
}
.lhub-testimonial-card blockquote {
    margin: 0;
    padding: 0;
    border: none;
}
.lhub-testimonial-card blockquote p {
    font-size: .88rem;
    color: var(--color-muted, #8a7f6e);
    line-height: 1.7;
    font-style: italic;
    margin: 0 0 12px;
}
.lhub-testimonial-card footer {
    font-size: .78rem;
    color: var(--color-gold, #C9A84C);
    opacity: .75;
}

/* ── Section extension réseau ── */
.lhub-expansion-section {
    padding: clamp(40px, 5vw, 60px) 0;
    background: var(--color-bg, #12100e);
    border-top: 1px solid var(--color-border, rgba(201,168,76,.1));
}
.lhub-expansion-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
}
.lhub-expansion-content {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    background: var(--color-surface, #1c1915);
    border: 1px solid rgba(201, 168, 76, .2);
    border-radius: 4px;
    padding: 36px 40px;
}
.lhub-expansion-icon {
    font-size: 2.2rem;
    color: var(--color-gold, #C9A84C);
    flex-shrink: 0;
    opacity: .7;
}
.lhub-expansion-text { flex: 1 1 280px; }
.lhub-expansion-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text, #f0ebe2);
    margin: 0 0 8px;
}
.lhub-expansion-text p {
    font-size: .88rem;
    color: var(--color-muted, #8a7f6e);
    margin: 0;
    line-height: 1.65;
}
.lhub-expansion-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

/* ── CTA bas de page ── */
.lhub-cta-section {
    padding: clamp(60px, 8vw, 100px) 0;
    background: var(--color-surface, #1c1915);
    border-top: 1px solid var(--color-border, rgba(201,168,76,.15));
}
.lhub-cta-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 48px);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 5vw, 64px);
    align-items: start;
}
.lhub-cta-title {
    font-size: clamp(1.3rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-text, #f0ebe2);
    margin: 8px 0 12px;
    line-height: 1.2;
}
.lhub-cta-text > p {
    font-size: .88rem;
    color: var(--color-muted, #8a7f6e);
    margin: 0 0 24px;
}
.lhub-cta-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.lhub-cta-reassurance span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .78rem;
    color: var(--color-muted, #8a7f6e);
    padding: 5px 12px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 2px;
}
.lhub-cta-reassurance span i { color: var(--color-gold, #C9A84C); font-size: .75em; }
.lhub-cta-form {
    background: var(--color-bg, #12100e);
    border: 1px solid var(--color-border, rgba(201,168,76,.15));
    border-radius: 4px;
    padding: 32px;
}

/* ════════════════════════════════════════════════════
   RESPONSIVE — Hub Luxe
════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .lhub-pillars-grid { grid-template-columns: repeat(2, 1fr); }
    .lhub-testimonials-grid { grid-template-columns: repeat(2, 1fr); }
    .lhub-cta-inner { grid-template-columns: 1fr; }
    .lhub-market-kpis { display: none; }
}
@media (max-width: 768px) {
    .lhub-pillars-grid { grid-template-columns: 1fr; }
    .lhub-testimonials-grid { grid-template-columns: 1fr; }
    .lhub-market-header { flex-direction: column; }
    .lhub-city-grid { grid-template-columns: repeat(2, 1fr); }
    .lhub-expansion-content { flex-direction: column; gap: 20px; }
    .lhub-stats-inner { gap: 0; }
    .lhub-stat { padding: 8px 14px; }
}
@media (max-width: 480px) {
    .lhub-city-grid { grid-template-columns: 1fr; }
    .lhub-hero-actions { flex-direction: column; align-items: center; }
    .lhub-cta-form { padding: 20px 16px; }
    .luxe-property-tags { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   FOUNDERS SECTION — EEAT trust signal
   ============================================================ */
.luxe-founders {
    background: linear-gradient(135deg, var(--color-surface) 0%, #1f1b16 100%);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 72px 0;
}
.luxe-founders-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}
.luxe-founders-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(201,168,76,.12);
    border: 1px solid rgba(201,168,76,.3);
    color: var(--color-gold);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 100px;
    margin-bottom: 28px;
}
.luxe-founders-title {
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.3;
    margin: 0 0 20px;
}
.luxe-founders-lead {
    color: var(--color-muted);
    font-size: 1.05rem;
    line-height: 1.7;
    max-width: 680px;
    margin: 0 auto 44px;
}
.luxe-founders-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    text-align: left;
    margin-bottom: 40px;
}
.luxe-founder-card {
    background: rgba(255,255,255,.03);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 28px 24px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
    transition: border-color .2s;
}
.luxe-founder-card:hover { border-color: rgba(201,168,76,.4); }
.luxe-founder-avatar {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    background: linear-gradient(135deg, var(--color-gold), #a07a2a);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    font-weight: 800;
    color: #12100e;
    letter-spacing: 0;
}
.luxe-founder-content { flex: 1 1 0; }
.luxe-founder-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 2px;
}
.luxe-founder-role {
    font-size: .78rem;
    color: var(--color-gold);
    font-weight: 600;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.luxe-founder-content p {
    font-size: .9rem;
    color: var(--color-muted);
    line-height: 1.65;
    margin: 0;
}
.luxe-founders-quote {
    background: rgba(201,168,76,.06);
    border-left: 3px solid var(--color-gold);
    border-radius: 0 8px 8px 0;
    padding: 20px 28px;
    margin: 0 0 36px;
    text-align: left;
}
.luxe-founders-quote p {
    font-style: italic;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 1.65;
    margin: 0 0 8px;
}
.luxe-founders-quote cite {
    font-size: .82rem;
    color: var(--color-gold);
    font-style: normal;
    font-weight: 600;
}
.luxe-founders-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}
.luxe-btn-founders {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--color-gold);
    color: #12100e;
    font-size: .9rem;
    font-weight: 700;
    padding: 13px 28px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: .02em;
    transition: opacity .2s, transform .2s;
}
.luxe-btn-founders:hover { opacity: .88; transform: translateY(-1px); }
.luxe-founders-tel {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-muted);
    font-size: .9rem;
    text-decoration: none;
    transition: color .2s;
}
.luxe-founders-tel:hover { color: var(--color-gold); }
.luxe-founders-tel i { color: var(--color-gold); }
@media (max-width: 768px) {
    .luxe-founders-grid { grid-template-columns: 1fr; }
    .luxe-founders-cta { flex-direction: column; gap: 16px; }
}

/* ============================================================
   ZONE PAGE — Haut de gamme section
   ============================================================ */
.zone-content-section--luxe {
    border-top: 1px solid rgba(201,168,76,.2);
}
.zone-region--luxe .zone-region-title {
    color: var(--color-gold);
}
.zone-region--luxe .zone-region-title i {
    color: var(--color-gold);
}
.zone-city-card--luxe {
    border-color: rgba(201,168,76,.25) !important;
    background: linear-gradient(135deg, rgba(201,168,76,.05), transparent) !important;
}
.zone-city-card--luxe:hover {
    border-color: var(--color-gold) !important;
    background: rgba(201,168,76,.1) !important;
}
.zone-city-card--luxe .zone-city-cta {
    color: var(--color-gold);
}
.zone-city-luxe-badge {
    color: var(--color-gold);
    font-size: .7rem;
    flex-shrink: 0;
}

/* ============================================================
   BLOG CTA INJECTOR — encarts conversion dans articles de blog
   ============================================================ */

.blog-cta {
    margin: 2.5rem 0;
    clear: both;
    font-family: inherit;
}

/* ---- Encart milieu : Conseil de pro ---- */
.blog-cta-mid {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e5e0);
    border-left: 4px solid var(--color-gold, #b8935a);
    border-radius: 8px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.blog-cta-mid-inner {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}
.blog-cta-avatar {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--color-bg, #faf8f4);
    border: 2px solid var(--color-gold, #b8935a);
    box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.blog-cta-avatar img,
.blog-cta-avatar picture {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.blog-cta-avatar-lg {
    width: 96px;
    height: 96px;
}
.blog-cta-mid-body {
    flex: 1;
    min-width: 0;
}
.blog-cta-mid-label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-gold, #b8935a);
    margin-bottom: .5rem;
}
.blog-cta-mid-tip {
    font-size: 1.02rem;
    line-height: 1.55;
    color: var(--color-text, #2a2a28);
    margin: 0 0 .75rem;
    font-style: italic;
}
.blog-cta-mid-author {
    display: flex;
    flex-direction: column;
    font-size: .88rem;
    line-height: 1.3;
}
.blog-cta-mid-author strong {
    color: var(--color-text, #2a2a28);
    font-weight: 600;
}
.blog-cta-mid-author span {
    color: var(--color-muted, #7a7a75);
    font-size: .82rem;
}

/* ---- Encart fin : CTA conversion ---- */
.blog-cta-end {
    background: linear-gradient(135deg, #1a1a18 0%, #2a2820 100%);
    color: #fff;
    border-radius: 12px;
    padding: 2.25rem 2rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
    position: relative;
    overflow: hidden;
}
.blog-cta-end::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(184,147,90,.18) 0%, transparent 70%);
    pointer-events: none;
}
.blog-cta-end-inner {
    position: relative;
    z-index: 1;
}
.blog-cta-end-top {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.blog-cta-end-top .blog-cta-avatar {
    border-color: var(--color-gold, #b8935a);
    box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.blog-cta-end-quote {
    flex: 1;
    margin: 0;
    padding: 0;
    border: 0;
}
.blog-cta-end-quote p {
    font-size: 1.02rem;
    line-height: 1.5;
    color: #f3eddf;
    margin: 0 0 .6rem;
    font-style: italic;
    font-weight: 400;
}
.blog-cta-end-quote footer {
    display: flex;
    flex-direction: column;
    font-size: .85rem;
    line-height: 1.3;
}
.blog-cta-end-quote footer strong {
    color: var(--color-gold, #d4b07c);
    font-weight: 600;
    font-style: normal;
}
.blog-cta-end-quote footer span {
    color: rgba(255,255,255,.6);
    font-size: .8rem;
    font-style: normal;
}
.blog-cta-end-title {
    font-size: 1.6rem;
    line-height: 1.25;
    font-weight: 600;
    color: #fff;
    margin: 0 0 1rem;
    letter-spacing: -.01em;
}
.blog-cta-end-local {
    background: rgba(184,147,90,.15);
    border: 1px solid rgba(184,147,90,.3);
    border-radius: 6px;
    padding: .75rem 1rem;
    margin: 0 0 1.25rem;
    font-size: .92rem;
    color: #f3eddf;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
.blog-cta-end-local i {
    color: var(--color-gold, #d4b07c);
}
.blog-cta-end-local a {
    color: var(--color-gold, #d4b07c);
    text-decoration: underline;
    margin-left: auto;
    font-weight: 600;
}
.blog-cta-end-local a:hover {
    color: #fff;
}
.blog-cta-end-benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 1.75rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .65rem 1.25rem;
}
.blog-cta-end-benefits li {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .95rem;
    color: #e8e4d9;
}
.blog-cta-end-benefits i {
    color: var(--color-gold, #d4b07c);
    width: 18px;
    text-align: center;
    flex-shrink: 0;
}
.blog-cta-end-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.blog-cta .blog-cta-end-primary,
a.blog-cta-end-primary.btn-luxe {
    display: inline-flex !important;
    align-items: center;
    gap: .6rem;
    background: var(--color-gold, #b8935a) !important;
    color: #1a1a18 !important;
    padding: .95rem 1.75rem !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
    font-size: .95rem !important;
    letter-spacing: .02em !important;
    text-transform: none !important;
    text-decoration: none !important;
    transition: all .2s ease;
    border: 2px solid var(--color-gold, #b8935a) !important;
}
.blog-cta .blog-cta-end-primary:hover,
a.blog-cta-end-primary.btn-luxe:hover {
    background: #d4b07c !important;
    border-color: #d4b07c !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(184,147,90,.35);
    color: #1a1a18 !important;
}
.blog-cta-end-secondary {
    color: rgba(255,255,255,.8);
    font-size: .9rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.blog-cta-end-secondary:hover {
    color: #fff;
}
.blog-cta-end-trust {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255,255,255,.12);
    font-size: .82rem;
    color: rgba(255,255,255,.6);
}
.blog-cta-end-trust span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.blog-cta-end-trust i {
    color: var(--color-gold, #d4b07c);
}

/* ---- Responsive mobile ---- */
@media (max-width: 768px) {
    .blog-cta {
        margin: 2rem 0;
    }
    .blog-cta-mid {
        padding: 1.25rem;
    }
    .blog-cta-mid-inner {
        flex-direction: column;
        gap: 1rem;
    }
    .blog-cta-avatar {
        width: 64px;
        height: 64px;
    }
    .blog-cta-end {
        padding: 1.75rem 1.25rem;
    }
    .blog-cta-end-top {
        flex-direction: column;
        gap: 1rem;
        align-items: flex-start;
    }
    .blog-cta-avatar-lg {
        width: 72px;
        height: 72px;
    }
    .blog-cta-end-title {
        font-size: 1.3rem;
    }
    .blog-cta-end-benefits {
        grid-template-columns: 1fr;
        gap: .55rem;
    }
    .blog-cta-end-actions {
        flex-direction: column;
        align-items: stretch;
        gap: .75rem;
    }
    .blog-cta-end-primary {
        justify-content: center;
        width: 100%;
    }
    .blog-cta-end-secondary {
        text-align: center;
    }
    .blog-cta-end-local {
        font-size: .85rem;
    }
    .blog-cta-end-local a {
        margin-left: 0;
        width: 100%;
        margin-top: .25rem;
    }
    .blog-cta-end-trust {
        gap: .75rem 1.25rem;
        font-size: .78rem;
    }
}

/* ---- Encart "Articles connexes" (maillage interne) ---- */
.blog-cta-related {
    background: var(--color-bg, #faf8f4);
    border: 1px solid var(--color-border, #e5e5e0);
    border-radius: 10px;
    padding: 1.75rem;
}
.blog-cta-related-header {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border, #e5e5e0);
}
.blog-cta-related-label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--color-gold, #b8935a);
    margin-bottom: .35rem;
}
.blog-cta-related-title {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
    color: var(--color-text, #2a2a28);
    margin: 0;
}
.blog-cta-related-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
.blog-cta-related-item {
    margin: 0;
}
.blog-cta-related-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e5e0);
    border-radius: 8px;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.blog-cta-related-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,.08);
    border-color: var(--color-gold, #b8935a);
    color: inherit;
}
.blog-cta-related-thumb {
    width: 100%;
    height: 140px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg, #faf8f4);
    display: block;
}
.blog-cta-related-body {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: .95rem 1rem 1rem;
    flex: 1;
}
.blog-cta-related-cat {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-gold, #b8935a);
}
.blog-cta-related-name {
    font-size: .98rem;
    line-height: 1.35;
    font-weight: 600;
    color: var(--color-text, #2a2a28);
    /* 3 lignes max */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.blog-cta-related-arrow {
    margin-top: auto;
    padding-top: .4rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-gold, #b8935a);
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.blog-cta-related-link:hover .blog-cta-related-arrow i {
    transform: translateX(3px);
    transition: transform .2s ease;
}

@media (max-width: 768px) {
    .blog-cta-related {
        padding: 1.25rem;
    }
    .blog-cta-related-title {
        font-size: 1.15rem;
    }
    .blog-cta-related-list {
        grid-template-columns: 1fr;
        gap: .85rem;
    }
    .blog-cta-related-link {
        flex-direction: row;
        align-items: stretch;
    }
    .blog-cta-related-thumb {
        width: 110px;
        height: auto;
        flex-shrink: 0;
    }
    .blog-cta-related-body {
        padding: .75rem .9rem;
    }
    .blog-cta-related-name {
        font-size: .92rem;
        -webkit-line-clamp: 3;
    }
}

/* ---- Mini-CTA inline (rythme de lecture) ---- */
.blog-cta-mini {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e5e0);
    border-left: 4px solid var(--color-gold, #b8935a);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.blog-cta-mini-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(184,147,90,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold, #b8935a);
    font-size: 1.1rem;
}
.blog-cta-mini-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.blog-cta-mini-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text, #2a2a28);
    line-height: 1.3;
}
.blog-cta-mini-desc {
    font-size: .85rem;
    color: var(--color-muted, #7a7a75);
    line-height: 1.35;
}
.blog-cta-mini-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--color-gold, #b8935a) !important;
    color: #1a1a18 !important;
    padding: .6rem 1.1rem !important;
    border-radius: 5px !important;
    font-weight: 600 !important;
    font-size: .85rem !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border: 1px solid var(--color-gold, #b8935a) !important;
    transition: all .2s ease;
    white-space: nowrap;
}
.blog-cta-mini-btn:hover {
    background: #d4b07c !important;
    border-color: #d4b07c !important;
    color: #1a1a18 !important;
    transform: translateY(-1px);
}
@media (max-width: 768px) {
    .blog-cta-mini {
        flex-direction: column;
        align-items: flex-start;
        padding: 1rem;
        gap: .75rem;
    }
    .blog-cta-mini-icon {
        width: 40px;
        height: 40px;
    }
    .blog-cta-mini-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================================
   PAGE À PROPOS — redesign story & team (v3.7.9)
   ============================================================ */

/* --- Story section : 2 colonnes --- */
.about-story-section {
    padding: 72px 20px;
}

.about-story-grid {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 64px;
    align-items: start;
    width: min(var(--max-wide), 100%);
    margin: 0 auto;
}

/* Texte : masquer les images WP et les blocs SEO dans la colonne prose */
.about-story-text .about-story-body figure,
.about-story-text .about-story-body .wp-block-image,
.about-story-text .about-story-body img,
.about-story-text .about-story-body .seo-block-media,
.about-story-text .about-story-body .wp-block-gallery { display: none !important; }

/* Colonne droite sticky */
.about-story-aside {
    position: sticky;
    top: calc(var(--nav-h) + 24px);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.about-story-founder-img {
    margin: 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

.about-story-founder-img img {
    width: 100%;
    height: 460px;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.about-story-quote {
    background: var(--color-surface);
    border-left: 3px solid var(--color-gold);
    padding: 22px 26px;
    margin: 0;
    border-radius: 0 8px 8px 0;
}

.about-story-quote p {
    font-family: var(--font-accent);
    font-size: .97rem;
    font-style: italic;
    color: var(--color-text);
    line-height: 1.65;
    margin: 0 0 10px;
}

.about-story-quote cite {
    font-size: .73rem;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-style: normal;
}

/* --- Team section : cartes horizontales --- */
.about-team-grid-v2 {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 900px;
    margin: 0 auto;
}

.about-team-card-h {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: rgba(10,10,10,.95);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color .25s ease, box-shadow .25s ease;
}

.about-team-card-h:hover {
    border-color: rgba(212,175,55,.35);
    box-shadow: 0 16px 48px rgba(0,0,0,.55);
}

.about-team-card-photo {
    overflow: hidden;
    flex-shrink: 0;
}

.about-team-card-photo img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .45s ease;
}

.about-team-card-h:hover .about-team-card-photo img {
    transform: scale(1.04);
}

.about-team-card-body {
    padding: 36px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* .about-team-name et .about-team-role déjà définis */
.about-team-card-body .about-team-name {
    font-size: 1.15rem;
    margin-bottom: 5px;
}

.about-team-sep {
    width: 36px;
    height: 2px;
    background: var(--color-gold);
    margin: 14px 0 18px;
    border-radius: 1px;
}

.about-team-bio {
    color: var(--color-muted);
    font-size: .88rem;
    line-height: 1.8;
    margin: 0;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .about-story-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .about-story-aside {
        position: static;
        order: -1;
    }
    .about-story-founder-img img {
        height: 300px;
    }
    .about-team-card-h {
        grid-template-columns: 1fr;
    }
    .about-team-card-photo img {
        height: 260px;
        min-height: unset;
    }
    .about-team-card-body {
        padding: 28px 24px;
    }
}
