/* ============================================================
   AGPI LMNP — style.css — Direction A : Lumière & Prestige
   Palette : ivoire #F0EDE6 · espresso #1A1814 · or #c69d57
             bleu #0faff3 · blanc #ffffff
   Fonts   : Cormorant Garamond (display) · DM Sans (corps)
============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
    /* Couleurs principales */
    --blue        : #0faff3;
    --blue-dark   : #0b8fc7;
    --espresso    : #1A1814;   /* remplace dark-deep — plus chaud */
    --charcoal    : #2A2620;   /* remplace dark — chaleureux */
    --cream       : #F0EDE6;   /* ivoire chaud — fond de page */
    --cream-mid   : #E4E0D8;   /* séparateurs, borders */
    --cream-light : #F8F6F1;   /* zones très claires */
    --gold        : #c69d57;
    --gold-light  : rgba(198, 157, 87, 0.12);
    --white       : #ffffff;
    --text        : #1A1814;
    --muted       : #6B6460;
    --error       : #C94040;
    --success     : #2D8A5A;

    /* Alias de compatibilité avec programme.php */
    --dark        : #2A2620;
    --dark-deep   : #1A1814;

    /* Typographie */
    --font-display : 'Cormorant Garamond', Georgia, serif;
    --font-body    : 'DM Sans', system-ui, sans-serif;

    /* Espacements & effets */
    --radius       : 14px;
    --radius-sm    : 8px;
    --shadow       : 0 4px 20px rgba(26, 24, 20, 0.07);
    --shadow-hover : 0 10px 36px rgba(26, 24, 20, 0.13);
    --shadow-gold  : 0 6px 28px rgba(198, 157, 87, 0.18);
    --transition   : 0.24s ease;
    --header-h     : 72px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }
html  { scroll-behavior: smooth; }
body  {
    font-family : var(--font-body);
    font-size   : 16px;
    color       : var(--text);
    background  : var(--cream);
    line-height : 1.65;
    overflow-x  : hidden;
}
img   { max-width: 100%; display: block; }
a     { color: inherit; text-decoration: none; }
button, select { cursor: pointer; font-family: var(--font-body); }

/* ── Typographie ───────────────────────────────────────────── */
h1, h2, h3, h4 {
    font-family : var(--font-display);
    font-weight : 600;
    line-height : 1.15;
}
h1 { font-size: clamp(2rem,    4vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.75rem); }
h3 { font-size: clamp(1.1rem,  2vw, 1.4rem); }
em { font-style: italic; color: var(--gold); }

/* ── Container ─────────────────────────────────────────────── */
.container { max-width: 1260px; margin: 0 auto; padding: 0 2rem; }


/* ================================================================
   BOUTONS
================================================================ */
.btn-primary {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    gap             : 0.5rem;
    background      : var(--blue);
    color           : var(--white);
    padding         : 0.85rem 2rem;
    border-radius   : 100px;
    font-size       : 0.925rem;
    font-weight     : 600;
    border          : none;
    transition      : background var(--transition), transform var(--transition), box-shadow var(--transition);
    box-shadow      : 0 4px 18px rgba(15, 175, 243, 0.28);
    cursor          : pointer;
}
.btn-primary:hover {
    background  : var(--gold);
    box-shadow  : var(--shadow-gold);
    transform   : translateY(-2px);
}
.btn-primary:active { transform: translateY(0); }

.btn-secondary {
    display       : inline-flex;
    align-items   : center;
    gap           : 0.35rem;
    background    : transparent;
    color         : var(--charcoal);
    border        : 1.5px solid var(--cream-mid);
    padding       : 0.6rem 1.4rem;
    border-radius : 100px;
    font-size     : 0.875rem;
    font-weight   : 600;
    transition    : all var(--transition);
}
.btn-secondary:hover {
    border-color : var(--gold);
    color        : var(--gold);
    background   : var(--gold-light);
}

.btn-lg   { padding: 1rem 2.5rem; font-size: 1rem; }
.btn-full { width: 100%; justify-content: center; }
.required { color: var(--blue); }


