/* ── Offers Loop Grid ─────────────────────────────────────────── */
.jhr-offers-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 30px;
	row-gap: 35px;
}

.jhr-offer-item[hidden],
.jhr-offer-item.is-hidden {
	display: none !important;
}

/* Equal height: every item is as tall as its grid row, and the card
   inside fills it. Nested containers are handled per template by the
   widget (inline CSS); this covers the document and top container. */
.jhr-offers-equal-yes .jhr-offer-item {
	display: flex;
	flex-direction: column;
}
.jhr-offers-equal-yes .jhr-offer-item > :not(style):not(link):not(script) {
	flex: 1 1 auto;
}
.jhr-offers-equal-yes .jhr-offer-item > .elementor {
	display: flex;
	flex-direction: column;
}
.jhr-offers-equal-yes .jhr-offer-item > .elementor > :not(style):not(link):not(script),
.jhr-offers-equal-yes .jhr-offer-item > .elementor > .e-con > .e-con-inner {
	flex: 1 1 auto;
}

.jhr-offers-grid__empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 20px 0;
}
.jhr-offers-grid__empty[hidden] {
	display: none;
}

.jhr-offers-grid__notice {
	padding: 16px;
	border: 1px dashed #caa938;
	color: #555;
	font-size: 13px;
	text-align: center;
}

/* ── Filter buttons (shared) ──────────────────────────────────
   Defaults = the shortcodes' pill buttons. Selectors are 0,2,1 so the
   Elementor kit's ".elementor-kit-N button" (0,1,1) and theme
   "[type=button]:focus" (0,2,0) can't restyle them, while the widgets'
   own style controls ({{WRAPPER}} …, 0,4,0) still override.
------------------------------------------------------------------ */
.jhr-offers-filter {
	width: 100%;
}

.jhr-offers-filter__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	max-width: 1200px;
	margin: 0 auto;
	padding: 18px 16px;
}

.jhr-offers-filter button.jhr-offers-filter__btn {
	font-family: 'Titillium Web', sans-serif;
	font-size: 12px;
	line-height: 1.2;
	font-weight: normal;
	padding: 3px 14px;
	border: 1px solid #999;
	border-radius: 30px;
	background: #fff;
	color: #999;
	cursor: pointer;
	transition: all 0.25s ease;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
}

.jhr-offers-filter button.jhr-offers-filter__btn:hover,
.jhr-offers-filter button.jhr-offers-filter__btn:focus-visible,
.jhr-offers-filter button.jhr-offers-filter__btn.is-active {
	background: #caa938;
	border-color: #caa938;
	color: #fff;
}

.jhr-offers-filter button.jhr-offers-filter__btn:focus-visible {
	outline: 2px solid #a88b1e;
	outline-offset: 2px;
}

.jhr-offers-filter .jhr-offers-filter__btn[hidden],
.jhr-offers-filter [data-dim][hidden] {
	display: none !important;
}

/* ── Network Offers Filter — [merged_offers_grid] rows ──────────── */
.jhr-nfilter__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

/* Row 1: content type (pills) */
.jhr-nfilter__row--primary {
	gap: 10px;
	margin-bottom: 6px;
}

.jhr-nfilter__row--primary:last-child {
	margin-bottom: 0;
}

/* Row 2: location (text with vertical dividers) */
.jhr-nfilter__row--secondary {
	gap: 0;
	margin-top: 0;
}

.jhr-nfilter .jhr-nfilter__row--secondary button.jhr-offers-filter__btn {
	border: none;
	border-radius: 0;
	background: transparent;
	color: #999;
	padding: 3px 14px;
	font-weight: normal;
	transition: color 0.25s ease;
	position: relative;
}

.jhr-nfilter .jhr-nfilter__row--secondary .jhr-offers-filter__btn + .jhr-offers-filter__btn::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	height: 12px;
	width: 1px;
	background: #ccc;
}

.jhr-nfilter-divider- .jhr-nfilter__row--secondary .jhr-offers-filter__btn::before {
	display: none;
}

.jhr-nfilter .jhr-nfilter__row--secondary button.jhr-offers-filter__btn.is-active {
	color: #caa938;
	font-weight: bold;
	background: transparent;
	border: none;
}

