/* Casino Belrivage — single stylesheet.
 * "Comptoir" look: warm daylight paper, deep green and brass, geometric
 * sans headings over a serif body. System font stacks only; the page never
 * loads a remote resource. */

:root {
  --blv-papier: #f4f1e8;
  --blv-carton: #ede8db;
  --blv-encre: #26291f;
  --blv-gris: #5d6152;
  --blv-laiton: #7a601f;
  --blv-vert: #2e4b3f;
  --blv-trait: #cfc8b4;
  --blv-titres: 'Century Gothic', 'Avenir Next', Futura, 'Trebuchet MS', sans-serif;
  --blv-texte: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --blv-marge: clamp(1rem, 5vw, 5rem);
  --blv-pas: 0.5rem;
}

* { box-sizing: border-box; }

/* Notices are toggled through the hidden attribute — keep it authoritative
 * over the layout display values below. */
[hidden] { display: none !important; }

html.blv-bloque { overflow: hidden; }

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

h1, h2, h3 {
  font-family: var(--blv-titres);
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 calc(var(--blv-pas) * 2);
}

h1 { font-size: clamp(1.9rem, 4.5vw, 3rem); line-height: 1.1; }
h2 { font-size: clamp(1.3rem, 2.6vw, 1.8rem); }
h3 { font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.08em; }

p { margin: 0 0 calc(var(--blv-pas) * 2); }
p:last-child { margin-bottom: 0; }

a { color: var(--blv-laiton); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--blv-vert); outline-offset: 2px; }

button {
  font: 700 0.8rem/1 var(--blv-titres);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blv-encre);
  background: none;
  border: 1.5px solid var(--blv-encre);
  padding: 0.65rem 1.2rem;
  cursor: pointer;
  transition: opacity 0.15s ease-out, transform 0.15s ease-out;
}

button:hover { opacity: 0.75; }
button:active { transform: scale(0.97); }
.blv-bouton-plein { background: var(--blv-vert); border-color: var(--blv-vert); color: var(--blv-papier); }

.blv-losange { width: 40px; height: 40px; fill: none; stroke: var(--blv-laiton); stroke-width: 2; }

/* ---- Filet décoratif + avis 18+ ---- */
.blv-filet-haut { height: 6px; background: var(--blv-vert); border-bottom: 2px solid var(--blv-laiton); }

.blv-avis-age {
  margin: 0;
  padding: 0.4rem var(--blv-marge);
  text-align: center;
  font: 400 0.78rem/1.5 var(--blv-titres);
  letter-spacing: 0.06em;
  color: var(--blv-gris);
  border-bottom: 1px solid var(--blv-trait);
}

/* ---- Masthead centré ---- */
.blv-masthead {
  text-align: center;
  padding: calc(var(--blv-pas) * 5) var(--blv-marge) 0;
  border-bottom: 3px double var(--blv-trait);
  position: relative;
}

.blv-devise {
  margin: 0 0 var(--blv-pas);
  font: 400 0.75rem/1.4 var(--blv-titres);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--blv-gris);
}

.blv-enseigne {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  color: var(--blv-encre);
  font: 400 clamp(1.7rem, 4vw, 2.4rem)/1.1 var(--blv-titres);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.blv-enseigne:hover { text-decoration: none; }
.blv-enseigne b { color: var(--blv-vert); font-weight: 700; }

.blv-menu {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(0.9rem, 2.5vw, 2.2rem);
  margin-top: calc(var(--blv-pas) * 3);
  padding: calc(var(--blv-pas) * 1.5) 0;
  border-top: 1px solid var(--blv-trait);
}

.blv-menu a {
  font: 700 0.78rem/1 var(--blv-titres);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blv-encre);
}

.blv-menu a:hover { color: var(--blv-laiton); text-decoration: none; }
.blv-menu a[aria-current="page"] { color: var(--blv-vert); border-bottom: 2px solid var(--blv-laiton); padding-bottom: 0.3rem; }

.blv-menu-bouton { display: none; position: absolute; top: 1rem; right: var(--blv-marge); }

/* ---- Bandeau d'entrée de page ---- */
.blv-bandeau {
  max-width: 60rem;
  margin: 0 auto;
  padding: calc(var(--blv-pas) * 8) var(--blv-marge) calc(var(--blv-pas) * 6);
  text-align: center;
}

.blv-kicker {
  display: inline-block;
  font: 700 0.72rem/1 var(--blv-titres);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--blv-laiton);
  border: 1px solid var(--blv-trait);
  padding: 0.45rem 0.9rem;
  margin-bottom: calc(var(--blv-pas) * 3);
}

