/*
Theme Name:   Hello Elementor Child
Theme URI:    https://leisuretours.website.org.nz
Description:  Hello Elementor Child Theme for Leisure Tours
Author:       Leisure Tours
Template:     hello-elementor
Version:      1.5.35
Text Domain:  hello-elementor-child
*/

/* ============================================================
   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: #659d46;
}

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

a:focus,
a:focus-visible {
	outline: 2px solid #659d46;
	outline-offset: 2px;
}

/* 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: #659d46;
	outline: none;
	box-shadow: 0 0 0 3px rgba(101, 157, 70, 0.12);
}

/* ============================================================
   TOUR GRID SHORTCODE — Leisure Tours brand colours
   ============================================================ */

.lt-tour-grid {
	--lt-primary: #659d46;
	--lt-primary-soft: rgba(101, 157, 70, 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);
}

/* ── 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: #659D4633 !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='%23659D46' 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: #659D4633 !important;
}

.lt-tour-archive .lt-tour-archive__select:focus {
	outline: 2px solid var(--lt-primary);
	outline-offset: 2px;
	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: #5a8c3e !important;
	border-color: #5a8c3e !important;
}

/* 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: 2px solid var(--lt-primary);
	outline-offset: 2px;
}

.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 #c8e0b8;
	background: #f4f9f1;
	color: #4a7a30;
	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 — hero search widget
   ============================================================ */

.lt-tour-search {
	--lt-primary: #659d46;
	--lt-primary-dark: #5a8c3e;
	--lt-text: #1a1a1a;
	--lt-muted: #6b6b6b;
	--lt-border: rgba(0, 0, 0, 0.08);
	--lt-border-strong: rgba(0, 0, 0, 0.12);

	font-family: "GoogleSansFlex-VariableFont", sans-serif;
	max-width: 820px;
}

.lt-tour-search__form {
	position: relative;
	overflow: hidden;
	padding: 1.65rem 1.75rem 1.45rem;
	border: 1px solid rgba(255, 255, 255, 0.65);
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 12px 32px rgba(0, 0, 0, 0.1),
		0 24px 64px rgba(0, 0, 0, 0.06);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.lt-tour-search__form::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--lt-primary) 0%, #7fb35a 100%);
}

.lt-tour-search__intro {
	margin-bottom: 1.35rem;
	padding-bottom: 1.15rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.lt-tour-search__title {
	margin: 0;
	color: var(--lt-text);
	font-size: clamp(1.15rem, 2vw, 1.35rem);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.01em;
}

.lt-tour-search__fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem;
}

.lt-tour-search__field {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
}

.lt-tour-search__label {
	color: var(--lt-muted);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.lt-tour-search .lt-tour-search__select {
	width: 100%;
	min-height: 50px;
	padding: 0.7rem 2.4rem 0.7rem 2.65rem;
	border: 1px solid var(--lt-border) !important;
	border-radius: 14px;
	background-color: #fff !important;
	background-repeat: no-repeat;
	color: var(--lt-text) !important;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.3;
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02);
	outline: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Location pin icon for both departure and destination fields */
.lt-tour-search__field--from .lt-tour-search__select,
.lt-tour-search__field--to .lt-tour-search__select {
	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='%23999999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 21s6-5.2 6-10a6 6 0 1 0-12 0c0 4.8 6 10 6 10Z' stroke='%23999999' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='11' r='2.2' stroke='%23999999' stroke-width='1.6'/%3E%3C/svg%3E");
	background-position: right 1rem center, left 1rem center;
}

/* Origin field — pin icon on the left alongside the dropdown arrow */
.lt-tour-search__field--from .lt-tour-search__select,
.lt-tour-archive__select[data-lt-filter="origin"] {
	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='%23999999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 21s6-5.2 6-10a6 6 0 1 0-12 0c0 4.8 6 10 6 10Z' stroke='%23999999' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='11' r='2.2' stroke='%23999999' stroke-width='1.6'/%3E%3C/svg%3E");
	background-position: right 1rem center, left 1rem center;
}

.lt-tour-search .lt-tour-search__select:hover {
	border-color: var(--lt-border-strong) !important;
}

.lt-tour-search .lt-tour-search__select:focus,
.lt-tour-search .lt-tour-search__select:active,
.lt-tour-search .lt-tour-search__select:focus-visible {
	border-color: var(--lt-primary) !important;
	background-color: #fff !important;
	box-shadow:
		inset 0 1px 2px rgba(0, 0, 0, 0.02),
		0 0 0 3px rgba(101, 157, 70, 0.12) !important;
	outline: none !important;
	color: var(--lt-text) !important;
}

.lt-tour-search__actions {
	margin-top: 1.15rem;
}

.lt-tour-search .lt-tour-search__submit,
.lt-tour-search .lt-tour-search__submit:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	width: 100%;
	min-height: 52px;
	padding: 0.75rem 1.5rem;
	border: none !important;
	border-radius: 999px;
	background: linear-gradient(180deg, #6fa74d 0%, var(--lt-primary) 100%) !important;
	background-color: var(--lt-primary) !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(101, 157, 70, 0.28) !important;
	outline: none !important;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.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 {
	border: none !important;
	background: linear-gradient(180deg, #679945 0%, var(--lt-primary-dark) 100%) !important;
	background-color: var(--lt-primary-dark) !important;
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(101, 157, 70, 0.32) !important;
	outline: none !important;
	transform: translateY(-1px);
}

.lt-tour-search__submit-arrow {
	font-size: 1.05rem;
	line-height: 1;
	transition: transform 0.2s ease;
}

.lt-tour-search .lt-tour-search__submit:hover .lt-tour-search__submit-arrow,
.lt-tour-search .lt-tour-search__submit:focus .lt-tour-search__submit-arrow {
	transform: translateX(2px);
}

.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 .lt-tour-search__submit--loading:hover,
.lt-tour-search .lt-tour-search__submit--loading:focus {
	transform: none;
	cursor: wait;
}

.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-arrow {
	display: none;
}

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

.lt-tour-search__trust {
	margin: 0.95rem 0 0;
	padding-top: 0.95rem;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	color: var(--lt-muted);
	font-size: 0.84rem;
	font-weight: 400;
	line-height: 1.45;
	text-align: center;
}

@media (max-width: 768px) {
	.lt-tour-search__fields {
		grid-template-columns: 1fr;
		gap: 0.95rem;
	}

	.lt-tour-search__form {
		padding: 1.35rem 1.25rem 1.2rem;
		border-radius: 18px;
	}

	.lt-tour-search__intro {
		margin-bottom: 1.1rem;
		padding-bottom: 1rem;
	}
}

/* ── 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;
}
