/*
Theme Name: WENS Travelx
Theme URI: https://wensolutions.com/themes/wens-travelx/
Template: wens-haelo
Author: WEN Solutions
Author URI: https://wensolutions.com/
Description: WENS Travelx is a modern, lightweight, and flexible WordPress child theme of WENS Haelo, specifically designed for travel agencies, tour operators, and travel businesses. With a strong emphasis on Full Site Editing (FSE), this theme provides a fully block-based WordPress experience, allowing users to design and customize every aspect of their website using native WP Travel Gutenberg blocks—eliminating the need for heavy page builders. This approach results in a fast, intuitive, and code-free website-building experience. WENS Travelx is seamlessly integrated with WP Travel, enabling easy management of trips, itineraries, pricing, and bookings directly within the WordPress block editor. The theme features a clean, conversion-focused layout, perfect for showcasing trips, destinations, and travel packages. It supports a wide range of essential WP Travel Gutenberg blocks, including Trip Grid, Trip List, Trip Search, Featured Trips, Trip Calendar, Cart Button, and Trip Video, allowing users to create engaging and interactive travel pages effortlessly. With its responsive design, SEO-friendly structure, and performance-optimized framework, WENS Travelx guarantees a smooth and consistent experience across all devices. It is an ideal solution for travel agencies, tour operators, and travel bloggers looking for a modern, scalable, and fully block-based travel website.
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, blog, portfolio
Text Domain: wens-travelx
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.9
Version: 1.0.1

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
	--wp--preset--color--primary: #0a4f66; /* Deep Ocean Blue */
	--wp--preset--color--secondary: #e67e22; /* Sunset Orange */
	--wp--preset--color--accent: #2ecc71; /* Leaf Green */
	--wp--preset--color--text-base: #333333;
	--wp--preset--color--background-base: #f9f9f9;
	--wp--preset--font-family--heading: 'Inter', sans-serif;
	--wp--preset--font-family--body: 'Roboto', sans-serif;
}

/* Defensive: PHP-rendered shortcode heroes (tp_page_hero, tp_hero_slideshow, etc.) emit
   `<!-- wp:cover -->` markup at runtime, so WordPress's block-CSS scanner — which reads the
   *saved* post_content, not the shortcode's output — can't detect core/cover is in use and
   may omit its `position: relative` from the page's trimmed inline block-library CSS. Without
   that, the cover's absolutely-positioned background image/overlay escape to the nearest
   positioned ancestor and can visually bleed over the content that follows. Restate it here
   so every hero is correctly contained regardless of what WordPress decides to inline. */
.wp-block-cover {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.wp-block-cover__image-background,
.wp-block-cover__background {
	position: absolute;
	inset: 0;
}

.site-header-bar {
	padding: 16px 24px;
	align-items: center;
	position: relative;
	z-index: 10;
	/* The logo's wordmark/swoosh render in a near-black navy, which vanished
	   against the very dark custom-color-2 bar. "secondary" is the same blue
	   family already used elsewhere in this theme's palette, just lighter and
	   more saturated — enough contrast for the logo without introducing a
	   color outside the site's existing scheme. */
	background: var(--wp--preset--color--secondary);
}

/* Home page only: header floats transparently over the hero image instead of
   sitting in a solid navy bar above it (the hero's banner-margin-top: -170px
   pulls it up to sit behind the header for exactly this overlay effect). */
body.home .site-header-bar {
	position: absolute;
	top: 24px;
	left: 0;
	right: 0;
	background: transparent;
	z-index: 20;
}

.site-header-bar .wp-block-navigation {
	margin-left: auto;
}

/* WooCommerce auto-injects a Customer Account + Mini Cart icon next to the primary
   navigation on block themes. Not wanted in the header — hidden here rather than in the
   template, since it's added dynamically and isn't part of the header.html markup itself. */
.site-header-bar [data-block-name="woocommerce/customer-account"],
.site-header-bar [data-block-name="woocommerce/mini-cart"],
.site-header-bar .wp-block-woocommerce-customer-account,
.site-header-bar .wp-block-woocommerce-mini-cart {
	display: none !important;
}

.tp-section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 14px;
	margin-bottom: 10px;
	position: relative;
}

