/*
Theme Name: tourszoom
Description: Child theme for Travelfic. You can now safely customize it and not risk losing your customizations.
Author: tourszoom.com
Author URI: https://tourszoom.com
Template: travelfic
Version: 1.0
*/

/* ============================================================
   Design tokens — OWNED BY tourszoom-design since 2026-07-02
   (CSS migration step 8): canonical values in assets/css/tokens.css,
   legacy-name remaps in base.css (loads after this sheet, wins the
   :root cascade). Kept here: only names base.css does NOT define,
   as fallbacks if the design plugin is ever deactivated.
   ============================================================ */
:root {
	--tz-gray-light:  #f9fafb;
	--tz-shadow:      0 2px 12px rgba(26, 43, 72, 0.07);
	--tz-shadow-hover:0 10px 36px rgba(26, 43, 72, 0.14);
	--tz-font-title:  var(--tf-headings-font-family, Georgia, serif);
	/* deactivation fallbacks (tokens.css/base.css override these) */
	--tz-blue:        #FF6B4A;
	--tz-blue-dark:   #E04F2D;
	--tz-dark:        #103d62;
	--tz-gray:        #6b7280;
	--tz-border:      #e5e7eb;
	--tz-orange:      #FF6B4A;
	--tz-red:         #C0392B;
	--tz-navy:        #103d62;
	--tz-blue-light:  #FFE5DD;
	--tz-amber:       #FF6B4A;
	--tz-radius:      10px;
	--tz-font-body:   var(--tf-body-font-family, system-ui, sans-serif);
}

/* ============================================================
   Tour Taxonomy Pages — Hero Banner
   ============================================================ */
.tz-tax-hero {
	background-color: #103d62;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 280px;
	display: flex;
	align-items: center;
}

.tz-tax-hero__overlay {
	width: 100%;
	background: linear-gradient(0deg, rgba(15, 30, 50, 0.65) 0%, rgba(15, 30, 50, 0.65) 100%);
	padding: 60px 0;
}

.tz-tax-hero__title {
	color: #ffffff;
	font-size: 2.4rem;
	font-weight: 700;
	margin: 0 0 10px;
	line-height: 1.2;
}

.tz-tax-hero__desc {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1rem;
	margin: 0;
	max-width: 600px;
}

@media only screen and (max-width: 768px) {
	.tz-tax-hero {
		min-height: 200px;
	}

	.tz-tax-hero__title {
		font-size: 1.8rem;
	}
}

/* ============================================================
   Sidebar — Search Form & Filters
   ============================================================ */

/* --- Search form box --- */
.tz-sidebar-left .tf-archive-booking-form__style-1 {
	background: #fff !important;
	border-radius: var(--tz-radius) !important;
	border: 1px solid var(--tz-border) !important;
	box-shadow: var(--tz-shadow) !important;
	padding: 20px !important;
	margin-bottom: 16px;
	font-family: var(--tz-font-body);
}

