/*
Theme Name:   Hello Elementor Child
Theme URI:    https://cruiseexcursions.co.nz
Description:  Hello Elementor Child Theme for Cruise Excursions
Author:       Cruise Excursions
Template:     hello-elementor
Version:      1.5.98
Text Domain:  hello-elementor-child
*/

/* Header logo */
.elementor-242 .elementor-element-930e3ac img,
.elementor-location-header .elementor-element-930e3ac img {
	width: 280px !important;
	max-width: 280px !important;
	height: auto !important;
}

@media (max-width: 767px) {
	.elementor-242 .elementor-element-930e3ac img,
	.elementor-location-header .elementor-element-930e3ac img {
		width: 180px !important;
		max-width: 180px !important;
	}
}

/* ============================================================
   HELLO THEME RESET OVERRIDES
   reset.css hardcodes #c36 (pink) on links, buttons and inputs.
   No !important needed — child theme loads after parent so
   same-specificity rules win, and class selectors on styled
   components naturally beat these element-level selectors.
   ============================================================ */

a {
	color: #327ad0;
}

a:hover,
a:active {
	color: #1a1a1a;
}

/* No focus ring on click/keyboard — brand preference */
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
[type="button"]:focus,
[type="button"]:focus-visible,
[type="submit"]:focus,
[type="submit"]:focus-visible,
.elementor-button:focus,
.elementor-button:focus-visible,
.elementor-icon:focus,
.elementor-icon:focus-visible,
summary:focus,
summary:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

/* Replace pink button defaults with neutral — styled buttons
   override these via their own class selectors */
[type="button"],
[type="submit"],
button {
	border-color: transparent;
	color: inherit;
	background-color: transparent;
}

[type="button"]:hover,
[type="button"]:focus,
[type="button"]:active,
[type="button"]:focus-visible,
[type="submit"]:hover,
[type="submit"]:focus,
[type="submit"]:active,
[type="submit"]:focus-visible,
button:hover,
button:focus,
button:active,
button:focus-visible {
	background-color: transparent;
	border-color: transparent;
	color: inherit;
	outline: none;
	box-shadow: none;
}

/* Inputs & selects — green focus ring, never pink */
input:focus,
input:active,
input:focus-visible,
select:focus,
select:active,
select:focus-visible,
textarea:focus,
textarea:active,
textarea:focus-visible {
	border-color: #327ad0;
	outline: none;
	box-shadow: 0 0 0 3px rgba(101, 157, 70, 0.12);
}

/* ============================================================
   TOUR GRID SHORTCODE — Cruise Excursions brand colours
   ============================================================ */

.lt-tour-grid {
	--lt-primary: #327ad0;
	--lt-navy: #1A2B48;
	--lt-primary-soft: rgba(50, 122, 208, 0.14);
	--lt-text: #000;
	--lt-muted: #7a7a7a;
	--lt-star: #ffc107;
	--lt-border: #ebebeb;
	--lt-bg-soft: #f7f7f7;

	display: grid;
	grid-template-columns: repeat(var(--lt-tour-grid-columns, 4), minmax(0, 1fr));
	gap: 1.5rem;
	font-family: "GoogleSansFlex-VariableFont", sans-serif;
}

.lt-tour-grid__empty {
	margin: 0;
	color: var(--lt-muted);
}

/* ── Tour archive hero — white text over video ───────────────────── */
.elementor-location-archive .elementor-element-48e9600 .elementor-heading-title,
.elementor-location-archive .elementor-element-48e9600 .elementor-widget-heading .elementor-heading-title,
.elementor-483 .elementor-element-ef7ba7f .elementor-heading-title {
	color: #ffffff !important;
}

.elementor-location-archive .elementor-element-48e9600 .elementor-widget-text-editor,
.elementor-location-archive .elementor-element-48e9600 .elementor-widget-text-editor p,
.elementor-483 .elementor-element-df81a23,
.elementor-483 .elementor-element-df81a23 p,
.elementor-483 .elementor-element-df81a23 .m-para {
	color: #ffffff !important;
}

/* ── Archive filters ─────────────────────────────────────────────── */
.lt-tour-archive {
	font-family: "GoogleSansFlex-VariableFont", sans-serif;
	position: relative;
}

.lt-tour-archive__filters {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 2rem;
	flex-wrap: wrap;
}

.lt-tour-archive__filters-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	flex: 1;
}

