/**
 * TourBooking Checkout Pro — main checkout styles.
 * Extracted/adapted from woo-travel-checkout-mvp.html prototype.
 *
 * @package WooTravelCheckout
 */

:root {
	--wtc-forest: #1B4332;
	--wtc-forest-mid: #2D6A4F;
	--wtc-forest-light: #40916C;
	--wtc-forest-pale: #D8F3DC;
	--wtc-sand: #F4A261;
	--wtc-slate-50: #F8FAFB;
	--wtc-slate-100: #EEF2F5;
	--wtc-slate-200: #DDE4EA;
	--wtc-slate-300: #BCC8D2;
	--wtc-slate-500: #607D8E;
	--wtc-slate-700: #3A5263;
	--wtc-slate-900: #1C2E38;
	--wtc-danger: #E63946;
	--wtc-r-sm: 8px;
	--wtc-r-md: 12px;
	--wtc-r-lg: 16px;
	--wtc-r-xl: 20px;
	--wtc-r-full: 9999px;
	--wtc-shadow-card: 0 2px 12px rgba(27, 67, 50, .08);
	--wtc-shadow-lift: 0 8px 32px rgba(27, 67, 50, .14);
}

/* ══════════════════════════════════════════════
   LAYOUT BASE
══════════════════════════════════════════════ */
.wtc-checkout-page {
	font-family: 'DM Sans', sans-serif;
	background: var(--wtc-slate-50);
	color: var(--wtc-slate-900);
}

.wtc-checkout-page .material-symbols-outlined {
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	vertical-align: middle;
	line-height: 1;
}

.wtc-checkout-page .wtc-icon-outline {
	font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}

.wtc-checkout-wrapper {
	max-width: 1100px;
	margin: 0 auto;
}

.wtc-checkout-body {
	max-width: 1100px;
	margin: 0 auto;
	padding: 28px 20px 60px;
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 24px;
	align-items: start;
}

@media (max-width: 900px) {
	.wtc-checkout-body {
		grid-template-columns: 1fr;
		padding: 16px 12px 80px;
	}

	.wtc-checkout-right {
		order: -1;
		display: block;
		min-width: 0;
	}

	.wtc-checkout-right.wtc-is-expanded {
		display: block;
	}
}

@media (min-width: 1024px) {
	.wtc-checkout-wrapper,
	.wtc-checkout-body {
		max-width: 1240px;
	}

	.wtc-checkout-body {
		grid-template-columns: minmax(0, 1fr) minmax(400px, 440px);
		gap: clamp(24px, 3vw, 40px);
	}
}

/* ══════════════════════════════════════════════
   HEADER
══════════════════════════════════════════════ */
.wtc-header {
	background: var(--wtc-forest);
	/*
	 * Intentionally NOT sticky/fixed: pinning this header to the viewport top
	 * stacks it above the active theme's own sticky/fixed site header and
	 * hides the theme navigation. Keeping it in normal document flow lets it
	 * render below the theme header without any layout conflict, regardless
	 * of which theme (Storefront, Flatsome, etc.) is active.
	 */
	position: relative;
	z-index: 1;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
}

.wtc-header__inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.wtc-header__logo {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 19px;
	font-weight: 700;
	color: #fff;
}

.wtc-header__logo span {
	color: var(--wtc-sand);
}

.wtc-header__secure {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: rgba(255, 255, 255, .7);
}

.wtc-header__secure .material-symbols-outlined {
	font-size: 16px;
	color: var(--wtc-sand);
}

/* ══════════════════════════════════════════════
   STEP TABS
══════════════════════════════════════════════ */
.wtc-step-tabs {
	background: #fff;
	border-bottom: 1px solid var(--wtc-slate-200);
	/* Kept in normal flow (see .wtc-header) so it never overlaps the theme header/menu. */
	position: relative;
	z-index: 1;
}

.wtc-step-tabs__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	gap: 0;
}

.wtc-step-tab {
	flex: 1;
	padding: 14px 8px;
	text-align: center;
	font-size: 13px;
	font-weight: 500;
	color: var(--wtc-slate-300);
	border-bottom: 3px solid transparent;
	cursor: default;
	transition: all .2s;
	position: relative;
}

.wtc-step-tab--done {
	color: var(--wtc-forest-light);
	border-bottom-color: var(--wtc-forest-light);
}

.wtc-step-tab--active {
	color: var(--wtc-forest);
	border-bottom-color: var(--wtc-forest);
	font-weight: 700;
}

.wtc-step-tab__num {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--wtc-slate-200);
	color: var(--wtc-slate-500);
	font-size: 11px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 6px;
	transition: all .2s;
}

.wtc-step-tab--active .wtc-step-tab__num {
	background: var(--wtc-forest);
	color: #fff;
}

.wtc-step-tab--done .wtc-step-tab__num {
	background: var(--wtc-forest-light);
	color: #fff;
}

/* Mobile order summary bar */
.wtc-mobile-order-bar {
	display: none;
	background: #fff;
	border-bottom: 1px solid var(--wtc-slate-200);
	padding: 10px 16px;
	cursor: pointer;
	/* Kept in normal flow (see .wtc-header) so it never overlaps the theme header/menu. */
	position: relative;
	z-index: 1;
	align-items: center;
	justify-content: space-between;
}

.wtc-mobile-order-bar__left {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--wtc-forest);
}

.wtc-mobile-order-bar__left .material-symbols-outlined {
	font-size: 18px;
}

.wtc-mobile-order-bar__total {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: 15px;
	color: var(--wtc-forest);
}

@media (max-width: 900px) {
	.wtc-mobile-order-bar {
		display: flex;
	}
}

/* ══════════════════════════════════════════════
   FORM PANELS (BEM)
══════════════════════════════════════════════ */
.wtc-panel {
	background: #fff;
	border-radius: var(--wtc-r-lg);
	border: 1px solid var(--wtc-slate-200);
	box-shadow: var(--wtc-shadow-card);
	overflow: hidden;
}

.wtc-panel + .wtc-panel {
	margin-top: 16px;
}

.wtc-panel--step {
	display: none;
}

.wtc-panel--step.wtc-is-active {
	display: block;
	animation: wtc-reveal-step .3s ease both;
}

@keyframes wtc-reveal-step {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

.wtc-panel__header {
	padding: 18px 22px 16px;
	border-bottom: 1px solid var(--wtc-slate-100);
	display: flex;
	align-items: center;
	gap: 12px;
}

.wtc-panel__icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: var(--wtc-forest-pale);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wtc-panel__icon .material-symbols-outlined {
	color: var(--wtc-forest);
	font-size: 20px;
}

.wtc-panel__title {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--wtc-forest);
}

.wtc-panel__subtitle {
	font-size: 12px;
	color: var(--wtc-slate-500);
	margin-top: 1px;
}

.wtc-panel__body {
	padding: 20px 22px;
}

/* ══════════════════════════════════════════════
   FIELD COMPONENTS
══════════════════════════════════════════════ */
.wtc-field {
	margin-bottom: 16px;
}

.wtc-field--has-error .wtc-field__input,
.wtc-field--has-error .wtc-field__select,
.wtc-field--has-error .wtc-field__textarea {
	border-color: var(--wtc-danger);
}

.wtc-field--has-error .wtc-field__error {
	display: block;
}

.wtc-field--valid .wtc-field__check {
	display: block;
}

.wtc-field--valid .wtc-field__input {
	border-color: var(--wtc-forest-light);
	background: #fff;
}

.wtc-field__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--wtc-slate-700);
	margin-bottom: 6px;
}

.wtc-field__required {
	color: var(--wtc-danger);
	margin-left: 2px;
}

.wtc-field__wrap {
	position: relative;
}

.wtc-field__input,
.wtc-field__select,
.wtc-field__textarea {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	background: var(--wtc-slate-50);
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	color: var(--wtc-slate-900);
	outline: none;
	transition: border-color .15s, box-shadow .15s, background .15s;
	appearance: none;
}

