/* ============================================================
   V2-HOME.CSS — Refonte test de la page d'accueil AFE
   Chargé uniquement sur index.html de la branche V2.
   ============================================================ */

.v2-home {
    background: #f6f4f1;
    color: #242424;
}

.v2-home main {
    background: #f6f4f1;
}

/* ---------- Header ---------- */
.v2-home header {
    top: 0;
    margin: 0 !important;
    min-height: 92px;
    padding: 8px 4%;
    background: linear-gradient(180deg, rgba(12,12,12,.92), rgba(12,12,12,.55), transparent);
    align-items: flex-start;
}

.v2-home header .logo img {
    width: auto;
    height: 76px !important;
    padding: 0 !important;
    object-fit: contain;
}

.v2-home header .navbar {
    width: auto !important;
    min-width: 52%;
    margin: 18px 0 0 !important;
}

.v2-home header .nav-menu {
    gap: 34px;
    justify-content: flex-end;
}

.v2-home header .nav-menu a {
    color: #fff;
    font-weight: 650;
    letter-spacing: .15px;
}

.v2-home .burger-btn {
    margin-top: 10px;
}

/* ---------- Utilitaires ---------- */
.v2-shell {
    width: min(1180px, 92%);
    margin: 0 auto;
}

.v2-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    padding: 7px 12px;
    border: 1px solid rgba(225,84,34,.28);
    border-radius: 999px;
    background: rgba(225,84,34,.08);
    color: #ad3e18;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.v2-section {
    padding: 76px 0;
}

.v2-section-head {
    max-width: 760px;
    margin-bottom: 34px;
}

.v2-section-head.center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.v2-section-head.center .v2-kicker {
    margin-left: auto;
    margin-right: auto;
}

.v2-section-head h2 {
    margin-top: 14px;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.08;
    letter-spacing: -.035em;
    color: #181818;
}

.v2-section-head h2 span {
    color: var(--secondary);
}

.v2-section-head p {
    margin-top: 14px;
    color: #626262;
    font-size: 17px;
    line-height: 1.7;
}

.v2-btn {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 22px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.v2-btn:hover {
    transform: translateY(-2px);
}

.v2-btn-primary {
    background: var(--secondary);
    color: #fff;
    box-shadow: 0 12px 30px rgba(225,84,34,.28);
}

.v2-btn-primary:hover {
    background: #c9471b;
}

.v2-btn-light {
    background: #fff;
    color: #222;
    border: 1px solid rgba(255,255,255,.75);
}

.v2-btn-outline {
    border: 1px solid #d7d1ca;
    color: #232323;
    background: rgba(255,255,255,.7);
}

/* ---------- Hero ---------- */
.v2-hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    color: #fff;
    background-image:
        linear-gradient(90deg, rgba(10,10,10,.90) 0%, rgba(10,10,10,.76) 38%, rgba(10,10,10,.35) 68%, rgba(10,10,10,.18) 100%),
        linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.55)),
        url("../assets/images/salon-hiver-hero.webp");
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.v2-hero::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 110px;
    background: linear-gradient(transparent, rgba(0,0,0,.48));
    pointer-events: none;
}

.v2-hero-inner {
    position: relative;
    z-index: 2;
    width: min(1180px, 92%);
    margin: 0 auto;
    padding-top: 92px;
}

.v2-hero-copy {
    max-width: 700px;
}

.v2-hero .v2-kicker {
    color: #ffd4c3;
    border-color: rgba(255,255,255,.22);
    background: rgba(225,84,34,.22);
}

.v2-hero h1 {
    margin-top: 18px;
    max-width: 760px;
    font-size: clamp(38px, 6vw, 68px);
    line-height: 1.02;
    letter-spacing: -.045em;
    color: #fff;
}

.v2-hero h1 span {
    color: #f07b45;
}

.v2-hero-lead {
    margin-top: 20px;
    max-width: 650px;
    color: rgba(255,255,255,.85);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.65;
}

.v2-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.v2-hero-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    max-width: 760px;
    margin-top: 34px;
}

.v2-proof-item {
    min-height: 76px;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 12px;
    background: rgba(0,0,0,.30);
    backdrop-filter: blur(7px);
}

.v2-proof-item strong {
    display: block;
    color: #fff;
    font-size: 14px;
}

.v2-proof-item span {
    display: block;
    margin-top: 3px;
    color: rgba(255,255,255,.66);
    font-size: 12px;
    line-height: 1.35;
}

