/* Event Aviation Booking – client dashboard: events table + booking flow */
.eab-client-dashboard { width: 100%; max-width: 100%; margin: 0 auto; font-family: Arial, sans-serif; }

/* Events wrapper */
.events-wrapper {
	font-family: Arial, sans-serif;
	width: 100%;
	margin: 20px 0;
}

/* Desktop: table only; mobile: cards only (never both) – high specificity so theme cannot override */
.eab-client-dashboard .events-wrapper .events-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
.eab-client-dashboard .events-wrapper .events-table {
	display: table !important;
	visibility: visible !important;
}
.eab-client-dashboard .events-wrapper .events-cards {
	display: none !important;
	visibility: hidden !important;
}
.events-table th,
.events-table td {
	padding: 12px;
	border-bottom: 1px solid #ddd;
	text-align: left;
	font-size: 14px;
}
.events-table th {
	background: #0b1c2d;
	color: #fff;
}
.events-table tbody tr:hover {
	background: #f5f8fb;
}
.events-table .event-title {
	font-weight: bold;
	color: #003366;
}
.events-table .event-status,
.events-table .status {
	padding: 4px 7px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: bold;
}
.events-table .status.open,
.events-table .status-open {
	background: #d4edda;
	color: #155724;
}
.events-table .status.full,
.events-table .status-full {
	background: #f8d7da;
	color: #721c24;
}
.events-table .event-btn {
	display: inline-block;
	padding: 10px 20px;
	background: linear-gradient(180deg, #0b1c2d 0%, #1a365d 100%);
	color: #fff;
	text-decoration: none;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	border: 1px solid rgba(212, 175, 55, 0.4);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	cursor: pointer;
	transition: box-shadow 0.2s, transform 0.1s;
}
.events-table .event-btn:hover {
	background: linear-gradient(180deg, #1a365d 0%, #0b1c2d 100%);
	color: #d4af37;
	box-shadow: 0 4px 12px rgba(212, 175, 55, 0.25);
}

/* Live ticker */
.ticker-wrapper {
	width: 100vw !important;
	max-width: 100vw !important;
	height: 55px;
	background: linear-gradient(to right, #020617, #020617, #111827, #020617);
	border-bottom: 2px solid #ffd700;
	display: flex;
	align-items: center;
	overflow: hidden;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

/* Elementor full-width compatibility */
.elementor-section .ticker-wrapper,
.elementor-container .ticker-wrapper,
.elementor-widget-wrap .ticker-wrapper {
	width: 100vw !important;
	max-width: 100vw !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
}
.ticker-label {
	min-width: 160px;
	height: 100%;
	background: #000;
	color: #ffd700;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	letter-spacing: 1px;
	border-right: 2px solid #ffd700;
	font-size: 14px;
	text-transform: uppercase;
}
.ticker-area {
	flex: 1;
	overflow: hidden;
}
.ticker-track {
	display: flex;
	width: fit-content;
	animation: eabTickerScroll 28s linear infinite;
}
.ticker-item {
	padding: 0 40px;
	color: #fff;
	white-space: nowrap;
	font-size: 15px;
	display: flex;
	align-items: center;
	font-weight: 500;
}
.ticker-item span {
	color: #ffd700;
	margin-right: 8px;
}
@media (max-width: 768px) {
	.ticker-wrapper { height: 40px; }
	.ticker-label { min-width: 120px; font-size: 12px; }
	.ticker-item { font-size: 13px; padding: 0 25px; }
}
@keyframes eabTickerScroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
.events-table .event-btn-closed {
	background: #999;
	color: #fff;
	cursor: default;
	border: none;
	box-shadow: none;
}


/* Status (shared) */
.status {
	padding: 4px 7px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: bold;
}
.status.open {
	background: #d4edda;
	color: #155724;
}
.status.full {
	background: #f8d7da;
	color: #721c24;
}

/* Mobile: show only cards; desktop: show only table (never both) */
@media (max-width: 768px) {
	.eab-client-dashboard .events-wrapper .events-table {
		display: none !important;
		visibility: hidden !important;
	}
	.eab-client-dashboard .events-wrapper .events-cards {
		display: block !important;
		visibility: visible !important;
	}
	.event-card {
		background: #fff;
		border-radius: 8px;
		padding: 15px;
		margin-bottom: 15px;
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	}
	.events-cards .event-title {
		font-weight: bold;
		font-size: 15px;
		color: #003366;
		margin-bottom: 6px;
	}
	.events-cards .event-row {
		font-size: 13px;
		margin: 3px 0;
		color: #444;
	}
	.events-cards .event-action {
		margin-top: 10px;
		text-align: right;
	}
	.events-cards .event-btn {
		background: linear-gradient(180deg, #0b1c2d 0%, #1a365d 100%);
		color: #fff;
		padding: 10px 20px;
		text-decoration: none;
		border-radius: 8px;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: 0.04em;
		display: inline-block;
		border: 1px solid rgba(212, 175, 55, 0.4);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	}
	.events-cards .event-btn:hover {
		color: #d4af37;
		box-shadow: 0 4px 12px rgba(212, 175, 55, 0.25);
	}
	.events-cards .event-btn-closed {
		background: #999;
		color: #fff;
		border: none;
		box-shadow: none;
	}
}

/* Booking flow – premium, stage-by-stage (no dropdown feel) */
.eab-booking {
	max-width: 720px;
	margin: 0 auto;
	padding: 0;
	background: #ffffff;
	color: #1a1a1a;
	border: none;
	border-radius: 0;
	box-sizing: border-box;
	box-shadow: none;
}
.eab-booking-premium {
	background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
	border: 1px solid #e5e5e5;
	border-radius: 16px;
	padding: 32px 40px 40px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}
.eab-booking-progress {
	margin-bottom: 28px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e8e8e8;
}
.eab-progress-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 10px;
}
.eab-progress-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 13px;
	font-weight: 600;
	color: #888;
	background: #eee;
	border: 2px solid transparent;
	transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.eab-progress-step.eab-progress-current {
	color: #1a1a1a;
	background: #d4af37;
	border-color: #c9a227;
}
.eab-progress-step.eab-progress-done {
	color: #fff;
	background: #1a1a1a;
}
.eab-progress-label {
	margin: 0;
	font-size: 13px;
	color: #666;
	text-align: center;
	letter-spacing: 0.02em;
}
.eab-step { display: none; padding: 0; }
.eab-step.eab-active { display: block; }
.eab-step-title,
.eab-step h2 {
	margin: 0 0 20px 0;
	font-size: 1.25rem;
	font-weight: 600;
	color: #1a1a1a;
	letter-spacing: 0.01em;
}
.eab-step .eab-field,
.eab-step p { margin-bottom: 16px; }
.eab-step-actions {
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid #eee;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}
.eab-step-actions .eab-btn { margin: 0; }
.eab-btn-back {
	background: #fff;
	color: #555;
	border: 1px solid #ccc;
	padding: 12px 20px;
	font-size: 14px;
	font-weight: 500;
	border-radius: 8px;
}
.eab-btn-back:hover {
	background: #f5f5f5;
	border-color: #999;
	color: #333;
}
.eab-btn-premium {
	background: linear-gradient(180deg, #1a1a1a 0%, #333 100%);
	color: #fff;
	border: none;
	padding: 14px 28px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 8px;
	letter-spacing: 0.03em;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: box-shadow 0.2s, transform 0.1s;
}
.eab-btn-premium:hover:not(:disabled) {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.eab-btn-premium:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.eab-btn-confirm {
	background: linear-gradient(180deg, #c9a227 0%, #d4af37 50%, #b8960c 100%);
	color: #1a1a1a;
	border: none;
	padding: 14px 32px;
	font-size: 15px;
	font-weight: 700;
	border-radius: 8px;
	letter-spacing: 0.04em;
	box-shadow: 0 2px 10px rgba(201, 162, 39, 0.35);
}
.eab-btn-confirm:hover:not(:disabled) {
	box-shadow: 0 4px 14px rgba(201, 162, 39, 0.45);
	transform: translateY(-1px);
}
.eab-step-actions .eab-btn-premium,
.eab-step-actions .eab-btn-next {
	min-width: 180px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}
.eab-step-actions .eab-btn-back {
	border: 1px solid #c9a227;
	color: #1a1a1a;
	background: transparent;
}
.eab-step-actions .eab-btn-back:hover {
	background: rgba(201, 162, 39, 0.08);
	border-color: #b8960c;
}
.eab-progress-step.eab-progress-current {
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
}
.eab-booking-premium {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.eab-step-title,
.eab-booking-premium h2 {
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #0b1c2d;
}
.eab-route-select-hint {
	color: #555;
	font-size: 14px;
}
/* Inline validation message – premium */
.eab-stage-error {
	display: block;
	margin-top: 10px;
	padding: 12px 14px;
	background: #fff8e1;
	border: 1px solid #ffc107;
	border-radius: 8px;
	color: #5d4e37;
	font-size: 14px;
	font-weight: 500;
}
.eab-tour-image-wrap {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	cursor: pointer;
	min-height: 220px;
	background: #e8e8e8;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #bbb;
}
.eab-tour-placeholder {
	padding: 40px;
	text-align: center;
	color: #555555;
	font-size: 15px;
}
.eab-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	display: flex;
	align-items: center;
	justify-content: center;
}
.eab-overlay span {
	background: #1565c0;
	color: #ffffff;
	padding: 12px 24px;
	border-radius: 8px;
	font-weight: 600;
}
.eab-step-hint { font-size: 14px; color: #555555; margin-top: 8px; }
.eab-route-select-hint { font-size: 14px; color: #444444; margin-bottom: 14px; }
.eab-field { margin-bottom: 16px; }
.eab-field label,
.eab-label-select {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #222222;
	margin-bottom: 6px;
}
.eab-route-name { font-weight: 600; color: #0d47a1; margin: 14px 0 8px 0; font-size: 1.05rem; }
.eab-route-stats { font-size: 14px; color: #444444; margin-bottom: 14px; }
.eab-msg { padding: 12px; border-radius: 8px; margin-top: 8px; }
.eab-msg-error { background: #ffebee; color: #b71c1c; border: 1px solid #ef9a9a; }
.eab-msg-success { background: #e8f5e9; color: #1b5e20; border: 1px solid #a5d6a7; }

/* Inputs and selects – light background, dark text, visible border (where client fills) */
.eab-select,
.eab-input {
	width: 100%;
	padding: 12px 14px;
	font-size: 16px;
	border: 2px solid #666666;
	border-radius: 8px;
	background: #ffffff;
	color: #222222;
	margin-top: 4px;
	box-sizing: border-box;
}
.eab-select:hover,
.eab-input:hover {
	border-color: #444444;
}
.eab-select:focus,
.eab-input:focus {
	outline: none;
	border-color: #1565c0;
	background: #ffffff;
	color: #222222;
	box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.2);
}
.eab-input::placeholder {
	color: #666666;
}
.eab-select option {
	background: #ffffff;
	color: #222222;
}

/* Stage 4 – Your details: make labels and inputs very visible */
#eab-stage-4 p { margin: 0 0 18px 0; }
#eab-stage-4 label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #222222;
	margin-bottom: 6px;
}
#eab-stage-4 .eab-input {
	font-size: 16px;
	padding: 14px 16px;
	border: 2px solid #666666;
	background: #ffffff;
	color: #222222;
}

/* Tour/event cards: hidden on desktop, 2 per row on mobile */
.eab-route-cards { display: none; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 12px; }
.eab-route-card {
	display: block;
	width: 100%;
	padding: 16px 12px;
	border-radius: 10px;
	border: 2px solid #666666;
	background: #f5f5f5;
	color: #222222;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color 0.2s, background 0.2s;
}
.eab-route-card .eab-card-meta { display: block; font-size: 12px; font-weight: normal; color: #555555; margin-top: 6px; }
.eab-route-card:hover { border-color: #1565c0; background: #e3f2fd; }
.eab-route-card:focus { outline: 2px solid #1565c0; outline-offset: 2px; }

/* Mobile */
@media (max-width: 768px) {
	.eab-booking { padding: 20px 16px; max-width: 100%; }
	.eab-events-wrap .eab-select-desktop,
	.eab-slots-wrap .eab-select-desktop { display: none !important; }
	.eab-route-cards { display: grid !important; margin-top: 12px; }
	.eab-route-card { min-height: 56px; padding: 18px 14px; font-size: 15px; color: #222222; }
	#eab-route-country { min-height: 48px; font-size: 16px; }
	.eab-heli-layout .eab-front-row,
	.eab-heli-layout .eab-rear-row { grid-template-columns: 1fr; gap: 10px; }
	.eab-heli-layout .eab-seat { padding: 16px 12px; min-height: 52px; }
}

.eab-inclusives-list { list-style: none; padding: 0; margin: 16px 0; }
.eab-inclusives-list li {
	padding: 10px 0 10px 28px;
	position: relative;
	color: #333333;
}
.eab-inclusives-list li:before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #2e7d32;
	font-weight: bold;
}

/* Step 3 – Choose your seat: light, visible */
#eab-stage-3 { padding: 12px 0 24px 0; }
#eab-stage-3 .eab-seat-sub { text-align: center; font-size: 14px; color: #444444; margin: -8px 0 14px 0; }
#eab-stage-3 .eab-trip-type { margin: 0 0 20px 0; padding: 0; }
#eab-stage-3 .eab-trip-type label { margin-right: 24px; cursor: pointer; font-size: 15px; color: #222222; }

.eab-heli-layout { text-align: center; margin: 20px 0 24px 0; }
.eab-heli-layout .eab-pilot {
	display: block;
	margin: 0 auto 14px auto;
	max-width: 140px;
	padding: 14px 10px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: bold;
	background: #555555;
	color: #ffffff;
	cursor: default;
	border: 2px solid #333333;
}
.eab-heli-layout .eab-front-row,
.eab-heli-layout .eab-rear-row { display: grid; gap: 12px; margin: 12px 0; }
.eab-heli-layout .eab-front-row { grid-template-columns: 1fr 1fr; }
.eab-heli-layout .eab-rear-row { grid-template-columns: repeat(3, 1fr); }

.eab-heli-layout .eab-seat {
	padding: 14px 10px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: bold;
	text-align: center;
	box-sizing: border-box;
}
.eab-heli-layout .eab-seat .eab-seat-id { display: block; line-height: 1.2; margin-bottom: 6px; }
.eab-heli-layout .eab-seat .eab-seat-price { display: block; font-size: 12px; font-weight: normal; }

/* Available seats – light green, dark text */
.eab-heli-layout .eab-seat.eab-available {
	background: #e8f5e9;
	border: 2px solid #2e7d32;
	color: #1b5e20;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}
.eab-heli-layout .eab-seat.eab-available:hover {
	border-color: #1b5e20;
	background: #c8e6c9;
}
.eab-heli-layout .eab-seat.eab-available .eab-seat-price { color: #2e7d32; }

/* VIP – amber, dark text */
.eab-heli-layout .eab-seat.eab-available.eab-vip {
	background: #fff8e1;
	border-color: #f9a825;
	color: #e65100;
}
.eab-heli-layout .eab-seat.eab-available.eab-vip .eab-seat-price { color: #ef6c00; }
.eab-heli-layout .eab-seat.eab-available.eab-vip:hover {
	border-color: #ef6c00;
	background: #ffecb3;
}

/* Selected seat */
.eab-heli-layout .eab-seat.eab-available.selected {
	background: #1565c0 !important;
	border-color: #0d47a1 !important;
	color: #ffffff !important;
}
.eab-heli-layout .eab-seat.eab-available.selected .eab-seat-price { color: #bbdefb !important; }

/* Booked – grey, not clickable */
.eab-heli-layout .eab-seat.eab-booked {
	background: #eeeeee;
	border: 2px solid #999999;
	color: #666666;
	cursor: not-allowed;
}
.eab-heli-layout .eab-seat.eab-booked .eab-seat-price { color: #666666; }

.eab-seat-result {
	margin: 0 0 24px 0;
	padding: 18px 20px;
	background: #e8f5e9;
	border: 1px solid #2e7d32;
	border-radius: 12px;
	font-size: 15px;
	color: #1b5e20;
}
.eab-seat-result .eab-seat-result-label { color: #2e7d32; font-weight: 600; }
.eab-seat-result .eab-seat-result-trip { display: block; margin-top: 6px; color: #1b5e20; font-size: 14px; }
.eab-tax-note { font-size: 13px; color: #555; font-weight: normal; }

.eab-step-actions { margin-top: 12px; }
.eab-step-actions .eab-btn { margin-right: 12px; margin-top: 0; }

.eab-btn {
	padding: 12px 24px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	margin-right: 8px;
	margin-top: 12px;
	border: 2px solid transparent;
}
.eab-btn-next,
.eab-btn-primary {
	background: #1565c0;
	color: #ffffff;
	border-color: #0d47a1;
}
.eab-btn-next:hover:not(:disabled),
.eab-btn-primary:hover {
	background: #0d47a1;
	border-color: #0d47a1;
}
.eab-btn-next:disabled { opacity: 0.5; cursor: not-allowed; }
.eab-btn-back {
	background: #757575;
	color: #ffffff;
	border-color: #616161;
}
.eab-btn-back:hover {
	background: #616161;
	border-color: #424242;
}

/* Review block – dark text on light */
#eab-review { color: #222222; line-height: 1.6; }
#eab-review p { margin: 0 0 10px 0; color: #333333; }

/* Confirm code page – light, visible */
.eab-confirm-code {
	max-width: 420px;
	margin: 40px auto;
	padding: 24px;
	background: #ffffff;
	color: #222222;
	border: 1px solid #ccc;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.eab-confirm-code h1 { margin: 0 0 8px 0; font-size: 1.25rem; color: #111111; }
.eab-confirm-code .eab-sub { font-size: 14px; color: #555555; margin-bottom: 20px; }
.eab-confirm-code label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #222222;
	margin-bottom: 4px;
}
.eab-confirm-code input[type="text"],
.eab-confirm-code input[type="email"],
.eab-confirm-code input[type="number"],
.eab-confirm-code select {
	width: 100%;
	padding: 12px 14px;
	margin-bottom: 16px;
	border: 2px solid #666666;
	border-radius: 8px;
	background: #ffffff;
	color: #222222;
	font-size: 16px;
	box-sizing: border-box;
}
.eab-confirm-code input:focus,
.eab-confirm-code select:focus {
	outline: none;
	border-color: #1565c0;
}
.eab-confirm-code .eab-msg { padding: 14px; border-radius: 8px; margin-top: 16px; }
.eab-confirm-code .eab-msg.success { background: #e8f5e9; color: #1b5e20; border: 1px solid #2e7d32; }
.eab-confirm-code .eab-msg.error { background: #ffebee; color: #b71c1c; border: 1px solid #ef9a9a; }

/* Stage 5 – success panel */
.eab-booking-success {
	margin-top: 20px;
	padding: 24px;
	background: #e8f5e9;
	border: 2px solid #2e7d32;
	border-radius: 12px;
	color: #1b5e20;
}
.eab-booking-success .eab-success-msg {
	margin: 0 0 16px 0;
	font-size: 15px;
	color: #1b5e20;
	line-height: 1.5;
	font-weight: 500;
}
.eab-booking-success .eab-success-code {
	margin: 0 0 12px 0;
	font-size: 16px;
	color: #111111;
}
.eab-booking-success .eab-success-code span { font-family: monospace; letter-spacing: 0.05em; color: #0d47a1; }
.eab-booking-success .eab-success-hint {
	margin: 0 0 20px 0;
	font-size: 13px;
	color: #2e7d32;
}
.eab-booking-success .eab-btn { margin-top: 0; }