.lt-tour-archive__field {
	display: flex;
	align-items: center;
	min-width: 0;
}

.lt-tour-archive__label {
	display: none;
}

/* Pill-style selects — high specificity to beat Elementor form styles */
.lt-tour-archive .lt-tour-archive__select {
	padding: 0.55rem 2.2rem 0.55rem 0.95rem;
	border: 1.5px solid var(--lt-primary);
	border-radius: 999px;
	background-color: #327ad033 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23327ad0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.8rem center !important;
	color: #000;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
	white-space: nowrap;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	width: auto;
	max-width: none;
	height: auto;
}

.lt-tour-archive .lt-tour-archive__select:hover {
	border-color: var(--lt-primary);
	background-color: #327ad033 !important;
}

.lt-tour-archive .lt-tour-archive__select:focus {
	outline: none;
	border-color: var(--lt-primary);
}

/* Active filter pill — filled green */
.lt-tour-archive .lt-tour-archive__select--active {
	border-color: var(--lt-primary) !important;
	background-color: var(--lt-primary) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	color: #fff !important;
	box-shadow: 0 2px 8px rgba(101, 157, 70, 0.35);
}

.lt-tour-archive .lt-tour-archive__select--active:hover {
	background-color: #4983e1 !important;
	border-color: #4983e1 !important;
}

.lt-tour-archive__field--dates {
	position: relative;
}

body .lt-tour-archive button.lt-tour-archive__dates-trigger,
.elementor-kit-24 .lt-tour-archive button.lt-tour-archive__dates-trigger,
.lt-tour-archive button.lt-tour-archive__dates-trigger {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	padding: 0.55rem 0.95rem !important;
	border: 1.5px solid var(--lt-primary) !important;
	border-radius: 999px !important;
	background: #327ad033 !important;
	background-color: #327ad033 !important;
	background-image: none !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06) !important;
	color: #000 !important;
	font-family: inherit !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

body .lt-tour-archive button.lt-tour-archive__dates-trigger:hover,
.lt-tour-archive button.lt-tour-archive__dates-trigger:hover {
	border-color: var(--lt-primary) !important;
	background: #327ad033 !important;
	background-color: #327ad033 !important;
	color: #000 !important;
}

body .lt-tour-archive button.lt-tour-archive__dates-trigger--active,
body .lt-tour-archive button.lt-tour-archive__dates-trigger--active:hover,
.lt-tour-archive button.lt-tour-archive__dates-trigger--active {
	border-color: var(--lt-primary) !important;
	background: var(--lt-primary) !important;
	background-color: var(--lt-primary) !important;
	color: #fff !important;
}

.lt-tour-archive__dates-trigger svg {
	flex: 0 0 auto;
}

/* Divider between filters and results count */
.lt-tour-archive__results {
	margin-left: auto;
	padding-left: 0.75rem;
	border-left: 1.5px solid var(--lt-border);
	color: var(--lt-muted);
	font-size: 0.84rem;
	white-space: nowrap;
	flex-shrink: 0;
}

/* Clear link */
.lt-tour-archive .lt-tour-archive__clear,
.lt-tour-archive .lt-tour-archive__clear:visited {
	display: none;
	align-items: center;
	gap: 0.3rem;
	padding: 0.5rem 0.85rem;
	border: 1.5px solid #ddd;
	border-radius: 999px;
	background: none !important;
	box-shadow: none !important;
	color: var(--lt-muted) !important;
	font-family: inherit;
	font-size: 0.84rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease;
	white-space: nowrap;
	flex-shrink: 0;
}

.lt-tour-archive .lt-tour-archive__clear:hover,
.lt-tour-archive .lt-tour-archive__clear:focus {
	background: none !important;
	border-color: #aaa !important;
	color: var(--lt-text) !important;
	box-shadow: none !important;
}

.lt-tour-archive--filtered .lt-tour-archive__clear {
	display: flex;
}

.lt-tour-archive__no-results {
	margin-top: 1.5rem;
}

/* ── Loading overlay ─────────────────────────────────────────────── */
.lt-tour-archive__grid-wrap {
	position: relative;
}

.lt-tour-archive__overlay {
	display: none;
	position: absolute;
	inset: -1rem;
	z-index: 10;
	background: rgba(255, 255, 255, 0.78);
	border-radius: 16px;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(2px);
}

