/* Le Way Go booking widget, tour page and checkout. Uses theme --lwg-* tokens. */

/* ---------- Shared buttons (outside the block editor) ---------- */

.lwg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	border: 0;
	border-radius: var(--lwg-radius-pill);
	background: var(--lwg-navy);
	color: var(--lwg-white);
	font: 600 17px/1.2 var(--lwg-font);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease;
}
.lwg-btn:hover { background: var(--lwg-navy-hover); color: var(--lwg-white); }
a.lwg-btn, a.lwg-btn:hover { color: var(--lwg-white); text-decoration: none; }
.lwg-btn--accent { background: var(--lwg-coral-deep); }
.lwg-btn--accent:hover { background: var(--lwg-coral-deep-hover); }
.lwg-btn--block { width: 100%; }
.lwg-btn:disabled { background: var(--lwg-line); color: var(--lwg-slate); cursor: not-allowed; }

/* ---------- Booking card ---------- */

.lwg-booking {
	background: var(--lwg-white);
	border: 1px solid var(--lwg-line);
	border-radius: var(--lwg-radius-md);
	box-shadow: var(--lwg-shadow);
	scroll-margin-top: 96px;
}
.lwg-booking__head {
	border-radius: calc(var(--lwg-radius-md) - 1px) calc(var(--lwg-radius-md) - 1px) 0 0;
	background: var(--lwg-navy);
	color: var(--lwg-sand);
	padding: 14px 20px;
}
.lwg-booking__head p { margin: 0; }
/* Bookings closed: the card is only its navy head (no white band under it). */
.lwg-booking:not(:has([data-lwg-panel])) { background: var(--lwg-navy); border-color: var(--lwg-navy); overflow: hidden; }
.lwg-booking:not(:has([data-lwg-panel])) .lwg-booking__head { padding-bottom: 20px; }
.lwg-booking__from { line-height: 1.2; }
.lwg-booking__from strong { font-size: 30px; color: var(--lwg-white); }
.lwg-booking__from span { font-size: 15px; }
.lwg-booking__perk { font-size: 15px; margin-top: 4px !important; opacity: 0.9; }
.lwg-booking__perk::before { content: "✓ "; font-weight: 700; }
.lwg-booking__perk + .lwg-booking__perk { margin-top: 2px !important; }
/* Before launch: "Online booking opens on …" instead of the booking button (Settings → Le Way Go → Launch). */
.lwg-booking-closed { margin-top: 14px; padding: 12px 14px; border-radius: var(--lwg-radius-sm); background: rgba(255, 255, 255, 0.1); }
.lwg-booking-closed p { margin: 0; font-size: 15px; line-height: 1.45; }
.lwg-booking-closed p + p { margin-top: 4px; font-size: 14px; opacity: 0.9; }
.lwg-checkout-empty .lwg-booking-closed { background: var(--lwg-sand); color: var(--lwg-navy); }
.lwg-booking-closed a { color: inherit; text-decoration: underline; }
.lwg-checkout-empty--closed .lwg-booking-closed { margin: 0 0 20px; padding: 20px 22px; border: 1px solid var(--lwg-line); border-radius: var(--lwg-radius-md); }
.lwg-checkout-empty--closed .lwg-booking-closed p { font-size: 17px; }
.lwg-checkout-empty--closed .lwg-booking-closed p + p { font-size: 16px; }
.lwg-app-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	padding: 4px 10px;
	border-radius: var(--lwg-radius-pill);
	background: #E6F3F2;
	border: 1px solid rgb(27 127 121 / 25%);
	color: #0F5A55;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}
.lwg-app-tag::before { content: ""; flex: none; width: 15px; height: 15px; background: currentColor; -webkit-mask: var(--lwg-i-headphones) center / contain no-repeat; mask: var(--lwg-i-headphones) center / contain no-repeat; }
.lwg-booking__launch { display: none; margin-top: 14px; }
.lwg-booking__body { padding: 0 20px; }
.lwg-booking__loading { color: var(--lwg-slate); padding: 16px 0; }
.lwg-booking__foot { padding: 14px 20px 18px; border-top: 1px solid var(--lwg-line); }
.lwg-sheet__bar { display: none; }

