/* Gold Stars, home page sections. Loads on front-page.php only. */

.gs-home { overflow-x: hidden; }

.gs-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--gs-space-4); }
.gs-section { padding: clamp(56px, 9vw, 100px) 0; position: relative; }
.gs-sec-head { text-align: center; max-width: 720px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.gs-sec-head.gs-align-start { text-align: start; margin-inline: 0; }
.gs-sec-eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--gs-gold-dark);
	margin-bottom: 0.6rem;
}
.gs-sec-title {
	font-size: clamp(1.6rem, 3.2vw, 2.4rem);
	font-weight: 800;
	color: var(--gs-navy);
	margin: 0 0 0.6rem;
	line-height: 1.2;
	letter-spacing: 0;
}
.gs-sec-sub {
	color: var(--gs-text-muted);
	font-size: 1rem;
	margin: 0 auto;
	max-width: 560px;
	line-height: 1.65;
}
.gs-divider-gold {
	width: 48px;
	height: 4px;
	background: var(--gs-gold);
	border-radius: 2px;
	margin: 0.75rem auto 1rem;
}

/* ===== HERO ===== */
.gs-hero {
	position: relative;
	padding: clamp(90px, 13vw, 160px) 0 clamp(56px, 9vw, 100px);
	overflow: hidden;
	text-align: center;
	isolation: isolate;
}
.gs-hero-bg {
	position: absolute; inset: 0; z-index: -2;
	background:
		radial-gradient(circle at 20% 30%, rgba(212, 168, 67, 0.16), transparent 45%),
		radial-gradient(circle at 80% 80%, rgba(26, 107, 122, 0.14), transparent 50%),
		linear-gradient(180deg, var(--gs-cream) 0%, color-mix(in srgb, var(--gs-gold) 14%, var(--gs-white)) 55%, color-mix(in srgb, var(--gs-cream) 86%, var(--gs-white)) 100%);
}
/* Photo variant: warm Red Sea photo under cream wash.
   Council 2026-05-01: ken-burns removed — utility default. */
.gs-hero.has-photo .gs-hero-bg {
	background: var(--gs-hero-photo, transparent) center 35% / cover no-repeat;
	animation: none;
}
.gs-hero.has-photo .gs-hero-bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
}
.gs-hero.has-photo .gs-hero-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(251, 245, 234, 0.78) 0%, rgba(255, 246, 227, 0.62) 50%, rgba(253, 248, 236, 0.92) 100%);
}

/* ============================================================
   Carousel variant: static slides + warm scrim
   Council 2026-05-01: decorative hero motion removed on home.
   ============================================================ */
.gs-hero.has-carousel { padding-top: clamp(112px, 16vw, 180px); }
.gs-hero-carousel {
	position: absolute;
	inset: 0;
	z-index: -3;
	overflow: hidden;
}
.gs-hero-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 40%;
	opacity: 0;
	transition: none;
	transform: none;
	will-change: auto;
}
.gs-hero-slide img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center 40%;
}
.gs-hero-slide.is-active {
	opacity: 1;
	animation: none;
}
/* Cream/gold/teal scrim keeps text legible */
.gs-hero-carousel-scrim {
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		radial-gradient(ellipse 900px 500px at 80% 20%, rgba(212, 168, 67, 0.25), transparent 60%),
		radial-gradient(ellipse 700px 600px at 15% 90%, rgba(26, 107, 122, 0.18), transparent 55%),
		linear-gradient(180deg, rgba(251, 245, 234, 0.82) 0%, rgba(255, 246, 227, 0.6) 45%, rgba(253, 248, 236, 0.88) 100%);
}

/* ============================================================
   Announcement ticker bar (above nav, auto-scroll)
   ============================================================ */
.gs-ticker {
	position: fixed;
	top: 0;
	inset-inline: 0;
	height: 44px;
	background: linear-gradient(90deg, var(--gs-navy, var(--gs-navy)), var(--gs-teal, var(--gs-teal)), var(--gs-navy, var(--gs-navy)));
	color: var(--gs-white);
	overflow: hidden;
	z-index: 1001;
	display: flex;
	align-items: center;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}
.gs-ticker-toggle {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-inline-end: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.08);
	color: var(--gs-white);
	cursor: pointer;
	transition: var(--gs-transition);
}
.gs-ticker-toggle:hover,
.gs-ticker-toggle:focus-visible { background: rgba(255, 255, 255, 0.18); }
.gs-ticker-track {
	display: flex;
	flex: 0 0 auto;
	width: max-content;
	min-width: 100%;
	gap: 3rem;
	white-space: nowrap;
	animation: gs-ticker-scroll 42s linear infinite;
	padding-inline-start: 3rem;
	will-change: transform;
}
@keyframes gs-ticker-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
.gs-ticker:hover .gs-ticker-track,
.gs-ticker:focus-within .gs-ticker-track,
.gs-ticker.is-paused .gs-ticker-track { animation-play-state: paused; }
.gs-ticker-track span {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}
.gs-ticker-track .bi { color: var(--gs-gold, var(--gs-gold)); font-size: 0.95rem; }
[dir="rtl"] .gs-ticker-track { animation-direction: normal; }

/* Push sticky header down to clear the fixed ticker.
   Body class `gs-has-ticker` is added by functions.php only on templates
   that render the ticker (front page), so a flat selector is robust and
   avoids relying on :has(). */
.gs-has-ticker {
	--gs-nav-offset: 114px;
	padding-top: 0 !important;
}
.gs-has-ticker .site-header {
	top: 44px !important;
}
body.admin-bar.gs-has-ticker .site-header {
	top: calc(var(--wp-admin--admin-bar--height, 32px) + 44px) !important;
}

/* ============================================================
   Hero carousel captions + progress bar
   ============================================================ */
