/*
 * Visual port of mod_fkt_event_pricing's media/css/event-pricing.css — same
 * palette, pill-badge-over-button layout, and custom range slider, ported
 * from UIkit utility classes to this module's own self-contained classes so
 * it doesn't depend on the host template loading UIkit.
 */

.fencingevents-calc {
	margin-top: 0.5rem;
}

.fencingevents-calc__empty {
	color: #666;
}

.fencingevents-calc__type-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 8px;
}

.fencingevents-calc__pill-option {
	padding-top: 10px;
	position: relative;
}

.fencingevents-calc__pill-label {
	background: #0f6b99;
	border: 2px solid #15789c;
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	left: 26px;
	letter-spacing: 0.08em;
	line-height: 1;
	min-width: 118px;
	padding: 5px 16px;
	position: absolute;
	text-align: center;
	text-transform: uppercase;
	top: 0;
	z-index: 1;
}

.fencingevents-calc__pill-button {
	background: #fff;
	border-radius: 50px;
	border: 3px solid #15789c;
	color: #111;
	cursor: pointer;
	font: inherit;
	font-size: clamp(0.88rem, 1.7vw, 1.45rem);
	line-height: 1.15;
	min-height: 64px;
	overflow: hidden;
	padding: 18px 14px 14px;
	text-align: center;
	text-overflow: ellipsis;
	transition: background-color 0.15s, color 0.15s;
	white-space: nowrap;
	width: 100%;
}

.fencingevents-calc__pill-button:focus-visible {
	outline: 2px solid #15789c;
	outline-offset: 2px;
}

.fencingevents-calc__pill-button.is-active {
	background-color: #1e87f0;
	border-color: #1e87f0;
	color: #fff;
}

.fencingevents-calc__calculator {
	margin-top: 30px;
}

.fencingevents-calc__participants-label {
	display: inline-block;
	font-size: 1.55rem;
	font-weight: 700;
	margin-bottom: 18px;
}

.fencingevents-calc__participants-count {
	font-size: 1.55rem;
	font-weight: 700;
	margin-left: 8px;
}

.fencingevents-calc__exclusive-message {
	color: #f0506e;
	display: none;
	font-size: 18px;
	opacity: 0;
	text-align: center;
	transition: opacity 0.5s;
}

.fencingevents-calc__slider {
	--range: calc(var(--max) - var(--min));
	--ratio: calc((var(--value) - var(--min)) / var(--range));
	--sx: calc(0.5 * 28px + var(--ratio) * (100% - 28px));
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	cursor: pointer;
	display: block;
	height: 28px;
	margin: 0;
	outline: none;
	transition: opacity 0.2s;
	width: 100%;
}

.fencingevents-calc__slider::-webkit-slider-runnable-track {
	background: linear-gradient(#0f6b99, #0f6b99) 0 / var(--sx) 100% no-repeat, #d9d9d9;
	border: 0;
	border-radius: 999px;
	box-sizing: border-box;
	height: 8px;
}

.fencingevents-calc__slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background: #0f6b99;
	border: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 4px #fff, 0 2px 8px rgba(0, 0, 0, 0.22);
	box-sizing: border-box;
	cursor: pointer;
	height: 28px;
	margin-top: -10px;
	width: 28px;
}

.fencingevents-calc__slider::-moz-range-track {
	background: #d9d9d9;
	border: 0;
	border-radius: 999px;
	box-sizing: border-box;
	height: 8px;
}

.fencingevents-calc__slider::-moz-range-progress {
	background: #0f6b99;
	border-radius: 999px;
	height: 8px;
}

.fencingevents-calc__slider::-moz-range-thumb {
	background: #0f6b99;
	border: 4px solid #fff;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
	box-sizing: border-box;
	cursor: pointer;
	height: 28px;
	width: 28px;
}

.fencingevents-calc__price {
	font-size: 1.25rem;
	font-weight: 700;
	margin-top: 24px;
}

.fencingevents-calc__price-meta {
	color: rgba(0, 0, 0, 0.55);
	font-size: 0.95rem;
	font-weight: 400;
}

.fencingevents-calc__contact-message {
	display: none;
	font-size: 1.25rem;
	font-weight: 700;
	margin-top: 24px;
}

.fencingevents-calc__book-button {
	align-items: center;
	background: #0f6b99;
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	float: right;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	margin-top: 24px;
	padding: 0.85rem 1.75rem;
	transition: background-color 0.15s, opacity 0.15s;
}

.fencingevents-calc__book-button:hover {
	background: #0c567b;
}

.fencingevents-calc__book-button:focus-visible {
	outline: 2px solid #15789c;
	outline-offset: 2px;
}

.fencingevents-calc__book-button:disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

/* Sits opposite the (float:right) Instant Booking button — a quieter,
   secondary action, same rounded/teal vocabulary as the calculator's other
   controls without competing with the primary CTA. */
.fencingevents-calc__giftcard-button {
	background: #fff;
	border: 2px solid #15789c;
	border-radius: 999px;
	color: #0f6b99;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	margin-top: 24px;
	padding: 0.85rem 1.75rem;
	transition: background-color 0.15s;
}

.fencingevents-calc__giftcard-button:hover {
	background: #eaf4f8;
}

.fencingevents-calc__giftcard-button:focus-visible {
	outline: 2px solid #15789c;
	outline-offset: 2px;
}

@media (max-width: 640px) {
	.fencingevents-calc__type-grid {
		grid-template-columns: 1fr;
	}

	.fencingevents-calc__pill-button {
		font-size: clamp(0.82rem, 4vw, 1.1rem);
		min-height: 58px;
		padding-left: 12px;
		padding-right: 12px;
	}

	.fencingevents-calc__book-button,
	.fencingevents-calc__giftcard-button {
		float: none;
		width: 100%;
	}

	.fencingevents-calc__giftcard-button {
		margin-bottom: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fencingevents-calc__pill-button,
	.fencingevents-calc__book-button,
	.fencingevents-calc__giftcard-button {
		transition: none;
	}
}