/* ---------- Services ---------- */
.v2-services {
    background: #fff;
}

.v2-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.v2-service-card {
    position: relative;
    overflow: hidden;
    min-height: 350px;
    border-radius: 18px;
    background: #1f1f1f;
    box-shadow: 0 14px 34px rgba(20,20,20,.10);
}

.v2-service-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.v2-service-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.08) 20%, rgba(0,0,0,.84) 100%);
}

.v2-service-card:hover img {
    transform: scale(1.035);
}

.v2-service-body {
    position: absolute;
    z-index: 2;
    inset: auto 0 0;
    padding: 24px;
    color: #fff;
}

.v2-service-label {
    display: inline-flex;
    padding: 5px 9px;
    margin-bottom: 9px;
    border-radius: 999px;
    background: rgba(225,84,34,.90);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.v2-service-card h3 {
    color: #fff;
    font-size: 23px;
    line-height: 1.15;
}

.v2-service-card p {
    margin-top: 8px;
    color: rgba(255,255,255,.76);
    line-height: 1.5;
}

.v2-service-price {
    display: inline-block;
    margin-top: 14px;
    color: #fff;
    font-size: 16px;
    font-weight: 850;
}

/* ---------- Expertise ---------- */
.v2-expertise {
    background: #f6f4f1;
}

.v2-expertise-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 42px;
    align-items: center;
}

.v2-expertise-panel {
    padding: 34px;
    border: 1px solid #e4ded7;
    border-radius: 20px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 20px 44px rgba(45,35,28,.07);
}

.v2-expertise-list {
    display: grid;
    gap: 14px;
    margin-top: 22px;
}

.v2-expertise-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 13px;
    align-items: flex-start;
}

.v2-expertise-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #fff1ea;
    color: var(--secondary);
    font-size: 19px;
    font-weight: 900;
}

.v2-expertise-item h3 {
    font-size: 17px;
    color: #1f1f1f;
}

.v2-expertise-item p {
    margin-top: 3px;
    color: #696969;
    line-height: 1.55;
}

.v2-expertise-visual {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    border-radius: 22px;
    box-shadow: 0 24px 50px rgba(0,0,0,.13);
}

.v2-expertise-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.v2-expertise-badge {
    position: absolute;
    z-index: 2;
    left: 22px;
    right: 22px;
    bottom: 22px;
    padding: 20px;
    border-radius: 15px;
    background: rgba(15,15,15,.86);
    color: #fff;
    backdrop-filter: blur(8px);
}

.v2-expertise-badge strong {
    display: block;
    font-size: 20px;
}

.v2-expertise-badge span {
    display: block;
    margin-top: 4px;
    color: rgba(255,255,255,.68);
}

/* ---------- Avant / après ---------- */
.v2-before-after {
    background: #171717;
    color: #fff;
}

.v2-before-after .v2-section-head h2,
.v2-before-after .v2-section-head p {
    color: #fff;
}

.v2-before-after .v2-section-head p {
    color: rgba(255,255,255,.67);
}

.v2-compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.v2-compare-card {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 18px;
    background: #222;
}

.v2-compare-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.v2-compare-image {
    position: relative;
    min-height: 280px;
    overflow: hidden;
}

.v2-compare-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.v2-compare-image span {
    position: absolute;
    left: 12px;
    top: 12px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.v2-compare-copy {
    padding: 20px 22px 23px;
}

.v2-compare-copy h3 {
    color: #fff;
    font-size: 21px;
}

.v2-compare-copy p {
    margin-top: 7px;
    color: rgba(255,255,255,.64);
}

/* ---------- Parcours ---------- */
.v2-process {
    background: #fff;
}

.v2-process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.v2-process-step {
    padding: 24px 20px;
    border: 1px solid #e7e1db;
    border-radius: 16px;
    background: #faf9f7;
}

.v2-step-number {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    margin-bottom: 15px;
    border-radius: 10px;
    background: var(--secondary);
    color: #fff;
    font-size: 14px;
    font-weight: 900;
}

.v2-process-step h3 {
    font-size: 18px;
    color: #222;
}

.v2-process-step p {
    margin-top: 7px;
    color: #686868;
    line-height: 1.55;
}

/* ---------- Avis + zone ---------- */
.v2-trust {
    background: #f2eee9;
}

.v2-trust-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 24px;
}

