/* HELSOLA — Booking modal & checkout */

.helsola-test-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 1rem !important;
	padding: 0.5rem 0.75rem;
	background: #fff4f6;
	color: #520d4e;
	border: 1px solid #f2cde0;
	border-radius: 13px;
	font-size: 0.8125rem;
	line-height: 1.4;
}

.helsola-test-banner[hidden] {
	display: none !important;
}

.helsola-test-banner__text {
	flex: 1;
}

.helsola-test-banner__dismiss {
	appearance: none;
	border: none;
	background: transparent;
	color: inherit;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	padding: 0 0.25rem;
	opacity: 0.7;
}

.helsola-test-banner__dismiss:hover {
	opacity: 1;
}

.helsola-booking-modal .helsola-test-banner {
	margin: 0 1.25rem 0.75rem;
}

.helsola-booking-modal {
	position: fixed;
	inset: 0;
	z-index: 10001;
	display: flex;
	align-items: stretch;
	justify-content: center;
	padding: 0;
}

.helsola-booking-modal[hidden] {
	display: none !important;
}

.helsola-booking-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.45);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.helsola-booking-modal.is-open .helsola-booking-modal__backdrop {
	opacity: 1;
}

.helsola-booking-modal__panel {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	max-height: 100dvh;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateY(-20px) scale(0.98);
	transition:
		opacity 0.35s ease,
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.helsola-booking-modal.is-open .helsola-booking-modal__panel {
	opacity: 1;
	transform: translateY(0) scale(1);
}

@media (min-width: 600px) {
	.helsola-booking-modal {
		align-items: center;
		padding: 2rem;
	}

	.helsola-booking-modal__panel {
		width: 100%;
		max-width: 58rem;
		height: auto;
		max-height: min(90dvh, 860px);
		border: 1px solid #d9e1ec;
		border-radius: 18px;
		box-shadow: 0 24px 80px rgba(15, 23, 42, 0.18);
	}
}

@media (prefers-reduced-motion: reduce) {
	.helsola-booking-modal__backdrop,
	.helsola-booking-modal__panel {
		transition: none;
	}

	.helsola-booking-modal.is-open .helsola-booking-modal__panel {
		transform: none;
	}
}

.helsola-booking-modal__header {
	flex-shrink: 0;
	padding: 0.85rem 1.25rem;
	border-bottom: 1px solid #e2e8f0;
	background: #fff;
}

.helsola-booking-modal__header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.helsola-booking-modal__title {
	margin: 0;
	font-size: 1.625rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: #183153;
}

.helsola-booking-modal__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	flex-shrink: 0;
	border: 1px solid #e2e8f0;
	border-radius: 9999px;
	background: #f8fafc;
	color: var(--helsola-primary);
	transition:
		border-color 0.15s ease,
		background-color 0.15s ease,
		box-shadow 0.15s ease;
}

.helsola-booking-modal .helsola-close-btn.helsola-booking-modal__close {
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid #e2e8f0;
	background: #f8fafc;
	color: var(--helsola-primary);
}

.helsola-booking-modal__close:hover,
.helsola-booking-modal__close:focus-visible {
	border-color: #cbd5e1;
	background: #f1f5f9;
	outline: 2px solid #d8e2f3;
	outline-offset: 0;
	transform: none;
}

/* Progress steps — modal, checkout, confirmation */
.helsola-progress-steps {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	padding: 0.5rem;
	border: 1px solid #dbe4f0;
	border-radius: 1rem;
	background: linear-gradient(180deg, #f8fbff 0%, #f3f7fc 100%);
}

.helsola-progress-steps__step {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 3rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid transparent;
	border-radius: 0.85rem;
	background: transparent;
	transition:
		background-color 0.15s ease,
		border-color 0.15s ease,
		box-shadow 0.15s ease;
}

.helsola-progress-steps__step.is-active {
	border-color: color-mix(in srgb, var(--helsola-primary) 18%, transparent);
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--helsola-primary) 10%, transparent) 0%,
		color-mix(in srgb, var(--helsola-primary) 16%, transparent) 100%
	);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--helsola-primary) 8%, transparent) inset;
}