/* Slide captions removed site-wide — they sat in a dark navy box over the
   carousel, fought with the CTAs, and offered no real information value. The
   hero's eyebrow + title + sub cover the messaging job. */
.gs-hero-captions { display: none !important; }
.gs-hero-caption {
	position: absolute;
	inset-inline-end: 0;
	bottom: 0;
	background: rgba(26, 58, 92, 0.78);
	color: var(--gs-white);
	padding: 14px 20px;
	border-radius: 14px;
	backdrop-filter: blur(8px);
	opacity: 0;
	transform: translateX(20px);
	transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
	min-width: 240px;
}
.gs-hero-caption.is-active { opacity: 1; transform: translateX(0); }
.gs-hero-caption-eyebrow {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gs-gold, var(--gs-gold));
	font-weight: 700;
	margin-bottom: 4px;
}
.gs-hero-caption-line {
	display: block;
	font-family: var(--gs-font-ar);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.gs-hero-progress {
	position: absolute;
	bottom: 0;
	inset-inline: 0;
	height: 3px;
	background: rgba(26, 58, 92, 0.12);
	z-index: 3;
}
.gs-hero-progress-bar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--gs-teal, var(--gs-teal)), var(--gs-gold, var(--gs-gold)));
	inline-size: 100%;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.2s linear;
}

@media (max-width: 768px) {
		/* On phone: strip the slide caption (overlaps CTAs), dots, trust-badge
		   pills, and "اتفرج" scroll indicator. Keep the hero clean:
	   eyebrow, title, sub, then the two primary CTAs. That's it. */
	.gs-hero-captions,
	.gs-hero-dots,
	.gs-hero-badges,
	.gs-hero-scroll { display: none !important; }

	.gs-hero {
		min-height: 560px;
		padding-top: 100px;
		padding-bottom: 2.5rem;
	}
	.gs-hero.has-carousel { padding-top: 96px; }
	.gs-hero-inner {
		padding-inline: 1.25rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}

	.gs-hero-title { font-size: clamp(1.9rem, 7.5vw, 2.4rem); line-height: 1.22; margin-bottom: 0.75rem; }
	.gs-hero-title span { display: block; margin-top: 0.35rem; }
	.gs-hero-sub   { font-size: 1rem; margin-bottom: 1.5rem; max-width: 32ch; }
	.gs-hero-eyebrow { font-size: 0.8rem; margin-bottom: 1rem; }

	.gs-hero-cta {
		width: 100%;
		max-width: 340px;
		display: flex;
		flex-direction: column;
		gap: 0.65rem;
		margin-top: 0.5rem;
	}
	.gs-hero-cta .gs-btn {
		width: 100%;
		justify-content: center;
		padding-block: 0.95rem;
		font-size: 0.98rem;
	}

	/* Turn the secondary CTA from hollow-over-photo (unreadable) to a glassy
	   pill that reads on a busy background. */
	.gs-hero-cta .gs-btn-ghost {
		background: rgba(255, 255, 255, 0.14);
		color: var(--gs-white);
		border-color: rgba(255, 255, 255, 0.5);
		backdrop-filter: blur(10px);
	}
	.gs-hero-cta .gs-btn-ghost:hover {
		background: rgba(255, 255, 255, 0.25);
		color: var(--gs-white);
	}

	}

/* ============================================================
   Wave SVG dividers between sections (decorative)
   ============================================================ */
.gs-wave-divider {
	position: relative;
	width: 100%;
	height: 40px;
	overflow: hidden;
	line-height: 0;
}
.gs-wave-divider svg {
	position: absolute;
	width: 100%;
	height: 100%;
	display: block;
}
.gs-wave-divider.flip svg { transform: scaleY(-1); }

/* ============================================================
   Service card light sweep on hover
   ============================================================ */
.gs-service-card { position: relative; overflow: hidden; }
.gs-service-card::after {
	/* Council 2026-05-01: decorative sweep removed from service tiles. */
	content: none;
}
.gs-service-card:hover::after { content: none; }

/* ============================================================
   Destination card: 3D tilt on mouse move (JS sets --gs-tilt-x/y vars)
   ============================================================ */
.gs-destination-card {
	transform: none;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.gs-destination-card:hover {
	transform: translateY(-2px);
}

/* Hero dots — click-to-slide + active indicator */
.gs-hero-dots {
	position: absolute;
	bottom: 2rem;
	inset-inline-end: 2rem;
	display: flex;
	gap: 0.55rem;
	z-index: 3;
}
.gs-hero-dot {
	width: 44px;
	height: 44px;
	border-radius: 2px;
	border: 0;
	background: transparent;
	cursor: pointer;
	padding: 0;
	display: grid;
	place-items: center;
	transition: transform 0.3s ease;
}
.gs-hero-dot::before {
	content: "";
	width: 28px;
	height: 4px;
	border-radius: 2px;
	background: rgba(26, 58, 92, 0.25);
	transition: width 0.3s ease, background 0.3s ease;
}
.gs-hero-dot:hover::before { background: rgba(26, 58, 92, 0.55); width: 34px; }
.gs-hero-dot.is-active::before { background: var(--gs-gold); width: 44px; }
.gs-hero-toggle {
	position: absolute;
	bottom: 2rem;
	inset-inline-start: 2rem;
	z-index: 4;
	inline-size: 44px;
	block-size: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(26, 58, 92, 0.18);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.86);
	color: var(--gs-navy);
	box-shadow: var(--gs-shadow-sm);
	cursor: pointer;
	backdrop-filter: blur(10px);
	transition: background-color 0.3s var(--gs-ease-out), border-color 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
}
.gs-hero-toggle:hover,
.gs-hero-toggle:focus-visible {
	background: var(--gs-white);
	border-color: var(--gs-focus-ring);
	transform: translateY(-2px);
}
@media (max-width: 768px) {
	.gs-hero-toggle {
		bottom: 1rem;
		inset-inline-start: 1rem;
	}
}
.gs-hero.has-photo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(ellipse at 20% 30%, rgba(212, 168, 67, 0.22), transparent 50%),
		radial-gradient(ellipse at 80% 70%, rgba(26, 107, 122, 0.15), transparent 55%);
	pointer-events: none;
}