.tp-section-eyebrow::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 64px;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--brand-red), var(--wp--preset--color--custom-color-2));
}

.tp-section-eyebrow-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--wp--preset--color--brand-red);
	color: #fff;
	flex-shrink: 0;
}

.tp-section-eyebrow-text {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--wp--preset--color--custom-color-2);
}

.wp-block-site-logo.tp-header-logo img {
	max-height: 60px;
	width: auto;
	height: auto;
}

.tp-header-brand {
	align-items: center;
	gap: 16px;
}

.tp-home-icon-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 6px;
	color: #ffffff;
	background: rgba(255, 255, 255, 0.12);
	transition: background-color 0.2s ease;
}

.tp-home-icon-link:hover,
.tp-home-icon-link:focus {
	background: var(--wp--preset--color--secondary);
}

.tp-main-nav .wp-block-navigation-item .wp-block-navigation-item__content {
	font-size: 15px;
	font-weight: 700;
	padding: 10px 18px;
	margin: 0 4px;
	color: #ffffff !important;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 6px;
	text-shadow: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.tp-main-nav .wp-block-navigation-item .wp-block-navigation-item__content:hover,
.tp-main-nav .wp-block-navigation-item .wp-block-navigation-item__content:focus {
	background: var(--wp--preset--color--custom-color-2);
	color: #ffffff !important;
}

.tp-price-badge {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	background: var(--wp--preset--color--secondary, #e67e22);
	color: #fff;
	padding: 8px 16px;
	border-radius: 6px;
	margin: 10px auto;
	font-weight: 700;
	width: fit-content;
}

.wp-block-query li.wp-block-post {
	text-align: center;
	position: relative;
}

.tp-footer > .alignwide {
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 48px !important;
}

/* Compact card grids: homepage tour grid, /tour-packages/, /visas/ archive */
.wp-block-query .wp-block-post-featured-image img {
	object-fit: cover;
}

.wp-block-query .wp-block-post-title {
	font-size: 18px !important;
	margin-top: 8px;
}

.wp-block-query .wp-block-post-excerpt {
	font-size: 13px;
}

.wp-block-query .tp-price-badge {
	padding: 5px 12px;
	margin: 6px 0;
}

.wp-block-query .tp-price-label {
	font-size: 10px;
}

.wp-block-query .tp-price-amount {
	font-size: 15px;
}

.tp-footer,
.tp-footer p {
	color: #e8ebf5;
}

.tp-footer a {
	color: #ffffff;
	text-decoration: underline;
	text-decoration-color: #ffffff66;
}

.tp-footer a:hover {
	text-decoration-color: #ffffff;
}

.tp-footer-line {
	display: flex;
	align-items: center;
	gap: 8px;
}

.tp-footer-icon {
	font-size: 15px;
	flex-shrink: 0;
}

.tp-footer .wp-block-button__link {
	color: #1a1a1a;
}

.tp-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tp-footer-links a {
	text-decoration: none;
}

.tp-footer-links a:hover {
	text-decoration: underline;
}

.tp-footer-newsletter {
	display: flex;
	max-width: 320px;
	margin: 6px 0 4px;
	border-radius: 6px;
	overflow: hidden;
}

.tp-footer-newsletter input[type="email"] {
	flex: 1;
	border: none;
	padding: 12px 14px;
	font-size: 14px;
	background: #ffffff;
	color: #1a1a1a;
}

.tp-footer-newsletter input[type="email"]:focus {
	outline: 2px solid #e63329;
	outline-offset: -2px;
}

.tp-footer-newsletter button {
	border: none;
	cursor: pointer;
	padding: 0 18px;
	background: #6d28d9;
	color: #ffffff;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tp-footer-newsletter button:hover {
	background: #5b21b6;
}

.tp-price-label {
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	opacity: 0.9;
}

.tp-price-amount {
	font-size: 18px;
}

.tp-visa-status-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 8px 16px;
}

.tp-visa-status {
	font-size: 14px;
	font-weight: 600;
}

.tp-visa-status.tp-status-active {
	color: var(--wp--preset--color--accent, #2ecc71);
}

.tp-visa-status.tp-status-other {
	color: #999;
}

.tp-requirements-toggle {
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #0a4f66);
	background: transparent;
	border: 1px solid var(--wp--preset--color--primary, #0a4f66);
	border-radius: 4px;
	padding: 4px 10px;
	cursor: pointer;
}

.tp-requirements-toggle:hover {
	background: var(--wp--preset--color--primary, #0a4f66);
	color: #fff;
}

.tp-air-ticketing-section {
	max-width: 1200px;
	margin: 0 auto;
	padding: 160px 24px 64px;
	position: relative;
	overflow: hidden;
}

.tp-air-ticketing-section::before,
.tp-air-ticketing-section::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	z-index: 0;
	pointer-events: none;
}

.tp-air-ticketing-section::before {
	width: 300px;
	height: 300px;
	top: -100px;
	left: -100px;
	background: radial-gradient(circle, rgba(230, 126, 34, 0.25), transparent 70%);
}

.tp-air-ticketing-section::after {
	width: 320px;
	height: 320px;
	bottom: -120px;
	right: -100px;
	background: radial-gradient(circle, rgba(10, 79, 102, 0.2), transparent 70%);
}

.tp-air-ticketing-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
	position: relative;
	z-index: 1;
}

@media (max-width: 781px) {
	.tp-air-ticketing-grid {
		grid-template-columns: 1fr;
	}
}

.tp-air-ticketing-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	font-size: 26px;
	margin-bottom: 16px;
	background: linear-gradient(135deg, var(--wp--preset--color--secondary, #e67e22), var(--wp--preset--color--primary, #0a4f66));
	box-shadow: 0 8px 20px rgba(230, 126, 34, 0.3);
}

.tp-air-ticketing-info h2 {
	font-size: 30px;
	margin-bottom: 16px;
	background: linear-gradient(90deg, var(--wp--preset--color--primary, #0a4f66), var(--wp--preset--color--secondary, #e67e22));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	display: inline-block;
}

.tp-air-ticketing-info p {
	font-size: 15px;
	color: #4a4a4a;
	line-height: 1.6;
}

.tp-checklist {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.tp-checklist li {
	position: relative;
	padding: 10px 16px 10px 46px;
	font-size: 15px;
	font-weight: 600;
	color: #1a1a1a;
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.tp-checklist li:nth-child(1)::before { background: var(--wp--preset--color--accent, #2ecc71); }
.tp-checklist li:nth-child(2)::before { background: var(--wp--preset--color--secondary, #e67e22); }
.tp-checklist li:nth-child(3)::before { background: var(--wp--preset--color--primary, #0a4f66); }

.tp-checklist li::before {
	content: "\2713";
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border-radius: 50%;
	color: #fff;
	font-size: 12px;
	line-height: 22px;
	text-align: center;
}

.tp-air-ticketing-form-card {
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(10, 79, 102, 0.14);
	position: relative;
	z-index: 1;
}

.tp-air-ticketing-form-header {
	background: linear-gradient(135deg, var(--wp--preset--color--primary, #0a4f66), var(--wp--preset--color--secondary, #e67e22));
	padding: 28px 32px;
}

.tp-air-ticketing-form-header h3 {
	font-size: 20px;
	margin: 0 0 6px;
	color: #ffffff;
}

.tp-air-ticketing-form-header p {
	margin: 0;
	font-size: 13px;
	color: #ffffffdd;
}

.tp-air-ticketing-form-body {
	padding: 28px 32px 32px;
}

.tp-air-ticketing-form-body .wpcf7-form-control-wrap {
	display: block;
}

.tp-air-ticketing-form-body input.wpcf7-form-control {
	border: 1.5px solid #e5e5e5 !important;
	border-radius: 10px !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.tp-air-ticketing-form-body input.wpcf7-form-control:focus {
	border-color: var(--wp--preset--color--secondary, #e67e22) !important;
	box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15);
	outline: none;
}

.tp-air-ticketing-form-body input.wpcf7-submit {
	width: 100%;
	background: linear-gradient(135deg, var(--wp--preset--color--secondary, #e67e22), var(--wp--preset--color--primary, #0a4f66)) !important;
	color: #ffffff !important;
	font-weight: 700;
	box-shadow: 0 8px 20px rgba(230, 126, 34, 0.25);
}

.tp-air-ticketing-form-body input.wpcf7-submit:hover {
	filter: brightness(1.05);
}

.tp-requirements-list {
	margin: 8px 0 0;
	padding-left: 18px;
	font-size: 13px;
	color: var(--wp--preset--color--text-base);
}

/* The mobile menu hamburger icon had no color set, so its SVG (fill: currentColor)
   defaulted to black — invisible against the dark hero image, showing as an empty box. */
.tp-main-nav .wp-block-navigation__responsive-container-open,
.tp-main-nav .wp-block-navigation__responsive-container-close {
	color: #ffffff;
}

.tp-main-nav .wp-block-navigation__responsive-container-open svg,
.tp-main-nav .wp-block-navigation__responsive-container-close svg {
	fill: currentColor;
}

/* Inside the opened mobile menu overlay (light background), keep the close icon dark
   and the same for the link items so they stay readable. */
.tp-main-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: #ffffff;
}

.tp-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: #0a4f66;
}

.tp-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #0a4f66 !important;
	text-shadow: none;
	background: transparent;
}

.tp-hero-slideshow .tp-hero-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.2s ease-in-out;
	z-index: 0;
}

.tp-hero-slideshow .tp-hero-slide.is-active {
	opacity: 1;
	z-index: 1;
}

.tp-hero-slideshow > .wp-block-cover__background {
	z-index: 2;
}

.tp-hero-slideshow > .wp-block-cover__inner-container {
	position: relative;
	z-index: 3;
}

.tp-visa-title,
.tp-visa-title a {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	text-decoration: none;
}

.tp-visa-country {
	font-size: 1em;
	font-weight: 700;
}

.tp-visa-subtitle {
	font-size: 0.7em;
	font-weight: 400;
	color: #888;
	margin-top: 2px;
}

/* /visas/ archive grid — replaces the removed core Query Loop grid, so this
   reproduces its layout/spacing manually for [tp_visa_grid]'s custom markup. */
.tp-visa-archive-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px 16px;
	margin-top: 24px;
}

@media (max-width: 781px) {
	.tp-visa-archive-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.tp-visa-archive-grid {
		grid-template-columns: 1fr;
	}
}

.tp-visa-card {
	text-align: center;
	position: relative;
}

.tp-visa-card-image-link {
	display: block;
}

.tp-visa-card-image,
.tp-visa-card-image-link img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	border-radius: 6px;
}

.tp-visa-card .tp-visa-title {
	font-size: 18px;
	margin-top: 8px;
	min-height: 54px;
}

.tp-visa-summary-card .tp-visa-country {
	font-size: 1.1em;
}

.tp-visa-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.tp-visa-modal[hidden] {
	display: none;
}

.tp-visa-modal:not([hidden]) {
	display: flex;
}

.tp-visa-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(9, 16, 87, 0.6);
}

.tp-visa-modal-panel {
	position: relative;
	background: #fff;
	border-radius: 12px;
	padding: 32px;
	max-width: 1100px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	z-index: 1;
}

.tp-visa-modal-title {
	text-align: center;
	margin-bottom: 8px;
	color: var(--wp--preset--color--custom-color-2, #0e1550);
}

.tp-visa-modal-close {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: none;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: #666;
}

.tp-visa-modal-close:hover {
	color: #000;
}

.tp-visa-modal-grid {
	margin-top: 16px;
}

.tp-requirements-modal-panel {
	max-width: 460px;
	padding: 36px 32px 32px;
}

.tp-requirements-modal-subtitle {
	text-align: center;
	color: #6b6f7d;
	font-size: 13.5px;
	margin: 0 0 24px;
}

.tp-requirements-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tp-requirements-checklist li {
	position: relative;
	padding: 12px 16px 12px 44px;
	background: #f3f4f6;
	border-radius: 10px;
	font-size: 14.5px;
	line-height: 1.4;
	color: #2b2b2b;
}

.tp-requirements-checklist li::before {
	content: "\2713";
	position: absolute;
	left: 14px;
	top: 12px;
	width: 20px;
	height: 20px;
	line-height: 20px;
	text-align: center;
	background: #e63329;
	color: #fff;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
}

.tp-religious-toggle-row {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
	margin: 24px 0;
	position: relative;
	z-index: 1;
}

.tp-religious-toggle-btn {
	padding: 12px 28px;
	border-radius: 6px;
	border: 2px solid var(--wp--preset--color--primary, #0a4f66);
	background: #fff;
	color: var(--wp--preset--color--primary, #0a4f66);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
}

.tp-religious-toggle-btn:hover,
.tp-religious-toggle-btn.is-active {
	background: var(--wp--preset--color--primary, #0a4f66);
	color: #fff;
}

.tp-religious-panel[hidden] {
	display: none;
}

.tp-religious-panel {
	margin-top: 8px;
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}

.tp-religious-panel.tp-visa-archive-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px 16px;
}

.tp-religious-panel .tp-visa-card-image {
	height: 130px;
}

.tp-religious-panel .tp-visa-card .tp-visa-title {
	font-size: 17px;
	margin-top: 8px;
}

.tp-religious-panel .tp-visa-subtitle {
	font-size: 0.75em;
}

.tp-religious-panel .tp-price-badge {
	padding: 6px 14px;
	margin: 8px auto;
}

.tp-religious-panel .tp-price-label {
	font-size: 11px;
}

.tp-religious-panel .tp-price-amount {
	font-size: 17px;
}

.tp-religious-panel .tp-visa-status-row {
	justify-content: center;
}

.tp-religious-panel .tp-requirements-list {
	padding-left: 0;
	list-style-position: inside;
}

.tp-religious-subtitle-bold {
	font-weight: 700 !important;
	color: #1a1a1a !important;
}

.tp-religious-feature-tag {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #0a4f66);
}

.tp-religious-placeholder {
	text-align: center;
	color: #888;
	padding: 24px 0;
}

/* Pagination — used by core query-pagination blocks and WP Travel's paginate_links()
   listings alike, since both output the same .page-numbers markup. */
nav[aria-label="Pagination"],
.wp-block-query-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 40px auto 0;
	padding: 14px 18px;
	max-width: fit-content;
	background: #ffffff;
	border-radius: 14px;
	box-shadow: 0 6px 24px rgba(10, 79, 102, 0.1);
}

.wp-block-query-pagination-numbers {
	display: flex;
	align-items: center;
	gap: 8px;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 8px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #0a4f66);
	background: var(--wp--preset--color--custom-color-3, #f3f4f6);
	text-decoration: none !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
}

a.page-numbers:hover {
	background: var(--wp--preset--color--secondary, #e67e22);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(230, 126, 34, 0.3);
}

.page-numbers.current {
	background: linear-gradient(135deg, var(--wp--preset--color--primary, #0a4f66), var(--wp--preset--color--secondary, #e67e22));
	color: #ffffff;
	box-shadow: 0 6px 14px rgba(10, 79, 102, 0.3);
}

.page-numbers.dots {
	background: transparent;
	color: #999;
	box-shadow: none;
}

.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 38px;
	padding: 0 16px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 700;
	color: #ffffff !important;
	background: var(--wp--preset--color--primary, #0a4f66);
	text-decoration: none !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
	filter: brightness(1.1);
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(10, 79, 102, 0.3);
}

/* Admin-only "hot favourite" heart toggle on tour_package cards — anchored to
   the featured image itself so it sits in the photo's top-right corner. */
.wp-block-post-featured-image {
	position: relative;
	overflow: hidden;
}

.tp-hot-favourite-btn {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: #bbb;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: color 0.15s ease, transform 0.15s ease;
}

.tp-hot-favourite-btn:hover {
	transform: scale(1.1);
}

.tp-hot-favourite-btn.is-active {
	color: #e63329;
}

.tp-hot-favourite-btn:disabled {
	opacity: 0.6;
	cursor: wait;
}