.jhr-nfilter .jhr-nfilter__row--secondary button.jhr-offers-filter__btn:hover,
.jhr-nfilter .jhr-nfilter__row--secondary button.jhr-offers-filter__btn:focus-visible {
	color: #caa938;
	background: transparent;
	border: none;
}

/* ── Network Offers Grid — built-in card (shortcode .offer-card) ── */
.jhr-offers-grid--builtin {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
}

.jhr-offers-equal-yes .jhr-offer-item > .jhr-ncard {
	flex: 1 1 auto;
}

.jhr-offers-grid .jhr-ncard {
	background: #fff;
	border: none;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.jhr-offers-grid .jhr-ncard:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
}

.jhr-ncard-lift-yes .jhr-offers-grid .jhr-ncard:hover {
	transform: translateY(-5px);
}

.jhr-offers-grid .jhr-ncard__image {
	overflow: hidden;
}

.jhr-offers-grid .jhr-ncard__image a {
	display: block;
}

.jhr-offers-grid .jhr-ncard__image img {
	width: 100%;
	max-width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
	margin: 0;
	border-radius: 0;
	transition: transform 0.3s ease;
}

.jhr-ncard-zoom-yes .jhr-offers-grid .jhr-ncard:hover .jhr-ncard__image img {
	transform: scale(1.05);
}

.jhr-offers-grid .jhr-ncard__content {
	padding: 20px;
	text-align: center;
}

.jhr-offers-grid .jhr-ncard .jhr-ncard__title {
	font-family: 'Playfair Display', serif;
	font-size: 18px;
	font-weight: 500;
	margin: 3px;
	color: #caa938;
}

.jhr-offers-grid .jhr-ncard__hotel {
	display: flex;
	align-items: center;
	justify-content: var(--jhr-ncard-justify, center);
	gap: 3px;
	font-size: 13px;
	width: 100%;
	margin-bottom: 20px;
}

.jhr-offers-grid .jhr-ncard__pin {
	flex-shrink: 0;
	fill: #caa938;
}

.jhr-offers-grid .jhr-ncard .jhr-ncard__hotel a {
	color: #555;
	text-decoration: none;
}

.jhr-offers-grid .jhr-ncard .jhr-ncard__hotel a:hover {
	color: #caa938;
}

.jhr-offers-grid .jhr-ncard__desc {
	font-size: 15px;
	color: #555;
	margin-bottom: 20px;
}

.jhr-offers-grid .jhr-ncard .jhr-ncard__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 15px 30px;
	font-size: 14px;
	font-weight: normal;
	line-height: 1;
	color: #caa938;
	background: #fff;
	border: 1px solid #caa938;
	border-radius: 4px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.jhr-offers-grid .jhr-ncard .jhr-ncard__btn:hover,
.jhr-offers-grid .jhr-ncard .jhr-ncard__btn:focus-visible {
	background: #caa938;
	color: #fff;
}

.jhr-offers-grid .jhr-ncard__btn-icon {
	display: inline-flex;
	font-size: 18px;
	margin-right: 6px;
}

.jhr-offers-grid .jhr-ncard__btn-icon svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.jhr-offers-grid__editor-summary {
	margin-top: 8px;
	font-size: 11px;
	color: #8a8a8a;
	text-align: right;
}

/* ── Featured Offers Carousel — [featured_offers_carousel] ──────── */
.jhr-fcarousel.swiper {
	width: 100%;
	position: relative;
}

/* Slides stretch to the tallest one (shortcode behaviour). */
.jhr-offers-equal-yes .jhr-fcarousel .swiper-slide {
	height: auto;
	display: flex;
	align-items: stretch;
}
.jhr-offers-equal-yes .jhr-fcarousel .swiper-slide > .jhr-offer-item {
	width: 100%;
}

.jhr-fcarousel .jhr-fcard {
	background: #fff;
	border: 1px solid #e3e3e3;
	border-radius: 7px;
	overflow: hidden;
	margin: 20px;
	min-height: 380px;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.jhr-fcarousel .jhr-fcard:hover {
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.10);
}