.wtc-field__textarea {
	height: auto;
	min-height: 80px;
	padding: 12px 14px;
	resize: vertical;
}

.wtc-field__select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23607D8E' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
	cursor: pointer;
}

/*
 * Fallback only: if JavaScript never runs, a theme's Nice Select may still
 * wrap the País field. At least give that list a height and a scrollbar.
 * With JS on, wtc-geo.js removes the plugin's markup entirely.
 */
#wtc-billing-country + .nice-select .list {
	max-height: 320px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

/* ── País: searchable country picker ───────────────────── */

/*
 * Progressive enhancement: without JS only the native <select> shows. Once
 * wtc-geo.js runs it adds --enhanced, which swaps in the toggle button and
 * parks the real <select> underneath, transparent but still focusable (a
 * required control hidden with display:none breaks browser validation).
 */
.wtc-country-field--enhanced .wtc-country-field__native {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	pointer-events: none;
	z-index: -1;
}

.wtc-country-toggle {
	width: 100%;
	height: 48px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 40px 0 14px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	background: var(--wtc-slate-50);
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	color: var(--wtc-slate-900);
	text-align: left;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s, background .15s;
}

.wtc-country-toggle[hidden] {
	display: none;
}

.wtc-country-toggle:hover {
	background: #fff;
}

.wtc-country-toggle:focus-visible,
.wtc-country-toggle[aria-expanded="true"] {
	outline: none;
	border-color: var(--wtc-forest-light);
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .12);
	background: #fff;
}

.wtc-country-toggle__flag {
	font-size: 18px;
	line-height: 1;
	flex-shrink: 0;
}

.wtc-country-toggle__label {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wtc-country-toggle__caret {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	color: var(--wtc-slate-500);
	pointer-events: none;
}

/* Make room for the caret so the valid-state check doesn't land on top. */
.wtc-country-field--enhanced .wtc-field__check {
	right: 40px;
}

.wtc-field--valid .wtc-country-toggle {
	padding-right: 66px;
}

/*
 * Reparented to <body> and positioned at runtime (see wtc-geo.js
 * positionPanel()) — inside .wtc-panel it would be clipped by its
 * overflow:hidden. The values here are only a pre-JS fallback.
 */
.wtc-country-panel {
	position: fixed;
	max-height: 320px;
	background: #fff;
	border: 1px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	box-shadow: var(--wtc-shadow-lift);
	z-index: 1000;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.wtc-country-panel[hidden] {
	display: none;
}

.wtc-country-panel__search-wrap {
	position: relative;
	padding: 10px;
	border-bottom: 1px solid var(--wtc-slate-100);
	flex-shrink: 0;
}

.wtc-country-panel__search-icon {
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 16px;
	color: var(--wtc-slate-300);
}

.wtc-country-panel__search {
	width: 100%;
	height: 36px;
	padding: 0 10px 0 32px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	outline: none;
}

.wtc-country-panel__search:focus {
	border-color: var(--wtc-forest-light);
}

.wtc-country-panel__list {
	list-style: none;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	overscroll-behavior: contain;
	flex: 1;
}

.wtc-country-panel__option {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 10px;
	border: none;
	background: none;
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	color: var(--wtc-slate-900);
	text-align: left;
	cursor: pointer;
}

.wtc-country-panel__option:hover,
.wtc-country-panel__option.is-active {
	background: var(--wtc-forest-pale);
}

.wtc-country-panel__option[aria-selected="true"] {
	font-weight: 600;
}

.wtc-country-panel__option-flag {
	font-size: 16px;
	flex-shrink: 0;
}

.wtc-country-panel__option-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wtc-country-panel__divider {
	height: 1px;
	background: var(--wtc-slate-100);
	margin: 6px 4px;
}

.wtc-country-panel__empty {
	margin: 0;
	padding: 14px;
	font-size: 13px;
	color: var(--wtc-slate-500);
	text-align: center;
}

.wtc-country-panel__empty[hidden] {
	display: none;
}

.wtc-field__input:focus,
.wtc-field__select:focus,
.wtc-field__textarea:focus {
	border-color: var(--wtc-forest-light);
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .12);
	background: #fff;
}

.wtc-field__check {
	display: none;
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--wtc-forest-light);
	font-size: 18px;
}

.wtc-field__error {
	font-size: 12px;
	color: var(--wtc-danger);
	margin-top: 4px;
	display: none;
}

.wtc-field__hint {
	font-size: 12px;
	color: var(--wtc-slate-500);
	line-height: 1.5;
}

.wtc-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

@media (max-width: 540px) {
	.wtc-grid-2 {
		grid-template-columns: 1fr;
	}
}

.wtc-grid-phone {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 10px;
}

.wtc-phone-prefix {
	height: 48px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	background: var(--wtc-slate-50);
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	color: var(--wtc-slate-900);
	padding: 0 28px 0 12px;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%23607D8E' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 8px center;
	cursor: pointer;
	outline: none;
	transition: border-color .15s;
	width: 100%;
}

.wtc-phone-prefix:focus {
	border-color: var(--wtc-forest-light);
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .12);
}

/* ══════════════════════════════════════════════
   PHONE COUNTRY-CODE PICKER
══════════════════════════════════════════════ */
.wtc-phone-field {
	display: flex;
	align-items: stretch;
}

.wtc-phone-code {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	height: 48px;
	padding: 0 8px 0 14px;
	border: 1.5px solid var(--wtc-slate-200);
	border-right: none;
	border-radius: var(--wtc-r-md) 0 0 var(--wtc-r-md);
	background: var(--wtc-slate-50);
	cursor: pointer;
	font-family: 'DM Sans', sans-serif;
	transition: border-color .15s, background .15s;
}

.wtc-phone-code:hover {
	background: #fff;
}

.wtc-phone-field:focus-within .wtc-phone-code,
.wtc-phone-field:focus-within .wtc-phone-field__number {
	border-color: var(--wtc-forest-light);
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .12);
}

.wtc-phone-code__flag {
	font-size: 18px;
	line-height: 1;
}

.wtc-phone-code__dial {
	font-size: 14px;
	font-weight: 600;
	color: var(--wtc-slate-700);
	white-space: nowrap;
}

.wtc-phone-code__caret {
	font-size: 16px;
	color: var(--wtc-slate-500);
}

.wtc-phone-field__number {
	flex: 1;
	min-width: 0;
	border-radius: 0 var(--wtc-r-md) var(--wtc-r-md) 0;
	padding-right: 40px;
}

/*
 * Positioned at runtime via inline style.position/top/left/width (see
 * wtc-geo.js positionPanel()) once reparented to <body> — this dropdown would
 * otherwise be clipped by .wtc-panel's overflow:hidden. The fixed values below
 * are only a pre-JS fallback; [hidden] must win over this rule's `display`.
 */
.wtc-phone-code__panel {
	position: fixed;
	max-height: 320px;
	background: #fff;
	border: 1px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	box-shadow: var(--wtc-shadow-lift);
	z-index: 1000;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.wtc-phone-code__panel[hidden] {
	display: none;
}

.wtc-phone-code__search-wrap {
	position: relative;
	padding: 10px;
	border-bottom: 1px solid var(--wtc-slate-100);
	flex-shrink: 0;
}

.wtc-phone-code__search-icon {
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 16px;
	color: var(--wtc-slate-300);
}

.wtc-phone-code__search {
	width: 100%;
	height: 36px;
	padding: 0 10px 0 32px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	outline: none;
}

.wtc-phone-code__search:focus {
	border-color: var(--wtc-forest-light);
}

.wtc-phone-code__list {
	list-style: none;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	flex: 1;
}

.wtc-phone-code__option {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 10px;
	border: none;
	background: none;
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	color: var(--wtc-slate-900);
	text-align: left;
	cursor: pointer;
}

.wtc-phone-code__option:hover {
	background: var(--wtc-forest-pale);
}

.wtc-phone-code__option-flag {
	font-size: 16px;
	flex-shrink: 0;
}

.wtc-phone-code__option-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wtc-phone-code__option-dial {
	color: var(--wtc-slate-500);
	flex-shrink: 0;
}

.wtc-phone-code__divider {
	height: 1px;
	background: var(--wtc-slate-100);
	margin: 6px 4px;
}


.wtc-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 12px;
	cursor: pointer;
}

