/* ==========================================================================
   FH Sections Pro — front-end design system
   Every section shares one container, one type scale, one colour system.
   ========================================================================== */

.fhs-section,
.fhs-section * {
	box-sizing: border-box;
}

.fhs-section {
	--fhs-gap: 26px;
	position: relative;
	width: 100%;
	padding-block: var(--fhs-pad, 88px);
	color: var(--fhs-body, #5b6472);
	font-size: var(--fhs-text, 16px);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

/* One container for all six sections — this is what keeps them aligned. */
.fhs-container {
	width: 100%;
	max-width: calc(var(--fhs-container, 1200px) + 40px);
	margin-inline: auto;
	padding-inline: 20px;
}

/* Consecutive sections with the same background collapse their padding a
   little so the page reads as one rhythm rather than stacked blocks. */
.fhs-stack > .fhs-section + .fhs-section {
	padding-top: calc(var(--fhs-pad, 88px) * 0.82);
}

/* --------------------------------------------------------------- Headings */

.fhs-head {
	margin-bottom: 48px;
	max-width: 720px;
}

.fhs-head.is-center {
	margin-inline: auto;
	text-align: center;
}

.fhs-head.is-left {
	margin-inline: 0;
	text-align: left;
}

.fhs-eyebrow {
	display: inline-block;
	margin-bottom: 14px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--fhs-accent-soft, #FEF9E7);
	color: var(--fhs-accent, #B8922D);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	line-height: 1.4;
}

.fhs-title {
	margin: 0;
	color: var(--fhs-heading, #111827);
	font-size: clamp(26px, 4.2vw, var(--fhs-h2, 38px));
	font-weight: 750;
	line-height: 1.16;
	letter-spacing: -0.022em;
}

.fhs-sub {
	margin: 16px 0 0;
	font-size: clamp(14px, 2vw, calc(var(--fhs-text, 16px) + 1px));
	line-height: 1.7;
	color: var(--fhs-body, #5b6472);
}

.fhs-head.is-center .fhs-sub {
	margin-inline: auto;
}

/* --------------------------------------------------------------- Primitives */

.fhs-card {
	background: var(--fhs-card, #fff);
	border: 1px solid var(--fhs-border, #e6e9ee);
	border-radius: var(--fhs-radius, 16px);
	box-shadow: var(--fhs-shadow, none);
}

.fhs-ph {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #eef1f5, #e2e7ee);
}

.fhs-empty {
	padding: 28px;
	border: 1px dashed var(--fhs-border, #e6e9ee);
	border-radius: var(--fhs-radius, 16px);
	text-align: center;
	color: var(--fhs-body);
	font-size: 14px;
}

.fhs-empty a {
	color: var(--fhs-accent, #B8922D);
	font-weight: 600;
}

.fhs-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: var(--fhs-heading, #111827);
	transition: transform .28s cubic-bezier(.2, .8, .2, 1), background-color .28s, color .28s;
}

.fhs-arrow svg {
	width: 17px;
	height: 17px;
}

/* --------------------------------------------------------------- Carousel shell */

.fhs-carousel .swiper {
	overflow: hidden;
	padding-block: 4px;
}

.fhs-carousel.is-static .swiper-wrapper {
	display: grid;
	grid-template-columns: repeat(var(--fhs-cols, 3), minmax(0, 1fr));
	gap: var(--fhs-gap);
	transform: none !important;
}

.fhs-carousel.is-static .swiper-slide {
	width: auto !important;
	margin: 0 !important;
	height: auto;
}

.fhs-carousel .swiper-slide {
	height: auto;
	display: flex;
}

.fhs-carousel .swiper-slide > * {
	width: 100%;
}

.fhs-nav {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 34px;
}

.fhs-carousel.has-nav .fhs-nav {
	display: flex;
}

.fhs-nav-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--fhs-border, #e6e9ee);
	border-radius: 50%;
	background: var(--fhs-card, #fff);
	color: var(--fhs-heading, #111827);
	cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s, transform .25s;
}

.fhs-nav-btn svg {
	width: 19px;
	height: 19px;
}

.fhs-nav-btn:hover {
	background: var(--fhs-accent, #B8922D);
	border-color: var(--fhs-accent, #B8922D);
	color: #fff;
}

.fhs-nav-btn:disabled,
.fhs-nav-btn.swiper-button-disabled {
	opacity: .35;
	cursor: default;
	transform: none;
}

.fhs-nav-btn:disabled:hover,
.fhs-nav-btn.swiper-button-disabled:hover {
	background: var(--fhs-card, #fff);
	border-color: var(--fhs-border, #e6e9ee);
	color: var(--fhs-heading, #111827);
}

.fhs-dots {
	display: flex;
	align-items: center;
	gap: 7px;
}

.fhs-dots .swiper-pagination-bullet {
	width: 7px;
	height: 7px;
	margin: 0 !important;
	border-radius: 999px;
	background: var(--fhs-border, #e6e9ee);
	opacity: 1;
	transition: width .3s, background-color .3s;
}

.fhs-dots .swiper-pagination-bullet-active {
	width: 26px;
	background: var(--fhs-accent, #B8922D);
}

/* ==========================================================================
   1 — DESTINATIONS
   ========================================================================== */

.fhs-dest-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s, border-color .35s;
}

a.fhs-dest-card:hover {
	transform: translateY(-6px);
	border-color: color-mix(in srgb, var(--fhs-accent, #B8922D) 30%, var(--fhs-border, #e6e9ee));
	box-shadow: 0 18px 40px -14px rgba(16, 24, 40, .22);
}

.fhs-dest-media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #eef1f5;
}

.fhs-dest-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}

a.fhs-dest-card:hover .fhs-dest-media img {
	transform: scale(1.06);
}

.fhs-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(6px);
	color: var(--fhs-heading, #111827);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	line-height: 1.4;
}

.fhs-dest-body {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 18px 20px 20px;
}

.fhs-dest-name {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--fhs-heading, #111827);
	font-size: calc(var(--fhs-text, 16px) + 2px);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

.fhs-dest-sub {
	flex: 1 0 100%;
	order: 3;
	margin-top: 2px;
	font-size: 13px;
	color: var(--fhs-body, #5b6472);
}

a.fhs-dest-card:hover .fhs-arrow {
	background: var(--fhs-accent, #B8922D);
	color: #fff;
	transform: translateX(3px);
}

/* ==========================================================================
   2 — DELIGHT ACCORDION
   ========================================================================== */

.fhs-delight-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 48px;
	align-items: start;
}

.fhs-delight-grid.media-left .fhs-delight-list {
	order: 2;
}

.fhs-delight-grid.media-left .fhs-delight-media {
	order: 1;
}

.fhs-delight-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.fhs-acc-item {
	background: var(--fhs-card, #fff);
	border: 1px solid var(--fhs-border, #e6e9ee);
	border-radius: calc(var(--fhs-radius, 16px) - 2px);
	overflow: hidden;
	transition: border-color .3s, box-shadow .3s, background-color .3s;
}

.fhs-acc-item.is-open {
	border-color: color-mix(in srgb, var(--fhs-accent, #B8922D) 42%, transparent);
	box-shadow: 0 10px 30px -14px color-mix(in srgb, var(--fhs-accent, #B8922D) 55%, transparent);
}

.fhs-acc-btn {
	display: flex;
	align-items: center;
	gap: 15px;
	width: 100%;
	padding: 18px 20px;
	border: 0;
	background: none;
	font: inherit;
	text-align: left;
	color: var(--fhs-heading, #111827);
	cursor: pointer;
}

.fhs-acc-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--fhs-accent-soft, #FEF9E7);
	color: var(--fhs-accent, #B8922D);
	transition: background-color .3s, color .3s;
}

.fhs-acc-ico svg {
	width: 20px;
	height: 20px;
}

.fhs-acc-item.is-open .fhs-acc-ico {
	background: var(--fhs-accent, #B8922D);
	color: #fff;
}

.fhs-acc-label {
	flex: 1 1 auto;
	min-width: 0;
	font-size: calc(var(--fhs-text, 16px) - 1px);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.45;
}

.fhs-acc-chev {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--fhs-body, #5b6472);
	transition: transform .32s cubic-bezier(.2, .8, .2, 1), color .3s;
}

.fhs-acc-chev svg {
	width: 19px;
	height: 19px;
}

.fhs-acc-item.is-open .fhs-acc-chev {
	transform: rotate(180deg);
	color: var(--fhs-accent, #B8922D);
}

.fhs-acc-panel {
	overflow: hidden;
	height: 0;
	transition: height .34s cubic-bezier(.2, .8, .2, 1);
}

.fhs-acc-panel[hidden] {
	display: block;
	height: 0;
}

.fhs-acc-inner {
	padding: 0 20px 20px 75px;
	font-size: calc(var(--fhs-text, 16px) - 1px);
}

.fhs-acc-inner > *:first-child {
	margin-top: 0;
}

.fhs-acc-inner > *:last-child {
	margin-bottom: 0;
}

.fhs-acc-inner ul {
	margin: 10px 0 0;
	padding-left: 18px;
}

.fhs-acc-inner li {
	margin-bottom: 6px;
}

.fhs-acc-inner a {
	color: var(--fhs-accent, #B8922D);
	font-weight: 600;
}

/* Inline image only used on small screens */
.fhs-acc-media-inline {
	display: none;
	margin-top: 16px;
	border-radius: calc(var(--fhs-radius, 16px) - 4px);
	overflow: hidden;
}

.fhs-acc-media-inline img {
	width: 100%;
	height: auto;
	display: block;
}

.fhs-delight-media {
	position: sticky;
	top: 24px;
}

.fhs-delight-frame {
	position: relative;
	aspect-ratio: 5 / 4;
	border-radius: calc(var(--fhs-radius, 16px) + 4px);
	overflow: hidden;
	background: #eef1f5;
	box-shadow: 0 24px 60px -22px rgba(16, 24, 40, .34);
}

.fhs-delight-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity .32s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}

.fhs-delight-frame.is-swapping .fhs-delight-img {
	opacity: 0;
	transform: scale(1.03);
}

/* ==========================================================================
   3 — FEATURE GRID
   ========================================================================== */

.fhs-feat-grid {
	display: grid;
	grid-template-columns: repeat(var(--fhs-feat-cols, 5), minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fhs-feat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 26px 16px;
	border-radius: var(--fhs-radius, 16px);
	text-align: center;
	transition: background-color .3s, transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s, border-color .3s;
}

.fhs-feat-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--fhs-accent-soft, #FEF9E7);
	color: var(--fhs-accent, #B8922D);
	transition: background-color .3s, color .3s, transform .35s cubic-bezier(.2, .8, .2, 1);
}

.fhs-feat-ico svg {
	width: 24px;
	height: 24px;
}

.fhs-feat-title {
	color: var(--fhs-heading, #111827);
	font-size: calc(var(--fhs-text, 16px) - 1px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: -0.005em;
}

.fhs-feat-desc {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--fhs-body, #5b6472);
}

.fhs-feat:hover .fhs-feat-ico {
	background: var(--fhs-accent, #B8922D);
	color: #fff;
	transform: translateY(-3px);
}

/* style variants */
.fhs-feat-grid.style-card .fhs-feat {
	background: var(--fhs-card, #fff);
	border: 1px solid var(--fhs-border, #e6e9ee);
}

.fhs-feat-grid.style-card .fhs-feat:hover {
	transform: translateY(-5px);
	box-shadow: var(--fhs-shadow, none);
	border-color: color-mix(in srgb, var(--fhs-accent, #B8922D) 32%, var(--fhs-border, #e6e9ee));
}

.fhs-feat-grid.style-tile .fhs-feat {
	background: color-mix(in srgb, var(--fhs-accent-soft, #FEF9E7) 55%, transparent);
}

.fhs-feat-grid.style-tile .fhs-feat:hover {
	background: var(--fhs-accent-soft, #FEF9E7);
	transform: translateY(-4px);
}

.fhs-feat-grid.style-bubble .fhs-feat:hover {
	background: color-mix(in srgb, var(--fhs-accent-soft, #FEF9E7) 45%, transparent);
}

/* ==========================================================================
   4 — PROMO BENTO
   ========================================================================== */

.fhs-bento {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: minmax(128px, auto);
	gap: 18px;
}

.fhs-bento-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px 26px;
	border-radius: var(--fhs-radius, 16px);
	background: var(--fhs-accent-soft, #FEF9E7);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s;
}

a.fhs-bento-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 44px -18px rgba(16, 24, 40, .28);
}

.fhs-bento-card.is-tall {
	grid-row: span 2;
}

.fhs-bento-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

.fhs-bento-title {
	color: var(--fhs-heading, #111827);
	font-size: calc(var(--fhs-text, 16px) + 3px);
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: -0.015em;
}

.fhs-bento-desc {
	font-size: 14px;
	line-height: 1.6;
	color: var(--fhs-body, #5b6472);
	max-width: 44ch;
}

a.fhs-bento-card:hover .fhs-arrow {
	transform: translateX(4px);
}

.fhs-bento-art {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	margin-top: auto;
	padding-top: 18px;
}

.fhs-bento-art img {
	width: 100%;
	max-width: 260px;
	height: auto;
	display: block;
}

/* full-bleed image card */
.fhs-bento-card.is-cover {
	justify-content: flex-end;
	min-height: 260px;
	padding: 22px;
	background: #e9edf2;
}

.fhs-bento-cover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}

a.fhs-bento-card.is-cover:hover .fhs-bento-cover {
	transform: scale(1.05);
}

.fhs-bento-scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(10, 14, 22, 0) 38%, rgba(10, 14, 22, .58) 100%);
}

.fhs-bento-card.is-cover .fhs-bento-title {
	color: #fff;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.fhs-bento-card.is-cover .fhs-bento-desc {
	color: rgba(255, 255, 255, .88);
}

.fhs-bento-pill {
	align-self: stretch;
	margin-top: 14px;
	padding: 13px 18px;
	border-radius: 999px;
	background: #fff;
	color: var(--fhs-heading, #111827);
	font-size: 14.5px;
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
	box-shadow: 0 8px 24px -10px rgba(16, 24, 40, .4);
	transition: background-color .28s, color .28s;
}

a.fhs-bento-card:hover .fhs-bento-pill {
	background: var(--fhs-accent, #B8922D);
	color: #fff;
}

/* ==========================================================================
   5 — REVIEWS
   ========================================================================== */

.fhs-review {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	height: 100%;
	margin: 0;
	padding: 30px 28px 26px;
	overflow: hidden;
}

.fhs-quote {
	position: absolute;
	top: -18px;
	right: 16px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 110px;
	line-height: 1;
	color: var(--fhs-accent-soft, #FEF9E7);
	pointer-events: none;
	user-select: none;
}

.fhs-stars {
	display: flex;
	gap: 3px;
}

.fhs-star {
	width: 17px;
	height: 17px;
	fill: #dfe4ea;
}

.fhs-star.is-on {
	fill: #f5b016;
}

.fhs-review-text {
	flex: 1 1 auto;
	margin: 0;
	font-size: calc(var(--fhs-text, 16px) - 1px);
	line-height: 1.7;
	color: var(--fhs-heading, #111827);
}

.fhs-review-text p {
	margin: 0 0 10px;
}

.fhs-review-text p:last-child {
	margin-bottom: 0;
}

.fhs-review-foot {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 18px;
	border-top: 1px solid var(--fhs-border, #e6e9ee);
}

.fhs-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--fhs-accent-soft, #FEF9E7);
	color: var(--fhs-accent, #B8922D);
}

.fhs-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fhs-avatar-ini {
	font-size: 17px;
	font-weight: 700;
	text-transform: uppercase;
}

.fhs-review-meta {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

.fhs-review-name {
	color: var(--fhs-heading, #111827);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}

.fhs-review-role {
	font-size: 13px;
	color: var(--fhs-body, #5b6472);
	line-height: 1.4;
}

.fhs-review-src {
	flex: 0 0 auto;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--fhs-accent-soft, #FEF9E7);
	color: var(--fhs-accent, #B8922D);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	white-space: nowrap;
}

/* ==========================================================================
   6 — FAQ
   ========================================================================== */

.fhs-faq-grid {
	display: grid;
	gap: 12px;
}

.fhs-faq-grid.layout-narrow {
	max-width: 860px;
	margin-inline: auto;
}

.fhs-faq-grid.layout-two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 12px 20px;
}

.fhs-faq-item {
	background: var(--fhs-card, #fff);
	border: 1px solid var(--fhs-border, #e6e9ee);
	border-radius: calc(var(--fhs-radius, 16px) - 2px);
	overflow: hidden;
	transition: border-color .3s, box-shadow .3s;
}

.fhs-faq-item.is-open {
	border-color: color-mix(in srgb, var(--fhs-accent, #B8922D) 38%, transparent);
	box-shadow: 0 10px 28px -16px rgba(16, 24, 40, .3);
}

.fhs-faq-btn {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	padding: 20px 22px;
	border: 0;
	background: none;
	font: inherit;
	text-align: left;
	color: var(--fhs-heading, #111827);
	cursor: pointer;
}

.fhs-faq-q {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.fhs-faq-cat {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--fhs-accent, #B8922D);
}

.fhs-faq-qtext {
	font-size: calc(var(--fhs-text, 16px));
	font-weight: 650;
	line-height: 1.5;
	letter-spacing: -0.008em;
}

.fhs-faq-plus {
	position: relative;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	margin-top: 1px;
	border-radius: 50%;
	background: var(--fhs-accent-soft, #FEF9E7);
	transition: background-color .3s, transform .35s cubic-bezier(.2, .8, .2, 1);
}

.fhs-faq-plus::before,
.fhs-faq-plus::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--fhs-accent, #B8922D);
	border-radius: 2px;
	transform: translate(-50%, -50%);
	transition: opacity .3s, background-color .3s;
}

.fhs-faq-plus::before {
	width: 13px;
	height: 2px;
}

.fhs-faq-plus::after {
	width: 2px;
	height: 13px;
}

.fhs-faq-item.is-open .fhs-faq-plus {
	background: var(--fhs-accent, #B8922D);
	transform: rotate(180deg);
}

.fhs-faq-item.is-open .fhs-faq-plus::before,
.fhs-faq-item.is-open .fhs-faq-plus::after {
	background: #fff;
}

.fhs-faq-item.is-open .fhs-faq-plus::after {
	opacity: 0;
}

.fhs-faq-panel {
	overflow: hidden;
	height: 0;
	transition: height .32s cubic-bezier(.2, .8, .2, 1);
}

.fhs-faq-panel[hidden] {
	display: block;
	height: 0;
}

.fhs-faq-inner {
	padding: 0 22px 22px;
	font-size: calc(var(--fhs-text, 16px) - 1px);
	line-height: 1.72;
}

.fhs-faq-inner > *:first-child {
	margin-top: 0;
}

.fhs-faq-inner > *:last-child {
	margin-bottom: 0;
}

.fhs-faq-inner a {
	color: var(--fhs-accent, #B8922D);
	font-weight: 600;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1100px) {
	.fhs-section {
		--fhs-gap: 20px;
	}

	.fhs-delight-grid {
		gap: 36px;
	}

	.fhs-feat-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.fhs-section {
		padding-block: calc(var(--fhs-pad, 88px) * 0.72);
	}

	.fhs-head {
		margin-bottom: 36px;
	}

	.fhs-delight-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.fhs-delight-grid.media-left .fhs-delight-list,
	.fhs-delight-grid.media-left .fhs-delight-media {
		order: 0;
	}

	/* On tablet/mobile the image lives inside the open panel instead. */
	.fhs-delight-media {
		display: none;
	}

	.fhs-acc-media-inline {
		display: block;
	}

	.fhs-acc-inner {
		padding-left: 20px;
	}

	.fhs-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fhs-faq-grid.layout-two {
		grid-template-columns: minmax(0, 1fr);
		max-width: 860px;
		margin-inline: auto;
	}
}

@media (max-width: 720px) {
	.fhs-container {
		padding-inline: 16px;
	}

	.fhs-section {
		padding-block: calc(var(--fhs-pad, 88px) * 0.6);
		--fhs-gap: 14px;
	}

	.fhs-head {
		margin-bottom: 28px;
		text-align: left;
	}

	.fhs-head.is-center {
		text-align: left;
	}

	.fhs-head.is-center .fhs-sub {
		margin-inline: 0;
	}

	.fhs-sub {
		margin-top: 12px;
	}

	/* Carousels take over: one card plus a peek of the next. */
	.fhs-carousel.is-static .swiper-wrapper {
		display: flex;
		gap: 0;
	}

	.fhs-nav {
		margin-top: 24px;
		justify-content: flex-start;
	}

	.fhs-nav-btn {
		display: none;
	}

	.fhs-carousel.has-nav .fhs-nav {
		display: flex;
	}

	.fhs-feat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.fhs-feat {
		padding: 20px 10px;
		gap: 10px;
	}

	.fhs-feat-ico {
		width: 48px;
		height: 48px;
	}

	.fhs-feat-ico svg {
		width: 21px;
		height: 21px;
	}

	.fhs-bento {
		grid-template-columns: minmax(0, 1fr);
		grid-auto-rows: auto;
		gap: 12px;
	}

	.fhs-bento-card.is-tall {
		grid-row: span 1;
	}

	.fhs-bento-card {
		padding: 20px 22px;
	}

	.fhs-bento-card.is-cover {
		min-height: 300px;
	}

	.fhs-acc-btn {
		padding: 16px 16px;
		gap: 12px;
	}

	.fhs-acc-ico {
		width: 36px;
		height: 36px;
		border-radius: 10px;
	}

	.fhs-acc-ico svg {
		width: 18px;
		height: 18px;
	}

	.fhs-acc-inner {
		padding: 0 16px 18px;
	}

	.fhs-faq-btn {
		padding: 17px 16px;
		gap: 12px;
	}

	.fhs-faq-inner {
		padding: 0 16px 18px;
	}

	.fhs-review {
		padding: 24px 22px 22px;
	}

	.fhs-review-src {
		display: none;
	}

	.fhs-dest-body {
		padding: 15px 16px 17px;
	}
}

@media (max-width: 420px) {
	.fhs-feat-title {
		font-size: 13.5px;
	}

	.fhs-acc-label {
		font-size: 13px;
	}
}

/* ==========================================================================
   MOTION / A11Y
   ========================================================================== */

.fhs-acc-btn:focus-visible,
.fhs-faq-btn:focus-visible,
.fhs-nav-btn:focus-visible,
.fhs-dest-card:focus-visible,
.fhs-bento-card:focus-visible {
	outline: 2px solid var(--fhs-accent, #B8922D);
	outline-offset: 3px;
	border-radius: 8px;
}

@media (prefers-reduced-motion: reduce) {
	.fhs-section *,
	.fhs-section *::before,
	.fhs-section *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}
