/* =========================================================================
   Email signup (inc/subscribe.php, assets/js/subscribe.js).
   .bc-sub-form  one form, used everywhere
   .bc-sub       slide-in: card bottom right on desktop, bottom sheet on phones
   .bc-subf      band at the top of the dark site footer
   .bc-subi      inline card ([bc_subscribe], no deposit hub)
   ========================================================================= */

/* Shared form ---------------------------------------------------------------- */
.bc-sub-form { color: var(--bc-text); font-size: 14px; line-height: 1.45; }
.bc-sub-form *, .bc-sub-form *::before, .bc-sub-form *::after { box-sizing: border-box; }
.bc-sub-form [hidden] { display: none !important; }

.bc-sub-form__label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--bc-ink); }
.bc-sub-form__row { display: flex; gap: 8px; }
.bc-sub-form input.bc-sub-form__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	margin: 0;
	padding: 0 12px;
	border: 1.5px solid var(--bc-border-strong);
	border-radius: 8px;
	background: #fff;
	box-shadow: none;
	font: inherit;
	font-size: 16px; /* 16px stops iOS from zooming into the field */
	color: var(--bc-ink);
}
.bc-sub-form input.bc-sub-form__input:focus { outline: none; border-color: var(--bc-aubergine); box-shadow: var(--bc-focus); }
.bc-sub-form input.bc-sub-form__input[aria-invalid="true"] { border-color: var(--bc-red); }
.bc-sub-form__submit { flex: none; }
.bc-sub-form__submit:disabled { opacity: .75; cursor: progress; }

.bc-sub-form__consent { margin: 10px 0 0 !important; font-size: 12px; line-height: 1.45; color: var(--bc-muted); }
.bc-sub-form__consent a { color: var(--bc-aubergine) !important; text-decoration: underline; text-underline-offset: 2px; }
.bc-sub-form__error { margin: 10px 0 0 !important; font-size: 13px; font-weight: 600; color: var(--bc-red); }
.bc-sub-form__done { margin: 0; }
.bc-sub-form__done p { margin: 0; }
.bc-sub-form__done-title { margin-bottom: 4px !important; font-size: 16px; font-weight: 700; color: var(--bc-ink); }

/* Honeypot: off-screen for people, still in the form for bots. */
.bc-sub-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Slide-in ------------------------------------------------------------------- */
.bc-sub {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990; /* under the cookie banner, over sticky page bars */
	box-sizing: border-box;
	width: 384px;
	max-width: calc(100vw - 32px);
	padding: 22px 22px 18px;
	border: 1px solid var(--bc-border);
	border-radius: 16px;
	background: var(--bc-white);
	box-shadow: 0 18px 48px rgba(47, 7, 55, .18), 0 2px 6px rgba(47, 7, 55, .08);
	color: var(--bc-text);
	font-size: 14px;
	line-height: 1.45;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .24s ease, transform .24s ease;
}
.bc-sub[hidden] { display: none; }
.bc-sub.is-open { opacity: 1; transform: none; }

.bc-sub__close {
	position: absolute;
	top: 6px;
	right: 6px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--bc-muted);
	font-size: 18px;
	cursor: pointer;
}
.bc-sub__close:hover { background: var(--bc-mist); color: var(--bc-ink); }
.bc-sub__close:focus-visible { outline: none; box-shadow: var(--bc-focus); }

.bc-sub__title { margin: 0 36px 6px 0; font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--bc-ink); }
.bc-sub__desc { margin: 0 0 14px; color: var(--bc-muted); }
.bc-sub:has(.bc-sub-form__done:not([hidden])) .bc-sub__title,
.bc-sub:has(.bc-sub-form__done:not([hidden])) .bc-sub__desc { display: none; }

@media (max-width: 600px) {
	.bc-sub {
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		max-width: none;
		padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
		border-width: 1px 0 0;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -10px 32px rgba(47, 7, 55, .16);
	}
	.bc-sub__desc { margin-bottom: 12px; }
	/* Placeholder + fine print carry it on phones; the label stays for screen readers. */
	.bc-sub .bc-sub-form__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.bc-sub .bc-sub-form__row { flex-direction: column; }
	.bc-sub .bc-sub-form__submit { width: 100%; }
	/* Casino reviews keep their sticky "Visit casino" bar visible below the sheet. */
	.bc-sub--raised { bottom: 88px; margin: 0 12px; border-width: 1px; border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.bc-sub { transition: none; transform: none; }
}

/* Footer band (dark) --------------------------------------------------------- */
.bc-subf { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 24px 48px; align-items: start; margin: -24px 0 56px; padding: 0 0 48px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.bc-subf__title { margin: 0 0 6px !important; font-size: 22px; font-weight: 700; line-height: 1.3; color: #fff; }
.bc-subf__desc { max-width: 460px; }
.bc-subf .bc-sub-form { color: rgba(255, 255, 255, .78); }
.bc-subf .bc-sub-form__label { color: #fff; }
.bc-subf .bc-sub-form input.bc-sub-form__input { border-color: transparent; }
.bc-subf .bc-sub-form__submit { border-color: #fff; background: #fff; color: var(--bc-aubergine) !important; }
.bc-subf .bc-sub-form__submit:hover { background: var(--bc-purple-100); }
.bc-subf .bc-sub-form__consent { color: rgba(255, 255, 255, .6); }
.bc-subf .bc-sub-form__consent a { color: #fff !important; }
.bc-subf .bc-sub-form__error { color: #ffb4b4; }
.bc-subf .bc-sub-form__done-title { color: #fff; }
@media (max-width: 767px) {
	.bc-subf { grid-template-columns: 1fr; margin-top: -32px; padding-bottom: 40px; }
	.bc-subf__title { font-size: 20px; }
}
@media (max-width: 480px) {
	.bc-subf .bc-sub-form__row { flex-direction: column; }
	.bc-subf .bc-sub-form__submit { width: 100%; }
}

/* Inline card ---------------------------------------------------------------- */
.bc-subi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 20px 40px; align-items: center; margin: 32px 0; padding: 28px 32px; border: 1px solid var(--bc-border); border-radius: 16px; background: var(--bc-lilac); }
.bc-subi__title { margin: 0 0 6px !important; font-size: 20px; font-weight: 700; line-height: 1.3; color: var(--bc-ink); }
.bc-subi__desc { margin: 0 !important; color: var(--bc-muted); }
.bc-subi .bc-sub-form__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 767px) {
	.bc-subi { grid-template-columns: 1fr; padding: 20px; }
	.bc-subi .bc-sub-form__row { flex-direction: column; }
	.bc-subi .bc-sub-form__submit { width: 100%; }
}
.bc-ndb__signup { padding-top: 0; }
.bc-ndb__signup .bc-subi { margin: 0; background: var(--bc-white); }