.wtc-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--wtc-forest);
	cursor: pointer;
	flex-shrink: 0;
}

.wtc-checkbox__label {
	font-size: 13px;
	color: var(--wtc-slate-500);
	line-height: 1.5;
}

.wtc-checkbox__label a {
	color: var(--wtc-forest);
	font-weight: 600;
}

.wtc-divider {
	height: 1px;
	background: var(--wtc-slate-100);
	margin: 16px 0;
}

/* ══════════════════════════════════════════════
   PASSENGER SECTION
══════════════════════════════════════════════ */
.wtc-passenger {
	border: 1px dashed var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	padding: 16px;
	margin-bottom: 16px;
}

.wtc-passenger__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

.wtc-passenger__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--wtc-forest);
	display: flex;
	align-items: center;
	gap: 8px;
}

.wtc-passenger__badge {
	background: var(--wtc-forest-pale);
	color: var(--wtc-forest);
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: var(--wtc-r-full);
}

.wtc-passenger__remove {
	background: none;
	border: none;
	color: var(--wtc-slate-300);
	cursor: pointer;
	font-size: 18px;
	display: flex;
	align-items: center;
	padding: 4px;
	border-radius: 6px;
	transition: color .15s, background .15s;
}

.wtc-passenger__remove:hover {
	color: var(--wtc-danger);
	background: #FFF0F0;
}

.wtc-passenger__add {
	display: flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: 1.5px dashed var(--wtc-forest-light);
	color: var(--wtc-forest);
	border-radius: var(--wtc-r-md);
	padding: 10px 16px;
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	width: 100%;
	justify-content: center;
	transition: all .15s;
}

.wtc-passenger__add:hover {
	background: var(--wtc-forest-pale);
	border-style: solid;
}

.wtc-passenger__add:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.wtc-passenger__add .material-symbols-outlined {
	font-size: 18px;
}

/* ══════════════════════════════════════════════
   PAYMENT OPTIONS
══════════════════════════════════════════════ */
.wtc-pay-when {
	margin-bottom: 20px;
}

.wtc-pay-when__title,
.wtc-pay-method__title {
	font-size: 13px;
	font-weight: 700;
	color: var(--wtc-slate-700);
	margin-bottom: 10px;
	letter-spacing: .02em;
}

.wtc-pay-option {
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	padding: 14px 16px;
	margin-bottom: 8px;
	cursor: pointer;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	transition: all .15s;
}

.wtc-pay-option:hover {
	border-color: var(--wtc-forest-light);
	background: var(--wtc-forest-pale);
}

.wtc-pay-option--selected {
	border-color: var(--wtc-forest);
	background: var(--wtc-forest-pale);
}

.wtc-pay-option input[type="radio"] {
	display: none;
}

.wtc-pay-option__dot {
	width: 20px;
	height: 20px;
	border: 2px solid var(--wtc-slate-300);
	border-radius: 50%;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
	transition: border-color .15s;
}

.wtc-pay-option--selected .wtc-pay-option__dot {
	border-color: var(--wtc-forest);
}

.wtc-pay-option--selected .wtc-pay-option__dot::after {
	content: '';
	width: 10px;
	height: 10px;
	background: var(--wtc-forest);
	border-radius: 50%;
	display: block;
}

.wtc-pay-option__info {
	flex: 1;
}

.wtc-pay-option__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--wtc-slate-900);
}

.wtc-pay-option__desc {
	font-size: 12px;
	color: var(--wtc-slate-500);
	margin-top: 3px;
	line-height: 1.4;
}

.wtc-pay-option__amount {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 15px;
	font-weight: 700;
	color: var(--wtc-forest);
	white-space: nowrap;
}

.wtc-pay-option__amount--muted {
	color: var(--wtc-forest-light);
}

.wtc-pay-method {
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	padding: 14px 16px;
	margin-bottom: 8px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 12px;
	transition: all .15s;
}

.wtc-pay-method:hover {
	border-color: var(--wtc-forest-light);
}

.wtc-pay-method--selected {
	border-color: var(--wtc-forest);
	background: var(--wtc-forest-pale);
}

.wtc-pay-method input[type="radio"] {
	display: none;
}

.wtc-pay-method__label {
	font-size: 14px;
	font-weight: 600;
}

.wtc-pay-method__icons {
	display: flex;
	gap: 4px;
	margin-left: auto;
}

.wtc-card-chip {
	height: 20px;
	padding: 0 6px;
	border-radius: 4px;
	font-size: 10px;
	font-weight: 800;
	display: flex;
	align-items: center;
	letter-spacing: .02em;
}

.wtc-card-fields {
	padding: 14px 0 6px;
	display: none;
}

.wtc-card-fields.wtc-is-visible {
	display: block;
}

.wtc-card-num__wrap {
	position: relative;
}

.wtc-card-num__wrap input {
	padding-right: 90px;
}

.wtc-card-brands-inline {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	gap: 4px;
}

/* SSL banner */
.wtc-ssl-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--wtc-forest-pale);
	border: 1px solid rgba(45, 106, 79, .2);
	border-radius: var(--wtc-r-md);
	padding: 12px 16px;
	margin-bottom: 18px;
}

.wtc-ssl-banner .material-symbols-outlined {
	color: var(--wtc-forest);
	font-size: 22px;
	flex-shrink: 0;
}

.wtc-ssl-banner__title {
	font-size: 13px;
	font-weight: 700;
	color: var(--wtc-forest);
}

.wtc-ssl-banner__sub {
	font-size: 12px;
	color: var(--wtc-forest-mid, var(--wtc-forest-light));
}

/* ══════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════ */
.wtc-form-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	padding-top: 18px;
}

.wtc-btn-next {
	flex: 1;
	height: 50px;
	background: var(--wtc-forest);
	color: #fff;
	border: none;
	border-radius: var(--wtc-r-full);
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: all .18s;
	box-shadow: 0 4px 16px rgba(27, 67, 50, .25);
}

.wtc-btn-next:hover {
	background: var(--wtc-forest-mid);
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(27, 67, 50, .3);
}

.wtc-btn-next:active {
	transform: translateY(0);
}

.wtc-btn-back {
	height: 50px;
	padding: 0 20px;
	background: none;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-full);
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--wtc-slate-500);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 6px;
	transition: all .15s;
}

.wtc-btn-back:hover {
	border-color: var(--wtc-slate-300);
	color: var(--wtc-slate-700);
}

.wtc-btn-book {
	flex: 1;
	height: 54px;
	background: linear-gradient(135deg, #2DB55D 0%, #1B8F47 100%);
	color: #fff;
	border: none;
	border-radius: var(--wtc-r-full);
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: all .18s;
	box-shadow: 0 4px 20px rgba(29, 142, 71, .4);
	letter-spacing: -.01em;
}

.wtc-btn-book:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(29, 142, 71, .45);
}

/* ══════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════ */
.wtc-sidebar {
	position: sticky;
	min-width: 0;
	max-width: 100%;
	font-family: 'DM Sans', sans-serif;
	/*
	 * A small fixed offset (rather than one computed from the plugin's own
	 * header/tabs heights) — those elements are no longer pinned to the
	 * viewport, so stacking this against them would risk colliding with the
	 * active theme's own sticky header on scroll.
	 */
	top: 20px;
}

.wtc-sidebar__card {
	background: #fff;
	border: 1px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-xl);
	box-shadow: 0 1px 2px rgba(27, 67, 50, .05), 0 12px 40px -12px rgba(27, 67, 50, .22);
	overflow: hidden;
}

.wtc-sidebar__image-wrap {
	position: relative;
}

.wtc-sidebar__image-wrap--noimg {
	min-height: 120px;
	background: linear-gradient(135deg, var(--wtc-forest) 0%, var(--wtc-forest-light) 100%);
}