.lt-tour-archive__overlay--visible {
	display: flex;
}

.lt-tour-archive__spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--lt-border);
	border-top-color: var(--lt-primary);
	border-radius: 50%;
	animation: lt-spin 0.7s linear infinite;
}

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

@media (max-width: 640px) {
	.lt-tour-archive__filters::before {
		width: 100%;
	}

	.lt-tour-archive__results {
		margin-left: 0;
		padding-left: 0;
		border-left: none;
		width: 100%;
	}
}

.lt-tour-card {
	background: #fff;
	border: 1px solid var(--lt-border);
	border-radius: 16px;
	overflow: hidden;
	height: 100%;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.22s ease-out, transform 0.22s ease-out;
}

.lt-tour-card:hover {
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.14), 0 4px 10px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

.lt-tour-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.lt-tour-card__link:hover,
.lt-tour-card__link:focus {
	color: inherit;
	text-decoration: none;
}

.lt-tour-card__link:focus-visible {
	outline: none;
}

.lt-tour-card__media {
	position: relative;
	flex-shrink: 0;
	overflow: hidden;
}

.lt-tour-card__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transform: scale(1);
	transition: transform 0.22s ease-out;
	will-change: transform;
}

.lt-tour-card:hover .lt-tour-card__image {
	transform: scale(1.06);
}

.lt-tour-card__image--placeholder {
	background: linear-gradient(135deg, #e8e8e8 0%, var(--lt-bg-soft) 100%);
	transform: scale(1);
	transition: transform 0.22s ease-out;
}

.lt-tour-card:hover .lt-tour-card__image--placeholder {
	transform: scale(1.06);
}

.lt-tour-card__badge {
	position: absolute;
	top: 12px;
	right: 12px;
	left: auto;
	z-index: 2;
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	background: var(--lt-primary);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.12px;
	pointer-events: none;
}

.lt-tour-card__body {
	padding: 1rem 1rem 1.15rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.lt-tour-card__title {
	margin: 0 0 0.35rem;
	font-size: 0.98rem;
	line-height: 1.35;
	font-weight: 700;
	color: var(--lt-text);
	letter-spacing: -0.24px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.2s ease-out;
}

.lt-tour-card:hover .lt-tour-card__title {
	color: var(--lt-primary);
}

.lt-tour-card__meta-line {
	margin: 0;
	color: var(--lt-muted);
	font-size: 0.84rem;
	line-height: 1.35;
	letter-spacing: -0.16px;
}

.lt-tour-card__meta-sep {
	margin: 0 0.3rem;
	opacity: 0.7;
}

.lt-tour-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: 0.85rem;
}

.lt-tour-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	flex-shrink: 0;
	white-space: nowrap;
	font-size: 0.88rem;
	line-height: 1;
}

.lt-tour-card__rating-star {
	color: var(--lt-star);
	font-size: 0.95rem;
	line-height: 1;
	transform: translateY(-1px);
}

.lt-tour-card__rating-value {
	color: var(--lt-text);
	font-weight: 600;
	letter-spacing: -0.16px;
}

.lt-tour-card__rating-count {
	color: var(--lt-muted);
	font-weight: 500;
}

.lt-tour-card__pricing {
	text-align: right;
	min-width: 0;
	flex: 1;
}

.lt-tour-card__price-line {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 0.3rem;
	line-height: 1.2;
}

.lt-tour-card__from {
	color: var(--lt-muted);
	font-size: 0.78rem;
	font-weight: 400;
}

.lt-tour-card__price-regular {
	color: var(--lt-muted);
	font-size: 0.86rem;
	font-weight: 400;
	text-decoration: line-through;
}

.lt-tour-card__price-sale {
	color: var(--lt-text);
	font-size: 0.98rem;
	font-weight: 600;
	letter-spacing: -0.2px;
}

.lt-tour-card__price-note {
	display: block;
	margin-top: 0.25rem;
	color: var(--lt-muted);
	font-size: 0.7rem;
	line-height: 1.25;
}

/* ── Add-on chips on tour cards ──────────────────────────────────────────── */
.lt-tour-card__addons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0.45rem 0 0.1rem;
}

.lt-tour-card__addon-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	border: 1px solid #c5d9fc;
	background: #f1f6fe;
	color: #1A2B48;
	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
}

.lt-tour-card__addon-chip--more {
	border-color: #e0e0e0;
	background: #f7f7f7;
	color: #7a7a7a;
	font-weight: 500;
}

