/**
 * CMS Tour Manager — Tour Detail Page Styles
 * Theme-agnostic layout with CSS custom properties so any theme can override colours.
 */

/* ─── Custom property defaults — accent colors set by PHP via wp_head at priority 999 ─── */
:root {
	--ctm-accent:           #1a252c; /* fallback only — PHP output_theme_css() overrides this */
	--ctm-accent-light:     #eaecef;
	--ctm-accent-dark:      #151e24;
	--ctm-accent2:          var(--ctm-accent-dark);   /* secondary accent — hover states, pills */
	--ctm-border:           #e0e6e3;
	--ctm-bg:               #f7faf8;
	--ctm-text:             #2c3338;
	--ctm-text-muted:       #646970;
	--ctm-heading:          var(--ctm-text);           /* section headings */
	--ctm-link:             var(--ctm-accent);
	--ctm-btn-bg:           var(--ctm-accent);         /* button fill */
	--ctm-btn-text:         #ffffff;
	--ctm-radius:           8px;
	--ctm-shadow:           0 2px 8px rgba(0,0,0,.07);
	/* Overridden by Design & Appearance settings via wp_head <style> */
	--ctm-card-img-height:  220px;
	--ctm-card-radius:      10px;
	--ctm-btn-radius:       6px;
	--ctm-font-size-base:   16px;
}

/* ─── Box-sizing & theme isolation reset ─── */
/*
 * Scope box-sizing to every CTM element so Impreza/WPBakery/Elementor
 * border-box or content-box defaults don't break our grid math.
 */
[class*="ctm-"],
[class*="ctm-"] *,
[class*="ctm-"] *::before,
[class*="ctm-"] *::after {
	box-sizing: border-box;
}

/* Reset list styles that themes commonly override */
.ctm-tour-card__meta,
.ctm-highlights-list,
.ctm-list,
.ctm-tour-compact,
.ctm-recent-tours,
.ctm-top-terms {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

/* Reset image styles inside CTM cards so themes don't break object-fit */
.ctm-tour-card__img,
.ctm-tour-list-item__img,
.ctm-tour-compact-item__thumb img,
.ctm-gallery__item img {
	max-width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/* ─── Section shared styles ─── */
.ctm-quick-facts,
.ctm-highlights,
.ctm-inclusions,
.ctm-itinerary {
	margin: 1.25rem 0;
}

.ctm-booking-box {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
}

.ctm-quick-facts h2,
.ctm-highlights h2,
.ctm-inclusions > h2,
.ctm-itinerary h2 {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 1rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--ctm-border);
	color: var(--ctm-heading, var(--ctm-text));
}

/* ─── Quick Facts Grid ─── */
.ctm-facts-grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 140px, 1fr ) );
	gap: 1px;
	background: var(--ctm-border);
	border: 1px solid var(--ctm-border);
	border-radius: var(--ctm-radius);
	overflow: hidden;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ctm-fact {
	background: #fff;
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.ctm-fact dt {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ctm-text-muted);
	font-weight: 600;
}

.ctm-fact dd {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0;
	color: var(--ctm-text);
}

/* ─── Highlights ─── */
.ctm-highlights-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}

.ctm-highlights-list li {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .7rem 1rem;
	background: var(--ctm-bg);
	border-left: 3px solid var(--ctm-accent);
	border-radius: 0 var(--ctm-radius) var(--ctm-radius) 0;
	font-size: .95rem;
	color: var(--ctm-text);
}

.ctm-highlights-list li::before {
	content: '✓';
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--ctm-accent);
	color: #fff;
	border-radius: 50%;
	font-size: .7rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: .05rem;
}

/* ─── Inclusions & Exclusions ─── */
/* ─── Inclusions / Exclusions ─── */
.ctm-inex-grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
	gap: 1rem;
}

.ctm-inex-card {
	border-radius: var(--ctm-radius, 10px);
	overflow: hidden;
	background: #fff;
	border: 1px solid #e4e7eb;
}