.jhr-fcard-lift-yes .jhr-fcarousel .jhr-fcard:hover {
	transform: translateY(-5px);
}

.jhr-fcarousel .jhr-fcard__inner {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	flex: 1 1 auto;
}

.jhr-fcard-image-left .jhr-fcarousel .jhr-fcard__inner {
	flex-direction: row-reverse;
}

.jhr-fcarousel .jhr-fcard__content,
.jhr-fcarousel .jhr-fcard__image {
	flex: 1 1 50%;
	min-width: 0;
}

.jhr-fcarousel .jhr-fcard__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 30px;
}

.jhr-fcarousel .jhr-fcard__logo img {
	display: block;
	max-height: 110px;
	width: auto;
	max-width: 100%;
	margin: 0 auto 10px;
	transition: transform 0.3s ease;
}

.jhr-fcarousel .jhr-fcard__logo img:hover {
	transform: scale(1.03);
}

.jhr-fcarousel .jhr-fcard__image a {
	display: block;
	height: 100%;
}

.jhr-fcarousel .jhr-fcard__image img {
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	border-radius: 0;
}

.jhr-fcarousel .jhr-fcard .jhr-fcard__title {
	font-family: 'Playfair Display', serif;
	font-size: 18px;
	font-weight: 500;
	margin: 3px;
	color: #caa938;
}

.jhr-fcarousel .jhr-fcard__hotel {
	display: flex;
	align-items: center;
	justify-content: var(--jhr-fcard-justify, center);
	gap: 3px;
	font-size: 13px;
	width: 100%;
	margin-bottom: 20px;
}

.jhr-fcarousel .jhr-fcard__pin {
	flex-shrink: 0;
	fill: #caa938;
}

.jhr-fcarousel .jhr-fcard .jhr-fcard__hotel a {
	color: #555;
	text-decoration: none;
}

.jhr-fcarousel .jhr-fcard .jhr-fcard__hotel a:hover {
	color: #caa938;
}

.jhr-fcarousel .jhr-fcard__desc {
	font-size: 15px;
	color: #555;
	margin-bottom: 20px;
}

.jhr-fcarousel .jhr-fcard .jhr-fcard__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 15px 30px;
	font-size: 14px;
	font-weight: normal;
	line-height: 1;
	color: #caa938;
	background: #fff;
	border: 1px solid #caa938;
	border-radius: 4px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.jhr-fcarousel .jhr-fcard .jhr-fcard__btn:hover,
.jhr-fcarousel .jhr-fcard .jhr-fcard__btn:focus-visible {
	background: #caa938;
	color: #fff;
}

.jhr-fcarousel .jhr-fcard__btn-icon {
	display: inline-flex;
	font-size: 14px;
	margin-right: 6px;
}

.jhr-fcarousel .jhr-fcard__btn-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

@media (max-width: 768px) {
	.jhr-fcarousel .jhr-fcard__inner,
	.jhr-fcard-image-left .jhr-fcarousel .jhr-fcard__inner {
		flex-direction: column;
	}
	.jhr-fcard-mobile-above .jhr-fcarousel .jhr-fcard__inner {
		flex-direction: column-reverse;
	}
	.jhr-fcarousel .jhr-fcard__content,
	.jhr-fcarousel .jhr-fcard__image {
		flex: 1 1 auto;
		width: 100%;
	}
	.jhr-fcarousel .jhr-fcard__content {
		padding: 20px;
	}
	.jhr-fcarousel .jhr-fcard__logo img {
		max-height: 80px;
	}
	.jhr-fcarousel .jhr-fcard__image img {
		height: var(--jhr-fcard-mobile-img, 250px);
	}
}

/* Pagination — the shortcode's gold dots, below the slides. */
.jhr-fcarousel.swiper > .swiper-pagination {
	position: relative;
	inset: auto;
	margin-top: var(--jhr-fc-dots-gap, 10px);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
}