.wtc-sidebar__image {
	width: 100%;
	height: 210px;
	object-fit: cover;
	display: block;
	transition: transform .6s ease;
}

.wtc-sidebar__card:hover .wtc-sidebar__image {
	transform: scale(1.04);
}

.wtc-sidebar__image-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(27, 67, 50, .85) 0%, transparent 55%);
}

.wtc-sidebar__image-info {
	position: absolute;
	bottom: 14px;
	left: 16px;
	right: 16px;
}

.wtc-sidebar__tour-name {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 17px;
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 4px;
}

.wtc-sidebar__meta-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.wtc-sidebar__location {
	font-size: 12px;
	color: rgba(255, 255, 255, .75);
	display: flex;
	align-items: center;
	gap: 4px;
}

.wtc-sidebar__location .material-symbols-outlined {
	font-size: 13px;
}

.wtc-sidebar__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: rgba(244, 162, 97, .95);
	color: var(--wtc-forest);
	font-size: 12px;
	font-weight: 800;
	padding: 3px 9px;
	border-radius: var(--wtc-r-full);
}

.wtc-sidebar__quick-info {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 1px solid var(--wtc-slate-100);
}

.wtc-sidebar__quick-info-item {
	padding: 10px 8px;
	text-align: center;
	border-right: 1px solid var(--wtc-slate-100);
}

.wtc-sidebar__quick-info-item:last-child {
	border-right: none;
}

.wtc-sidebar__quick-info-icon {
	font-size: 16px;
	color: var(--wtc-forest-light);
	display: block;
	margin-bottom: 2px;
}

.wtc-sidebar__quick-info-label {
	font-size: 11px;
	font-weight: 700;
	color: var(--wtc-forest);
	display: block;
}

.wtc-sidebar__quick-info-sub {
	font-size: 10px;
	color: var(--wtc-slate-500);
	display: block;
}

.wtc-sidebar__summary {
	padding: 16px 18px;
}

.wtc-sidebar__summary-title {
	font-size: 12px;
	font-weight: 700;
	color: var(--wtc-slate-500);
	letter-spacing: .05em;
	margin-bottom: 12px;
}

.wtc-sidebar__line {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 8px;
}

.wtc-sidebar__line-label {
	font-size: 13px;
	color: var(--wtc-slate-500);
}

.wtc-sidebar__line-value {
	font-size: 13px;
	color: var(--wtc-slate-900);
}

.wtc-sidebar__line--discount .wtc-sidebar__line-label,
.wtc-sidebar__line--discount .wtc-sidebar__line-value {
	color: var(--wtc-forest-light);
	font-weight: 600;
}

.wtc-sidebar__divider {
	height: 1px;
	background: var(--wtc-slate-100);
	margin: 12px 0;
}

.wtc-sidebar__total-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 14px;
}

.wtc-sidebar__total-label {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--wtc-forest);
}

.wtc-sidebar__total-price {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 24px;
	font-weight: 800;
	color: var(--wtc-forest);
}

.wtc-sidebar__coupon {
	display: flex;
	gap: 8px;
	margin-bottom: 14px;
}

.wtc-sidebar__coupon-input {
	flex: 1;
	height: 40px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-sm);
	padding: 0 12px;
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	outline: none;
	transition: border-color .15s;
}

.wtc-sidebar__coupon-input:focus {
	border-color: var(--wtc-forest-light);
}

.wtc-sidebar__coupon-btn {
	height: 40px;
	padding: 0 14px;
	background: var(--wtc-forest);
	color: #fff;
	border: none;
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
	white-space: nowrap;
}

.wtc-sidebar__coupon-btn:hover {
	background: var(--wtc-forest-mid);
}

.wtc-sidebar__coupon-ok {
	display: none;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--wtc-forest-light);
	background: var(--wtc-forest-pale);
	border-radius: var(--wtc-r-sm);
	padding: 8px 12px;
	margin-bottom: 12px;
}

.wtc-sidebar__coupon-ok .material-symbols-outlined {
	font-size: 15px;
}

.wtc-sidebar__cancel-badge {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	background: var(--wtc-forest-pale);
	border-radius: var(--wtc-r-sm);
	padding: 10px 12px;
	margin-top: 4px;
}

.wtc-sidebar__cancel-badge .material-symbols-outlined {
	font-size: 16px;
	color: var(--wtc-forest-light);
	flex-shrink: 0;
	margin-top: 1px;
}

.wtc-sidebar__cancel-badge-text {
	font-size: 12px;
	color: var(--wtc-forest-light);
	line-height: 1.5;
}

.wtc-sidebar__cancel-badge-text strong {
	color: var(--wtc-forest);
}

.wtc-sidebar__trust {
	display: flex;
	justify-content: space-around;
	padding: 12px 18px;
	border-top: 1px solid var(--wtc-slate-100);
}

.wtc-sidebar__trust-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
}

.wtc-sidebar__trust-item .material-symbols-outlined {
	font-size: 20px;
	color: var(--wtc-slate-300);
}

.wtc-sidebar__trust-label {
	font-size: 10px;
	font-weight: 600;
	color: var(--wtc-slate-300);
}

/* ══════════════════════════════════════════════
   SHARED COMPONENTS
══════════════════════════════════════════════ */
.wtc-ssl-banner,
.wtc-info-box {
	display: flex;
	gap: 10px;
	border-radius: var(--wtc-r-md);
	padding: 12px 14px;
	margin-bottom: 16px;
}

.wtc-info-box {
	background: #E0F4FF;
	align-items: flex-start;
}

.wtc-info-box .material-symbols-outlined {
	color: #0096C7;
	font-size: 18px;
	flex-shrink: 0;
	margin-top: 1px;
}

.wtc-info-box p {
	font-size: 13px;
	color: #0072A3;
	line-height: 1.5;
}

.wtc-support-box {
	border: 1px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	padding: 16px;
	margin-top: 16px;
}

.wtc-support-box__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--wtc-slate-900);
	margin-bottom: 10px;
}

.wtc-support-box__links {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.wtc-support-box__link {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	color: var(--wtc-forest);
	font-weight: 500;
	text-decoration: none;
}

.wtc-support-box__link:hover {
	text-decoration: underline;
}

.wtc-support-box__link .material-symbols-outlined {
	font-size: 16px;
}

.wtc-cancel-note {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--wtc-forest-light);
	margin-top: 12px;
}

.wtc-cancel-note .material-symbols-outlined {
	font-size: 16px;
	color: var(--wtc-forest-light);
	flex-shrink: 0;
}

.wtc-terms-text {
	font-size: 12px;
	color: var(--wtc-slate-500);
	line-height: 1.5;
	text-align: center;
	margin-top: 10px;
}

.wtc-terms-text a {
	color: var(--wtc-forest);
	font-weight: 600;
}

/* Security badges / card logos image on the payment step (dashboard-configurable,
   rendered right before WooCommerce's privacy-policy text). */
.wtc-payment-badges {
	margin: 16px 0 4px;
	text-align: center;
}

.wtc-payment-badges__img {
	max-width: 100%;
	height: auto;
	display: inline-block;
}

/* ══════════════════════════════════════════════
   MOBILE / RESPONSIVE (mobile-first, breakpoint 900px)
══════════════════════════════════════════════ */
.wtc-mobile-bottom-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: #fff;
	border-top: 1px solid var(--wtc-slate-200);
	padding: 12px 16px;
	z-index: 200;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
}

.wtc-mobile-bottom-bar__price {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: var(--wtc-forest);
	margin-bottom: 6px;
}

@media (max-width: 900px) {
	.wtc-mobile-bottom-bar {
		display: block;
	}
}

/* ══════════════════════════════════════════════
   WOOCOMMERCE OVERRIDES
   These hide native WooCommerce checkout chrome that the wtc-* templates
   replace, while preserving notices and integrating #payment styling.
══════════════════════════════════════════════ */