/* ---------- Steps (one open at a time) ---------- */

.lwg-acc { border-bottom: 1px solid var(--lwg-line); }
.lwg-acc:last-child { border-bottom: 0; }
.lwg-acc__head {
	width: 100%;
	min-height: 48px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
	border: 0;
	background: none;
	color: var(--lwg-navy);
	font: 600 16px/1.3 var(--lwg-font);
	text-align: left;
	cursor: pointer;
}
.lwg-acc__head:disabled { cursor: default; }
.lwg-acc__label {
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lwg-slate);
	min-width: 56px;
}
.lwg-acc__value { font-weight: 500; color: var(--lwg-slate); }
.lwg-acc.is-done .lwg-acc__value { color: var(--lwg-navy); font-weight: 600; }
.lwg-acc__change { font-size: 14px; font-weight: 600; color: var(--lwg-navy); text-decoration: underline; visibility: hidden; }
.lwg-acc.is-done .lwg-acc__change { visibility: visible; }
.lwg-acc.is-done .lwg-acc__head:hover .lwg-acc__change { color: var(--lwg-coral-deep); }
.lwg-acc.is-done .lwg-acc__label::before { content: "✓ "; color: var(--lwg-teal); }
.lwg-acc.is-open .lwg-acc__value { display: none; }
.lwg-acc.is-open .lwg-acc__label { color: var(--lwg-navy); }
.lwg-acc__head:disabled .lwg-acc__value { opacity: 0.7; }
.lwg-acc__body { padding: 0 0 16px; }
.lwg-hint { font-size: 14px; color: var(--lwg-slate); margin: 0 0 10px; }
.lwg-cal + .lwg-hint { margin: 8px 0 0; }
.lwg-cal + .lwg-hint:empty { display: none; }

/* ---------- Options (e.g. Big Bus 24 h / 48 h) ---------- */

.lwg-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lwg-option {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--lwg-line);
	border-radius: var(--lwg-radius-sm);
	background: var(--lwg-white);
	color: var(--lwg-navy);
	font: 400 15px/1.35 var(--lwg-font);
	text-align: left;
	cursor: pointer;
}
.lwg-option:hover { border-color: var(--lwg-navy); }
.lwg-option.is-selected { border: 2px solid var(--lwg-navy); padding: 9px 11px; background: var(--lwg-sand); }
.lwg-option__top { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px; }
.lwg-option__top .lwg-option__price { grid-column: 1 / -1; }
.lwg-option__radio {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--lwg-slate);
	background: var(--lwg-white);
}
.lwg-option.is-selected .lwg-option__radio { border-color: var(--lwg-navy); box-shadow: inset 0 0 0 4px var(--lwg-white); background: var(--lwg-navy); }
.lwg-option__name { font-weight: 600; font-size: 16px; }
.lwg-option__price { font-size: 13px; color: var(--lwg-slate); white-space: nowrap; }
.lwg-option__price strong { font-size: 18px; color: var(--lwg-navy); }
.lwg-option__product { font-size: 12px; color: var(--lwg-slate); }
.lwg-option__features { display: flex; flex-direction: column; gap: 1px; }
.lwg-option__feature { font-size: 13px; line-height: 1.35; }
.lwg-option__feature::before { content: "✓ "; color: var(--lwg-teal); font-weight: 700; }
.lwg-option__badge {
	position: absolute;
	top: -9px;
	right: 12px;
	padding: 2px 10px;
	border-radius: var(--lwg-radius-pill);
	background: var(--lwg-teal);
	color: var(--lwg-white);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
}
.lwg-options:has(.lwg-option__badge) { padding-top: 6px; }

/* ---------- Calendar ---------- */

.lwg-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
.lwg-cal__title { margin: 0; font-weight: 600; }
.lwg-cal__nav {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--lwg-line);
	background: var(--lwg-white);
	color: var(--lwg-navy);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.lwg-cal__nav:hover:not(:disabled) { border-color: var(--lwg-navy); }