/* Input rows */
.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-field-group {
	position: relative;
	margin-bottom: 10px;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-field-group i {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--tz-blue);
	font-size: 0.8rem;
	z-index: 1;
	pointer-events: none;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-destination-box .tf-field,
.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-field-group > .tf-field.time {
	width: 100%;
	border: 1px solid var(--tz-border) !important;
	border-radius: 7px !important;
	padding: 10px 12px 10px 34px !important;
	font-size: 0.82rem !important;
	color: var(--tz-dark) !important;
	background: var(--tz-gray-light) !important;
	outline: none;
	transition: border-color 0.2s;
	box-sizing: border-box;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-destination-box .tf-field:focus,
.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-field-group > .tf-field.time:focus {
	border-color: var(--tz-blue) !important;
	background: #fff !important;
}

/* Adults / children counter rows */
.tz-sidebar-left .tf-archive-booking-form__style-1 .tf_acrselection .tf-field {
	border: 1px solid var(--tz-border) !important;
	border-radius: 7px !important;
	padding: 9px 12px !important;
	background: var(--tz-gray-light) !important;
	font-size: 0.82rem;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-label {
	color: var(--tz-gray) !important;
	font-size: 0.8rem;
	gap: 6px;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-label i {
	position: static;
	transform: none;
	color: var(--tz-blue) !important;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-dec,
.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-inc {
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--tz-border);
	color: var(--tz-dark);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-dec:hover,
.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-inc:hover {
	background: var(--tz-blue);
	color: #fff;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .acr-select input[type="number"] {
	width: 32px;
	text-align: center;
	border: none;
	background: transparent;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--tz-dark);
}

/* Submit button */
.tz-sidebar-left .tf-archive-booking-form__style-1 .tf-booking-bttns {
	margin-top: 14px;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .tf_btn.tf_btn_full {
	background: var(--tz-blue) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 7px !important;
	width: 100%;
	padding: 11px !important;
	font-family: var(--tz-font-body) !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	cursor: pointer;
	transition: background 0.2s;
}

.tz-sidebar-left .tf-archive-booking-form__style-1 .tf_btn.tf_btn_full:hover {
	background: var(--tz-blue-dark) !important;
}

/* --- Filter widgets --- */
.tz-sidebar-filters {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tz-sidebar-filters .tf_widget {
	background: #fff;
	border: 1px solid var(--tz-border);
	border-radius: var(--tz-radius);
	padding: 16px 18px;
	box-shadow: var(--tz-shadow);
	font-family: var(--tz-font-body);
}

/* Widget title row */
.tz-sidebar-filters .tf_widget .tf-widget-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--tz-dark);
	margin-bottom: 14px;
	cursor: pointer;
	letter-spacing: 0.1px;
}

.tz-sidebar-filters .tf_widget .tf-widget-title h4 {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--tz-dark);
	margin: 0;
}

.tz-sidebar-filters .tf_widget .tf-widget-title i {
	color: var(--tz-gray);
	font-size: 0.75rem;
	transition: transform 0.2s;
}

/* Filter list */
.tz-sidebar-filters .tf_widget .tf-filter ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.tz-sidebar-filters .tf_widget .tf-filter ul li label {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: 0.8rem;
	color: var(--tz-gray);
	font-weight: 500;
	line-height: 1.3;
	padding: 0;
}

/* Hide native checkbox */
.tz-sidebar-filters .tf_widget .tf-filter ul li label input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

/* Custom checkbox */
.tz-sidebar-filters .tf_widget .tf-filter ul li label .tf-checkmark {
	width: 17px;
	height: 17px;
	min-width: 17px;
	border: 2px solid #d1d5db;
	border-radius: 4px;
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s, border-color 0.15s;
}

.tz-sidebar-filters .tf_widget .tf-filter ul li label .tf-checkmark::after {
	content: '';
	width: 5px;
	height: 9px;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: rotate(45deg) translateY(-1px);
	opacity: 0;
	transition: opacity 0.15s;
}

.tz-sidebar-filters .tf_widget .tf-filter ul li.active label .tf-checkmark,
.tz-sidebar-filters .tf_widget .tf-filter ul li label input:checked ~ .tf-checkmark {
	background: var(--tz-blue);
	border-color: var(--tz-blue);
}

.tz-sidebar-filters .tf_widget .tf-filter ul li.active label .tf-checkmark::after,
.tz-sidebar-filters .tf_widget .tf-filter ul li label input:checked ~ .tf-checkmark::after {
	opacity: 1;
}

/* "See more" / "See less" links */
.tz-sidebar-filters .tf_widget .tf-filter a {
	display: inline-block;
	margin-top: 10px;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--tz-blue);
	text-decoration: none;
}

.tz-sidebar-filters .tf_widget .tf-filter a:hover {
	text-decoration: underline;
}

/* Price range Apply / Clear buttons */
.tz-sidebar-filters .tf_widget .tf-filter-submit,
.tz-sidebar-filters .tf_widget button.tf-filter-submit {
	background: var(--tz-blue);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 8px 16px;
	font-family: var(--tz-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.tz-sidebar-filters .tf_widget .tf-filter-submit:hover {
	background: var(--tz-blue-dark);
}

.tz-sidebar-filters .tf_widget .filter-reset-btn {
	background: var(--tz-gray-light);
	color: var(--tz-dark);
	border: 1px solid var(--tz-border);
	border-radius: 6px;
	padding: 8px 16px;
	font-family: var(--tz-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.tz-sidebar-filters .tf_widget .filter-reset-btn:hover {
	background: #e5e7eb;
}

/* Price range slider — tint the Tourfic range bar blue */
.tz-sidebar-filters .tf_widget .al-range-slider__bar {
	background: var(--tz-blue) !important;
}

.tz-sidebar-filters .tf_widget .al-range-slider__knob {
	border-color: var(--tz-blue) !important;
}

/* ============================================================
   Tour Taxonomy Pages — Archive Layout
   ============================================================ */
.tz-tax-archive {
	padding: 40px 0;
}

/* Sidebar left: placed first in DOM, so flexbox puts it left naturally.
   Override Tourfic's padding-left (for right-side sidebar) → padding-right. */
.tz-tax-archive .tf-sidebar.tz-sidebar-left {
	padding-left: 0;
	padding-right: 30px;
}

@media only screen and (max-width: 1024px) {
	.tz-tax-archive .tf-sidebar.tz-sidebar-left {
		padding-right: 12px;
	}
}

@media only screen and (max-width: 768px) {
	.tz-tax-archive .tf-sidebar.tz-sidebar-left {
		padding-right: 0;
	}
}

/* ============================================================
   Tour Search Page — Sidebar Left Layout
   Matches the taxonomy archive layout (sidebar left, cards right).
   The search template puts the sidebar second in the DOM (right),
   so we use order: -1 to visually move it left without touching PHP.
   Body class .page-template-tf-search is added by WordPress automatically
   for pages using the tf-search page template.
   ============================================================ */
.page-template-tf-search .tf-sidebar.tf-archive-right {
	order: -1;
	padding-left: 0;
	padding-right: 30px;
}

@media only screen and (max-width: 1024px) {
	.page-template-tf-search .tf-sidebar.tf-archive-right {
		padding-right: 12px;
	}
}

@media only screen and (max-width: 768px) {
	.page-template-tf-search .tf-sidebar.tf-archive-right {
		order: 0;
		padding-right: 0;
	}
}

/* ============================================================
   Tour Search Page — Card Grid & Card Styles
   Transforms Tourfic's horizontal design-1 (.tf-item-card.tf-flex)
   into a vertical tz-card style, scoped to .page-template-tf-search.
   Grid view only (.tf-layout-grid) — list view keeps Tourfic's native horizontal style.
   AJAX-safe: .archive_ajax_result stays in DOM; only its inner HTML is replaced.
   ============================================================ */

/* Remove Tourfic's default top margin on results list */
.page-template-tf-search .tf-search-results-list {
	margin-top: 0 !important;
}

/* Results count + sort bar */
.page-template-tf-search .tf-archive-head {
	margin-bottom: 20px;
	font-family: var(--tz-font-body);
}

.page-template-tf-search .tf-archive-head .tf-counter-title,
.page-template-tf-search .tf-archive-head .tf-total-results span {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--tz-gray);
}

/* --- Grid container: 3-column grid matching .tz-cards-grid --- */
.page-template-tf-search .archive_ajax_result.tf-layout-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 22px !important;
	align-items: start;
}

@media only screen and (max-width: 1200px) {
	.page-template-tf-search .archive_ajax_result.tf-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media only screen and (max-width: 768px) {
	.page-template-tf-search .archive_ajax_result.tf-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* --- Card: convert from horizontal to vertical, match .tz-card --- */
.page-template-tf-search .tf-layout-grid .tf-item-card.tf-flex {
	flex-direction: column !important;
	background: #fff !important;
	border-radius: var(--tz-radius) !important;
	overflow: hidden;
	box-shadow: var(--tz-shadow) !important;
	border: 1px solid var(--tz-border) !important;
	font-family: var(--tz-font-body);
	transition: transform 0.28s ease, box-shadow 0.28s ease;
	width: 100%;
	min-height: 0 !important;
}

.page-template-tf-search .tf-layout-grid .tf-item-card.tf-flex:hover {
	transform: translateY(-5px);
	box-shadow: var(--tz-shadow-hover) !important;
}

/* --- Image area: full width top, aspect-ratio 3/2 --- */
.page-template-tf-search .tf-layout-grid .tf-item-featured {
	width: 100% !important;
	flex-basis: auto !important;
	flex-shrink: 0 !important;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	min-height: 0 !important;
}

.page-template-tf-search .tf-layout-grid .tf-item-featured > a {
	display: block;
	width: 100%;
	height: 100%;
}

.page-template-tf-search .tf-layout-grid .tf-item-featured img {
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
	border-radius: 0 !important;
}

.page-template-tf-search .tf-layout-grid .tf-item-card.tf-flex:hover .tf-item-featured img {
	transform: scale(1.06);
}

/* Subtle gradient at image bottom */
.page-template-tf-search .tf-layout-grid .tf-item-featured::after {
	content: '';
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background: linear-gradient(to top, rgba(26, 43, 72, 0.18) 0%, transparent 45%);
	pointer-events: none;
	z-index: 1;
}

/* --- Badges: overlay on top-left of image --- */
.page-template-tf-search .tf-layout-grid .tf-tag-items {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	display: flex !important;
	gap: 6px;
	flex-wrap: wrap;
	align-items: flex-start;
}

.page-template-tf-search .tf-layout-grid .tf-features-box {
	display: flex;
	gap: 6px;
}

.page-template-tf-search .tf-layout-grid .tf-discount,
.page-template-tf-search .tf-layout-grid .tf-feature {
	font-family: var(--tz-font-body) !important;
	font-size: 0.65rem !important;
	font-weight: 700 !important;
	padding: 4px 10px !important;
	border-radius: 20px !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #fff !important;
	line-height: 1;
	display: inline-block;
}

.page-template-tf-search .tf-layout-grid .tf-discount {
	background: var(--tz-orange) !important;
}

.page-template-tf-search .tf-layout-grid .tf-feature {
	background: var(--tz-red) !important;
}

/* Promotional multi-tags: these can contain long text that blocks the image — hide them */
.page-template-tf-search .tf-layout-grid .tf-multiple-tag-item {
	display: none !important;
}

/* --- Card body / content area --- */
.page-template-tf-search .tf-layout-grid .tf-item-details {
	padding: 16px 18px 14px !important;
	flex: 1 !important;
	flex-basis: auto !important;
	display: flex !important;
	flex-direction: column;
	gap: 7px;
	width: auto !important;
}

/* Remove Tourfic's tf-mt-16 top margins inside the card body — gap handles spacing */
.page-template-tf-search .tf-layout-grid .tf-item-details .tf-title-meta,
.page-template-tf-search .tf-layout-grid .tf-item-details .tf-title,
.page-template-tf-search .tf-layout-grid .tf-item-details .tf-details {
	margin-top: 0 !important;
}

/* --- Location --- */
.page-template-tf-search .tf-layout-grid .tf-title-meta {
	gap: 5px !important;
}

.page-template-tf-search .tf-layout-grid .tf-title-meta p {
	color: var(--tz-gray) !important;
	font-size: 0.72rem !important;
	font-weight: 500;
	margin: 0 !important;
	letter-spacing: 0.2px;
}

.page-template-tf-search .tf-layout-grid .tf-title-meta i {
	color: var(--tz-blue) !important;
	font-size: 0.72rem;
}

/* --- Title --- */
.page-template-tf-search .tf-layout-grid .tf-title h2 {
	font-family: var(--tz-font-title) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.page-template-tf-search .tf-layout-grid .tf-title h2 a {
	color: var(--tz-dark) !important;
	text-decoration: none;
	transition: color 0.2s;
}

.page-template-tf-search .tf-layout-grid .tf-title h2 a:hover {
	color: var(--tz-blue) !important;
}

/* --- Excerpt: hide to keep card compact (matching tz-card) --- */
.page-template-tf-search .tf-layout-grid .tf-item-details .tf-details {
	display: none !important;
}

/* --- Price footer: pushed to card bottom, top border --- */
.page-template-tf-search .tf-layout-grid .tf-post-footer {
	padding: 12px 18px !important;
	border-top: 1px solid var(--tz-border) !important;
	margin-top: auto !important;
	background: transparent !important;
}

/* Price: "From $XX" — text node is small/gray, .woocommerce-Price-amount is large/dark */
.page-template-tf-search .tf-layout-grid .tf-pricing {
	font-family: var(--tz-font-body);
	font-size: 0.68rem;
	font-weight: 500;
	color: var(--tz-gray);
	display: flex;
	align-items: baseline;
	gap: 4px;
	flex-wrap: wrap;
	line-height: 1.2;
}

.page-template-tf-search .tf-layout-grid .tf-pricing .woocommerce-Price-amount,
.page-template-tf-search .tf-layout-grid .tf-pricing .woocommerce-Price-amount bdi {
	font-family: var(--tz-font-body) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	color: var(--tz-dark) !important;
}

.page-template-tf-search .tf-layout-grid .tf-pricing .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	color: var(--tz-dark) !important;
	vertical-align: baseline !important;
}

.page-template-tf-search .tf-layout-grid .tf-pricing del .woocommerce-Price-amount,
.page-template-tf-search .tf-layout-grid .tf-pricing del bdi {
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 400 !important;
	color: #c0c7d0 !important;
}

.page-template-tf-search .tf-layout-grid .tf-pricing del .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 400 !important;
	color: #c0c7d0 !important;
	vertical-align: baseline !important;
}

/* --- View Details button: match .tz-card__btn --- */
.page-template-tf-search .tf-layout-grid .tf_btn.tf_btn_lite {
	background: var(--tz-blue) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 7px !important;
	padding: 9px 16px !important;
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-decoration: none;
	white-space: nowrap;
	letter-spacing: 0.2px;
	transition: background 0.2s ease, transform 0.15s ease;
	display: inline-block;
	line-height: 1.4;
}

.page-template-tf-search .tf-layout-grid .tf_btn.tf_btn_lite:hover {
	background: var(--tz-blue-dark) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

/* Cards area header */
.tz-cards-header {
	margin-bottom: 20px;
}

.tz-cards-count {
	font-family: var(--tz-font-body);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--tz-gray);
	letter-spacing: 0.2px;
}

/* ============================================================
   Tour Cards Grid
   ============================================================ */
.tz-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	align-items: start;
}

@media only screen and (max-width: 1200px) {
	.tz-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: 768px) {
	.tz-cards-grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Tour Card Component — .tz-card
   ============================================================ */
.tz-card {
	background: #fff;
	border-radius: var(--tz-radius);
	overflow: hidden;
	box-shadow: var(--tz-shadow);
	border: 1px solid var(--tz-border);
	display: flex;
	flex-direction: column;
	font-family: var(--tz-font-body);
	transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.tz-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--tz-shadow-hover);
}

/* --- Image --- */
.tz-card__image-wrap {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	flex-shrink: 0;
}

.tz-card__image-link {
	display: block;
	height: 100%;
}

.tz-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
}

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

/* subtle gradient at image bottom for visual depth */
.tz-card__image-wrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(26, 43, 72, 0.18) 0%, transparent 45%);
	pointer-events: none;
}

/* --- Badges --- */
.tz-card__badges {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	gap: 6px;
	z-index: 2;
}

.tz-card__badge {
	font-family: var(--tz-font-body);
	font-size: 0.65rem;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 20px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #fff;
	line-height: 1;
}

.tz-card__badge--featured {
	background: var(--tz-red);
}

.tz-card__badge--discount {
	background: var(--tz-orange);
}

/* --- Body --- */
.tz-card__body {
	padding: 16px 18px 14px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

/* Location */
.tz-card__location {
	display: flex;
	align-items: center;
	gap: 5px;
	color: var(--tz-gray);
	font-size: 0.72rem;
	font-weight: 500;
	margin: 0;
	letter-spacing: 0.2px;
}

.tz-card__location svg {
	width: 11px;
	height: 11px;
	color: var(--tz-blue);
	flex-shrink: 0;
}

/* Title */
.tz-card__title {
	font-family: var(--tz-font-title);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tz-card__title a {
	color: var(--tz-dark);
	text-decoration: none;
	transition: color 0.2s;
}

.tz-card__title a:hover {
	color: var(--tz-blue);
}

/* Rating wrapper — Tourfic renders .tf-reviews inside this */
.tz-card__rating-wrap {
	font-size: 0.78rem;
	line-height: 1;
	margin-top: 4px;
}
.tz-card__rating-wrap .tf-reviews {
	align-items: center;
}
.tz-card__rating-wrap .tf-reviews i {
	color: #ffc107;
}
.tz-card__rating-wrap .tf-reviews .tf-avarage-review {
	font-size: 0.75rem;
	color: var(--tz-text-muted, #6b7280);
}

/* Meta: duration + group size */
.tz-card__meta {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 2px;
}

.tz-card__meta-item {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 0.72rem;
	color: var(--tz-gray);
	font-weight: 500;
}

.tz-card__meta-item svg {
	width: 13px;
	height: 13px;
	color: var(--tz-blue);
	flex-shrink: 0;
}

/* --- Footer --- */
.tz-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 12px 18px;
	border-top: 1px solid var(--tz-border);
	gap: 10px;
	margin-top: auto;
}

/* Price */
.tz-card__price {
	display: flex;
	align-items: baseline;
	gap: 5px;
	flex-wrap: wrap;
	line-height: 1.2;
}

.tz-card__price-label {
	font-size: 0.68rem;
	color: var(--tz-gray);
	font-weight: 500;
}

.tz-card__price-amount {
	font-family: var(--tz-font-body);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--tz-dark);
}

.tz-card__price-amount .woocommerce-Price-amount,
.tz-card__price-amount bdi {
	font-family: var(--tz-font-body);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--tz-dark);
}

.tz-card__price-amount .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--tz-dark);
	vertical-align: baseline;
}