.blv-bandeau p { color: var(--blv-gris); font-size: 1.08rem; max-width: 58ch; margin-left: auto; margin-right: auto; }

.blv-bandeau-actions { margin-top: calc(var(--blv-pas) * 4); display: flex; justify-content: center; gap: var(--blv-pas); flex-wrap: wrap; }
.blv-bandeau-actions a { display: inline-block; font: 700 0.8rem/1 var(--blv-titres); letter-spacing: 0.08em; text-transform: uppercase; padding: 0.75rem 1.4rem; border: 1.5px solid var(--blv-encre); color: var(--blv-encre); }
.blv-bandeau-actions a:hover { text-decoration: none; opacity: 0.75; }
.blv-bandeau-actions a.blv-action-verte { background: var(--blv-vert); border-color: var(--blv-vert); color: var(--blv-papier); }

/* ---- Ruban d'informations ---- */
.blv-ruban {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1px;
  background: var(--blv-trait);
  border-top: 1px solid var(--blv-trait);
  border-bottom: 1px solid var(--blv-trait);
}

.blv-ruban span { flex: 1 1 200px; background: var(--blv-carton); padding: calc(var(--blv-pas) * 2) var(--blv-pas); text-align: center; font: 400 0.85rem/1.5 var(--blv-titres); color: var(--blv-gris); }
.blv-ruban b { display: block; color: var(--blv-encre); font-size: 0.95rem; letter-spacing: 0.04em; }

/* ---- Sections ---- */
.blv-section { max-width: 68rem; margin: 0 auto; padding: calc(var(--blv-pas) * 8) var(--blv-marge); }
.blv-section-carton { background: var(--blv-carton); max-width: none; }
.blv-section-carton > .blv-cadre { max-width: 68rem; margin: 0 auto; }

.blv-entete-section { text-align: center; margin-bottom: calc(var(--blv-pas) * 6); }
.blv-entete-section small { display: block; font: 700 0.7rem/1 var(--blv-titres); letter-spacing: 0.3em; text-transform: uppercase; color: var(--blv-laiton); margin-bottom: var(--blv-pas); }

/* ---- Rangées bordées (au lieu de cartes) ---- */
.blv-rangees { border-top: 1px solid var(--blv-trait); }

.blv-rangee {
  display: grid;
  grid-template-columns: minmax(140px, 0.35fr) 1fr;
  gap: calc(var(--blv-pas) * 4);
  padding: calc(var(--blv-pas) * 4) 0;
  border-bottom: 1px solid var(--blv-trait);
}

.blv-rangee > h3 { color: var(--blv-vert); margin: 0; }
.blv-rangee p { color: var(--blv-gris); max-width: 62ch; }
.blv-rangee ul { margin: var(--blv-pas) 0 0; padding-left: 1.1rem; color: var(--blv-gris); }
.blv-rangee li { margin-bottom: 0.3rem; }

/* ---- Tableaux ---- */
.blv-tableau { width: 100%; border-collapse: collapse; }
.blv-tableau th, .blv-tableau td { border: 1px solid var(--blv-trait); padding: 0.7rem 0.9rem; text-align: left; }
.blv-tableau th { font: 700 0.72rem/1.4 var(--blv-titres); letter-spacing: 0.1em; text-transform: uppercase; background: var(--blv-carton); }

/* ---- Encadré ---- */
.blv-encadre {
  border: 1.5px solid var(--blv-vert);
  padding: calc(var(--blv-pas) * 4);
  max-width: 62ch;
  margin: 0 auto;
  text-align: center;
  color: var(--blv-gris);
}

/* ---- Formulaire ---- */
.blv-formulaire { max-width: 44rem; margin: 0 auto; display: grid; gap: calc(var(--blv-pas) * 3); }
.blv-ligne-double { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--blv-pas) * 3); }

.blv-formulaire label { display: block; font: 700 0.72rem/1.4 var(--blv-titres); letter-spacing: 0.1em; text-transform: uppercase; color: var(--blv-gris); margin-bottom: 0.35rem; }

.blv-formulaire input, .blv-formulaire select, .blv-formulaire textarea {
  width: 100%;
  background: #fffdf6;
  border: 1px solid var(--blv-trait);
  padding: 0.7rem 0.8rem;
  font: inherit;
  color: var(--blv-encre);
}

.blv-formulaire input:focus, .blv-formulaire select:focus, .blv-formulaire textarea:focus { outline: 2px solid var(--blv-vert); }

.blv-accord { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9rem; color: var(--blv-gris); }
.blv-cache { position: absolute; left: -9999px; }