.lwg-cal__nav:disabled { opacity: 0.35; cursor: default; }
.lwg-cal__row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-bottom: 3px; }
.lwg-cal__dow { text-align: center; font-size: 12px; font-weight: 600; color: var(--lwg-slate); padding: 2px 0; }
.lwg-cal__day {
	width: 100%;
	min-height: 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: var(--lwg-radius-sm);
	background: transparent;
	color: var(--lwg-disabled);
	font: 500 15px/1.1 var(--lwg-font);
	padding: 2px 0;
}
.lwg-cal__day.is-available { color: var(--lwg-navy); background: var(--lwg-sand); cursor: pointer; }
.lwg-cal__day.is-available:hover { border-color: var(--lwg-navy); }
.lwg-cal__day.is-selected,
.lwg-cal__day.is-selected:hover { background: var(--lwg-navy); color: var(--lwg-white); border-color: var(--lwg-navy); }
.lwg-cal__price { font-size: 10.5px; font-weight: 600; color: var(--lwg-teal); }
.lwg-cal__day.is-selected .lwg-cal__price { color: var(--lwg-sand); }

/* ---------- Times ---------- */

.lwg-times { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.lwg-time {
	min-height: 52px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--lwg-line);
	border-radius: var(--lwg-radius-sm);
	background: var(--lwg-white);
	color: var(--lwg-navy);
	font: 600 15px/1.2 var(--lwg-font);
	cursor: pointer;
	padding: 6px 4px;
}
.lwg-time:hover:not(:disabled) { border-color: var(--lwg-navy); }
.lwg-time.is-selected { background: var(--lwg-navy); color: var(--lwg-white); border-color: var(--lwg-navy); }
.lwg-time:disabled { color: var(--lwg-disabled); cursor: not-allowed; background: var(--lwg-white); }
.lwg-time__note { font-size: 11px; font-weight: 600; color: var(--lwg-coral-deep); }
.lwg-time.is-selected .lwg-time__note { color: var(--lwg-sand); }
.lwg-time:disabled .lwg-time__note { color: var(--lwg-slate); }

.lwg-times--dense { grid-template-columns: repeat(4, 1fr); gap: 6px; }
.lwg-times--dense .lwg-time { min-height: 46px; font-size: 14px; padding: 4px 2px; }
.lwg-times--dense .lwg-time__note { font-size: 10px; }

.lwg-seg {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 4px;
	padding: 4px;
	margin-bottom: 10px;
	background: var(--lwg-sand);
	border-radius: var(--lwg-radius-pill);
}
.lwg-seg__btn {
	min-height: 44px;
	border: 0;
	border-radius: var(--lwg-radius-pill);
	background: transparent;
	color: var(--lwg-navy);
	font: 600 15px/1.1 var(--lwg-font);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.lwg-seg__btn[aria-selected="true"] { background: var(--lwg-white); box-shadow: 0 1px 3px rgb(20 33 61 / 15%); }
.lwg-seg__count { font-size: 11px; font-weight: 500; color: var(--lwg-slate); }

/* ---------- Guests ---------- */

.lwg-guest { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 3px 0; }
.lwg-guest__info { display: flex; flex-direction: column; }
.lwg-guest__label { font-weight: 600; }
.lwg-guest__meta { font-size: 14px; color: var(--lwg-slate); }
.lwg-qty { display: flex; align-items: center; gap: 4px; }
.lwg-qty__btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--lwg-navy);
	background: var(--lwg-white);
	color: var(--lwg-navy);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.lwg-qty__btn:hover:not(:disabled) { background: var(--lwg-navy); color: var(--lwg-white); }
.lwg-qty__btn:disabled { border-color: var(--lwg-line); color: var(--lwg-disabled); cursor: not-allowed; }
.lwg-qty__val { min-width: 28px; text-align: center; font-weight: 600; font-size: 18px; }
.lwg-guest ~ .lwg-hint { margin-top: 8px; }

/* ---------- Total ---------- */

.lwg-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lwg-total__what { font-size: 15px; color: var(--lwg-slate); }
.lwg-total__amount { font-size: 26px; }
.lwg-form-error {
	margin: 0 0 12px;
	padding: 10px 12px;
	border-radius: var(--lwg-radius-sm);
	background: var(--lwg-error-bg);
	color: var(--lwg-error-text);
	font-size: 15px;
}
.lwg-acc__body .lwg-form-error { margin: 10px 0 0; }