/* Pulsing dot in hero eyebrow */
.gs-hero-eyebrow-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gs-gold);
	box-shadow: 0 0 0 4px rgba(212, 168, 67, 0.25);
	margin-inline-end: 0.6rem;
	vertical-align: middle;
	animation: none;
}

.gs-hero-badge-shimmer {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(212, 168, 67, 0.14), rgba(255, 255, 255, 0.8)) !important;
	border-color: rgba(212, 168, 67, 0.5) !important;
}

/* Glow pulse on primary CTA */
.gs-btn-glow {
	position: relative;
	z-index: 1;
}
.gs-btn-glow::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50px;
	background: radial-gradient(circle, rgba(212, 168, 67, 0.45), transparent 70%);
	filter: blur(16px);
	opacity: 0;
	z-index: -1;
	transition: opacity 0.4s ease;
}
.gs-btn-glow:hover::after { opacity: 1; }

/* Stat count-up: value appears only after JS has started animation */
.gs-trust-num[data-count] { transition: color 0.3s ease; }
.gs-trust-num.is-counting { color: var(--gs-gold-dark); }
.gs-hero-wash {
	position: absolute; inset: 0; z-index: -1;
	background-image:
		radial-gradient(1px 1px at 25% 20%, rgba(26, 58, 92, 0.06), transparent 2px),
		radial-gradient(1px 1px at 75% 65%, rgba(212, 168, 67, 0.12), transparent 2px),
		radial-gradient(1px 1px at 45% 85%, rgba(26, 107, 122, 0.08), transparent 2px);
	background-size: 140px 140px;
	animation: none;
	opacity: 0.6;
}

.gs-hero-inner { max-width: 820px; margin: 0 auto; padding: 0 var(--gs-space-4); position: relative; }
.gs-hero-eyebrow {
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 2px;
	color: var(--gs-gold-dark);
	margin-bottom: 1rem;
	text-transform: uppercase;
}
.gs-hero-title {
	font-size: clamp(2rem, 5vw, 3.4rem);
	font-weight: 800;
	color: var(--gs-navy);
	line-height: 1.15;
	margin: 0 0 1.1rem;
	letter-spacing: 0;
}
.gs-hero-title span {
	display: block;
	color: var(--gs-teal);
	margin-top: 0.3rem;
}
.gs-hero-sub {
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	color: var(--gs-ink-70, rgba(26, 26, 46, 0.72));
	margin: 0 auto 1.5rem;
	max-width: 560px;
	line-height: 1.65;
}
.gs-hero-badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 1.75rem;
}
.gs-hero-badges span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(26, 58, 92, 0.08);
	color: var(--gs-navy);
	padding: 0.4rem 0.9rem;
	border-radius: 50px;
	font-size: 0.8rem;
	font-weight: 600;
	backdrop-filter: blur(6px);
}
.gs-hero-badges .bi { color: var(--gs-gold-dark); }
.gs-hero-cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.85rem;
}
.gs-hero-scroll {
	position: absolute;
	bottom: 1.5rem;
	inset-inline-start: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	color: var(--gs-text-muted);
	font-size: 0.75rem;
	letter-spacing: 1px;
	animation: none;
	z-index: 1;
}

/* ===== CALCULATOR section (host) ===== */
.gs-section-calc { background: linear-gradient(180deg, var(--gs-white) 0%, var(--gs-cream) 100%); }

/* ===== SERVICES GRID ===== */
.gs-services-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.25rem;
}
.gs-service-card {
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	border-radius: var(--gs-radius-lg, 16px);
	padding: 1.75rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	transition: border-color 0.3s var(--gs-ease-out), box-shadow 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
	position: relative;
	overflow: hidden;
}
/* Side stripe removed (absolute-ban hygiene). Hover now signals via radial bloom
   on the icon bg + lift + gold border. No more decorative 4px teal→gold stripe. */
.gs-service-card:hover {
	border-color: var(--gs-gold);
	transform: translateY(-6px);
	box-shadow: 0 16px 40px rgba(26, 58, 92, 0.12);
}
.gs-service-card:hover .gs-service-icon {
	background: var(--gs-gold);
	color: var(--gs-navy);
	transform: scale(1.08) rotate(-4deg);
}
.gs-service-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: rgba(26, 107, 122, 0.08);
	color: var(--gs-teal);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	transition: background-color 0.3s var(--gs-ease-out), color 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
	margin-bottom: 0.4rem;
}
.gs-service-card:hover .gs-service-icon {
	background: var(--gs-gold);
	color: var(--gs-navy);
	transform: scale(1.08) rotate(-5deg);
}
.gs-service-card h3 {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gs-navy);
	margin: 0;
}
.gs-service-card p {
	font-size: 0.92rem;
	color: var(--gs-text-muted);
	margin: 0;
	line-height: 1.7;
	flex: 1;
}
.gs-service-link {
	margin-top: 0.6rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--gs-teal);
	font-size: 0.88rem;
	font-weight: 700;
	transition: color 0.3s var(--gs-ease-out);
}
.gs-service-link:hover { color: var(--gs-gold-dark); }