/* ================================================================
   HEADER — barre de navigation fixe
================================================================ */
.header {
    position   : fixed;
    top: 0; left: 0; right: 0;
    height     : var(--header-h);
    z-index    : 1000;
    transition : background var(--transition), box-shadow var(--transition);
}
.header::before {
    content    : '';
    position   : absolute;
    inset      : 0;
    background : linear-gradient(to bottom, rgba(26,24,20,0.65) 0%, transparent 100%);
    pointer-events: none;
}
.header.scrolled {
    background : var(--espresso);
    box-shadow : 0 2px 20px rgba(0,0,0,0.18);
}
.header.scrolled::before { display: none; }

.header-inner {
    max-width   : 1260px;
    margin      : 0 auto;
    padding     : 0 2rem;
    height      : 100%;
    display     : flex;
    align-items : center;
    justify-content: space-between;
    position    : relative;
    z-index     : 1;
}
.header-logo { display:flex; align-items:center; gap:.85rem; }

/* Logos image */
.logo-img { display:block; object-fit:contain; }
.logo-img-agpi  { height:42px; width:auto; filter:brightness(0) invert(1); }
.logo-img-jelem { height:34px; width:auto; filter:brightness(0) invert(1) opacity(0.85); }

/* Séparateur vertical entre les deux logos */
.logo-partenaire-sep {
    display    : block;
    width      : 1px;
    height     : 28px;
    background : rgba(198,157,87,0.45);
    flex-shrink: 0;
}

.header-nav  { display: flex; align-items: center; gap: 2.25rem; }
.nav-link    { color: rgba(255,255,255,.85); font-size:.875rem; font-weight:500; transition:color var(--transition); }
.nav-link:hover { color: var(--gold); }
.nav-cta     { font-size:.85rem; padding:.6rem 1.4rem; }

.burger { display:none; flex-direction:column; gap:5px; padding:4px; background:none; border:none; }
.burger span { display:block; width:22px; height:2px; background:var(--white); border-radius:2px; transition:all .3s; }
.burger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.burger.open span:nth-child(2) { opacity:0; }
.burger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }


/* ================================================================
   HERO + CARTE LEAFLET
================================================================ */
.hero-map-section {
    position   : relative;
    height     : 100vh;
    min-height : 620px;
    display    : flex;
}
#map { position:absolute; inset:0; z-index:1; }

.hero-overlay {
    position        : relative;
    z-index         : 2;
    width           : 430px;
    min-width       : 330px;
    background      : rgba(26, 24, 20, 0.84);
    backdrop-filter : blur(16px);
    -webkit-backdrop-filter: blur(16px);
    display         : flex;
    align-items     : center;
    padding         : 5.5rem 2.5rem 3rem;
    border-right    : 1px solid rgba(198,157,87,0.2);
}
.hero-content  { max-width: 360px; }

.hero-badge {
    display       : inline-block;
    background    : var(--gold-light);
    color         : var(--gold);
    border        : 1px solid rgba(198,157,87,0.35);
    border-radius : 100px;
    padding       : .3rem 1rem;
    font-size     : .7rem;
    font-weight   : 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    margin-bottom : 1.25rem;
}
.hero-title { color:var(--white); margin-bottom:1rem; font-size:clamp(1.8rem,2.5vw,2.55rem); }
.hero-title em { color:var(--gold); }
.hero-desc { color:rgba(255,255,255,.65); font-size:.925rem; margin-bottom:2rem; line-height:1.75; }
.hero-desc strong { color:var(--white); }

.hero-stats {
    display        : flex;
    align-items    : center;
    gap            : 1.5rem;
    margin-bottom  : 2rem;
    padding        : 1.2rem 1.5rem;
    background     : rgba(255,255,255,.05);
    border-radius  : var(--radius);
    border         : 1px solid rgba(255,255,255,.07);
}
.stat { text-align:center; flex:1; }
.stat-value {
    display     : block;
    font-family : var(--font-display);
    font-size   : 1.85rem;
    font-weight : 700;
    color       : var(--gold);
    line-height : 1;
}
.stat-label { display:block; font-size:.67rem; color:rgba(255,255,255,.4); text-transform:uppercase; letter-spacing:.07em; margin-top:.3rem; }
.stat-divider { width:1px; height:38px; background:rgba(255,255,255,.12); flex-shrink:0; }