/* ---------- Phone and tablet: full-screen sheet ---------- */

@media (max-width: 1023px) {
	.lwg-booking__launch { display: flex; }
	.lwg-booking__head { border-radius: calc(var(--lwg-radius-md) - 1px); }
	.lwg-booking__panel { display: none; }

	.lwg-booking.is-sheet-open .lwg-booking__panel {
		display: flex;
		flex-direction: column;
		position: fixed;
		inset: 0;
		z-index: 1000;
		background: var(--lwg-white);
		animation: lwg-sheet-in 0.22s ease-out;
	}
	.lwg-booking.is-sheet-open .lwg-sheet__bar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 8px 8px 8px 20px;
		padding-top: calc(8px + env(safe-area-inset-top));
		border-bottom: 1px solid var(--lwg-line);
	}
	.lwg-sheet__title { margin: 0; font-weight: 600; font-size: 17px; line-height: 1.3; }
	.lwg-sheet__close {
		flex: none;
		width: 44px;
		height: 44px;
		border: 0;
		border-radius: 50%;
		background: var(--lwg-sand);
		color: var(--lwg-navy);
		font-size: 28px;
		line-height: 1;
		cursor: pointer;
	}
	.lwg-booking.is-sheet-open .lwg-booking__body {
		flex: 1;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
	.lwg-booking.is-sheet-open .lwg-booking__foot {
		padding-bottom: calc(16px + env(safe-area-inset-bottom));
		box-shadow: 0 -6px 20px rgb(20 33 61 / 8%);
	}
	.lwg-booking.is-sheet-open .lwg-cal__day { min-height: 48px; }
	html.lwg-no-scroll, html.lwg-no-scroll body { overflow: hidden; }
}
@keyframes lwg-sheet-in {
	from { transform: translateY(24px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* ---------- Mobile bar ---------- */

.lwg-mobile-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: var(--lwg-white);
	border-top: 1px solid var(--lwg-line);
	box-shadow: 0 -6px 20px rgb(20 33 61 / 10%);
	transition: transform 0.2s ease;
}
.lwg-mobile-bar.is-hidden { transform: translateY(110%); }
.lwg-mobile-bar__price { margin: 0; line-height: 1.1; }
.lwg-mobile-bar__price span { display: block; font-size: 13px; color: var(--lwg-slate); }
.lwg-mobile-bar__price strong { font-size: 22px; }
@media (min-width: 1024px) {
	.lwg-mobile-bar { display: none; }
}

/* ---------- Tour page ---------- */

.lwg-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; font-size: 14px; }
.lwg-breadcrumb li:not(:last-child)::after { content: "›"; margin-left: 6px; color: var(--lwg-slate); }
.lwg-breadcrumb a { color: var(--lwg-slate); }
.lwg-breadcrumb [aria-current] { color: var(--lwg-navy); }

.lwg-gallery { display: grid; grid-template-columns: repeat(var(--lwg-thumbs, 4), 1fr); gap: 8px; }
.lwg-gallery__item { display: block; border-radius: var(--lwg-radius-sm); overflow: hidden; line-height: 0; }
.lwg-gallery__thumbs, .lwg-gallery__thumbs > li { display: contents; }
.lwg-gallery__thumb { padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.lwg-gallery__thumb::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 3px transparent; transition: box-shadow 0.15s ease; }
.lwg-gallery__thumb[aria-pressed="true"]::after { box-shadow: inset 0 0 0 3px var(--lwg-coral-deep); }
.lwg-gallery__thumb[aria-pressed="false"] img { opacity: 0.85; }
.lwg-gallery__thumb:focus-visible { outline: 3px solid var(--lwg-navy); outline-offset: 2px; }
.lwg-gallery__item img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; border-radius: 0; transition: transform 0.3s ease; }
.lwg-gallery__item:hover img { transform: scale(1.03); }
.lwg-gallery__item--main { grid-column: 1 / -1; border-radius: var(--lwg-radius-md); }
.lwg-gallery__item--main img { aspect-ratio: 16 / 10; }
@media (max-width: 600px) {
	.lwg-gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; margin-inline: -16px; padding-inline: 16px; }
	.lwg-gallery__item { flex: 0 0 88%; scroll-snap-align: center; }
	.lwg-gallery__item img, .lwg-gallery__item--main img { aspect-ratio: 4 / 3; }
	.lwg-gallery__thumbs > li:first-child { display: none; }
	.lwg-gallery__thumb::after { display: none; }
	.lwg-gallery__thumb[aria-pressed="false"] img { opacity: 1; }
	.lwg-gallery__thumb { cursor: default; }
}