/* ===== HONEYMOON ===== */
.gs-section-honeymoon { background: linear-gradient(180deg, color-mix(in srgb, var(--gs-gold) 14%, var(--gs-white)) 0%, var(--gs-white) 100%); }
.gs-honeymoon-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}
.gs-honeymoon-card {
	background: var(--gs-white);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(26, 58, 92, 0.1);
	transition: border-color 0.3s var(--gs-ease-out), box-shadow 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(212, 168, 67, 0.15);
}
.gs-honeymoon-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 44px rgba(26, 58, 92, 0.16);
	border-color: var(--gs-gold);
}
.gs-honeymoon-img {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: linear-gradient(135deg, var(--gs-teal), var(--gs-navy));
	position: relative;
}
.gs-honeymoon-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--gs-ease-out); }
.gs-honeymoon-card:hover .gs-honeymoon-img img { transform: scale(1.06); }
.gs-honeymoon-img-fallback { display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, 0.4); font-size: 3rem; }
.gs-honeymoon-body { padding: 1.4rem; display: flex; flex-direction: column; gap: 0.45rem; flex: 1; }
.gs-honeymoon-badge {
	align-self: flex-start;
	background: var(--gs-gold);
	color: var(--gs-navy);
	padding: 0.25rem 0.75rem;
	border-radius: 50px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.5px;
}
.gs-honeymoon-city {
	font-size: 0.78rem;
	color: var(--gs-text-muted);
	font-weight: 600;
}
.gs-honeymoon-card h4 { font-size: 1.15rem; font-weight: 800; color: var(--gs-navy); margin: 0; }
.gs-honeymoon-stars { color: var(--gs-gold-dark); letter-spacing: 2px; font-size: 0.95rem; }
.gs-honeymoon-meta { font-size: 0.82rem; color: var(--gs-text-muted); margin: 0; }
.gs-honeymoon-price {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--gs-teal);
	margin: 0.3rem 0;
}
.gs-honeymoon-card .gs-btn-wa { width: 100%; justify-content: center; margin-top: auto; }

/* ===== TRUST ===== */
.gs-section-trust { background: var(--gs-white); }
.gs-trust-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
}
@media (min-width: 768px) {
	.gs-trust-grid { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
}
.gs-trust-card {
	background: linear-gradient(180deg, var(--gs-white), var(--gs-cream));
	border: 1px solid var(--gs-border-light);
	border-radius: 18px;
	padding: 1.75rem 1rem;
	text-align: center;
	transition: border-color 0.3s var(--gs-ease-out), box-shadow 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
	box-shadow: 0 4px 16px rgba(26, 58, 92, 0.06);
}
.gs-trust-card:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(26, 58, 92, 0.1); border-color: var(--gs-gold); }
.gs-trust-num {
	font-size: clamp(1.8rem, 3.5vw, 2.5rem);
	font-weight: 800;
	color: var(--gs-gold-dark);
	line-height: 1;
	letter-spacing: 0;
}
.gs-trust-lbl {
	font-size: 0.85rem;
	color: var(--gs-text-muted);
	font-weight: 600;
	margin-top: 0.5rem;
}
.gs-trust-badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
}
.gs-trust-badges span {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	padding: 0.5rem 1rem;
	border-radius: 50px;
	font-size: 0.82rem;
	color: var(--gs-navy);
	font-weight: 600;
}
.gs-trust-badges .bi { color: var(--gs-gold-dark); }

/* ===== DESTINATIONS ===== */
.gs-section-destinations { background: linear-gradient(180deg, var(--gs-white), var(--gs-cream)); }
.gs-destinations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}
.gs-destination-card {
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	border-radius: 16px;
	overflow: hidden;
	transition: border-color 0.35s var(--gs-ease-out), box-shadow 0.35s var(--gs-ease-out), transform 0.35s var(--gs-ease-out);
	color: inherit;
	text-decoration: none;
	display: block;
}
.gs-destination-card:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(26, 58, 92, 0.12); border-color: var(--gs-gold); }
.gs-destination-card img,
.gs-destination-ph {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: linear-gradient(135deg, var(--gs-teal) 0%, var(--gs-navy) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.5);
	font-size: 2.5rem;
}
.gs-destination-body { padding: 1.1rem 1rem; }
.gs-destination-body h4 { font-size: 1.05rem; color: var(--gs-navy); margin: 0 0 0.3rem; font-weight: 700; }
.gs-destination-body p { font-size: 0.82rem; color: var(--gs-text-muted); margin: 0; line-height: 1.55; }

