/* ============================================================================
   IMPERIALI — Legal layer: age-gate, cookie banner, legal bar
   Visibility is driven by classes on <html> set by an inline no-flash script:
   .imp-age-ok  (18+ confirmed)   .imp-cookie-ok (cookie choice made)
   ========================================================================== */

/* --- 18+ AGE GATE --------------------------------------------------------- */
/* Delicate & near-imperceptible: a discreet card at the bottom — the site is
   fully visible and usable behind it. (Softer than a blocking gate; the 18+
   confirmation at checkout in Termeni remains the firm legal safeguard.) */
.imp-agegate {
	position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%);
	z-index: 100000; width: calc(100% - 2rem); max-width: 560px;
	background: none; padding: 0;
}
.imp-age-ok .imp-agegate { display: none; }
.imp-agegate__box {
	display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
	text-align: left;
	background: linear-gradient(180deg, rgba(23,19,15,.96), rgba(16,14,11,.96));
	border: 1px solid var(--imp-line);
	border-radius: 6px;
	padding: 1rem 1.2rem;
	color: var(--imp-parchment);
	box-shadow: 0 18px 50px rgba(0,0,0,.45);
	backdrop-filter: blur(6px);
}
.imp-agegate__emblem { flex: 0 0 auto; width: 34px; height: 34px; margin: 0; }
.imp-agegate__box h2 {
	flex: 1 1 100%;
	font-family: var(--imp-font-display); text-transform: uppercase; letter-spacing: .05em;
	font-size: .95rem; margin: 0; color: var(--imp-champagne);
}
.imp-agegate__box p { flex: 1 1 200px; color: rgba(245,241,232,.8); line-height: 1.4; font-size: .8rem; margin: 0; }
.imp-agegate__actions { display: flex; gap: .5rem; flex: 0 0 auto; }
.imp-agegate__actions .imp-btn { padding: .55em 1em; font-size: .72rem; }
.imp-agegate__law { flex: 1 1 100%; font-size: .66rem; color: var(--imp-smoke); margin: .3rem 0 0; }

/* --- COOKIE CONSENT ------------------------------------------------------- */
.imp-cookie {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 99990;
	display: none;
	align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
	padding: 1rem 1.4rem;
	background: rgba(20,18,16,.97);
	border-top: 1px solid var(--imp-line);
	color: rgba(245,241,232,.9);
}
.imp-age-ok:not(.imp-cookie-ok) .imp-cookie { display: flex; }
.imp-cookie__text { margin: 0; font-size: .9rem; max-width: 62ch; }
.imp-cookie__text a { color: var(--imp-champagne); }
.imp-cookie__actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.imp-cookie .imp-btn { padding: .7em 1.2em; font-size: .72rem; }

/* --- LEGAL BAR ------------------------------------------------------------ */
.imp-legalbar { background: #0c0a08; color: rgba(245,241,232,.6); padding: .9rem 1.2rem; }
.imp-legalbar__inner {
	max-width: 1180px; margin: 0 auto;
	display: flex; gap: .8rem 1.5rem; flex-wrap: wrap; align-items: center; justify-content: space-between;
	font-size: .76rem;
}
.imp-legalbar__co { letter-spacing: .02em; }
.imp-legalbar__links { display: flex; gap: .5rem 1.1rem; flex-wrap: wrap; }
.imp-legalbar__links a { color: rgba(245,241,232,.68); text-decoration: none; }
.imp-legalbar__links a:hover { color: var(--imp-gold); }

@media (max-width: 640px) {
	.imp-cookie { flex-direction: column; align-items: stretch; text-align: center; }
	.imp-cookie__actions { justify-content: center; }
	.imp-legalbar__inner { justify-content: center; text-align: center; }
}

/* --- Withdrawal / legal forms -------------------------------------------- */
.imp-form { max-width: 680px; margin: 1.5rem auto; }
.imp-form h3 {
	font-family: var(--imp-font-display); text-transform: uppercase; letter-spacing: .05em;
	font-size: 1.3rem; margin: 0 0 .8rem; color: var(--imp-ink);
}
.imp-form label { display: block; margin: 0 0 1rem; font-weight: 600; font-size: .9rem; color: var(--imp-ink); }
.imp-form input, .imp-form textarea {
	display: block; width: 100%; margin-top: .35rem;
	padding: .7em .85em; font: inherit; font-weight: 400;
	border: 1px solid var(--imp-line); border-radius: 2px; background: #fff; color: var(--imp-ink);
}
.imp-form input:focus, .imp-form textarea:focus { outline: 2px solid var(--imp-gold); outline-offset: 1px; border-color: var(--imp-gold); }
.imp-form__row { display: flex; gap: 1rem; }
.imp-form__row label { flex: 1; }
.imp-form .imp-btn { border: 1px solid var(--imp-gold); cursor: pointer; }
.imp-form__err { color: #a12; font-weight: 600; margin: 0 0 1rem; }
.imp-form__decl { font-family: var(--imp-font-serif); font-style: italic; font-size: 1.15rem; color: var(--imp-ink); }
.imp-form__summary { list-style: none; margin: 0 0 1.4rem; padding: 0; border-top: 1px solid var(--imp-line); }
.imp-form__summary li { display: flex; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--imp-line); }
.imp-form__summary li span { flex: 0 0 130px; color: var(--imp-smoke); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.imp-form__actions-row { display: flex; gap: .7rem; flex-wrap: wrap; align-items: center; }
.imp-form--ok { background: var(--imp-parchment); border: 1px solid var(--imp-line); border-left: 3px solid var(--imp-gold); padding: 1.4rem 1.6rem; border-radius: 3px; }
@media (max-width: 560px) { .imp-form__row { flex-direction: column; gap: 0; } }