/* The WTC templates render their own order summary sidebar; the native
   review-order table and heading would duplicate it. */
.woocommerce-checkout-review-order,
#order_review_heading {
	display: none !important; /* documented override: replaced by .wtc-sidebar markup */
}

/* The native two-column layout conflicts with the wtc-checkout-body grid. */
.woocommerce-checkout .col2-set {
	display: none !important; /* documented override: WTC renders its own step layout */
}

/* Keep WooCommerce notices (errors, coupon messages, etc.) visible — they are
   essential for user feedback and are not duplicated by the WTC templates. */
.woocommerce-notices-wrapper {
	display: block !important; /* documented override: ensure visibility despite theme rules */
	margin-bottom: 16px;
}

/* Native payment box (#payment) is reused inside the WTC payment step so that
   WooCommerce gateways keep working; restyle it to match the wtc-pay-* look. */
.wtc-payment-gateway-wrap #payment {
	background: transparent;
	border: none;
	padding: 0;
}

.wtc-payment-gateway-wrap #payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wtc-payment-gateway-wrap #payment ul.payment_methods li {
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-md);
	padding: 14px 16px;
	margin-bottom: 8px;
	transition: all .15s;
}

.wtc-payment-gateway-wrap #payment ul.payment_methods li.wtc-pay-method--selected,
.wtc-payment-gateway-wrap #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--wtc-forest);
	background: var(--wtc-forest-pale);
}

.wtc-payment-gateway-wrap #payment .payment_box {
	background: var(--wtc-slate-50);
	border-radius: var(--wtc-r-md);
	padding: 14px 16px;
	margin-top: 8px;
	font-size: 13px;
	color: var(--wtc-slate-700);
}

.wtc-payment-gateway-wrap #payment #place_order {
	display: none; /* documented override: WTC renders its own .wtc-btn-book trigger */
}

/* Gateway label + icon (e.g. the ePayco logo). Themes normally size this
   image; with our custom template that styling is lost, so define it here so
   the gateway's default checkout image is visible. */
.wtc-payment-gateway-wrap #payment ul.payment_methods li label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-weight: 600;
	color: var(--wtc-slate-900);
	cursor: pointer;
	line-height: 1.3;
}

.wtc-payment-gateway-wrap #payment ul.payment_methods li label img {
	/* Explicit height (not max-height): SVG gateway logos like ePayco's
	   paymentLogo.svg have no intrinsic size and collapse to 0px with
	   max-height + width:auto. A fixed height forces them to render. */
	height: 28px !important;
	width: auto !important;
	max-width: 220px;
	min-height: 24px;
	display: inline-block !important;
	visibility: visible !important;
	opacity: 1 !important;
	float: none !important;
	margin: 0 0 0 4px;
	padding: 0;
	border: 0;
	vertical-align: middle;
}

/* When a single gateway hides its radio, keep the row padding tidy. */
.wtc-payment-gateway-wrap #payment ul.payment_methods li input.input-radio {
	margin-right: 8px;
}

/* ==========================================================================
   Header logo (uploaded via dashboard media picker)
   ========================================================================== */

.wtc-header__logo-img {
	display: block;
	max-height: 40px;
	width: auto;
	object-fit: contain;
}

/* ==========================================================================
   Template variants
   wtc_checkout_template controls layout density/arrangement:
   classic (default, no overrides needed), minimal, compact.
   All rules below reuse existing --wtc-* custom properties.
   ========================================================================== */

/* --- Minimal: lighter visual weight, single-accent palette, tighter spacing --- */

.wtc-checkout-page--minimal .wtc-step-tabs {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 4px 0;
	gap: 4px;
}

.wtc-checkout-page--minimal .wtc-step-tabs__tab {
	border: none;
	background: transparent;
	color: var(--wtc-slate-500);
	font-weight: 500;
}

.wtc-checkout-page--minimal .wtc-step-tabs__tab.wtc-is-active,
.wtc-checkout-page--minimal .wtc-step-tabs__tab.wtc-is-complete {
	color: var(--wtc-forest);
	border-bottom: 2px solid var(--wtc-forest);
}

.wtc-checkout-page--minimal .wtc-panel {
	box-shadow: none;
	border: 1px solid var(--wtc-slate-100);
	padding: 18px;
}

.wtc-checkout-page--minimal .wtc-panel__header {
	margin-bottom: 12px;
}

.wtc-checkout-page--minimal .wtc-panel__icon {
	display: none;
}

.wtc-checkout-page--minimal .wtc-field {
	margin-bottom: 12px;
}

.wtc-checkout-page--minimal .wtc-sidebar__image,
.wtc-checkout-page--minimal .wtc-sidebar__media {
	max-height: 120px;
	overflow: hidden;
}

.wtc-checkout-page--minimal .wtc-info-box {
	background: transparent;
	border: 1px dashed var(--wtc-slate-200);
}

/* --- Compact: reduced padding, smaller type scale, condensed grids, sidebar de-emphasized --- */

.wtc-checkout-page--compact .wtc-panel {
	padding: 14px;
	border-radius: var(--wtc-r-sm, 8px);
}

.wtc-checkout-page--compact .wtc-panel__title {
	font-size: 0.95em;
}

.wtc-checkout-page--compact .wtc-panel__subtitle,
.wtc-checkout-page--compact .wtc-field__hint,
.wtc-checkout-page--compact .wtc-field__label {
	font-size: 0.85em;
}

.wtc-checkout-page--compact .wtc-field {
	margin-bottom: 10px;
}

.wtc-checkout-page--compact .wtc-field__input,
.wtc-checkout-page--compact .wtc-field__select,
.wtc-checkout-page--compact .wtc-field__textarea {
	padding: 8px 10px;
	font-size: 0.9em;
}

.wtc-checkout-page--compact .wtc-grid-2 {
	gap: 8px;
}

.wtc-checkout-page--compact .wtc-passenger {
	padding: 10px;
	margin-bottom: 8px;
}

.wtc-checkout-page--compact .wtc-checkout-right {
	opacity: 0.92;
}

.wtc-checkout-page--compact .wtc-sidebar {
	padding: 14px;
	font-size: 0.9em;
}

.wtc-checkout-page--compact .wtc-sidebar__image,
.wtc-checkout-page--compact .wtc-sidebar__media {
	max-height: 100px;
	overflow: hidden;
}

/* ══════════════════════════════════════════════
   SIDEBAR — PREMIUM 2026 REDESIGN
   Restyles the order-summary card hero, the "RESUMEN DEL PEDIDO"
   section, and the WooCommerce review table output by
   woocommerce_checkout_order_review (which we cannot change the HTML
   of, only style). All selectors are scoped to .wtc-sidebar*,
   .wtc-ssl-banner or .wtc-cancel-note.
══════════════════════════════════════════════ */

/* --- Hero overlay + eyebrow --- */
.wtc-sidebar__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(27, 67, 50, .92) 0%, rgba(27, 67, 50, .35) 45%, transparent 80%);
}

.wtc-sidebar__tour-info {
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 16px;
}

.wtc-sidebar__eyebrow {
	display: inline-block;
	font-family: 'DM Sans', sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wtc-sand);
	margin-bottom: 6px;
}

.wtc-sidebar__tour-name {
	font-family: 'DM Sans', sans-serif;
	font-size: clamp(18px, 2vw, 21px);
	font-weight: 800;
	color: #fff;
	line-height: 1.22;
	letter-spacing: -.01em;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
	overflow-wrap: anywhere;
}

/* --- Body + section title --- */
.wtc-sidebar__body {
	min-width: 0;
	padding: clamp(18px, 2.2vw, 24px);
}

.wtc-sidebar__title {
	display: flex;
	align-items: center;
	gap: 7px;
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .08em;
	color: var(--wtc-slate-700);
	margin: 0 0 18px;
}

.wtc-sidebar__title .material-symbols-outlined {
	font-size: 18px;
	color: var(--wtc-forest-light);
}