/* ---------- Checkout ---------- */

.lwg-steps-bar { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 24px; counter-reset: s; font-size: 14px; font-weight: 600; }
.lwg-steps-bar li { counter-increment: s; display: flex; align-items: center; gap: 8px; color: var(--lwg-slate); white-space: nowrap; }
.lwg-steps-bar li::before { flex: none; }
@media (max-width: 480px) {
	.lwg-steps-bar { gap: 6px; font-size: 13px; }
	.lwg-steps-bar li { gap: 6px; white-space: normal; line-height: 1.25; min-width: 0; }
	.lwg-steps-bar li:not(:last-child)::after { width: 10px; flex: none; }
}
.lwg-field-hint { margin: -6px 0 14px; font-size: 14px; color: var(--lwg-slate); }
.lwg-steps-bar li::before {
	content: counter(s);
	display: grid; place-items: center;
	width: 26px; height: 26px; border-radius: 50%;
	border: 1px solid var(--lwg-line); background: var(--lwg-white);
}
.lwg-steps-bar li:not(:last-child)::after { content: ""; width: 24px; height: 1px; background: var(--lwg-line); }
.lwg-steps-bar .is-done::before { content: "✓"; background: var(--lwg-teal); border-color: var(--lwg-teal); color: var(--lwg-white); }
.lwg-steps-bar .is-current { color: var(--lwg-navy); }
.lwg-steps-bar .is-current::before { background: var(--lwg-navy); border-color: var(--lwg-navy); color: var(--lwg-white); }

.lwg-checkout__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 781px) {
	.lwg-checkout__grid { grid-template-columns: 1fr; }
	.lwg-summary { order: -1; }
}
.lwg-checkout__form h2, .lwg-summary h3 { margin-top: 0; }
.lwg-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .lwg-field-row { grid-template-columns: 1fr; } }
.lwg-field { margin: 0 0 14px; }
.lwg-field label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 4px; }
.lwg-field input {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--lwg-input-border);
	border-radius: var(--lwg-radius-sm);
	font: 400 17px/1.4 var(--lwg-font);
	color: var(--lwg-navy);
	background: var(--lwg-white);
	box-sizing: border-box;
}
.lwg-field input:focus { border-color: var(--lwg-navy); outline: 2px solid var(--lwg-navy); outline-offset: 0; }
.lwg-field input[aria-invalid="true"] { border-color: var(--lwg-coral-deep); }
.lwg-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; margin: 4px 0 16px; }
.lwg-check input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--lwg-navy); }
.lwg-notice {
	margin-top: 16px;
	padding: 14px 16px;
	border-radius: var(--lwg-radius-sm);
	background: var(--lwg-sand);
	border-left: 4px solid var(--lwg-teal);
}
.lwg-summary__facts, .lwg-summary__lines { list-style: none; padding: 0; margin: 0 0 12px; }
.lwg-summary__facts li { display: flex; flex-direction: column; margin-bottom: 8px; font-weight: 500; }
.lwg-summary__facts span { font-size: 13px; color: var(--lwg-slate); font-weight: 400; }
.lwg-summary__lines { border-top: 1px solid var(--lwg-line); padding-top: 12px; }
.lwg-summary__lines li { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.lwg-summary__lines small { color: var(--lwg-slate); }
.lwg-summary__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--lwg-line); padding-top: 12px; margin: 0 0 12px; }
.lwg-summary__total strong { font-size: 26px; }
.lwg-summary__perks { font-size: 14px; margin: 0; }

/* ---------- Desktop: compact card so every step fits an 800 px-tall window ---------- */