/* ===== LEADERSHIP ===== */
.gs-section-leadership { background: var(--gs-white); }
.gs-leadership-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
	background: linear-gradient(135deg, var(--gs-cream) 0%, var(--gs-white) 100%);
	border: 1px solid var(--gs-border-light);
	border-radius: 24px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	box-shadow: 0 8px 32px rgba(26, 58, 92, 0.08);
}
@media (min-width: 900px) {
	.gs-leadership-wrap { grid-template-columns: 2fr 3fr; gap: 3rem; }
}
.gs-leadership-photo {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: linear-gradient(135deg, var(--gs-teal), var(--gs-navy));
	box-shadow: 6px 6px 0 var(--gs-gold);
	transform: rotate(-1.2deg);
	transition: transform 0.4s var(--gs-ease-out);
}
.gs-leadership-photo:hover { transform: rotate(-0.4deg); }
.gs-leadership-photo img { width: 100%; height: 100%; object-fit: cover; }
.gs-leadership-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.35);
	font-size: 5rem;
}
.gs-leadership-body h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin: 0.3rem 0 0.25rem; color: var(--gs-navy); }
.gs-leadership-role {
	color: var(--gs-teal);
	font-weight: 700;
	margin: 0 0 1rem;
}
.gs-leadership-quote {
	font-size: 1.15rem;
	font-style: italic;
	color: var(--gs-navy);
	border: 1px solid color-mix(in oklch, var(--gs-gold) 45%, var(--gs-border-light));
	border-radius: var(--gs-radius-sm);
	background: color-mix(in oklch, var(--gs-gold) 8%, var(--gs-white));
	padding: 0.9rem 1rem;
	margin: 0 0 1rem;
	line-height: 1.5;
}
.gs-leadership-body p {
	color: var(--gs-text-muted);
	line-height: 1.7;
	margin: 0 0 1.25rem;
}
.gs-leadership-awards {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.gs-leadership-awards span {
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	padding: 0.4rem 0.8rem;
	border-radius: 50px;
	font-size: 0.82rem;
	color: var(--gs-navy);
	font-weight: 600;
}

/* ===== REVIEWS ===== */
.gs-section-reviews { background: linear-gradient(180deg, var(--gs-cream) 0%, var(--gs-white) 100%); }
.gs-reviews-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}
.gs-review-card {
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	border-radius: 16px;
	padding: 1.75rem 1.5rem;
	box-shadow: 0 4px 16px rgba(26, 58, 92, 0.06);
	transition: border-color 0.3s var(--gs-ease-out), box-shadow 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
	position: relative;
}
.gs-review-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(26, 58, 92, 0.1); border-color: var(--gs-gold); }
.gs-review-stars { color: var(--gs-gold-dark); letter-spacing: 3px; font-size: 1rem; margin-bottom: 0.75rem; }
.gs-review-body { color: var(--gs-ink, var(--gs-ink)); line-height: 1.7; font-size: 0.95rem; margin: 0 0 1rem; }
.gs-review-author {
	color: var(--gs-text-muted);
	font-size: 0.88rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.gs-review-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	border: 1px solid var(--gs-border-light);
}
.gs-review-relative { font-weight: 500; opacity: 0.75; }
.gs-review-source {
	display: inline-flex;
	align-items: center;
	margin-inline-start: auto;
	opacity: 0.85;
}
.gs-reviews-cta { text-align: center; margin-top: 1rem; }

/* ===== PARTNERS (infinite marquee) ===== */
.gs-section-partners { background: var(--gs-white); padding: 48px 0; overflow: hidden; }
.gs-partners-label {
	text-align: center;
	font-size: 0.8rem;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--gs-text-muted);
	margin: 0 0 1.25rem;
}
.gs-marquee {
	position: relative;
	overflow: hidden;
	padding-inline-start: 52px;
	mask-image: linear-gradient(90deg, transparent, var(--gs-ink) 8%, var(--gs-ink) 92%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, var(--gs-ink) 8%, var(--gs-ink) 92%, transparent);
}
.gs-marquee-toggle {
	position: absolute;
	inset-inline-start: 0;
	top: 50%;
	z-index: 2;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gs-border-light);
	border-radius: 50%;
	background: var(--gs-white);
	color: var(--gs-navy);
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: var(--gs-shadow-sm);
	transition: var(--gs-transition);
}
.gs-marquee-toggle:hover,
.gs-marquee-toggle:focus-visible {
	background: var(--gs-navy);
	color: var(--gs-white);
}
.gs-marquee-track {
	display: flex;
	width: max-content;
	animation: none;
}
.gs-marquee:hover .gs-marquee-track,
.gs-marquee:focus-within .gs-marquee-track,
.gs-marquee.is-paused .gs-marquee-track { animation-play-state: paused; }
.gs-marquee-group {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	padding-inline-start: 2.5rem;
	flex-shrink: 0;
}
.gs-marquee-group span {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--gs-navy);
	opacity: 0.65;
	letter-spacing: 0.5px;
	transition: opacity 0.3s ease, color 0.3s ease;
	white-space: nowrap;
}
.gs-marquee-group span:hover { opacity: 1; color: var(--gs-gold-dark); }
[dir="rtl"] .gs-marquee-track { animation-direction: normal; }

/* ===== NEWSLETTER ===== */
.gs-section-newsletter { background: linear-gradient(135deg, var(--gs-navy) 0%, var(--gs-teal) 100%); color: var(--gs-white); padding: clamp(48px, 7vw, 72px) 0; }
.gs-newsletter-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: center;
}
@media (min-width: 768px) { .gs-newsletter-wrap { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
.gs-newsletter-body h2 { color: var(--gs-white); font-size: clamp(1.4rem, 2.2vw, 1.85rem); margin: 0 0 0.5rem; }
.gs-newsletter-body p { color: rgba(255, 255, 255, 0.86); margin: 0; line-height: 1.65; }
.gs-newsletter-form {
	display: flex;
	gap: 0.5rem;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50px;
	padding: 0.35rem;
	backdrop-filter: blur(8px);
}
.gs-newsletter-form input {
	flex: 1;
	background: transparent;
	border: 0;
	color: var(--gs-white);
	padding: 0.65rem 1rem;
	font-size: 0.95rem;
	font-family: inherit;
	outline: none;
}
.gs-newsletter-form input:focus-visible {
	outline: 3px solid var(--gs-white);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(26, 58, 92, 0.72);
	border-radius: var(--gs-radius-sm);
}
.gs-newsletter-form input::placeholder { color: rgba(255, 255, 255, 0.78); }
.gs-newsletter-form .gs-btn { padding: 0.6rem 1.2rem; font-size: 0.88rem; }
@media (max-width: 420px) {
	.gs-newsletter-form {
		flex-direction: column;
		border-radius: 18px;
		padding: 0.55rem;
	}
	.gs-newsletter-form input {
		width: 100%;
		text-align: center;
	}
	.gs-newsletter-form .gs-btn {
		width: 100%;
		justify-content: center;
	}
}
.gs-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

/* ===== CTA BAND ===== */
.gs-section-cta {
	background:
		radial-gradient(circle at 15% 30%, rgba(212, 168, 67, 0.18), transparent 50%),
		radial-gradient(circle at 85% 70%, rgba(26, 107, 122, 0.12), transparent 50%),
		linear-gradient(180deg, var(--gs-cream) 0%, var(--gs-white) 100%);
}
.gs-cta-wrap {
	text-align: center;
	max-width: 680px;
	margin: 0 auto;
	padding: 1rem;
}
.gs-cta-wrap h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); color: var(--gs-navy); margin: 0 0 0.6rem; }
.gs-cta-wrap p { color: var(--gs-text-muted); font-size: 1.05rem; margin: 0 0 1.75rem; }
.gs-cta-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.85rem; }