.v2-review-card,
.v2-zone-card {
    min-height: 100%;
    padding: 30px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 15px 38px rgba(43,34,28,.07);
}

.v2-stars {
    color: #f5a623;
    letter-spacing: 2px;
    font-size: 22px;
}

.v2-review-card blockquote {
    margin-top: 16px;
    color: #282828;
    font-size: 20px;
    line-height: 1.55;
    font-weight: 650;
}

.v2-review-author {
    margin-top: 16px;
    color: #6f6f6f;
    font-size: 14px;
}

.v2-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.v2-review-card-multi {
    display: flex;
    flex-direction: column;
}

.v2-review-list {
    display: grid;
}

.v2-review-item {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ece7e2;
}

.v2-review-item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.v2-review-card-multi .v2-review-item blockquote {
    margin-top: 10px;
    font-size: 17px;
    line-height: 1.5;
}

.v2-review-card-multi .v2-review-author {
    margin-top: 10px;
}

.v2-review-note {
    display: block;
    margin-top: 3px;
    color: #918a84;
    font-size: 11px;
    font-style: italic;
}

.v2-review-card-multi .v2-review-actions {
    margin-top: auto;
    padding-top: 24px;
}

.v2-zone-card {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    gap: 20px;
    align-items: center;
}

.v2-zone-card img {
    width: 100%;
    border-radius: 14px;
}

.v2-zone-copy h3 {
    font-size: 25px;
}

.v2-zone-copy p {
    margin-top: 9px;
    color: #666;
    line-height: 1.6;
}

.v2-zone-list {
    display: grid;
    gap: 7px;
    margin-top: 15px;
    color: #3f3f3f;
    font-size: 14px;
}