.tz-card__price-original {
	font-family: var(--tz-font-body);
	font-size: 0.75rem;
	font-weight: 400;
	color: #c0c7d0;
	text-decoration: line-through;
}

.tz-card__price-original .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body);
	font-size: 0.75rem;
	font-weight: 400;
	color: #c0c7d0;
	vertical-align: baseline;
}

/* Button */
.tz-card__btn {
	background: var(--tz-blue);
	color: #fff;
	border-radius: 7px;
	padding: 9px 16px;
	font-family: var(--tz-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	letter-spacing: 0.2px;
	transition: background 0.2s ease, transform 0.15s ease;
	display: inline-block;
}

.tz-card__btn:hover {
	background: var(--tz-blue-dark);
	color: #fff;
	transform: translateY(-1px);
}

/* ============================================================
   Tour Archive Grid Widget — column count overrides
   Default .tz-cards-grid is 3 cols; these handle 1 and 2.
   ============================================================ */
.tz-cards-grid--cols-1 {
	grid-template-columns: 1fr !important;
}

.tz-cards-grid--cols-2 {
	grid-template-columns: repeat(2, 1fr) !important;
}

.tz-cards-grid--cols-4 {
	grid-template-columns: repeat(4, 1fr) !important;
}

@media only screen and (max-width: 1200px) {
	.tz-cards-grid--cols-4 { grid-template-columns: repeat(3, 1fr) !important; }
}

@media only screen and (max-width: 768px) {
	.tz-cards-grid--cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
	.tz-cards-grid--cols-2 { grid-template-columns: 1fr !important; }
}

@media only screen and (max-width: 480px) {
	.tz-cards-grid--cols-4 { grid-template-columns: 1fr !important; }
}

/* No results */
.tz-no-results {
	padding: 40px;
	text-align: center;
	color: var(--tz-gray);
	font-family: var(--tz-font-body);
}

/* ============================================================
   Pagination
   ============================================================ */
.tz-pagination {
	margin-top: 36px;
	display: flex;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
}

.tz-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border-radius: 7px;
	font-family: var(--tz-font-body);
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--tz-dark);
	border: 1px solid var(--tz-border);
	background: #fff;
	transition: background 0.18s, color 0.18s, border-color 0.18s;
}

.tz-pagination .page-numbers:hover,
.tz-pagination .page-numbers.current {
	background: var(--tz-blue);
	color: #fff;
	border-color: var(--tz-blue);
}

/* ============================================================
   Tour Search Grid Widget — .tz-widget-search-scope
   Mirrors every .page-template-tf-search rule so the search card
   styles work on any Elementor page (not just the search template).
   AJAX-safe: .archive_ajax_result stays in DOM, inner HTML replaced.
   ============================================================ */

.tz-widget-search-scope .tf-search-results-list {
	margin-top: 0 !important;
}

.tz-widget-search-scope .tf-archive-head {
	margin-bottom: 20px;
	font-family: var(--tz-font-body);
}

.tz-widget-search-scope .tf-archive-head .tf-counter-title,
.tz-widget-search-scope .tf-archive-head .tf-total-results span {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--tz-gray);
}

/* Sidebar left */
.tz-widget-search-scope .tf-sidebar.tf-archive-right {
	order: -1;
	padding-left: 0;
	padding-right: 30px;
}

@media only screen and (max-width: 1024px) {
	.tz-widget-search-scope .tf-sidebar.tf-archive-right {
		padding-right: 12px;
	}
}

@media only screen and (max-width: 768px) {
	.tz-widget-search-scope .tf-sidebar.tf-archive-right {
		order: 0;
		padding-right: 0;
	}
}

/* Grid container */
.tz-widget-search-scope .archive_ajax_result.tf-layout-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--tz-cols, 3), 1fr) !important;
	gap: 22px !important;
	align-items: start;
}

