/* ============================================================
   Structure commune aux trois versions de la fiche.
   Aucune couleur, aucune police ici : tout passe par les variables
   redéfinies dans theme-epure.css / theme-europeen.css / theme-marocain.css
   ============================================================ */
:root{
  --fond:#fff; --carte:#fff; --texte:#111; --doux:#666; --trait:#ddd; --accent:#111;
  --contraste:#fff;                 /* texte posé sur --accent */
  --titre:Georgia, serif; --corps:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --largeur:1080px; --r:0px; --gap:10px; --ombre:none;
  --h1:clamp(1.8rem,4.4vw,2.9rem); --h2:1.15rem;
  --espace:56px;
}
*{box-sizing:border-box}
img,video{max-width:100%}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--corps);
     font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
.page{max-width:var(--largeur);margin:0 auto;padding:36px 22px 90px}
section{margin-top:var(--espace)}
h1,h2{font-family:var(--titre);font-weight:400;margin:0}
h1{font-size:var(--h1);line-height:1.12;letter-spacing:-.015em;margin:14px 0 8px}
h2{font-size:var(--h2);margin-bottom:20px}
p{margin:0 0 1em}

/* ---- Sélecteur de version (à retirer avant diffusion) ---- */
.versions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;
          padding:10px 22px;font-size:.8rem;background:var(--texte);color:var(--fond)}
.versions span{opacity:.6;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}
.versions a{color:inherit;text-decoration:none;opacity:.65;padding:2px 0;border-bottom:1px solid transparent}
.versions a:hover{opacity:1}
.versions a.actif{opacity:1;border-bottom-color:currentColor}

/* ---- En-tête ---- */
.statut{display:inline-block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.lieu{color:var(--doux);margin:0}
.prix{font-family:var(--titre);font-size:clamp(1.4rem,3vw,2rem);margin:22px 0 2px}
.prix-detail{color:var(--doux);font-size:.88rem;margin:0}
.accroches{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:24px 0 0}
.accroches li{font-size:.86rem;padding:6px 14px;border:1px solid var(--trait);border-radius:var(--r)}

/* ---- Galerie ---- */
.galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--gap)}
.galerie figure{margin:0;min-width:0}
.galerie .grande{grid-column:span 2;grid-row:span 2}
.vignette{position:relative;display:block;width:100%;margin:0;padding:0;border:0;cursor:zoom-in;
          background:var(--trait);overflow:hidden;border-radius:var(--r);aspect-ratio:4/3}
.galerie .grande .vignette{aspect-ratio:1/1}
.vignette img{width:100%;height:100%;object-fit:cover;display:block;
              transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.vignette:hover img{transform:scale(1.035)}
.galerie figcaption{font-size:.8rem;color:var(--doux);padding:7px 2px 0}
.vide{border:1px dashed var(--trait);padding:36px;text-align:center;color:var(--doux)}

/* ---- Descriptif ---- */
.colonnes{display:grid;grid-template-columns:1.7fr 1fr;gap:30px;align-items:start}
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:var(--r);
       padding:26px 28px;box-shadow:var(--ombre)}
.carte p:last-child{margin-bottom:0}
.carte .intitule{display:block;margin-bottom:15px;font-family:var(--titre);font-size:1.02rem}
.forts{list-style:none;padding:0;margin:0}
.forts li{position:relative;padding-left:24px;margin-bottom:11px;font-size:.94rem}
.forts li:last-child{margin-bottom:0}
.forts li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;background:var(--accent)}

/* ---- Caractéristiques ---- */
.carac{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0;
       border-top:1px solid var(--trait);border-left:1px solid var(--trait)}
.carac div{padding:14px 20px;border-bottom:1px solid var(--trait);border-right:1px solid var(--trait)}
.carac dt{color:var(--doux);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.carac dd{margin:4px 0 0;font-weight:600}

/* ---- Vidéos ---- */
.videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}
.videos video{width:100%;background:#000;border-radius:var(--r);display:block}

/* ---- Contact ---- */
.contact{background:var(--accent);color:var(--contraste);padding:34px 36px;border-radius:var(--r)}
.contact h2{color:inherit}
.contact .liens{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.contact .liens a{color:inherit;text-decoration:none;padding:11px 20px;border-radius:var(--r);
                  border:1px solid currentColor}
.contact .liens a:hover{background:var(--contraste);color:var(--accent)}
footer{margin-top:var(--espace);text-align:center;color:var(--doux);font-size:.8rem}

/* ---- Visionneuse ---- */
.lightbox{position:fixed;inset:0;background:rgba(12,12,12,.95);display:none;
          align-items:center;justify-content:center;z-index:60}
.lightbox.ouverte{display:flex}
.lightbox img{max-width:92vw;max-height:82vh;object-fit:contain}
.lb-legende{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:#fff;
            font-size:.92rem;padding:0 64px}
.lb-btn{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer;
        width:46px;height:46px;border-radius:50%;font-size:1.5rem;line-height:1;
        display:flex;align-items:center;justify-content:center}
.lb-btn:hover{background:rgba(255,255,255,.26)}
.lb-prec{left:18px;top:50%;transform:translateY(-50%)}
.lb-suiv{right:18px;top:50%;transform:translateY(-50%)}
.lb-fermer{top:18px;right:18px;font-size:1.25rem}

@media (max-width:780px){
  .colonnes{grid-template-columns:1fr}
  .galerie .grande{grid-column:span 1;grid-row:span 1}
  .page{padding:24px 16px 64px}
}
@media print{
  .versions,.lightbox,.contact .liens{display:none!important}
  body{background:#fff}
  section{break-inside:avoid}
  .carte,.videos video{box-shadow:none}
}