@media (max-width: 1200px) {
	.lt-tour-grid {
		grid-template-columns: repeat(min(var(--lt-tour-grid-columns, 4), 3), minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.lt-tour-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.lt-tour-grid {
		grid-template-columns: 1fr;
	}

	.lt-tour-card__footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.lt-tour-card__pricing {
		text-align: left;
		width: 100%;
	}

	.lt-tour-card__price-line {
		justify-content: flex-start;
	}
}

/* ============================================================
   TOUR SEARCH SHORTCODE — refined cruise hero search
   ============================================================ */

.lt-tour-search {
	--ce-blue: #327ad0;
	--ce-blue-dark: #2865b0;
	--ce-navy: #1A2B48;
	--ce-muted: #7d8796;
	--ce-divider: rgba(26, 43, 72, 0.1);
	--ce-text: #1A2B48;
	--ce-soft: rgba(50, 122, 208, 0.07);

	box-sizing: border-box;
	width: 100%;
	max-width: 1040px;
	font-family: "GoogleSansFlex-VariableFont", sans-serif;
	animation: lt-search-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes lt-search-in {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.lt-tour-search *,
.lt-tour-search *::before,
.lt-tour-search *::after {
	box-sizing: border-box;
}

.lt-tour-search__form {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

.lt-tour-search__bar {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
	min-height: 76px;
	padding: 6px;
	overflow: visible;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow:
		0 18px 48px rgba(10, 24, 48, 0.28),
		0 2px 0 rgba(255, 255, 255, 0.4) inset;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.lt-tour-search__bar:focus-within {
	box-shadow:
		0 22px 56px rgba(10, 24, 48, 0.32),
		0 0 0 3px rgba(50, 122, 208, 0.18);
}

.lt-tour-search__field {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 0;
	min-width: 0;
	min-height: 66px;
	padding: 10px 18px;
	border-radius: 14px;
	background: transparent;
	transition: background-color 0.2s ease;
}

.lt-tour-search__field:hover {
	background: var(--ce-soft);
}

.lt-tour-search__field--port {
	flex: 0 1 11rem;
	min-width: 9rem;
	max-width: 14rem;
}

.lt-tour-search__field--dates {
	position: relative;
	flex: 1 1 16rem;
	min-width: 14rem;
}

.lt-tour-search__field-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 3px;
	min-width: 0;
	flex: 1;
}

.lt-tour-search__label {
	display: block;
	margin: 0;
	color: var(--ce-muted) !important;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.lt-tour-search__icon {
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background-color: var(--ce-soft);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px 18px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.lt-tour-search__field:hover .lt-tour-search__icon {
	background-color: rgba(50, 122, 208, 0.14);
	transform: translateY(-1px);
}

.lt-tour-search__icon--pin {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21Z' stroke='%23327ad0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='9.5' r='2.4' stroke='%23327ad0' stroke-width='1.8'/%3E%3C/svg%3E");
}

.lt-tour-search__icon--cal {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2' stroke='%23327ad0' stroke-width='1.8'/%3E%3Cpath d='M8 3.5V7M16 3.5V7M3.5 10H20.5' stroke='%23327ad0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.lt-tour-search__icon--ship {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M3 17.5C5.2 16.2 7.6 15.5 10 15.5C12.4 15.5 14.8 16.2 17 17.5L21 14.5V10.5L12.8 8.2C12.3 8.05 11.7 8.05 11.2 8.2L3 10.5V14.5L3 17.5Z' stroke='%23327ad0' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M3 19.5H21' stroke='%23327ad0' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M12 8.2V5.5' stroke='%23327ad0' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
}

.lt-tour-search__divider {
	flex: 0 0 1px;
	width: 1px;
	align-self: stretch;
	margin: 14px 2px;
	background: var(--ce-divider);
}

/* Kill Hello/Elementor form control chrome inside the bar */
.lt-tour-search select,
.lt-tour-search input,
.lt-tour-search button,
.elementor-kit-24 .lt-tour-search select,
.elementor-kit-24 .lt-tour-search input,
.elementor-kit-24 .lt-tour-search button {
	appearance: none !important;
	-webkit-appearance: none !important;
	margin: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	text-decoration: none !important;
}

.lt-tour-search select:focus,
.lt-tour-search select:focus-visible,
.lt-tour-search input:focus,
.lt-tour-search input:focus-visible,
.lt-tour-search button:focus,
.lt-tour-search button:focus-visible,
.elementor-kit-24 .lt-tour-search select:focus,
.elementor-kit-24 .lt-tour-search input:focus,
.elementor-kit-24 .lt-tour-search button:focus {
	border: 0 !important;
	box-shadow: none !important;
	outline: none !important;
}

.lt-tour-search .lt-tour-search__select {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 0 !important;
	height: auto !important;
	padding: 0 18px 0 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23327ad0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right center !important;
	background-size: 10px 6px !important;
	color: var(--ce-navy) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	cursor: pointer;
}

.lt-tour-search .lt-tour-search__select:invalid,
.lt-tour-search .lt-tour-search__select option[value=""] {
	color: var(--ce-blue) !important;
}

.lt-tour-search__dates-trigger {
	display: block !important;
	width: 100% !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--ce-blue) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-align: left !important;
	cursor: pointer;
}

.lt-tour-search__field--has-dates .lt-tour-search__dates-trigger,
.lt-tour-search__field--has-dates .lt-tour-search__dates-value {
	color: var(--ce-navy) !important;
}

.lt-tour-search__dates-value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lt-tour-search__field--dates.is-open {
	background: var(--ce-soft);
}

/* Airbnb-style date range panel */
.lt-daterange {
	position: absolute;
	top: calc(100% + 10px);
	left: 50%;
	z-index: 40;
	width: min(640px, calc(100vw - 24px));
	padding: 18px 18px 14px;
	border: 1px solid rgba(26, 43, 72, 0.08);
	border-radius: 20px;
	background: #fff;
	box-shadow:
		0 18px 48px rgba(10, 24, 48, 0.18),
		0 2px 8px rgba(10, 24, 48, 0.06);
	transform: translateX(-50%);
}

.lt-daterange--portal {
	position: fixed !important;
	transform: none !important;
	z-index: 100000 !important;
}

.lt-tour-search--picker-open {
	position: relative;
	z-index: 30;
}

.lt-daterange[hidden] {
	display: none !important;
}

.lt-daterange__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}

.lt-tour-archive__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-end;
	padding: 8px 10px 8px 12px;
	border: 1px solid rgba(50, 122, 208, 0.28);
	border-radius: 999px;
	background: rgba(50, 122, 208, 0.08);
	color: #1a2b48;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.lt-tour-archive__chip > svg {
	flex: 0 0 auto;
	color: #327ad0;
}

.lt-tour-archive__chip-clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba(26, 43, 72, 0.08);
	color: #1a2b48;
	text-decoration: none;
}

.lt-tour-archive__chip-clear:hover {
	background: #327ad0;
	color: #fff;
}

.lt-daterange__summary {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--ce-navy);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .lt-daterange button.lt-daterange__nav,
.elementor-kit-24 .lt-daterange button.lt-daterange__nav,
.lt-daterange button.lt-daterange__nav {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 34px !important;
	height: 34px !important;
	padding: 0 !important;
	border: 1px solid rgba(26, 43, 72, 0.12) !important;
	border-radius: 50% !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	color: #1a2b48 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

body .lt-daterange button.lt-daterange__nav:hover:not(:disabled),
.lt-daterange button.lt-daterange__nav:hover:not(:disabled) {
	background: rgba(50, 122, 208, 0.07) !important;
	background-color: rgba(50, 122, 208, 0.07) !important;
	border-color: rgba(50, 122, 208, 0.35) !important;
	color: #1a2b48 !important;
}

.lt-daterange__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.lt-daterange__months {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 24px;
	justify-items: center;
}

/* Keeps day cells a sensible size instead of stretching with the panel. */
.lt-daterange__month {
	width: 100%;
	max-width: 290px;
}

.lt-daterange__month-title {
	margin: 0 0 12px;
	color: var(--ce-navy);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

.lt-daterange__weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom: 4px;
	color: var(--ce-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-align: center;
	text-transform: uppercase;
}

.lt-daterange__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px 0;
}

/* Day buttons — beat Elementor kit (panel is portaled to body) */
body .lt-daterange button.lt-daterange__day,
.elementor-kit-24 .lt-daterange button.lt-daterange__day,
.lt-daterange button.lt-daterange__day {
	position: relative;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	height: 38px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: #1a2b48 !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-transform: none !important;
	text-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.12s ease, color 0.12s ease;
}

.lt-daterange__day--empty {
	visibility: hidden;
	pointer-events: none;
}

body .lt-daterange button.lt-daterange__day--disabled,
.elementor-kit-24 .lt-daterange button.lt-daterange__day--disabled,
.lt-daterange button.lt-daterange__day--disabled {
	background: transparent !important;
	background-color: transparent !important;
	color: rgba(26, 43, 72, 0.28) !important;
	cursor: default;
}

/* Hover only on days that aren't part of the selection. */
body .lt-daterange button.lt-daterange__day:not(:disabled):not(.lt-daterange__day--start):not(.lt-daterange__day--end):not(.lt-daterange__day--single):not(.lt-daterange__day--in-range):hover,
.lt-daterange button.lt-daterange__day:not(:disabled):not(.lt-daterange__day--start):not(.lt-daterange__day--end):not(.lt-daterange__day--single):not(.lt-daterange__day--in-range):hover {
	border-radius: 999px !important;
	background: rgba(50, 122, 208, 0.14) !important;
	background-color: rgba(50, 122, 208, 0.14) !important;
	color: #1a2b48 !important;
}

.lt-daterange__day-num {
	position: relative;
	z-index: 2;
}

.lt-daterange__day--today:not(.lt-daterange__day--start):not(.lt-daterange__day--end):not(.lt-daterange__day--single)::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 50%;
	z-index: 2;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #327ad0;
	transform: translateX(-50%);
}

/* Middle of the range: square bar that meets the start/end caps. */
body .lt-daterange button.lt-daterange__day--in-range,
.elementor-kit-24 .lt-daterange button.lt-daterange__day--in-range,
.lt-daterange button.lt-daterange__day--in-range {
	border-radius: 0 !important;
	background: rgba(50, 122, 208, 0.16) !important;
	background-color: rgba(50, 122, 208, 0.16) !important;
	background-image: none !important;
	color: #1a2b48 !important;
}

body .lt-daterange button.lt-daterange__day--preview,
.lt-daterange button.lt-daterange__day--preview {
	background: rgba(50, 122, 208, 0.1) !important;
	background-color: rgba(50, 122, 208, 0.1) !important;
}

/* Start and end are the same dark blue as each other. Inner corners stay
   square so the light bar joins them as one shape. */
body .lt-daterange button.lt-daterange__day.lt-daterange__day--start,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--end,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--single,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--start:hover,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--end:hover,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--single:hover,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--start:focus,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--end:focus,
body .lt-daterange button.lt-daterange__day.lt-daterange__day--single:focus,
.elementor-kit-24 .lt-daterange button.lt-daterange__day.lt-daterange__day--start,
.elementor-kit-24 .lt-daterange button.lt-daterange__day.lt-daterange__day--end,
.elementor-kit-24 .lt-daterange button.lt-daterange__day.lt-daterange__day--single,
.lt-daterange button.lt-daterange__day.lt-daterange__day--start,
.lt-daterange button.lt-daterange__day.lt-daterange__day--end,
.lt-daterange button.lt-daterange__day.lt-daterange__day--single {
	background: #327ad0 !important;
	background-color: #327ad0 !important;
	background-image: none !important;
	color: #ffffff !important;
}

body .lt-daterange button.lt-daterange__day.lt-daterange__day--start,
.lt-daterange button.lt-daterange__day.lt-daterange__day--start {
	border-radius: 999px 0 0 999px !important;
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}

body .lt-daterange button.lt-daterange__day.lt-daterange__day--end,
.lt-daterange button.lt-daterange__day.lt-daterange__day--end {
	border-radius: 0 999px 999px 0 !important;
	border-top-left-radius: 0 !important;
	border-bottom-left-radius: 0 !important;
}

body .lt-daterange button.lt-daterange__day.lt-daterange__day--single,
.lt-daterange button.lt-daterange__day.lt-daterange__day--single {
	border-radius: 999px !important;
}

.lt-daterange__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid rgba(26, 43, 72, 0.08);
}

.lt-daterange__clear,
.lt-daterange__done {
	padding: 8px 14px !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer;
}

body .lt-daterange button.lt-daterange__clear,
.elementor-kit-24 .lt-daterange button.lt-daterange__clear,
.lt-daterange button.lt-daterange__clear {
	border: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	color: #1a2b48 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	box-shadow: none !important;
}

body .lt-daterange button.lt-daterange__done,
body .lt-daterange button.lt-daterange__done:hover,
body .lt-daterange button.lt-daterange__done:focus,
.elementor-kit-24 .lt-daterange button.lt-daterange__done,
.lt-daterange button.lt-daterange__done {
	border: 0 !important;
	background: #1a2b48 !important;
	background-color: #1a2b48 !important;
	background-image: none !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

body .lt-daterange button.lt-daterange__done:hover,
.lt-daterange button.lt-daterange__done:hover {
	background: #2865b0 !important;
	background-color: #2865b0 !important;
	color: #ffffff !important;
}

body .lt-daterange button.lt-daterange__clear:disabled,
.lt-daterange button.lt-daterange__clear:disabled {
	opacity: 0.4;
	cursor: default;
	text-decoration: none !important;
}

@media (max-width: 720px) {
	.lt-daterange:not(.lt-daterange--portal) {
		left: 0;
		right: 0;
		width: auto;
		transform: none;
	}

	.lt-daterange__months {
		grid-template-columns: 1fr;
	}

	.lt-daterange__summary {
		font-size: 12px;
	}
}

.lt-tour-search__submit-wrap {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	align-self: stretch;
	padding: 0 0 0 6px;
}

.lt-tour-search .lt-tour-search__submit,
.lt-tour-search .lt-tour-search__submit:visited,
.lt-tour-search .lt-tour-search__submit:hover,
.lt-tour-search .lt-tour-search__submit:focus,
.lt-tour-search .lt-tour-search__submit:active,
.lt-tour-search .lt-tour-search__submit:focus-visible,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:hover,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:focus,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:active,
.elementor-kit-24 .lt-tour-search button.lt-tour-search__submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	align-self: stretch !important;
	gap: 8px !important;
	width: auto !important;
	min-width: 124px !important;
	min-height: 0 !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 22px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--ce-blue) !important;
	background-color: var(--ce-blue) !important;
	background-image: none !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.01em !important;
	line-height: 1 !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: 0 8px 20px rgba(50, 122, 208, 0.35) !important;
	outline: none !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
}

.lt-tour-search .lt-tour-search__submit:hover,
.lt-tour-search .lt-tour-search__submit:focus,
.lt-tour-search .lt-tour-search__submit:active,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:hover,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:focus,
.elementor-kit-24 .lt-tour-search .lt-tour-search__submit:active {
	background: var(--ce-blue-dark) !important;
	background-color: var(--ce-blue-dark) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 12px 26px rgba(40, 101, 176, 0.4) !important;
}

.lt-tour-search__submit-icon {
	flex: 0 0 auto;
	display: block;
}

.lt-tour-search__submit-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: lt-spin 0.7s linear infinite;
}

.lt-tour-search .lt-tour-search__submit--loading .lt-tour-search__submit-text,
.lt-tour-search .lt-tour-search__submit--loading .lt-tour-search__submit-icon {
	display: none;
}

.lt-tour-search .lt-tour-search__submit--loading .lt-tour-search__submit-spinner {
	display: block;
}

.lt-tour-search .lt-tour-search__submit--loading,
.lt-tour-search .lt-tour-search__submit--loading:hover,
.lt-tour-search .lt-tour-search__submit--loading:focus {
	cursor: wait !important;
	transform: none !important;
}

@media (max-width: 900px) {
	.lt-tour-search__bar {
		flex-direction: column;
		align-items: stretch;
		min-height: 0;
		padding: 10px;
		border-radius: 16px;
		gap: 4px;
	}

	.lt-tour-search__field,
	.lt-tour-search__field--dates,
	.lt-tour-search__field--port {
		flex: none;
		width: 100%;
		min-height: 60px;
	}

	.lt-tour-search__divider {
		width: auto;
		height: 1px;
		margin: 0 12px;
	}

	.lt-tour-search__submit-wrap {
		flex: none;
		width: 100%;
		padding: 6px 0 0;
		min-height: 52px;
	}

	.lt-tour-search .lt-tour-search__submit,
	.lt-tour-search .lt-tour-search__submit:hover,
	.lt-tour-search .lt-tour-search__submit:focus {
		width: 100% !important;
		min-height: 52px !important;
		border-radius: 12px !important;
		transform: none !important;
	}
}

/* ============================================================
   CRUISE TRUST BAR — flat sell strip under hero
   ============================================================ */

.ce-trust-bar {
	width: 100%;
	margin: 0;
	color: #fff;
	background: #1a2b48;
}

.ce-trust-bar__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
	/* No side padding — must share the same 1300px left edge as page content */
	padding: 28px 0 24px;
}