.gs-btn-ghost-light {
	background: transparent;
	color: var(--gs-navy);
	border: 2px solid var(--gs-navy);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.8rem 2rem;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.95rem;
	transition: background-color 0.3s var(--gs-ease-out), color 0.3s var(--gs-ease-out), transform 0.3s var(--gs-ease-out);
}
.gs-btn-ghost-light:hover {
	background: var(--gs-navy);
	color: var(--gs-white);
	transform: translateY(-2px);
}

/* ===== Chevron replacing arrow icons (consistent RTL chevron) ===== */
.gs-chev {
	display: inline-block;
	font-family: "Noto Kufi Arabic", sans-serif;
	font-weight: 700;
	font-size: 0.88em;
	line-height: 1;
	transform: scaleX(-1); /* In RTL, chevron points inward */
	transition: transform 0.3s var(--gs-ease-out);
}
[dir="ltr"] .gs-chev { transform: scaleX(1); }
a:hover .gs-chev, button:hover .gs-chev { transform: scaleX(-1) translateX(3px); }
[dir="ltr"] a:hover .gs-chev, [dir="ltr"] button:hover .gs-chev { transform: scaleX(1) translateX(3px); }

/* ===== Skeleton shimmer for match cards (loading state) ===== */
.gs-match-card-skel {
	background: var(--gs-white);
	border: 1px solid var(--gs-border-light);
	border-radius: 14px;
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	overflow: hidden;
	position: relative;
}
.gs-match-card-skel::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, transparent 30%, rgba(212, 168, 67, 0.18) 50%, transparent 70%);
	transform: translateX(-100%);
	/* Council 2026-05-01: earned (interaction feedback — loading). */
	animation: gs-shimmer-skel 1.4s ease-in-out infinite;
}
.gs-skel-line {
	height: 14px;
	border-radius: 7px;
	background: linear-gradient(90deg, var(--gs-border-light), color-mix(in srgb, var(--gs-sand) 82%, var(--gs-white)), var(--gs-border-light));
	background-size: 200% 100%;
	/* Council 2026-05-01: earned (interaction feedback — loading). */
	animation: gs-skel-bg 1.5s ease-in-out infinite;
}
.gs-skel-line.short { width: 40%; }
.gs-skel-line.mid   { width: 65%; }
.gs-skel-line.long  { width: 90%; }
@keyframes gs-shimmer-skel { to { transform: translateX(100%); } }
@keyframes gs-skel-bg {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* ===== Hover motion hints on repeated cards ===== */
@media (prefers-reduced-motion: no-preference) {
	.gs-package-card,
	.gs-pkg-card,
	.gs-archive-story-card,
	.gs-honeymoon-card,
	.gs-service-card,
	.gs-destination-card {
		transition: transform 250ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 250ms cubic-bezier(0.22, 1, 0.36, 1), border-color 250ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.gs-package-card img,
	.gs-pkg-card img,
	.gs-archive-story-card img,
	.gs-honeymoon-card img,
	.gs-service-card img,
	.gs-destination-card img {
		transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.gs-package-card:hover,
	.gs-pkg-card:hover,
	.gs-archive-story-card:hover,
	.gs-honeymoon-card:hover,
	.gs-service-card:hover,
	.gs-destination-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 16px 32px rgba(26, 37, 64, 0.12);
		will-change: transform;
	}

	.gs-package-card:hover img,
	.gs-pkg-card:hover img,
	.gs-archive-story-card:hover img,
	.gs-honeymoon-card:hover img,
	.gs-service-card:hover img,
	.gs-destination-card:hover img {
		transform: scale(1.03);
	}
}

.gs-trust-card { position: relative; overflow: hidden; }
.gs-trust-card::before {
	content: "";
	position: absolute;
	top: -50%;
	inset-inline-end: -50%;
	width: 180px;
	height: 180px;
	background: radial-gradient(circle, rgba(212, 168, 67, 0.15), transparent 70%);
	border-radius: 50%;
	transform: translate(18%, -18%) scale(0.56);
	transition: transform 0.6s var(--gs-ease-out);
	pointer-events: none;
}
.gs-trust-card:hover::before { transform: translate(0, 0) scale(1); }

/* Static gold divider. */
.gs-divider-gold { position: relative; overflow: visible; }
.gs-divider-gold::after {
	content: "";
	position: absolute;
	top: 0; inset-inline-start: 0;
	width: 30%;
	height: 100%;
	background: linear-gradient(90deg, var(--gs-teal), var(--gs-gold));
	border-radius: inherit;
}

/* ===== Subtle vignette on hero when slides cross-fade ===== */
.gs-hero.has-carousel::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center, transparent 60%, rgba(26, 58, 92, 0.08) 100%);
	pointer-events: none;
	z-index: 2;
}

/* ===== Stagger reveals ===== */
.gs-section .gs-fade-up { transition-delay: calc(var(--gs-stagger-i, 0) * 80ms); }

