/* Atelier d'Orane — styles.
   Local system fonts only; the page makes no request outside this domain. */

:root {
  --vt-papier: #f2f3ef;
  --vt-verre: #e2e8e4;
  --vt-encre: #18222c;
  --vt-gris: #4d5b64;
  --vt-cobalt: #1f4f7d;
  --vt-cobalt-fonce: #163a5c;
  --vt-brique: #9c4e2e;
  --vt-ambre: #d8a23e;
  --vt-vert: #3f6b58;
  --vt-plomb: #232b31;
  --vt-filet: #c8d0cb;
  --vt-titre: "Avenir Next Condensed", "Franklin Gothic Medium", "Arial Narrow", "Roboto Condensed", sans-serif;
  --vt-texte: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
  --vt-u: 0.25rem;
  --vt-large: min(76rem, 100% - 2.5rem);
  --vt-bloc: clamp(3.5rem, 7vw, 6.5rem);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font: 400 1.0625rem/1.65 var(--vt-texte);
  color: var(--vt-encre);
  background: var(--vt-papier);
}

h1, h2, h3, .vt-police-titre {
  font-family: var(--vt-titre);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.6rem, 5.4vw, 4.6rem); margin: 0 0 calc(var(--vt-u) * 5); }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin: 0 0 calc(var(--vt-u) * 4); }
h3 { font-size: 1.35rem; margin: 0 0 calc(var(--vt-u) * 2); }
p { margin: 0 0 calc(var(--vt-u) * 4); max-width: 66ch; }

a { color: var(--vt-cobalt); text-underline-offset: 0.18em; }
a:hover { color: var(--vt-brique); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--vt-ambre);
  outline-offset: 2px;
}

.vt-saut {
  position: absolute;
  left: -40rem;
  top: 0.5rem;
  padding: 0.6rem 0.9rem;
  background: var(--vt-encre);
  color: var(--vt-papier);
}
.vt-saut:focus { left: 0.5rem; }

.vt-conteneur { width: var(--vt-large); margin-inline: auto; }

.vt-icone { width: 1.5rem; height: 1.5rem; fill: currentColor; flex: none; }