/* ── Photo de fond du panel hero gauche ── */
.hero-photo-bg {
    position   : absolute;
    inset      : 0;
    z-index    : 0;
    background-image   : var(--hero-bg);
    background-size    : cover;
    background-position: center 30%;
    opacity    : 0.18;   /* très subtil — juste assez pour casser le noir uni */
}
.hero-overlay { position: relative; }  /* s'assure que le bg reste dans le panel */
.hero-content { position:relative; z-index:1; }

/* ── Stat 4,9/5 ── */
.stat-avis { display:flex !important; align-items:baseline; justify-content:center; gap:1px; }
.stat-value-small { font-size:1rem; font-weight:500; opacity:.7; }

/* ── Conseiller photo block ── */
.hrp-conseiller {
    display    : flex;
    align-items: center;
    gap        : .9rem;
    padding    : .9rem;
    background : rgba(198,157,87,.08);
    border     : 1px solid rgba(198,157,87,.22);
    border-radius: var(--radius-sm);
}
.hrp-conseiller-photo {
    width       : 56px;
    height      : 56px;
    border-radius: 50%;
    object-fit  : cover;
    border      : 2px solid var(--gold);
    flex-shrink : 0;
    /* Fallback si la photo n'est pas encore uploadée */
    background  : rgba(198,157,87,.2);
}
.hrp-conseiller-info {
    display       : flex;
    flex-direction: column;
    gap           : .1rem;
}
.hrp-conseiller-info strong {
    font-size  : .82rem;
    font-weight: 600;
    color      : var(--white);
    line-height: 1.2;
}
.hrp-conseiller-info span {
    font-size: .67rem;
    color    : rgba(255,255,255,.42);
    line-height: 1.3;
}
.hrp-conseiller-tel {
    font-size  : .72rem;
    color      : var(--gold);
    font-weight: 600;
    margin-top : .2rem;
    transition : color var(--transition);
}
.hrp-conseiller-tel:hover { color: var(--blue); }
.hero-right-panel {
    position        : relative;
    z-index         : 2;
    width           : 295px;
    min-width       : 260px;
    margin-left     : auto;
    background      : rgba(26, 24, 20, 0.84);
    backdrop-filter : blur(16px);
    -webkit-backdrop-filter: blur(16px);
    display         : flex;
    flex-direction  : column;
    padding         : calc(var(--header-h) + 1.25rem) 1.4rem 2rem;
    border-left     : 1px solid rgba(198,157,87,0.18);
    overflow-y      : auto;
    scrollbar-width : thin;
}
.hrp-label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); margin-bottom:1rem; }
.hrp-avantages { list-style:none; display:flex; flex-direction:column; gap:.8rem; }
.hrp-avantages li { display:flex; align-items:flex-start; gap:.7rem; }
.hrp-icon {
    width:26px; height:26px; min-width:26px;
    background:rgba(198,157,87,.14);
    border:1px solid rgba(198,157,87,.28);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:.68rem; color:var(--gold); margin-top:1px;
}
.hrp-avantages strong { display:block; font-size:.78rem; font-weight:600; color:var(--white); line-height:1.2; margin-bottom:.12rem; }
.hrp-avantages span   { font-size:.68rem; color:rgba(255,255,255,.42); line-height:1.4; }
.hrp-sep { height:1px; background:rgba(255,255,255,.08); margin:1.35rem 0; }

.hrp-avis-liste { display:flex; flex-direction:column; gap:.85rem; }
.hrp-avis {
    background   : rgba(255,255,255,.04);
    border       : 1px solid rgba(255,255,255,.07);
    border-radius: var(--radius-sm);
    padding      : .8rem .9rem;
    transition   : border-color var(--transition);
}
.hrp-avis:hover { border-color:rgba(198,157,87,.25); }
.hrp-stars       { color:var(--gold); font-size:.68rem; letter-spacing:1px; margin-bottom:.4rem; }
.hrp-avis-texte  { font-size:.7rem; color:rgba(255,255,255,.55); line-height:1.55; margin-bottom:.45rem; font-style:italic; }
.hrp-avis-auteur { font-size:.62rem; font-weight:600; color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:.06em; }

