/* Bouton et popup : styles de popup-site-escape-factory.html. Formulaire : styles d'Index.html, préfixés .lchb. */
.lc-btn { display:inline-block; background:#b3001b; color:#fff; font:bold 18px Arial,sans-serif; letter-spacing:1px;
	padding:16px 30px; border:0; border-radius:8px; cursor:pointer; text-decoration:none; }
.lc-btn:hover { background:#7a0012; }
.lc-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:99999; padding:16px; }
.lc-overlay.open { display:flex; align-items:center; justify-content:center; }
.lc-box { position:relative; width:100%; max-width:600px; max-height:92vh; overflow-y:auto; background:#0b0b0b; border-radius:12px; }
/* Le thème (Astra) stylise tous les <button> : on repart de zéro dans la popup. */
.lchb button { box-shadow:none; text-transform:none; line-height:1.3; font-family:Arial, Helvetica, sans-serif; min-height:0; }
.lchb .lc-close { background:none; color:#fff; padding:4px 8px; border:0; border-radius:0; width:auto; }
.lchb .lc-close:hover { background:none; color:#c9a227; }
/* Astra impose « button:hover, button:focus { color:#000 } » : couleurs du formulaire forcées dans tous les états. */
.lchb .lchb-choice, .lchb .lchb-choice:hover, .lchb .lchb-choice:focus, .lchb .lchb-choice:active,
.lchb .lchb-slot, .lchb .lchb-slot:hover, .lchb .lchb-slot:focus, .lchb .lchb-slot:active { color:var(--text); }
.lchb .lchb-choice:hover, .lchb .lchb-choice:focus { background:#101010; border-color:#555; }
.lchb .lchb-choice.sel, .lchb .lchb-choice.sel:hover, .lchb .lchb-choice.sel:focus { background:#1d0a0d; border-color:var(--red); }
.lchb .lchb-fam.sel, .lchb .lchb-fam.sel:hover, .lchb .lchb-fam.sel:focus { background:#1d1808; border-color:var(--fam); }
.lchb .lchb-slot:not(:disabled):hover, .lchb .lchb-slot:focus { background:#101010; border-color:#555; }
.lchb .lchb-slot.sel, .lchb .lchb-slot.sel:hover, .lchb .lchb-slot.sel:focus { background:var(--red2); border-color:var(--red); }
.lchb .lchb-btn, .lchb .lchb-btn:hover, .lchb .lchb-btn:focus, .lchb .lchb-btn:active { color:#fff; background:var(--red); }
.lchb .lchb-btn:hover { background:var(--red2); }
.lc-close { position:absolute; top:8px; right:12px; background:none; border:0; color:#fff; font-size:30px; cursor:pointer; z-index:2; line-height:1; }
.lc-close:focus-visible, .lchb button:focus-visible, .lchb input:focus-visible, .lchb select:focus-visible, .lchb textarea:focus-visible { outline:3px solid #c9a227; outline-offset:2px; }

.lchb { --bg:#0b0b0b; --card:#161616; --line:#2a2a2a; --text:#eee; --muted:#9a9a9a; --red:#b3001b; --red2:#7a0012; --fam:#c9a227; }
.lchb, .lchb * { box-sizing:border-box; }
.lchb-wrap { max-width:560px; margin:0 auto; padding:20px 16px 40px; color:var(--text); font-family:Arial, Helvetica, sans-serif; text-align:left; }
.lchb h1 { font-family:'Nosifer', Impact, sans-serif; font-weight:400; font-size:34px; letter-spacing:2px; color:var(--red); margin:8px 0 10px; text-align:center; line-height:1.4; }
.lchb-sub { text-align:center; color:var(--muted); margin:0 0 18px; font-size:14px; }
.lchb-badge { display:block; text-align:center; background:var(--red2); color:#fff; padding:8px; border-radius:6px; font-weight:bold; margin-bottom:18px; font-size:14px; }
.lchb-badge[hidden] { display:none; }
.lchb-card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; margin-bottom:14px; }
.lchb h2 { font-size:15px; margin:0 0 12px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-family:Arial, Helvetica, sans-serif; text-align:left; }
.lchb-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.lchb-choice { border:2px solid var(--line); border-radius:8px; padding:12px; cursor:pointer; background:#101010; color:var(--text); text-align:left; font-size:14px; }
.lchb-choice b { display:block; font-size:15px; margin-bottom:4px; }
.lchb-choice small { color:var(--muted); }
.lchb-choice.sel { border-color:var(--red); background:#1d0a0d; }
.lchb-fam.sel { border-color:var(--fam); background:#1d1808; }
.lchb .lchb-choice:disabled { opacity:.5; cursor:progress; }
.lchb-loading { display:flex; align-items:center; gap:8px; margin:12px 0 0; color:var(--muted); font-size:14px; }
.lchb-loading[hidden] { display:none; }
.lchb-loading::before { content:''; flex:none; width:16px; height:16px; border:2px solid var(--line); border-top-color:var(--red); border-radius:50%; animation:lchb-spin .8s linear infinite; }
@keyframes lchb-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .lchb-loading::before { animation:none; } }
.lchb label { display:block; font-size:13px; color:var(--muted); margin:10px 0 4px; }
.lchb input, .lchb select, .lchb textarea { width:100%; padding:11px; border-radius:6px; border:1px solid var(--line); background:#0f0f0f; color:var(--text); font-size:15px; }
.lchb-slots { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.lchb-slot { padding:10px 4px; border-radius:6px; border:1px solid var(--line); background:#101010; color:var(--text); cursor:pointer; text-align:center; font-size:15px; }
.lchb-slot small { display:block; font-size:10px; color:var(--muted); margin-top:3px; }
.lchb-slot.sel { border-color:var(--red); background:var(--red2); }
.lchb-slot:disabled { opacity:.35; cursor:not-allowed; text-decoration:line-through; }
.lchb .lchb-check { display:flex; gap:10px; align-items:flex-start; margin-top:12px; font-size:13px; color:var(--text); }
.lchb .lchb-check input { width:auto; margin-top:2px; }
.lchb-total { font-size:18px; text-align:center; margin:14px 0 4px; }
.lchb-total span { color:var(--red); font-weight:bold; }
.lchb-btn { display:block; width:100%; padding:15px; border:0; border-radius:8px; background:var(--red); color:#fff; font-size:16px; font-weight:bold; cursor:pointer; letter-spacing:1px; text-align:center; text-decoration:none; }
.lchb-btn:disabled { opacity:.5; }
.lchb-err { color:#ff6b6b; font-size:14px; margin:10px 0 0; text-align:center; }
.lchb-err:empty { display:none; }
.lchb-muted { color:var(--muted); font-size:13px; }
.lchb-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; } /* champ piège anti-robots */
.lchb-done { text-align:center; }
.lchb-done .lchb-btn { display:inline-block; width:auto; padding:15px 30px; }
.lchb [hidden] { display:none !important; }