/* Ligne d'information 21+ */
.vt-alerte {
  background: var(--vt-plomb);
  color: #e9ede9;
  font: 500 0.8rem/1.4 var(--vt-titre);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.vt-alerte p { margin: 0 auto; max-width: none; padding: 0.5rem 0; }
.vt-alerte b { color: var(--vt-ambre); }

/* En-tête */
.vt-tete {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--vt-papier);
  border-bottom: 2px solid var(--vt-encre);
}
.vt-tete .vt-conteneur {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 4.5rem;
}
.vt-logo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-right: auto;
  color: var(--vt-encre);
  text-decoration: none;
  font: 700 1.3rem/1 var(--vt-titre);
  letter-spacing: 0.01em;
}
.vt-logo svg { width: 2rem; height: 2.4rem; }
.vt-menu { display: flex; gap: 1.25rem; }
.vt-menu a {
  color: var(--vt-encre);
  text-decoration: none;
  font: 500 0.95rem/1 var(--vt-titre);
  padding: 0.4rem 0;
  border-bottom: 2px solid transparent;
  transition: border-color 0.18s ease-out, color 0.18s ease-out;
}
.vt-menu a:hover, .vt-menu a[aria-current="page"] { border-color: var(--vt-brique); color: var(--vt-brique); }
.vt-appel {
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 1.1rem;
  background: var(--vt-cobalt);
  color: #fff;
  text-decoration: none;
  font: 600 0.95rem/1 var(--vt-titre);
  border-radius: 999px;
  transition: background-color 0.18s ease-out;
}
.vt-appel:hover { background: var(--vt-cobalt-fonce); color: #fff; }
.vt-menu .vt-mobile { display: none; }
.vt-ouvrir {
  display: none;
  border: 2px solid var(--vt-encre);
  background: transparent;
  color: var(--vt-encre);
  font: 600 0.9rem/1 var(--vt-titre);
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
  cursor: pointer;
}

/* Ouverture de page */
.vt-ouverture { padding: var(--vt-bloc) 0 calc(var(--vt-bloc) * 0.8); }
.vt-ouverture .vt-conteneur {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.vt-numero {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font: 600 0.85rem/1 var(--vt-titre);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--vt-brique);
}
.vt-numero::before { content: ""; width: 0.6rem; height: 0.6rem; background: currentColor; }
.vt-chapo { font-size: 1.2rem; color: var(--vt-gris); }

.vt-boutons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0 0; }
.vt-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.35rem;
  border: 2px solid var(--vt-encre);
  border-radius: 999px;
  background: transparent;
  color: var(--vt-encre);
  font: 600 1rem/1 var(--vt-titre);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.18s ease-out, color 0.18s ease-out, transform 0.12s ease-out;
}
.vt-btn:hover { background: var(--vt-encre); color: var(--vt-papier); }
.vt-btn:active { transform: scale(0.97); }
.vt-btn-plein { background: var(--vt-cobalt); border-color: var(--vt-cobalt); color: #fff; }
.vt-btn-plein:hover { background: var(--vt-cobalt-fonce); border-color: var(--vt-cobalt-fonce); color: #fff; }
.vt-sombre .vt-btn { border-color: #e9ede9; color: #e9ede9; }
.vt-sombre .vt-btn:hover { background: #e9ede9; color: var(--vt-plomb); }

/* Fiche chiffrée */
.vt-fiche {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 2.25rem 0 0;
  border-top: 2px solid var(--vt-encre);
}
.vt-fiche div { padding: 0.9rem 0.75rem 0 0; }
.vt-fiche dt { font: 500 0.8rem/1.3 var(--vt-titre); text-transform: uppercase; letter-spacing: 0.06em; color: var(--vt-gris); }
.vt-fiche dd { margin: 0.2rem 0 0; font: 700 1.9rem/1.1 var(--vt-titre); }

/* Vitrail (composition CSS, aucune image) */
.vt-vitrail {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
  gap: 7px;
  aspect-ratio: 3 / 4.2;
  padding: 7px;
  background: var(--vt-plomb);
  border-radius: 48% 48% 0.4rem 0.4rem / 26% 26% 0.4rem 0.4rem;
  overflow: hidden;
}
.vt-vitrail span { display: block; }
.vt-vitrail span:nth-child(1) { background: #9fb8c9; grid-column: 1 / 3; }
.vt-vitrail span:nth-child(2) { background: var(--vt-ambre); }
.vt-vitrail span:nth-child(3) { background: #c9d6cf; }
.vt-vitrail span:nth-child(4) { background: var(--vt-cobalt); grid-row: span 2; }
.vt-vitrail span:nth-child(5) { background: #e7d9b8; }
.vt-vitrail span:nth-child(6) { background: var(--vt-vert); grid-row: span 2; }
.vt-vitrail span:nth-child(7) { background: var(--vt-brique); }
.vt-vitrail span:nth-child(8) { background: #b8c9d6; grid-column: 2 / 4; }
.vt-vitrail span:nth-child(9) { display: none; }
.vt-vitrail-petit { max-width: 16rem; justify-self: end; width: 100%; }

/* Blocs */
.vt-bloc { padding: var(--vt-bloc) 0; }
.vt-bloc + .vt-bloc { border-top: 1px solid var(--vt-filet); }
.vt-teinte { background: var(--vt-verre); }
.vt-sombre { background: var(--vt-plomb); color: #e9ede9; }
.vt-sombre a { color: #b8d3ec; }
.vt-sombre .vt-numero { color: var(--vt-ambre); }
.vt-sombre .vt-chapo { color: #c6cfcb; }
.vt-entete-bloc { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; margin-bottom: 2.5rem; align-items: end; }
.vt-entete-bloc p { color: var(--vt-gris); margin: 0; }
.vt-sombre .vt-entete-bloc p { color: #c6cfcb; }
.vt-deux-col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }

/* Tuiles */
.vt-tuiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.vt-tuile {
  display: flex;
  flex-direction: column;
  padding: 1.6rem;
  background: #fff;
  border: 1px solid var(--vt-filet);
  border-top: 6px solid var(--vt-cobalt);
}
.vt-tuile:nth-child(3n+2) { border-top-color: var(--vt-ambre); }
.vt-tuile:nth-child(3n) { border-top-color: var(--vt-vert); }
.vt-tuile .vt-icone { color: var(--vt-brique); margin-bottom: 0.9rem; width: 1.9rem; height: 1.9rem; }
.vt-tuile p:last-child { margin-bottom: 0; }
.vt-tuile .vt-lien-fin { margin-top: auto; font: 600 1rem/1 var(--vt-titre); }
.vt-petit { font-size: 0.92rem; color: var(--vt-gris); }

/* Listes cochées */
.vt-coches { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; }
.vt-coches li { display: grid; grid-template-columns: 1.5rem 1fr; gap: 0.7rem; }
.vt-coches .vt-icone { width: 1.3rem; height: 1.3rem; color: var(--vt-ambre); margin-top: 0.2rem; }
.vt-coches strong { font-family: var(--vt-titre); font-size: 1.1rem; }

/* Tableaux */
.vt-tableau { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--vt-filet); }
.vt-tableau caption { text-align: left; font: 600 1.1rem/1.2 var(--vt-titre); padding-bottom: 0.75rem; }
.vt-tableau th, .vt-tableau td { padding: 0.8rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--vt-filet); }
.vt-tableau thead th { background: var(--vt-encre); color: var(--vt-papier); font: 600 0.9rem/1.2 var(--vt-titre); letter-spacing: 0.04em; text-transform: uppercase; }
.vt-tableau tbody th { font: 600 1.05rem/1.3 var(--vt-titre); }
.vt-tableau .vt-prix { white-space: nowrap; font-family: var(--vt-titre); font-weight: 600; color: var(--vt-cobalt); }
.vt-sombre .vt-tableau { background: transparent; border-color: #45515a; }
.vt-sombre .vt-tableau th, .vt-sombre .vt-tableau td { border-color: #45515a; }
.vt-defile { overflow-x: auto; }

/* Chronologie */
.vt-frise { list-style: none; margin: 0; padding: 0 0 0 1.5rem; border-left: 3px solid var(--vt-cobalt); }
.vt-frise li { position: relative; padding: 0 0 1.75rem 0.5rem; }
.vt-frise li::before {
  content: "";
  position: absolute;
  left: -2.05rem;
  top: 0.35rem;
  width: 1rem;
  height: 1rem;
  background: var(--vt-ambre);
  border: 3px solid var(--vt-papier);
  border-radius: 50%;
}
.vt-frise b { display: block; font: 600 1.15rem/1.3 var(--vt-titre); }

/* Questions */
.vt-questions { margin: 0; display: grid; gap: 1.25rem; }
.vt-questions div { padding: 1.25rem 1.5rem; background: #fff; border-left: 4px solid var(--vt-brique); }
.vt-questions dt { font: 600 1.2rem/1.3 var(--vt-titre); margin-bottom: 0.4rem; }
.vt-questions dd { margin: 0; }

/* Coordonnées */
.vt-adresse { font-style: normal; font-size: 1.1rem; line-height: 1.6; }
.vt-contacts { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.vt-contacts a { display: inline-flex; gap: 0.5rem; align-items: center; font-family: var(--vt-titre); font-weight: 600; }
.vt-contacts .vt-icone { width: 1.15rem; height: 1.15rem; }

/* Formulaire */
.vt-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem 1.5rem; }
.vt-form label { display: block; font: 600 0.95rem/1.3 var(--vt-titre); margin-bottom: 0.35rem; }
.vt-form input, .vt-form select, .vt-form textarea {
  width: 100%;
  padding: 0.75rem 0.85rem;
  font: inherit;
  color: var(--vt-encre);
  background: #fff;
  border: 2px solid var(--vt-filet);
  border-radius: 0.4rem;
}
.vt-form input:focus, .vt-form select:focus, .vt-form textarea:focus { border-color: var(--vt-cobalt); }
.vt-large-champ { grid-column: 1 / -1; }
.vt-case { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.95rem; }
.vt-case input { width: auto; margin-top: 0.3rem; }
.vt-invisible { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vt-message { padding: 1rem 1.25rem; margin-bottom: 1.5rem; background: #fff; border-left: 4px solid var(--vt-vert); }
.vt-message-erreur { border-left-color: var(--vt-brique); }
.vt-message ul { margin: 0.5rem 0 0; padding-left: 1.2rem; }

/* Textes juridiques */
.vt-juridique { max-width: 50rem; }
.vt-juridique h2 { font-size: 1.5rem; margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--vt-filet); }
.vt-juridique li { margin-bottom: 0.4rem; }
.vt-date { font: 500 0.9rem/1 var(--vt-titre); color: var(--vt-gris); }

/* Aides */
.vt-aides { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; }
.vt-aide { padding: 1.25rem; background: #fff; border: 1px solid var(--vt-filet); }
.vt-aide h3 { font-size: 1.2rem; }
.vt-aide p { margin-bottom: 0.5rem; font-size: 0.97rem; }

/* Mise en garde réglementaire (arrêté du 11 juillet 2023) */
.vt-mise-en-garde { background: #ffe600; }
.vt-mise-en-garde a {
  display: block;
  padding: 1.1rem 0;
  color: #000;
  font: 700 0.95rem/1.45 Roboto, Arial, sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.vt-mise-en-garde a:hover { text-decoration: underline; color: #000; }

/* Pied */
.vt-pied { background: var(--vt-verre); padding: 3.5rem 0 1.5rem; font-size: 0.97rem; }
.vt-pied-grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.vt-pied h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.9rem; }
.vt-pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.vt-pied a { color: var(--vt-encre); }
.vt-pied a:hover { color: var(--vt-brique); }
.vt-pied-marque { font: 700 1.5rem/1.1 var(--vt-titre); margin-bottom: 0.75rem; }
.vt-pied-bas {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 2px solid var(--vt-encre);
  font: 500 0.85rem/1.4 var(--vt-titre);
}
.vt-pied-bas p { margin: 0; max-width: none; }

/* Bandeau traceurs */
.vt-traceurs {
  position: fixed;
  z-index: 40;
  inset: auto 0 0 0;
  background: var(--vt-plomb);
  color: #e9ede9;
  border-top: 4px solid var(--vt-ambre);
}
.vt-traceurs .vt-conteneur { display: flex; align-items: center; gap: 1.5rem; padding: 1rem 0; }
.vt-traceurs p { margin: 0; font-size: 0.95rem; }
.vt-traceurs a { color: #b8d3ec; }
.vt-traceurs .vt-boutons { margin: 0; flex: none; }
.vt-traceurs .vt-btn { border-color: #e9ede9; color: #e9ede9; padding: 0.6rem 1.1rem; }
.vt-traceurs .vt-btn:hover { background: #e9ede9; color: var(--vt-plomb); }

/* Vérification de l'âge */
.vt-majorite {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: grid;
  grid-template-columns: 2fr 3fr;
  background: var(--vt-papier);
}
.vt-majorite-chiffre {
  display: grid;
  place-items: center;
  background: var(--vt-cobalt);
  color: #fff;
  font: 700 clamp(5rem, 14vw, 11rem)/1 var(--vt-titre);
}
.vt-majorite-texte { align-self: center; padding: clamp(1.5rem, 5vw, 4rem); max-width: 40rem; }
.vt-majorite-texte .vt-petit { margin-top: 1.5rem; }
[hidden] { display: none !important; }

/* Page 404 */
.vt-grand-code { font: 700 clamp(5rem, 14vw, 9rem)/1 var(--vt-titre); color: var(--vt-cobalt); margin: 0; }

/* Petits écrans */
@media (max-width: 960px) {
  .vt-ouvrir { display: inline-block; }
  .vt-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 0;
    padding: 0.5rem 1.25rem 1rem;
    background: var(--vt-papier);
    border-bottom: 2px solid var(--vt-encre);
  }
  .vt-menu.vt-deplie { display: flex; }
  .vt-menu .vt-mobile { display: block; color: var(--vt-cobalt); font-weight: 700; border-bottom: 0; }
  .vt-menu a { padding: 0.8rem 0; border-bottom: 1px solid var(--vt-filet); }
  .vt-tete .vt-appel { display: none; }
  .vt-pied-grille { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .vt-ouverture .vt-conteneur,
  .vt-entete-bloc,
  .vt-deux-col,
  .vt-tuiles,
  .vt-form,
  .vt-pied-grille,
  .vt-majorite { grid-template-columns: 1fr; }
  .vt-fiche { grid-template-columns: repeat(2, 1fr); }
  .vt-vitrail { max-width: 15rem; margin: 0 auto; }
  .vt-vitrail-petit { justify-self: center; }
  .vt-majorite-chiffre { min-height: 30vh; }
  .vt-traceurs .vt-conteneur { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
  .vt-alerte { font-size: 0.72rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

.vt-age-encart { min-height: 12rem; border-radius: 0.5rem; }