/* ── WooCommerce review table inside the sidebar ──
   The global override at the bottom of this file hides
   .woocommerce-checkout-review-order with !important; when WC renders
   that wrapper INSIDE our sidebar we must show it again. */
.wtc-sidebar__review .woocommerce-checkout-review-order {
	display: block !important; /* documented override: re-show WC review nested in WTC sidebar */
}

.wtc-sidebar__review .shop_table {
	width: 100%;
	max-width: 100%;
	border: none;
	border-collapse: collapse;
	margin: 0;
	font-family: 'DM Sans', sans-serif;
	table-layout: fixed;
}

.wtc-sidebar__review .shop_table th,
.wtc-sidebar__review .shop_table td {
	border: none;
	padding: 0;
	background: transparent;
}

/* Hide the "Producto / Subtotal" thead — the section title covers it. */
.wtc-sidebar__review .shop_table thead {
	display: none;
}

.wtc-sidebar__review .shop_table tbody {
	display: grid;
	gap: 12px;
	min-width: 0;
}

/* --- Line items --- */
.wtc-sidebar__review tr.cart_item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
	padding: 14px;
	border: 1px solid var(--wtc-slate-100);
	border-radius: var(--wtc-r-md);
	background: #fff;
	box-shadow: 0 5px 18px -16px rgba(27, 67, 50, .55);
	transition: border-color .18s ease, background-color .18s ease, opacity .18s ease;
}

.wtc-sidebar__review tr.cart_item.wtc-cart-row--busy {
	border-color: rgba(64, 145, 108, .32);
	background: linear-gradient(135deg, #fff 0%, var(--wtc-slate-50) 100%);
	opacity: .78;
}

.wtc-sidebar__review tr.cart_item:first-child {
	padding-top: 14px;
}

.wtc-sidebar__review td.product-name {
	min-width: 0;
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 750;
	letter-spacing: -.01em;
	color: var(--wtc-slate-900);
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.wtc-sidebar__review td.product-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 6px;
	width: 100%;
	min-width: 0;
	padding-top: 10px;
	border-top: 1px solid var(--wtc-slate-100);
	font-family: 'DM Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 800;
	color: var(--wtc-forest);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.wtc-sidebar__review .product-quantity {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	margin-left: 6px;
	padding: 2px 9px;
	border-radius: var(--wtc-r-full);
	background: var(--wtc-forest-pale);
	color: var(--wtc-forest);
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 700;
	vertical-align: middle;
}

/* Product thumbnail (Checkout::add_item_thumbnail) — sits inline before the
   name/quantity text, matching the product-quantity pill's vertical-align
   so the whole "thumb + name + qty" line stays aligned on one baseline. */
.wtc-sidebar__review .wtc-cart-item-thumb {
	display: inline-block;
	width: 40px;
	height: 40px;
	margin: 0 10px 3px 0;
	border-radius: var(--wtc-r-sm);
	object-fit: cover;
	vertical-align: middle;
	background: var(--wtc-forest-pale);
	box-shadow: inset 0 0 0 1px rgba(27, 67, 50, .08);
}

/* GoFly passenger editor. The WooCommerce line remains one reservation;
   only GoFly's Adulto/Niños quantities and their calculated price change. */
.wtc-sidebar__review .wtc-booking-editor {
	display: grid;
	box-sizing: border-box;
	gap: 8px;
	width: 100%;
	min-width: 0;
	margin-top: 12px;
	padding: 10px;
	border: 1px solid var(--wtc-slate-100);
	border-radius: var(--wtc-r-sm);
	background: var(--wtc-slate-50);
}

.wtc-sidebar__review .wtc-booking-editor__row {
	display: grid;
	grid-template-columns: minmax(64px, 1fr) 116px minmax(70px, max-content);
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.wtc-sidebar__review .wtc-booking-editor__label {
	min-width: 0;
	font-size: 12px;
	font-weight: 650;
	color: var(--wtc-slate-700);
	overflow-wrap: anywhere;
}

.wtc-sidebar__review .wtc-booking-stepper {
	display: grid;
	grid-template-columns: 44px 28px 44px;
	align-items: center;
	justify-content: center;
	width: 116px;
	height: 44px;
	border: 1px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-full);
	background: #fff;
	overflow: hidden;
}

.wtc-sidebar__review .wtc-booking-stepper__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wtc-forest);
	font: 700 20px/1 'DM Sans', sans-serif;
	cursor: pointer;
	transition: background-color .15s, color .15s, opacity .15s;
}

.wtc-sidebar__review .wtc-booking-stepper__button:hover:not(:disabled) {
	background: var(--wtc-forest-pale);
}

.wtc-sidebar__review .wtc-booking-stepper__button:focus-visible {
	outline: 2px solid var(--wtc-forest-light);
	outline-offset: -3px;
}

.wtc-sidebar__review .wtc-booking-stepper__button:disabled {
	opacity: .3;
	cursor: default;
}

.wtc-sidebar__review .wtc-booking-stepper__value {
	font-size: 13px;
	font-weight: 800;
	text-align: center;
	color: var(--wtc-slate-900);
	font-variant-numeric: tabular-nums;
}

.wtc-sidebar__review .wtc-booking-editor__amount {
	justify-self: end;
	font-size: 12px;
	font-weight: 800;
	color: var(--wtc-forest);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.wtc-sidebar__review .wtc-booking-editor__hint {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 20px;
	margin: 2px 0 0;
	font: 600 10.5px/1.3 'DM Sans', sans-serif;
	color: var(--wtc-slate-500);
	text-align: center;
}

.wtc-sidebar__review .wtc-booking-editor__hint::before {
	content: '';
	width: 6px;
	height: 6px;
	flex: 0 0 6px;
	border-radius: 50%;
	background: var(--wtc-forest-light);
}

.wtc-sidebar__review .wtc-booking-editor--pending .wtc-booking-editor__hint {
	color: var(--wtc-forest);

}

.wtc-sidebar__review .wtc-booking-editor--pending .wtc-booking-editor__hint::before {
	animation: wtc-booking-pending-pulse .7s ease-in-out infinite alternate;
}

@keyframes wtc-booking-pending-pulse {
	to { opacity: .35; transform: scale(.72); }
}

/* Remove-booking button (wtc-cart-summary.js + Ajax::remove_cart_item). The
	 text stays visible so the action does not depend on interpreting an icon. */
.wtc-sidebar__review .wtc-cart-row__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: auto;
	min-width: 44px;
	height: 44px;
	flex-shrink: 0;
	padding: 0 10px;
	border: none;
	border-radius: var(--wtc-r-full);
	background: transparent;
	color: var(--wtc-slate-500);
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 650;
	cursor: pointer;
	transition: color .15s, background .15s, box-shadow .15s;
}

.wtc-sidebar__review .wtc-cart-row__remove .material-symbols-outlined {
	font-size: 17px;
}

.wtc-sidebar__review .wtc-cart-row__remove:hover {
	color: var(--wtc-danger);
	background: rgba(230, 57, 70, .07);
}

.wtc-sidebar__review .wtc-cart-row__remove:focus-visible {
	outline: 2px solid var(--wtc-forest-light);
	outline-offset: 2px;
	background: var(--wtc-slate-50);
}

.wtc-sidebar__review .wtc-cart-row__remove:disabled {
	opacity: .4;
	cursor: default;
}

.wtc-sidebar__review .wtc-cart-row__status {
	display: none;
	align-items: center;
	gap: 6px;
	order: 3;
	width: 100%;
	min-width: 0;
	margin-left: 0;
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wtc-forest-light);
	white-space: normal;
	overflow-wrap: break-word;
}

.wtc-sidebar__review .wtc-cart-row__status--visible {
	display: inline-flex;
}

.wtc-sidebar__review tr.wtc-cart-row--busy .wtc-cart-row__status--visible::before {
	content: '';
	width: 12px;
	height: 12px;
	flex: 0 0 12px;
	border: 2px solid var(--wtc-forest-pale);
	border-top-color: var(--wtc-forest-light);
	border-radius: 50%;
	animation: wtc-cart-status-spin .75s linear infinite;
}

