/**
 * Tourfic tour pages — ZEscapes 4-row booking layout.
 */

.single-tf_tours,
.post-type-archive-tf_tours {
	background: #fff;
}

.single-tf_tours .tf-tour-single-wrap,
.single-tf_tours .tf-single-template__one,
.single-tf_tours .tf-tour-single,
.post-type-archive-tf_tours .tf-archive-tours {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--50, 1.5rem);
	padding-right: var(--wp--preset--spacing--50, 1.5rem);
}

/* Booking funnel progress — sticky strip below fixed navigator (matches Home) */
.zescapes-tourfic-progress-wrap,
.zescapes-travel-booking .zescapes-tourfic-progress-wrap {
	position: sticky;
	top: 56px;
	z-index: 95;
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid #e5e7eb;
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
	margin: 0;
}

.zescapes-tourfic-progress-wrap .zescapes-booking-progress,
.zescapes-travel-booking .zescapes-tourfic-progress-wrap .zescapes-booking-progress {
	margin: 0 auto;
	max-width: 1200px;
	padding: 0.75rem 1.5rem;
}

.single-tf_tours .tf-post-content .zescapes-booking-progress,
.single-tf_tours .tf-post-content .zescapes-tourfic-progress-wrap {
	display: none !important;
}

.single-tf_tours .tf-tour-single-wrap,
.single-tf_tours .tf-single-template__one {
	font-family: avenir-lt-w01_35-light1475496, sans-serif;
	color: #374151;
}

/* Tourfic adds top padding for its own header; we use fixed theme navigator + progress strip */
.single-tf_tours .tf-single-template__one,
.post-type-archive-tf_tours .tf-single-template__one {
	padding-top: 0 !important;
}

/* —— 4-row layout —— */
.single-tf_tours .zescapes-tour-layout {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	width: 100%;
}

.single-tf_tours .zescapes-tour-row {
	width: 100%;
}

.single-tf_tours .zescapes-tour-row__title {
	font-family: lulo-clean-w01-one-bold, sans-serif;
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #111827;
	margin: 0 0 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px dashed #d1d5db;
}

/* Row 1 — header */
.single-tf_tours .zescapes-tour-row--header .tf-section.tf-single-head {
	padding: 0;
	margin: 0;
	border: none;
	background: transparent;
}

.single-tf_tours .zescapes-tour-row--header .tf-head-info {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.single-tf_tours .zescapes-tour-row--header .tf-head-title {
	flex: 1;
	min-width: 0;
}

.single-tf_tours .zescapes-tour-row--header .tf-head-title h1,
.single-tf_tours .tf-head-title h1 {
	font-family: lulo-clean-w01-one-bold, sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.15;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #111827;
	margin: 0.35rem 0 0;
}

.single-tf_tours .zescapes-tour-back {
	display: inline-block;
	margin-bottom: 0.5rem;
	font-size: 14px;
	color: #4caf50;
	text-decoration: none;
	font-weight: 600;
}

.single-tf_tours .zescapes-tour-back:hover {
	color: #3d9142;
	text-decoration: underline;
}

.single-tf_tours .zescapes-tour-row--header .tf-head-social {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.35rem;
}

.single-tf_tours .zescapes-tour-row--header .tf-wishlist-icon,
.single-tf_tours .zescapes-tour-row--header .tf-share .share-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	background: #fff;
	color: #111827;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.single-tf_tours .zescapes-tour-row--header .tf-wishlist-icon:hover,
.single-tf_tours .zescapes-tour-row--header .tf-share .share-toggle:hover {
	border-color: #4caf50;
	color: #4caf50;
}

.single-tf_tours .zescapes-tour-row--header .tf-wishlist-icon i,
.single-tf_tours .zescapes-tour-row--header .tf-share .share-toggle i {
	font-size: 1rem;
}

/* Row 2 — gallery + booking */
.single-tf_tours .zescapes-tour-row__grid--booking {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.9fr);
	gap: clamp(1rem, 2.5vw, 1.75rem);
	align-items: start;
}

.single-tf_tours .zescapes-tour-row__gallery {
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
	background: #f8fafc;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.single-tf_tours .zescapes-tour-row__gallery .tf-mb-30 {
	margin-bottom: 0 !important;
}

/* Gallery opens on image click — hide redundant Tourfic button */
.single-tf_tours .tf-gallery-box,
.single-tf_tours a.tf-tour-gallery,
.single-tf_tours #featured-gallery {
	display: none !important;
}

.single-tf_tours .zescapes-tour-row__gallery .tf-single-gallery__style-1,
.single-tf_tours .zescapes-tour-row__gallery .tf-hero-gallery {
	border-radius: 0;
}

.single-tf_tours .zescapes-tour-row__booking {
	position: sticky;
	top: 5.75rem;
	align-self: start;
}

.single-tf_tours .zescapes-tour-row__booking .tf-tour-booking-box {
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 1.25rem;
	background: #fff;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
	overflow: hidden;
	max-width: 100%;
	box-sizing: border-box;
}

