:root {
  --ivoire: #F4EFE2;
  --charbon: #1B1712;
  --or: #A8813A;
  --or-texte: #7A5C22; /* or assombri : contraste suffisant sur ivoire */
  --blanc: #FFFDF8;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--ivoire);
  color: var(--charbon);
  font: 17px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));
}
.carte { width: 100%; max-width: 420px; text-align: center; }
.portrait {
  width: 160px; height: 160px; border-radius: 50%; object-fit: cover; object-position: 45% 30%;
  border: 4px solid var(--or); display: block; margin: 0 auto 20px;
}
h1 {
  font-family: Georgia, "Playfair Display", "Times New Roman", serif;
  font-size: 2rem; line-height: 1.15; margin: 0 0 6px;
}
.titre { margin: 0; font-size: 1.05rem; }
.secteurs {
  margin: 6px 0 28px; color: var(--or-texte); font-weight: 700;
  font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
}
.actions { display: flex; flex-direction: column; gap: 12px; }
.bouton {
  display: block; padding: 14px 18px; border-radius: 10px; text-decoration: none;
  border: 2px solid var(--charbon); color: var(--charbon); background: var(--blanc);
  font-weight: 700; font-size: 1rem;
}
.bouton.plein { background: var(--charbon); color: var(--ivoire); }
.bouton:focus-visible, a:focus-visible { outline: 3px solid var(--or); outline-offset: 3px; }
.choix { margin: 0 0 8px; font-size: .92rem; }
.choix a, .contact a { color: var(--charbon); }
.choix a[aria-current="true"] { font-weight: 700; }
.contact { margin: 28px 0 20px; font-size: .92rem; word-break: break-word; }
.logo { width: 200px; height: auto; opacity: .95; }

/* Pages d'emplacement (desktop.html, mobile.html avant export) */
.emplacement { max-width: 560px; text-align: left; }
.emplacement code { background: var(--blanc); padding: 1px 5px; border-radius: 4px; }

/* Pages de texte (mentions legales) */
body.page-texte { display: block; }
.carte.texte { max-width: 640px; margin: 0 auto; text-align: left; }
.texte h1 { font-size: 1.7rem; margin-top: 8px; }
.texte h2 {
  font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem;
  margin: 28px 0 6px; color: var(--or-texte);
}
.texte p { margin: 0 0 10px; word-break: break-word; }
.texte a { color: var(--charbon); }
.a-completer { background: #FFE8A3; padding: 0 4px; }
.legal { margin: 0 0 8px; font-size: .8rem; }
.legal a { color: var(--charbon); }

/* Demo video : se lit seule, sans son ; image animee si la lecture est refusee */
.demo { display: block; width: 100%; height: auto; border-radius: 12px; background: var(--blanc); }