@media (min-width: 1024px) {
	.lwg-booking__head { padding: 12px 20px; }
	.lwg-booking__from strong { font-size: 26px; }
	.lwg-booking__perk { font-size: 13px; line-height: 1.35; }
	.lwg-acc__head { min-height: 44px; padding: 6px 0; }
	.lwg-acc__body { padding-bottom: 12px; }
	.lwg-cal__day { min-height: 38px; }
	.lwg-guest { padding: 1px 0; }
	.lwg-qty__btn { width: 38px; height: 38px; font-size: 20px; }
	.lwg-guest__meta { font-size: 13px; }
	.lwg-booking__foot { padding: 12px 20px 14px; }
	.lwg-total { margin-bottom: 10px; }
}

/* ---------- Business details, contact form, admin notes ---------- */

mark.lwg-todo { background: #FFF1B8; color: var(--lwg-navy); padding: 0 4px; border-radius: 4px; }
.lwg-admin-note {
	margin: 0 0 24px;
	padding: 12px 16px;
	border-radius: var(--lwg-radius-sm);
	background: #FFF1B8;
	border-left: 4px solid #C9A400;
	font-size: 15px;
}
.lwg-contact-form .lwg-field select,
.lwg-contact-form .lwg-field textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--lwg-input-border);
	border-radius: var(--lwg-radius-sm);
	font: 400 17px/1.4 var(--lwg-font);
	color: var(--lwg-navy);
	background: var(--lwg-white);
	box-sizing: border-box;
}
.lwg-contact-form .lwg-field textarea { min-height: 140px; resize: vertical; }
.lwg-contact-form .lwg-field select:focus,
.lwg-contact-form .lwg-field textarea:focus { border-color: var(--lwg-navy); outline: 2px solid var(--lwg-navy); outline-offset: 0; }
.lwg-contact-form .lwg-notice { margin: 0 0 16px; }
.lwg-optional { font-weight: 400; color: var(--lwg-slate); }
.lwg-form-note { font-size: 14px; color: var(--lwg-slate); margin-top: 12px; }
.lwg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- App store buttons ---------- */

.lwg-store-badges { display: flex; flex-wrap: wrap; gap: 10px; }
.lwg-store-badge {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	min-height: 52px;
	padding: 8px 18px;
	border-radius: 10px;
	background: var(--lwg-navy);
	color: var(--lwg-white) !important;
	text-decoration: none !important;
	line-height: 1.15;
}
.lwg-store-badge span { font-size: 11px; opacity: 0.85; }
.lwg-store-badge strong { font-size: 17px; }
.has-navy-background-color .lwg-store-badge { background: var(--lwg-white); color: var(--lwg-navy) !important; }
.lwg-store-soon { font-size: 15px; color: var(--lwg-slate); }
.has-navy-background-color .lwg-store-soon { color: var(--lwg-sand); }

/* City Guide tag on photos */
.lwg-tour-card__media, .lwg-gallery__item--main { position: relative; }
.lwg-app-tag--photo {
	position: absolute;
	left: 12px;
	bottom: 12px;
	margin: 0 !important;
	background: rgb(255 255 255 / 94%);
	border: 0;
	color: #0F5A55;
	box-shadow: 0 2px 10px rgb(20 33 61 / 20%);
	line-height: 1.3;
	backdrop-filter: blur(4px);
	pointer-events: none;
}
.lwg-gallery__item--main .lwg-app-tag--photo { font-size: 15px; padding: 6px 14px; }
.lwg-gallery .lwg-gallery__item--main { overflow: hidden; }
.lwg-gallery__credits { grid-column: 1 / -1; margin: 6px 0 0; font-size: 12px; line-height: 1.4; color: var(--lwg-slate); }
.lwg-gallery__credits a { color: inherit; }
.lwg-only-narrow { display: none; }
@media (max-width: 600px) { .lwg-only-wide { display: none; } .lwg-only-narrow { display: inline; } }

/* ---------- Payment ---------- */