/* ---- FAQ ---- */
.blv-faq details { border-bottom: 1px solid var(--blv-trait); padding: calc(var(--blv-pas) * 2) 0; }
.blv-faq summary { font: 700 0.95rem/1.4 var(--blv-titres); cursor: pointer; color: var(--blv-encre); }
.blv-faq p { color: var(--blv-gris); margin-top: var(--blv-pas); max-width: 68ch; }

/* ---- Pages légales ---- */
.blv-juridique { max-width: 70ch; margin: 0 auto; }
.blv-juridique h2 { margin-top: calc(var(--blv-pas) * 5); font-size: 1.15rem; }
.blv-juridique p, .blv-juridique li { color: var(--blv-gris); }

/* ---- Pied centré ---- */
.blv-pied { border-top: 3px double var(--blv-trait); background: var(--blv-carton); }
.blv-pied-centre { max-width: 52rem; margin: 0 auto; padding: calc(var(--blv-pas) * 7) var(--blv-marge); text-align: center; }

.blv-pied-enseigne { font: 400 1.3rem/1 var(--blv-titres); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 calc(var(--blv-pas) * 2); }
.blv-pied-enseigne b { color: var(--blv-vert); }
.blv-pied-adresse { font-style: normal; margin-bottom: var(--blv-pas); }
.blv-pied-lignes { color: var(--blv-gris); font-size: 0.92rem; margin-bottom: var(--blv-pas); }

.blv-pied-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.4rem; margin: calc(var(--blv-pas) * 3) 0 0; }
.blv-pied-menu a { font: 700 0.72rem/1.6 var(--blv-titres); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blv-encre); }
.blv-pied-menu-legal a { font-weight: 400; color: var(--blv-gris); text-transform: none; letter-spacing: 0.02em; }

.blv-pied-note { margin-top: calc(var(--blv-pas) * 4); font-size: 0.82rem; color: var(--blv-gris); max-width: 60ch; margin-left: auto; margin-right: auto; }
.blv-pied-copyright { margin-top: calc(var(--blv-pas) * 2); font-size: 0.8rem; color: var(--blv-gris); }

/* ---- Avis cookies (barre basse pleine largeur) ---- */
.blv-cookie-notice {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: calc(var(--blv-pas) * 2);
  background: var(--blv-encre);
  color: var(--blv-papier);
  padding: calc(var(--blv-pas) * 2) var(--blv-marge);
}

.blv-cookie-notice p { margin: 0; font: 400 0.85rem/1.5 var(--blv-titres); max-width: 70ch; }
.blv-cookie-notice a { color: #d8c58a; }
.blv-cookie-boutons { display: flex; gap: var(--blv-pas); }
.blv-cookie-notice button { color: var(--blv-papier); border-color: var(--blv-papier); }

/* ---- Vérification d'âge ---- */
.blv-age-verif, .blv-age-refus {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--blv-pas) * 3);
  background: rgba(244, 241, 232, 0.97);
}

.blv-age-cadre {
  max-width: 26rem;
  border: 2px solid var(--blv-vert);
  outline: 1px solid var(--blv-laiton);
  outline-offset: 5px;
  background: var(--blv-papier);
  padding: calc(var(--blv-pas) * 5);
  text-align: center;
}

.blv-age-cadre p { color: var(--blv-gris); font-size: 0.95rem; }
.blv-age-boutons { display: grid; gap: var(--blv-pas); margin: calc(var(--blv-pas) * 3) 0; }
.blv-age-cadre small { color: var(--blv-gris); font-size: 0.78rem; }

/* ---- 404 ---- */
.blv-egaree { text-align: center; padding: calc(var(--blv-pas) * 10) var(--blv-marge); }

/* ---- Mobile ---- */
@media (max-width: 760px) {
  .blv-masthead { text-align: left; padding-top: calc(var(--blv-pas) * 3); }
  .blv-devise { display: none; }
  .blv-enseigne { flex-direction: row; font-size: 1.25rem; gap: 0.5rem; }
  .blv-losange { width: 26px; height: 26px; }

  .blv-menu-bouton { display: block; }
  .blv-menu { display: none; flex-direction: column; align-items: stretch; gap: 0; text-align: left; }
  .blv-menu.blv-menu-visible { display: flex; }
  .blv-menu a { padding: 0.8rem 0; border-bottom: 1px solid var(--blv-trait); }
  .blv-menu a[aria-current="page"] { border-bottom: 1px solid var(--blv-trait); padding-bottom: 0.8rem; }

  .blv-rangee { grid-template-columns: 1fr; gap: var(--blv-pas); }
  .blv-ligne-double { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
