/* =============================================================
   HOLOPOP — Site vitrine (Guidelines v1.0)
   Concept retail premium : propre, simple, crédible.
   Palette : 80% blanc/Mist/Navy · 15% violet · 5% accents.
   Type : Sora (titres) + Inter (texte). Violet = action, pas déco.
   ============================================================= */

/* ---------- TOKENS ---------- */
:root {
  /* Palette officielle HoloPop (décisions de marque) */
  --navy:     #061846;   /* bleu nuit profond — fonds, confiance, premium */
  --navy-2:   #0A2A6B;   /* compagnon pour dégradés sombres, footer */
  --violet:   #6F35FF;   /* violet holo — CTA, liens, états actifs */
  --violet-2: #A45CFF;   /* violet clair/néon — hover, reflets, dégradés */
  --gold:     #FFD21F;   /* jaune pop — accents, prix, étincelles, action */
  --mist:     #F6F7FB;   /* gris très clair — fonds de blocs, respiration */
  --ink:      #171B2A;   /* texte courant */
  --line:     #E7E3FA;   /* bordures fines, séparateurs */
  --white:    #ffffff;

  /* Dégradés autorisés (violet holo, sans arc-en-ciel permanent) */
  --holo-soft:  linear-gradient(120deg, #6F35FF 0%, #A45CFF 100%);
  --night:      linear-gradient(160deg, #061846 0%, #0A2A6B 100%);

  --font-title: "Sora", system-ui, sans-serif;
  --font-body:  "Inter", system-ui, sans-serif;

  /* Espacement (4/8…) */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.25rem; --sp-6:1.5rem; --sp-8:2rem; --sp-10:2.5rem;
  --sp-12:3rem; --sp-16:4rem; --sp-20:5rem; --sp-24:6rem;

  --radius-card: 24px;
  --radius-button: 16px;
  --radius-sm: 12px;
  --shadow-soft: 0 14px 40px rgba(0,10,61,.10);
  --shadow-hover: 0 20px 50px rgba(0,10,61,.14);

  --wrap: 1160px;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ---------- RESET ---------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:90px; }
body {
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1rem; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
.wrap { width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--sp-6); }

h1,h2,h3 { font-family:var(--font-title); color:var(--navy); line-height:1.1; letter-spacing:-.01em; }

/* ---------- MICRO / LABELS ---------- */
.eyebrow {
  font-family:var(--font-body); font-weight:600; font-size:.8rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--violet);
}

/* ---------- BUTTONS ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-body); font-weight:600; font-size:.98rem;
  padding:.85rem 1.5rem; border-radius:var(--radius-button);
  border:1px solid transparent; cursor:pointer;
  transition:transform .18s var(--ease), background .18s var(--ease),
             box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.btn-lg { padding:1rem 1.9rem; font-size:1.05rem; }
.btn:focus-visible { outline:3px solid var(--violet-2); outline-offset:3px; }
.btn-primary { background:var(--violet); color:var(--white); box-shadow:var(--shadow-soft); }
.btn-primary:hover { background:var(--violet-2); transform:translateY(-2px); box-shadow:var(--shadow-hover); }
.btn-primary:active { transform:translateY(0); }
.btn-secondary { background:var(--white); color:var(--navy); border-color:var(--line); }
.btn-secondary:hover { border-color:var(--violet-2); color:var(--violet); }
.btn-ghost-light { background:transparent; color:var(--white); border-color:rgba(255,255,255,.28); }
.btn-ghost-light:hover { border-color:var(--white); background:rgba(255,255,255,.08); }
.btn-block { width:100%; }

/* ---------- HEADER (transparent sur le hero → solide au scroll) ---------- */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:transparent; border-bottom:1px solid transparent;
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.site-header.solid {
  background:rgba(255,255,255,.92); backdrop-filter:blur(12px);
  border-bottom-color:var(--line);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; height:76px; }
.logo { display:inline-flex; align-items:center; }
.logo-img { height:52px; width:auto; display:block; }
.logo-solid { display:none; }
.site-header.solid .logo-white { display:none; }
.site-header.solid .logo-solid { display:block; }

.nav { display:flex; gap:var(--sp-8); }
.nav a { font-weight:500; font-size:.95rem; color:#fff; position:relative; transition:color .2s var(--ease); }
.nav a::after {
  content:""; position:absolute; left:0; right:100%; bottom:-6px; height:2px;
  background:#fff; border-radius:2px; transition:right .2s var(--ease);
}
.nav a:hover::after { right:0; }
.site-header.solid .nav a { color:var(--ink); }
.site-header.solid .nav a:hover { color:var(--navy); }
.site-header.solid .nav a::after { background:var(--violet); }

.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.nav-toggle span { width:24px; height:2.5px; background:#fff; border-radius:2px; transition:background .2s var(--ease); }
.site-header.solid .nav-toggle span { background:var(--navy); }

/* ---------- HERO (bannière plein cadre) ---------- */
.hero {
  position:relative; overflow:hidden;
  background:var(--navy); color:#fff;
  min-height:600px; display:flex; align-items:center;
  padding:var(--sp-24) 0;
}
.hero::before {
  content:""; position:absolute; inset:0; z-index:0;
  background:url("banner.webp") center right / cover no-repeat;
}
.hero::after {
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(0,10,61,.94) 0%, rgba(0,10,61,.74) 34%, rgba(0,10,61,.2) 60%, rgba(0,10,61,0) 82%);
}
.hero-inner { position:relative; z-index:2; }
.hero-copy { max-width:600px; }
.hero h1 {
  color:#fff; font-weight:800; font-size:clamp(2.3rem, 4.8vw, 3.55rem);
  letter-spacing:-.02em; margin-bottom:var(--sp-5);
  text-shadow:0 2px 30px rgba(0,10,61,.4);
}
.hero .lead { font-size:1.15rem; color:#dfe2ff; max-width:46ch; margin-bottom:var(--sp-8); }
.hero-actions { display:flex; gap:var(--sp-4); flex-wrap:wrap; }

/* ---------- SECTIONS ---------- */
.section { padding:var(--sp-24) 0; }
.section-mist { background:var(--mist); }
.section-head { max-width:660px; margin-bottom:var(--sp-12); }
.section-head.center { margin-inline:auto; text-align:center; }
.section-head h2 { font-weight:700; font-size:clamp(1.7rem, 3.4vw, 2.5rem); margin:var(--sp-3) 0 var(--sp-4); }
.section-head p { font-size:1.1rem; color:var(--ink); opacity:.85; }

/* ---------- CONCEPT + IMPLANTATION ---------- */
.steps-row {
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-8);
  max-width:900px; margin:0 auto var(--sp-12);
}
.step-inline { display:flex; gap:var(--sp-4); align-items:flex-start; }
.step-inline .n {
  flex:none; width:32px; height:32px; border-radius:50%;
  background:var(--holo-soft); color:var(--white);
  display:grid; place-items:center; font-family:var(--font-title); font-weight:700; font-size:.9rem;
}
.step-inline b { font-family:var(--font-title); color:var(--navy); }
.step-inline p { color:var(--ink); opacity:.8; font-size:.95rem; }

/* ---------- SPECS DU MODÈLE ---------- */
.specs-block { margin-top:var(--sp-12); }
.specs-title {
  font-family:var(--font-title); font-weight:700; color:var(--navy);
  font-size:1.15rem; text-align:center; margin-bottom:var(--sp-6);
}
.specs { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-4); max-width:960px; margin-inline:auto; }
.spec {
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-5);
}
.spec dt { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--violet); margin-bottom:.3rem; }
.spec dd { font-family:var(--font-title); font-weight:600; color:var(--navy); font-size:1.02rem; line-height:1.3; }