.lwg-pay-title { margin-top: var(--wp--preset--spacing--40) !important; padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--lwg-line); }
.lwg-payment-element { min-height: 120px; margin: 0 0 12px; }
.lwg-secure { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--lwg-slate); margin: 0 0 16px; }
.lwg-secure::before { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--lwg-i-lock) center / contain no-repeat; mask: var(--lwg-i-lock) center / contain no-repeat; }
.lwg-test-note { font-size: 14px; background: #FFF4E0; color: #6B4100; border-radius: var(--lwg-radius-sm); padding: 10px 12px; margin: 0 0 14px; }

/* ---------- Confirmation ---------- */

.lwg-confirm { max-width: 1000px; margin: 0 auto; padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--70); }
.lwg-confirm.is-style-card { max-width: 640px; padding: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--70); }
.lwg-confirm.is-style-card h1 { font-size: 32px; margin: 0 0 10px; }
.lwg-confirm__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 0; }
.lwg-confirm__head { text-align: center; max-width: 640px; margin: 0 auto var(--wp--preset--spacing--50); }
.lwg-confirm__head h1 { margin: 6px 0 10px; }
.lwg-confirm__check {
	display: inline-grid; place-items: center;
	width: 64px; height: 64px; border-radius: 50%;
	background: var(--lwg-teal); color: var(--lwg-white);
	font-size: 32px; font-weight: 700; margin-bottom: 12px;
}
.lwg-confirm__ref {
	display: inline-block; margin-top: 8px;
	padding: 10px 18px; border-radius: var(--lwg-radius-pill);
	background: var(--lwg-sand); border: 1px solid var(--lwg-line); font-size: 15px;
}
.lwg-confirm__ref strong { font-size: 18px; letter-spacing: 0.06em; margin-left: 6px; }
.lwg-confirm__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); align-items: start; }
@media (max-width: 781px) { .lwg-confirm__grid { grid-template-columns: 1fr; } }
.lwg-confirm__grid h2 { font-size: 22px; margin: 0 0 12px; }
.lwg-confirm__rows { margin: 0; }
.lwg-confirm__rows div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--lwg-line); }
.lwg-confirm__rows div:last-child { border-bottom: 0; font-size: 18px; }
.lwg-confirm__rows dt { color: var(--lwg-slate); }
.lwg-confirm__rows dd { margin: 0; font-weight: 600; text-align: right; }
.lwg-confirm__next ol { padding-left: 1.2em; margin: 0 0 12px; }
.lwg-confirm__next li { margin-bottom: 12px; }
.lwg-confirm__next .lwg-muted { font-size: 15px; }
.lwg-confirm.is-style-card, .lwg-confirm > .is-style-card { margin-top: var(--wp--preset--spacing--40); }

/* ---------- Manage My Booking ---------- */

.lwg-manage { max-width: 1000px; margin: 0 auto; padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--70); }
.lwg-manage__intro { text-align: center; max-width: 640px; margin: 0 auto var(--wp--preset--spacing--40); }
.lwg-manage__intro h1 { margin: 6px 0 10px; letter-spacing: 0.02em; }
.lwg-manage__find { max-width: 480px; margin: 0 auto; }
.lwg-manage__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); align-items: start; }
@media (max-width: 781px) { .lwg-manage__grid { grid-template-columns: 1fr; } }
.lwg-manage__grid h2 { font-size: 22px; margin: 0 0 12px; }
.lwg-manage__ticket { font-size: 15px; margin: 14px 0 0; }
.lwg-manage__tickets { margin: 18px 0 0; padding: 16px 18px; border: 1px solid var(--lwg-line); border-radius: var(--lwg-radius-md, 14px); background: var(--lwg-sand); }
.lwg-manage__tickets h3 { margin: 0 0 6px; font-size: 18px; }
.lwg-manage__tickets p { margin: 0 0 10px; }
.lwg-manage__downloads { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 0 !important; }
.lwg-manage .lwg-notice { max-width: 1000px; margin: 0 0 var(--wp--preset--spacing--40); }
.lwg-pill { display: inline-block; padding: 4px 14px; border-radius: var(--lwg-radius-pill); font-weight: 600; font-size: 14px; background: #E6F3F2; color: #0F5A55; }
.lwg-pill.is-cancelled, .lwg-pill.is-departed { background: #EEF1F5; color: var(--lwg-slate); }
.lwg-pill.is-unpaid { background: var(--lwg-error-bg); color: var(--lwg-error-text); }
.lwg-manage__panel { border: 1px solid var(--lwg-line); border-radius: var(--lwg-radius-sm); padding: 0 16px; margin-bottom: 12px; }
.lwg-manage__panel[open] { padding-bottom: 16px; }
.lwg-manage__panel summary { min-height: 52px; display: flex; align-items: center; font-weight: 600; cursor: pointer; }
.lwg-manage__panel .lwg-times { margin: 10px 0; }
.lwg-manage__panel input[type="date"] { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--lwg-input-border); border-radius: var(--lwg-radius-sm); font: 400 17px/1.4 var(--lwg-font); color: var(--lwg-navy); box-sizing: border-box; }
.lwg-manage__call { display: flex; flex-wrap: wrap; gap: 10px; }
.lwg-btn--outline { background: transparent; color: var(--lwg-navy) !important; border: 2px solid var(--lwg-navy); }
.lwg-btn--outline:hover { background: var(--lwg-navy); color: var(--lwg-white) !important; }
.lwg-manage .lwg-field input { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--lwg-input-border); border-radius: var(--lwg-radius-sm); font: 400 17px/1.4 var(--lwg-font); box-sizing: border-box; }