.wtc-sidebar__review .wtc-cart-row__status--error {
	color: var(--wtc-danger);
}

.wtc-sidebar__review .wtc-cart-row__status--error::before {
	display: none;
}

@keyframes wtc-cart-status-spin {
	to { transform: rotate(360deg); }
}

/* --- Per-item meta (Adulto / Niños / Booking Date / Package…) ---
   Rendered by WooCommerce as <dl class="variation"> (dt label + dd value)
   or as <ul class="wc-item-meta"> (li > strong label + value) — which
   format appears depends on the booking/tour plugin that attaches the
   data, so both get the same treatment here. Laid out as clean two-column
   rows (label left, value right of it) rather than inline-wrapping pills —
   a wrapping layout looked fine for short values but broke down on long
   ones (e.g. "Package Name"), pushing the value onto its own line out of
   step with every other row. Labels keep WooCommerce's own punctuation
   (it already includes a trailing ":") instead of adding a second one. */
.wtc-sidebar__review .wc-item-meta,
.wtc-sidebar__review dl.variation {
	list-style: none;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	margin: 10px 0 0;
	padding: 10px 12px;
	background: var(--wtc-slate-50);
	border: 1px solid var(--wtc-slate-100);
	border-radius: var(--wtc-r-sm);
	font-size: 12.5px;
	line-height: 1.4;
}

.wtc-sidebar__review dl.variation {
	display: grid;
	grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);
	column-gap: 10px;
	row-gap: 5px;
	align-items: baseline;
}

.wtc-sidebar__review dl.variation dt,
.wtc-sidebar__review dl.variation dd {
	margin: 0;
	padding: 0;
	border: none;
}

.wtc-sidebar__review dl.variation dt {
	grid-column: auto;
	font-family: 'DM Sans', sans-serif;
	font-weight: 500;
	font-size: 11.5px;
	color: var(--wtc-slate-500);
	white-space: nowrap;
}

.wtc-sidebar__review dl.variation dd {
	grid-column: auto;
	font-weight: 600;
	font-size: 12.5px;
	color: var(--wtc-slate-900);
	min-width: 0;
	word-break: normal;
	overflow-wrap: break-word;
}

.wtc-sidebar__review dl.variation dt.wtc-meta-row--empty,
.wtc-sidebar__review dl.variation dd.wtc-meta-row--empty,
.wtc-sidebar__review dl.variation dt.wtc-meta-row--booking-price,
.wtc-sidebar__review dl.variation dd.wtc-meta-row--booking-price,
.wtc-sidebar__review .wc-item-meta li.wtc-meta-row--booking-price {
	display: none;
}

.wtc-sidebar__review dl.variation dd p {
	display: inline;
	margin: 0;
}

/* Long values (e.g. "Package Name") switch from a narrow side-by-side
   column to a full-width stacked layout — wtc-cart-summary.js toggles this
   class once it measures the rendered text. Grid auto-placement naturally
   puts dt and dd on their own full-width rows once both span every column. */
.wtc-sidebar__review dl.variation dt.wtc-meta-row--stacked,
.wtc-sidebar__review dl.variation dd.wtc-meta-row--stacked {
	grid-column: 1 / -1;
}

.wtc-sidebar__review dl.variation dd.wtc-meta-row--stacked {
	margin-top: -2px;
}

.wtc-sidebar__review .wc-item-meta li.wtc-meta-row--stacked {
	grid-column: 1 / -1;
	grid-template-columns: minmax(0, 1fr);
	align-items: flex-start;
	gap: 2px;
}

/* wc-item-meta (list) variant — same two-column rhythm, one row per <li>. */
.wtc-sidebar__review .wc-item-meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
}

.wtc-sidebar__review .wc-item-meta li {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: baseline;
	gap: 2px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: none;
}

.wtc-sidebar__review .wc-item-meta strong,
.wtc-sidebar__review .wc-item-meta .wc-item-meta-label {
	flex-shrink: 0;
	min-width: 82px;
	font-family: 'DM Sans', sans-serif;
	font-weight: 500;
	font-size: 11.5px;
	color: var(--wtc-slate-500);
	margin: 0;
}

.wtc-sidebar__review .wc-item-meta p {
	margin: 0;
	min-width: 0;
	font-weight: 600;
	font-size: 12.5px;
	color: var(--wtc-slate-900);
	word-break: normal;
	overflow-wrap: break-word;
}

/* --- Grouped bookings of the same tour ---
   wtc-cart-summary.js detects 2+ cart rows for the same product (e.g. the
   same tour booked twice with different dates) and inserts one shared
   header row before them instead of repeating the product name/price for
   each booking. Each booking row keeps its own meta/price but gets a
   forest-pale left accent to read as "part of the group above" and has
   its own (now redundant) name hidden. */
.wtc-sidebar__review tr.wtc-cart-group-header {
	display: block;
	min-width: 0;
	padding: 14px;
	border: 1px solid rgba(64, 145, 108, .2);
	border-left: 3px solid var(--wtc-forest-light);
	border-radius: var(--wtc-r-md);
	background: linear-gradient(135deg, var(--wtc-slate-50) 0%, #fff 100%);
}

.wtc-sidebar__review tr.wtc-cart-group-header:first-child {
	padding-top: 14px;
}

.wtc-sidebar__review tr.wtc-cart-group-header td {
	display: grid;
	grid-template-columns: minmax(0, 1fr) max-content;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 0;
}

.wtc-cart-group-header__info {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.wtc-cart-group-header__info .wtc-cart-item-thumb {
	margin: 0;
	flex-shrink: 0;
}

.wtc-cart-group-header__name {
	min-width: 0;
	font-family: 'DM Sans', sans-serif;
	font-weight: 700;
	font-size: 13.5px;
	letter-spacing: -.01em;
	color: var(--wtc-slate-900);
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.wtc-cart-group-header__count {
	flex-shrink: 0;
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--wtc-forest);
	background: var(--wtc-forest-pale);
	border-radius: var(--wtc-r-full);
	padding: 4px 10px;
	white-space: nowrap;
}

.wtc-sidebar__review tr.cart_item.wtc-cart-row--grouped {
	padding: 12px 12px 12px 14px;
	border-left: 3px solid var(--wtc-forest-pale);
	background: var(--wtc-slate-50);
	box-shadow: none;
}

.wtc-cart-row__hidden-name {
	display: none;
}

/* --- Footer: subtotal / discount --- */
.wtc-sidebar__review tfoot tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
}

.wtc-sidebar__review tfoot tr.cart-subtotal {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--wtc-slate-200);
}

.wtc-sidebar__review tfoot th {
	min-width: 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--wtc-slate-500);
}

.wtc-sidebar__review tfoot td {
	min-width: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--wtc-slate-700);
	text-align: right;
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

.wtc-sidebar__review tr.cart-discount th,
.wtc-sidebar__review tr.cart-discount td {
	color: var(--wtc-forest-light);
}

/* --- Grand total bar --- */
.wtc-sidebar__review tr.order-total {
	display: grid;
	grid-template-columns: minmax(0, 1fr) max-content;
	margin-top: 12px;
	padding: clamp(16px, 2vw, 20px);
	border-radius: var(--wtc-r-md);
	background: linear-gradient(135deg, var(--wtc-forest-pale) 0%, #EAF8EE 100%);
	border: 1px solid rgba(64, 145, 108, .25);
	align-items: center;
}

.wtc-sidebar__review tr.order-total th {
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 750;
	color: var(--wtc-forest);
}

.wtc-sidebar__review tr.order-total td,
.wtc-sidebar__review tr.order-total .amount {
	font-family: 'DM Sans', sans-serif;
	font-size: clamp(24px, 2.5vw, 30px);
	font-weight: 800;
	letter-spacing: -.035em;
	color: var(--wtc-forest);
	line-height: 1.05;
	white-space: nowrap;
}

.wtc-sidebar__review tr.order-total .includes_tax,
.wtc-sidebar__review .tax-rate {
	display: block;
	font-family: 'DM Sans', sans-serif;
	font-size: 11px;
	font-weight: 500;
	color: var(--wtc-slate-500);
}

/* --- Coupon form (woocommerce_checkout_coupon_form output) --- */
.wtc-sidebar__coupon {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	min-width: 0;
	margin: 16px 0 0;
}

/* Toggle prompt ("¿Tienes un cupón? Haz clic aquí…") on its own clean line,
   without WooCommerce's default info icon/border that squashed it into a
   narrow column in the sidebar. */
.wtc-sidebar__coupon .woocommerce-form-coupon-toggle {
	margin: 0;
}

.wtc-sidebar__coupon .woocommerce-info {
	display: block;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--wtc-slate-700);
}