.helsola-progress-steps__step.is-done {
	background-color: rgba(31, 157, 104, 0.06);
	border-color: rgba(31, 157, 104, 0.12);
}

.helsola-progress-steps__number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	flex-shrink: 0;
	border: 1px solid #cfd9e8;
	border-radius: 9999px;
	background: #fff;
	color: var(--helsola-primary);
	font-size: 0.8125rem;
	font-weight: 600;
}

.helsola-progress-steps__step.is-active .helsola-progress-steps__number {
	border-color: var(--helsola-primary);
	background: var(--helsola-primary);
	color: #fff;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--helsola-primary) 10%, transparent);
}

.helsola-progress-steps__step.is-done .helsola-progress-steps__number {
	border-color: #1f9d68;
	background: #1f9d68;
	color: #fff;
}

.helsola-progress-steps__text {
	display: flex;
	flex-direction: column;
	gap: 0.05rem;
	min-width: 0;
}

.helsola-progress-steps__label {
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #1f3558;
}

.helsola-progress-steps__subtitle {
	font-size: 0.6875rem;
	line-height: 1.2;
	color: #6b7c93;
}

.helsola-progress-steps__divider {
	width: 0.65rem;
	height: 1px;
	flex-shrink: 0;
	background: linear-gradient(90deg, #d5dfed 0%, #c6d4e9 100%);
}

.helsola-checkout__header .helsola-progress-steps {
	margin-bottom: 1.25rem;
}

@media (max-width: 992px) {
	.helsola-booking-modal__title {
		font-size: 1.5rem;
	}

	.helsola-progress-steps {
		gap: 0.4rem;
		padding: 0.45rem;
	}

	.helsola-progress-steps__step {
		min-height: 2.85rem;
		padding: 0.6rem 0.7rem;
	}

	.helsola-progress-steps__label {
		font-size: 0.8125rem;
	}

	.helsola-progress-steps__subtitle {
		font-size: 0.625rem;
	}

	.helsola-progress-steps__divider {
		width: 0.45rem;
	}

	.helsola-booking-form__footer-text {
		display: none;
	}
}

@media (max-width: 599px) {
	.helsola-booking-modal {
		padding: 0;
		align-items: stretch;
	}

	.helsola-booking-modal__panel {
		width: 100%;
		height: 100%;
		min-height: 100dvh;
		max-height: 100dvh;
		border: none;
		border-radius: 0;
		box-shadow: none;
	}
}

@media (max-width: 480px) {

	.helsola-booking-modal__header {
		padding: 1rem;
	}

	.helsola-booking-modal__title {
		font-size: 1.375rem;
	}

	.helsola-progress-steps {
		flex-direction: column;
		align-items: stretch;
		padding: 0.6rem;
	}

	.helsola-progress-steps__step {
		width: 100%;
	}

	.helsola-progress-steps__divider {
		width: 100%;
		height: 1px;
	}
}

.helsola-booking-form {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.helsola-booking-form__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 1.25rem;
	-webkit-overflow-scrolling: touch;
}

.helsola-booking-section {
	margin-bottom: 1rem;
}

.helsola-booking-section__header {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
	padding-bottom: 0.625rem;
	border-bottom: 1px solid #e2e8f0;
}

.helsola-booking-section__title {
	margin: 0;
	font-size: 1.3125rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: #1e3558;
}

.helsola-booking-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.helsola-booking-form__extra {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-top: 1rem;
}

@media (min-width: 480px) {
	.helsola-booking-form__grid,
	.helsola-booking-form__extra {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.helsola-booking-form__footer {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem;
	padding: 0.9rem 1.25rem;
	margin-top: 0;
	border-top: 1px solid #e2e8f0;
	background: #f8fafc;
}

.helsola-booking-form__footer-info {
	margin-right: auto;
	text-align: left;
}

.helsola-booking-form__footer-text {
	font-size: 0.75rem;
	line-height: 1.4;
	color: #64748b;
}

.helsola-booking-form__footer .helsola-btn,
.helsola-btn--booking {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 3.125rem;
	min-width: 13.75rem;
	padding: 0 2rem;
	border-radius: 0.9rem;
	font-size: 1rem;
	font-weight: 600;
}

.helsola-btn--booking {
	background: var(--helsola-primary);
	color: #fff;
	transition:
		background-color 0.15s ease,
		box-shadow 0.15s ease;
}

.helsola-btn--booking:hover,
.helsola-btn--booking:focus-visible {
	background: color-mix(in srgb, var(--helsola-primary) 88%, #000);
	outline: 2px solid color-mix(in srgb, var(--helsola-primary) 25%, #fff);
	outline-offset: 0;
}

.helsola-btn--booking:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.helsola-booking-form__footer .helsola-btn--outline {
	border-width: 2px;
}

@media (max-width: 480px) {
	.helsola-booking-form__footer {
		flex-direction: column;
		align-items: stretch;
	}

	.helsola-booking-form__footer-info {
		margin-right: 0;
		width: 100%;
	}

	.helsola-booking-form__footer .helsola-btn,
	.helsola-btn--booking {
		width: 100%;
		min-width: 100%;
	}

	.helsola-booking-section__title,
	.helsola-checkout-section__title,
	.helsola-checkout-summary__title {
		font-size: 1.125rem;
	}
}

.helsola-form-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.helsola-form-row > .helsola-form-group {
	margin-bottom: 0;
}

@media (min-width: 480px) {
	.helsola-form-row {
		grid-template-columns: 1fr 1fr;
	}
}

.helsola-form-row--contact:has(#helsola-phone-field[hidden]) .helsola-form-group:first-child {
	grid-column: 1 / -1;
}

.helsola-form-group {
	margin-bottom: 1rem;
}

.helsola-form-group label {
	display: block;
	margin-bottom: 0.375rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #3d4654;
}

.helsola-required {
	color: #c53030;
}

.helsola-input,
.helsola-textarea,
.helsola-select {
	width: 100%;
	padding: 0.625rem 0.75rem;
	border: 1px solid #d1d9e0;
	border-radius: 8px;
	font-size: 1rem;
	font-family: inherit;
	color: #1a202c;
	background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.helsola-input:focus,
.helsola-textarea:focus,
.helsola-select:focus {
	outline: none;
	border-color: var(--helsola-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--helsola-primary) 15%, transparent);
}

.helsola-input.is-invalid,
.helsola-textarea.is-invalid,
.helsola-select.is-invalid,
.helsola-booking-modal .helsola-input.is-invalid,
.helsola-booking-modal .helsola-textarea.is-invalid,
.helsola-booking-modal .helsola-select.is-invalid,
.helsola-checkout .helsola-input.is-invalid,
.helsola-checkout .helsola-textarea.is-invalid,
.helsola-checkout .helsola-select.is-invalid {
	border-color: #c53030 !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, #c53030 18%, transparent) !important;
}

.helsola-input.is-invalid:focus,
.helsola-textarea.is-invalid:focus,
.helsola-select.is-invalid:focus {
	border-color: #c53030;
	box-shadow: 0 0 0 3px color-mix(in srgb, #c53030 24%, transparent);
}

.helsola-form-group.is-invalid > label,
.helsola-booking-modal .helsola-form-group.is-invalid > label,
.helsola-checkout .helsola-form-group.is-invalid > label {
	color: #9b2c2c;
}

.helsola-checkbox.is-invalid {
	padding: 0.75rem 1rem;
	border: 1px solid #c53030;
	border-radius: 8px;
	background: #fff5f5;
}

.helsola-field-error {
	margin: 0.375rem 0 0;
	font-size: 0.8125rem;
	color: #c53030;
	line-height: 1.4;
}

.helsola-textarea {
	min-height: 80px;
	resize: vertical;
}

.helsola-certification-section {
	margin-bottom: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 0.9rem;
	border: 1px solid #dbe4f0;
	border-radius: 1rem;
	background: linear-gradient(180deg, #fbfcfe 0%, #f6f8fb 100%);
}

.helsola-certification-section[hidden] {
	display: none !important;
}

.helsola-certification-section.is-invalid {
	border-color: #c53030;
	background: #fff5f5;
	box-shadow: 0 0 0 3px color-mix(in srgb, #c53030 18%, transparent);
}

.helsola-certification-section__header {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.helsola-certification-section__description {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #64748b;
}

.helsola-certification-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	align-items: stretch;
}

.helsola-certification-option {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	box-sizing: border-box;
	min-width: 0;
	min-height: 4.25rem;
	height: 100%;
	padding: 0.9rem 1rem;
	border: 2px solid #e2e8f0;
	border-radius: 0.875rem;
	background: #fff;
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
	cursor: pointer;
	transition:
		border-color 0.15s ease,
		background-color 0.15s ease;
}

.helsola-certification-option:hover {
	border-color: #9db2d3;
}

.helsola-certification-option:has(input:checked) {
	border-color: rgba(31, 63, 109, 0.95);
	background: linear-gradient(180deg, #fbfcfe 0%, #f6f8fb 100%);
}

.helsola-certification-option input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.helsola-certification-option__title {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: -0.025em;
	color: #213656;
}

.helsola-certification-option__text {
	flex: 1 1 auto;
	min-width: 0;
}

.helsola-certification-option__price-group,
.helsola-certification-option__state {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	min-width: 1.8rem;
	min-height: 1.8rem;
}

.helsola-certification-option__price-group {
	gap: 0.75rem;
}

.helsola-certification-option__price {
	font-size: 1rem;
	font-weight: 400;
	color: var(--helsola-primary);
	white-space: nowrap;
}

.helsola-certification-option__state {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.75rem;
	border: 1px solid #e2e8f0;
	border-radius: 9999px;
	background: #f8fafc;
	font-size: 0.75rem;
	font-weight: 600;
	color: #64748b;
	white-space: nowrap;
}

.helsola-certification-option__info {
	position: relative;
	display: inline-flex;
}

.helsola-certification-option__info-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8rem;
	height: 1.8rem;
	padding: 0;
	border: 1px solid #e2e8f0;
	border-radius: 9999px;
	background: #f8fafc;
	color: var(--helsola-primary);
	cursor: pointer;
}

.helsola-certification-option__info-btn:hover,
.helsola-certification-option__info-btn:focus-visible {
	background: color-mix(in srgb, var(--helsola-primary) 8%, #fff);
}

.helsola-certification-option__info-popover {
	position: absolute;
	right: 0;
	bottom: calc(100% + 0.5rem);
	z-index: 2;
	display: none;
	width: min(16rem, 70vw);
	padding: 0.625rem 0.75rem;
	border-radius: 8px;
	background: #1f2937;
	color: #fff;
	font-size: 0.8125rem;
	line-height: 1.45;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

.helsola-certification-option__info-popover.is-open {
	display: block;
}

@media (max-width: 480px) {
	.helsola-certification-options {
		grid-template-columns: minmax(0, 1fr);
	}
}

.helsola-checkout-summary__ticket-lines {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.35rem;
}

.helsola-checkout-summary__ticket-main {
	font-size: 0.9375rem;
}

.helsola-checkout-summary__ticket-category-price {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-end;
	gap: 0.35rem 0.5rem;
	max-width: 100%;
	font-weight: 700;
}

.helsola-checkout-summary__ticket-code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.8125rem;
	color: #4a5568;
}

.helsola-checkout-summary__ticket-addon {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--helsola-primary);
}

.helsola-checkout-summary__ticket-addon-title {
	font-weight: 700;
}

.helsola-checkout-summary__ticket-addon strong {
	font-size: 0.875rem;
	font-weight: 700;
}

.helsola-participant-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	align-items: stretch;
}

.helsola-participant-option {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	box-sizing: border-box;
	min-width: 0;
	min-height: 6rem;
	height: 100%;
	padding: 0.85rem;
	border: 2px solid #e2e8f0;
	border-radius: 0.875rem;
	background: #fff;
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
	cursor: pointer;
	transition:
		border-color 0.15s ease,
		background-color 0.15s ease;
}

@media (min-width: 768px) {
	.helsola-participant-options {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.helsola-participant-option:hover {
	border-color: #9db2d3;
}

.helsola-participant-option:has(input:checked) {
	border-color: rgba(31, 63, 109, 0.95);
	background: linear-gradient(180deg, #fbfcfe 0%, #f6f8fb 100%);
}

.helsola-participant-option__top {
	display: flex;
	flex: 1 1 auto;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	min-height: 2rem;
}

.helsola-participant-option__text {
	flex: 1 1 auto;
	min-width: 0;
}

.helsola-participant-option__title {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: -0.025em;
	color: #1b3558;
	word-break: break-word;
}

.helsola-participant-option__check {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	flex-shrink: 0;
	border: 1px solid #cbd5e1;
	border-radius: 9999px;
	background: #fff;
	color: #fff;
}

.helsola-participant-option__check svg {
	display: none;
	width: 1rem;
	height: 1rem;
}

.helsola-participant-option:has(input:checked) .helsola-participant-option__check {
	border-color: var(--theme-button-background-initial-color);
	background: var(--theme-button-background-initial-color);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-button-background-initial-color) 12%, transparent);
}

.helsola-participant-option:has(input:checked) .helsola-participant-option__check svg {
	display: block;
}

.helsola-participant-option__bottom {
	display: flex;
	flex-shrink: 0;
	align-items: flex-end;
	justify-content: space-between;
	margin-top: auto;
}

.helsola-participant-option__price {
	font-size: 1rem;
	font-weight: 400;
	color: #213656;
}

.helsola-participant-option input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 480px) {
	.helsola-participant-options {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Booking flow form inputs (modal + checkout) */
.helsola-booking-modal .helsola-input,
.helsola-booking-modal .helsola-textarea,
.helsola-booking-modal .helsola-select,
.helsola-checkout .helsola-input,
.helsola-checkout .helsola-textarea,
.helsola-checkout .helsola-select {
	box-sizing: border-box;
	height: 3.1rem;
	padding: 0 0.9rem;
	border-color: #e2e8f0;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	color: #334155;
	background-color: #fff;
}

.helsola-checkout .helsola-input:-webkit-autofill,
.helsola-checkout .helsola-input:-webkit-autofill:hover,
.helsola-checkout .helsola-input:-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 1000px #fff inset;
	box-shadow: 0 0 0 1000px #fff inset;
	-webkit-text-fill-color: #334155;
	caret-color: #334155;
	transition: background-color 9999s ease-out 0s;
}

.helsola-booking-modal .helsola-textarea,
.helsola-checkout .helsola-textarea {
	height: auto;
	min-height: 5rem;
	padding: 0.75rem 0.9rem;
}

.helsola-booking-modal .helsola-input::placeholder,
.helsola-booking-modal .helsola-textarea::placeholder,
.helsola-checkout .helsola-input::placeholder,
.helsola-checkout .helsola-textarea::placeholder {
	color: #94a3b8;
}

.helsola-booking-modal .helsola-input:hover,
.helsola-booking-modal .helsola-textarea:hover,
.helsola-booking-modal .helsola-select:hover,
.helsola-checkout .helsola-input:hover,
.helsola-checkout .helsola-textarea:hover,
.helsola-checkout .helsola-select:hover {
	border-color: #cbd5e1;
}

.helsola-booking-modal .helsola-form-group label,
.helsola-checkout .helsola-form-group label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: #213656;
}

.helsola-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-size: 0.825rem;
	line-height: 1.3;
	cursor: pointer;
}

.helsola-checkbox input {
	margin-top: 0.2rem;
	accent-color: var(--helsola-primary);
}

.helsola-checkbox--terms {
	margin-top: 1rem;
}

.helsola-form-error {
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
	border: 1px solid #f5b8b8;
	border-radius: 8px;
	background: #fde8e8;
	color: #9b2c2c;
	font-size: 0.875rem;
}

.helsola-form-hint {
	margin: 0.5rem 0 0;
	font-size: 0.8125rem;
}

.helsola-form-hint.is-success { color: #2f855a; }
.helsola-form-hint.is-error { color: #c53030; }

.helsola-early-bird {
	margin: 1rem 0;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: color-mix(in srgb, var(--helsola-secondary) 15%, #fff);
}

.helsola-early-bird__label {
	margin: 0 0 0.25rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--helsola-primary);
}

.helsola-early-bird__timer {
	font-size: 1rem;
	font-weight: 700;
	color: var(--helsola-primary);
}

.helsola-price-early-bird {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
}

.helsola-price-early-bird__values {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
}

.helsola-price-early-bird__regular {
	color: #94a3b8;
	font-size: 0.8125rem;
	font-weight: 500;
	text-decoration: line-through;
}

.helsola-price-early-bird__current {
	color: inherit;
	font-size: inherit;
	font-weight: 800;
}

.helsola-price-early-bird__badge {
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	color: #1a7f4b;
	text-transform: uppercase;
}

.helsola-participant-option__price .helsola-price-early-bird,
.helsola-certification-option__price .helsola-price-early-bird,
.helsola-checkout-summary__ticket-category-price .helsola-price-early-bird,
.helsola-checkout-summary__ticket-addon .helsola-price-early-bird {
	align-items: flex-end;
}

.helsola-participant-option__price .helsola-price-early-bird__current,
.helsola-certification-option__price .helsola-price-early-bird__current {
	font-size: 1rem;
	font-weight: 400;
}

/* Checkout page */
.helsola-checkout {
	padding-block: 1.5rem 4rem;
	max-width: 100%;
	overflow-x: clip;
}

.helsola-checkout .helsola-test-banner {
	margin: 0 0 1rem !important;
}

.helsola-checkout__header {
	margin-bottom: 1.5rem;
}

.helsola-checkout__back {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-bottom: 1rem;
	color: var(--helsola-primary);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
}

.helsola-checkout__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
}

.helsola-checkout__form-col,
.helsola-checkout__summary-col {
	min-width: 0;
}

.helsola-checkout-form,
.helsola-checkout-section {
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 960px) {
	.helsola-checkout__layout {
		grid-template-columns: 1.2fr 0.8fr;
		align-items: start;
	}
}

.helsola-checkout-section {
	margin-bottom: 1.5rem;
}

.helsola-checkout-section__title,
.helsola-checkout-summary__title {
	margin: 0 0 1rem;
	font-size: 1.3125rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: #1e3558;
}

.helsola-coupon-field {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: 3.1rem;
	padding: 0.25rem 0.25rem 0.25rem 0;
	border: 1px solid #e2e8f0;
	border-radius: 0.75rem;
	background: #fff;
	box-sizing: border-box;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.helsola-coupon-field:hover {
	border-color: #cbd5e1;
}

.helsola-coupon-field:focus-within {
	border-color: var(--helsola-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--helsola-primary) 15%, transparent);
}

.helsola-coupon-field .helsola-coupon-field__input,
.helsola-coupon-field .helsola-input.helsola-coupon-field__input {
	flex: 1 1 auto;
	width: 0;
	min-width: 0;
	height: 100%;
	min-height: 0;
	padding: 0 0.9rem;
	border: none !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: none;
	background: transparent;
	font-size: 0.875rem;
	color: #334155;
}

.helsola-coupon-field .helsola-coupon-field__input:focus,
.helsola-coupon-field .helsola-input.helsola-coupon-field__input:focus {
	border: none !important;
	box-shadow: none !important;
	outline: none;
}

.helsola-coupon-field__apply {
	flex-shrink: 0;
	height: calc(3.1rem - 0.5rem);
	padding: 0 1rem;
	border: none;
	border-radius: 0.6rem;
	background: var(--helsola-primary);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.helsola-coupon-field__apply:hover,
.helsola-coupon-field__apply:focus-visible {
	background: color-mix(in srgb, var(--helsola-primary) 85%, #000);
}

.helsola-coupon-field__apply.is-remove {
	background: #fff;
	color: #c53030;
	border: 1px solid #c53030;
}

.helsola-coupon-field__apply.is-remove:hover,
.helsola-coupon-field__apply.is-remove:focus-visible {
	background: #fff5f5;
}

.helsola-coupon-field__input:read-only {
	background: #f8fafc;
	color: #3d4654;
	cursor: default;
}

.helsola-checkout-summary__line--discount[hidden] {
	display: none !important;
}

.helsola-checkout-summary__line--discount dd strong {
	font-weight: 700;
	color: var(--helsola-primary);
}

.helsola-payment-methods {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.helsola-radio-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.875rem 1rem;
	border: 2px solid #d1d9e0;
	border-radius: 8px;
	cursor: pointer;
	box-sizing: border-box;
}

.helsola-radio-card__icon {
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	object-fit: contain;
}

.helsola-radio-card__text {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	min-width: 0;
}

.helsola-radio-card__label {
	font-weight: 600;
	color: #1a202c;
}

.helsola-radio-card__description {
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #5a6472;
}

.helsola-radio-card:has(input:checked) {
	border-color: var(--helsola-primary);
	background: color-mix(in srgb, var(--helsola-primary) 4%, #fff);
}

.helsola-radio-card input {
	accent-color: var(--helsola-primary);
}

.helsola-stripe-element:not(.is-ready) {
	display: none !important;
}

.helsola-stripe-element.helsola-stripe-card-fields {
	padding: 0;
	border: 0;
	background: transparent;
}

.helsola-stripe-secure-note {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.35rem 0 0.85rem;
	font-size: 0.75rem;
	line-height: 1.4;
	color: #64748b;
}

.helsola-stripe-secure-note span {
	font-weight: 700;
}

.helsola-stripe-secure-note__icon {
	flex-shrink: 0;
	color: currentColor;
}

.helsola-stripe-card-fields {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.helsola-stripe-field__label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: #334155;
}

.helsola-stripe-field__input {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.625rem 0.75rem;
	background: #fff;
	border: 1px solid #d1d9e0;
	border-radius: 8px;
	overflow: hidden;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.helsola-stripe-field__input:focus-within {
	border-color: var(--helsola-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--helsola-primary) 15%, transparent);
}

.helsola-stripe-field.is-invalid .helsola-stripe-field__label {
	color: #b91c1c;
}

.helsola-stripe-field.is-invalid .helsola-stripe-field__input,
.helsola-stripe-field__input.is-invalid {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px color-mix(in srgb, #dc2626 12%, transparent);
}

.helsola-stripe-field__input .__PrivateStripeElement,
.helsola-stripe-field__input > div {
	width: 100%;
	margin: 0 !important;
}

.helsola-stripe-field__input iframe {
	display: block !important;
	width: 100% !important;
	height: 1.25rem !important;
	min-height: 1.25rem !important;
	margin: 0 !important;
}

.helsola-stripe-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem;
}

@media (max-width: 479px) {
	.helsola-stripe-field-row {
		grid-template-columns: 1fr;
	}
}

.helsola-payment-instructions {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: #f8fafc;
	font-size: 0.875rem;
	line-height: 1.5;
}

.helsola-checkout-info {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 1rem 0;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: color-mix(in srgb, var(--helsola-primary) 6%, #fff);
	font-size: 0.75rem;
	line-height: 1.3;
	color: #3d4654;
}

.helsola-checkout-info .helsola-icon {
	flex-shrink: 0;
	color: var(--helsola-primary);
}

.helsola-checkout-info .helsola-icon--info {
	margin-top: 0.1rem;
}

.helsola-alert {
	margin-bottom: 1.5rem;
	padding: 0.875rem 1rem;
	border-radius: 8px;
	font-size: 0.9375rem;
}

.helsola-alert--error {
	background: #fde8e8;
	color: #9b2c2c;
}

@media (min-width: 960px) {
	.helsola-checkout__summary-col {
		position: sticky;
		top: 1.5rem;
		align-self: start;
	}
}

.admin-bar .helsola-checkout__summary-col {
	top: calc(1.5rem + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .helsola-checkout__summary-col {
		top: calc(1.5rem + 46px);
	}
}

.helsola-checkout-summary {
	padding: 1.25rem;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.helsola-checkout-summary__event {
	margin: 0 0 0.25rem;
	font-weight: 600;
	line-height: 1.24;
	color: var(--helsola-primary);
}

.helsola-checkout-summary__date {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: #5a6472;
}

.helsola-checkout-summary__lines {
	margin: 0;
}

.helsola-checkout-summary__line {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	padding: 0.5rem 0;
	font-size: 0.9375rem;
	min-width: 0;
}

.helsola-checkout-summary__line dt {
	margin: 0;
	flex: 0 0 auto;
	color: #5a6472;
}

.helsola-checkout-summary__line dd {
	margin: 0;
	min-width: 0;
	flex: 1 1 auto;
	text-align: right;
}

.helsola-checkout-summary__line--discount dd {
	color: #2f855a;
}

.helsola-checkout-summary__total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 2px solid #e8edf2;
	font-size: 1rem;
	font-weight: 600;
}

.helsola-checkout-summary__total-prices {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.625rem;
}

.helsola-checkout-summary__total-original {
	font-size: 0.875rem;
	font-weight: 400;
	color: #8a94a3;
	text-decoration: line-through;
}

.helsola-checkout-summary__total-current {
	font-size: inherit;
	font-weight: 700;
	color: var(--helsola-primary);
}

.helsola-checkout-summary__terms {
	margin: 1.25rem 0 0.75rem;
}

.helsola-checkout-summary__info {
	margin: 1rem 0 0;
}

.helsola-checkout-summary__submit.helsola-btn--booking {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	height: 50px;
	min-height: 50px;
	padding: 0 1.75rem;
	border-radius: 8px;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.helsola-checkout-summary__submit.helsola-btn--booking.is-processing {
	height: auto;
	min-height: 50px;
	padding: 0.7rem 1.25rem;
	cursor: wait;
	opacity: 1;
}

.helsola-checkout-summary__submit.helsola-btn--booking.is-processing:disabled {
	opacity: 1;
}

.helsola-checkout-submit__processing {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	width: 100%;
	text-align: center;
	line-height: 1.3;
}

.helsola-checkout-summary__submit.is-processing .helsola-checkout-submit__default {
	display: none;
}

.helsola-checkout-summary__submit.is-processing .helsola-checkout-submit__processing {
	display: flex;
}

.helsola-checkout-submit__processing-main {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-weight: 700;
	font-size: 0.9375rem;
}

.helsola-checkout-submit__processing-hint {
	font-size: 0.75rem;
	font-weight: 500;
	opacity: 0.92;
}

.helsola-spinner {
	width: 1.125rem;
	height: 1.125rem;
	flex-shrink: 0;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: helsola-spin 0.7s linear infinite;
}

@keyframes helsola-spin {
	to {
		transform: rotate(360deg);
	}
}

.helsola-checkout-summary__cancellation {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid #e8edf2;
	font-size: 0.8125rem;
	color: #5a6472;
	line-height: 1.5;
}

body.helsola-modal-open {
	overflow: hidden;
}

@media (max-width: 767px) {
	.helsola-checkout .helsola-container {
		padding-inline: 1rem;
	}

	.helsola-checkout .helsola-form-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.helsola-checkout-summary {
		box-sizing: border-box;
		max-width: 100%;
	}

	.helsola-checkout-summary__line {
		flex-direction: column;
		align-items: stretch;
		gap: 0.35rem;
	}

	.helsola-checkout-summary__line dd {
		text-align: left;
	}

	.helsola-checkout-summary__ticket-lines {
		align-items: flex-start;
	}

	.helsola-checkout-summary__ticket-category-price {
		justify-content: flex-start;
	}

	.helsola-checkout-summary__ticket-addon {
		flex-wrap: wrap;
		justify-content: flex-start;
	}

	.helsola-coupon-field__apply {
		padding-inline: 0.75rem;
		font-size: 0.75rem;
	}
}
