/* ---------- reset-ish scope ---------- */
.lw-root, .lw-root * { box-sizing: border-box; }

/* ---------- overlay / popup ---------- */
.lw-overlay[hidden] { display: none; }
.lw-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	overflow-y: auto;
}
html.lw-open { overflow: hidden; }

/* ---------- panel ---------- */
.lw-panel {
	position: relative;
	background: var(--lw-bg, #28b7c4);
	color: var(--lw-fg, #fff);
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
	width: 100%;
	max-width: 900px;
	display: flex;
	align-items: stretch;
	overflow: hidden;
}
.lw-mode-inline .lw-panel { margin: 0 auto; box-shadow: 0 8px 30px rgba(0,0,0,.15); }

.lw-close {
	position: absolute;
	top: 10px;
	right: 14px;
	background: transparent;
	border: 0;
	color: var(--lw-fg, #fff);
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	opacity: 0.8;
	z-index: 2;
}
.lw-close:hover { opacity: 1; }

/* ---------- wheel side ---------- */
.lw-wheel-side {
	flex: 1 1 45%;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	position: relative;
}
.lw-wheel-wrap {
	position: relative;
	width: 100%;
	max-width: 420px;
	aspect-ratio: 1 / 1;
}
.lw-canvas {
	width: 100%;
	height: 100%;
	display: block;
	filter: drop-shadow(0 6px 14px rgba(0,0,0,.25));
}
.lw-hub {
	position: absolute;
	top: 50%; left: 50%;
	width: 12%; height: 12%;
	transform: translate(-50%, -50%);
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
/* pointer sits at 3 o'clock, pointing left into the wheel */
.lw-pointer {
	position: absolute;
	top: 50%; right: -6px;
	transform: translateY(-50%);
	width: 0; height: 0;
	border-top: 16px solid transparent;
	border-bottom: 16px solid transparent;
	border-right: 26px solid var(--lw-pointer, #333);
	filter: drop-shadow(-2px 2px 2px rgba(0,0,0,.25));
	z-index: 2;
}

/* ---------- form side ---------- */
.lw-form-side {
	flex: 1 1 55%;
	min-width: 0;
	padding: 32px 34px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.lw-title { margin: 0 0 8px; font-size: 30px; font-weight: 800; letter-spacing: .5px; color: var(--lw-fg,#fff); }
.lw-subtitle { margin: 0 0 18px; font-size: 15px; line-height: 1.5; opacity: .95; color: var(--lw-fg,#fff); }

.lw-row { display: flex; gap: 10px; margin-bottom: 12px; }
.lw-row .lw-input { flex: 1 1 0; min-width: 0; }
.lw-bday .lw-input { text-align: center; }

.lw-label { display: block; font-size: 14px; margin: 4px 0 6px; color: var(--lw-fg,#fff); opacity:.95; }

.lw-input {
	width: 100%;
	padding: 12px 14px;
	border: 0;
	border-radius: 8px;
	font-size: 15px;
	background: #fff;
	color: #333;
	margin-bottom: 12px;
}
.lw-input:focus { outline: 3px solid rgba(255,255,255,.6); }
.lw-row .lw-input { margin-bottom: 0; }

/* Hide number input spinners for a cleaner look */
.lw-bday .lw-input::-webkit-outer-spin-button,
.lw-bday .lw-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lw-bday .lw-input { -moz-appearance: textfield; }

.lw-consent { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; margin: 4px 0 12px; color: var(--lw-fg,#fff); }
.lw-consent input { margin-top: 3px; }

.lw-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.lw-error {
	background: rgba(255,255,255,.95);
	color: #b32d2e;
	border-radius: 6px;
	padding: 8px 12px;
	font-size: 14px;
	margin-bottom: 12px;
}

.lw-cta {
	width: 100%;
	padding: 15px 18px;
	border: 0;
	border-radius: 8px;
	background: var(--lw-cta, #e84d6b);
	color: var(--lw-cta-fg, #fff);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .5px;
	cursor: pointer;
	transition: filter .15s ease;
}
.lw-cta:hover { filter: brightness(1.06); }
.lw-cta:disabled { opacity: .7; cursor: default; }
.lw-cta.lw-loading { position: relative; color: transparent; }
.lw-cta.lw-loading::after {
	content: "";
	position: absolute; top: 50%; left: 50%;
	width: 20px; height: 20px; margin: -10px 0 0 -10px;
	border: 3px solid rgba(255,255,255,.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: lw-spin 0.7s linear infinite;
}
@keyframes lw-spin { to { transform: rotate(360deg); } }

.lw-footer { margin: 14px 0 0; font-size: 12px; opacity: .8; font-style: italic; text-align: center; color: var(--lw-fg,#fff); }

/* ---------- result ---------- */
.lw-result { text-align: center; }
.lw-result-heading { margin: 0 0 8px; font-size: 26px; font-weight: 800; color: var(--lw-fg,#fff); }
.lw-result-message { margin: 0 0 16px; font-size: 15px; opacity: .95; color: var(--lw-fg,#fff); }
.lw-voucher { }
.lw-voucher-code {
	display: inline-block;
	background: #fff;
	color: #333;
	border: 2px dashed var(--lw-cta,#e84d6b);
	border-radius: 8px;
	padding: 12px 24px;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: 2px;
}

/* ---------- floating handle ---------- */
.lw-handle {
	position: fixed;
	bottom: 18px;
	z-index: 999990;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--lw-handle, #e84d6b);
	color: #fff;
	border: 0;
	border-radius: 30px;
	padding: 11px 18px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.lw-handle:hover { filter: brightness(1.05); }
.lw-handle-bottom-left { left: 18px; }
.lw-handle-bottom-right { right: 18px; }
.lw-handle-icon { font-size: 18px; }

/* ---------- responsive ---------- */
@media ( max-width: 760px ) {
	.lw-panel { flex-direction: column; max-width: 460px; }
	.lw-wheel-side { padding: 22px 22px 0; }
	.lw-wheel-wrap { max-width: 300px; }
	.lw-form-side { padding: 22px 24px 26px; }
	.lw-title { font-size: 24px; }
	.lw-handle-label { display: none; }
	.lw-handle { padding: 12px; }
}