.single-tf_tours .zescapes-tour-row__booking .tf-tour-booking-box::before {
	content: "Select your trip";
	display: block;
	margin-bottom: 1rem;
	font-family: lulo-clean-w01-one-bold, sans-serif;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #111827;
}

.single-tf_tours .zescapes-tour-row__booking .tf-tour-booking-box.zescapes-has-departure-select::before {
	content: "Choose your departure";
}

.single-tf_tours .zescapes-tour-row__booking .zescapes-departure-field.tf-field-group {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0;
	max-width: 100%;
	overflow: hidden;
}

.single-tf_tours .zescapes-tour-row__booking .zescapes-departure-field.tf-field-group > i {
	display: none;
}

.single-tf_tours .zescapes-departure-field .zescapes-departure-mount {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	box-sizing: border-box;
}

.single-tf_tours .zescapes-departure-field input[type='hidden'].tours-check-in-out,
.single-tf_tours .zescapes-departure-field input[name='check-in-out-date'][type='hidden'] {
	display: none !important;
	width: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.single-tf_tours .zescapes-departure-fixed,
.single-tf_tours .zescapes-departure-select {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0.65rem 0.85rem;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: clamp(0.78rem, 2.8vw, 0.92rem);
	line-height: 1.35;
	color: #111827;
	background: #fff;
	box-sizing: border-box;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.single-tf_tours .zescapes-departure-fixed {
	font-weight: 600;
}

.single-tf_tours .zescapes-departure-compact {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.3;
	color: #111827;
	max-width: 9rem;
}

.single-tf_tours .zescapes-tour-row__booking .tours-check-in-out {
	min-height: 48px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid #e5e7eb;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .tf_acrselection .acr-label {
	gap: 0.5rem;
	font-weight: 600;
	color: #111827;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-select {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-select input[type='number'] {
	width: 2.5rem;
	text-align: center;
	border: none;
	background: transparent;
	font-weight: 600;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-dec,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-inc,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .zescapes-acr-dec,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .zescapes-acr-inc {
	width: 2rem;
	height: 2rem;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	line-height: 2rem;
	text-align: center;
	user-select: none;
}

.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-dec.disable,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .acr-inc.disable,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .zescapes-acr-dec.disable,
.single-tf_tours .zescapes-tour-row__booking .tf-booking-person .zescapes-acr-inc.disable {
	opacity: 0.4;
	pointer-events: none;
}

/* Row 3 — features */
.single-tf_tours .zescapes-tour-features-derived {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
	margin-bottom: 0.25rem;
}

.single-tf_tours .zescapes-tour-features-derived__group {
	display: contents;
}

.single-tf_tours .zescapes-tour-features-derived__subtitle {
	grid-column: 1 / -1;
	margin: 0 0  0.35rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px dotted #cbd5e1;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #64748b;
}

.single-tf_tours .zescapes-tour-features-derived__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: contents;
}

.single-tf_tours .zescapes-feature-item {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 1rem 1.1rem;
	background: #fff;
}

.single-tf_tours .zescapes-feature-item__icon {
	flex: 0 0 2rem;
	color: #7f1d1d;
	font-size: 1.15rem;
	line-height: 1.4;
}

.single-tf_tours .zescapes-feature-item__title {
	display: block;
	font-size: 0.95rem;
	color: #111827;
	margin-bottom: 0.2rem;
}

.single-tf_tours .zescapes-feature-item__desc {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #64748b;
}

.single-tf_tours .zescapes-tour-features-panel {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.5rem;
}

.single-tf_tours .zescapes-tour-features-panel > * {
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 1rem 1.1rem;
	background: #fff;
}

.single-tf_tours .zescapes-tour-features-panel .tf-trip-info,
.single-tf_tours .zescapes-tour-features-panel > .tf-mb-56:has( .tf-trip-pricing ),
.single-tf_tours .zescapes-tour-features-panel > .tf-mb-50:has( .tf-trip-pricing ) {
	display: none !important;
}

.single-tf_tours .zescapes-tour-features-panel .tf-include-exclude-wrap,
.single-tf_tours .zescapes-tour-features-panel .tf-tour-booking-advantages {
	margin: 0;
}

/* Row 4 — details */
.single-tf_tours .zescapes-tour-details-panel {
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: clamp(1rem, 2vw, 1.5rem);
	background: #fff;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.single-tf_tours .zescapes-tour-details-panel .tf-trip-info,
.single-tf_tours .zescapes-tour-details-panel .tf-trip-pricing,
.single-tf_tours .zescapes-tour-details-panel > .tf-mb-56:has( .tf-trip-pricing ),
.single-tf_tours .zescapes-tour-details-panel > .tf-mb-50:has( .tf-trip-pricing ) {
	display: none !important;
}

.single-tf_tours .zescapes-tour-details-panel .tf-trip-description,
.single-tf_tours .zescapes-tour-details-panel .tf-mb-56,
.single-tf_tours .zescapes-tour-details-panel .tf-mb-50 {
	margin-bottom: 1.5rem !important;
}

.single-tf_tours .zescapes-tour-details-panel .tf-post-content {
	font-size: 15px;
	line-height: 1.7;
	color: #334155;
}

.single-tf_tours .tf-title.tf-section-title,
.single-tf_tours h2.tf-title {
	font-family: lulo-clean-w01-one-bold, sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #111827;
}

/* Hide duplicate pricing + reviews */
.single-tf_tours .tf-single-review-box,
.single-tf_tours a.tf-single-rating,
.single-tf_tours .tf-single-details-left .tf-trip-pricing,
.single-tf_tours .tf-tour-details-left .tf-trip-pricing,
.single-tf_tours .tf-review-wrapper,
.single-tf_tours #tf-review,
.single-tf_tours .tf-single-review__style-1,
.single-tf_tours .tf-single-template__one.tf-single-review__style-1,
.single-tf_tours #reviews,
.single-tf_tours #review_form,
.single-tf_tours .comment-respond,
.single-tf_tours #respond,
.single-tf_tours .tf-review-form {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

#tour-booking {
	scroll-margin-top: 9.25rem;
}

.single-tf_tours .tf-bottom-booking-bar,
.single-tf_tours .tf-withoutpayment-booking,
.single-tf_tours .tf-withoutpayment-booking-confirm,
.single-tf_tours #tf-tour-booking-modal {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.single-tf_tours .tf-booking-popup-btn.zescapes-book-now-loading,
.single-tf_tours .zescapes-tour-book-now.zescapes-book-now-loading {
	opacity: 0.75;
	pointer-events: none;
}

.single-tf_tours .zescapes-booking-error {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.85rem;
	border-radius: 6px;
	background: #fdecea;
	border: 1px solid #f5c2c0;
	color: #842029;
	font-size: 0.9rem;
	line-height: 1.4;
}

.single-tf_tours form.tf_tours_bottom_booking {
	display: none !important;
}

/* Buttons */
.single-tf_tours .tf-tour-single-wrap .tf-btn-primary,
.single-tf_tours .tf-tour-single-wrap .tf-booking-btn,
.single-tf_tours .tf_btn,
.single-tf_tours .tf-book-now,
.single-tf_tours .zescapes-tour-book-now,
.single-tf_tours .tf-booking-popup-btn,
.post-type-archive-tf_tours .tf-btn-primary {
	background-color: #4caf50 !important;
	border-color: #4caf50 !important;
	color: #fff !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-radius: 8px;
	width: 100%;
}

.single-tf_tours .tf-tour-single-wrap .tf-btn-primary:hover,
.single-tf_tours .tf-tour-single-wrap .tf-booking-btn:hover,
.single-tf_tours .tf_btn:hover,
.single-tf_tours .tf-book-now:hover,
.single-tf_tours .tf-booking-popup-btn:hover {
	background-color: #3d9142 !important;
	border-color: #3d9142 !important;
}

/* Footer — match Home (contact template part renders outside block theme layout on Tourfic) */
.single-tf_tours .footer-contact-block#contact,
.post-type-archive-tf_tours .footer-contact-block#contact {
	background-color: #e04836 !important;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.single-tf_tours .footer-contact-block#contact > .wp-block-group,
.post-type-archive-tf_tours .footer-contact-block#contact > .wp-block-group {
	box-sizing: border-box;
	max-width: 980px !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

.single-tf_tours .footer-contact-block#contact .wp-block-columns,
.post-type-archive-tf_tours .footer-contact-block#contact .wp-block-columns {
	flex-wrap: nowrap;
	justify-content: space-between;
}

.single-tf_tours .form-contact-footer,
.post-type-archive-tf_tours .form-contact-footer {
	max-width: 450px;
	margin-left: 20%;
	margin-right: 0;
}

.zescapes-v2-tourfic-booking-link .button.alt {
	background-color: #4caf50;
	border-color: #4caf50;
}

.zescapes-tourfic-fallback {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 1.5rem 4rem;
}

@media (max-width: 991px) {
	.single-tf_tours .zescapes-tour-row__grid--booking {
		grid-template-columns: 1fr;
	}

	.single-tf_tours .zescapes-tour-row__booking {
		position: relative;
		top: auto;
	}

	.single-tf_tours .zescapes-tour-features-panel,
	.single-tf_tours .zescapes-tour-features-derived {
		grid-template-columns: 1fr;
	}

	.single-tf_tours .zescapes-tour-row--header .tf-head-info {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 640px) {
	.single-tf_tours .zescapes-tour-row--header .tf-head-social {
		width: 100%;
		justify-content: flex-start;
	}

	.single-tf_tours .footer-contact-block#contact .wp-block-columns,
	.post-type-archive-tf_tours .footer-contact-block#contact .wp-block-columns {
		flex-wrap: wrap;
	}

	.single-tf_tours .footer-contact-block#contact .footer-ct-left,
	.post-type-archive-tf_tours .footer-contact-block#contact .footer-ct-left {
		flex: 1 1 100% !important;
		max-width: 450px !important;
		margin: 0 auto;
		width: 100% !important;
	}

	.single-tf_tours .form-contact-footer,
	.post-type-archive-tf_tours .form-contact-footer {
		margin-left: auto;
		margin-right: auto;
	}
}