/* Thin accent top bar instead of heavy header block */
.ctm-inex-card--included {
	border-top: 3px solid var(--ctm-accent, #1a252c);
}

.ctm-inex-card--excluded {
	border-top: 3px solid #ef4444;
}

.ctm-inex-card__head {
	display: flex;
	align-items: center;
	gap: .55rem;
	padding: .7rem 1rem .55rem;
	border-bottom: 1px solid #f0f1f3;
}

.ctm-inex-card__icon {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ctm-inex-card__icon--inc {
	background: var(--ctm-accent-light, #eaecef);
	color: var(--ctm-accent, #1a252c);
}

.ctm-inex-card__icon--exc {
	background: #fff0f0;
	color: #ef4444;
}

.ctm-inex-card__title {
	font-size: .82rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin: 0;
	border: none;
	padding: 0;
}

.ctm-inex-card--included .ctm-inex-card__title {
	color: var(--ctm-accent-dark, #151e24);
}

.ctm-inex-card--excluded .ctm-inex-card__title {
	color: #b91c1c;
}

.ctm-inex-list {
	list-style: none;
	margin: 0;
	padding: .25rem 0 .35rem;
}

.ctm-inex-item {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	padding: .35rem 1rem;
	font-size: .82rem;
	line-height: 1.4;
	color: var(--ctm-text, #2c3338);
}

.ctm-inex-item__tick {
	flex-shrink: 0;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: .1rem;
}

.ctm-inex-item--inc .ctm-inex-item__tick {
	color: var(--ctm-accent, #1a252c);
}

.ctm-inex-item--exc .ctm-inex-item__tick {
	color: #ef4444;
}

/* ─── Itinerary — timeline redesign ─── */
.ctm-itin-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: 1.1rem;
	flex-wrap: wrap;
}

.ctm-itin-title {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0;
	color: var(--ctm-heading, var(--ctm-text, #2c3338));
	border: none;
	padding: 0;
}

.ctm-itin-title__icon {
	color: var(--ctm-accent, #1a252c);
	line-height: 0;
}

.ctm-itin-count {
	font-size: .78rem;
	font-weight: 600;
	background: var(--ctm-accent-light, #eaecef);
	color: var(--ctm-accent-dark, #151e24);
	padding: .25em .85em;
	border-radius: 20px;
	white-space: nowrap;
}

.ctm-itin-timeline {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ctm-itin-item {
	position: relative;
}

.ctm-itin-trigger {
	display: flex;
	align-items: flex-start;
	gap: 0;
	cursor: pointer;
	list-style: none;
	user-select: none;
	background: transparent;
	border: none;
	width: 100%;
	text-align: start;
	padding: 0;
}

.ctm-itin-trigger::-webkit-details-marker {
	display: none;
}

.ctm-itin-icon-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-shrink: 0;
	width: 48px;
	padding-top: .85rem;
}

.ctm-itin-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	position: relative;
	z-index: 1;
}

.ctm-itin-icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

.ctm-itin-connector {
	width: 2px;
	flex: 1;
	min-height: 28px;
	background: var(--ctm-border, #e2e8f0);
	margin-top: 4px;
}

.ctm-itin-item:last-child .ctm-itin-connector {
	display: none;
}

.ctm-itin-trigger__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	padding: .75rem .6rem .75rem 0;
	border-bottom: 1px solid var(--ctm-border, #e2e8f0);
	min-width: 0;
}

.ctm-itin-item:last-child .ctm-itin-trigger__content {
	border-bottom: none;
}

.ctm-itin-item[open] > .ctm-itin-trigger .ctm-itin-trigger__content {
	border-bottom: none;
}

.ctm-itin-time {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .72rem;
	font-weight: 600;
	color: var(--ctm-text-muted, #8896a7);
	letter-spacing: .03em;
}

.ctm-itin-trigger__title {
	font-size: .95rem;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
	line-height: 1.35;
	transition: color .15s;
}

.ctm-itin-item[open] > .ctm-itin-trigger .ctm-itin-trigger__title {
	color: var(--ctm-accent, #1a252c);
}

.ctm-itin-chevron {
	flex-shrink: 0;
	color: var(--ctm-text-muted, #8896a7);
	transition: transform .2s;
	margin-top: .85rem;
	margin-right: .25rem;
}

.ctm-itin-item[open] > .ctm-itin-trigger .ctm-itin-chevron {
	transform: rotate(180deg);
	color: var(--ctm-accent, #1a252c);
}

.ctm-itin-content {
	margin-left: 48px;
	padding: .65rem .6rem 1rem 0;
	font-size: .9rem;
	color: var(--ctm-text, #2c3338);
	line-height: 1.65;
	border-bottom: 1px solid var(--ctm-border, #e2e8f0);
}

.ctm-itin-item:last-child .ctm-itin-content {
	border-bottom: none;
}

/* ─── Booking Box ─── */
.ctm-booking-box {
	background: #fff;
	border: 1px solid var(--ctm-border);
	border-top: 4px solid var(--ctm-accent);
	border-radius: var(--ctm-radius);
	padding: .85rem .85rem .75rem;
	box-shadow: var(--ctm-shadow);
	display: flex;
	flex-direction: column;
	gap: .6rem;
}

.ctm-price {
	margin: 0;
}

.ctm-price strong {
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--ctm-accent);
}

.ctm-booking-cta {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: .8rem 1rem;
	background: var(--ctm-btn-bg, var(--ctm-accent));
	color: var(--ctm-btn-text, #fff) !important;
	border-radius: var( --ctm-btn-radius, 6px );
	text-decoration: none !important;
	font-weight: 700;
	font-size: .95rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: background .2s, transform .1s;
	border: none;
	cursor: pointer;
}

.ctm-booking-cta:hover {
	background: var(--ctm-accent2, var(--ctm-accent-dark));
	transform: translateY(-1px);
}

/* Sidebar is already sticky; booking box scrolls naturally within it */

/* ─── Price display ─── */
.ctm-price {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: .4rem;
	flex-wrap: wrap;
}

.ctm-price__label {
	font-size: .8rem;
	color: var(--ctm-text-muted);
	text-transform: uppercase;
	letter-spacing: .05em;
}

.ctm-price strong {
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--ctm-accent);
}

.ctm-price__meta {
	font-size: .85rem;
	color: var(--ctm-text-muted);
}

/* ─── Tour Card ─── */
.ctm-tour-card {
	background: #fff;
	border: 1px solid var(--ctm-border);
	border-radius: var( --ctm-card-radius, 10px );
	overflow: hidden;
	box-shadow: var(--ctm-shadow);
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s, transform .15s;
}

.ctm-tour-card:hover {
	box-shadow: 0 6px 20px rgba(0,0,0,.12);
	transform: translateY(-2px);
}

.ctm-tour-card__img-wrap {
	display: block;
	overflow: hidden;
	height: var( --ctm-card-img-height, 220px );
	background: var(--ctm-bg);
}

.ctm-tour-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
	display: block;
}

.ctm-tour-card:hover .ctm-tour-card__img {
	transform: scale(1.04);
}

.ctm-tour-card__body {
	padding: 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1;
}

.ctm-tour-card__title {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.3;
}

.ctm-tour-card__title a {
	color: var(--ctm-text);
	text-decoration: none;
}

.ctm-tour-card__title a:hover {
	color: var(--ctm-accent);
}

.ctm-tour-card__excerpt {
	font-size: .875rem;
	color: var(--ctm-text-muted);
	margin: 0;
	line-height: 1.5;
}

.ctm-tour-card__meta {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem .75rem;
	font-size: .8rem;
	color: var(--ctm-text-muted);
}

.ctm-tour-card__meta li {
	display: flex;
	align-items: center;
	gap: .3rem;
}

.ctm-tour-card__meta .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	color: var(--ctm-accent);
}

/* ─── Meta pill badges (used in grid / list / compact / masonry) ─── */
.ctm-card-meta-pills,
.ctm-compact-meta-row {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin: .3rem 0;
}

.ctm-meta-pill {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .25em .65em;
	background: var(--ctm-bg, #f7faf8);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: 20px;
	font-size: .75rem;
	font-weight: 600;
	color: var(--ctm-text-muted, #646970);
	white-space: nowrap;
}

.ctm-meta-pill .dashicons {
	font-size: 12px;
	width: 12px;
	height: 12px;
	color: var(--ctm-accent, #1a252c);
}

.ctm-meta-pill--sm {
	font-size: .7rem;
	padding: .18em .55em;
}

.ctm-meta-pill--price {
	background: var(--ctm-accent-light, #eaecef);
	border-color: var(--ctm-accent, #1a252c);
	color: var(--ctm-accent-dark, #151e24);
	font-weight: 700;
}

/* ─── Card footer / CTA ─── */
.ctm-tour-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	margin-top: auto;
	padding-top: .75rem;
	border-top: 1px solid var(--ctm-border);
}

.ctm-tour-card__price {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--ctm-accent);
}

/* Shared CTA button for all card views */
.ctm-tour-card__cta,
.ctm-tour-compact-item__btn {
	display: inline-flex;
	align-items: center;
	padding: .45rem 1.1rem;
	background: var(--ctm-btn-bg, var(--ctm-accent));
	color: var(--ctm-btn-text, #fff) !important;
	border-radius: var( --ctm-btn-radius, 6px );
	font-size: .8rem;
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	letter-spacing: .01em;
	transition: background .2s, transform .1s;
	flex-shrink: 0;
}

.ctm-tour-card__cta:hover,
.ctm-tour-compact-item__btn:hover {
	background: var(--ctm-accent2, var(--ctm-accent-dark));
	transform: translateY(-1px);
}

/* No-thumbnail placeholder */
.ctm-tour-card__img-wrap--placeholder {
	height: var(--ctm-card-img-height, 220px);
	background: var(--ctm-bg, #f7faf8);
}

/* ─── Tour Grid ─── */
.ctm-tour-grid {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat( 1, 1fr );
	margin: .75rem 0;
}

.ctm-tour-grid--cols-2 { grid-template-columns: repeat( 2, 1fr ); }
.ctm-tour-grid--cols-3 { grid-template-columns: repeat( 3, 1fr ); }
.ctm-tour-grid--cols-4 { grid-template-columns: repeat( 4, 1fr ); }

@media ( max-width: 900px ) {
	.ctm-tour-grid--cols-3,
	.ctm-tour-grid--cols-4 { grid-template-columns: repeat( 2, 1fr ); }
}

@media ( max-width: 600px ) {
	.ctm-tour-grid--cols-2,
	.ctm-tour-grid--cols-3,
	.ctm-tour-grid--cols-4 { grid-template-columns: 1fr; }
}

/* ─── Admin preview notice ─── */
.ctm-admin-notice {
	display: block;
	border: 1px dashed #f0a500;
	background: #fffbe6;
	padding: .3rem .75rem;
	font-size: .8em;
	color: #7a5500;
	border-radius: 4px;
	margin-bottom: .75rem;
}

/* ─── Responsive ─── */
@media ( max-width: 640px ) {
	.ctm-facts-grid {
		grid-template-columns: repeat( 2, 1fr );
	}
	.ctm-inex-grid {
		grid-template-columns: 1fr;
	}
	.ctm-booking-box {
		position: static;
	}
}

/* ═══════════════════════════════════════════════════════════════
   v3.5.0 — New Layout Styles
═══════════════════════════════════════════════════════════════ */

/* ─── 2-Column Sidebar Layout ─── */
.ctm-tour-layout {
	display: flex;
	gap: 2rem;
	align-items: flex-start;
}
.ctm-tour-layout__main {
	flex: 1 1 0;
	min-width: 0;
}
.ctm-tour-layout__sidebar {
	flex: 0 0 300px;
	width: 300px;
	position: sticky;
	top: 80px;
}
@media ( max-width: 900px ) {
	.ctm-tour-layout {
		flex-direction: column;
	}
	.ctm-tour-layout__sidebar {
		flex: 1 1 auto;
		width: 100%;
		position: static;
	}
}

/* ─── Photo Gallery ─── */
.ctm-gallery {
	margin: 0 0 .875rem;
}

/* Count badge — lives inside the main/featured image as an overlay */
.ctm-gallery__count-badge {
	position: absolute;
	bottom: 12px;
	left: 12px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 11px 5px 8px;
	background: rgba(0, 0, 0, .58);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 7px;
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	pointer-events: none;
	line-height: 1;
	box-shadow: 0 2px 10px rgba(0,0,0,.35);
	transition: opacity .2s;
}
.ctm-gallery__count-badge svg { opacity: .85; flex-shrink: 0; }
/* Subtle hover: slightly more opaque */
.ctm-gallery__item:hover .ctm-gallery__count-badge,
.ctm-gallery__filmstrip-main:hover .ctm-gallery__count-badge {
	background: rgba(0,0,0,.75);
}

/* ── Grids ── */
.ctm-gallery__grid {
	display: grid;
	gap: 6px;
	border-radius: 12px;
	overflow: hidden;
}

/* 5+ images: featured first (spans 2 rows on left), 4 thumbs right */
.ctm-gallery__grid--featured {
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
}
.ctm-gallery__grid--featured .ctm-gallery__item--featured {
	grid-row: 1 / 3;
	aspect-ratio: unset;
}
.ctm-gallery__grid--featured .ctm-gallery__item:not(.ctm-gallery__item--featured):nth-child(n+6) {
	display: none;
}

/* 3–4 images: 3 columns */
.ctm-gallery__grid--three {
	grid-template-columns: repeat( 3, 1fr );
}

/* 1–2 images */
.ctm-gallery__grid--small {
	grid-template-columns: repeat( 2, 1fr );
}
.ctm-gallery__grid--small .ctm-gallery__item:only-child {
	grid-column: 1 / -1;
	max-height: 400px;
}

/* ── Items ── */
.ctm-gallery__item {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/3;
	background: #f3f4f6;
	cursor: pointer;
	outline-offset: 2px;
}
.ctm-gallery__item:focus-visible {
	outline: 2px solid var( --ctm-brand, #1a252c );
}
.ctm-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s cubic-bezier(.25,.46,.45,.94);
	display: block;
}
.ctm-gallery__item:hover img,
.ctm-gallery__item:focus-visible img {
	transform: scale( 1.06 );
}

/* Zoom overlay on hover */
.ctm-gallery__zoom {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,.32);
	color: #fff;
	opacity: 0;
	transition: opacity .25s;
}
.ctm-gallery__item:hover .ctm-gallery__zoom,
.ctm-gallery__item:focus-visible .ctm-gallery__zoom {
	opacity: 1;
}

/* ── Lightbox ── */
.ctm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0,0,0,.92);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
	touch-action: pan-y;
}
.ctm-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.ctm-lightbox__inner {
	position: relative;
	max-width: min( 92vw, 1200px );
	max-height: 90vh;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: scale(.92) translateY(12px);
	transition: transform .35s cubic-bezier(.34,1.42,.64,1);
}
.ctm-lightbox.is-open .ctm-lightbox__inner {
	transform: scale(1) translateY(0);
}

.ctm-lightbox__img-wrap {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ctm-lightbox__img {
	max-width: min( 90vw, 1100px );
	max-height: 82vh;
	object-fit: contain;
	border-radius: 8px;
	box-shadow: 0 24px 80px rgba(0,0,0,.8);
	transition: opacity .25s, transform .25s;
	opacity: 1;
	transform: scale(1);
}
.ctm-lightbox__img.ctm-lb-fade {
	opacity: 0;
	transform: scale(.96);
}

/* Nav buttons */
.ctm-lightbox__btn {
	position: fixed;
	top: 50%;
	transform: translateY( -50% );
	background: rgba(255,255,255,.12);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 50%;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #fff;
	transition: background .2s;
	z-index: 2;
}
.ctm-lightbox__btn:hover { background: rgba(255,255,255,.24); }
.ctm-lightbox__prev { left: 16px; }
.ctm-lightbox__next { right: 16px; }
.ctm-lightbox__close {
	position: fixed;
	top: 16px;
	right: 16px;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	font-size: 20px;
	z-index: 2;
}

/* Lightbox loading spinner */
.ctm-lightbox__spinner {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	opacity: 0;
	transition: opacity .2s;
}
.ctm-lightbox__spinner.is-visible { opacity: 1; }
.ctm-lightbox__spinner div {
	width: 10px; height: 10px;
	margin: 3px;
	background: rgba(255,255,255,.85);
	border-radius: 50%;
	display: inline-block;
	animation: ctm-lb-bounce 1.2s infinite ease-in-out both;
}
.ctm-lightbox__spinner div:nth-child(1) { animation-delay: -0.32s; }
.ctm-lightbox__spinner div:nth-child(2) { animation-delay: -0.16s; }
.ctm-lightbox__spinner div:nth-child(3) { animation-delay: 0s; }
.ctm-lightbox__spinner div:nth-child(4) { animation-delay: 0.16s; }
@keyframes ctm-lb-bounce {
	0%, 80%, 100% { transform: scale(0); opacity: .3; }
	40%            { transform: scale(1); opacity: 1; }
}

/* Caption + counter bar */
.ctm-lightbox__bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 56px;
	background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 100%);
	color: rgba(255,255,255,.85);
	font-size: .85rem;
	pointer-events: none;
}
.ctm-lightbox__caption { flex: 1; }
.ctm-lightbox__counter {
	white-space: nowrap;
	font-weight: 700;
	color: rgba(255,255,255,.55);
	font-size: .8rem;
	font-variant-numeric: tabular-nums;
}

@media ( max-width: 640px ) {
	.ctm-gallery__grid--featured {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: unset;
	}
	.ctm-gallery__grid--featured .ctm-gallery__item--featured {
		grid-column: 1 / -1;
		grid-row: unset;
	}
	.ctm-lightbox__bar { padding: 12px 20px; }
	.ctm-lightbox__btn { width: 40px; height: 40px; }
	.ctm-lightbox__prev { left: 8px; }
	.ctm-lightbox__next { right: 8px; }
}

/* ─── Related Tours ─── */
.ctm-related-tours {
	margin: 1rem 0;
}
.ctm-related-tours__title {
	font-size: 1.4rem;
	font-weight: 700;
	margin-bottom: 1rem;
	color: var( --ctm-text );
}
.ctm-related-tours__grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 1.25rem;
}
@media ( max-width: 768px ) {
	.ctm-related-tours__grid {
		grid-template-columns: repeat( 2, 1fr );
	}
}
@media ( max-width: 480px ) {
	.ctm-related-tours__grid {
		grid-template-columns: 1fr;
	}
}

/* ─── List View ─── */
.ctm-tour-list {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin: 1.5rem 0;
}
.ctm-tour-list-item {
	display: flex;
	gap: 0;
	background: #fff;
	border: 1px solid var( --ctm-border );
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var( --ctm-shadow );
	transition: box-shadow .2s ease, transform .15s;
}
.ctm-tour-list-item:hover {
	box-shadow: 0 6px 20px rgba( 0,0,0,.1 );
	transform: translateY( -1px );
}
/* img-wrap = the <a> tag wrapping the thumbnail */
.ctm-tour-list-item__img-wrap {
	flex: 0 0 220px;
	max-width: 220px;
	overflow: hidden;
	display: block;
}
.ctm-tour-list-item__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}
.ctm-tour-list-item:hover .ctm-tour-list-item__img {
	transform: scale( 1.04 );
}
.ctm-tour-list-item__content {
	flex: 1;
	padding: 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .45rem;
	min-width: 0;
}
.ctm-tour-list-item__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var( --ctm-text );
	margin: 0;
}
.ctm-tour-list-item__title a { color: inherit; text-decoration: none; }
.ctm-tour-list-item__title a:hover { color: var( --ctm-accent ); }
.ctm-tour-list-item__excerpt {
	font-size: .88rem;
	color: var( --ctm-text-muted );
	margin: 0;
	line-height: 1.55;
}
.ctm-tour-list-item__meta {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .9rem;
	font-size: .8rem;
	color: var( --ctm-text-muted );
}
.ctm-tour-list-item__meta li {
	display: flex;
	align-items: center;
	gap: .3rem;
}
.ctm-tour-list-item__meta .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	color: var( --ctm-accent );
}
/* right aside — price + CTA */
.ctm-tour-list-item__aside {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: 1rem 1.25rem;
	border-left: 1px solid var( --ctm-border );
	min-width: 140px;
	text-align: center;
}
.ctm-tour-list-item__price {
	font-size: 1.15rem;
	font-weight: 800;
	color: var( --ctm-accent );
}
.ctm-tour-list-item__details {
	font-size: .8rem;
	color: var( --ctm-text-muted );
	text-decoration: underline;
}
.ctm-tour-list-item__details:hover {
	color: var( --ctm-accent );
}
@media ( max-width: 700px ) {
	.ctm-tour-list-item {
		flex-direction: column;
	}
	.ctm-tour-list-item__img-wrap {
		flex: none;
		max-width: 100%;
		height: 180px;
	}
	.ctm-tour-list-item__aside {
		flex-direction: row;
		justify-content: space-between;
		border-left: none;
		border-top: 1px solid var( --ctm-border );
		padding: .75rem 1rem;
		min-width: auto;
	}
}

/* ─── Compact View ─── */
.ctm-tour-compact {
	display: flex;
	flex-direction: column;
	border: 1px solid var( --ctm-border );
	border-radius: 10px;
	overflow: hidden;
	margin: 1.5rem 0;
	background: #fff;
	box-shadow: var( --ctm-shadow );
}
.ctm-tour-compact-item {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding: .65rem .9rem;
	border-bottom: 1px solid var( --ctm-border );
	background: #fff;
	transition: background .15s;
}
.ctm-tour-compact-item:last-child {
	border-bottom: none;
}
.ctm-tour-compact-item:hover {
	background: var( --ctm-accent-light, #eaecef );
}
.ctm-tour-compact-item__thumb {
	flex: 0 0 54px;
	height: 42px;
	border-radius: 5px;
	overflow: hidden;
	display: block;
}
.ctm-tour-compact-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ctm-tour-compact-item__info {
	flex: 1;
	min-width: 0;
}
.ctm-tour-compact-item__title {
	display: block;
	font-size: .9rem;
	font-weight: 600;
	color: var( --ctm-text );
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ctm-tour-compact-item__title:hover { color: var( --ctm-accent ); }
/* .ctm-tour-compact-item__meta = duration · price string */
.ctm-tour-compact-item__meta {
	font-size: .75rem;
	color: var( --ctm-text-muted );
	display: block;
	margin-top: .1rem;
}
/* Book → button */
.ctm-tour-compact-item__btn {
	display: inline-flex;
	align-items: center;
	padding: .35rem .85rem;
	background: var( --ctm-accent );
	color: var(--ctm-btn-text, #fff) !important;
	border-radius: var( --ctm-btn-radius, 6px );
	font-size: .78rem;
	font-weight: 600;
	text-decoration: none !important;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background .2s;
}
.ctm-tour-compact-item__btn:hover {
	background: var( --ctm-accent-dark );
}

/* ─── Masonry View ─── */
.ctm-tour-masonry {
	columns: 3 280px;
	column-gap: 1.25rem;
	margin: .75rem 0;
}
.ctm-tour-masonry .ctm-tour-card {
	break-inside: avoid;
	margin-bottom: 1.25rem;
}
@media ( max-width: 640px ) {
	.ctm-tour-masonry {
		columns: 1;
	}
}

/* ─── Sidebar Widget Area ─── */
.ctm-widget {
	margin-bottom: 1.5rem;
}
.ctm-widget__title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 .75rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var( --ctm-accent );
	color: var( --ctm-text );
}

/* ─── Dashboard Widget Footer ─── */
.ctm-widget-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: 10px 0 4px;
	border-top: 1px solid #e5e7eb;
	font-size: 11px;
	color: #9ca3af;
	margin-top: 8px;
}
.ctm-widget-footer a {
	color: var(--ctm-accent, #1a252c);
	text-decoration: none;
}
.ctm-widget-footer a:hover {
	text-decoration: underline;
}
.ctm-widget-footer span {
	margin-left: auto;
	font-variant-numeric: tabular-nums;
}

/* ─── Admin Gallery Grid ─── */
.ctm-gallery-preview {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	min-height: 64px;
	padding: .5rem;
	background: #f9fafb;
	border: 1px dashed #d0d5dd;
	border-radius: 6px;
	margin-bottom: .75rem;
}
.ctm-gallery-thumb {
	position: relative;
	width: 90px;
	height: 68px;
	border-radius: 5px;
	overflow: hidden;
	border: 2px solid #e5e7eb;
	cursor: grab;
	transition: border-color .2s;
}
.ctm-gallery-thumb:hover {
	border-color: var( --ctm-accent, #1a252c );
}
.ctm-gallery-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ctm-gallery-remove {
	position: absolute;
	top: 2px;
	right: 2px;
	background: rgba(0,0,0,.6);
	border: none;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.ctm-gallery-remove .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	color: #fff;
}

/* ═══════════════════════════════════════════════════════════════
   v3.5.2 — Enquiry Form + Trust Badges
═══════════════════════════════════════════════════════════════ */

/* ─── Enquiry Form Wrapper ─── */
.ctm-enquiry-wrap {
	margin: 1rem 0;
}
.ctm-enquiry-card {
	background: #fff;
	border: 1px solid var(--ctm-border);
	border-radius: var( --ctm-card-radius, 10px );
	box-shadow: 0 4px 20px rgba(0,0,0,.08);
	overflow: hidden;
	max-width: 720px;
}
.ctm-enquiry-card__head {
	background: var(--ctm-accent);
	color: #fff;
	padding: 22px 28px;
}
.ctm-enquiry-card__head .dashicons {
	font-size: 28px;
	width: 28px;
	height: 28px;
	opacity: .9;
	vertical-align: middle;
	margin-right: 8px;
}
.ctm-enquiry-card__head h2 {
	display: inline;
	margin: 0;
	font-size: 1.3rem;
	font-weight: 700;
	color: #fff;
	vertical-align: middle;
}
.ctm-enquiry-card__tour {
	margin: 8px 0 0;
	font-size: .9rem;
	opacity: .88;
}
.ctm-enquiry-card__tour .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
}

/* ─── Form Fields ─── */
.ctm-enquiry-form {
	padding: 24px 28px;
}
.ctm-form-row {
	display: flex;
	gap: 16px;
	margin-bottom: 16px;
}
.ctm-form-row--half > .ctm-form-group {
	flex: 1;
}
.ctm-form-group {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-bottom: 16px;
}
.ctm-form-group label {
	font-size: 13px;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
}
.ctm-required {
	color: #e74c3c;
}
.ctm-form-group input[type="text"],
.ctm-form-group input[type="email"],
.ctm-form-group input[type="tel"],
.ctm-form-group input[type="date"],
.ctm-form-group input[type="number"],
.ctm-form-group textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1.5px solid var(--ctm-border, #e0e6e3);
	border-radius: 7px;
	font-size: var( --ctm-font-size-base, 15px );
	color: var(--ctm-text, #2c3338);
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
	box-sizing: border-box;
}
.ctm-form-group input:focus,
.ctm-form-group textarea:focus {
	outline: none;
	border-color: var(--ctm-accent, #1a252c);
	box-shadow: 0 0 0 3px rgba(30,110,66,.12);
}
.ctm-form-group textarea {
	resize: vertical;
	min-height: 100px;
}
.ctm-form-footer {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.ctm-form-submit {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 1rem;
	padding: .8rem 1.8rem;
	border: none;
	cursor: pointer;
}
.ctm-form-submit .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}
.ctm-form-privacy {
	font-size: .78rem;
	color: #9ca3af;
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 0;
}
.ctm-form-privacy .dashicons {
	font-size: 13px;
	width: 13px;
	height: 13px;
}
.ctm-form-success {
	background: #ecfdf5;
	border: 1px solid #6ee7b7;
	border-radius: 10px;
	padding: 24px 28px;
	text-align: center;
	color: #065f46;
}
.ctm-form-success .dashicons {
	font-size: 40px;
	width: 40px;
	height: 40px;
	color: #10b981;
	display: block;
	margin: 0 auto 12px;
}
@media ( max-width: 560px ) {
	.ctm-form-row--half {
		flex-direction: column;
	}
	.ctm-enquiry-card {
		border-radius: 0;
	}
	.ctm-enquiry-form {
		padding: 18px 16px;
	}
}

/* ─── Trust Badges ─── */
/* Old sidebar style (kept for back-compat) */
.ctm-trust-badges {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: #fff;
	border: 1px solid var(--ctm-border);
	border-radius: var( --ctm-card-radius, 10px );
	overflow: hidden;
	margin: 1rem 0;
}

/* Full-width below-content style */
.ctm-trust-badges--full {
	background: var(--ctm-bg, #f7faf8);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-card-radius, 10px);
	padding: .875rem 1.25rem;
	margin: .75rem 0;
}
.ctm-trust-badges--full .ctm-trust-badges__title {
	border-bottom: 2px solid var(--ctm-border, #e0e6e3);
	padding-bottom: .65rem;
	margin-bottom: 1rem;
}
.ctm-trust-badges__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
}
.ctm-trust-badges--full .ctm-trust-badge {
	border: none;
	padding: 0;
	background: transparent;
}

.ctm-trust-badge {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--ctm-border);
}
.ctm-trust-badge:last-child {
	border-bottom: none;
}
.ctm-trust-badge__icon {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	background: var(--ctm-accent-light, #eaecef);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ctm-trust-badge__icon .dashicons {
	color: var(--ctm-accent);
	font-size: 16px;
	width: 16px;
	height: 16px;
}
.ctm-trust-badge__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.ctm-trust-badge__text strong {
	font-size: .82rem;
	font-weight: 700;
	color: var(--ctm-text, #2c3338);
	line-height: 1.3;
}
.ctm-trust-badge__text span {
	font-size: .75rem;
	color: var(--ctm-text-muted, #646970);
	line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════
   v3.5.3 — Tour Detail Header, Additional Info, Related Below
═══════════════════════════════════════════════════════════════ */

/* ─── Tour Detail Section Header ─── */
.ctm-tour-detail-header {
	background: linear-gradient(135deg, var(--ctm-accent-light, #eaecef) 0%, #fff 100%);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-left: 4px solid var(--ctm-accent, #1a252c);
	border-radius: 0 var(--ctm-radius, 8px) var(--ctm-radius, 8px) 0;
	padding: 1.25rem 1.5rem 1rem;
	margin-bottom: 1.5rem;
}

.ctm-tour-detail-header__tags {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .75rem;
}

.ctm-tour-tag {
	display: inline-flex;
	align-items: center;
	background: var(--ctm-accent, #1a252c);
	color: #fff;
	font-size: .72rem;
	font-weight: 600;
	padding: .2em .75em;
	border-radius: 20px;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.ctm-tour-detail-header__title {
	font-size: 1.3rem;
	font-weight: 800;
	margin: 0 0 .75rem;
	color: var(--ctm-text, #2c3338);
	display: flex;
	align-items: center;
	gap: .5rem;
	border: none;
	padding: 0;
}

.ctm-tour-detail-header__icon {
	font-style: normal;
	font-size: 1.1em;
}

.ctm-tour-detail-header__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: .85rem;
	color: var(--ctm-text-muted, #646970);
}

.ctm-tour-detail-header__meta span {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
}

.ctm-tour-detail-header__meta .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	color: var(--ctm-accent, #1a252c);
}

.ctm-tour-detail-header__price {
	font-weight: 700;
	color: var(--ctm-accent, #1a252c) !important;
}

/* ─── Additional Information Section ─── */
.ctm-additional-info {
	margin: 1.25rem 0;
	font-size: 1rem;
	line-height: 1.6;
}

.ctm-additional-info h2 {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 1rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--ctm-border, #e0e6e3);
	color: var(--ctm-text, #2c3338);
}

.ctm-additional-info__body {
	background: var(--ctm-bg, #f7faf8);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 8px);
	padding: 1.25rem 1.5rem;
	color: var(--ctm-text, #2c3338);
}

.ctm-additional-info__body p { margin: 0 0 .75rem; }
.ctm-additional-info__body p:last-child { margin-bottom: 0; }
.ctm-additional-info__body ul,
.ctm-additional-info__body ol { padding-left: 1.5rem; margin: 0 0 .75rem; }
.ctm-additional-info__body table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
	margin: .75rem 0;
}
.ctm-additional-info__body th,
.ctm-additional-info__body td {
	padding: .55rem .75rem;
	border: 1px solid var(--ctm-border, #e0e6e3);
	text-align: left;
}
.ctm-additional-info__body th {
	background: var(--ctm-accent-light, #eaecef);
	font-weight: 700;
	color: var(--ctm-accent-dark, #151e24);
}

/* ─── Related Tours — Full Width Below Layout ─── */
.ctm-related-tours {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 2px solid var(--ctm-border, #e0e6e3);
}

.ctm-related-tours__title {
	font-size: 1.5rem;
	font-weight: 800;
	margin-bottom: 1.25rem;
	color: var(--ctm-text, #2c3338);
	text-align: center;
}

.ctm-related-tours__title::after {
	content: '';
	display: block;
	width: 48px;
	height: 3px;
	background: var(--ctm-accent, #1a252c);
	border-radius: 2px;
	margin: .5rem auto 0;
}


/* ═══════════════════════════════════════════════════════════════
   v3.5.4 — Tour Hero Banner + List Price Box + Grid tweaks
═══════════════════════════════════════════════════════════════ */

/* ─── Tour Detail Hero Banner ─── */
.ctm-tour-hero {
	position: relative;
	background: linear-gradient(135deg, var(--ctm-accent-dark,#151e24) 0%, var(--ctm-accent,#1a252c) 100%);
	background-size: cover;
	background-position: center;
	border-radius: var(--ctm-radius, 8px);
	overflow: hidden;
	margin-bottom: .875rem;
	min-height: 160px;
	display: flex;
	align-items: flex-end;
}

.ctm-tour-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.35) 100%);
}

.ctm-tour-hero__inner {
	position: relative;
	z-index: 1;
	padding: var(--ctm-hero-padding-v, .875rem) 1.25rem .75rem;
	width: 100%;
}

.ctm-tour-hero__breadcrumb {
	font-size: .78rem;
	color: rgba(255,255,255,.75);
	margin-bottom: .4rem;
	display: flex;
	flex-wrap: wrap;
	gap: .1rem;
	align-items: center;
}

.ctm-tour-hero__breadcrumb a {
	color: rgba(255,255,255,.8);
	text-decoration: none;
}

.ctm-tour-hero__breadcrumb a:hover {
	color: #fff;
	text-decoration: underline;
}

.ctm-tour-hero__sep {
	color: rgba(255,255,255,.45);
	padding: 0 .15rem;
}

.ctm-tour-hero__title {
	font-size: 1.55rem;
	font-weight: 800;
	color: var(--ctm-hero-title-color, #fff);
	margin: 0 0 .75rem;
	line-height: 1.2;
	text-shadow: 0 1px 3px rgba(0,0,0,.4);
	border: none;
	padding: 0;
}

.ctm-tour-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
}

/* Hero pills — white on dark overlay */
.ctm-hero-pill {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .3em .75em;
	background: rgba(255,255,255,.18);
	backdrop-filter: blur(4px);
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 20px;
	font-size: .78rem;
	font-weight: 600;
	color: #fff;
	white-space: nowrap;
}

.ctm-hero-pill .dashicons {
	font-size: 13px;
	width: 13px;
	height: 13px;
	color: rgba(255,255,255,.85);
}

.ctm-hero-pill--price {
	background: rgba(255,255,255,.28);
	border-color: rgba(255,255,255,.5);
	font-weight: 700;
}

@media (max-width: 640px) {
	.ctm-tour-hero__title { font-size: 1.2rem; }
	.ctm-tour-hero { min-height: 130px; }
}

/* ─── List view — price box in aside ─── */
.ctm-list-price-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: var(--ctm-accent-light, #eaecef);
	border: 1px solid var(--ctm-accent, #1a252c);
	border-radius: var(--ctm-radius, 8px);
	padding: .4rem .75rem;
	text-align: center;
	width: 100%;
}

.ctm-list-price-box__label {
	font-size: .65rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ctm-accent-dark, #151e24);
	font-weight: 600;
}

.ctm-list-price-box__amount {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--ctm-accent, #1a252c);
	line-height: 1.1;
}

/* ─── List & masonry gap tweaks ─── */
.ctm-tour-list {
	gap: .75rem;
}

.ctm-tour-masonry {
	column-gap: .75rem;
}

.ctm-tour-masonry .ctm-tour-card {
	margin-bottom: .75rem;
}

/* ─── Compact list spacing ─── */
.ctm-tour-compact {
	gap: 0;
}


/* ═══════════════════════════════════════════════════════════════
   v3.5.5 — Sidebar redesign, pagination, filter, animations,
            responsive, list btn full-width, tour description
═══════════════════════════════════════════════════════════════ */

/* ─── Tour Description (below hero, above quick facts) ─── */
/* ─── Tour Description Card ─── */
.ctm-tour-description {
	position: relative;
	background: #fff;
	border: 1px solid #e4e9ee;
	border-left: 4px solid var(--ctm-accent, #1a252c);
	border-radius: 0 10px 10px 0;
	padding: 1.4rem 1.6rem 1.4rem 1.75rem;
	margin: 0 0 1.5rem;
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.ctm-tour-description::before {
	content: '\201C';
	position: absolute;
	top: .1rem;
	right: 1.25rem;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 5rem;
	line-height: 1;
	color: var(--ctm-accent, #1a252c);
	opacity: .08;
	pointer-events: none;
	user-select: none;
}
.ctm-tour-description__label {
	display: inline-block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ctm-accent, #1a252c);
	background: color-mix(in srgb, var(--ctm-accent, #1a252c) 10%, transparent);
	padding: .18em .65em;
	border-radius: 20px;
	margin-bottom: .75rem;
}
.ctm-tour-description__body {
	font-size: 1rem;
	line-height: 1.78;
	color: #3c434a;
}
.ctm-tour-description__body p { margin: 0 0 .85rem; }
.ctm-tour-description__body p:last-child { margin-bottom: 0; }
.ctm-tour-description__body h1,
.ctm-tour-description__body h2,
.ctm-tour-description__body h3 { font-size: 1.05rem; font-weight: 700; margin: 1rem 0 .4rem; color: #1d2327; }
.ctm-tour-description__body ul,
.ctm-tour-description__body ol { padding-left: 1.4rem; margin: 0 0 .85rem; }

/* ─── Skeleton shimmer loading ─── */
@keyframes ctm-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}
.ctm-img-loading {
	background: linear-gradient(90deg, #f0f2f4 25%, #e3e7ea 50%, #f0f2f4 75%);
	background-size: 200% 100%;
	animation: ctm-shimmer 1.4s ease-in-out infinite;
	border-radius: inherit;
	overflow: hidden;
}
.ctm-img-loading img {
	opacity: 0;
	transition: opacity .3s ease;
}
.ctm-gallery__item img,
.ctm-gallery__filmstrip-main img,
.ctm-gallery__strip-thumb img {
	transition: opacity .3s ease;
}

/* ─── Booking Box — redesigned price card ─── */
.ctm-price-card {
	background: linear-gradient(135deg, var(--ctm-accent,#1a252c) 0%, var(--ctm-accent-dark,#151e24) 100%);
	border-radius: var(--ctm-radius,8px);
	padding: .75rem .85rem .65rem;
	text-align: center;
	margin-bottom: 0;
}
.ctm-price-card__label {
	display: block;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.75);
	font-weight: 600;
	margin-bottom: .2rem;
}
.ctm-price-card__amount {
	display: block;
	font-size: var(--ctm-price-font-size, 1.5rem);
	font-weight: 900;
	color: #fff;
	line-height: 1;
}
.ctm-price-card__per {
	display: block;
	font-size: .75rem;
	color: rgba(255,255,255,.65);
	margin-top: .25rem;
}

/* ─── Booking box meta rows (duration/location) ─── */
.ctm-booking-box__meta {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin-bottom: 0;
	padding: .55rem .65rem;
	background: var(--ctm-bg, #f7faf8);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 8px);
}
.ctm-booking-box__meta-item {
	display: flex;
	align-items: center;
	gap: .65rem;
}
.ctm-booking-box__meta-item > .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	color: var(--ctm-accent, #1a252c);
	flex-shrink: 0;
}
.ctm-booking-box__meta-label {
	display: block;
	font-size: .65rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ctm-text-muted, #646970);
	font-weight: 600;
}
.ctm-booking-box__meta-val {
	display: block;
	font-size: .9rem;
	font-weight: 700;
	color: var(--ctm-text, #2c3338);
}
.ctm-booking-box__guarantee {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-size: .7rem;
	color: var(--ctm-text-muted, #646970);
	margin: 0;
	text-align: center;
	justify-content: center;
}
.ctm-booking-box__guarantee .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	color: var(--ctm-accent, #1a252c);
}

/* ─── Trust badges with title ─── */
.ctm-trust-badges__title {
	font-size: .85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ctm-text, #2c3338);
	margin: 0 0 .75rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--ctm-border, #e0e6e3);
}

/* ─── Pagination ─── */
.ctm-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: .35rem;
	margin: 1.75rem 0 .5rem;
	padding: 0;
}

.ctm-page-num,
.ctm-page-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 .65rem;
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 8px);
	background: #fff;
	color: var(--ctm-text, #2c3338);
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none !important;
	transition: background .15s, border-color .15s, color .15s;
	cursor: pointer;
}

.ctm-page-num:hover,
.ctm-page-btn:hover {
	background: var(--ctm-accent-light, #eaecef);
	border-color: var(--ctm-accent, #1a252c);
	color: var(--ctm-accent-dark, #151e24);
}

.ctm-page-num--active {
	background: var(--ctm-accent, #1a252c) !important;
	border-color: var(--ctm-accent, #1a252c) !important;
	color: #fff !important;
	cursor: default;
	pointer-events: none;
}

.ctm-page-ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	color: var(--ctm-text-muted, #646970);
	font-size: .85rem;
}

.ctm-page-btn--prev,
.ctm-page-btn--next {
	font-size: 1.1rem;
	padding: 0 .85rem;
}

/* Simple style overrides */
.ctm-pagination--simple .ctm-page-info {
	font-size: .85rem;
	color: var(--ctm-text-muted, #646970);
	padding: 0 .75rem;
}

/* ─── Results count ─── */
.ctm-pagination-meta {
	display: flex;
	justify-content: center;
	margin: 1rem 0 .5rem;
}
.ctm-results-count {
	font-size: .8rem;
	color: var(--ctm-text-muted, #646970);
}

/* ─── No results ─── */
.ctm-no-results {
	text-align: center;
	padding: 1.5rem 1.25rem;
	background: var(--ctm-bg, #f7faf8);
	border: 1px dashed var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 8px);
	margin: 1rem 0;
}
.ctm-no-results__icon {
	font-size: 2.5rem;
	display: block;
	margin-bottom: .75rem;
}
.ctm-no-results__msg {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
	margin: 0 0 .4rem;
}
.ctm-no-results__hint {
	font-size: .875rem;
	color: var(--ctm-text-muted, #646970);
	margin: 0;
}

/* ─── Filter Bar ─── */
.ctm-filter-section {
	margin: 0 0 1rem;
}

.ctm-filter-bar {
	margin-bottom: 1.25rem;
}

/* Alignment */
.ctm-filter-bar--left   .ctm-filter-group,
.ctm-filter-bar--left   .ctm-filter-items,
.ctm-filter-bar--left   .ctm-filter-dropdowns { justify-content: flex-start; }
.ctm-filter-bar--center .ctm-filter-group,
.ctm-filter-bar--center .ctm-filter-items,
.ctm-filter-bar--center .ctm-filter-dropdowns { justify-content: center; }
.ctm-filter-bar--right  .ctm-filter-group,
.ctm-filter-bar--right  .ctm-filter-items,
.ctm-filter-bar--right  .ctm-filter-dropdowns { justify-content: flex-end; }

.ctm-filter-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin-bottom: .75rem;
}

.ctm-filter-group__label {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-weight: 700;
	color: var(--ctm-text-muted, #646970);
	flex-shrink: 0;
	margin-right: .25rem;
}

.ctm-filter-items {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}

/* ── Pills style ─────────────── */
.ctm-filter-bar--pills .ctm-filter-item {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .3em .85em;
	background: #fff;
	border: 1.5px solid var(--ctm-border, #e0e6e3);
	border-radius: 20px;
	font-size: .8rem;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
	text-decoration: none !important;
	transition: background .15s, border-color .15s, color .15s;
	cursor: pointer;
}
.ctm-filter-bar--pills .ctm-filter-item:hover {
	background: var(--ctm-accent-light, #eaecef);
	border-color: var(--ctm-accent, #1a252c);
	color: var(--ctm-accent-dark, #151e24);
}
.ctm-filter-bar--pills .ctm-filter-item--active {
	background: var(--ctm-accent, #1a252c) !important;
	border-color: var(--ctm-accent, #1a252c) !important;
	color: #fff !important;
}

/* ── Tabs style ──────────────── */
.ctm-filter-bar--tabs .ctm-filter-group {
	border-bottom: 2px solid var(--ctm-border, #e0e6e3);
	gap: 0;
	margin-bottom: .25rem;
}
.ctm-filter-bar--tabs .ctm-filter-item {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .55rem 1.1rem;
	background: transparent;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	font-size: .875rem;
	font-weight: 600;
	color: var(--ctm-text-muted, #646970);
	text-decoration: none !important;
	transition: color .15s, border-color .15s;
}
.ctm-filter-bar--tabs .ctm-filter-item:hover {
	color: var(--ctm-accent, #1a252c);
}
.ctm-filter-bar--tabs .ctm-filter-item--active {
	color: var(--ctm-accent, #1a252c) !important;
	border-bottom-color: var(--ctm-accent, #1a252c) !important;
}

/* ── Dropdown style ──────────── */
.ctm-filter-dropdowns {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
}
.ctm-filter-form {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	align-items: center;
}
.ctm-filter-select {
	padding: .45rem .85rem;
	border: 1.5px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 8px);
	background: #fff;
	font-size: .875rem;
	color: var(--ctm-text, #2c3338);
	cursor: pointer;
	min-width: 160px;
	appearance: auto;
}
.ctm-filter-select:focus {
	outline: 2px solid var(--ctm-accent, #1a252c);
	outline-offset: 2px;
}

/* Filter count badge */
.ctm-filter-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,.1);
	border-radius: 20px;
	font-size: .65rem;
	font-weight: 700;
	padding: .05em .45em;
	min-width: 1.4em;
}
.ctm-filter-item--active .ctm-filter-count {
	background: rgba(255,255,255,.25);
}

/* ── Glass style ─────────── */
.ctm-filter-bar--glass {
	background: rgba(255,255,255,0.70);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	backdrop-filter: blur(16px) saturate(180%);
	border: 1px solid rgba(255,255,255,0.55);
	border-radius: 16px;
	padding: .85rem 1.1rem;
	box-shadow: 0 4px 24px rgba(0,0,0,.07), 0 1px 0 rgba(255,255,255,.9) inset;
	margin-bottom: 1.25rem;
}
.ctm-filter-bar--glass .ctm-filter-group {
	margin-bottom: .5rem;
}
.ctm-filter-bar--glass .ctm-filter-group:last-child {
	margin-bottom: 0;
}
.ctm-filter-bar--glass .ctm-filter-item {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .3em .9em;
	background: rgba(0,0,0,.04);
	border: 1px solid rgba(255,255,255,0.65);
	border-radius: 20px;
	font-size: .8rem;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
	text-decoration: none !important;
	transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
}
.ctm-filter-bar--glass .ctm-filter-item:hover {
	background: rgba(255,255,255,.85);
	border-color: var(--ctm-accent, #1a252c);
	color: var(--ctm-accent-dark, #151e24);
	box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.ctm-filter-bar--glass .ctm-filter-item--active {
	background: var(--ctm-accent, #1a252c) !important;
	border-color: transparent !important;
	color: #fff !important;
	box-shadow: 0 2px 10px rgba(0,0,0,.2) !important;
}
.ctm-filter-bar--glass .ctm-filter-item--active .ctm-filter-count {
	background: rgba(255,255,255,.25);
}

/* ── Chip style ──────────── */
.ctm-filter-bar--chip .ctm-filter-group__label {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: #94a3b8;
}
.ctm-filter-bar--chip .ctm-filter-item {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .28em .72em;
	border-radius: 6px;
	background: #f1f5f9;
	border: 1px solid transparent;
	font-size: .78rem;
	font-weight: 600;
	color: #475569;
	text-decoration: none !important;
	transition: background .15s, color .15s, border-color .15s;
}
.ctm-filter-bar--chip .ctm-filter-item:hover {
	background: #e2e8f0;
	color: #1e293b;
}
.ctm-filter-bar--chip .ctm-filter-item--active {
	background: var(--ctm-accent, #1e293b) !important;
	color: #fff !important;
	border-color: transparent !important;
}
.ctm-filter-bar--chip .ctm-filter-count {
	background: rgba(0,0,0,.1);
	border-radius: 4px;
	font-size: .62rem;
	padding: .05em .4em;
}
.ctm-filter-bar--chip .ctm-filter-item--active .ctm-filter-count {
	background: rgba(255,255,255,.28);
}

/* ── Segment style ───────── */
.ctm-filter-bar--segment .ctm-filter-group {
	margin-bottom: .65rem;
}
.ctm-filter-bar--segment .ctm-filter-group:last-child {
	margin-bottom: 0;
}
.ctm-filter-bar--segment .ctm-filter-items {
	background: #f1f5f9;
	border-radius: 10px;
	padding: 3px;
	gap: 2px;
	display: inline-flex;
	flex-wrap: wrap;
}
.ctm-filter-bar--segment .ctm-filter-item {
	padding: .32em .9em;
	border-radius: 7px;
	background: transparent;
	border: none;
	font-size: .82rem;
	font-weight: 600;
	color: #64748b;
	text-decoration: none !important;
	transition: background .18s, color .18s, box-shadow .18s;
}
.ctm-filter-bar--segment .ctm-filter-item:hover {
	background: rgba(255,255,255,.65);
	color: #1e293b;
}
.ctm-filter-bar--segment .ctm-filter-item--active {
	background: #fff !important;
	color: var(--ctm-accent, #1a252c) !important;
	box-shadow: 0 1px 4px rgba(0,0,0,.1), 0 0 0 .5px rgba(0,0,0,.07) !important;
	font-weight: 700;
}
.ctm-filter-bar--segment .ctm-filter-count {
	opacity: .6;
	font-size: .65rem;
}
.ctm-filter-bar--segment .ctm-filter-item--active .ctm-filter-count {
	opacity: .75;
}

/* ═══════════════════════════════════════════════════════════
   CLASSIC FILTER BAR — inner wrapper + view toggle row
   ═══════════════════════════════════════════════════════════ */
.ctm-filter-bar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}
.ctm-filter-bar__inner .ctm-filter-group { flex: 1 1 auto; margin-bottom: 0; }
.ctm-filter-bar__inner .ctm-view-toggle  { margin-left: auto; flex-shrink: 0; }

/* Results meta */
.ctm-results-meta {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .75rem;
	font-size: .82rem;
	color: var(--ctm-text-muted, #646970);
}
.ctm-results-total { font-weight: 600; }

/* ═══════════════════════════════════════════════════════════
   VIEW TOGGLE BUTTONS (both classic + smart bars)
   ═══════════════════════════════════════════════════════════ */
.ctm-view-toggle {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	background: #f1f5f9;
	border-radius: 8px;
	padding: 3px;
}
.ctm-view-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 6px;
	color: #94a3b8;
	text-decoration: none !important;
	transition: background .15s, color .15s;
	cursor: pointer;
	background: transparent;
	border: none;
	padding: 0;
}
.ctm-view-btn:hover { background: #fff; color: var(--ctm-accent, #1a252c); }
.ctm-view-btn--active {
	background: #fff !important;
	color: var(--ctm-accent, #1a252c) !important;
	box-shadow: 0 1px 4px rgba(0,0,0,.1);
}
.ctm-view-toggle--form {
	background: transparent !important;
	padding: 0 !important;
	margin-left: .65rem !important;
	border: 1.5px solid var(--ctm-border, #e0e6e3) !important;
	border-radius: 24px !important;
	overflow: hidden;
}
.ctm-view-toggle--form .ctm-view-btn,
.ctm-filter-section .ctm-view-toggle--form .ctm-view-btn,
.ctm-filter-section form.ctm-fsb .ctm-view-toggle--form button.ctm-view-btn {
	background: #fff !important;
	background-image: none !important;
	border-radius: 0 !important;
	-webkit-border-radius: 0 !important;
	border: none !important;
	border-left: 1px solid var(--ctm-border, #e0e6e3) !important;
	width: 36px !important;
	height: 36px !important;
	min-height: 0 !important;
	color: #94a3b8 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
	line-height: 1 !important;
	font-size: 1rem !important;
	text-transform: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	outline: none !important;
	flex-shrink: 0;
	transition: background .15s, color .15s;
}
.ctm-view-toggle--form .ctm-view-btn:first-child,
.ctm-filter-section .ctm-view-toggle--form .ctm-view-btn:first-child { border-left: none !important; }
.ctm-view-toggle--form .ctm-view-btn:hover,
.ctm-filter-section .ctm-view-toggle--form .ctm-view-btn:hover { background: #f1f5f9 !important; color: var(--ctm-accent, #1a252c) !important; }
.ctm-view-toggle--form .ctm-view-btn--active,
.ctm-filter-section .ctm-view-toggle--form .ctm-view-btn--active {
	background: var(--ctm-accent, #1a252c) !important;
	color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════
   SMART FILTER BAR — .ctm-fsb base
   ═══════════════════════════════════════════════════════════ */
.ctm-fsb {
	display: flex;
	align-items: center;
	gap: .55rem;
	flex-wrap: wrap;
	width: 100%;
}
.ctm-fsb__search {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 1 200px;
	min-width: 160px;
}
.ctm-fsb__search-icon {
	position: absolute;
	left: 1rem;
	color: var(--ctm-text-muted, #94a3b8);
	display: flex;
	align-items: center;
	pointer-events: none;
	z-index: 1;
}
.ctm-fsb__input {
	width: 100% !important;
	padding: .6rem .9rem .6rem 2.65rem !important;
	line-height: 1.5 !important;
	border: 1.5px solid var(--ctm-border, #e0e6e3) !important;
	border-radius: 24px !important;
	font-size: .875rem !important;
	background: #fff !important;
	color: var(--ctm-text, #2c3338) !important;
	outline: none !important;
	box-shadow: none !important;
	height: auto !important;
	transition: border-color .18s, box-shadow .18s;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.ctm-fsb__input:focus {
	border-color: var(--ctm-accent, #1a252c) !important;
	box-shadow: 0 0 0 3px rgba(26,37,44,.1) !important;
}
.ctm-fsb__input:focus {
	border-color: var(--ctm-accent, #1a252c);
	box-shadow: 0 0 0 3px rgba(26,37,44,.1);
}
.ctm-fsb__clear {
	position: absolute;
	right: .65rem;
	width: 20px;
	height: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #e2e8f0;
	color: #64748b;
	font-size: .7rem;
	text-decoration: none !important;
	transition: background .15s;
	line-height: 1;
}
.ctm-fsb__clear:hover { background: #cbd5e1; }

.ctm-fsb__filters {
	display: flex;
	align-items: center;
	gap: .45rem;
	flex-wrap: wrap;
}
.ctm-fsb__select-wrap {
	position: relative;
}
.ctm-fsb__select {
	padding: .6rem 2rem .6rem .9rem !important;
	line-height: 1.5 !important;
	border: 1.5px solid var(--ctm-border, #e0e6e3) !important;
	border-radius: 24px !important;
	background-color: #fff !important;
	font-size: .82rem !important;
	color: var(--ctm-text, #2c3338) !important;
	cursor: pointer !important;
	outline: none !important;
	box-shadow: none !important;
	height: auto !important;
	min-height: 0 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right .65rem center !important;
	transition: border-color .18s;
}
.ctm-fsb__select:focus {
	border-color: var(--ctm-accent, #1a252c) !important;
	box-shadow: 0 0 0 3px rgba(26,37,44,.1) !important;
}

.ctm-fsb__submit,
.ctm-filter-section .ctm-fsb__submit,
.ctm-filter-section form.ctm-fsb button.ctm-fsb__submit {
	display: inline-flex !important;
	align-items: center !important;
	gap: .4rem !important;
	padding: .6rem 1.25rem !important;
	background: var(--ctm-accent, #1a252c) !important;
	background-image: none !important;
	color: #fff !important;
	border: none !important;
	border-radius: 24px !important;
	-webkit-border-radius: 24px !important;
	font-size: .82rem !important;
	font-family: inherit !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	line-height: 1.5 !important;
	height: auto !important;
	min-height: 0 !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	outline: none !important;
	vertical-align: middle !important;
	flex-shrink: 0;
	transition: opacity .15s, transform .15s;
}
.ctm-fsb__submit:hover,
.ctm-filter-section .ctm-fsb__submit:hover { opacity: .88 !important; transform: translateY(-1px) !important; }

/* Active filter chips */
.ctm-fsb__chips {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-top: .6rem;
	padding-top: .55rem;
	border-top: 1px solid var(--ctm-border, #e0e6e3);
}
.ctm-fsb__chip {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .2em .65em;
	background: var(--ctm-accent-light, #f1f5f9);
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: 20px;
	font-size: .75rem;
	font-weight: 600;
	color: var(--ctm-text, #2c3338);
	text-decoration: none !important;
	transition: background .15s;
}
.ctm-fsb__chip:hover { background: #e2e8f0; }
.ctm-fsb__chip--clear {
	background: transparent;
	border-style: dashed;
	color: var(--ctm-text-muted, #94a3b8);
}
.ctm-fsb__chip-remove { color: #94a3b8; font-size: .7rem; }

/* ═══════════════════════════════════════════════════════════
   9 SMART FILTER TEMPLATES
   ═══════════════════════════════════════════════════════════ */

/* ── 1: airbnb ── */
.ctm-filter-bar--airbnb {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 48px;
	padding: .6rem .75rem;
	box-shadow: 0 2px 16px rgba(0,0,0,.1);
}
.ctm-filter-bar--airbnb .ctm-fsb { gap: .35rem; }
.ctm-filter-bar--airbnb .ctm-fsb__input {
	border-radius: 24px;
	border-color: transparent;
	background: #f7f7f7;
}
.ctm-filter-bar--airbnb .ctm-fsb__input:focus { background: #fff; border-color: var(--ctm-accent,#1a252c); }
.ctm-filter-bar--airbnb .ctm-fsb__select { background-color: #f7f7f7; border-color: transparent; }
.ctm-filter-bar--airbnb .ctm-fsb__submit { border-radius: 24px; background: #FF385C; }
.ctm-filter-bar--airbnb .ctm-fsb__chips { border-top-color: #e2e8f0; }
.ctm-filter-bar--airbnb .ctm-view-toggle { background: #f7f7f7; }
.ctm-filter-bar--airbnb .ctm-view-btn--active { box-shadow: 0 1px 4px rgba(0,0,0,.12); }

/* ── 2: searchrow ── */
.ctm-filter-bar--searchrow {
	background: #fff;
	border: 1.5px solid var(--ctm-border, #e0e6e3);
	border-radius: 14px;
	padding: .75rem 1rem;
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
/* Inherits pill border-radius from base; add container-corner softening only */
.ctm-filter-bar--searchrow .ctm-fsb__input  { border-radius: 12px; }
.ctm-filter-bar--searchrow .ctm-fsb__select { border-radius: 12px; }
.ctm-filter-bar--searchrow .ctm-fsb__submit { border-radius: 12px; }

/* ── 3: topbar ── */
.ctm-filter-bar--topbar {
	background: var(--ctm-accent, #1a252c);
	border-radius: 14px;
	padding: .85rem 1.25rem;
}
.ctm-filter-bar--topbar .ctm-fsb__input {
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.25);
	color: #fff;
}
.ctm-filter-bar--topbar .ctm-fsb__input::placeholder { color: rgba(255,255,255,.5); }
.ctm-filter-bar--topbar .ctm-fsb__input:focus { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.6); }
.ctm-filter-bar--topbar .ctm-fsb__search-icon { color: rgba(255,255,255,.6); }
.ctm-filter-bar--topbar .ctm-fsb__select {
	background-color: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.25);
	color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
.ctm-filter-bar--topbar .ctm-fsb__submit { background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.4); color: #fff; }
.ctm-filter-bar--topbar .ctm-fsb__submit:hover { background: rgba(255,255,255,.3); }
.ctm-filter-bar--topbar .ctm-view-toggle { background: rgba(255,255,255,.12); }
.ctm-filter-bar--topbar .ctm-view-btn { color: rgba(255,255,255,.55); }
.ctm-filter-bar--topbar .ctm-view-btn--active { background: rgba(255,255,255,.25) !important; color: #fff !important; }
.ctm-filter-bar--topbar .ctm-fsb__chips { border-top-color: rgba(255,255,255,.15); }
.ctm-filter-bar--topbar .ctm-fsb__chip { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.2); color: rgba(255,255,255,.9); }

/* ── 4: glasscard ── */
.ctm-filter-bar--glasscard {
	background: rgba(255,255,255,.72);
	-webkit-backdrop-filter: blur(18px) saturate(180%);
	backdrop-filter: blur(18px) saturate(180%);
	border: 1px solid rgba(255,255,255,.6);
	border-radius: 18px;
	padding: .9rem 1.1rem;
	box-shadow: 0 4px 24px rgba(0,0,0,.09);
}
.ctm-filter-bar--glasscard .ctm-fsb__input  { background: rgba(255,255,255,.8); }
.ctm-filter-bar--glasscard .ctm-fsb__select { background-color: rgba(255,255,255,.8); }

/* ── 5: command ── */
.ctm-filter-bar--command {
	background: #0f172a;
	border-radius: 14px;
	padding: .85rem 1.1rem;
	box-shadow: 0 4px 30px rgba(0,0,0,.3);
}
.ctm-filter-bar--command .ctm-fsb__input {
	background: #1e293b;
	border-color: #334155;
	color: #e2e8f0;
}
.ctm-filter-bar--command .ctm-fsb__input::placeholder { color: #475569; }
.ctm-filter-bar--command .ctm-fsb__input:focus { border-color: var(--ctm-accent,#22c55e); box-shadow: 0 0 0 3px rgba(34,197,94,.15); }
.ctm-filter-bar--command .ctm-fsb__search-icon { color: #475569; }
.ctm-filter-bar--command .ctm-fsb__select {
	background-color: #1e293b;
	border-color: #334155;
	color: #e2e8f0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
.ctm-filter-bar--command .ctm-fsb__submit { background: var(--ctm-accent, #22c55e); color: #0f172a; font-weight: 800; }
.ctm-filter-bar--command .ctm-view-toggle { background: #1e293b; }
.ctm-filter-bar--command .ctm-view-btn { color: #475569; }
.ctm-filter-bar--command .ctm-view-btn--active { background: #334155 !important; color: var(--ctm-accent,#22c55e) !important; }
.ctm-filter-bar--command .ctm-fsb__chips { border-top-color: #1e293b; }
.ctm-filter-bar--command .ctm-fsb__chip { background: #1e293b; border-color: #334155; color: #cbd5e1; }

/* ── 6: booking ── */
.ctm-filter-bar--booking {
	background: #fff;
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,.07);
}
.ctm-filter-bar--booking .ctm-fsb {
	gap: 0;
	flex-wrap: nowrap;
	background: var(--ctm-accent, #1a252c);
	padding: .7rem .85rem;
}
.ctm-filter-bar--booking .ctm-fsb__search { flex: 1.8 1 200px; }
.ctm-filter-bar--booking .ctm-fsb__input {
	border-radius: 8px 0 0 8px;
	border-right: none;
	border-color: rgba(255,255,255,.2);
	background: rgba(255,255,255,.1);
	color: #fff;
}
.ctm-filter-bar--booking .ctm-fsb__input::placeholder { color: rgba(255,255,255,.5); }
.ctm-filter-bar--booking .ctm-fsb__search-icon { color: rgba(255,255,255,.6); }
.ctm-filter-bar--booking .ctm-fsb__filters { gap: 0; flex-wrap: nowrap; }
.ctm-filter-bar--booking .ctm-fsb__select-wrap { border-right: 1px solid rgba(255,255,255,.15); }
.ctm-filter-bar--booking .ctm-fsb__select {
	border-radius: 0;
	border-color: rgba(255,255,255,.2);
	background-color: rgba(255,255,255,.1);
	color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
.ctm-filter-bar--booking .ctm-fsb__submit { border-radius: 0 8px 8px 0; background: #FF385C; flex-shrink: 0; }
.ctm-filter-bar--booking .ctm-view-toggle { margin-left: 6px; background: rgba(255,255,255,.12); }
.ctm-filter-bar--booking .ctm-view-btn { color: rgba(255,255,255,.55); }
.ctm-filter-bar--booking .ctm-view-btn--active { background: rgba(255,255,255,.25) !important; color: #fff !important; }
.ctm-filter-bar--booking .ctm-fsb__chips { padding: .5rem .85rem .6rem; border-top: none; }

/* ── 7: streamline ── */
.ctm-filter-bar--streamline {
	border-bottom: 2px solid var(--ctm-border, #e0e6e3);
	padding-bottom: .65rem;
	border-radius: 0;
}
.ctm-filter-bar--streamline .ctm-fsb { gap: .35rem; }
.ctm-filter-bar--streamline .ctm-fsb__input  { border-radius: 6px; border-width: 1px; font-size: .8rem; padding: .38rem .55rem .38rem 2rem; }
.ctm-filter-bar--streamline .ctm-fsb__select { border-radius: 6px; border-width: 1px; font-size: .8rem; padding: .38rem 1.6rem .38rem .7rem; }
.ctm-filter-bar--streamline .ctm-fsb__submit { border-radius: 6px; padding: .38rem .8rem; font-size: .8rem; }
.ctm-filter-bar--streamline .ctm-view-toggle { background: transparent; }
.ctm-filter-bar--streamline .ctm-view-btn { width: 26px; height: 26px; }

/* ── 8: tabsearch ── */
.ctm-filter-bar--tabsearch {
	background: #fff;
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: 14px;
	overflow: hidden;
}
.ctm-filter-bar--tabsearch .ctm-fsb {
	background: #f8fafc;
	padding: .7rem 1rem;
	border-bottom: 1px solid var(--ctm-border, #e0e6e3);
	gap: .45rem;
	flex-wrap: nowrap;
}
.ctm-filter-bar--tabsearch .ctm-fsb__input  { border-radius: 8px; }
.ctm-filter-bar--tabsearch .ctm-fsb__select { border-radius: 8px; }
.ctm-filter-bar--tabsearch .ctm-fsb__submit { border-radius: 8px; }
.ctm-filter-bar--tabsearch .ctm-fsb__chips  { padding: .5rem 1rem; border-top: none; }
.ctm-filter-bar--tabsearch .ctm-view-toggle { background: #fff; border: 1px solid var(--ctm-border,#e0e6e3); }

/* ── 9: magazine ── */
.ctm-filter-bar--magazine {
	background: #fff;
	padding: 0;
}
.ctm-filter-bar--magazine .ctm-fsb {
	flex-direction: column;
	align-items: stretch;
	gap: .65rem;
}
.ctm-filter-bar--magazine .ctm-fsb__search {
	flex: none;
}
.ctm-filter-bar--magazine .ctm-fsb__input {
	border-radius: 12px;
	border-width: 2px;
	padding: .75rem .75rem .75rem 2.75rem;
	font-size: 1rem;
}
.ctm-filter-bar--magazine .ctm-fsb__search-icon { left: .9rem; }
.ctm-filter-bar--magazine .ctm-fsb__filters-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}
.ctm-filter-bar--magazine .ctm-fsb__filters { flex: 1; }
.ctm-filter-bar--magazine .ctm-fsb__submit { border-radius: 12px; padding: .65rem 1.5rem; font-size: .9rem; }

/* Responsive */
@media (max-width: 680px) {
	.ctm-fsb { flex-wrap: wrap; }
	.ctm-fsb__search { flex: 1 1 100%; }
	.ctm-fsb__filters { flex: 1 1 100%; }
	.ctm-filter-bar--airbnb { border-radius: 14px; }
	.ctm-filter-bar--booking .ctm-fsb { flex-wrap: wrap; }
	.ctm-filter-bar--booking .ctm-fsb__input { border-radius: 8px; border-right: revert; }
	.ctm-filter-bar--booking .ctm-fsb__select { border-radius: 8px; }
	.ctm-filter-bar--booking .ctm-fsb__submit { border-radius: 8px; }
}

/* ─── Loading animations ─── */
/* Wrapper transitions */
.ctm-tour-wrap { position: relative; }

/* Fade entrance */
.ctm-anim-fade--enter { opacity: 0; }
.ctm-anim-fade--enter.ctm-anim-ready { opacity: 1; transition: opacity .45s ease; }

/* Slide-up entrance */
.ctm-anim-slide--enter { opacity: 0; transform: translateY(20px); }
.ctm-anim-slide--enter.ctm-anim-ready { opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; }

/* Pulse/shimmer entrance */
.ctm-anim-pulse--enter .ctm-tour-card,
.ctm-anim-pulse--enter .ctm-tour-list-item,
.ctm-anim-pulse--enter .ctm-tour-compact-item {
	animation: ctm-shimmer .8s ease forwards;
}
@keyframes ctm-shimmer {
	0%   { opacity: .4; }
	100% { opacity: 1; }
}

/* Loading overlay (shown on pagination/filter click) */
.ctm-loading-overlay {
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,.65);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	border-radius: var(--ctm-radius, 8px);
	backdrop-filter: blur(2px);
}
.ctm-loading-spinner {
	width: 36px;
	height: 36px;
	border: 3px solid var(--ctm-accent-light, #eaecef);
	border-top-color: var(--ctm-accent, #1a252c);
	border-radius: 50%;
	animation: ctm-spin .7s linear infinite;
}
@keyframes ctm-spin {
	to { transform: rotate(360deg); }
}

/* ─── List view — Learn More button full width ─── */
.ctm-tour-list-item__aside .ctm-tour-card__cta {
	width: 100%;
	justify-content: center;
}

/* ─── Responsive — all components ─── */
@media (max-width: 1024px) {
	.ctm-tour-layout__sidebar { flex: 0 0 260px; width: 260px; }
}

@media (max-width: 900px) {
	.ctm-tour-layout { flex-direction: column; }
	.ctm-tour-layout__sidebar {
		flex: 1 1 auto;
		width: 100%;
		position: static;
	}
	.ctm-booking-box { max-width: 480px; margin: 0 auto; }
	.ctm-trust-badges { max-width: 480px; margin: 1rem auto 0; }
}

@media (max-width: 768px) {
	.ctm-tour-hero__title { font-size: 1.25rem; }
	.ctm-tour-hero { min-height: 140px; }
	.ctm-tour-hero__inner { padding: 1rem 1.25rem 1rem; }
	.ctm-tour-grid--cols-3,
	.ctm-tour-grid--cols-4 { grid-template-columns: repeat(2,1fr); }
	.ctm-filter-bar--tabs .ctm-filter-item { padding: .45rem .75rem; font-size: .82rem; }
}

@media (max-width: 600px) {
	.ctm-tour-grid--cols-2,
	.ctm-tour-grid--cols-3,
	.ctm-tour-grid--cols-4 { grid-template-columns: 1fr; }
	.ctm-tour-layout { gap: 1.25rem; }
	.ctm-pagination { gap: .25rem; }
	.ctm-page-num,
	.ctm-page-btn { min-width: 32px; height: 32px; font-size: .8rem; }
	.ctm-filter-bar--pills .ctm-filter-item { font-size: .75rem; padding: .25em .7em; }
	.ctm-tour-hero__title { font-size: 1.1rem; }
	.ctm-tour-hero { min-height: 120px; }
	.ctm-filter-group { flex-direction: column; align-items: flex-start; }
	.ctm-filter-group__label { margin-bottom: .2rem; }
}

@media (max-width: 480px) {
	.ctm-tour-compact-item { flex-wrap: wrap; gap: .6rem; }
	.ctm-tour-compact-item__btn { width: 100%; justify-content: center; }
	.ctm-tour-list-item__aside { flex-direction: column; align-items: stretch; }
	.ctm-pagination--numbered { gap: .2rem; }
	/* Hide ellipsis on very small screens to save space */
	.ctm-page-ellipsis { display: none; }
}


/* ═══════════════════════════════════════════════════════════════
   Taxonomy Archive — Hero Banner + Grid Layout
═══════════════════════════════════════════════════════════════ */

/* Outer wrapper */
.ctm-tax-archive-wrap {
	width: 100%;
}

/* ── Hero Banner ─────────────────────────────────────── */
.ctm-tax-hero {
	position: relative;
	width: 100%;
	min-height: 340px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

/* Photo background */
.ctm-tax-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transform: scale(1.03);
	transition: transform 6s ease;
}
.ctm-tax-hero:hover .ctm-tax-hero__bg {
	transform: scale(1.06);
}

/* Dark overlay for readability when photo is set */
.ctm-tax-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0,0,0,.18) 0%,
		rgba(0,0,0,.55) 60%,
		rgba(0,0,0,.72) 100%
	);
}

/* Gradient fallback (no photo) — uses brand color */
.ctm-tax-hero__gradient {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		var(--ctm-tax-accent-dark, #151e24) 0%,
		var(--ctm-tax-accent, #1a252c) 50%,
		color-mix(in srgb, var(--ctm-tax-accent, #1a252c) 70%, #000) 100%
	);
}

/* Inner content */
.ctm-tax-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: 48px 32px 44px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* Breadcrumb */
.ctm-tax-hero__breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: .78rem;
	color: rgba(255,255,255,.75);
	margin-bottom: 4px;
}
.ctm-tax-hero__breadcrumb a {
	color: rgba(255,255,255,.75);
	text-decoration: none;
	transition: color .15s;
}
.ctm-tax-hero__breadcrumb a:hover {
	color: #fff;
}
.ctm-tax-hero__bc-sep {
	opacity: .5;
	font-size: .85rem;
}
.ctm-tax-hero__breadcrumb [aria-current="page"] {
	color: #fff;
	font-weight: 600;
}

/* Taxonomy label pill */
.ctm-tax-hero__label {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: rgba(255,255,255,.18);
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 20px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(255,255,255,.9);
	width: fit-content;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* Title */
.ctm-tax-hero__title {
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.15;
	letter-spacing: -.02em;
	text-shadow: 0 2px 12px rgba(0,0,0,.25);
}

/* Description */
.ctm-tax-hero__desc {
	font-size: 1rem;
	color: rgba(255,255,255,.85);
	max-width: 600px;
	line-height: 1.65;
	margin: 0;
}
.ctm-tax-hero__desc p { margin: 0; }

/* Meta row (count) */
.ctm-tax-hero__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
}

.ctm-tax-hero__count {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 14px;
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.25);
	border-radius: 20px;
	font-size: .8rem;
	font-weight: 600;
	color: rgba(255,255,255,.9);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.ctm-tax-hero__count svg {
	flex-shrink: 0;
	opacity: .85;
}

/* ── Content body ────────────────────────────────────── */
.ctm-tax-body {
	padding: 36px 20px 60px;
}

.ctm-tax-grid-container {
	max-width: 1200px;
	margin: 0 auto;
}

/* Ensure the tour wrap uses full width */
.ctm-tax-grid-container .ctm-tour-wrap {
	width: 100%;
}

/* ── Responsive ──────────────────────────────────────── */
@media (max-width: 1024px) {
	.ctm-tax-hero__inner {
		max-width: 100%;
		padding: 40px 28px 36px;
	}
}

@media (max-width: 768px) {
	.ctm-tax-hero {
		min-height: 260px;
	}
	.ctm-tax-hero__inner {
		padding: 32px 20px 28px;
		gap: 8px;
	}
	.ctm-tax-hero__title {
		font-size: 1.75rem;
	}
	.ctm-tax-hero__desc {
		font-size: .9rem;
	}
	.ctm-tax-body {
		padding: 24px 16px 40px;
	}
}

@media (max-width: 480px) {
	.ctm-tax-hero {
		min-height: 220px;
	}
	.ctm-tax-hero__inner {
		padding: 24px 16px 22px;
	}
	.ctm-tax-hero__title {
		font-size: 1.5rem;
	}
	.ctm-tax-hero__label {
		font-size: .68rem;
	}
}

/* ═══════════════════════════════════════════════════════════════
   Gallery Style Variants
═══════════════════════════════════════════════════════════════ */

/* ── Style 2: Uniform Grid ── */
.ctm-gallery--grid .ctm-gallery__grid {
	grid-template-columns: repeat(3, 1fr) !important;
	grid-template-rows: unset !important;
}
.ctm-gallery--grid .ctm-gallery__item {
	grid-row: unset !important;
	grid-column: unset !important;
}

/* ── Style 3: Masonry ── */
.ctm-gallery--masonry .ctm-gallery__grid {
	display: block !important;
	columns: 3 180px;
	column-gap: 6px;
}
.ctm-gallery--masonry .ctm-gallery__item {
	break-inside: avoid;
	margin-bottom: 6px;
	aspect-ratio: unset;
	border-radius: 8px;
}
.ctm-gallery--masonry .ctm-gallery__item img {
	height: auto;
}

/* ── Style 4: Filmstrip ── */
.ctm-gallery__filmstrip {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ctm-gallery__filmstrip-main {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	aspect-ratio: 16/9;
	background: #000;
	cursor: pointer;
}
.ctm-gallery__filmstrip-main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity .25s;
}
.ctm-gallery__filmstrip-main .ctm-gallery__zoom {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,.3);
	color: #fff;
	opacity: 0;
	transition: opacity .2s;
}
.ctm-gallery__filmstrip-main:hover .ctm-gallery__zoom { opacity: 1; }

.ctm-gallery__strip {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding-bottom: 4px;
	scrollbar-width: thin;
	scrollbar-color: var(--ctm-brand, #1a252c) #f0f0f1;
}
.ctm-gallery__strip-thumb {
	flex-shrink: 0;
	width: 80px;
	height: 60px;
	border-radius: 6px;
	overflow: hidden;
	border: 2px solid transparent;
	padding: 0;
	background: none;
	cursor: pointer;
	transition: border-color .15s, opacity .15s;
	opacity: .7;
}
.ctm-gallery__strip-thumb.is-active,
.ctm-gallery__strip-thumb:hover {
	border-color: var(--ctm-brand, #1a252c);
	opacity: 1;
}
.ctm-gallery__strip-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ── Style 5: Mosaic ── */
.ctm-gallery--mosaic .ctm-gallery__grid {
	grid-template-columns: 1.6fr 1fr !important;
	grid-template-rows: 1fr 1fr !important;
}
.ctm-gallery--mosaic .ctm-gallery__item:first-child {
	grid-row: 1 / 3;
	aspect-ratio: unset;
}
.ctm-gallery--mosaic .ctm-gallery__item:nth-child(n+4) {
	display: none;
}

/* ── Masonry responsive ── */
@media (max-width: 640px) {
	.ctm-gallery--masonry .ctm-gallery__grid { columns: 2 120px; }
	.ctm-gallery__strip-thumb { width: 64px; height: 48px; }
}

/* ═══════════════════════════════════════════════════════════════
   Hero / Title Section Style Variants
═══════════════════════════════════════════════════════════════ */

/* Font size via CSS variable */
.ctm-tour-hero .ctm-tour-hero__title {
	font-size: var(--ctm-hero-title-fs, 1.55rem);
}

/* ── Style 2: Minimal ── */
.ctm-tour-hero--minimal {
	background: #fff !important;
	border-left: 5px solid var(--ctm-accent, #1a252c) !important;
	border-radius: var(--ctm-radius, 8px) !important;
	min-height: unset !important;
	align-items: flex-start !important;
	padding: 0 !important;
	box-shadow: 0 1px 8px rgba(0,0,0,.07);
}
.ctm-tour-hero--minimal .ctm-tour-hero__overlay { display: none; }
.ctm-tour-hero--minimal .ctm-tour-hero__inner {
	padding: 1.25rem 1.5rem 1rem 1.5rem !important;
}
.ctm-tour-hero--minimal .ctm-tour-hero__title {
	color: #1d2327 !important;
	text-shadow: none !important;
}
.ctm-tour-hero--minimal .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--minimal .ctm-tour-hero__breadcrumb a {
	color: var(--ctm-accent, #1a252c) !important;
}
.ctm-tour-hero--minimal .ctm-hero-pill {
	background: var(--ctm-accent-light, #f7faf8) !important;
	border-color: var(--ctm-accent, #1a252c) !important;
	color: var(--ctm-accent-dark, #1a252c) !important;
}

/* ── Style 3: Centered ── */
.ctm-tour-hero--centered {
	background: linear-gradient(160deg, #edf7f1 0%, #d4eedd 100%) !important;
	text-align: center !important;
	align-items: center !important;
}
.ctm-tour-hero--centered .ctm-tour-hero__overlay { display: none; }
.ctm-tour-hero--centered .ctm-tour-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 2rem !important;
	padding-bottom: 1.75rem !important;
}
.ctm-tour-hero--centered .ctm-tour-hero__title {
	color: #0d3320 !important;
	text-shadow: none !important;
}
.ctm-tour-hero--centered .ctm-tour-hero__breadcrumb { justify-content: center; }
.ctm-tour-hero--centered .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--centered .ctm-tour-hero__breadcrumb a { color: #151e24 !important; }
.ctm-tour-hero--centered .ctm-tour-hero__meta { justify-content: center; }
.ctm-tour-hero--centered .ctm-hero-pill {
	background: rgba(30,110,66,.12) !important;
	border-color: rgba(30,110,66,.25) !important;
	color: #0d3320 !important;
}

/* ── Style 4: Bold Banner ── */
.ctm-tour-hero--banner {
	background: linear-gradient(135deg, #0a2517 0%, #0d3320 60%, #151e24 100%) !important;
	min-height: 220px !important;
	position: relative;
}
.ctm-tour-hero--banner::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: var(--ctm-brand, #1a252c);
}
.ctm-tour-hero--banner::after {
	content: '';
	position: absolute;
	bottom: 24px;
	left: 1.75rem;
	width: 60px;
	height: 3px;
	background: rgba(255,255,255,.25);
	border-radius: 2px;
}
.ctm-tour-hero--banner .ctm-tour-hero__title {
	color: #fff !important;
	text-shadow: 0 2px 16px rgba(0,0,0,.5) !important;
	letter-spacing: -.02em;
}

/* ── Style 5: Dark Slate ── */
.ctm-tour-hero--dark {
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%) !important;
}
.ctm-tour-hero--dark .ctm-tour-hero__overlay {
	background: linear-gradient(to top, rgba(0,0,0,.4) 0%, transparent 60%) !important;
}
.ctm-tour-hero--dark .ctm-tour-hero__title {
	color: #e2e8f0 !important;
}
.ctm-tour-hero--dark .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--dark .ctm-tour-hero__breadcrumb a {
	color: rgba(226,232,240,.6) !important;
}
.ctm-tour-hero--dark .ctm-hero-pill {
	background: rgba(255,255,255,.1) !important;
	border-color: rgba(255,255,255,.18) !important;
	color: #cbd5e1 !important;
}

/* ═══════════════════════════════════════════════════════════════
   Tour Search Box
═══════════════════════════════════════════════════════════════ */

.ctm-search-wrap {
	position: relative;
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.ctm-search-box {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1.5px solid #e2e8f0;
	border-radius: 50px;
	padding: 0 4px 0 13px;
	gap: 5px;
	transition: border-color .2s, box-shadow .2s;
	position: relative;
	z-index: 2;
	height: 38px;
	box-sizing: border-box;
}
.ctm-search-box:focus-within {
	border-color: var(--ctm-brand, #1a252c);
	box-shadow: 0 0 0 3px rgba(30,110,66,.1);
}

.ctm-search-box__icon {
	color: #8c8f94;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	pointer-events: none;
}

.ctm-search-input {
	flex: 1;
	border: none;
	outline: none;
	font-size: .875rem;
	padding: 0 4px;
	height: 100%;
	background: transparent;
	color: #1d2327;
	min-width: 0;
	line-height: 38px;
}
.ctm-search-input::placeholder { color: #adb5bd; }
.ctm-search-input::-webkit-search-cancel-button { display: none; }

.ctm-search-clear {
	background: none;
	border: none;
	padding: 4px;
	cursor: pointer;
	color: #8c8f94;
	display: flex;
	align-items: center;
	border-radius: 50%;
	transition: color .15s, background .15s;
}
.ctm-search-clear:hover {
	color: #d63638;
	background: #fef2f2;
}

.ctm-search-btn {
	background: var(--ctm-btn-bg, var(--ctm-accent, #1a252c));
	color: var(--ctm-btn-text, #fff);
	border: none;
	border-radius: 40px;
	padding: 0 16px;
	height: 30px;
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
	white-space: nowrap;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	line-height: 1;
}
.ctm-search-btn:hover { background: var(--ctm-brand-dark, #151e24); }

/* Dropdown */
.ctm-search-dropdown {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	box-shadow: 0 8px 40px rgba(0,0,0,.14), 0 2px 8px rgba(0,0,0,.08);
	z-index: 9999;
	overflow: hidden;
	animation: ctmSearchSlideIn .15s ease;
}
@keyframes ctmSearchSlideIn {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.ctm-search-loading {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 14px 16px;
	font-size: .875rem;
	color: #8c8f94;
}

.ctm-search-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid #e2e8f0;
	border-top-color: var(--ctm-brand, #1a252c);
	border-radius: 50%;
	animation: ctmSpin .6s linear infinite;
	flex-shrink: 0;
}
@keyframes ctmSpin { to { transform: rotate(360deg); } }

.ctm-search-results {
	list-style: none;
	margin: 0;
	padding: 6px 0;
}

.ctm-search-result {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
	transition: background .1s;
	outline: none;
}
.ctm-search-result:hover,
.ctm-search-result:focus,
.ctm-search-result[aria-selected="true"] {
	background: #f7faf8;
}

.ctm-search-result__thumb {
	width: 48px;
	height: 36px;
	border-radius: 6px;
	object-fit: cover;
	flex-shrink: 0;
	background: #f0f0f1;
}
.ctm-search-result__thumb-placeholder {
	width: 48px;
	height: 36px;
	border-radius: 6px;
	background: linear-gradient(135deg, var(--ctm-brand, #1a252c), #2d9e61);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.5);
}

.ctm-search-result__info {
	flex: 1;
	min-width: 0;
}
.ctm-search-result__title {
	font-size: .9rem;
	font-weight: 600;
	color: #1d2327;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin: 0;
}
.ctm-search-result__meta {
	font-size: .78rem;
	color: #8c8f94;
	margin: 1px 0 0;
	display: flex;
	gap: 8px;
	align-items: center;
}
.ctm-search-result__price {
	font-weight: 700;
	color: var(--ctm-brand, #1a252c);
}

.ctm-search-result__arrow {
	color: #c3c4c7;
	flex-shrink: 0;
	transition: color .15s;
}
.ctm-search-result:hover .ctm-search-result__arrow { color: var(--ctm-brand, #1a252c); }

.ctm-search-no-results {
	padding: 14px 16px;
	font-size: .875rem;
	color: #8c8f94;
	text-align: center;
}

.ctm-search-footer {
	border-top: 1px solid #f0f0f1;
	padding: 10px 16px;
}
.ctm-search-view-all {
	font-size: .8rem;
	font-weight: 600;
	color: var(--ctm-brand, #1a252c);
	text-decoration: none;
}
.ctm-search-view-all:hover { text-decoration: underline; }

/* Highlight matching text */
.ctm-search-highlight {
	background: rgba(30,110,66,.12);
	color: var(--ctm-brand, #1a252c);
	border-radius: 2px;
	font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════
   Hero Styles 6–10 (added v3.5.32)
═══════════════════════════════════════════════════════════════ */

/* ── Style 6: Photo (featured image full-bleed) ── */
.ctm-tour-hero--photo {
	background-color: #1a2e1a;
	background-size: cover !important;
	background-position: center !important;
	min-height: 260px !important;
}
.ctm-tour-hero--photo .ctm-tour-hero__overlay {
	background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.1) 100%) !important;
}
.ctm-tour-hero--photo .ctm-tour-hero__title {
	color: #fff !important;
	text-shadow: 0 2px 16px rgba(0,0,0,.65) !important;
}
.ctm-tour-hero--photo .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--photo .ctm-tour-hero__breadcrumb a { color: rgba(255,255,255,.75) !important; }
.ctm-tour-hero--photo .ctm-hero-pill {
	background: rgba(255,255,255,.15) !important;
	border-color: rgba(255,255,255,.3) !important;
	color: rgba(255,255,255,.95) !important;
}

/* ── Style 7: Glass Card (featured image + frosted glass overlay) ── */
.ctm-tour-hero--glass {
	background-color: #1a2e1a;
	background-size: cover !important;
	background-position: center !important;
	min-height: 240px !important;
	align-items: flex-end !important;
}
.ctm-tour-hero--glass .ctm-tour-hero__overlay {
	background: rgba(0,0,0,.28) !important;
}
.ctm-tour-hero--glass .ctm-tour-hero__inner {
	background: rgba(255,255,255,.13) !important;
	backdrop-filter: blur(14px) !important;
	-webkit-backdrop-filter: blur(14px) !important;
	border: 1px solid rgba(255,255,255,.28) !important;
	border-radius: 14px !important;
	margin: 0 1rem 1rem !important;
	padding: 1.25rem 1.5rem !important;
}
.ctm-tour-hero--glass .ctm-tour-hero__title {
	color: #fff !important;
	text-shadow: 0 1px 4px rgba(0,0,0,.4) !important;
}
.ctm-tour-hero--glass .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--glass .ctm-tour-hero__breadcrumb a { color: rgba(255,255,255,.75) !important; }
.ctm-tour-hero--glass .ctm-hero-pill {
	background: rgba(255,255,255,.18) !important;
	border-color: rgba(255,255,255,.35) !important;
	color: rgba(255,255,255,.95) !important;
}

/* ── Style 8: Neon Glow ── */
.ctm-tour-hero--neon {
	background: linear-gradient(135deg, #030b03 0%, #061206 60%, #0a1a0a 100%) !important;
}
.ctm-tour-hero--neon .ctm-tour-hero__overlay { background: none; }
.ctm-tour-hero--neon::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 20% 50%, rgba(30,110,66,.22) 0%, transparent 65%);
	pointer-events: none;
}
.ctm-tour-hero--neon .ctm-tour-hero__title {
	color: var(--ctm-brand, #22c55e) !important;
	text-shadow: 0 0 18px var(--ctm-brand, #22c55e), 0 0 45px rgba(34,197,94,.28) !important;
	letter-spacing: -.01em;
}
.ctm-tour-hero--neon .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--neon .ctm-tour-hero__breadcrumb a { color: rgba(167,243,208,.55) !important; }
.ctm-tour-hero--neon .ctm-hero-pill {
	background: rgba(30,110,66,.1) !important;
	border-color: rgba(30,110,66,.4) !important;
	color: #a7f3d0 !important;
}

/* ── Style 9: Vintage ── */
.ctm-tour-hero--vintage {
	background: linear-gradient(135deg, #3d2b1f 0%, #5c3d2e 50%, #7a5035 100%) !important;
	position: relative;
}
.ctm-tour-hero--vintage::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='1' fill='rgba(245,230,200,0.05)'/%3E%3C/svg%3E");
	pointer-events: none;
}
.ctm-tour-hero--vintage .ctm-tour-hero__overlay {
	background: linear-gradient(to top, rgba(0,0,0,.45) 0%, transparent 55%) !important;
}
.ctm-tour-hero--vintage .ctm-tour-hero__title {
	color: #f5e6c8 !important;
	font-style: italic;
	letter-spacing: .02em;
	text-shadow: 0 1px 8px rgba(0,0,0,.5) !important;
}
.ctm-tour-hero--vintage .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--vintage .ctm-tour-hero__breadcrumb a { color: rgba(245,230,200,.65) !important; }
.ctm-tour-hero--vintage .ctm-hero-pill {
	background: rgba(245,230,200,.12) !important;
	border-color: rgba(245,230,200,.28) !important;
	color: #f5e6c8 !important;
}

/* ── Style 10: Split Tone ── */
.ctm-tour-hero--split {
	background: #f0f7f3 !important;
	min-height: 180px !important;
	position: relative;
	overflow: hidden;
}
.ctm-tour-hero--split::before {
	content: '';
	position: absolute;
	top: 0; left: 0; bottom: 0;
	width: 46%;
	background: var(--ctm-brand, #1a252c);
	border-radius: 0 60px 60px 0;
}
.ctm-tour-hero--split .ctm-tour-hero__overlay { display: none; }
.ctm-tour-hero--split .ctm-tour-hero__inner {
	position: relative;
	z-index: 1;
	padding: 1.5rem 2rem !important;
	max-width: 50% !important;
}
.ctm-tour-hero--split .ctm-tour-hero__title {
	color: #fff !important;
	text-shadow: none !important;
}
.ctm-tour-hero--split .ctm-tour-hero__breadcrumb,
.ctm-tour-hero--split .ctm-tour-hero__breadcrumb a { color: rgba(255,255,255,.72) !important; }
.ctm-tour-hero--split .ctm-hero-pill {
	background: rgba(255,255,255,.18) !important;
	border-color: rgba(255,255,255,.3) !important;
	color: rgba(255,255,255,.95) !important;
}
@media (max-width: 640px) {
	.ctm-tour-hero--split::before { width: 100%; border-radius: 0; }
	.ctm-tour-hero--split .ctm-tour-hero__inner { max-width: 100% !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Sidebar Blocks (CTM built-in blocks v3.5.32)
═══════════════════════════════════════════════════════════════ */
.ctm-sidebar-block {
	background: #fff;
	border: 1px solid #e8ecef;
	border-radius: 10px;
	padding: 1rem 1.1rem;
	margin-bottom: 1rem;
	box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.ctm-sidebar-block__title {
	font-size: .85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: #646970;
	margin: 0 0 .75rem;
	padding-bottom: .6rem;
	border-bottom: 2px solid var(--ctm-accent, #1a252c);
	display: flex;
	align-items: center;
	gap: 6px;
}
.ctm-sidebar-block__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ctm-sidebar-block__list li {
	border-bottom: 1px solid #f0f0f1;
}
.ctm-sidebar-block__list li:last-child { border-bottom: none; }
.ctm-sidebar-block__list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: .45rem .2rem;
	font-size: .875rem;
	color: #2c3338;
	text-decoration: none;
	transition: color .15s;
}
.ctm-sidebar-block__list a:hover { color: var(--ctm-accent, #1a252c); }
.ctm-sidebar-block__list span {
	font-size: .75rem;
	color: #9ca3af;
	background: #f3f4f6;
	border-radius: 10px;
	padding: 1px 7px;
}
.ctm-sidebar-block__tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.ctm-sidebar-block__tag {
	display: inline-block;
	padding: 4px 10px;
	background: var(--ctm-accent-light, #eaecef);
	color: var(--ctm-accent, #1a252c);
	border-radius: 20px;
	font-size: .78rem;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s, color .15s;
}
.ctm-sidebar-block__tag:hover {
	background: var(--ctm-accent, #1a252c);
	color: #fff;
}
/* Search block inside sidebar — full width, compact */
.ctm-sidebar-block--search .ctm-search-wrap {
	max-width: 100%;
	margin: 0;
}
.ctm-sidebar-block--search .ctm-search-box {
	border-radius: 8px;
	padding: 0 6px 0 10px;
}
.ctm-sidebar-block--search .ctm-search-input {
	padding: 9px 4px;
	font-size: .875rem;
}

/* ═══════════════════════════════════════════════════════════════
   TOUR BADGES  (on card image top-left and detail hero)
   ═══════════════════════════════════════════════════════════════ */
.ctm-tour-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	border-radius: 20px;
	white-space: nowrap;
	line-height: 1.3;
	box-shadow: 0 2px 8px rgba(0,0,0,.25);
	pointer-events: none;
	transition: transform .2s;
}
/* On card: ensure the image-wrap is position:relative */
.ctm-tour-card__img-wrap {
	position: relative;
	display: block;
}

/* Color variants */
.ctm-tour-badge--green,  .ctm-gallery-badge--green  { background: var(--ctm-accent, #1a252c); }
.ctm-tour-badge--red,    .ctm-gallery-badge--red    { background: #e53935; }
.ctm-tour-badge--orange, .ctm-gallery-badge--orange { background: #e67e22; }
.ctm-tour-badge--blue,   .ctm-gallery-badge--blue   { background: #0077cc; }
.ctm-tour-badge--purple, .ctm-gallery-badge--purple { background: #8e44ad; }
.ctm-tour-badge--dark,   .ctm-gallery-badge--dark   { background: #2c3e50; }

/* Hover lift on cards */
.ctm-tour-card:hover .ctm-tour-badge { transform: translateY(-1px); }

/* Hero variant — slightly larger, outside the overlay layer */
.ctm-tour-badge--hero {
	font-size: 11px;
	padding: 5px 13px;
	border-radius: 24px;
	box-shadow: 0 3px 14px rgba(0,0,0,.35);
	pointer-events: auto;
}
.ctm-tour-hero { position: relative; }

/* ═══════════════════════════════════════════════════════════════
   SEARCH BOX — 5 STYLE VARIANTS
   ═══════════════════════════════════════════════════════════════ */

/* ── Style 2: Flat Material ── */
/* ── Style 2: Hero — prominent, full-width, slight lift ── */
.ctm-search-wrap--hero { max-width: 640px; }
.ctm-search-wrap--hero .ctm-search-box {
	height: 44px;
	border-radius: 12px;
	border: 1.5px solid #e2e8f0;
	padding: 0 5px 0 16px;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0,0,0,.09);
	gap: 8px;
}
.ctm-search-wrap--hero .ctm-search-box:focus-within {
	border-color: var(--ctm-brand, #1a252c);
	box-shadow: 0 4px 20px rgba(0,0,0,.12);
}
.ctm-search-wrap--hero .ctm-search-box__icon { color: var(--ctm-brand, #1a252c); }
.ctm-search-wrap--hero .ctm-search-input {
	font-size: .95rem;
	font-weight: 500;
	line-height: 44px;
}
.ctm-search-wrap--hero .ctm-search-btn {
	border-radius: 9px;
	height: 34px;
	padding: 0 20px;
	font-size: .82rem;
}

/* ── Style 3: Minimal — underline only, no box ── */
.ctm-search-wrap--minimal .ctm-search-box {
	height: 38px;
	border: none;
	border-bottom: 1.5px solid #d1d5db;
	border-radius: 0;
	background: transparent;
	padding: 0 4px 0 0;
	gap: 7px;
	box-shadow: none;
}
.ctm-search-wrap--minimal .ctm-search-box:focus-within {
	border-bottom-color: var(--ctm-brand, #1a252c);
	box-shadow: none;
}
.ctm-search-wrap--minimal .ctm-search-box__icon { color: #9ca3af; }
.ctm-search-wrap--minimal .ctm-search-input { font-size: .875rem; line-height: 38px; }
.ctm-search-wrap--minimal .ctm-search-btn {
	border-radius: 4px;
	height: 28px;
	padding: 0 12px;
	font-size: .78rem;
	background: transparent;
	color: var(--ctm-brand, #1a252c);
	border: 1.5px solid var(--ctm-brand, #1a252c);
}
.ctm-search-wrap--minimal .ctm-search-btn:hover {
	background: var(--ctm-brand, #1a252c);
	color: #fff;
}

/* ── Style 4: Glass — frosted, semi-transparent ── */
.ctm-search-wrap--glass .ctm-search-box {
	height: 38px;
	background: rgba(255,255,255,.18);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1.5px solid rgba(255,255,255,.4);
	border-radius: 50px;
	box-shadow: 0 2px 12px rgba(0,0,0,.1);
}
.ctm-search-wrap--glass .ctm-search-box:focus-within {
	border-color: rgba(255,255,255,.7);
	box-shadow: 0 0 0 3px rgba(255,255,255,.2);
}
.ctm-search-wrap--glass .ctm-search-input { background: transparent; line-height: 38px; }
.ctm-search-wrap--glass .ctm-search-btn {
	height: 28px;
	background: rgba(255,255,255,.25);
	color: inherit;
	border: 1px solid rgba(255,255,255,.5);
}
.ctm-search-wrap--glass .ctm-search-btn:hover { background: rgba(255,255,255,.38); }

/* ── Style 5: Popup — compact trigger pill + full-screen overlay ── */
.ctm-search-wrap--popup { max-width: none; margin: 0; }
.ctm-search-popup-trigger {
	display: inline-flex; align-items: center; gap: 8px;
	height: 36px; padding: 0 14px 0 12px;
	background: #fff; border: 1.5px solid #e2e8f0; border-radius: 50px;
	cursor: pointer; font-family: inherit; font-size: .82rem; color: #9ca3af;
	box-shadow: 0 1px 4px rgba(0,0,0,.07);
	transition: box-shadow .2s, border-color .2s;
	white-space: nowrap;
}
.ctm-search-popup-trigger:hover {
	box-shadow: 0 3px 10px rgba(0,0,0,.11);
	border-color: #c5cad3;
}
.ctm-search-popup-trigger__icon { color: var(--ctm-brand, #1a252c); display: flex; align-items: center; }
.ctm-search-popup-trigger__text { flex: 1; text-align: left; }

/* Overlay */
.ctm-search-overlay {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: flex-start; justify-content: center;
	padding-top: 80px;
}
.ctm-search-overlay[hidden] { display: none; }
.ctm-search-overlay__backdrop {
	position: absolute; inset: 0;
	background: rgba(0,0,0,.55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	animation: ctmOverlayIn .2s ease;
}
@keyframes ctmOverlayIn { from { opacity:0; } to { opacity:1; } }

.ctm-search-overlay__inner {
	position: relative; width: 100%; max-width: 680px; padding: 0 16px;
	z-index: 1;
	animation: ctmOverlaySlideIn .22s ease;
}
@keyframes ctmOverlaySlideIn {
	from { opacity:0; transform: translateY(-16px); }
	to   { opacity:1; transform: translateY(0); }
}

.ctm-search-overlay__close {
	position: absolute; top: -48px; right: 16px;
	width: 36px; height: 36px; border-radius: 50%;
	background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3);
	color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
	transition: background .15s;
}
.ctm-search-overlay__close:hover { background: rgba(255,255,255,.28); }

.ctm-search-overlay__box {
	display: flex; align-items: center; gap: 6px;
	background: #fff; border-radius: 14px;
	padding: 5px 5px 5px 18px;
	box-shadow: 0 8px 40px rgba(0,0,0,.2);
	position: relative;
}
.ctm-search-overlay .ctm-search-box__icon {
	color: var(--ctm-brand, #1a252c); flex-shrink: 0; display: flex; align-items: center;
}
.ctm-search-overlay .ctm-search-input {
	flex: 1; border: none; outline: none; background: transparent;
	font-size: 1.05rem; font-family: inherit; padding: 0 8px;
	height: 52px; line-height: 52px;
	color: #111827;
}
.ctm-search-overlay .ctm-search-input::placeholder { color: #9ca3af; }
.ctm-search-overlay .ctm-search-clear {
	background: #f3f4f6; border: none; border-radius: 50%;
	width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
	cursor: pointer; color: #6b7280; flex-shrink: 0;
}
.ctm-search-overlay .ctm-search-btn {
	border-radius: 12px; height: 48px; padding: 0 22px; flex-shrink: 0; font-size: .9rem;
}
.ctm-search-overlay .ctm-search-dropdown {
	position: relative !important; top: auto !important;
	margin-top: 8px; border-radius: 12px;
	box-shadow: 0 8px 32px rgba(0,0,0,.18);
	max-height: 60vh; overflow-y: auto;
}

/* ═══════════════════════════════════════════════════════════════
   SEARCH DROPDOWN — 5 STYLE VARIANTS
   ═══════════════════════════════════════════════════════════════ */

/* ── DD Style 2: Compact List ── */
.ctm-search-dd--compact .ctm-search-dropdown {
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.ctm-search-dd--compact .ctm-search-result {
	padding: 7px 12px;
	gap: 8px;
}
.ctm-search-dd--compact .ctm-search-result__thumb,
.ctm-search-dd--compact .ctm-search-result__thumb-placeholder {
	width: 32px;
	height: 28px;
	border-radius: 4px;
}
.ctm-search-dd--compact .ctm-search-result__title {
	font-size: .82rem;
}
.ctm-search-dd--compact .ctm-search-result__meta {
	font-size: .73rem;
}

/* ── DD Style 3: Media Row ── */
.ctm-search-dd--media .ctm-search-result {
	padding: 10px 14px;
	gap: 14px;
}
.ctm-search-dd--media .ctm-search-result__thumb,
.ctm-search-dd--media .ctm-search-result__thumb-placeholder {
	width: 64px;
	height: 48px;
	border-radius: 8px;
}
.ctm-search-dd--media .ctm-search-result__title {
	font-size: .95rem;
	white-space: normal;
}

/* ── DD Style 4: Dark Theme ── */
.ctm-search-dd--dark .ctm-search-dropdown {
	background: #1d2327;
	border-color: #3c434a;
	box-shadow: 0 8px 32px rgba(0,0,0,.5);
}
.ctm-search-dd--dark .ctm-search-result {
	color: #f0f0f0;
}
.ctm-search-dd--dark .ctm-search-result:hover,
.ctm-search-dd--dark .ctm-search-result:focus,
.ctm-search-dd--dark .ctm-search-result[aria-selected="true"] {
	background: rgba(255,255,255,.07);
}
.ctm-search-dd--dark .ctm-search-result__title { color: #fff; }
.ctm-search-dd--dark .ctm-search-result__meta  { color: #9ea3a8; }
.ctm-search-dd--dark .ctm-search-result__price { color: #4ade80; }
.ctm-search-dd--dark .ctm-search-no-results    { color: #9ea3a8; }
.ctm-search-dd--dark .ctm-search-footer        { border-color: #3c434a; }
.ctm-search-dd--dark .ctm-search-view-all      { color: #4ade80; }
.ctm-search-dd--dark .ctm-search-spinner       { border-color: #3c434a; border-top-color: #4ade80; }
.ctm-search-dd--dark .ctm-search-loading       { color: #9ea3a8; }

/* ── DD Style 5: Bordered Accent ── */
.ctm-search-dd--bordered .ctm-search-dropdown {
	border-radius: 8px;
}
.ctm-search-dd--bordered .ctm-search-results {
	padding: 4px 0;
}
.ctm-search-dd--bordered .ctm-search-result {
	border-left: 3px solid transparent;
	margin: 2px 6px;
	border-radius: 6px;
	padding: 9px 10px;
}
.ctm-search-dd--bordered .ctm-search-result:hover,
.ctm-search-dd--bordered .ctm-search-result:focus,
.ctm-search-dd--bordered .ctm-search-result[aria-selected="true"] {
	border-left-color: var(--ctm-brand, #1a252c);
	background: #f0f7f3;
}

/* ═══════════════════════════════════════════════════════════════
   GALLERY BADGE OVERLAY  (top-right of first gallery image)
   ═══════════════════════════════════════════════════════════════ */
.ctm-gallery-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 11px 5px 9px;
	border-radius: 20px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1;
	pointer-events: none;
	box-shadow: 0 2px 10px rgba(0,0,0,.25);
	backdrop-filter: blur(4px);
}
.ctm-gallery-badge svg { flex-shrink: 0; opacity: .9; }

/* ── CTM link colour (uses --ctm-link = accent by default) ── */
.ctm-tour-card__title a,
.ctm-search-view-all,
.ctm-search-result__price,
.ctm-sidebar-block__tag,
.ctm-highlights-list li::before {
	color: var(--ctm-link, var(--ctm-accent, #1a252c));
}

/* ═══════════════════════════════════════════════════════════
   CTM BANNER BLOCK — [ctm_banner]
   ═══════════════════════════════════════════════════════════ */
.ctm-banner {
	position: relative;
	overflow: hidden;
	margin: 0 0 1.5rem;
	border-radius: var(--ctm-radius, 10px);
}
.ctm-banner__inner {
	position: relative;
	z-index: 1;
}

/* Padding sizes */
.ctm-banner--pad-sm .ctm-banner__inner { padding: .65rem 1.1rem; }
.ctm-banner--pad-md .ctm-banner__inner { padding: 1.2rem 1.75rem; }
.ctm-banner--pad-lg .ctm-banner__inner { padding: 2rem 2.75rem; }

/* Title sizes */
.ctm-banner--size-sm .ctm-banner__title { font-size: 1.1rem; }
.ctm-banner--size-md .ctm-banner__title { font-size: 1.5rem; }
.ctm-banner--size-lg .ctm-banner__title { font-size: 2rem; }
.ctm-banner--size-xl .ctm-banner__title { font-size: 2.75rem; }

/* Alignment */
.ctm-banner--left .ctm-banner__inner   { text-align: left; }
.ctm-banner--center .ctm-banner__inner { text-align: center; }
.ctm-banner--right .ctm-banner__inner  { text-align: right; }

.ctm-banner__title {
	margin: 0 0 .25rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
}
.ctm-banner__subtitle {
	margin: 0;
	font-weight: 400;
	line-height: 1.5;
	opacity: .85;
	font-size: .95em;
}

/* ── Template 1: gradient ── */
.ctm-banner--gradient {
	background: linear-gradient(135deg, var(--ctm-accent, #1a252c) 0%, var(--ctm-accent-dark, #0f1820) 100%);
}
.ctm-banner--gradient::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 80% 120% at 80% 50%, rgba(255,255,255,.08) 0%, transparent 65%);
}
.ctm-banner--gradient .ctm-banner__title   { color: #fff; }
.ctm-banner--gradient .ctm-banner__subtitle { color: rgba(255,255,255,.78); }

/* ── Template 2: split ── */
.ctm-banner--split {
	background: #fff;
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-left: 5px solid var(--ctm-accent, #1a252c);
	border-radius: var(--ctm-radius, 10px);
}
.ctm-banner--split .ctm-banner__title   { color: var(--ctm-accent, #1a252c); }
.ctm-banner--split .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* ── Template 3: outlined ── */
.ctm-banner--outlined {
	background: transparent;
	border: 2.5px solid var(--ctm-accent, #1a252c);
	border-radius: var(--ctm-radius, 10px);
}
.ctm-banner--outlined .ctm-banner__title   { color: var(--ctm-accent, #1a252c); }
.ctm-banner--outlined .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* ── Template 4: hero ── */
.ctm-banner--hero {
	background: var(--ctm-accent, #1a252c);
	border-radius: var(--ctm-radius, 10px);
}
.ctm-banner--hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.05) 100%);
}
.ctm-banner--hero::after {
	content: '';
	position: absolute;
	bottom: -30px;
	right: -30px;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	border: 40px solid rgba(255,255,255,.05);
	pointer-events: none;
}
.ctm-banner--hero .ctm-banner__title   { color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.3); }
.ctm-banner--hero .ctm-banner__subtitle { color: rgba(255,255,255,.82); }

/* ── Template 5: ribbon ── */
.ctm-banner--ribbon {
	background: #fff;
	border: 1px solid var(--ctm-border, #e0e6e3);
	border-radius: var(--ctm-radius, 10px);
}
.ctm-banner--ribbon::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 4px;
	background: linear-gradient(90deg, var(--ctm-accent, #1a252c), var(--ctm-accent-dark, #0f1820));
	border-radius: var(--ctm-radius, 10px) var(--ctm-radius, 10px) 0 0;
}
.ctm-banner--ribbon::after {
	content: '';
	position: absolute;
	top: 0; right: 2rem;
	width: 30px; height: 48px;
	background: var(--ctm-accent, #1a252c);
	clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
}
.ctm-banner--ribbon .ctm-banner__title   { color: var(--ctm-text, #2c3338); }
.ctm-banner--ribbon .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* ── Template 6: minimal ── */
.ctm-banner--minimal {
	background: transparent;
	border-radius: 0;
	border-bottom: 2.5px solid var(--ctm-accent, #1a252c);
}
.ctm-banner--minimal .ctm-banner__inner { padding-left: 0; padding-right: 0; padding-top: 0; }
.ctm-banner--minimal .ctm-banner__title   { color: var(--ctm-text, #2c3338); }
.ctm-banner--minimal .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* ── Template 7: glass ── */
.ctm-banner--glass {
	background: rgba(255,255,255,.68);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	backdrop-filter: blur(16px) saturate(180%);
	border: 1px solid rgba(255,255,255,.6);
	box-shadow: 0 4px 24px rgba(0,0,0,.07);
}
.ctm-banner--glass .ctm-banner__title   { color: var(--ctm-accent, #1a252c); }
.ctm-banner--glass .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* ── Template 8: boxed ── */
.ctm-banner--boxed {
	background: var(--ctm-accent, #1a252c);
}
.ctm-banner--boxed .ctm-banner__title   { color: #fff; }
.ctm-banner--boxed .ctm-banner__subtitle { color: rgba(255,255,255,.78); }

/* ── Template 9: wave ── */
.ctm-banner--wave {
	background: var(--ctm-accent, #1a252c);
	padding-bottom: 30px;
}
.ctm-banner--wave::after {
	content: '';
	position: absolute;
	bottom: -1px; left: 0; right: 0;
	height: 36px;
	background: currentColor;
	color: var(--ctm-page-bg, #fff);
	clip-path: ellipse(56% 100% at 50% 100%);
}
.ctm-banner--wave .ctm-banner__title   { color: #fff; }
.ctm-banner--wave .ctm-banner__subtitle { color: rgba(255,255,255,.8); }

/* ── Template 10: stripe ── */
.ctm-banner--stripe {
	background: var(--ctm-accent-light, #f0f4f2);
}
.ctm-banner--stripe::before {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 10px,
		rgba(0,0,0,.025) 10px,
		rgba(0,0,0,.025) 20px
	);
}
.ctm-banner--stripe::after {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 5px;
	background: var(--ctm-accent, #1a252c);
	border-radius: 10px 0 0 10px;
}
.ctm-banner--stripe .ctm-banner__title   { color: var(--ctm-accent, #1a252c); }
.ctm-banner--stripe .ctm-banner__subtitle { color: var(--ctm-text-muted, #646970); }

/* Responsive */
@media (max-width: 600px) {
	.ctm-banner--size-lg .ctm-banner__title { font-size: 1.5rem; }
	.ctm-banner--size-xl .ctm-banner__title { font-size: 2rem; }
	.ctm-banner--pad-lg .ctm-banner__inner { padding: 1.4rem 1.25rem; }
}

/* ═══════════════════════════════════════════════════════════
   CTM INCLUSIONS & EXCLUSIONS — redesigned
   ═══════════════════════════════════════════════════════════ */
/* Section heading now a direct child — resets card-level h3 */
.ctm-inex-card__title {
	font-size: .78rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
	margin: 0 !important;
	border: none !important;
	padding: 0 !important;
	line-height: 1 !important;
}

/* ═══════════════════════════════════════════════════════════
   CTM CONTACT BUTTONS — [ctm_contact_buttons] + sticky
   ═══════════════════════════════════════════════════════════ */

/* Floating sticky widget */
.ctm-contact-float {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	z-index: 9990;
	display: flex;
	flex-direction: column;
	gap: .45rem;
	align-items: flex-end;
}

.ctm-contact-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	height: 46px;
	border-radius: 23px;
	padding: 0 .75rem;
	text-decoration: none !important;
	font-size: .8rem;
	font-weight: 700;
	color: #fff !important;
	box-shadow: 0 3px 16px rgba(0,0,0,.22);
	transition: transform .2s, box-shadow .2s, max-width .25s ease, padding .25s ease;
	white-space: nowrap;
	overflow: hidden;
	max-width: 46px;
	cursor: pointer;
}
.ctm-contact-btn:hover {
	max-width: 220px;
	box-shadow: 0 6px 24px rgba(0,0,0,.28);
	transform: translateX(-4px);
}
.ctm-contact-btn__icon {
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ctm-contact-btn__label {
	flex-shrink: 0;
	white-space: nowrap;
}

/* Per-channel colors */
.ctm-contact-btn--phone    { background: var(--ctm-accent, #1a252c); }
.ctm-contact-btn--email    { background: #0073aa; }
.ctm-contact-btn--telegram { background: #229ED9; }
.ctm-contact-btn--whatsapp { background: #25D366; }

/* ── Inline shortcode base ─────────────────────────────── */
.ctm-contact-inline {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	align-items: center;
}

/* Shared button token used by all inline styles */
.ctm-cb {
	display: inline-flex;
	align-items: center;
	text-decoration: none !important;
	transition: transform .18s, box-shadow .18s, opacity .18s;
	cursor: pointer;
	gap: .5rem;
	white-space: nowrap;
	color: #fff !important;
}
.ctm-cb:hover { text-decoration: none !important; }
.ctm-cb__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ── Style 1: default — compact colorful pills with label ─ */
/* [ctm_contact_buttons] or [ctm_contact_buttons style="default"] */
.ctm-contact-style--default .ctm-cb {
	height: 40px;
	border-radius: 20px;
	padding: 0 1rem 0 .65rem;
	font-size: .8rem;
	font-weight: 700;
	box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
.ctm-contact-style--default .ctm-cb:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 18px rgba(0,0,0,.26);
}
.ctm-contact-style--default .ctm-cb__icon { width: 26px; height: 26px; }

/* ── Style 2: nav — icon-only micro buttons for top menu ── */
/* [ctm_contact_buttons style="nav"] */
.ctm-contact-style--nav {
	gap: .3rem;
}
.ctm-contact-style--nav .ctm-cb {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	padding: 0;
	justify-content: center;
	font-size: 0;
	box-shadow: none;
	opacity: .88;
}
.ctm-contact-style--nav .ctm-cb:hover {
	opacity: 1;
	transform: translateY(-1px);
}
.ctm-contact-style--nav .ctm-cb__label { display: none; }
.ctm-contact-style--nav .ctm-cb__icon { width: 30px; height: 30px; }
.ctm-contact-style--nav .ctm-cb svg   { width: 14px; height: 14px; }

/* ── Style 3: footer — medium modern cards for footer ─────── */
/* [ctm_contact_buttons style="footer"] */
.ctm-contact-style--footer {
	gap: .4rem;
	flex-wrap: wrap;
}
.ctm-contact-style--footer .ctm-cb {
	height: 36px;
	border-radius: 8px;
	padding: 0 .9rem 0 .6rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .01em;
	box-shadow: 0 2px 10px rgba(0,0,0,.15);
	border: 1px solid rgba(255,255,255,.18);
}
.ctm-contact-style--footer .ctm-cb:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 16px rgba(0,0,0,.22);
}
.ctm-contact-style--footer .ctm-cb__icon {
	width: 22px;
	height: 22px;
	background: rgba(255,255,255,.18);
	border-radius: 5px;
}
.ctm-contact-style--footer .ctm-cb svg { width: 11px; height: 11px; }

/* ── Style 4: pill — gradient modern pill buttons ──────────── */
/* [ctm_contact_buttons style="pill"] */
.ctm-contact-style--pill {
	gap: .35rem;
	flex-wrap: wrap;
}
.ctm-contact-style--pill .ctm-cb {
	height: 32px;
	border-radius: 16px;
	padding: 0 .9rem 0 .55rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	box-shadow: 0 2px 12px rgba(0,0,0,.18);
}
.ctm-contact-style--pill .ctm-cb:hover {
	transform: translateY(-1px) scale(1.03);
	box-shadow: 0 5px 16px rgba(0,0,0,.26);
}
.ctm-contact-style--pill .ctm-cb__icon {
	width: 20px;
	height: 20px;
	background: rgba(255,255,255,.22);
	border-radius: 50%;
}
.ctm-contact-style--pill .ctm-cb svg { width: 10px; height: 10px; }
.ctm-contact-style--pill .ctm-cb--phone    { background: linear-gradient(135deg, #1a252c 0%, #2e4a5c 100%); }
.ctm-contact-style--pill .ctm-cb--email    { background: linear-gradient(135deg, #0073aa 0%, #0090cc 100%); }
.ctm-contact-style--pill .ctm-cb--telegram { background: linear-gradient(135deg, #1c6fa3 0%, #229ED9 100%); }
.ctm-contact-style--pill .ctm-cb--whatsapp { background: linear-gradient(135deg, #128C7E 0%, #25D366 100%); }

/* ── Style 5: cta — large prominent call-to-action cards ─── */
/* [ctm_contact_buttons style="cta"] */
.ctm-contact-style--cta {
	gap: .5rem;
	flex-wrap: wrap;
}
.ctm-contact-style--cta .ctm-cb {
	flex: 1;
	min-width: 130px;
	height: auto;
	border-radius: 10px;
	padding: .55rem .85rem;
	gap: .5rem;
	align-items: flex-start;
	font-size: .8rem;
	box-shadow: 0 3px 14px rgba(0,0,0,.16);
	transition: transform .2s, box-shadow .2s;
}
.ctm-contact-style--cta .ctm-cb:hover {
	transform: translateY(-3px);
	box-shadow: 0 7px 20px rgba(0,0,0,.24);
}
.ctm-contact-style--cta .ctm-cb__icon {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	background: rgba(255,255,255,.2);
	border-radius: 7px;
}
.ctm-contact-style--cta .ctm-cb svg   { width: 13px; height: 13px; }
.ctm-contact-style--cta .ctm-cb__text { display: flex; flex-direction: column; gap: .1rem; }
.ctm-contact-style--cta .ctm-cb__label {
	font-size: .78rem;
	font-weight: 700;
	line-height: 1.2;
}
.ctm-contact-style--cta .ctm-cb__sub {
	font-size: .65rem;
	font-weight: 400;
	opacity: .82;
	line-height: 1.3;
}

/* Per-channel colors shared across all inline styles */
.ctm-contact-style--default .ctm-cb--phone,
.ctm-contact-style--footer  .ctm-cb--phone,
.ctm-contact-style--cta     .ctm-cb--phone    { background: var(--ctm-accent, #1a252c); }
.ctm-contact-style--default .ctm-cb--email,
.ctm-contact-style--footer  .ctm-cb--email,
.ctm-contact-style--cta     .ctm-cb--email    { background: #0073aa; }
.ctm-contact-style--default .ctm-cb--telegram,
.ctm-contact-style--footer  .ctm-cb--telegram,
.ctm-contact-style--cta     .ctm-cb--telegram { background: #229ED9; }
.ctm-contact-style--default .ctm-cb--whatsapp,
.ctm-contact-style--footer  .ctm-cb--whatsapp,
.ctm-contact-style--cta     .ctm-cb--whatsapp { background: #25D366; }

/* nav style inherits color from brand, accent slightly dimmed */
.ctm-contact-style--nav .ctm-cb--phone    { background: var(--ctm-accent, #1a252c); }
.ctm-contact-style--nav .ctm-cb--email    { background: #0073aa; }
.ctm-contact-style--nav .ctm-cb--telegram { background: #229ED9; }
.ctm-contact-style--nav .ctm-cb--whatsapp { background: #25D366; }

@media (max-width: 480px) {
	.ctm-contact-float { bottom: 1rem; right: 1rem; }
	.ctm-contact-btn   { height: 42px; max-width: 42px; }
	.ctm-contact-style--cta .ctm-cb { min-width: 100%; }
}


/* ── TourSearch widget embedded inside smart filter bar ── */
/* Hide the built-in search button; the filter bar provides its own Search <a> */
.ctm-fsb__search .ctm-search-wrap { width: 100%; }
.ctm-fsb__search .ctm-search-btn  { display: none !important; }
/* Make the embedded input fill the wrapper and match the filter bar height */
.ctm-fsb__search .ctm-search-box  { width: 100%; }
.ctm-fsb__search .ctm-search-input {
	height: 44px !important;
	line-height: 44px !important;
	border-radius: 22px !important;
	padding-left: 2.65rem !important;
}
/* Position the suggest dropdown below the search wrapper */
.ctm-fsb__search .ctm-search-dropdown {
	top: calc(100% + 6px) !important;
	left: 0 !important;
	right: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   FEATURE BLOCKS  [ctm_features]  [ctm_why_us]  [ctm_feature_block]
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Shared base ──────────────────────────────────────────────────────────── */
.ctm-fb {
	--ctm-fb-accent: var(--ctm-accent, #1a6a8a);
	box-sizing: border-box;
	width: 100%;
}
.ctm-fb__header {
	text-align: center;
	margin-bottom: 2.5rem;
}
.ctm-fb__title {
	font-size: var(--ctm-fb-title-size, clamp(1.5rem, 3vw, 2.2rem));
	font-weight: 700;
	margin: 0 0 .5rem;
	line-height: 1.2;
}
.ctm-fb__subtitle {
	font-size: 1.05rem;
	opacity: .7;
	margin: 0;
}
.ctm-fb-item__title {
	font-size: var(--ctm-fb-item-title-size, 1rem);
	font-weight: 600;
	margin: 0 0 .35rem;
	line-height: 1.3;
}
.ctm-fb-item__desc {
	font-size: var(--ctm-fb-item-desc-size, .9rem);
	line-height: 1.6;
	margin: 0;
	opacity: .8;
}

/* ── Template 1: grid ─────────────────────────────────────────────────────── */
.ctm-fb--grid .ctm-fb__body {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
.ctm-fb--grid .ctm-fb__item {
	background: #fff;
	border: 1px solid #e8edf2;
	border-radius: 14px;
	padding: 1.75rem 1.5rem;
	text-align: center;
	transition: box-shadow .2s, transform .2s;
	box-sizing: border-box;
}
.ctm-fb--grid .ctm-fb__item:hover {
	box-shadow: 0 8px 28px rgba(0,0,0,.09);
	transform: translateY(-3px);
}
.ctm-fb--grid .ctm-fb-item__icon-wrap {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--ctm-fb-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1.1rem;
	color: #fff;
}
.ctm-fb--grid .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--grid .ctm-fb-item__icon-wrap .dashicons {
	font-size: 28px !important;
	width: 28px;
	height: 28px;
	color: #fff;
	line-height: 1;
}
.ctm-fb--grid .ctm-fb-item__content { text-align: center; }

/* ── Template 2: list ─────────────────────────────────────────────────────── */
.ctm-fb--list .ctm-fb__body {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.ctm-fb--list .ctm-fb__item {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid #f0f2f5;
}
.ctm-fb--list .ctm-fb__item:last-child { border-bottom: none; }
.ctm-fb--list .ctm-fb-item__icon-wrap {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--ctm-fb-accent) 12%, transparent);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ctm-fb--list .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--list .ctm-fb-item__icon-wrap .dashicons {
	font-size: 26px !important;
	width: 26px;
	height: 26px;
	color: var(--ctm-fb-accent);
	line-height: 1;
}
.ctm-fb--list .ctm-fb-item__content { flex: 1; min-width: 0; }

/* ── Template 3: cards (gradient) ────────────────────────────────────────── */
.ctm-fb--cards .ctm-fb__body {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
.ctm-fb--cards .ctm-fb__item {
	border-radius: 16px;
	padding: 2rem 1.5rem;
	color: #fff;
	position: relative;
	overflow: hidden;
	transition: transform .2s, box-shadow .2s;
	box-sizing: border-box;
}
.ctm-fb--cards .ctm-fb__item:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 36px rgba(0,0,0,.18);
}
/* Rotating palette — 6 travel colours */
.ctm-fb--cards .ctm-fb__item:nth-child(6n+1) { background: linear-gradient(135deg,#1a6a8a,#0d4060); }
.ctm-fb--cards .ctm-fb__item:nth-child(6n+2) { background: linear-gradient(135deg,#2d7a4e,#1a4e32); }
.ctm-fb--cards .ctm-fb__item:nth-child(6n+3) { background: linear-gradient(135deg,#b06b20,#7a4510); }
.ctm-fb--cards .ctm-fb__item:nth-child(6n+4) { background: linear-gradient(135deg,#6b3d8a,#3e2060); }
.ctm-fb--cards .ctm-fb__item:nth-child(6n+5) { background: linear-gradient(135deg,#a03040,#6e1824); }
.ctm-fb--cards .ctm-fb__item:nth-child(6n+6) { background: linear-gradient(135deg,#2d6da0,#1a4270); }
.ctm-fb--cards .ctm-fb-item__icon-wrap {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: rgba(255,255,255,.18);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
}
.ctm-fb--cards .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--cards .ctm-fb-item__icon-wrap .dashicons {
	font-size: 26px !important;
	width: 26px;
	height: 26px;
	color: #fff;
	line-height: 1;
}
.ctm-fb--cards .ctm-fb-item__title  { color: #fff; }
.ctm-fb--cards .ctm-fb-item__desc   { color: rgba(255,255,255,.85); opacity: 1; }

/* ── Template 4: pills ───────────────────────────────────────────────────── */
.ctm-fb--pills .ctm-fb__body {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}
.ctm-fb--pills .ctm-fb__item {
	display: flex;
	align-items: center;
	gap: .6rem;
	background: color-mix(in srgb, var(--ctm-fb-accent) 8%, #fff);
	border: 1.5px solid color-mix(in srgb, var(--ctm-fb-accent) 25%, #e2e8f0);
	border-radius: 100px;
	padding: .55rem 1.1rem .55rem .65rem;
	cursor: default;
	transition: background .2s, border-color .2s;
}
.ctm-fb--pills .ctm-fb__item:hover {
	background: color-mix(in srgb, var(--ctm-fb-accent) 15%, #fff);
	border-color: var(--ctm-fb-accent);
}
.ctm-fb--pills .ctm-fb-item__icon-wrap {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ctm-fb-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ctm-fb--pills .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--pills .ctm-fb-item__icon-wrap .dashicons {
	font-size: 17px !important;
	width: 17px;
	height: 17px;
	color: #fff;
	line-height: 1;
}
.ctm-fb--pills .ctm-fb-item__title { font-size: .9rem; margin: 0; }
.ctm-fb--pills .ctm-fb-item__desc  { display: none; } /* hidden in pill layout */

/* ── Template 5: alt (alternating rows) ──────────────────────────────────── */
.ctm-fb--alt .ctm-fb__body {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.ctm-fb--alt .ctm-fb__item {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	padding: 1.5rem 1.75rem;
	border-radius: 14px;
	transition: background .2s;
}
.ctm-fb--alt .ctm-fb__item:nth-child(even) {
	background: color-mix(in srgb, var(--ctm-fb-accent) 5%, #f8f9fa);
	flex-direction: row-reverse;
	text-align: right;
}
.ctm-fb--alt .ctm-fb__item:hover { background: color-mix(in srgb, var(--ctm-fb-accent) 8%, #f0f4f8); }
.ctm-fb--alt .ctm-fb-item__icon-wrap {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ctm-fb-accent);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ctm-fb--alt .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--alt .ctm-fb-item__icon-wrap .dashicons {
	font-size: 26px !important;
	width: 26px;
	height: 26px;
	color: #fff;
	line-height: 1;
}
.ctm-fb--alt .ctm-fb-item__content { flex: 1; min-width: 0; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
	.ctm-fb--grid .ctm-fb__body,
	.ctm-fb--cards .ctm-fb__body { grid-template-columns: repeat(2, 1fr); }
	.ctm-fb--alt .ctm-fb__item,
	.ctm-fb--alt .ctm-fb__item:nth-child(even) {
		flex-direction: column;
		text-align: left;
	}
}
@media (max-width: 480px) {
	.ctm-fb--grid .ctm-fb__body,
	.ctm-fb--cards .ctm-fb__body { grid-template-columns: 1fr; }
	.ctm-fb--pills .ctm-fb__item { flex: 0 0 auto; }
}

/* ── Admin repeater ──────────────────────────────────────────────────────── */
.ctm-fb-items-list { display: flex; flex-direction: column; gap: .5rem; }
.ctm-fb-admin-item {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	background: #f9fafb;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: .75rem 1rem;
}
.ctm-fb-admin-item--placeholder {
	background: #edf2f7;
	border-style: dashed;
	opacity: .5;
	height: 80px;
}
.ctm-fb-admin-item__handle {
	cursor: grab;
	color: #aab;
	font-size: 20px;
	padding-top: 6px;
	flex-shrink: 0;
}
.ctm-fb-admin-item__handle:active { cursor: grabbing; }
.ctm-fb-admin-item__fields { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .4rem; }
.ctm-fb-admin-item__row {
	display: flex;
	align-items: center;
	gap: .5rem;
}
.ctm-fb-admin-item__row input { height: 32px; box-sizing: border-box; }
.ctm-fb-admin-item__icon-preview {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: #e8f0fe;
	border-radius: 6px;
	flex-shrink: 0;
	color: #1a6a8a;
}
.ctm-fb-admin-item__icon-preview .material-symbols-outlined { font-size: 18px !important; }
.ctm-fb-remove-item {
	background: none;
	border: none;
	cursor: pointer;
	color: #c53030;
	padding: 4px;
	border-radius: 6px;
	flex-shrink: 0;
	margin-top: 2px;
	opacity: .7;
	transition: opacity .15s, background .15s;
}
.ctm-fb-remove-item:hover { opacity: 1; background: #fee2e2; }
.ctm-fb-style-tiles { display: flex; flex-wrap: wrap; gap: .5rem; }


/* ── Template 6: twocol (2-column list) — default for Block 2 ─────────── */
.ctm-fb--twocol .ctm-fb__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem 2.5rem;
}
.ctm-fb--twocol .ctm-fb__item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: .25rem 0;
}
.ctm-fb--twocol .ctm-fb-item__icon-wrap {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 10px;
	background: color-mix(in srgb, var(--ctm-fb-accent) 12%, transparent);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ctm-fb--twocol .ctm-fb-item__icon-wrap .material-symbols-outlined,
.ctm-fb--twocol .ctm-fb-item__icon-wrap .dashicons {
	font-size: 24px !important;
	width: 24px;
	height: 24px;
	color: var(--ctm-fb-accent);
	line-height: 1;
}
.ctm-fb--twocol .ctm-fb-item__content { flex: 1; min-width: 0; }

@media (max-width: 640px) {
	.ctm-fb--twocol .ctm-fb__body { grid-template-columns: 1fr; gap: .75rem; }
}