.ce-trust-bar__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
	padding: 0 28px;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.ce-trust-bar__item:first-child {
	padding-left: 0;
}

.ce-trust-bar__item:last-child {
	padding-right: 0;
	border-right: 0;
}

/* Flat icon — no tile, no shadow, no glass */
.ce-trust-bar__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	margin-top: 3px;
	color: #7eb0e8;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ce-trust-bar__icon svg {
	display: block;
	width: 22px;
	height: 22px;
}

.ce-trust-bar__copy {
	min-width: 0;
}

.ce-trust-bar__label {
	display: block;
	margin: 0 0 4px;
	color: #9ec4f0 !important;
	font-family: "GoogleSansFlex-VariableFont", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Beat Elementor kit heading colour overrides */
.ce-trust-bar .ce-trust-bar__title,
.ce-trust-bar h3.ce-trust-bar__title {
	margin: 0 0 6px !important;
	color: #ffffff !important;
	font-family: "GoogleSansFlex-VariableFont", sans-serif !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em;
}

.ce-trust-bar .ce-trust-bar__text,
.ce-trust-bar p.ce-trust-bar__text {
	margin: 0 !important;
	max-width: none;
	color: rgba(255, 255, 255, 0.78) !important;
	font-family: "GoogleSansFlex-VariableFont", sans-serif;
	font-size: 13.5px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
}

@media (max-width: 1024px) {
	.ce-trust-bar__inner {
		grid-template-columns: 1fr;
		padding: 22px 20px 8px;
	}

	.ce-trust-bar__item {
		padding: 14px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	}

	.ce-trust-bar__item:first-child {
		padding-top: 0;
	}

	.ce-trust-bar__item:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}

	.ce-trust-bar .ce-trust-bar__text {
		max-width: none;
	}
}