@media only screen and (max-width: 1200px) {
	.tz-widget-search-scope .archive_ajax_result.tf-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media only screen and (max-width: 768px) {
	.tz-widget-search-scope .archive_ajax_result.tf-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* Card: vertical layout matching tz-card */
.tz-widget-search-scope .tf-layout-grid .tf-item-card.tf-flex {
	flex-direction: column !important;
	background: #fff !important;
	border-radius: var(--tz-radius) !important;
	overflow: hidden;
	box-shadow: var(--tz-shadow) !important;
	border: 1px solid var(--tz-border) !important;
	font-family: var(--tz-font-body);
	transition: transform 0.28s ease, box-shadow 0.28s ease;
	width: 100%;
	min-height: 0 !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-item-card.tf-flex:hover {
	transform: translateY(-5px);
	box-shadow: var(--tz-shadow-hover) !important;
}

/* Image area */
.tz-widget-search-scope .tf-layout-grid .tf-item-featured {
	width: 100% !important;
	flex-basis: auto !important;
	flex-shrink: 0 !important;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	min-height: 0 !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-item-featured > a {
	display: block;
	width: 100%;
	height: 100%;
}

.tz-widget-search-scope .tf-layout-grid .tf-item-featured img {
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
	border-radius: 0 !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-item-card.tf-flex:hover .tf-item-featured img {
	transform: scale(1.06);
}

.tz-widget-search-scope .tf-layout-grid .tf-item-featured::after {
	content: '';
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background: linear-gradient(to top, rgba(26, 43, 72, 0.18) 0%, transparent 45%);
	pointer-events: none;
	z-index: 1;
}

/* Badges */
.tz-widget-search-scope .tf-layout-grid .tf-tag-items {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	display: flex !important;
	gap: 6px;
	flex-wrap: wrap;
	align-items: flex-start;
}

.tz-widget-search-scope .tf-layout-grid .tf-features-box {
	display: flex;
	gap: 6px;
}

.tz-widget-search-scope .tf-layout-grid .tf-discount,
.tz-widget-search-scope .tf-layout-grid .tf-feature {
	font-family: var(--tz-font-body) !important;
	font-size: 0.65rem !important;
	font-weight: 700 !important;
	padding: 4px 10px !important;
	border-radius: 20px !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #fff !important;
	line-height: 1;
	display: inline-block;
}

.tz-widget-search-scope .tf-layout-grid .tf-discount {
	background: var(--tz-orange) !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-feature {
	background: var(--tz-red) !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-multiple-tag-item {
	display: none !important;
}

/* Card content area */
.tz-widget-search-scope .tf-layout-grid .tf-item-details {
	padding: 16px 18px 14px !important;
	flex: 1 !important;
	flex-basis: auto !important;
	display: flex !important;
	flex-direction: column;
	gap: 7px;
	width: auto !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-item-details .tf-title-meta,
.tz-widget-search-scope .tf-layout-grid .tf-item-details .tf-title,
.tz-widget-search-scope .tf-layout-grid .tf-item-details .tf-details {
	margin-top: 0 !important;
}

/* Location */
.tz-widget-search-scope .tf-layout-grid .tf-title-meta {
	gap: 5px !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-title-meta p {
	color: var(--tz-gray) !important;
	font-size: 0.72rem !important;
	font-weight: 500;
	margin: 0 !important;
	letter-spacing: 0.2px;
}

.tz-widget-search-scope .tf-layout-grid .tf-title-meta i {
	color: var(--tz-blue) !important;
	font-size: 0.72rem;
}

/* Title */
.tz-widget-search-scope .tf-layout-grid .tf-title h2 {
	font-family: var(--tz-font-title) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tz-widget-search-scope .tf-layout-grid .tf-title h2 a {
	color: var(--tz-dark) !important;
	text-decoration: none;
	transition: color 0.2s;
}

.tz-widget-search-scope .tf-layout-grid .tf-title h2 a:hover {
	color: var(--tz-blue) !important;
}

/* Excerpt: hidden (keeps card compact) */
.tz-widget-search-scope .tf-layout-grid .tf-item-details .tf-details {
	display: none !important;
}

/* Price footer */
.tz-widget-search-scope .tf-layout-grid .tf-post-footer {
	padding: 12px 18px !important;
	border-top: 1px solid var(--tz-border) !important;
	margin-top: auto !important;
	background: transparent !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-pricing {
	font-family: var(--tz-font-body);
	font-size: 0.68rem;
	font-weight: 500;
	color: var(--tz-gray);
	display: flex;
	align-items: baseline;
	gap: 4px;
	flex-wrap: wrap;
	line-height: 1.2;
}

.tz-widget-search-scope .tf-layout-grid .tf-pricing .woocommerce-Price-amount,
.tz-widget-search-scope .tf-layout-grid .tf-pricing .woocommerce-Price-amount bdi {
	font-family: var(--tz-font-body) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	color: var(--tz-dark) !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-pricing .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	color: var(--tz-dark) !important;
	vertical-align: baseline !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-pricing del .woocommerce-Price-amount,
.tz-widget-search-scope .tf-layout-grid .tf-pricing del bdi {
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 400 !important;
	color: #c0c7d0 !important;
}

.tz-widget-search-scope .tf-layout-grid .tf-pricing del .woocommerce-Price-currencySymbol {
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 400 !important;
	color: #c0c7d0 !important;
	vertical-align: baseline !important;
}

/* View Details button */
.tz-widget-search-scope .tf-layout-grid .tf_btn.tf_btn_lite {
	background: var(--tz-blue) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 7px !important;
	padding: 9px 16px !important;
	font-family: var(--tz-font-body) !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-decoration: none;
	white-space: nowrap;
	letter-spacing: 0.2px;
	transition: background 0.2s ease, transform 0.15s ease;
	display: inline-block;
	line-height: 1.4;
}

.tz-widget-search-scope .tf-layout-grid .tf_btn.tf_btn_lite:hover {
	background: var(--tz-blue-dark) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

/* Social login divider — Nextend Social Login integration */
.tz-social-login {
	margin-bottom: 16px;
}
.tz-social-login-divider {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	color: #888;
	font-size: 0.85rem;
}
.tz-social-login-divider::before,
.tz-social-login-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #e0e0e0;
}

/* ============================================================
   CUSTOM ELEMENTOR WIDGETS — TAXONOMY TERM DISPLAY BLOCKS
   ============================================================ */

/* ── Widget 1: Taxonomy Photo Cards ── */
.tz-photo-cards {
	display: grid;
	grid-template-columns: repeat(var(--tz-cols, 3), 1fr);
	gap: 16px;
}
.tz-photo-card,
.tz-icon-card,
.tz-dest-detail-card,
.tz-attraction-card { min-width: 0; }
.tz-photo-card {
	position: relative;
	height: 320px;
	overflow: hidden;
	border-radius: 2px;
}
.tz-photo-card__bg {
	position: absolute;
	inset: 0;
	background: #2c4a3e center/cover no-repeat;
	transition: transform 0.4s ease;
}
.tz-photo-card:hover .tz-photo-card__bg {
	transform: scale(1.05);
}
.tz-photo-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(14,13,11,0.85) 0%, rgba(14,13,11,0.2) 60%, transparent 100%);
}
.tz-photo-card__body {
	position: absolute;
	bottom: 0; left: 0; right: 0;
	padding: 24px;
	z-index: 1;
}
.tz-photo-card__name {
	font-size: 22px;
	font-weight: 400;
	color: #fff;
	margin: 0 0 8px;
	line-height: 1.2;
}
.tz-photo-card__desc {
	font-size: 13px;
	color: rgba(255,255,255,0.7);
	margin: 0 0 12px;
	line-height: 1.5;
}
.tz-photo-card__cta {
	display: inline-block;
	font-size: 12px;
	color: #E04F2D;
	text-decoration: none;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
}
.tz-photo-card__cta:hover { color: #FF6B4A; }
@media (max-width: 1024px) { .tz-photo-cards { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .tz-photo-cards { grid-template-columns: 1fr !important; } }

/* ── Widget 8: Popular Destinations (Tz_Popular_Destinations) ── */

/* Filter tabs */
.tz-dest-tabs {
	display: flex;
	gap: 8px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 36px;
}
.tz-dest-tab {
	padding: 8px 22px;
	border-radius: 100px;
	font-size: 14px;
	font-weight: 500;
	color: #6b7280;
	background: #fff;
	border: 1px solid #e8ecf2;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.tz-dest-tab:hover,
.tz-dest-tab.is-active {
	background: #FF6B4A;
	color: #fff;
	border-color: #FF6B4A;
}

/* Tab panels — one visible at a time */
.tz-dest-panel {
	display: none;
}
.tz-dest-panel.is-active {
	display: block;
}

/* Wide cards span 2 columns */
.tz-photo-card--wide {
	grid-column: span 2;
}
@media (max-width: 640px) {
	.tz-photo-card--wide { grid-column: span 1; }
}

/* Sub-text (child names or short description) */
.tz-photo-card__sub {
	font-size: 12px;
	color: rgba(255,255,255,0.7);
	margin: 0 0 10px;
	line-height: 1.4;
}

/* View All footer */
.tz-pop-dest__footer {
	text-align: center;
	margin-top: 36px;
}
.tz-pop-dest__view-all {
	display: inline-block;
	padding: 12px 32px;
	border-radius: 100px;
	border: 2px solid #103d62;
	color: #103d62;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}
.tz-pop-dest__view-all:hover {
	background: #103d62;
	color: #fff;
}

/* ── Widget 2: Taxonomy Icon Cards ── */
.tz-icon-cards {
	display: grid;
	grid-template-columns: repeat(var(--tz-cols, 4), 1fr);
	gap: 16px;
}
.tz-icon-card {
	background: #fff;
	border: 1px solid #F4EDE3;
	padding: 28px 24px;
	border-radius: 2px;
	transition: border-color 0.2s, box-shadow 0.2s;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	color: inherit;
}
.tz-icon-card:hover {
	border-color: #E04F2D;
	box-shadow: 0 4px 16px rgba(224, 79, 45,0.12);
}
.tz-icon-card__img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #F4EDE3 center/cover no-repeat;
	margin-bottom: 16px;
	flex-shrink: 0;
}
.tz-icon-card__name {
	font-size: 16px;
	font-weight: 500;
	color: #0e0d0b;
	margin: 0 0 8px;
	line-height: 1.3;
}
.tz-icon-card__desc {
	font-size: 13px;
	color: #7a8c84;
	line-height: 1.6;
	flex: 1;
	margin: 0 0 16px;
}
.tz-icon-card__cta {
	font-size: 12px;
	color: #E04F2D;
	text-decoration: none;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin-top: auto;
}
.tz-icon-card__cta:hover { color: #FF6B4A; }
@media (max-width: 1024px) { .tz-icon-cards { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px) {
	.tz-icon-cards {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px;
	}
	.tz-icon-card {
		padding: 0;
		overflow: hidden; /* clips full-width image to card border-radius */
	}
	.tz-icon-card__img {
		width: 100%;
		height: 110px;
		border-radius: 0;
		margin-bottom: 0;
	}
	.tz-icon-card__name {
		padding: 12px 14px 8px;
		margin-bottom: 0;
	}
	.tz-icon-card__desc { display: none; }
	.tz-icon-card__cta { padding: 0 14px 14px; }
}

/* ── Widget 2b: Taxonomy Circle Cards ── */
.tz-circle-cards {
	display: grid;
	grid-template-columns: repeat(var(--tz-cols, 5), 1fr);
	gap: 12px;
}
.tz-circle-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 14px 10px;
	border: 1px solid #F4EDE3;
	border-radius: 2px;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s, box-shadow 0.2s;
	min-width: 0;
}
.tz-circle-card:hover {
	border-color: #E04F2D;
	box-shadow: 0 4px 16px rgba(224, 79, 45,0.12);
}
.tz-circle-card__img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #F4EDE3 center/cover no-repeat;
	margin-bottom: 10px;
	flex-shrink: 0;
}
.tz-circle-card__name {
	font-size: 13px;
	font-weight: 500;
	color: #0e0d0b;
	line-height: 1.3;
}
.tz-circle-card:hover .tz-circle-card__name { color: #E04F2D; }
@media (max-width: 1024px) { .tz-circle-cards { grid-template-columns: repeat(4, 1fr) !important; } }
@media (max-width: 640px)  { .tz-circle-cards { grid-template-columns: repeat(3, 1fr) !important; gap: 8px; } }
@media (max-width: 420px)  { .tz-circle-cards { grid-template-columns: repeat(2, 1fr) !important; } }

/* ── Widget 3: Destination Detail Cards ── */
.tz-dest-detail-cards { }
.tz-dest-region-header {
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #E04F2D;
	font-weight: 500;
	padding: 28px 0 14px;
	border-top: 1px solid rgba(224, 79, 45,0.25);
	margin-top: 8px;
}
.tz-dest-detail-grid {
	display: grid;
	grid-template-columns: repeat(var(--tz-cols, 3), 1fr);
	gap: 1px;
	background: #F4EDE3;
	border: 1px solid #F4EDE3;
	margin-bottom: 2px;
}
.tz-dest-detail-card {
	background: #fff;
	padding: 28px 24px;
}
.tz-dest-detail-card__name {
	font-size: 20px;
	font-weight: 500;
	color: #0e0d0b;
	margin: 0 0 6px;
}
.tz-dest-detail-card__desc {
	font-size: 13px;
	color: #7a8c84;
	margin: 0 0 16px;
	line-height: 1.5;
}
.tz-dest-detail-card__children {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}
.tz-dest-detail-card__children li {
	font-size: 13px;
	color: #5a5249;
	padding: 5px 0;
	border-bottom: 1px solid #f0ebe3;
	line-height: 1.4;
}
.tz-dest-detail-card__children li:last-child { border-bottom: none; }
.tz-dest-detail-card__cta {
	display: inline-block;
	font-size: 12px;
	color: #E04F2D;
	text-decoration: none;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
}
.tz-dest-detail-card__cta:hover { color: #FF6B4A; }
@media (max-width: 1024px) { .tz-dest-detail-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .tz-dest-detail-grid { grid-template-columns: 1fr !important; } }

/* ── Widget 4: Grouped Attraction Cards ── */
.tz-grouped-attractions__group { margin-bottom: 48px; }
.tz-grouped-attractions__group:last-child { margin-bottom: 0; }
.tz-group-header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 16px;
	border-bottom: 1px solid #F4EDE3;
	margin-bottom: 20px;
}
.tz-group-header__name {
	font-size: 18px;
	font-weight: 500;
	color: #0e0d0b;
	flex: 1;
	margin: 0;
}
.tz-group-header__link {
	font-size: 12px;
	color: #E04F2D;
	text-decoration: none;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	white-space: nowrap;
}
.tz-group-header__link:hover { color: #FF6B4A; }
.tz-attraction-cards {
	display: grid;
	grid-template-columns: repeat(var(--tz-cols, 5), 1fr);
	gap: 12px;
}
.tz-attraction-card { text-decoration: none; display: block; }
.tz-attraction-card__thumb {
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #2c4a3e center/cover no-repeat;
	margin-bottom: 8px;
	border-radius: 2px;
	display: block;
	transition: opacity 0.2s;
}
.tz-attraction-card:hover .tz-attraction-card__thumb { opacity: 0.85; }
.tz-attraction-card__name {
	font-size: 13px;
	font-weight: 500;
	color: #0e0d0b;
	line-height: 1.3;
}
.tz-attraction-card:hover .tz-attraction-card__name { color: #E04F2D; }
@media (max-width: 1024px) { .tz-attraction-cards { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 640px)  { .tz-attraction-cards { grid-template-columns: repeat(2, 1fr) !important; } }

/* ── Destination page — Attractions list ── */
.tz-dest-attractions {
	padding: 56px 0;
	background: #faf8f5;
}
.tz-dest-attractions__heading {
	font-size: 22px;
	font-weight: 600;
	color: #0e0d0b;
	margin: 0 0 28px;
	padding-bottom: 16px;
	border-bottom: 1px solid #F4EDE3;
}
.tz-dest-attractions__grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(var(--tz-attr-cols, 5), 1fr);
	gap: 16px;
}
.tz-dest-attractions__item { margin: 0; }
.tz-dest-attractions__card {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.15s;
}
.tz-dest-attractions__card:hover { transform: translateY(-2px); }
.tz-dest-attractions__img {
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #2c4a3e center/cover no-repeat;
	border-radius: 4px;
	margin-bottom: 8px;
	display: block;
	transition: opacity 0.2s;
}
.tz-dest-attractions__card:hover .tz-dest-attractions__img { opacity: 0.85; }
.tz-dest-attractions__img--empty { background-color: #F4EDE3; }
.tz-dest-attractions__name {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: #0e0d0b;
	line-height: 1.4;
}
.tz-dest-attractions__card:hover .tz-dest-attractions__name { color: #E04F2D; }
@media (max-width: 1200px) { .tz-dest-attractions__grid { --tz-attr-cols: 4; } }
@media (max-width: 900px)  { .tz-dest-attractions__grid { --tz-attr-cols: 3; } }
@media (max-width: 600px)  { .tz-dest-attractions__grid { --tz-attr-cols: 2; } }


/* ============================================================
   Widget 7: Tour Toggle  (.tz-tour-toggle)
   Vertical sidebar tabs with a content panel.
   CSS variables set inline by the widget render() method.
   ============================================================ */

.tz-tour-toggle {
	display: flex;
	width: 100%;
	height: var(--tz-toggle-height, 560px);
	border-radius: var(--tz-toggle-radius, 12px);
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0,0,0,0.10);
	background: #fff;
}

/* ── Sidebar ── */
.tz-tour-toggle__sidebar {
	width: var(--tz-toggle-sidebar, 28%);
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	background: #f5f6f8;
	border-right: 1px solid #e8eaed;
}

.tz-tour-toggle__header {
	padding: 20px 18px;
	background: linear-gradient(135deg, var(--tz-toggle-primary, #FF6B4A), var(--tz-toggle-secondary, #003C7A));
	color: #fff;
	text-align: center;
	flex-shrink: 0;
}

.tz-tour-toggle__header h3 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
}

.tz-tour-toggle__options {
	flex: 1;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.tz-tour-toggle__btn {
	padding: 13px 16px;
	border: none;
	border-bottom: 1px solid #e8eaed;
	background: transparent;
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 500;
	text-align: left;
	color: #444;
	transition: background 0.2s, color 0.2s;
	line-height: 1.4;
}

.tz-tour-toggle__btn:last-child { border-bottom: none; }

.tz-tour-toggle__btn:hover {
	background: #eaecef;
	color: #111;
}

.tz-tour-toggle__btn.is-active {
	background: #fff;
	color: var(--tz-toggle-primary, #FF6B4A);
	font-weight: 700;
	border-right: 3px solid var(--tz-toggle-primary, #FF6B4A);
}

/* ── Content panel ── */
.tz-tour-toggle__content {
	flex: 1;
	overflow-y: auto;
	position: relative;
}

.tz-tour-toggle__panel {
	display: none;
	padding: 28px 28px 24px;
	height: 100%;
	box-sizing: border-box;
}

.tz-tour-toggle__panel.is-active { display: block; }

.tz-tour-toggle__panel-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 14px;
}

.tz-tour-toggle__panel-body {
	font-size: 0.95rem;
	line-height: 1.7;
	color: #555;
}

.tz-tour-toggle__panel-body p { margin-bottom: 12px; }
.tz-tour-toggle__panel-body p:last-child { margin-bottom: 0; }

.tz-tour-toggle__cta {
	display: inline-block;
	margin-top: 20px;
	padding: 10px 22px;
	background: var(--tz-toggle-primary, #FF6B4A);
	color: #fff;
	border: none;
	border-radius: 5px;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: opacity 0.2s;
}

.tz-tour-toggle__cta:hover { opacity: 0.88; color: #fff; }

/* ── Responsive: stack vertically on tablet/mobile ── */
@media (max-width: 768px) {
	.tz-tour-toggle {
		flex-direction: column;
		height: auto;
	}
	.tz-tour-toggle__sidebar {
		width: 100%;
		border-right: none;
		border-bottom: 1px solid #e8eaed;
	}
	.tz-tour-toggle__options {
		flex-direction: row;
		flex-wrap: wrap;
		overflow-x: auto;
		overflow-y: visible;
	}
	.tz-tour-toggle__btn {
		flex: 0 0 auto;
		border-bottom: none;
		border-right: 1px solid #e8eaed;
		white-space: nowrap;
	}
	.tz-tour-toggle__btn:last-child { border-right: none; }
	.tz-tour-toggle__btn.is-active {
		border-right: 1px solid #e8eaed;
		border-bottom: 3px solid var(--tz-toggle-primary, #FF6B4A);
	}
	.tz-tour-toggle__panel {
		height: auto;
		min-height: 200px;
	}
}

/* ============================================================
   Popular Tags (Travelfic Hero injection)
   ============================================================ */
.tz-popular-tags {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.tz-popular-tags__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #FF6B4A;
	white-space: nowrap;
	opacity: 0.9;
}
.tz-popular-tags__items {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.tz-popular-tags__item {
	display: inline-block;
	padding: 5px 16px;
	border-radius: 100px;
	background: #FF6B4A;
	border: 1.5px solid transparent;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(59,113,254,0.28);
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.tz-popular-tags__item:hover {
	background: #103d62;
	color: #fff;
	box-shadow: 0 4px 14px rgba(26,43,72,0.32);
	transform: translateY(-1px);
}

/* Layout when injected inside the hero */
.tz-popular-tags--hero {
	justify-content: center;
	margin-top: 18px;
	padding-bottom: 4px;
}

@media (max-width: 640px) {
	.tz-popular-tags {
		justify-content: center;
	}
	.tz-popular-tags__item {
		font-size: 12px;
		padding: 4px 13px;
	}
}

/* ── Complianz Data Request Form Styling ── */
#cmplz-datarequest-form {
	max-width: 720px;
	margin: 0 auto;
}
#cmplz-datarequest-form label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	color: var(--tz-dark, #103d62);
	margin-bottom: 6px;
}
#cmplz-datarequest-form input[type="text"],
#cmplz-datarequest-form input[type="email"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--tz-border, #e5e7eb);
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	margin-bottom: 16px;
	background: #fff;
}
#cmplz-datarequest-form input[type="text"]:focus,
#cmplz-datarequest-form input[type="email"]:focus {
	border-color: var(--tz-blue, #FF6B4A);
	outline: none;
	box-shadow: 0 0 0 3px rgba(59, 113, 254, 0.1);
}
#cmplz-datarequest-form .cmplz_datarequest {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 0;
	border-bottom: 1px solid var(--tz-border, #e5e7eb);
}
#cmplz-datarequest-form .cmplz_datarequest:first-of-type {
	border-top: 1px solid var(--tz-border, #e5e7eb);
	margin-top: 8px;
}
#cmplz-datarequest-form .cmplz_datarequest label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: normal;
	font-size: 14px;
	color: #374151;
	margin-bottom: 0;
	cursor: pointer;
}
#cmplz-datarequest-form .cmplz_datarequest input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	accent-color: var(--tz-blue, #FF6B4A);
	cursor: pointer;
}
#cmplz-datarequest-form input[type="button"],
#cmplz-datarequest-form #cmplz-datarequest-submit {
	display: inline-block;
	padding: 10px 24px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	border: none;
	background: var(--tz-blue, #FF6B4A);
	color: #fff;
	margin-top: 20px;
	transition: background 0.2s;
}
#cmplz-datarequest-form input[type="button"]:hover,
#cmplz-datarequest-form #cmplz-datarequest-submit:hover {
	background: var(--tz-blue-dark, #E04F2D);
}
.cmplz-datarequest.cmplz-alert {
	max-width: 720px;
	margin: 16px auto;
	padding: 14px 18px;
	border-radius: 8px;
	font-size: 14px;
}

/* Privacy request page intro */
.tz-privacy-request-intro {
	max-width: 720px;
	margin: 0 auto 32px;
	text-align: center;
}
.tz-privacy-request-intro h1 {
	font-family: var(--tz-font-heading);
	font-size: 2rem;
	font-weight: 700;
	color: var(--tz-dark, #103d62);
	margin: 0 0 12px;
}
.tz-privacy-request-intro p {
	font-size: 1rem;
	color: var(--tz-gray, #6b7280);
	line-height: 1.6;
	margin: 0 0 8px;
}
.tz-privacy-request-intro a {
	color: var(--tz-blue, #FF6B4A);
	text-decoration: underline;
}

/* Privacy Request — "See also" footer links (was inline CSS on the page) */
.tz-privacy-request-links {
	max-width: 720px;
	margin: 32px auto 0;
	text-align: center;
}
.tz-privacy-request-links p {
	font-size: 0.85rem;
	color: var(--tz-gray, #6b7280);
}
.tz-privacy-request-links a {
	color: var(--tz-blue, #FF6B4A);
	text-decoration: underline;
}

/* =======================================
   Migrated from Customizer Additional CSS
   ===================================== */

/* Travelfic Hero adjustments */
.tft-hero-design__three .tft-hero-content-box {
	bottom: 128px;
}
.tft-hero-design__three {
	margin: 0 0 20px 0;
}

/* Footer bar */
.tz-footer-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 24px;
	background-color: #ffffff;
	border-top: 1px solid #e5e5e5;
	font-size: 13px;
	color: #333333;
}
.tz-footer-bar__copyright {
	color: #333333;
}
.tz-footer-bar__links {
	display: flex;
	align-items: center;
	gap: 0;
}
.tz-footer-bar__links a {
	color: #103d62;
	text-decoration: none;
	padding: 0 14px;
	border-right: 1px solid #cccccc;
	line-height: 1;
}
.tz-footer-bar__links a:last-child {
	border-right: none;
}
.tz-footer-bar__links a:hover {
	text-decoration: underline;
}
@media (max-width: 640px) {
	.tz-footer-bar {
		flex-direction: column;
		gap: 12px;
		text-align: center;
	}
	.tz-footer-bar__links {
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* About + legal page styles moved to tourszoom-design pages.css
   (static-pages redesign 2026-07-03). Generic hero inner kept —
   the messaging contact page hero shares .tz-tax-hero markup. */
.tz-tax-hero__inner {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 20px;
}

/* for-tour-operators (tz-lp-*) styles moved to tourszoom-design
   pages.css (static-pages redesign 2026-07-03). */

/* ============================================================
   BLOG PAGE — Magazine Layout (template-blog.php)
   ============================================================ */

/* Section wrapper */
.tz-blog__section {
	padding: 64px 0;
}

.tz-blog__section--gray {
	background: #f4f6f9;
}

.tz-blog__section-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.tz-blog__section-title {
	font-family: var(--tz-font-heading);
	font-size: 28px;
	font-weight: 400;
	color: #103d62;
	margin-bottom: 32px;
	position: relative;
	padding-bottom: 12px;
}

.tz-blog__section-title::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 48px;
	height: 3px;
	background: #FF6B4A;
}

/* ---- HERO ---- */
.tz-blog__hero {
	position: relative;
	overflow: hidden;
}

.tz-blog__hero-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.tz-blog__hero-img {
	height: 500px;
	background-size: cover;
	background-position: center;
	transition: transform 0.4s;
}

.tz-blog__hero-link:hover .tz-blog__hero-img {
	transform: scale(1.03);
}

.tz-blog__hero-img--placeholder {
	background: #103d62;
}

.tz-blog__hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(transparent 30%, rgba(26, 52, 96, 0.85) 100%);
	display: flex;
	align-items: flex-end;
}

.tz-blog__hero-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 24px;
	width: 100%;
}

.tz-blog__hero-cat {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #FF6B4A;
	background: rgba(255, 255, 255, 0.95);
	padding: 4px 12px;
	border-radius: 4px;
	margin-bottom: 12px;
}

.tz-blog__hero-title {
	font-family: var(--tz-font-heading);
	font-size: 42px;
	font-weight: 400;
	color: #ffffff;
	line-height: 1.2;
	margin-bottom: 12px;
	max-width: 700px;
}

.tz-blog__hero-excerpt {
	font-size: 17px;
	color: rgba(255, 255, 255, 0.85);
	max-width: 600px;
	line-height: 1.5;
	margin-bottom: 8px;
}

.tz-blog__hero-date {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
}

/* ---- CARDS ---- */
.tz-blog__card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.25s, transform 0.25s;
}

.tz-blog__card:hover {
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
	transform: translateY(-3px);
	color: inherit;
}

.tz-blog__card-img {
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
}

.tz-blog__card-img--placeholder {
	background: linear-gradient(135deg, #103d62, #FF6B4A);
}

.tz-blog__card-body {
	padding: 20px 24px 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.tz-blog__card-cat {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #FF6B4A;
	margin-bottom: 8px;
}

.tz-blog__card-title {
	font-family: var(--tz-font-heading);
	font-size: 18px;
	font-weight: 400;
	color: #103d62;
	line-height: 1.3;
	margin-bottom: 8px;
}

.tz-blog__card-title--large {
	font-size: 26px;
}

.tz-blog__card-excerpt {
	font-size: 14px;
	color: #6b7280;
	line-height: 1.6;
	flex: 1;
}

.tz-blog__card-date {
	font-size: 12px;
	color: #9ca3af;
	margin-top: 12px;
}

/* ---- ASYMMETRIC GRID (1 large + 2 small stacked) ---- */
.tz-blog__asymmetric {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 24px;
	align-items: start;
}

.tz-blog__asymmetric-small {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.tz-blog__asymmetric-large .tz-blog__card {
	height: 100%;
}

.tz-blog__asymmetric-large .tz-blog__card-img {
	height: 300px;
}

.tz-blog__asymmetric-small .tz-blog__card {
	flex-direction: row;
}

.tz-blog__asymmetric-small .tz-blog__card-img {
	width: 180px;
	height: auto;
	min-height: 140px;
	flex-shrink: 0;
}

.tz-blog__asymmetric-small .tz-blog__card-body {
	padding: 16px 20px;
}

.tz-blog__asymmetric-small .tz-blog__card-title {
	font-size: 16px;
}

/* ---- GRIDS ---- */
.tz-blog__grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.tz-blog__grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.tz-blog__grid-3 .tz-blog__card-img,
.tz-blog__grid-4 .tz-blog__card-img {
	height: 200px;
}

.tz-blog__grid-4 .tz-blog__card-title {
	font-size: 16px;
}

.tz-blog__grid-4 .tz-blog__card-excerpt {
	font-size: 13px;
}

/* ---- PAGINATION ---- */
.tz-blog__pagination {
	text-align: center;
	margin-top: 48px;
}

.tz-blog__pagination .page-numbers {
	display: inline-block;
	padding: 8px 16px;
	margin: 0 4px;
	font-size: 14px;
	color: #374151;
	text-decoration: none;
	border-radius: 4px;
	transition: background 0.2s;
}

.tz-blog__pagination .page-numbers:hover {
	background: #f4f6f9;
}

.tz-blog__pagination .page-numbers.current {
	background: #FF6B4A;
	color: #ffffff;
}

.tz-blog__pagination .prev,
.tz-blog__pagination .next {
	font-weight: 600;
	color: #FF6B4A;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 1024px) {
	.tz-blog__hero-img {
		height: 400px;
	}

	.tz-blog__hero-title {
		font-size: 34px;
	}

	.tz-blog__grid-4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.tz-blog__asymmetric {
		grid-template-columns: 1fr;
	}

	.tz-blog__asymmetric-small {
		flex-direction: row;
	}

	.tz-blog__asymmetric-small .tz-blog__card {
		flex-direction: column;
	}

	.tz-blog__asymmetric-small .tz-blog__card-img {
		width: 100%;
		height: 180px;
	}
}

@media (max-width: 768px) {
	.tz-blog__hero-img {
		height: 300px;
	}

	.tz-blog__hero-title {
		font-size: 26px;
	}

	.tz-blog__hero-excerpt {
		font-size: 15px;
	}

	.tz-blog__section {
		padding: 40px 0;
	}

	.tz-blog__grid-3,
	.tz-blog__grid-4 {
		grid-template-columns: 1fr;
	}

	.tz-blog__asymmetric-small {
		flex-direction: column;
	}

	.tz-blog__asymmetric-small .tz-blog__card {
		flex-direction: row;
	}

	.tz-blog__asymmetric-small .tz-blog__card-img {
		width: 120px;
		height: auto;
		min-height: 100px;
	}
}

/* ============================================================
   SINGLE POST DESIGN — .tz-post__* classes
   Used in WordPress classic editor post content.
   All blog/* paths are passthrough — prelaunch CSS also available.
   ============================================================ */

.tz-post__img {
	display: block;
	width: 100%;
	height: 340px;
	object-fit: cover;
	border-radius: 8px;
	margin: 32px 0;
}

.tz-post__img--hero {
	height: 480px;
	border-radius: 0;
	margin: 0 0 40px;
}

.tz-post__pullquote {
	border-left: 4px solid #FF6B4A;
	background: #f4f6f9;
	padding: 20px 24px;
	margin: 36px 0;
	border-radius: 0 8px 8px 0;
	font-size: 17px;
	font-style: italic;
	color: #103d62;
	line-height: 1.6;
}

.tz-post__pullquote cite {
	display: block;
	margin-top: 10px;
	font-size: 13px;
	font-style: normal;
	color: #6b7280;
	font-weight: 600;
}

.tz-post__faq {
	margin: 8px 0 40px;
}

.tz-post__faq-item {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 20px 24px;
	margin-bottom: 12px;
	background: #ffffff;
}

.tz-post__faq-q {
	font-weight: 600;
	color: #103d62;
	font-size: 16px;
	margin: 0 0 8px !important;
}

.tz-post__faq-a {
	color: #374151;
	font-size: 15px;
	line-height: 1.65;
	margin: 0 !important;
}

.tz-post__cta {
	background: #103d62;
	border-radius: 12px;
	padding: 48px 40px;
	text-align: center;
	margin: 48px 0 16px;
}

.tz-post__cta h3 {
	color: #ffffff !important;
	font-size: 26px;
	margin-bottom: 12px !important;
}

.tz-post__cta p {
	color: rgba(255, 255, 255, 0.82);
	font-size: 16px;
	max-width: 500px;
	margin: 0 auto 28px !important;
}

.tz-post__included {
	background: #f4f6f9;
	border-radius: 8px;
	padding: 20px 24px 20px 40px;
	margin: 16px 0 32px;
}

.tz-post__included li {
	color: #374151;
	font-size: 15px;
	margin-bottom: 6px;
	line-height: 1.5;
}

.tz-post__included li::marker {
	color: #FF6B4A;
}

@media (max-width: 768px) {
	.tz-post__img {
		height: 220px;
		margin: 24px 0;
	}

	.tz-post__img--hero {
		height: 260px;
		margin: 0 0 28px;
	}

	.tz-post__cta {
		padding: 36px 24px;
	}

	.tz-post__cta h3 {
		font-size: 22px;
	}
}

/* ============================================================
   REGISTRATION PAGE — Match for-tour-operators page style
   Applies to /register/?role=vendor and /register/
   ============================================================ */

/* Page background */
.page-template-tf-register #tf-site-content,
.page-template-tf-register .site-content,
.page-template-tf-register .entry-content {
	background: #f4f6f9;
	padding: 0;
}

/* Form container — card style */
.tf-reg-wrap,
.tf_register_wrap,
.tf-register-wrap {
	max-width: 600px;
	margin: 48px auto;
	padding: 48px 40px;
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
	font-family: var(--tz-font-body, sans-serif);
}

/* Form heading */
.tf-reg-wrap h2,
.tf-reg-wrap h3,
.tf-reg-wrap .tf-register-title,
.tf_register_wrap h2 {
	font-family: var(--tz-font-heading);
	color: #103d62;
	font-size: 32px;
	font-weight: 400;
	margin-bottom: 8px;
}

/* Subtitle text under heading */
.tf-reg-wrap .tf-register-subtitle,
.tf-reg-wrap > p:first-of-type {
	color: #6b7280;
	font-size: 15px;
	margin-bottom: 32px;
}

/* Form field labels */
.tf-reg-wrap label,
.tf-reg-wrap .tf-field-label,
.tf_register_wrap label {
	font-family: var(--tz-font-body, sans-serif);
	font-size: 14px;
	font-weight: 600;
	color: #374151;
	display: block;
	margin-bottom: 6px;
}

/* All text inputs, selects, textareas */
.tf-reg-wrap input[type="text"],
.tf-reg-wrap input[type="email"],
.tf-reg-wrap input[type="password"],
.tf-reg-wrap input[type="tel"],
.tf-reg-wrap input[type="url"],
.tf-reg-wrap input[type="number"],
.tf-reg-wrap select,
.tf-reg-wrap textarea,
.tf_register_wrap input[type="text"],
.tf_register_wrap input[type="email"],
.tf_register_wrap input[type="password"],
.tf_register_wrap select {
	width: 100% !important;
	padding: 12px 16px !important;
	font-family: var(--tz-font-body, sans-serif) !important;
	font-size: 15px !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 4px !important;
	background: #ffffff !important;
	color: #374151 !important;
	margin-bottom: 20px !important;
	transition: border-color 0.2s, background 0.2s, box-shadow 0.2s !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
}

.tf-reg-wrap input:focus,
.tf-reg-wrap select:focus,
.tf-reg-wrap textarea:focus,
.tf_register_wrap input:focus,
.tf_register_wrap select:focus {
	border-color: #FF6B4A !important;
	background: #ffffff !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(59, 113, 254, 0.12) !important;
}

/* Placeholder text */
.tf-reg-wrap input::placeholder,
.tf-reg-wrap textarea::placeholder {
	color: #9ca3af;
}

/* Radio buttons and checkboxes */
.tf-reg-wrap input[type="radio"],
.tf-reg-wrap input[type="checkbox"] {
	accent-color: #FF6B4A;
}

/* Register As section */
.tf-reg-wrap .tf-register-as,
.tf-reg-wrap .register-as {
	margin: 24px 0;
	padding: 16px 0;
	border-top: 1px solid #f3f4f6;
}

.tf-reg-wrap .tf-register-as label,
.tf-reg-wrap .register-as label {
	font-size: 15px;
	font-weight: 500;
	color: #374151;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	margin-right: 16px;
}

/* Submit button */
.tf-reg-wrap input[type="submit"],
.tf-reg-wrap button[type="submit"],
.tf_register_wrap input[type="submit"] {
	display: inline-block;
	background: #FF6B4A;
	color: #ffffff;
	font-family: var(--tz-font-body, sans-serif);
	font-size: 16px;
	font-weight: 600;
	padding: 14px 40px;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.2s;
	margin-top: 8px;
	width: auto;
	letter-spacing: 0.3px;
}

.tf-reg-wrap input[type="submit"]:hover,
.tf-reg-wrap button[type="submit"]:hover,
.tf_register_wrap input[type="submit"]:hover {
	background: #2b5ed4;
}

/* Links (Login, Terms, etc.) */
.tf-reg-wrap a {
	color: #FF6B4A;
	text-decoration: none;
}

.tf-reg-wrap a:hover {
	color: #2b5ed4;
	text-decoration: underline;
}

/* "Already have an account?" text */
.tf-reg-wrap .tf-login-link,
.tf-reg-wrap p:last-of-type {
	text-align: center;
	margin-top: 24px;
	color: #6b7280;
	font-size: 14px;
}

/* File upload field */
.tf-reg-wrap input[type="file"] {
	padding: 10px 0;
	font-size: 14px;
	color: #374151;
}

/* Field groups — consistent spacing */
.tf-reg-wrap .tf-reg-field,
.tf-reg-wrap .form-group,
.tf-reg-wrap p {
	margin-bottom: 4px;
}

/* Google OAuth button — match brand */
.tf-reg-wrap .nsl-container,
.tf-reg-wrap .nextend-social-login {
	margin: 24px 0;
	padding: 16px 0;
	border-top: 1px solid #f3f4f6;
}

/* Error messages */
.tf-reg-wrap .tf-error,
.tf-reg-wrap .woocommerce-error,
.tf-reg-wrap .tf-notice-error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
	border-radius: 4px;
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 14px;
}

/* Success messages */
.tf-reg-wrap .tf-success,
.tf-reg-wrap .tf-notice-success {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
	border-radius: 4px;
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 14px;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
	.tf-reg-wrap,
	.tf_register_wrap,
	.tf-register-wrap {
		margin: 24px 16px;
		padding: 32px 24px;
	}

	.tf-reg-wrap h2,
	.tf-reg-wrap h3 {
		font-size: 26px;
	}

	.tf-reg-wrap input[type="submit"],
	.tf-reg-wrap button[type="submit"] {
		width: 100%;
	}
}

/* ── Brand page-title banner — navy/blue gradient on all page headers (2026-06-08) ──
   The theme banner uses a per-page inline background-image; several 404 (e.g. the
   operators page Greece image), leaving a grey banner. Force the brand gradient
   (matches the homepage hero) site-wide so every page header is consistent.
   !important overrides the inline background-image; the parent theme already
   renders the title white, so it reads cleanly on the dark gradient. */
#tft-site-main-body .tf-page-header .tf-page-header-inner {
	/* navy family only (was navy→coral; static-pages redesign 2026-07-03) */
	background-image: linear-gradient( 150deg, #0d2840, #103d62 55%, #164e7d ) !important;
	background-color: #103d62 !important;
	background-size: cover;
	background-position: center;
	padding-top: 64px;
	padding-bottom: 64px;
}

/* ── FA icon fonts: add font-display swap (PSI 2026-06-10, 210ms block).
   Same family + src as elementor/assets/lib/font-awesome (which declares no
   font-display); a later identical @font-face wins and adds swap. ── */
@font-face {
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("../woff2/fa-solid-900.woff2") format("woff2");
}
@font-face {
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../woff2/fa-regular-400.woff2") format("woff2");
}
@font-face {
	font-family: "Font Awesome 5 Brands";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../woff2/fa-brands-400.woff2") format("woff2");
}

/* ── Tourfic Pro prints its refund-confirmation modal into wp_footer on
   EVERY page; its own stylesheet hides it, but pages that dequeue Tourfic
   assets (homepage) showed the bare "Cancel / Refund" buttons as text.
   Default-hide is safe site-wide: Tourfic opens the modal via an inline
   display:flex, which overrides this rule. (2026-06-11) ── */
.tf-refund-confirmation-box {
	display: none;
}

/* ── 404 page (Horizon brand system, 2026-06-12) ─────────────────────── */
.tft-404 .tz-404 {
	background: var(--tz-gray-light, #F5F7FA);
	padding: 90px 24px 110px;
	text-align: center;
}
.tz-404__inner {
	max-width: 680px;
	margin: 0 auto;
}
.tz-404__code {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(6px, 1.5vw, 14px);
	font-family: var(--tz-font-title);
	font-weight: 700;
	font-size: clamp(96px, 18vw, 160px);
	line-height: 1;
	color: var(--tz-navy, #103d62);
	user-select: none;
}
.tz-404__code img {
	width: clamp(76px, 14vw, 128px);
	height: auto;
	transform: translateY(3%);
}
.tft-404 .tz-404 .tz-404__title {
	margin: 30px 0 12px;
	color: var(--tz-navy, #103d62);
}
.tz-404__lead {
	max-width: 480px;
	margin: 0 auto 32px;
	color: var(--tz-gray, #6B7280);
}
.tz-404__actions {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 36px;
}
.tft-404 .tz-404__btn {
	display: inline-block;
	padding: 14px 28px;
	border-radius: var(--tz-radius, 10px);
	font-family: var(--tz-font-body);
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.tft-404 .tz-404__btn--primary {
	background: var(--tz-blue, #FF6B4A); /* action token: coral under the kit */
	color: #fff;
	border: 2px solid var(--tz-blue, #FF6B4A);
}
.tft-404 .tz-404__btn--primary:hover {
	background: var(--tz-blue-dark, #E04F2D);
	border-color: var(--tz-blue-dark, #E04F2D);
	color: #fff;
}
.tft-404 .tz-404__btn--ghost {
	background: transparent;
	color: var(--tz-navy, #103d62);
	border: 2px solid var(--tz-navy, #103d62);
}
.tft-404 .tz-404__btn--ghost:hover {
	background: var(--tz-navy, #103d62);
	color: #fff;
}
.tz-404__search {
	display: flex;
	max-width: 480px;
	margin: 0 auto 40px;
	border: 1px solid var(--tz-border, #E3E8F0);
	border-radius: var(--tz-radius, 10px);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--tz-shadow, 0 2px 8px rgba(16, 61, 98, 0.08));
}
.tft-404 .tz-404__search input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 0;
	padding: 14px 18px;
	font-family: var(--tz-font-body);
	font-size: 16px;
	color: var(--tz-dark, #103d62);
	background: transparent;
	outline-offset: -2px;
}
.tft-404 .tz-404__search button {
	border: 0;
	padding: 0 26px;
	background: var(--tz-navy, #103d62);
	color: #fff;
	font-family: var(--tz-font-body);
	font-weight: 500;
	font-size: 15px;
	cursor: pointer;
}
.tft-404 .tz-404__search button:hover {
	background: var(--tz-blue, #FF6B4A);
}
.tz-404__dests {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
}
.tz-404__dests-label {
	color: var(--tz-gray, #6B7280);
	font-size: 14px;
}
.tft-404 .tz-404__chip {
	display: inline-block;
	padding: 7px 16px;
	border: 1px solid var(--tz-border, #E3E8F0);
	border-radius: 999px;
	background: #fff;
	color: var(--tz-navy, #103d62);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease;
}
.tft-404 .tz-404__chip:hover {
	border-color: var(--tz-blue, #FF6B4A);
	color: var(--tz-blue, #FF6B4A);
}