/* ---------- BLOC ENSEIGNES (night retail) ---------- */
.night { background:var(--night); color:#eef1ff; }
.night h2, .night h3 { color:#fff; }
.night .section-head p { color:#c3c9ef; opacity:1; }
.enseigne-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-16); align-items:center; }
.feature-list { display:grid; gap:var(--sp-5); }
.feature-list li { display:flex; gap:var(--sp-4); align-items:flex-start; list-style:none; }
.feature-list .ic {
  flex:none; width:40px; height:40px; border-radius:12px;
  background:var(--holo-soft);
  display:grid; place-items:center; color:#fff;
  box-shadow:0 6px 18px rgba(108,60,240,.3);
}
.feature-list .ic svg { width:20px; height:20px; }
.feature-list b { color:#fff; font-family:var(--font-title); }
.feature-list p { color:#c3c9ef; font-size:.95rem; margin-top:.1rem; }
.enseigne-cta { margin-top:var(--sp-8); }

/* ---------- ASSORTIMENT (licences) ---------- */
.licence-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-6); }
.licence {
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-card); overflow:hidden;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.licence:hover { transform:translateY(-4px); box-shadow:var(--shadow-soft); }
.licence.featured { border-color:var(--violet-2); box-shadow:0 0 0 1px var(--violet-2), var(--shadow-soft); }
.licence-thumb {
  position:relative; aspect-ratio:16/10; overflow:hidden;
  background:var(--holo-soft);
  display:grid; place-items:center; border-bottom:1px solid var(--line);
}
.licence-thumb::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 38%, rgba(255,255,255,.4) 50%, transparent 62%);
}
/* Univers colorimétrique par licence */
.lic-pokemon  { background:linear-gradient(135deg,#FFCE31 0%,#FF5350 52%,#C7261E 100%); }
/* Tuiles avec photo (libre de droit) + voile couleur pour lisibilité et identité */
.lic-photo.lic-pokemon {
  background:
    linear-gradient(165deg, rgba(6,24,70,.25) 0%, rgba(111,53,255,.62) 100%),
    url("pokemon_card.webp") center/cover no-repeat;
}
.lic-photo.lic-onepiece {
  background:
    linear-gradient(165deg, rgba(6,24,70,.25) 0%, rgba(111,53,255,.62) 100%),
    url("onepiece_card.webp") center/cover no-repeat;
}
.lic-photo.lic-riftbound {
  background:
    linear-gradient(165deg, rgba(6,24,70,.25) 0%, rgba(111,53,255,.62) 100%),
    url("riftbound_card.webp") center/cover no-repeat;
}
.lic-photo span { text-shadow:0 2px 14px rgba(0,0,0,.6); }
.lic-onepiece { background:linear-gradient(135deg,#E23B3B 0%,#B81C1C 48%,#F2A83B 100%); }
.lic-riftbound{ background:linear-gradient(135deg,#0B1E4D 0%,#1E5FA8 52%,#E8C24A 100%); }
/* Motif original évocateur (blanc translucide) */
.lic-motif {
  position:absolute; z-index:0;
  width:130px; height:130px; right:6%; top:50%;
  transform:translateY(-50%) rotate(-8deg);
  color:#fff; opacity:.2;
}
.licence-thumb span { z-index:1; }
.licence-thumb span {
  position:relative; z-index:1; color:#fff;
  font-family:var(--font-title); font-weight:800; font-size:1.35rem; letter-spacing:-.01em;
  text-align:center; padding:0 var(--sp-4);
  text-shadow:0 2px 12px rgba(0,10,61,.35);
}
.licence-body { padding:var(--sp-5) var(--sp-6) var(--sp-6); }
.licence-body .tag-main { display:inline-flex; align-items:center; gap:.3rem; font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--violet); margin-bottom:var(--sp-2); }
.licence-body .tag-main .spark { color:var(--gold); }
.licence-body p { color:var(--ink); opacity:.8; font-size:.93rem; }

/* ---------- SLIDER AVANT/APRÈS ---------- */
.ba {
  --pos:50%; position:relative; width:100%; max-width:960px;
  margin:0 auto var(--sp-12); aspect-ratio:3/2;
  border:1px solid var(--line); border-radius:var(--radius-card);
  box-shadow:var(--shadow-soft); overflow:hidden; touch-action:pan-y;
}
.ba-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.ba-top { clip-path:inset(0 calc(100% - var(--pos)) 0 0); }
.ba-line { position:absolute; top:0; bottom:0; left:var(--pos); width:3px; background:var(--white); transform:translateX(-50%); pointer-events:none; box-shadow:0 0 0 1px rgba(0,10,61,.12); }
.ba-knob {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:46px; height:46px; border-radius:50%;
  background:var(--violet); color:#fff; border:3px solid #fff;
  box-shadow:var(--shadow-soft); display:grid; place-items:center; font-size:1.1rem;
}
.ba-badge {
  position:absolute; top:var(--sp-4); font-weight:600; font-size:.72rem;
  letter-spacing:.06em; text-transform:uppercase;
  padding:.35rem .7rem; border-radius:100px; pointer-events:none;
}
.ba-badge-l { left:var(--sp-4); background:rgba(255,255,255,.92); color:var(--navy); }
.ba-badge-r { right:var(--sp-4); background:var(--violet); color:#fff; }
.ba-range { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; -webkit-appearance:none; appearance:none; background:transparent; }
.ba-range::-webkit-slider-thumb { -webkit-appearance:none; width:46px; height:100%; cursor:ew-resize; }
.ba-range::-moz-range-thumb { width:46px; height:100%; border:none; background:transparent; }
.ba:focus-within { outline:3px solid var(--violet-2); outline-offset:3px; }

.spot-intro { text-align:center; color:var(--ink); opacity:.8; margin-bottom:var(--sp-5); }
.spot-list { display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-4); max-width:960px; margin-inline:auto; }
.spot {
  display:flex; align-items:center; justify-content:center; gap:.55rem;
  background:var(--white); border:1px solid var(--line); border-radius:100px;
  padding:var(--sp-4) var(--sp-4);
  transition:border-color .2s var(--ease);
}
.spot:hover { border-color:var(--violet-2); }
.spot::before { content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--holo-soft); }
.spot span { font-weight:600; font-size:.88rem; color:var(--navy); font-family:var(--font-title); }

/* ---------- EMPLACEMENTS (store locator) ---------- */
.locator-wrap { display:grid; grid-template-columns:1.35fr 1fr; gap:var(--sp-6); align-items:stretch; }
#map {
  height:540px; border-radius:var(--radius-card);
  border:1px solid var(--line); box-shadow:var(--shadow-soft);
  background:var(--mist); z-index:0;
}
.loc-list {
  height:540px; overflow-y:auto; align-content:start;
  display:grid; gap:var(--sp-3); padding-right:var(--sp-2);
}
.loc-list::-webkit-scrollbar { width:8px; }
.loc-list::-webkit-scrollbar-thumb { background:var(--line); border-radius:8px; }
.loc-card {
  display:flex; gap:var(--sp-4); align-items:center;
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-3);
  cursor:pointer; transition:border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}
.loc-card:hover, .loc-card.active { border-color:var(--violet-2); box-shadow:var(--shadow-soft); transform:translateY(-1px); }
.loc-thumb { flex:none; width:92px; height:92px; border-radius:10px; object-fit:cover; border:1px solid var(--line); }
.loc-info { display:flex; flex-direction:column; gap:.15rem; }
.loc-badge {
  align-self:flex-start; font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--navy); background:var(--gold); padding:.16rem .5rem; border-radius:100px;
}
.loc-info h3 { font-size:1.05rem; font-weight:600; }
.loc-info .addr { color:var(--navy); font-weight:600; font-size:.95rem; }
/* Nom de lieu provisoire (rien d'officiel) — grisé */
.loc-pending { color:#a7a2b4 !important; font-weight:600; font-style:italic; }
.loc-pending::before { content:"•••  "; letter-spacing:.05em; }
.loc-note { text-align:center; margin-top:var(--sp-6); font-size:.85rem; color:var(--ink); opacity:.6; }
/* Marqueur carte HoloPop */
.hp-pin {
  width:16px; height:16px; border-radius:50% 50% 50% 0;
  background:var(--violet); border:2.5px solid #fff;
  transform:rotate(-45deg); box-shadow:0 3px 8px rgba(6,24,70,.4);
}
.leaflet-popup-content { font-family:var(--font-body); }
.leaflet-popup-content b { font-family:var(--font-title); color:var(--navy); }

/* ---------- FAQ ---------- */
.faq { max-width:820px; margin-inline:auto; }
.faq details {
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-sm); margin-bottom:var(--sp-3); overflow:hidden;
}
.faq summary {
  list-style:none; cursor:pointer; padding:var(--sp-5) var(--sp-6);
  font-family:var(--font-title); font-weight:600; color:var(--navy); font-size:1.05rem;
  display:flex; justify-content:space-between; align-items:center; gap:var(--sp-4);
}
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; color:var(--violet); font-size:1.4rem; font-weight:400; transition:transform .2s var(--ease); }
.faq details[open] summary::after { transform:rotate(45deg); }
.faq details > p { padding:0 var(--sp-6) var(--sp-5); color:var(--ink); opacity:.85; }