/* ── Leaflet ── */
.leaflet-container { font-family:var(--font-body); }
.leaflet-control-zoom a {
    border-radius : var(--radius-sm) !important;
    border-color  : var(--cream-mid) !important;
    color         : var(--charcoal)  !important;
    font-size     : 15px !important; font-weight:700 !important;
}
.leaflet-control-zoom a:hover { background:var(--blue) !important; color:var(--white) !important; border-color:var(--blue) !important; }
.leaflet-control-attribution { font-size:.62rem !important; color:var(--muted) !important; }

.custom-marker { background:none !important; border:none !important; }
.marker-pin {
    width:34px; height:34px; border-radius:50% 50% 50% 0;
    background:var(--blue); transform:rotate(-45deg);
    box-shadow:0 3px 14px rgba(15,175,243,.42);
    transition:all .2s; display:flex; align-items:center; justify-content:center;
}
.marker-pin.active { background:var(--gold); width:42px; height:42px; box-shadow:0 4px 22px rgba(198,157,87,.55); }
.marker-dot { width:9px; height:9px; background:var(--white); border-radius:50%; transform:rotate(45deg); display:block; opacity:.9; }

.custom-popup .leaflet-popup-content-wrapper { border-radius:var(--radius) !important; padding:0 !important; box-shadow:var(--shadow-hover) !important; border:none !important; overflow:hidden; }
.custom-popup .leaflet-popup-content { margin:0 !important; }
.custom-popup .leaflet-popup-tip { background:var(--white); }
.popup-content { padding:.9rem 1.1rem; min-width:155px; background:var(--white); }
.popup-title   { display:block; font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--charcoal); margin-bottom:.2rem; line-height:1.2; }
.popup-city    { display:block; font-size:.72rem; color:var(--muted); margin-bottom:.5rem; }
.popup-prix    { display:block; font-weight:700; color:var(--blue); font-size:.875rem; }
.popup-renta   { display:inline-block; background:var(--gold-light); color:var(--gold); border-radius:100px; padding:.2rem .65rem; font-size:.7rem; font-weight:700; margin-top:.4rem; }
.popup-voir    { display:block; margin-top:.6rem; color:var(--blue); font-size:.78rem; font-weight:600; text-align:right; transition:color var(--transition); }
.popup-voir:hover { color:var(--gold); }


/* ================================================================
   SECTION PROGRAMMES
================================================================ */
.programmes-section { padding:6rem 0 5rem; background:var(--cream); }

/* En-tête de section */
.section-header  { text-align:center; margin-bottom:3rem; }
.section-badge {
    display:inline-block; color:var(--gold); font-size:.7rem; font-weight:600;
    letter-spacing:.12em; text-transform:uppercase; margin-bottom:.75rem;
}
.section-badge::before, .section-badge::after { content:' — '; opacity:.4; }
.section-title    { margin-bottom:.75rem; }
.section-subtitle { color:var(--muted); max-width:580px; margin:0 auto; font-size:.95rem; }

/* Filtres */
.filtres       { display:flex; gap:.5rem; margin-bottom:2.5rem; flex-wrap:wrap; }
.filtre-btn {
    padding:0.45rem 1.2rem; border-radius:100px;
    border:1.5px solid var(--cream-mid); font-size:.78rem; font-weight:500;
    color:var(--muted); background:var(--white); transition:all var(--transition);
}
.filtre-btn:hover, .filtre-btn.active { background:var(--charcoal); color:var(--white); border-color:var(--charcoal); }

/* Grille */
.programmes-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:1.75rem; }

/* Card programme */
.programme-card {
    background   : var(--white);
    border-radius: var(--radius);
    overflow     : hidden;
    border       : 1px solid var(--cream-mid);
    box-shadow   : var(--shadow);
    transition   : transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    animation    : fadeInUp .5s ease both;
}
.programme-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-hover); border-color:rgba(198,157,87,.35); }
@keyframes fadeInUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }

.card-img-wrap  { position:relative; height:205px; overflow:hidden; background:var(--cream); }
.card-img       { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.programme-card:hover .card-img { transform:scale(1.04); }

.card-badge {
    position:absolute; top:.75rem; left:.75rem;
    background:var(--espresso); color:var(--white);
    padding:.25rem .7rem; border-radius:100px;
    font-size:.67rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em;
}
.card-rentabilite {
    position:absolute; top:.75rem; right:.75rem;
    background:var(--gold); color:var(--white);
    padding:.25rem .7rem; border-radius:100px; font-size:.75rem; font-weight:700;
}

.card-body { padding:1.25rem 1.5rem 1.5rem; }
.card-localisation { display:flex; align-items:center; gap:.4rem; color:var(--muted); font-size:.78rem; margin-bottom:.5rem; }
.card-localisation svg { flex-shrink:0; opacity:.65; }
.card-title  { font-size:1.2rem; margin-bottom:1rem; color:var(--charcoal); }
.card-stats  { display:flex; gap:1.1rem; margin-bottom:1.25rem; padding-top:1rem; border-top:1px solid var(--cream); flex-wrap:wrap; }
.card-stat-label { display:block; font-size:.67rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.2rem; }
.card-stat-value { display:block; font-weight:700; font-size:.95rem; color:var(--charcoal); }
.btn-card { font-size:.84rem; padding:.58rem 1.2rem; }

/* Skeleton */
.skeleton { pointer-events:none; }
.skeleton-img { height:205px; background:linear-gradient(90deg,var(--cream) 25%,var(--cream-mid) 50%,var(--cream) 75%); background-size:200% 100%; animation:shimmer 1.6s infinite; }
.skeleton-line { height:13px; border-radius:6px; background:linear-gradient(90deg,var(--cream) 25%,var(--cream-mid) 50%,var(--cream) 75%); background-size:200% 100%; animation:shimmer 1.6s infinite; margin-bottom:.8rem; }
.skeleton-line.w50 { width:50%; } .skeleton-line.w70 { width:70%; } .skeleton-line.w40 { width:40%; }
@keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }


/* ================================================================
   SECTION POURQUOI LMNP — fond ivoire, cards blanches avec bordure or
================================================================ */
.pourquoi-section { padding:6.5rem 0; background:var(--cream-light); }
.pourquoi-section .section-title  { color:var(--charcoal); }

.avantages-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.5rem; margin-top:3rem; }

.avantage-card {
    background   : var(--white);
    border       : 1px solid var(--cream-mid);
    border-top   : 3px solid var(--gold);   /* accent or en haut */
    border-radius: 0 0 var(--radius) var(--radius);
    padding      : 2rem 1.75rem;
    transition   : border-top-color var(--transition), box-shadow var(--transition), transform var(--transition);
    box-shadow   : var(--shadow);
}
.avantage-card:hover {
    border-top-color: var(--blue);
    box-shadow      : var(--shadow-hover);
    transform       : translateY(-3px);
}
.avantage-icon { font-size:1.5rem; color:var(--gold); margin-bottom:1rem; }
.avantage-card h3   { color:var(--charcoal); font-size:1.15rem; margin-bottom:.75rem; }
.avantage-card p    { color:var(--muted); font-size:.875rem; line-height:1.75; }


/* ================================================================
   SECTION CONTACT — fond blanc, formulaire sur carte
================================================================ */
.contact-section { padding:6.5rem 0; background:var(--white); }
.contact-inner {
    display              : grid;
    grid-template-columns: 1fr 1.25fr;
    gap                  : 5rem;
    align-items          : start;
}
.contact-left .section-title { margin-bottom:1rem; }
.contact-left > p { color:var(--muted); font-size:.95rem; margin-bottom:2rem; line-height:1.75; }
.contact-promesses { list-style:none; display:flex; flex-direction:column; gap:.8rem; }
.contact-promesses li { color:var(--charcoal); font-weight:500; font-size:.95rem; }
.contact-promesses li::first-letter { color:var(--blue); font-weight:700; }