/* ---------- Vérificateur de zone interactif ---------- */
.v2-zone-explorer {
    grid-template-columns: .92fr 1.08fr;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
}
.v2-zone-map {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    background: #e8e4de;
}
.v2-zone-card .v2-zone-map img {
    width: 100%;
    height: 100%;
    min-height: 500px;
    border-radius: 0;
    object-fit: cover;
    transition: filter .25s ease, transform .25s ease;
}
.v2-zone-explorer[data-zone="1"] .v2-zone-map img { filter: saturate(1.18) contrast(1.04);transform:scale(1.02); }
.v2-zone-explorer[data-zone="2"] .v2-zone-map img { filter: hue-rotate(16deg) saturate(1.05);transform:scale(1.02); }
.v2-zone-explorer[data-zone="3"] .v2-zone-map img { filter: grayscale(.35) contrast(.9); }
.v2-zone-map-controls {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 7px;
    padding: 8px;
    border-radius: 14px;
    background: rgba(20,20,20,.88);
    box-shadow: 0 12px 30px rgba(0,0,0,.22);
    backdrop-filter: blur(8px);
}
.v2-zone-map-controls button {
    min-height: 48px;
    padding: 7px 6px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.v2-zone-map-controls button span {
    display: block;
    margin: 0 auto 3px;
    color: #ff8054;
    font-size: 16px;
}
.v2-zone-map-controls button:hover,
.v2-zone-map-controls button.is-active {
    border-color: #ef5a2a;
    background: #ef5a2a;
}
.v2-zone-map-controls button.is-active span { color: #fff; }
.v2-zone-copy {
    padding: 30px 28px 28px 8px;
}
.v2-zone-label {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f5eee9;
    color: #8b4a31;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.v2-zone-search { margin-top: 20px; }
.v2-zone-search label {
    display: block;
    margin-bottom: 7px;
    color: #333;
    font-size: 12px;
    font-weight: 800;
}
.v2-zone-search-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
}
.v2-zone-search input {
    min-width: 0;
    min-height: 48px;
    padding: 0 13px;
    border: 1px solid #d8d0ca;
    border-radius: 10px;
    background: #fff;
    color: #252525;
    font: inherit;
    font-size: 14px;
}
.v2-zone-search input:focus {
    outline: 3px solid rgba(239,90,42,.14);
    border-color: #ef5a2a;
}
.v2-zone-search button {
    min-height: 48px;
    padding: 0 15px;
    border: 0;
    border-radius: 10px;
    background: #ef5a2a;
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
}
.v2-zone-search small {
    display: block;
    margin-top: 7px;
    color: #85807b;
    font-size: 10px;
    line-height: 1.45;
}
.v2-zone-result {
    margin-top: 17px;
    padding: 16px;
    border: 1px solid #e1d9d3;
    border-radius: 13px;
    background: #faf8f6;
    color: #4f4a46;
    font-size: 12px;
    line-height: 1.5;
}
.v2-zone-result > p { margin-top: 5px; }
.v2-zone-result-head {
    display: flex;
    align-items: center;
    gap: 8px;
}
.v2-zone-result-head span {
    display: inline-flex;
    min-width: 52px;
    justify-content: center;
    padding: 5px 8px;
    border-radius: 999px;
    background: #202020;
    color: #fff;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
}
.v2-zone-result.zone-1 { border-color:#a8dac3;background:#f2fbf7; }
.v2-zone-result.zone-2 { border-color:#f0c38e;background:#fff9ef; }
.v2-zone-result.zone-3 { border-color:#d5d0cb;background:#f7f5f3; }
.v2-zone-location {
    overflow-wrap: anywhere;
    color: #26211f;
    font-weight: 750;
}
.v2-zone-result-action {
    display: inline-flex;
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 9px;
    background: #ef5a2a;
    color: #fff;
    font-weight: 850;
}
.v2-zone-result small {
    display: block;
    margin-top: 9px;
    color: #77716c;
    font-size: 10px;
}
.v2-zone-result.is-loading { opacity:.72; }

@media (max-width: 767px) {
    .v2-zone-explorer { grid-template-columns: 1fr; }
    .v2-zone-map,
    .v2-zone-card .v2-zone-map img { min-height: 360px; }
    .v2-zone-copy { padding: 25px 22px 27px; }
    .v2-zone-search-row { grid-template-columns: 1fr; }
    .v2-zone-map-controls { left:10px;right:10px;bottom:10px; }
    .v2-zone-map-controls button { min-height:44px;font-size:9px; }
}

/* ---------- Nouvelle carte immersive ---------- */
.v2-zone-explorer {
    display:block;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(53,42,34,.08);
    background:#fff;
}
.v2-zone-explorer .v2-zone-map {
    position:relative;
    min-height:540px;
    isolation:isolate;
    overflow:hidden;
    background:#dfe5dc;
}
.v2-zone-explorer .v2-zone-map > img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
    object-position:center;
    filter:saturate(.88) contrast(.96);
    transform:scale(1.02);
}
.v2-zone-map-shade {
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(180deg,rgba(18,21,18,.52) 0%,rgba(18,21,18,.08) 34%,rgba(18,21,18,.08) 62%,rgba(18,21,18,.66) 100%),
        linear-gradient(90deg,rgba(18,21,18,.08),transparent 48%,rgba(18,21,18,.16));
    pointer-events:none;
}
.v2-zone-map-heading {
    position:absolute;
    z-index:3;
    top:22px;
    left:22px;
    color:#fff;
    text-shadow:0 2px 18px rgba(0,0,0,.32);
}
.v2-zone-map-heading span {
    display:block;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.v2-zone-map-heading strong {
    display:block;
    margin-top:4px;
    font-size:22px;
    line-height:1.1;
}
.v2-zone-search-floating {
    position:absolute;
    z-index:5;
    top:20px;
    right:20px;
    width:min(330px,52%);
    margin:0;
    padding:10px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:14px;
    background:rgba(255,255,255,.94);
    box-shadow:0 15px 35px rgba(25,28,24,.22);
    backdrop-filter:blur(12px);
}
.v2-zone-search-floating label {
    margin:0 0 5px 3px;
    color:#4b4540;
    font-size:9px;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.v2-zone-search-floating .v2-zone-search-row { gap:6px; }
.v2-zone-search-floating input { min-height:42px;background:#fff; }
.v2-zone-search-floating button { min-height:42px;padding:0 12px;font-size:11px; }
.v2-zone-hotspots {
    position:absolute;
    inset:0;
    z-index:4;
    pointer-events:none;
}
.v2-zone-hotspots .zone-hotspot {
    position:absolute;
    display:flex;
    align-items:center;
    gap:7px;
    min-height:42px;
    padding:6px 10px 6px 6px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:999px;
    color:#fff;
    font:inherit;
    box-shadow:0 10px 25px rgba(20,25,20,.28);
    backdrop-filter:blur(8px);
    cursor:pointer;
    pointer-events:auto;
    transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.v2-zone-hotspots .zone-hotspot:hover,
.v2-zone-hotspots .zone-hotspot.is-active {
    transform:translateY(-3px) scale(1.04);
    box-shadow:0 14px 30px rgba(20,25,20,.36);
    filter:brightness(1.08);
}
.v2-zone-hotspots .zone-hotspot span {
    display:grid;
    width:29px;
    height:29px;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:#222;
    font-size:13px;
    font-weight:900;
}
.v2-zone-hotspots .zone-hotspot b { font-size:10px;letter-spacing:.02em; }
.zone-hotspot-1 { left:45%;top:42%;background:rgba(49,112,77,.90); }
.zone-hotspot-2 { left:18%;top:28%;background:rgba(112,75,137,.90); }
.zone-hotspot-3 { right:9%;top:58%;background:rgba(197,101,79,.90); }
.v2-zone-result-drawer {
    position:absolute;
    z-index:5;
    right:20px;
    bottom:20px;
    width:min(355px,54%);
    max-height:230px;
    overflow:auto;
    margin:0;
    padding:17px;
    border:1px solid rgba(255,255,255,.52);
    border-radius:16px;
    background:rgba(255,255,255,.94);
    box-shadow:0 18px 40px rgba(20,25,20,.28);
    backdrop-filter:blur(14px);
}
.v2-zone-result-drawer .v2-zone-result-intro strong { color:#25211e;font-size:15px; }
.v2-zone-result-drawer .v2-zone-result-intro p { margin-top:3px;color:#6d6762; }
.v2-zone-result-drawer.zone-1,
.v2-zone-result-drawer.zone-2,
.v2-zone-result-drawer.zone-3 { background:rgba(255,255,255,.95); }
.v2-zone-legend {
    position:absolute;
    z-index:4;
    left:18px;
    bottom:18px;
    display:grid;
    gap:5px;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:12px;
    background:rgba(20,22,20,.76);
    color:#fff;
    font-size:9px;
    backdrop-filter:blur(10px);
}
.v2-zone-legend span { display:flex;align-items:center;gap:7px; }
.v2-zone-legend i { width:9px;height:9px;border-radius:50%; }
.v2-zone-legend .z1 { background:#5da77a; }
.v2-zone-legend .z2 { background:#9d75b4; }
.v2-zone-legend .z3 { background:#d87e68; }
.v2-zone-privacy {
    margin:0;
    padding:10px 18px;
    border-top:1px solid #eee7e2;
    background:#fff;
    color:#837b75;
    text-align:center;
    font-size:9px;
}
.v2-zone-explorer[data-zone="1"] .v2-zone-map > img,
.v2-zone-explorer[data-zone="2"] .v2-zone-map > img,
.v2-zone-explorer[data-zone="3"] .v2-zone-map > img { transform:scale(1.035); }
.v2-zone-explorer[data-zone="1"] .v2-zone-map > img { filter:saturate(1.02) contrast(1); }
.v2-zone-explorer[data-zone="2"] .v2-zone-map > img { filter:hue-rotate(8deg) saturate(.98); }
.v2-zone-explorer[data-zone="3"] .v2-zone-map > img { filter:grayscale(.18) contrast(.94); }

@media(max-width:767px){
    .v2-zone-explorer .v2-zone-map { min-height:660px; }
    .v2-zone-map-heading { top:18px;left:18px; }
    .v2-zone-map-heading strong { font-size:19px; }
    .v2-zone-search-floating {
        top:78px;
        left:14px;
        right:14px;
        width:auto;
    }
    .v2-zone-search-floating .v2-zone-search-row { grid-template-columns:1fr; }
    .v2-zone-search-floating button { width:100%; }
    .zone-hotspot-1 { left:48%;top:43%; }
    .zone-hotspot-2 { left:9%;top:34%; }
    .zone-hotspot-3 { right:7%;top:53%; }
    .v2-zone-hotspots .zone-hotspot b { display:none; }
    .v2-zone-hotspots .zone-hotspot { padding:5px; }
    .v2-zone-result-drawer {
        left:14px;
        right:14px;
        bottom:72px;
        width:auto;
        max-height:205px;
    }
    .v2-zone-legend {
        left:14px;
        right:14px;
        bottom:14px;
        display:flex;
        justify-content:space-between;
        gap:7px;
        padding:9px 10px;
    }
    .v2-zone-legend span { font-size:8px; }
}

/* ---------- Carte géographique réelle ---------- */
.v2-real-map-shell {
    position:relative;
    min-height:560px;
    overflow:hidden;
    background:#e9ece7;
}
.v2-real-map {
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    min-height:560px;
}
.v2-real-map .leaflet-tile-pane { filter:saturate(.72) contrast(.94) brightness(1.03); }
.v2-real-map .leaflet-control-zoom {
    margin-top:88px;
    border:0;
    box-shadow:0 8px 22px rgba(35,42,35,.18);
}
.v2-real-map .leaflet-control-zoom a { color:#2a2d29; }
.v2-map-brand {
    position:absolute;
    z-index:500;
    top:18px;
    left:18px;
    min-width:210px;
    padding:13px 15px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:14px;
    background:rgba(255,255,255,.93);
    box-shadow:0 12px 28px rgba(35,42,35,.16);
    backdrop-filter:blur(12px);
    pointer-events:none;
}
.v2-map-brand span {
    display:block;
    color:#d94b1e;
    font-size:9px;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.v2-map-brand strong { display:block;margin-top:3px;color:#232522;font-size:18px; }
.v2-map-brand small { display:block;margin-top:3px;color:#77736f;font-size:9px; }
.v2-map-search {
    position:absolute;
    z-index:500;
    top:18px;
    right:18px;
    width:min(350px,52%);
    padding:11px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:14px;
    background:rgba(255,255,255,.95);
    box-shadow:0 12px 28px rgba(35,42,35,.18);
    backdrop-filter:blur(12px);
}
.v2-map-search label {
    display:block;
    margin:0 0 6px 3px;
    color:#544f4a;
    font-size:9px;
    font-weight:850;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.v2-map-search-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px; }
.v2-map-search input {
    min-width:0;
    min-height:42px;
    padding:0 12px;
    border:1px solid #d8d3ce;
    border-radius:9px;
    background:#fff;
    color:#252525;
    font:inherit;
    font-size:13px;
}
.v2-map-search input:focus { outline:3px solid rgba(230,83,36,.14);border-color:#e65324; }
.v2-map-search button {
    min-height:42px;
    padding:0 13px;
    border:0;
    border-radius:9px;
    background:#e65324;
    color:#fff;
    font:inherit;
    font-size:11px;
    font-weight:850;
    cursor:pointer;
}
.v2-map-status {
    position:absolute;
    z-index:500;
    right:18px;
    bottom:18px;
    width:min(355px,54%);
    padding:16px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:15px;
    background:rgba(255,255,255,.95);
    box-shadow:0 16px 36px rgba(35,42,35,.22);
    color:#55504b;
    font-size:12px;
    line-height:1.5;
    backdrop-filter:blur(14px);
}
.v2-map-status > strong { display:block;color:#242622;font-size:16px; }
.v2-map-status p { margin-top:4px; }
.v2-map-status a {
    display:inline-flex;
    margin-top:11px;
    padding:9px 12px;
    border-radius:8px;
    background:#e65324;
    color:#fff;
    font-weight:850;
}
.v2-map-status small { display:block;margin-top:8px;color:#77716c;font-size:9px; }
.v2-map-status.is-covered { border-color:rgba(230,83,36,.38); }
.v2-map-status.is-outside { border-color:rgba(102,95,147,.4); }
.v2-map-status.is-outside a { background:#665f93; }
.v2-map-status.is-loading { opacity:.8; }
.v2-map-status.is-error { border-color:#d3a4a4; }
.v2-map-result-badge {
    display:inline-flex;
    margin-bottom:6px;
    padding:4px 8px;
    border-radius:999px;
    background:#fff0ea;
    color:#bd421b;
    font-size:8px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.v2-map-key {
    position:absolute;
    z-index:500;
    left:18px;
    bottom:18px;
    display:grid;
    gap:5px;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:11px;
    background:rgba(255,255,255,.91);
    box-shadow:0 10px 24px rgba(35,42,35,.13);
    color:#4d4a46;
    font-size:9px;
    backdrop-filter:blur(10px);
}
.v2-map-key span { display:flex;align-items:center;gap:7px; }
.v2-map-key i { width:16px;height:10px;border-radius:3px; }
.v2-map-key .general { border:2px dashed #e65324;background:rgba(230,83,36,.08); }
.v2-map-key .selected { border:2px solid #e65324;background:rgba(255,122,69,.35); }
.afe-town-marker {
    border:3px solid #fff;
    border-radius:50%;
    background:#e65324;
    box-shadow:0 5px 14px rgba(40,45,40,.3);
}
.afe-town-label {
    padding:3px 6px;
    border:0;
    border-radius:6px;
    background:rgba(35,38,34,.85);
    color:#fff;
    box-shadow:none;
    font-size:9px;
    font-weight:800;
}
.afe-town-label::before { display:none; }
.afe-map-reset {
    display:grid;
    width:30px;
    height:30px;
    place-items:center;
    border:0;
    border-radius:4px;
    background:#fff;
    color:#e65324;
    box-shadow:0 3px 12px rgba(0,0,0,.18);
    font-size:17px;
    font-weight:900;
    cursor:pointer;
}
.v2-real-map .leaflet-control-attribution { font-size:8px; }

@media(max-width:767px){
    .v2-real-map-shell,.v2-real-map { min-height:690px; }
    .v2-map-brand { top:12px;left:12px;right:12px;min-width:0; }
    .v2-map-brand small { display:none; }
    .v2-map-search { top:87px;left:12px;right:12px;width:auto; }
    .v2-map-search-row { grid-template-columns:1fr; }
    .v2-map-search button { width:100%; }
    .v2-real-map .leaflet-control-zoom { margin-top:210px; }
    .v2-map-status { left:12px;right:12px;bottom:61px;width:auto; }
    .v2-map-key {
        left:12px;
        right:12px;
        bottom:12px;
        display:flex;
        justify-content:space-between;
    }
}

/* Correctifs Leaflet contre les styles globaux des images */
.v2-zone-card .leaflet-container { cursor:grab;touch-action:pan-x pan-y; }
.v2-zone-card .leaflet-container:active { cursor:grabbing; }
.v2-zone-card .leaflet-tile {
    width:256px !important;
    height:256px !important;
    max-width:none !important;
    max-height:none !important;
    border-radius:0 !important;
}
.v2-zone-card .leaflet-marker-icon,
.v2-zone-card .leaflet-marker-shadow {
    max-width:none !important;
    border-radius:0;
}
.v2-zone-card .leaflet-pane,
.v2-zone-card .leaflet-map-pane,
.v2-zone-card .leaflet-tile-pane { width:auto; }
.v2-real-map-shell .leaflet-control-container { position:relative;z-index:600; }
.v2-map-brand,.v2-map-key { pointer-events:none; }

/* Noyau Leaflet local : évite une carte cassée si le CSS CDN est bloqué */
.leaflet-container { overflow:hidden;outline:0;background:#ddd; }
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
    position:absolute !important;
    left:0;
    top:0;
}
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile { max-width:none !important;max-height:none !important; }
.leaflet-tile { visibility:hidden;user-select:none;-webkit-user-drag:none; }
.leaflet-tile-loaded { visibility:inherit; }
.leaflet-zoom-animated { transform-origin:0 0; }
.leaflet-pane { z-index:400; }
.leaflet-tile-pane { z-index:200; }
.leaflet-overlay-pane { z-index:400; }
.leaflet-shadow-pane { z-index:500; }
.leaflet-marker-pane { z-index:600; }
.leaflet-tooltip-pane { z-index:650; }
.leaflet-popup-pane { z-index:700; }
.leaflet-map-pane canvas { z-index:100; }
.leaflet-map-pane svg { z-index:200; }
.leaflet-control { position:relative;z-index:800;pointer-events:auto; }
.leaflet-top,.leaflet-bottom { position:absolute;z-index:1000;pointer-events:none; }
.leaflet-top { top:0; }
.leaflet-right { right:0; }
.leaflet-bottom { bottom:0; }
.leaflet-left { left:0; }
.leaflet-control { float:left;clear:both; }
.leaflet-right .leaflet-control { float:right; }
.leaflet-top .leaflet-control { margin-top:10px; }
.leaflet-bottom .leaflet-control { margin-bottom:10px; }
.leaflet-left .leaflet-control { margin-left:10px; }
.leaflet-right .leaflet-control { margin-right:10px; }
.leaflet-control-zoom a {
    display:block;
    width:30px;
    height:30px;
    border-bottom:1px solid #ddd;
    background:#fff;
    color:#222;
    text-align:center;
    text-decoration:none;
    font:bold 18px/30px Arial,sans-serif;
}
.leaflet-control-zoom a:first-child { border-radius:4px 4px 0 0; }
.leaflet-control-zoom a:last-child { border:0;border-radius:0 0 4px 4px; }
.leaflet-control-attribution {
    margin:0;
    padding:0 5px;
    background:rgba(255,255,255,.8);
    color:#555;
}
.leaflet-control-attribution a { color:#2366a8; }
.leaflet-tooltip {
    position:absolute;
    padding:6px;
    border:1px solid #fff;
    border-radius:3px;
    background:#fff;
    color:#222;
    white-space:nowrap;
    pointer-events:none;
    user-select:none;
}
.leaflet-interactive { cursor:pointer; }

/* ---------- CTA final ---------- */
.v2-final-cta {
    padding: 70px 0 92px;
    background: #f6f4f1;
}

.v2-final-panel {
    position: relative;
    overflow: hidden;
    padding: 48px;
    border-radius: 22px;
    background: linear-gradient(120deg, #181818 0%, #27211e 65%, #532414 100%);
    color: #fff;
}

.v2-final-panel::after {
    content: '';
    position: absolute;
    width: 260px;
    height: 260px;
    right: -90px;
    top: -110px;
    border-radius: 50%;
    background: rgba(225,84,34,.22);
}

.v2-final-panel h2 {
    position: relative;
    z-index: 2;
    max-width: 720px;
    color: #fff;
    font-size: clamp(30px, 4.5vw, 48px);
    line-height: 1.1;
}

.v2-final-panel p {
    position: relative;
    z-index: 2;
    margin-top: 12px;
    max-width: 660px;
    color: rgba(255,255,255,.70);
    font-size: 17px;
}

.v2-final-actions {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

/* ---------- Footer ---------- */
.v2-home footer {
    background: #111;
}

/* ---------- Barre mobile ---------- */
.v2-mobile-actions {
    display: none;
}

@media (max-width: 1023px) {
    .v2-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .v2-expertise-grid,
    .v2-trust-grid {
        grid-template-columns: 1fr;
    }

    .v2-process-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .v2-home header {
        min-height: 78px;
        padding: 5px 3%;
        align-items: flex-start;
    }

    .v2-home header .logo img {
        height: 70px !important;
    }

    .v2-home header .navbar {
        margin: 0 !important;
        min-width: 0;
    }

    .v2-home .nav-menu {
        background: rgba(18,18,18,.985);
    }

    .v2-section {
        padding: 58px 0;
    }

    .v2-hero {
        min-height: 720px;
        align-items: flex-end;
        background-position: 62% center;
    }

    .v2-hero-inner {
        padding: 110px 0 48px;
    }

    .v2-hero h1 {
        font-size: 42px;
    }

    .v2-hero-actions {
        flex-direction: column;
    }

    .v2-hero-actions .v2-btn {
        width: 100%;
    }

    .v2-hero-proof {
        grid-template-columns: 1fr;
    }

    .v2-proof-item {
        min-height: 66px;
    }

    .v2-service-grid,
    .v2-compare-grid,
    .v2-process-grid,
    .v2-zone-card {
        grid-template-columns: 1fr;
    }

    .v2-service-card {
        min-height: 330px;
    }

    .v2-expertise-panel,
    .v2-review-card,
    .v2-zone-card {
        padding: 24px;
    }

    .v2-expertise-visual {
        min-height: 390px;
    }

    .v2-compare-image {
        min-height: 210px;
    }

    .v2-final-panel {
        padding: 34px 24px;
    }

    .v2-mobile-actions {
        position: fixed;
        z-index: 500;
        left: 10px;
        right: 10px;
        bottom: 10px;
        display: grid;
        grid-template-columns: 1.2fr .8fr;
        gap: 8px;
        padding: 8px;
        border-radius: 14px;
        background: rgba(18,18,18,.92);
        backdrop-filter: blur(10px);
        box-shadow: 0 15px 40px rgba(0,0,0,.28);
    }

    .v2-mobile-actions a {
        min-height: 46px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
        font-size: 14px;
        font-weight: 850;
    }

    .v2-mobile-book {
        background: var(--secondary);
        color: #fff;
    }

    .v2-mobile-call {
        background: #fff;
        color: #1c1c1c;
    }

    .v2-home footer {
        padding-bottom: 82px;
    }
}