/* ---------- Reviews on tour pages ([lewaygo_reviews]) ---------- */
.lwg-stars { --s: 18px; display: inline-block; vertical-align: -3px; width: calc(var(--s) * 5); height: var(--s);
	background: linear-gradient(90deg, var(--lwg-coral) calc(var(--lwg-rating) / 5 * 100%), var(--lwg-line) 0);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3-4.6-4.4 6.3-.9z'/%3E%3C/svg%3E") 0 0 / var(--s) var(--s) repeat-x; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3-4.6-4.4 6.3-.9z'/%3E%3C/svg%3E") 0 0 / var(--s) var(--s) repeat-x; }
.lwg-reviews { margin-top: var(--wp--preset--spacing--60); }
.lwg-reviews h2 { margin-bottom: 8px; }
.lwg-reviews__summary { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 18px; }
.lwg-reviews__summary .lwg-stars { --s: 22px; }
.lwg-reviews__summary span { color: var(--lwg-slate); font-size: 16px; }
.lwg-reviews__note { margin: 4px 0 18px; font-size: 14px; color: var(--lwg-slate); }
.lwg-reviews__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.lwg-review { margin: 0; background: var(--lwg-white); border: 1px solid var(--lwg-line); border-radius: var(--lwg-radius-md); padding: 16px 18px; }
.lwg-review__body { margin: 8px 0 6px; font-size: 16px; line-height: 1.55; }
.lwg-review__by { margin: 6px 0 0; font-size: 14px; font-weight: 600; }
.lwg-review__by span { font-weight: 400; color: var(--lwg-slate); }
.lwg-review__reply { margin-top: 12px; padding: 10px 14px; border-left: 3px solid var(--lwg-teal); background: var(--lwg-sand); border-radius: 0 10px 10px 0; font-size: 15px; }
.lwg-review__reply p { margin: 0; }
.lwg-review__reply .lwg-review__reply-by { font-size: 13px; font-weight: 600; color: var(--lwg-teal); margin-bottom: 2px; }

/* ---------- Guides on tour pages ([lewaygo_tour_guides]) ---------- */
.lwg-tour-guides { margin-top: var(--wp--preset--spacing--60); }
.lwg-tour-guides h2 { margin: 4px 0 14px; }
.lwg-tour-guides ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.lwg-tour-guides a { position: relative; display: grid; gap: 4px; padding: 14px 44px 14px 18px; background: var(--lwg-white); border: 1px solid var(--lwg-line); border-radius: var(--lwg-radius-md); color: var(--lwg-navy); text-decoration: none; }
.lwg-tour-guides a::after { content: "→"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); color: var(--lwg-coral-deep); font-weight: 600; }
.lwg-tour-guides a:hover, .lwg-tour-guides a:focus-visible { border-color: var(--lwg-navy); }
.lwg-tour-guides strong { font-size: 17px; line-height: 1.35; }
.lwg-tour-guides span { font-size: 15px; line-height: 1.5; color: var(--lwg-slate); }