.wtc-sidebar__coupon .woocommerce-info::before {
	display: none;
}

.wtc-sidebar__coupon .woocommerce-info a.showcoupon {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wtc-forest-light);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: normal;
}

.wtc-sidebar__coupon .woocommerce-info a.showcoupon:focus-visible {
	outline: 2px solid var(--wtc-forest-light);
	outline-offset: 3px;
	border-radius: 2px;
}

/* The actual input + apply button sit on a second line, full width. */
.wtc-sidebar__coupon .checkout_coupon {
	display: flex;
	width: 100%;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: none;
}

.wtc-sidebar__coupon .checkout_coupon .form-row {
	float: none;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.wtc-sidebar__coupon .checkout_coupon .form-row-first {
	flex: 1;
}

.wtc-sidebar__coupon input[type="text"] {
	width: 100%;
	height: 44px;
	border: 1.5px solid var(--wtc-slate-200);
	border-radius: var(--wtc-r-sm);
	padding: 0 14px;
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	color: var(--wtc-slate-900);
	outline: none;
	transition: border-color .15s, box-shadow .15s;
}

.wtc-sidebar__coupon input[type="text"]:focus {
	border-color: var(--wtc-forest-light);
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .12);
}

.wtc-sidebar__coupon button {
	height: 44px;
	padding: 0 18px;
	background: var(--wtc-forest);
	color: #fff;
	border: none;
	border-radius: var(--wtc-r-sm);
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s, transform .15s;
}

.wtc-sidebar__coupon button:hover {
	background: var(--wtc-forest-mid);
	transform: translateY(-1px);
}

.wtc-sidebar__coupon button:focus-visible {
	outline: 2px solid var(--wtc-sand);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(244, 162, 97, .18);
}

/* --- Cancel note --- */
.wtc-cancel-note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	padding: 11px 13px;
	background: var(--wtc-forest-pale);
	border-radius: var(--wtc-r-sm);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--wtc-forest);
	line-height: 1.4;
}

.wtc-cancel-note .material-symbols-outlined {
	font-size: 18px;
	color: var(--wtc-forest-light);
	flex-shrink: 0;
}

/* --- Trust strip --- */
.wtc-sidebar__trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4px;
	padding: 14px 16px;
	border-top: 1px solid var(--wtc-slate-100);
	background: var(--wtc-slate-50);
}

.wtc-sidebar__trust-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
}

.wtc-sidebar__trust-item .material-symbols-outlined {
	font-size: 20px;
	color: var(--wtc-forest-light);
}

.wtc-sidebar__trust-label {
	font-family: 'DM Sans', sans-serif;
	font-size: 10px;
	font-weight: 600;
	color: var(--wtc-slate-500);
	line-height: 1.2;
}

/* --- SSL banner (premium) --- */
.wtc-ssl-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	background: linear-gradient(135deg, var(--wtc-forest) 0%, var(--wtc-forest-mid) 100%);
	border: none;
	border-radius: var(--wtc-r-lg);
	padding: 14px 16px;
	margin-top: 16px;
	margin-bottom: 18px;
	box-shadow: 0 6px 20px -8px rgba(27, 67, 50, .5);
}

.wtc-ssl-banner .material-symbols-outlined {
	color: var(--wtc-sand);
	font-size: 26px;
	flex-shrink: 0;
}

.wtc-ssl-banner__title {
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
}

.wtc-ssl-banner__sub {
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	color: rgba(255, 255, 255, .72);
	line-height: 1.35;
	margin-top: 2px;
}

/* --- Responsive --- */
@media (max-width: 900px) {
	.wtc-sidebar {
		position: relative;
		top: auto;
	}

	.wtc-sidebar__image {
		height: clamp(160px, 28vw, 210px);
	}

	.wtc-sidebar__body {
		padding: clamp(16px, 4vw, 24px);
	}

	.wtc-sidebar__review tr.order-total td,
	.wtc-sidebar__review tr.order-total .amount {
		font-size: clamp(24px, 4vw, 30px);
	}
}

@media (max-width: 480px) {
	.wtc-sidebar__image {
		height: 160px;
	}

	.wtc-sidebar__tour-info {
		left: 14px;
		right: 14px;
		bottom: 14px;
	}

	.wtc-sidebar__body {
		padding: 14px;
	}

	.wtc-sidebar__title {
		margin-bottom: 14px;
		font-size: 12px;
	}

	.wtc-sidebar__review .shop_table tbody {
		gap: 10px;
	}

	.wtc-sidebar__review tr.cart_item {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 12px;
	}

	.wtc-sidebar__review tr.cart_item:first-child {
		padding-top: 12px;
	}

	.wtc-sidebar__review td.product-total {
		justify-content: space-between;
		width: 100%;
		padding-top: 8px;
		border-top: 1px solid var(--wtc-slate-100);
	}

	.wtc-sidebar__review td.product-total .amount {
		min-width: 0;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.wtc-sidebar__review dl.variation {
		grid-template-columns: minmax(68px, max-content) minmax(0, 1fr);
		column-gap: 8px;
		row-gap: 4px;
	}

	.wtc-sidebar__review dl.variation dt,
	.wtc-sidebar__review dl.variation dd {
		grid-column: auto;
	}

	.wtc-sidebar__review dl.variation dt.wtc-meta-row--stacked,
	.wtc-sidebar__review dl.variation dd.wtc-meta-row--stacked {
		grid-column: 1 / -1;
	}

	.wtc-sidebar__review dl.variation dt {
		white-space: normal;
	}

	.wtc-sidebar__review .wc-item-meta li {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}

	.wtc-sidebar__review .wc-item-meta {
		grid-template-columns: minmax(0, 1fr);
	}

	.wtc-sidebar__review .wc-item-meta li + li {
		margin-top: 6px;
	}

	.wtc-sidebar__review tr.wtc-cart-group-header td {
		grid-template-columns: minmax(0, 1fr);
	}

	.wtc-cart-group-header__count {
		justify-self: start;
	}

	.wtc-sidebar__review tr.order-total {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 14px;
	}

	.wtc-sidebar__review tr.order-total td {
		justify-self: end;
		max-width: 100%;
	}

	.wtc-sidebar__review tr.order-total td,
	.wtc-sidebar__review tr.order-total .amount {
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.wtc-sidebar__coupon .checkout_coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.wtc-sidebar__coupon .checkout_coupon .form-row-first,
	.wtc-sidebar__coupon .checkout_coupon .form-row-last,
	.wtc-sidebar__coupon button {
		width: 100%;
	}

	.wtc-sidebar__trust {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 6px;
	}

	.wtc-ssl-banner {
		align-items: flex-start;
	}

	.wtc-ssl-banner__copy {
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wtc-sidebar__image,
	.wtc-sidebar__coupon button,
	.wtc-sidebar__review tr.cart_item,
	.wtc-sidebar__review .wtc-cart-row__remove {
		transition: none;
	}

	.wtc-sidebar__review .wtc-cart-row__status--visible::before {
		animation: none;
	}

	.wtc-sidebar__review .wtc-booking-editor--pending .wtc-booking-editor__hint::before {
		animation: none;
	}

	.wtc-sidebar__card:hover .wtc-sidebar__image,
	.wtc-sidebar__coupon button:hover {
		transform: none;
	}
}