.jhr-fcarousel .swiper-pagination .swiper-pagination-bullet {
	background: var(--jhr-fc-dot, #caa938);
	opacity: var(--jhr-fc-dot-opacity, 0.2);
	width: var(--jhr-fc-dot-size, 10px);
	height: var(--jhr-fc-dot-size, 10px);
	margin: 0;
}

.jhr-fcarousel .swiper-pagination .swiper-pagination-bullet-active {
	background: var(--jhr-fc-dot-active, #a88b1e);
	opacity: 1;
	width: var(--jhr-fc-dot-active-size, 13px);
	height: var(--jhr-fc-dot-active-size, 13px);
}

/* Arrows (off by default, as in the shortcode). */
.jhr-fcarousel .jhr-fcarousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
	background: transparent;
	border: 0;
	padding: 0 10px;
	font-size: 36px;
	line-height: 1;
	color: #caa938;
	cursor: pointer;
}
.jhr-fcarousel .jhr-fcarousel__arrow--prev { left: 0; }
.jhr-fcarousel .jhr-fcarousel__arrow--next { right: 0; }
.jhr-fcarousel .jhr-fcarousel__arrow.swiper-button-disabled { opacity: 0.3; cursor: default; }

/* Featured card — content layout.
   pinned (default): logo + text from the top, button pushed to the
   bottom; only the space above the button flexes, so buttons line up
   across slides (slides are equal height). */
.jhr-fcarousel .jhr-fcard__actions {
	display: flex;
	justify-content: var(--jhr-fcard-justify, center);
	width: 100%;
}
.jhr-fcard-layout-pinned .jhr-fcarousel .jhr-fcard__content,
.jhr-fcard-layout-top .jhr-fcarousel .jhr-fcard__content {
	justify-content: flex-start;
}
.jhr-fcard-layout-pinned .jhr-fcarousel .jhr-fcard__actions {
	margin-top: auto;
}

/* Featured card — button icon hover animation. */
.jhr-fcarousel .jhr-fcard__btn-icon {
	transition: transform var(--jhr-fcard-icon-dur, 300ms) var(--jhr-fcard-icon-ease, ease);
	will-change: transform;
}
.jhr-fcard-icon-anim-slide-right { --jhr-fcard-icon-to: translateX(var(--jhr-fcard-icon-dist, 4px)); }
.jhr-fcard-icon-anim-slide-left  { --jhr-fcard-icon-to: translateX(calc(-1 * var(--jhr-fcard-icon-dist, 4px))); }
.jhr-fcard-icon-anim-slide-up    { --jhr-fcard-icon-to: translateY(calc(-1 * var(--jhr-fcard-icon-dist, 4px))); }
.jhr-fcard-icon-anim-slide-down  { --jhr-fcard-icon-to: translateY(var(--jhr-fcard-icon-dist, 4px)); }
.jhr-fcard-icon-anim-grow        { --jhr-fcard-icon-to: scale(1.25); }
.jhr-fcard-icon-anim-shrink      { --jhr-fcard-icon-to: scale(0.8); }
.jhr-fcard-icon-anim-rotate      { --jhr-fcard-icon-to: rotate(var(--jhr-fcard-icon-angle, 45deg)); }

.jhr-fcard-icon-on-button .jhr-fcarousel .jhr-fcard__btn:hover .jhr-fcard__btn-icon,
.jhr-fcard-icon-on-button .jhr-fcarousel .jhr-fcard__btn:focus-visible .jhr-fcard__btn-icon,
.jhr-fcard-icon-on-card .jhr-fcarousel .jhr-fcard:hover .jhr-fcard__btn-icon {
	transform: var(--jhr-fcard-icon-to, none);
}

@keyframes jhr-fcard-icon-wobble {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-14deg); }
	40% { transform: rotate(10deg); }
	60% { transform: rotate(-6deg); }
	80% { transform: rotate(3deg); }
}
.jhr-fcard-icon-anim-wobble.jhr-fcard-icon-on-button .jhr-fcarousel .jhr-fcard__btn:hover .jhr-fcard__btn-icon,
.jhr-fcard-icon-anim-wobble.jhr-fcard-icon-on-card .jhr-fcarousel .jhr-fcard:hover .jhr-fcard__btn-icon {
	transform: none;
	animation: jhr-fcard-icon-wobble var(--jhr-fcard-icon-dur, 600ms) ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
	.jhr-fcarousel .jhr-fcard__btn-icon { transition: none; animation: none !important; transform: none !important; }
}
