/**
 * Checkout Flow Styles
 *
 * BEM block: achtbit-checkout
 * Layout: 40/60 turquoise sidebar (left) / white content (right)
 * Matches portal design pattern
 *
 * @package achtbit-bookings
 */

/* ── Hide theme header on checkout pages ──────────────── */
body:has(.achtbit-checkout) > header { display: none; }

/* ── Gap fixes (same as portal) ──────────────────────── */
body:has(.achtbit-checkout) .content > p,
body:has(.achtbit-checkout) .content > strong { display: none !important; }
body:has(.achtbit-checkout) .sponsors-section { display: none !important; }

/* ── Layout ─────────────────────────────────────────── */
.achtbit-checkout {
	max-width: 100%;
	margin: 90px 0 0;
	padding: 0;
	font-family: system-ui, -apple-system, sans-serif;
	color: #1a1a1a;
	line-height: 1.6;
	display: flex;
	min-height: calc(100vh - 357px);
	overflow: hidden;
}
.achtbit-checkout__layout {
	display: flex;
	width: 100%;
	min-height: 100%;
}
.achtbit-checkout__main {
	flex: 1;
	padding: 80px 48px 32px;
	background: #fff;
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 1;
	min-width: 0;
}
.achtbit-checkout__error { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 8px; padding: 1rem; color: #991b1b; }

/* ── Sidebar (left, turquoise – same structure as portal) ── */
.achtbit-checkout__sidebar {
	width: 40%;
	flex-shrink: 0;
	align-self: stretch;
	background: #36a9e1;
	border-right: none;
	padding: 80px 0 24px;
	display: flex;
	flex-direction: column;
	color: #fff;
}
.achtbit-checkout__sidebar-title {
	font-size: 1.35rem;
	margin-top: 0 !important;
	margin-bottom: 0;
	color: #fff !important;
	font-weight: 700;
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-title-divider {
	border-top: 1px solid rgba(255,255,255,0.3);
	margin: 1.25rem 0;
	margin-left: max(24px, calc(100% - 340px));
	margin-right: 24px;
}
.achtbit-checkout__sidebar-event-title {
	font-weight: 600;
	font-size: 1.15rem;
	margin-bottom: 1rem;
	color: #fff;
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.95em;
	color: rgba(255,255,255,0.9);
	margin-bottom: 0.5rem;
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-item svg { color: #fff; }
.achtbit-checkout__sidebar-item--location { align-items: flex-start; }
.achtbit-checkout__sidebar-item--location svg { margin-top: 2px; }
.achtbit-checkout__sidebar-item--session {
	font-size: 0.85em;
	margin-bottom: 0.25rem;
}
.achtbit-checkout__sidebar-divider {
	border-top: 1px solid rgba(255,255,255,0.3);
	margin: 1.25rem 0;
	margin-left: max(24px, calc(100% - 340px));
	margin-right: 24px;
}
.achtbit-checkout__sidebar-price {
	font-size: 1.35rem;
	font-weight: bold;
	color: #fff;
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-price-hint {
	font-size: 0.65em;
	font-weight: normal;
	color: rgba(255,255,255,0.8);
}
.achtbit-checkout__sidebar-capacity {
	margin-top: 0.75rem;
	color: rgba(255,255,255,0.9);
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-capacity .achtbit-bookings-capacity-loading {
	color: rgba(255,255,255,0.7);
}
.achtbit-checkout__sidebar-selected-divider {
	border-top: 1px solid rgba(255,255,255,0.3);
	margin: 1.25rem 0;
	margin-left: max(24px, calc(100% - 340px));
	margin-right: 24px;
}
.achtbit-checkout__sidebar-selected {
	padding: 0 24px 0 max(24px, calc(100% - 340px));
}
.achtbit-checkout__sidebar-selected-title {
	font-size: 0.85em;
	font-weight: 600;
	color: rgba(255,255,255,0.8);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.5rem;
}
.achtbit-checkout__sidebar-participant {
	font-size: 0.9em;
	color: #fff;
	padding: 0.25rem 0;
}

/* ── Progress Bar ───────────────────────────────────── */
.achtbit-checkout__progress { display: flex; gap: 0; margin-bottom: 2rem; padding: 0 2rem; }
.achtbit-checkout__progress-step { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.25rem; padding: 0.5rem; font-size: 0.8em; color: #888; border-bottom: 3px solid #ddd; transition: all 0.2s; }
.achtbit-checkout__progress-step--active { color: #1d71b8; border-color: #1d71b8; font-weight: bold; }
.achtbit-checkout__progress-step--done { color: #4caf50; border-color: #4caf50; }
.achtbit-checkout__progress-num { display: flex; align-items: center; }
.achtbit-checkout__progress-num svg { flex-shrink: 0; }

/* ── Steps ──────────────────────────────────────────── */
.achtbit-checkout__step { background: #fff; border-radius: 12px; padding: 2rem; }
.achtbit-checkout__step-title { font-size: 1.15rem; color: #1a1a1a; margin-top: 0 !important; margin-bottom: 0.25rem; outline: none; }
.achtbit-checkout__step-desc { color: #666; font-size: 0.9em; margin-bottom: 1.25rem; }
.achtbit-checkout__step-nav { text-align: center; margin-top: 0.5rem; }

/* ── Auth Options (Step 1) ──────────────────────────── */
.achtbit-checkout__auth-options { display: flex; flex-direction: column; gap: 1rem; }
.achtbit-checkout__auth-option { border: 2px solid #e0e0e0; border-radius: 10px; padding: 1.25rem; cursor: pointer; display: flex; align-items: center; gap: 1rem; background: #fff; text-align: left; transition: all 0.15s; }
.achtbit-checkout__auth-option:hover,
.achtbit-checkout__auth-option:focus-visible { border-color: #1d71b8; background: #f0f6fc; outline: none; }
.achtbit-checkout__auth-icon { width: 40px; text-align: center; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.achtbit-checkout__auth-option > div { display: flex; flex-direction: column; justify-content: center; }
.achtbit-checkout__auth-option strong,
.content .achtbit-checkout__auth-option strong { display: block; font-size: 1rem; color: #1a1a1a; margin: 0; line-height: 1.3; }
.achtbit-checkout__auth-option p,
.content .achtbit-checkout__auth-option p { font-size: 0.85em; color: #666; margin: 0.15rem 0 0; line-height: 1.4; }

/* ── Auth Forms ─────────────────────────────────────── */
.achtbit-checkout__auth-form h3 { font-size: 1.1rem; margin-bottom: 1rem; }
.achtbit-checkout__form-group { margin-bottom: 1rem; }
.achtbit-checkout__form-group label { display: block; font-size: 0.85em; font-weight: 600; color: #333; margin-bottom: 0.25rem; }
.achtbit-checkout__input { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #ccc; border-radius: 6px; font-size: 0.95em; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.achtbit-checkout__input:focus { outline: none; border-color: #1d71b8; box-shadow: 0 0 0 2px rgba(29,113,184,0.15); }
.achtbit-checkout__form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.achtbit-checkout__form-error { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 6px; padding: 0.75rem; color: #991b1b; font-size: 0.9em; margin-bottom: 1rem; }
.achtbit-checkout__form-links { display: flex; justify-content: space-between; align-items: center; margin-top: 0.75rem; flex-wrap: wrap; gap: 0.5rem; }

/* ── Buttons ────────────────────────────────────────── */
.achtbit-checkout__btn-primary {
	width: 100%;
	padding: 0.875rem;
	background: #1d71b8;
	color: #fff;
	border: 2px solid #1d71b8;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 800;
	cursor: pointer;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	box-sizing: border-box;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.3s ease;
}
.achtbit-checkout__btn-primary:hover { background: #36a9e1; border-color: #36a9e1; color: #fff; transform: translateY(-2px); }
.achtbit-checkout__btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.achtbit-checkout__btn-book { background: #1d71b8; border-color: #1d71b8; }
.achtbit-checkout__btn-book:hover { background: #36a9e1; border-color: #36a9e1; }
.achtbit-checkout__btn-back { background: none; border: none; color: #1d71b8; cursor: pointer; font-size: 0.9em; padding: 0.5rem; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 0.35rem; text-decoration: none; }
.achtbit-checkout__btn-back:hover { color: #36a9e1; text-decoration: none; }
.achtbit-checkout__btn-primary svg,
.achtbit-checkout__btn-back svg { flex-shrink: 0; }

/* ── Participant Cards (Step 2 - Logged in) ─────────── */
.achtbit-checkout__participant-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem; }
.achtbit-checkout__participant-card { border: 2px solid #e0e0e0; border-radius: 10px; padding: 1rem; cursor: pointer; transition: all 0.15s; position: relative; }
.achtbit-checkout__participant-card:hover,
.achtbit-checkout__participant-card:focus-visible { border-color: #1d71b8; background: #f0f6fc; outline: none; }
.achtbit-checkout__participant-card--selected { border-color: #1d71b8; background: #f0f6fc; }
.achtbit-checkout__participant-card--selected::after { content: ''; position: absolute; top: 8px; right: 10px; width: 22px; height: 22px; border-radius: 50%; background: #1d71b8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23fff'%3E%3Cpath d='M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z'/%3E%3C/svg%3E") center/14px no-repeat; }
.achtbit-checkout__participant-name { font-weight: 600; font-size: 0.95em; }
.achtbit-checkout__participant-age { font-size: 0.8em; color: #666; margin-top: 0.15rem; }
.achtbit-checkout__participant-card--age-warning { border-color: #ff9800; }
.achtbit-checkout__participant-card--age-warning.achtbit-checkout__participant-card--selected { background: #fff8e1; border-color: #ff9800; }
.achtbit-checkout__participant-card--age-warning.achtbit-checkout__participant-card--selected::after { background: #ff9800; }
.achtbit-checkout__participant-age-badge { font-size: 0.75em; color: #e65100; background: #fff3e0; padding: 2px 8px; border-radius: 4px; margin-top: 0.35rem; display: inline-block; }
.achtbit-checkout__participant-self-badge { font-size: 0.75em; color: #1d71b8; background: #e8f0fe; padding: 2px 8px; border-radius: 4px; margin-left: 0.35rem; font-weight: 400; }

/* Add card */
.achtbit-checkout__add-card { border: 2px dashed #d4d4d8; border-radius: 12px; padding: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 0.5rem; color: #71717a; transition: all 0.15s; margin-bottom: 1.5rem; }
.achtbit-checkout__add-card:hover,
.achtbit-checkout__add-card:focus-visible { border-color: #18181b; color: #18181b; outline: none; }
.achtbit-checkout__add-card-plus { font-size: 24px; }

/* New participant inline form */
.achtbit-checkout__new-participant-form { border: 2px solid #1d71b8; border-radius: 10px; padding: 1rem; background: #f0f6fc; }
.achtbit-checkout__new-participant-actions { display: flex; gap: 0.75rem; margin-top: 0.5rem; }
.achtbit-checkout__new-participant-actions .achtbit-checkout__btn-primary { width: auto; padding: 0.5rem 1rem; font-size: 0.9em; }

/* Age warning dialog */
.achtbit-checkout__age-warning { background: #fff3e0; border: 1px solid #ffcc80; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; }
.achtbit-checkout__age-warning p { font-size: 0.9em; color: #333; }
.achtbit-checkout__age-warning-actions { display: flex; gap: 0.75rem; margin-top: 0.75rem; }
.achtbit-checkout__btn-warn-confirm { padding: 0.5rem 1rem; border-radius: 6px; border: none; cursor: pointer; font-size: 0.85em; font-weight: 600; background: #ff9800; color: #fff; }
.achtbit-checkout__btn-warn-cancel { padding: 0.5rem 1rem; border-radius: 6px; border: none; cursor: pointer; font-size: 0.85em; font-weight: 600; background: #eee; color: #666; }

/* ── Guest Forms (Step 2 - Guest) ───────────────────── */
.achtbit-checkout__contact-section { background: #f9f9f9; border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.achtbit-checkout__contact-section h3,
.content .achtbit-checkout__contact-section h3 { font-size: 1.1rem; margin: 0 0 0.75rem; padding: 0; }
.achtbit-checkout__self-participant-toggle { margin-top: 0.25rem; }
.achtbit-checkout__checkbox-label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9em; font-weight: 600; color: #333; cursor: pointer; }
.achtbit-checkout__checkbox { width: 18px; height: 18px; accent-color: #1d71b8; cursor: pointer; }
.achtbit-checkout__self-dob { margin-top: 0.75rem; }
.achtbit-checkout__participant-section { border: 1px solid #e0e0e0; border-radius: 8px; padding: 1.25rem; margin-bottom: 1rem; }
.achtbit-checkout__participant-section-header { display: flex; justify-content: space-between; align-items: center; }
.achtbit-checkout__participant-section-header h4 { font-size: 0.95rem; margin-bottom: 0.15rem; }

.achtbit-checkout__btn-remove-participant { background: none; border: none; color: #999; font-size: 1.2rem; cursor: pointer; padding: 0 0.25rem; }
.achtbit-checkout__btn-remove-participant:hover { color: #d63638; }

/* ── Summary (Step 3) ───────────────────────────────── */
.achtbit-checkout__summary-section { margin-bottom: 1.5rem; }
.achtbit-checkout__summary-section h3 { font-size: 0.85em; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 0.75rem; }
.achtbit-checkout__summary-header { display: flex; justify-content: space-between; align-items: center; }
.achtbit-checkout__summary-header h3,
.content .achtbit-checkout__summary-header h3 { margin: 0 0 0.5em; font-size: 24px; }
.achtbit-checkout__edit-link { font-size: 0.8em; color: #1d71b8; background: none; border: none; cursor: pointer; }
.achtbit-checkout__summary-card { background: #f9f9f9; border-radius: 8px; padding: 1rem; }
.achtbit-checkout__summary-row { display: flex; justify-content: space-between; align-items: center; padding: 0.35rem 0; font-size: 0.9em; }
.achtbit-checkout__summary-label { color: #666; }
.achtbit-checkout__summary-value { color: #1a1a1a; font-weight: 500; }
.achtbit-checkout__summary-row--series { align-items: flex-start; }
.achtbit-checkout__summary-row--series .achtbit-checkout__summary-value {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	text-align: right;
}
.achtbit-checkout__summary-session-date { display: block; }
.achtbit-checkout__confirm-series-dates {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}
.achtbit-checkout__summary-participant { display: flex; justify-content: space-between; padding: 0.35rem 0; font-size: 0.9em; }
.achtbit-checkout__summary-participant-name { color: #1a1a1a; }
.achtbit-checkout__summary-participant-details { color: #888; font-size: 0.85em; }
.achtbit-checkout__summary-total { display: flex; justify-content: space-between; align-items: center; padding: 1rem; background: #f0f6fc; border-radius: 8px; margin-bottom: 1.5rem; }
.achtbit-checkout__summary-total-label { font-size: 1rem; color: #333; font-weight: 600; }
.achtbit-checkout__summary-total-price { font-size: 1.3rem; color: #1d71b8; font-weight: bold; }

/* Consent */
.achtbit-checkout__consent { background: #f9f9f9; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; }
.achtbit-checkout__consent-label { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.85em; color: #555; cursor: pointer; }
.achtbit-checkout__consent-label input[type="checkbox"] { margin-top: 0.2rem; width: 18px; height: 18px; flex-shrink: 0; }
.achtbit-checkout__consent.has-error { border: 1px solid #d63638; background: #fef0f0; }
.achtbit-checkout__consent-error { font-size: 0.8em; color: #d63638; margin-top: 0.5rem; padding-left: calc(18px + 0.75rem); }
.achtbit-checkout__consent-error[hidden] { display: none; }
.achtbit-checkout__consent-error:not([hidden]) { display: block; }

/* ── Confirmation (Step 4) ──────────────────────────── */
.achtbit-checkout__confirm-icon { text-align: center; margin-bottom: 1rem; color: #16a34a; }
.achtbit-checkout__confirm-title { font-size: 1.4rem; text-align: center; margin-bottom: 0.5rem; outline: none; }
.achtbit-checkout__confirm-subtitle { text-align: center; color: #666; margin-bottom: 2rem; font-size: 0.95em; }
.achtbit-checkout__booking-ref { text-align: center; background: #f0f6fc; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; }
.achtbit-checkout__booking-ref-label { font-size: 0.85em; color: #666; display: block; }
.achtbit-checkout__booking-ref-value { font-size: 1.5rem; font-weight: bold; color: #1d71b8; letter-spacing: 2px; }
.achtbit-checkout__email-notice { background: #e8f5e9; border: 1px solid #a5d6a7; border-radius: 8px; padding: 1rem; text-align: center; font-size: 0.9em; color: #2e7d32; margin-bottom: 1.5rem; }
.achtbit-checkout__confirm-details { background: #f9f9f9; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; }
.achtbit-checkout__confirm-row { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.3rem 0; font-size: 0.9em; color: #555; }
.achtbit-checkout__confirm-row svg { flex-shrink: 0; margin-top: 2px; }

/* Account offer */
.achtbit-checkout__account-offer { background: #f0f6fc; border: 1px solid #c8d8e6; border-radius: 8px; padding: 1.25rem; margin-bottom: 1.5rem; }
.achtbit-checkout__account-offer h3 { font-size: 1rem; margin-bottom: 0.35rem; }
.achtbit-checkout__account-offer > p { font-size: 0.85em; color: #555; margin-bottom: 1rem; }
.achtbit-checkout__account-offer-form { display: flex; gap: 0.75rem; align-items: end; }
.achtbit-checkout__account-offer-form .achtbit-checkout__form-group { flex: 1; margin: 0; }
.achtbit-checkout__btn-create-account { padding: 0.5rem 1rem; background: #1d71b8; color: #fff; border: none; border-radius: 6px; font-size: 0.85em; font-weight: 600; cursor: pointer; white-space: nowrap; }
.achtbit-checkout__btn-create-account:hover { background: #36a9e1; }
.achtbit-checkout__btn-skip { display: block; text-align: center; color: #888; font-size: 0.85em; background: none; border: none; cursor: pointer; margin-top: 0.5rem; width: 100%; }
.achtbit-checkout__btn-skip:hover { color: #555; }
.achtbit-checkout__btn-home { margin-top: 1rem; }
/* Override theme styles inside checkout sidebar */
.content .achtbit-checkout__sidebar h3,
.content .achtbit-checkout__sidebar .achtbit-checkout__sidebar-title,
.content .achtbit-checkout__sidebar .achtbit-checkout__sidebar-selected-title {
	color: #fff !important;
}
.content a.achtbit-checkout__btn-primary,
.content a.achtbit-checkout__btn-primary:hover { color: #fff !important; }
.achtbit-checkout__btn-secondary-link {
	display: block;
	width: 100%;
	padding: 0.875rem;
	background: #fff;
	color: #1d71b8;
	border: 2px solid #1d71b8;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 800;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	margin-top: 0.5rem;
	box-sizing: border-box;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: transform 0.15s, background 0.15s;
}
.achtbit-checkout__btn-secondary-link:hover { background: #f0f7ff; transform: translateY(-2px); }
.content a.achtbit-checkout__btn-secondary-link,
.content a.achtbit-checkout__btn-secondary-link:hover { color: #1d71b8 !important; }

/* ── Limit content width inside main (same as portal) ── */
.achtbit-checkout__step { max-width: 790px; }
.achtbit-checkout__progress { max-width: 790px; }

/* ── Mobile ─────────────────────────────────────────── */
@media ( max-width: 768px ) {
	.achtbit-checkout { flex-direction: column; min-height: auto; margin-top: 0; }
	.achtbit-checkout__layout { flex-direction: column-reverse; }
	.achtbit-checkout__sidebar { width: 100%; padding: 32px 0; box-sizing: border-box; }
	.achtbit-checkout__sidebar-title,
	.achtbit-checkout__sidebar-event-title,
	.achtbit-checkout__sidebar-item,
	.achtbit-checkout__sidebar-price,
	.achtbit-checkout__sidebar-capacity,
	.achtbit-checkout__sidebar-selected {
		padding-left: 24px;
		padding-right: 24px;
		box-sizing: border-box;
	}
	.achtbit-checkout__sidebar-title-divider,
	.achtbit-checkout__sidebar-divider,
	.achtbit-checkout__sidebar-selected-divider {
		margin-left: 24px;
		margin-right: 24px;
	}
	.achtbit-checkout__main { padding: 24px; }
	.achtbit-checkout__sidebar-selected { display: none; }
	.achtbit-checkout__progress-label { display: none; }
	.achtbit-checkout__progress-num { font-size: 1em; }
	.achtbit-checkout__participant-grid { grid-template-columns: 1fr; }
	.achtbit-checkout__form-row { grid-template-columns: 1fr; }
	.achtbit-checkout__step { padding: 1.25rem; }
	.achtbit-checkout__account-offer-form { flex-direction: column; }
}

/* ── Tablet (769–999px) ──────────────────────────────── */
@media (max-width: 999px) and (min-width: 769px) {
	.achtbit-checkout__sidebar { padding: 60px 32px 32px; }
	.achtbit-checkout__main { padding: 60px 32px 32px; }
}

/* Warteliste */
.achtbit-checkout__waitlist-hint {
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-radius: 6px;
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	color: #664d03;
	font-size: 0.9rem;
}
.achtbit-checkout__waitlist-notice {
	background: #e3f2fd;
	border: 1px solid #90caf9;
	border-radius: 6px;
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	color: #1565c0;
	font-size: 0.9rem;
}
.achtbit-bookings-waitlist-hint {
	display: block;
	color: rgba(255,255,255,0.9);
	font-size: 0.85rem;
	margin-top: 0.25rem;
}

/* ── Booking Mode Selector ───────────────────────── */
.achtbit-checkout__booking-mode { margin-bottom: 1.5rem; }
.achtbit-checkout__booking-mode-label { font-weight: 600; margin-bottom: 0.75rem; }
.achtbit-checkout__booking-mode-options { display: flex; gap: 1rem; }
.achtbit-checkout__booking-mode-btn {
	flex: 1;
	border: 2px solid #e0e0e0;
	border-radius: 10px;
	padding: 1rem;
	cursor: pointer;
	background: #fff;
	text-align: center;
	transition: all 0.15s;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
}
.achtbit-checkout__booking-mode-btn:hover,
.achtbit-checkout__booking-mode-btn:focus-visible { border-color: #1d71b8; background: #f0f6fc; outline: none; }
.achtbit-checkout__booking-mode-btn--active { border-color: #1d71b8; background: #f0f6fc; box-shadow: 0 0 0 1px #1d71b8; }
.achtbit-checkout__booking-mode-btn span { font-weight: 600; font-size: 1rem; }
.achtbit-checkout__booking-mode-btn small { font-size: 0.8em; color: #666; font-weight: 400; }
.achtbit-checkout__booking-mode-icon { flex-shrink: 0; }

/* ── Group Booking Form ──────────────────────────── */
.achtbit-checkout__group-section {
	display: flex;
	gap: 1rem;
	margin-top: 0.5rem;
}
.achtbit-checkout__group-section .achtbit-checkout__form-group { flex: 1; }

@media (max-width: 600px) {
	.achtbit-checkout__booking-mode-options { flex-direction: column; }
	.achtbit-checkout__group-section { flex-direction: column; }
}

/* ── Verification Panel ─────────────────────────── */
.achtbit-checkout__input--code {
	font-family: 'Courier New', monospace;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-align: center;
	text-transform: uppercase;
	max-width: 220px;
}

.achtbit-checkout__verify-hint {
	color: #555;
	margin-bottom: 1.25rem;
	line-height: 1.5;
}

.achtbit-checkout__verify-actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 1rem;
}

.achtbit-checkout__btn-link {
	background: none;
	border: none;
	color: #2271b1;
	cursor: pointer;
	font-size: 0.875rem;
	padding: 0.25rem 0;
	text-align: left;
	text-decoration: underline;
	-webkit-appearance: none;
	appearance: none;
}

.achtbit-checkout__btn-link:disabled {
	color: #999;
	cursor: default;
	text-decoration: none;
}

.achtbit-checkout__btn-link span {
	font-size: 0.8125rem;
	color: #999;
}

.achtbit-checkout__account-verify {
	margin-top: 1rem;
}
