/* Casino Rivabelle — 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 {
  --crb-papier: #f4f1e8;
  --crb-carton: #ede8db;
  --crb-encre: #26291f;
  --crb-gris: #5d6152;
  --crb-laiton: #7a601f;
  --crb-vert: #2e4b3f;
  --crb-trait: #cfc8b4;
  --crb-titres: 'Century Gothic', 'Avenir Next', Futura, 'Trebuchet MS', sans-serif;
  --crb-texte: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --crb-marge: clamp(1rem, 5vw, 5rem);
  --crb-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.crb-bloque { overflow: hidden; }

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

h1, h2, h3 {
  font-family: var(--crb-titres);
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 calc(var(--crb-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(--crb-pas) * 2); }
p:last-child { margin-bottom: 0; }

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

button {
  font: 700 0.8rem/1 var(--crb-titres);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--crb-encre);
  background: none;
  border: 1.5px solid var(--crb-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); }
.crb-bouton-plein { background: var(--crb-vert); border-color: var(--crb-vert); color: var(--crb-papier); }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ---- Avis cookies (barre basse pleine largeur) ---- */
.crb-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(--crb-pas) * 2);
  background: var(--crb-encre);
  color: var(--crb-papier);
  padding: calc(var(--crb-pas) * 2) var(--crb-marge);
}

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

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

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

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

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

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

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

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

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