/* ===== Homepage-only motion polish ===== */
@media (prefers-reduced-motion: no-preference) {
	.gs-home .gs-hero.has-photo .gs-hero-bg { animation: gs-hero-kenburns 18s ease-in-out infinite alternate; will-change: transform; }
	.gs-home .gs-hero-slide { transform: scale(1.02); transition: opacity 900ms var(--gs-ease-out); }
	.gs-home .gs-hero-slide.is-active { animation: gs-hero-kenburns 6500ms linear both; will-change: transform, opacity; }
	[dir="rtl"] .gs-home .gs-hero.has-photo .gs-hero-bg,
	[dir="rtl"] .gs-home .gs-hero-slide.is-active { animation-name: gs-hero-kenburns-rtl; }

	.gs-home .gs-hero-inner.is-visible :where(.gs-hero-eyebrow, .gs-hero-title, .gs-hero-sub, .gs-hero-badges, .gs-hero-cta) {
		opacity: 0;
		animation: gs-home-fade-up 680ms cubic-bezier(0.22, 1, 0.36, 1) both;
	}
	.gs-home .gs-hero-inner.is-visible .gs-hero-eyebrow { animation-delay: 80ms; }
	.gs-home .gs-hero-inner.is-visible .gs-hero-title { animation-delay: 170ms; }
	.gs-home .gs-hero-inner.is-visible .gs-hero-sub { animation-delay: 260ms; }
	.gs-home .gs-hero-inner.is-visible .gs-hero-badges { animation-delay: 350ms; }
	.gs-home .gs-hero-inner.is-visible .gs-hero-cta { animation-delay: 440ms; }
	.gs-home .gs-hero-eyebrow-dot { animation: gs-hero-dot-pulse 2.6s ease-in-out infinite; transform-origin: center; }
	.gs-home .gs-hero-scroll { animation: gs-hero-scroll-cue 2.4s ease-in-out infinite; }
	.gs-home .gs-marquee-track { animation: gs-marquee-scroll 34s linear infinite; will-change: transform; }

	.gs-home .gs-service-card,
	.gs-home .gs-btn-primary,
	.gs-home .gs-btn-ghost,
	.gs-home .gs-btn-ghost-light {
		--gs-card-sheen-travel: 560%;
		--gs-card-sheen-skew: -12deg;
		--gs-btn-sheen-travel: 520%;
		--gs-btn-sheen-skew: -12deg;
		position: relative;
	}
	[dir="rtl"] .gs-home .gs-service-card,
	[dir="rtl"] .gs-home .gs-btn-primary,
	[dir="rtl"] .gs-home .gs-btn-ghost,
	[dir="rtl"] .gs-home .gs-btn-ghost-light {
		--gs-card-sheen-travel: -560%;
		--gs-card-sheen-skew: 12deg;
		--gs-btn-sheen-travel: -520%;
		--gs-btn-sheen-skew: 12deg;
	}
	.gs-home .gs-service-card::after {
		content: ""; position: absolute; inset-block: 0; inset-inline-start: -32%; inline-size: 24%;
		background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gs-gold) 24%, transparent), transparent);
		opacity: 0;
		transform: translateX(0) skewX(var(--gs-card-sheen-skew));
		transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 250ms var(--gs-ease-out);
		pointer-events: none;
	}
	.gs-home .gs-service-card:is(:hover, :focus-within)::after { opacity: 1; transform: translateX(var(--gs-card-sheen-travel)) skewX(var(--gs-card-sheen-skew)); }

	.gs-home :where(.gs-btn-primary:not(.gs-btn-glow), .gs-btn-ghost, .gs-btn-ghost-light) { overflow: hidden; }
	.gs-home :where(.gs-btn-primary:not(.gs-btn-glow), .gs-btn-ghost, .gs-btn-ghost-light)::before {
		content: ""; position: absolute; inset-block: -15%; inset-inline-start: -36%; inline-size: 30%; block-size: 130%;
		background: linear-gradient(100deg, transparent 32%, color-mix(in srgb, var(--gs-white) 62%, transparent) 50%, transparent 68%);
		opacity: 0;
		transform: translateX(0) skewX(var(--gs-btn-sheen-skew));
		transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 250ms var(--gs-ease-out);
		pointer-events: none;
	}
	.gs-home :where(.gs-btn-primary, .gs-btn-ghost, .gs-btn-ghost-light) > * { position: relative; z-index: 1; }
	.gs-home :where(.gs-btn-primary:not(.gs-btn-glow), .gs-btn-ghost, .gs-btn-ghost-light):is(:hover, :focus-visible)::before { opacity: 1; transform: translateX(var(--gs-btn-sheen-travel)) skewX(var(--gs-btn-sheen-skew)); }
	.gs-home :where(.gs-btn-primary, .gs-btn-ghost, .gs-btn-ghost-light):active { transform: translateY(0) scale(0.98); }

	.gs-home .gs-sec-head.is-visible .gs-divider-gold {
		transform-origin: center;
		animation: gs-divider-grow 620ms cubic-bezier(0.22, 1, 0.36, 1) 180ms both;
	}

	.gs-home .gs-trust-num { transition: transform 300ms var(--gs-ease-out), color 300ms var(--gs-ease-out); }
	.gs-home .gs-trust-num.is-counting { animation: gs-stat-emphasis 560ms cubic-bezier(0.22, 1, 0.36, 1) both; }
	.gs-home .gs-trust-card:hover .gs-trust-num { transform: translateY(-2px); }

	.gs-home .gs-destination-card:is(:hover, :focus-visible) {
		transform: perspective(900px) translateY(-5px) rotateX(var(--gs-tilt-x, 0deg)) rotateY(var(--gs-tilt-y, 0deg));
		box-shadow: 0 16px 32px color-mix(in srgb, var(--gs-navy) 12%, transparent);
	}
	.gs-home .gs-honeymoon-card:focus-within,
	.gs-home .gs-service-card:focus-within,
	.gs-home .gs-review-card:focus-within {
		transform: translateY(-4px);
		box-shadow: 0 16px 32px color-mix(in srgb, var(--gs-navy) 12%, transparent);
		border-color: var(--gs-gold);
	}
	.gs-home .gs-honeymoon-card:focus-within .gs-honeymoon-img img,
	.gs-home .gs-destination-card:focus-visible img {
		transform: scale(1.03);
	}
	.gs-home .gs-service-card:focus-within .gs-service-icon {
		background: var(--gs-gold);
		color: var(--gs-navy);
		transform: scale(1.08) rotate(-5deg);
	}

	.gs-home .gs-review-card { overflow: hidden; }
	.gs-home .gs-review-card::before {
		content: ""; position: absolute; inset: 0; border: 1px solid var(--gs-gold); border-radius: inherit;
		opacity: 0;
		transform: scale(0.985);
		transition: opacity 280ms var(--gs-ease-out), transform 280ms var(--gs-ease-out);
		pointer-events: none;
	}
	.gs-home .gs-review-card:is(:hover, :focus-within)::before {
		animation: gs-review-border-flash 700ms cubic-bezier(0.22, 1, 0.36, 1) both;
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes gs-hero-kenburns { from { transform: scale(1.02) translate3d(0, 0, 0); } to { transform: scale(1.07) translate3d(-1.2%, -0.4%, 0); } }
@keyframes gs-hero-kenburns-rtl { from { transform: scale(1.02) translate3d(0, 0, 0); } to { transform: scale(1.07) translate3d(1.2%, -0.4%, 0); } }
@keyframes gs-home-fade-up { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes gs-hero-dot-pulse {
	0%, 100% { transform: scale(1); box-shadow: 0 0 0 4px color-mix(in srgb, var(--gs-gold) 25%, transparent); }
	50% { transform: scale(1.16); box-shadow: 0 0 0 7px color-mix(in srgb, var(--gs-gold) 10%, transparent); }
}
@keyframes gs-hero-scroll-cue { 0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.78; } 50% { transform: translateX(-50%) translateY(6px); opacity: 1; } }
@keyframes gs-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes gs-divider-grow { from { opacity: 0; transform: scaleX(0.35); } to { opacity: 1; transform: scaleX(1); } }
@keyframes gs-stat-emphasis { 0% { transform: translateY(4px); opacity: 0.7; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes gs-review-border-flash {
	0% { opacity: 0; transform: scale(0.985); }
	45% { opacity: 1; transform: scale(1); }
	100% { opacity: 0.55; transform: scale(1); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.gs-hero-wash, .gs-hero-scroll, .gs-service-card, .gs-honeymoon-card,
	.gs-trust-card, .gs-destination-card, .gs-leadership-photo, .gs-review-card,
	.gs-btn-ghost-light,
	.gs-home .gs-hero.has-photo .gs-hero-bg,
	.gs-home .gs-hero-slide,
	.gs-home .gs-hero-inner.is-visible :where(.gs-hero-eyebrow, .gs-hero-title, .gs-hero-sub, .gs-hero-badges, .gs-hero-cta),
	.gs-home .gs-hero-eyebrow-dot,
	.gs-home .gs-marquee-track,
	.gs-home .gs-service-card::after,
	.gs-home :where(.gs-btn-primary, .gs-btn-ghost, .gs-btn-ghost-light)::before,
	.gs-home .gs-sec-head.is-visible .gs-divider-gold,
	.gs-home .gs-trust-num,
	.gs-home .gs-review-card::before,
		.gs-ticker-track,
		.gs-marquee-track,
		.gs-hero-toggle,
		.gs-hero-eyebrow-dot,
	.gs-match-card-skel::after,
		.gs-skel-line {
			animation: none !important;
			transition: none !important;
		}
		.gs-package-card:hover,
		.gs-pkg-card:hover,
		.gs-archive-story-card:hover,
		.gs-honeymoon-card:hover,
		.gs-service-card:hover,
		.gs-destination-card:hover,
		.gs-service-card:hover .gs-service-icon,
		.gs-home .gs-honeymoon-card:focus-within,
		.gs-home .gs-service-card:focus-within,
		.gs-home .gs-review-card:focus-within,
		.gs-home .gs-destination-card:is(:hover, :focus-visible),
		.gs-home .gs-trust-card:hover .gs-trust-num,
		.gs-home :where(.gs-btn-primary, .gs-btn-ghost, .gs-btn-ghost-light):active,
		.gs-package-card:hover img,
		.gs-pkg-card:hover img,
		.gs-archive-story-card:hover img,
		.gs-honeymoon-card:hover img,
		.gs-service-card:hover img,
		.gs-destination-card:hover img,
		.gs-home .gs-honeymoon-card:focus-within .gs-honeymoon-img img,
		.gs-home .gs-destination-card:focus-visible img {
			transform: none !important;
		}
		.gs-home .gs-service-card::after,
		.gs-home :where(.gs-btn-primary, .gs-btn-ghost, .gs-btn-ghost-light)::before,
		.gs-home .gs-review-card::before {
			opacity: 0 !important;
		}
	}

/* Newsletter feedback pill — appears after submit */
.gs-newsletter-feedback {
	flex-basis: 100%;
	margin-top: 0.6rem;
	font-size: 0.88rem;
	padding: 0.55rem 0.9rem;
	border-radius: var(--gs-radius-sm);
	display: none;
	line-height: 1.55;
}
.gs-newsletter-feedback.is-pending,
.gs-newsletter-feedback.is-success,
.gs-newsletter-feedback.is-error { display: block; }
.gs-newsletter-feedback.is-pending { background: color-mix(in srgb, var(--gs-warning) 14%, var(--gs-white)); color: var(--gs-gold-dark); }
.gs-newsletter-feedback.is-success { background: color-mix(in srgb, var(--gs-success) 14%, var(--gs-white)); color: var(--gs-wa-green-dark); }
.gs-newsletter-feedback.is-error   { background: color-mix(in srgb, var(--gs-coral) 14%, var(--gs-white)); color: var(--gs-critical); }