/* ---------- CONTACT ---------- */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-16); align-items:start; }
.contact-list { list-style:none; margin-top:var(--sp-8); display:grid; gap:var(--sp-5); }
.contact-list li { display:grid; gap:.2rem; }
.contact-list .c-label { font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--violet); }
.contact-list a { font-family:var(--font-title); font-weight:600; font-size:1.2rem; color:var(--navy); }
.contact-list a:hover { color:var(--violet); }

.contact-form {
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-card); box-shadow:var(--shadow-soft);
  padding:var(--sp-8); display:grid; gap:var(--sp-4);
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4); }
.field { display:grid; gap:.4rem; }
.field label { font-size:.8rem; font-weight:600; color:var(--navy); }
.field input, .field select, .field textarea {
  background:var(--white); color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:.7rem .9rem; font-family:var(--font-body); font-size:.95rem; resize:vertical;
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(108,60,240,.12);
}
.field input::placeholder, .field textarea::placeholder { color:#a99fce; }
.form-note { font-size:.78rem; color:var(--ink); opacity:.6; text-align:center; }

/* ---------- FOOTER ---------- */
.site-footer { background:var(--night); color:#c3c9ef; padding:var(--sp-16) 0 var(--sp-8); }
.footer-inner { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:var(--sp-12); }
.footer-logo { height:50px; width:auto; display:block; }
.footer-brand p { margin-top:var(--sp-4); max-width:34ch; font-size:.92rem; color:#aab2e0; }
.footer-tagline { margin-top:var(--sp-3); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--violet-2); }
.footer-col h4 { font-family:var(--font-title); color:#fff; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:var(--sp-4); }
.footer-col a { display:block; color:#aab2e0; font-size:.92rem; padding:.3rem 0; }
.footer-col a:hover { color:#fff; }
.footer-bottom {
  grid-column:1/-1; margin-top:var(--sp-8); padding-top:var(--sp-6);
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap;
  font-size:.82rem; color:#8891c7;
}
.footer-bottom a { color:#aab2e0; text-decoration:underline; text-underline-offset:3px; }
.footer-bottom a:hover { color:#fff; }

/* ---------- PAGE MENTIONS LÉGALES ---------- */
.legal-wrap { max-width:820px; }
.legal-head { margin-bottom:var(--sp-10); }
.legal-head h1 { font-size:clamp(2rem,4vw,2.6rem); font-weight:700; }
.legal-body h2 { font-family:var(--font-title); font-weight:700; font-size:1.3rem; color:var(--navy); margin:var(--sp-10) 0 var(--sp-4); }
.legal-body p { color:var(--ink); margin-bottom:var(--sp-4); max-width:68ch; }
.legal-body a { color:var(--violet); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.legal-body .muted { color:#8a86a0; font-style:italic; }
.legal-dl { display:grid; gap:0; border-top:1px solid var(--line); margin:var(--sp-4) 0 var(--sp-6); }
.legal-dl div { display:grid; grid-template-columns:220px 1fr; gap:var(--sp-4); padding:var(--sp-3) 0; border-bottom:1px solid var(--line); }
.legal-dl dt { font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--violet); padding-top:.15rem; }
.legal-dl dd { font-weight:500; }
.legal-back { margin-top:var(--sp-10); }
.legal-back a { font-family:var(--font-title); font-weight:600; color:var(--violet); }

/* ---------- SCROLL REVEAL ---------- */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px) {
  .nav, .header-cta { display:none; }
  .nav-toggle { display:flex; }
  .hero { min-height:520px; padding:var(--sp-16) 0; }
  .hero::before { background-position:center; }
  .hero::after { background:linear-gradient(180deg, rgba(0,10,61,.7) 0%, rgba(0,10,61,.86) 100%); }
  .steps-row { grid-template-columns:1fr; gap:var(--sp-5); max-width:460px; }
  .specs { grid-template-columns:1fr 1fr; }
  .enseigne-grid, .contact-grid { grid-template-columns:1fr; gap:var(--sp-10); }
  .locator-wrap { grid-template-columns:1fr; gap:var(--sp-5); }
  #map { height:360px; }
  .loc-list { height:auto; max-height:420px; }
  .licence-grid { grid-template-columns:1fr 1fr; }
  .spot-list { grid-template-columns:1fr 1fr 1fr; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .form-row { grid-template-columns:1fr; }

  .nav.open {
    display:flex; position:absolute; top:76px; left:0; right:0; flex-direction:column; gap:0;
    background:var(--white); border-bottom:1px solid var(--line); padding:0 var(--sp-6);
  }
  .nav.open a { padding:var(--sp-4) 0; border-bottom:1px solid var(--line); color:var(--navy); }
  .nav.open a::after { display:none; }
}
@media (max-width:540px) {
  .licence-grid { grid-template-columns:1fr; }
  .specs { grid-template-columns:1fr; }
  .spot-list { grid-template-columns:1fr 1fr; }
  .footer-inner { grid-template-columns:1fr; }
  .legal-dl div { grid-template-columns:1fr; gap:.15rem; }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; }
}