/* Formulaire */
.lead-form {
    background   : var(--cream-light);
    border-radius: var(--radius);
    padding      : 2.5rem;
    border       : 1px solid var(--cream-mid);
    box-shadow   : var(--shadow);
    transition   : box-shadow .35s;
}
.lead-form.form-highlight { box-shadow:0 0 0 3px var(--gold), var(--shadow-hover); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.form-group label { font-size:.72rem; font-weight:600; color:var(--charcoal); text-transform:uppercase; letter-spacing:.06em; }
.form-group input, .form-group select, .form-group textarea {
    padding:0.75rem 1rem; border:1.5px solid var(--cream-mid);
    border-radius:var(--radius-sm); font-family:var(--font-body);
    font-size:.9rem; color:var(--charcoal); background:var(--white);
    transition:border-color var(--transition), box-shadow var(--transition);
    outline:none; -webkit-appearance:none; appearance:none;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:#B8B2A8; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(15,175,243,.1);
}
.form-group textarea { resize:vertical; min-height:90px; }
.form-group select {
    background-image   : url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6460' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat  : no-repeat;
    background-position: right 1rem center;
    padding-right      : 2.5rem;
}
.form-rgpd { display:flex; gap:.7rem; align-items:flex-start; margin-bottom:1.5rem; font-size:.775rem; color:var(--muted); line-height:1.55; }
.form-rgpd input[type="checkbox"] { width:16px; height:16px; flex-shrink:0; margin-top:1px; accent-color:var(--gold); border:none; padding:0; box-shadow:none; }
.form-rgpd a { color:var(--blue); text-decoration:underline; }
.form-feedback { text-align:center; padding:.85rem; border-radius:var(--radius-sm); font-weight:600; font-size:.875rem; margin-top:.75rem; }
.form-success { color:var(--success); background:rgba(45,138,90,.08); }
.form-error   { color:var(--error);   background:rgba(201,64,64,.08); }


/* ================================================================
   FOOTER — espresso chaud
================================================================ */
.footer { background:var(--espresso); padding:3rem 0 1.5rem; }
.footer-inner { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:2rem; flex-wrap:wrap; gap:2rem; }
.footer-brand .footer-logo-agpi { display:block; font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--white); letter-spacing:.05em; margin-bottom:.6rem; }
.footer-brand p { color:rgba(255,255,255,.38); font-size:.8rem; line-height:1.75; }
.footer-links { display:flex; gap:1.75rem; flex-wrap:wrap; align-items:center; }
.footer-links a { color:rgba(255,255,255,.4); font-size:.8rem; transition:color var(--transition); }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.06); padding-top:1.5rem; }
.footer-bottom p { color:rgba(255,255,255,.22); font-size:.75rem; text-align:center; }

/* ================================================================
   MESSAGES D'ÉTAT
================================================================ */
.no-result, .error-msg { grid-column:1/-1; text-align:center; padding:3rem 1.5rem; color:var(--muted); font-size:.9rem; }

/* ================================================================
   SCROLL LOCK
================================================================ */
body.modal-open { overflow:hidden; }


/* ================================================================
   RESPONSIVE — Tablette (≤ 1024px)
================================================================ */
@media (max-width:1024px) {
    .hero-overlay { width:390px; padding:5rem 2rem 3rem; }
    .contact-inner { grid-template-columns:1fr; gap:3.5rem; }
    .contact-left  { max-width:560px; }
}

/* ================================================================
   RESPONSIVE — Mobile (≤ 768px)
================================================================ */
@media (max-width:768px) {
    :root { --header-h:64px; }

    .hero-map-section { flex-direction:column; height:auto; }
    .hero-overlay { position:relative; width:100%; min-width:0; padding:6rem 1.5rem 2.5rem; border-right:none; border-bottom:1px solid rgba(198,157,87,.2); }
    #map { position:relative; height:52vh; min-height:300px; }
    .hero-right-panel { display:none; }

    .header-nav { display:none; flex-direction:column; position:fixed; top:var(--header-h); left:0; right:0; background:var(--espresso); padding:1.75rem 2rem; gap:1.5rem; border-top:1px solid rgba(255,255,255,.06); box-shadow:var(--shadow-hover); }
    .header-nav.open { display:flex; }
    .burger { display:flex; }
    .logo-tagline { display:none; }

    .programmes-grid { grid-template-columns:1fr; }
    .avantages-grid  { grid-template-columns:1fr; }
    .form-row        { grid-template-columns:1fr; }
    .lead-form       { padding:1.5rem; }
}

/* ================================================================
   RESPONSIVE — Petit mobile (≤ 480px)
================================================================ */
@media (max-width:480px) {
    .container  { padding:0 1rem; }
    .hero-stats { flex-wrap:wrap; justify-content:center; }
    .stat-divider { display:none; }
}
