/* scopemy.city : en-têtes, menu mobile, sélecteur de langue, lightbox.
   Commun à toutes les pages qui passent par header.php (public, admin, auth).
   Extrait de header.php (#33) : plus de <style> émis par les fonctions PHP. */

/* ── En-têtes ─────────────────────────────────────────── */
header.topbar{background:var(--teal,#0B4F45);color:#fff;position:sticky;top:0;z-index:100}
.header-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;align-items:stretch;justify-content:space-between;min-height:64px;gap:12px}
.logo-block{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;flex-shrink:0}
.logo-name{font-family:"Syne",sans-serif;font-weight:700;font-size:15px;color:#fff;line-height:1}
.logo-sub{font-size:12px;color:rgba(255,255,255,.85);letter-spacing:.05em;text-transform:uppercase;line-height:1;margin-top:2px;white-space:nowrap}
.header-right{display:flex;align-items:center;gap:20px}
.header-right a{color:rgba(255,255,255,.9);text-decoration:none;font-size:13px;display:inline-flex;align-items:center;gap:7px;transition:color .15s;white-space:nowrap}
.header-right a:hover{color:#fff}
.header-right a.nav-active{color:#fff;font-weight:600}
.header-right a.nav-admin{font-weight:600}
.wa-header-btn svg{opacity:.85;transition:opacity .15s}
.wa-header-btn:hover svg{opacity:1}
header.admin-top{background:var(--teal,#0B4F45);color:#fff;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;min-height:56px;position:sticky;top:0;z-index:100}
header.admin-top a{color:#fff;text-decoration:none}
.admin-top .nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.admin-top .nav a{padding:6px 14px;border-radius:100px;font-size:13px;opacity:.85;transition:all .15s}
.admin-top .nav a:hover{opacity:1;background:rgba(255,255,255,.08)}
.admin-top .nav a.active{opacity:1;background:rgba(255,255,255,.15);font-weight:500}
.admin-top .nav a.nav-public{opacity:.8}
.admin-top .nav form{display:inline;margin:0}
.logout-btn{font-size:12px;padding:5px 14px;border:1px solid rgba(255,255,255,.3);color:#fff;background:transparent;border-radius:6px;cursor:pointer;margin-left:10px;font-family:inherit}
.logout-btn:hover{background:rgba(255,255,255,.08)}
header.auth-header{background:var(--teal,#0B4F45);color:#fff;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;min-height:56px}
header.auth-header a{color:#fff;text-decoration:none;display:flex;align-items:center;gap:12px}
header.auth-header .logo-name{font-family:"Syne",sans-serif;font-weight:700;font-size:15px}
@media(max-width:820px){header.admin-top{padding:0 1rem}.admin-top .nav a{padding:4px 10px;font-size:12px}}
@media(max-width:600px){.header-inner{padding:0 1rem}.header-right{gap:14px}.header-right a{font-size:12px}.wa-header-btn span{display:none}}

/* ── Sélecteur de langue (#77) : noms en toutes lettres, sans drapeaux ── */
.lang-switcher-wrap{position:relative;display:inline-block;margin-left:8px}
.lang-switcher{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1.5px solid rgba(255,255,255,.5);border-radius:100px;background:transparent;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.lang-switcher:hover{background:rgba(255,255,255,.12);border-color:#fff}
.lang-switcher svg{opacity:.8}
.lang-dropdown{position:absolute;right:0;top:100%;background:#fff;border:1.5px solid #DDD9D0;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:100;min-width:140px;margin-top:6px;padding:4px;list-style:none}
.lang-dropdown[hidden]{display:none}
.lang-dropdown a{display:block;padding:8px 12px;color:#1A1A18;text-decoration:none;font-size:14px;font-weight:500;border-radius:6px}
.lang-dropdown a:hover,.lang-dropdown a:focus-visible{background:#E8F5F1}
.lang-dropdown a[aria-current="true"]{font-weight:700;color:#0B4F45}
.lang-dropdown a[aria-current="true"]::after{content:" ✓";font-weight:700}
.header-right .lang-dropdown a{color:#1A1A18;display:block}

/* ── Menu hamburger (mobile) ─────────────────────────── */
.hamburger-btn{display:none;background:none;border:none;cursor:pointer;padding:10px;margin:0;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:5px;border-radius:8px;transition:background .15s}
.hamburger-btn:hover{background:rgba(255,255,255,.1)}
.hamburger-btn:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}
.hamburger-line{display:block;width:22px;height:2px;background:#fff;border-radius:1px;transition:transform .22s ease, opacity .22s ease}
.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(2){opacity:0}
.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.drawer-overlay{display:none;position:fixed;inset:0;background:rgba(11,79,69,.5);backdrop-filter:blur(2px);z-index:998;opacity:0;transition:opacity .22s ease}
.drawer-overlay.visible{display:block;opacity:1}
.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:min(320px,85vw);background:#0b4f45;color:#fff;z-index:999;padding:4.5rem 1.5rem 2rem;transform:translateX(100%);visibility:hidden;transition:transform .28s cubic-bezier(.4,0,.2,1),visibility 0s linear .28s;display:flex;flex-direction:column;box-shadow:-6px 0 24px rgba(0,0,0,.2);overflow-y:auto;-webkit-overflow-scrolling:touch}
/* Fermé : visibility:hidden retire les liens du tiroir de l'ordre de tabulation
   et de l'arbre d'accessibilité (aria-hidden seul les laissait focalisables). */
.mobile-drawer.open{transform:translateX(0);visibility:visible;transition:transform .28s cubic-bezier(.4,0,.2,1)}
.drawer-close{position:absolute;top:14px;right:14px;background:none;border:none;color:#fff;font-size:32px;line-height:1;cursor:pointer;padding:6px 12px;border-radius:8px;transition:background .15s}
.drawer-close:hover{background:rgba(255,255,255,.1)}
.drawer-close:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}
.drawer-section-label{color:rgba(255,255,255,.75);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.7rem}
.drawer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.drawer-links li{margin:0}
.drawer-links a{display:block;padding:14px 12px;color:rgba(255,255,255,.9);text-decoration:none;font-size:16px;border-radius:10px;transition:background .15s, color .15s}
.drawer-links a:hover{background:rgba(255,255,255,.08);color:#fff}
.drawer-links a.active{background:rgba(255,255,255,.08)}
.drawer-links a.nav-public{opacity:.8}
.drawer-links form{margin:0}
.drawer-logout{width:100%;text-align:left;display:block;padding:14px 12px;background:none;border:0;color:rgba(255,255,255,.9);font-size:16px;cursor:pointer;border-radius:10px;font-family:inherit}
.drawer-logout:hover{background:rgba(255,255,255,.08)}
.drawer-divider{height:1px;background:rgba(255,255,255,.15);margin:12px 0}
.drawer-lang-flat{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px;list-style:none}
.drawer-lang-flat a{flex:0 0 auto;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.95);text-decoration:none;font-size:14px;font-weight:600;line-height:1}
.drawer-lang-flat a:hover{background:rgba(255,255,255,.1);color:#fff}
.drawer-lang-flat a[aria-current="true"]{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.6);color:#fff}
.drawer-wa-btn{background:#1E7E47!important;color:#fff!important;text-align:center;font-weight:600;margin-top:4px}
.drawer-wa-btn:hover{background:#176a3b!important}
@media(max-width:820px){.hamburger-btn{display:flex}.admin-top .nav,.header-right{display:none}}

/* ── FAB « Signaler » (mobile, pages hors accueil/formulaire) ── */
.report-fab{display:none}
@media(max-width:820px){.report-fab{display:inline-flex;position:fixed;bottom:20px;right:20px;z-index:997;background:var(--teal,#0B4F45);color:#fff;padding:13px 20px;border-radius:100px;font-family:"Syne",sans-serif;font-weight:700;font-size:15px;text-decoration:none;align-items:center;gap:8px;box-shadow:0 6px 20px rgba(0,0,0,.25)}.report-fab:active{transform:scale(.96)}}

/* ── Bouton WhatsApp flottant (lot public s3, #17) : pages publiques hors accueil et formulaire ── */
.wa-fab{display:inline-flex;position:fixed;bottom:24px;right:24px;z-index:997;background:var(--wa-green,#1E7E47);color:#fff;padding:12px 18px;border-radius:100px;font-family:"Syne",sans-serif;font-weight:700;font-size:14px;text-decoration:none;align-items:center;gap:8px;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.wa-fab:hover{opacity:.92}
.wa-fab:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--teal,#0B4F45)}
@media(max-width:820px){
  /* Rond, au-dessus du bouton « Signaler » ; le libellé reste lu par les lecteurs d'écran (aria-label). */
  .wa-fab{bottom:78px;right:20px;width:48px;height:48px;padding:0;justify-content:center}
  .wa-fab-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  /* Le bas de page reste lisible : il défile au-dessus des deux boutons. */
  body:has(.wa-fab){padding-bottom:140px}
}
@media print{.wa-fab,.report-fab{display:none!important}}

/* ── Lightbox commune (#76 : ouverte par de vrais <button data-lightbox>) ── */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:2000;cursor:zoom-out;padding:2rem}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px}
.lightbox-close{position:absolute;top:12px;right:16px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:8px}
.lightbox-close:hover{background:rgba(255,255,255,.12)}
/* Bouton qui enveloppe une vignette : aucun habillage, l'image garde son style */
.img-btn{display:block;padding:0;margin:0;border:0;background:none;cursor:zoom-in;font:inherit;color:inherit;border-radius:8px;line-height:0}
.img-btn:focus-visible{outline:3px solid var(--teal-mid,#1D9E75);outline-offset:2px}

/* ── Utilitaires ─────────────────────────────────────── */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.req-text{font-weight:500;color:var(--red,#991B1B);font-size:12px;text-transform:none;letter-spacing:0}
/* L'attribut hidden l'emporte toujours sur un display déclaré par une classe */
[hidden]{display:none!important}
/* En-tête public : un libellé ne passe jamais à la ligne. Sous 1180 px, le menu
   (7 entrées, langue, WhatsApp) ne tient plus sur une ligne : bouton ☰ et tiroir,
   comme sur mobile. L'en-tête de l'administration garde sa bascule à 820 px. */
@media(max-width:1180px){header.topbar .hamburger-btn{display:flex}header.topbar .header-right{display:none}}
@media(max-width:1300px) and (min-width:1181px){.header-right{gap:14px}}
/* Lot 100 · finitions (#93) : bandeau de l'accueil quand le volume est encore faible */
.stats-alt{border-top:1px solid rgba(255,255,255,.1);padding:1.1rem 0 1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center}
.stats-alt-lede{flex:1 1 420px;margin:0;font-size:15px;line-height:1.55;color:rgba(255,255,255,.92)}
.stats-alt-links{display:flex;gap:.5rem;flex-wrap:wrap}
.stats-alt-links a{display:inline-block;padding:.5rem .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;font-size:14px;font-weight:500}
.stats-alt-links a:first-child{background:#fff;color:var(--teal);border-color:#fff}
.stats-alt-links a:focus-visible,.stats-alt-links a:hover{outline:2px solid #6EE7B7;outline-offset:2px}
/* Lot 100 · finitions (#92) : bandeau du site de démonstration */
.demo-banner{background:#FEF3C7;color:#78350F;border-bottom:1px solid #FCD34D;padding:.55rem 1rem;font-size:14px;line-height:1.45;text-align:center}
.demo-banner a{color:#78350F;font-weight:600;text-decoration:underline}