/* ============================================================
   CRUISE HERO SEARCH — two forms only:
     desktop : full-wide single row
     ≤900px  : fully stacked
   ============================================================ */

.lt-tour-search--cruise,
.lt-tour-search.lt-tour-search--cruise {
	display: block;
	width: 100%;
	max-width: 720px;
	margin-left: 0;
	margin-right: auto;
}

.lt-tour-search--cruise .lt-tour-search__field--port {
	flex: 0 1 12rem;
	min-width: 10rem;
	max-width: 14rem;
}

.lt-tour-search--cruise .lt-tour-search__field--dates {
	flex: 1 1 18rem;
	min-width: 15rem;
}

.lt-tour-search--cruise .lt-tour-search__select {
	overflow: visible !important;
	text-overflow: clip !important;
	white-space: nowrap !important;
}

.ce-hero-badges {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ce-hero-badges__list {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ce-hero-badges__item {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
}

.lt-tour-search .ce-hero-badges .ce-hero-badges__img,
.lt-tour-search .ce-hero-badges img,
.ce-hero-badges .ce-hero-badges__img,
.ce-hero-badges img,
.elementor-widget-shortcode .ce-hero-badges img {
	display: block !important;
	width: auto !important;
	max-width: 72px !important;
	height: 56px !important;
	object-fit: contain !important;
	filter: none !important;
	background: none !important;
	box-shadow: none !important;
}

@media (max-width: 767px) {
	.ce-hero-badges__list {
		gap: 10px 14px;
	}

	.lt-tour-search .ce-hero-badges .ce-hero-badges__img,
	.lt-tour-search .ce-hero-badges img,
	.ce-hero-badges .ce-hero-badges__img,
	.ce-hero-badges img,
	.elementor-widget-shortcode .ce-hero-badges img {
		max-width: 52px !important;
		height: 42px !important;
	}
}


/* ── Availability check styles ─────────────────────────────── */
.lt-avail-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: lt-spin 0.7s linear infinite;
  vertical-align: middle;
  margin-right: 6px;
}
@keyframes lt-spin {
  to { transform: rotate(360deg); }
}
.lt-single-tour__booking-btn--soldout {
  background-color: #6b7280 !important;
  border-color: #6b7280 !important;
  cursor: not-allowed !important;
}
