/*
This file is responsible only for providing theme information that are displayed
in `Apperance > Themes`. Do not write in here any CSS declarations.

Theme Name: PTS WordPress Theme
Theme URI: https://www.twodoyens.com/
Description: ES6, SCSS ready Wordpress theme.
Version: 2.9
Text Domain: pts
Author: pts
Author URI: https://www.linkedin.com/in/kolo-pius-49369ab7/
Tags: wordpress, es6, scss, gulp, eslint, stylelint
License: GPLv2 License
License URI: https://wordpress.org/about/gpl/
*/

:root {
	--ps-clay: #b85533;
	--ps-blue: #2b4488;
	--ps-gold: #f6c612;
	--ps-black: #1a1a1a;

	--ps-clay-50: #f9f1ee;
	--ps-clay-100: #efd9d2;
	--ps-clay-200: #ddb1a2;
	--ps-clay-300: #d1856c;
	--ps-clay-400: #b85533;
	--ps-clay-500: #9e492c;
	--ps-clay-600: #823b23;
	--ps-clay-700: #652d1a;
	--ps-clay-800: #472012;
	--ps-blue-50: #edf1fa;
	--ps-blue-100: #d1d9f0;
	--ps-blue-400: #2b4488;
	--ps-blue-500: #253a75;
	--ps-blue-600: #1d2f60;
	--ps-blue-700: #16244a;
	--ps-gold-400: #f6c612;
	--ps-gold-700: #8c6f03;

	/* Warm neutrals */
	--ps-body: #3d3d3a;
	--ps-muted: #6b6a65;
	--ps-faint: #9c9a93;
	--ps-line: #e7e3da;
	--ps-line-strong: #d2cdc1;
	--ps-line-muted: rgba(34, 25, 18, 0.08);
	--ps-paper: #fbfaf6;
	--ps-surface: #ffffff;
	--ps-surface-2: #f4f1e9;
	--ps-bg-canvas: #fbfaf6;
	--ps-text-dark: #1c1815;
	--ps-bg-dark: #221912;
	--ps-surface-dark: #2b1f17;
	--ps-on-dark-mute: #a89e92;

	/* Type */
	--ps-font-display: 'Bricolage Grotesque', system-ui, sans-serif;
	--ps-font-body: 'Hanken Grotesk', system-ui, sans-serif;
	--ps-font-mono: var(--ps-font-body);

	/* Booking layer tokens, mapped to the original palette */
	--ps-book: var(--ps-clay-400);
	--ps-book-hover: var(--ps-clay-500);
	--ps-book-soft: var(--ps-clay-50);
	--ps-flag-red: var(--ps-gold);
	--ps-green-dark: #2d403d;
	--ps-pattern: url(images/pattern-two.webp);
	--ps-shadow-book: 0 12px 32px rgba(34, 25, 18, 0.14);
	--ps-text-xs: 0.8125rem;
	--ps-text-sm: 0.9375rem;
	--ps-text-base: 1.0625rem;
	--ps-text-lg: 1.1875rem;
	--ps-text-xl: 1.375rem;

	/* Radius / motion (explicit props, never `all`) */
	--ps-radius-sm: 8px;
	--ps-radius-md: 16px;
	--ps-radius-lg: 16px;
	--ps-radius-pill: 999px;
	--ps-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--ps-transition:
		color 0.2s var(--ps-ease), background-color 0.2s var(--ps-ease),
		border-color 0.2s var(--ps-ease), box-shadow 0.2s var(--ps-ease),
		transform 0.2s var(--ps-ease), opacity 0.2s var(--ps-ease);
}

html {
	scroll-behavior: smooth;
}

body {
	background-color: var(--ps-bg-canvas);
	font-family: var(--ps-font-body);
	color: var(--ps-text-dark);
	-webkit-font-smoothing: antialiased;
}

/* ==========================================================================
       HERO FRAME & HEADER ARCHITECTURE
       ========================================================================== */
.ps-hero-wrapper {
	position: relative;
	min-height: 100vh;
	width: 100%;
	background:
		linear-gradient(to bottom, rgba(28, 24, 21, 0.5), rgba(28, 24, 21, 0.7)),
		url(images/home.webp) no-repeat center center;
	background-size: cover;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
}

/* Fixed/Absolute Floating Top Header Master Wrapper */
.ps-header-wrapper {
	width: 100%;
	z-index: 1050;
	background-color: rgba(246, 244, 240, 0.88) !important;
	/* backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px); */
	border-bottom: 1px solid var(--ps-line-muted);
}

/* NEW FEATURE: Premium Utility Top Bar */
.ps-top-utility-bar {
	background: #2d403d;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	padding: 0.45rem 0;
	font-size: 0.82rem;
	font-weight: 500;
}

.ps-utility-trust {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(255, 255, 255, 0.75);
}
.ps-utility-trust i {
	color: var(--ps-clay-100);
}

.ps-utility-link {
	color: rgba(255, 255, 255, 0.8) !important;
	text-decoration: none !important;
	transition: var(--ps-transition);
}
.ps-utility-link:hover {
	color: #ffffff !important;
}

.ps-social-track {
	display: flex;
	align-items: center;
	gap: 0.85rem;
}
.ps-social-link {
	color: rgba(255, 255, 255, 0.6) !important;
	transition: var(--ps-transition);
	font-size: 0.9rem;
}
.ps-social-link:hover {
	color: #ffffff !important;
	transform: scale(1.1);
}

/* Primary Navigation Overlay Bar */
.ps-header-navbar {
	padding: 0.85rem 0;
}

.ps-nav-link {
	font-family: var(--ps-font-body);
	font-weight: 500;
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.85) !important;
	transition: var(--ps-transition);
	padding: 0.5rem 0.75rem !important;
}
.ps-nav-link:hover,
.ps-nav-link.active {
	color: #ffffff !important;
}

/* Header Action Elements */
.btn-nav-phone {
	font-family: var(--ps-font-mono);
	font-size: 0.8rem;
	font-weight: 700;
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--ps-radius-pill);
	padding: 0.5rem 1.25rem;
	text-decoration: none !important;
	transition: var(--ps-transition);
}
.btn-nav-phone:hover {
	background-color: rgba(255, 255, 255, 0.1);
	border-color: #ffffff;
}

.btn-nav-inquire {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #ffffff;
	background-color: var(--ps-clay-500);
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.55rem 1.5rem;
	text-decoration: none !important;
	transition: var(--ps-transition);
}
.btn-nav-inquire:hover {
	background-color: var(--ps-clay-600);
	transform: translateY(-1px);
}

/* ==========================================================================
       HERO CONTENT LAYER TYPOGRAPHY
       ========================================================================== */
.ps-hero-content-box {
	padding-top: 10rem; /* Incremented layout gap to neatly compensate for top bar header heights */
}

.ps-hero-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: #ffffff;
	background-color: rgba(184, 85, 51, 0.22);
	border: 1px solid rgba(255, 255, 255, 0.2);
	padding: 0.4rem 1rem;
	border-radius: var(--ps-radius-sm);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.ps-hero-title {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 4.25rem;
	line-height: 1.1;
	color: #ffffff;
	letter-spacing: -0.03em;
}
@media (max-width: 768px) {
	.ps-hero-title {
		font-size: 2.75rem;
	}
}

.ps-hero-desc {
	font-size: 1.2rem;
	color: rgba(255, 255, 255, 0.85);
	max-width: 580px;
	line-height: 1.6;
}

.btn-hero-primary {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 1.1rem;
	color: #ffffff;
	background-color: var(--ps-clay-500);
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 1rem 2.5rem;
	transition: var(--ps-transition);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none !important;
	box-shadow: 0 8px 30px rgba(158, 73, 44, 0.3);
}
.btn-hero-primary:hover {
	background-color: var(--ps-clay-600);
	transform: translateY(-2px);
	box-shadow: 0 12px 35px rgba(158, 73, 44, 0.45);
}

.ps-hero-trust-metrics {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.ps-metric-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.9rem;
	font-weight: 500;
}
.ps-metric-item i {
	color: var(--ps-gold);
}

/* ==========================================================================
       INTRO SECTION
       ========================================================================== */

.ps-intro-section {
	background-color: var(--ps-bg-canvas);
}

/* Typography Architecture */
.ps-section-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ps-clay-500);
}

.ps-intro-title {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: var(--ps-text-dark);
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.ps-intro-desc {
	font-size: 1.05rem;
	color: rgba(34, 25, 18, 0.75);
	line-height: 1.6;
}

/* Media Wrapper Frame */
.ps-intro-media-frame {
	position: relative;
	width: 100%;
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(34, 25, 18, 0.05);
}

.ps-intro-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 480px;
}

/* Glassmorphism Video Floating Trigger Badge */
.ps-video-badge-trigger {
	position: absolute;
	top: 1.5rem;
	left: 1.5rem;
	right: 1.5rem;
	background-color: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: var(--ps-radius-md);
	padding: 1rem 1.25rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	cursor: pointer;
	text-decoration: none !important;
	color: var(--ps-text-dark);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
	transition: var(--ps-transition);
}

.ps-video-badge-trigger:hover {
	background-color: rgba(255, 255, 255, 0.9);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

.ps-video-play-btn {
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background-color: var(--ps-text-dark);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	transition: var(--ps-transition);
	flex-shrink: 0;
}

.ps-video-badge-trigger:hover .ps-video-play-btn {
	background-color: var(--ps-clay-500);
	transform: scale(1.05);
}

.ps-video-text h4 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1rem;
	margin-bottom: 0.15rem;
}

.ps-video-text p {
	font-size: 0.82rem;
	color: rgba(34, 25, 18, 0.6);
	margin-bottom: 0;
}

/* Core CTA & Button System */
.btn-explore-tours {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	background-color: transparent;
	border: 2px solid var(--ps-text-dark);
	border-radius: var(--ps-radius-pill);
	padding: 0.85rem 2.5rem;
	transition: var(--ps-transition);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none !important;
}

.btn-explore-tours:hover {
	background-color: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(158, 73, 44, 0.15);
}

/* Trust Signal Micro-Metrics Footer */
.ps-trust-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	background-color: rgba(34, 25, 18, 0.03);
	padding: 0.5rem 1rem;
	border-radius: var(--ps-radius-sm);
	border: 1px solid var(--ps-line-muted);
}

.ps-trust-stars {
	color: var(--ps-gold);
	font-size: 0.9rem;
	letter-spacing: -0.02em;
}

.ps-trust-label {
	font-size: 0.85rem;
	font-weight: 600;
	color: rgba(34, 25, 18, 0.8);
}

.ps-trust-label span {
	color: var(--ps-clay-500);
}

/* ==========================================================================
       COUNTRIES SECTION
       ========================================================================== */

.ps-section-title {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: var(--ps-black);
	letter-spacing: -0.02em;
}

/* Custom Navigation Filter Tabs */
.ps-country-pill {
	font-family: var(--ps-font-mono);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--ps-body);
	background-color: var(--ps-surface);
	border: 1px solid var(--ps-line-strong);
	padding: 0.5rem 1.25rem;
	border-radius: var(--ps-radius-sm);
	transition: var(--ps-transition);
}
.ps-country-pill:hover {
	color: var(--ps-black);
	border-color: var(--ps-black);
	background-color: var(--ps-surface);
}
.ps-country-pill.active {
	color: #ffffff !important;
	background-color: var(--ps-clay-500) !important;
	border-color: var(--ps-clay-500) !important;
}

/* Showcase Display Card */
.ps-showcase-card {
	border-radius: var(--ps-radius-lg);
	overflow: hidden;
	border: 1px solid var(--ps-line-strong);
	box-shadow: 0 16px 40px rgba(34, 25, 18, 0.06);
}

/* Button Structure Extensions */
.btn-primary {
	background-color: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	font-family: var(--ps-font-body);
	font-weight: 700;
	border-radius: var(--ps-radius-sm);
	transition: var(--ps-transition);
}
.btn-primary:hover {
	background-color: var(--ps-clay-600);
	border-color: var(--ps-clay-600);
}

.btn-outline-custom {
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.4);
	background-color: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(4px);
	font-family: var(--ps-font-body);
	font-weight: 600;
	border-radius: var(--ps-radius-sm);
	transition: var(--ps-transition);
}
.btn-outline-custom:hover {
	color: #ffffff;
	border-color: #ffffff;
	background-color: rgba(255, 255, 255, 0.2);
}

.font-mono {
	font-family: var(--ps-font-mono) !important;
}

/* ==========================================================================
       SAFARIS SECTION
       ========================================================================== */

.ps-packages-section {
	background-color: var(--ps-bg-canvas);
}

/* Section Typography Architecture */
.ps-section-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ps-clay-500);
}

.ps-section-title {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: var(--ps-text-dark);
	letter-spacing: -0.02em;
}

.ps-section-desc {
	font-size: 1.1rem;
	color: rgba(34, 25, 18, 0.65);
	max-width: 650px;
	line-height: 1.5;
}

/* Premium Detailed Card Components */
.ps-package-card {
	background-color: var(--ps-surface);
	border-radius: var(--ps-radius-md);
	border: 1px solid var(--ps-line-muted);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	box-shadow: 0 8px 32px rgba(34, 25, 18, 0.03);
	transition: var(--ps-transition);
}
.ps-package-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 40px rgba(34, 25, 18, 0.08);
	border-color: rgba(158, 73, 44, 0.25);
}

/* Visual Media Frame */
.ps-card-media-wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 2.6;
	overflow: hidden;
	background-color: #e6e1da;
}
.ps-package-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ps-transition);
}
.ps-package-card:hover .ps-package-img {
	transform: scale(1.05);
}

/* Floating Structural Badges on Images */
.ps-floating-badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background-color: rgba(28, 24, 21, 0.85);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: #ffffff;
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.4rem 0.8rem;
	border-radius: var(--ps-radius-sm);
	letter-spacing: 0.04em;
}

/* Core Content Block Elements */
.ps-card-content-body {
	padding: 1.75rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.ps-trip-meta-row {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ps-clay-500);
}

/* UPDATED: Package Itinerary Title using Default Heading Font */
.ps-package-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.35rem;
	line-height: 1.25;
	color: var(--ps-text-dark);
	letter-spacing: -0.01em;
	transition: var(--ps-transition);
}
.ps-package-card:hover .ps-package-title {
	color: var(--ps-clay-500);
}

/* Granular Location and Amenity Lists */
.ps-location-route {
	font-size: 0.85rem;
	color: rgba(34, 25, 18, 0.55);
}

.ps-amenity-pill-box {
	background-color: rgba(34, 25, 18, 0.03);
	border-radius: var(--ps-radius-sm);
	padding: 0.6rem 0.85rem;
	font-size: 0.85rem;
	color: rgba(34, 25, 18, 0.75);
}

.ps-price-label {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(34, 25, 18, 0.4);
	display: block;
	margin-bottom: -0.15rem;
}
.ps-price-amount {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 1.4rem;
	color: var(--ps-text-dark);
}
.ps-price-unit {
	font-size: 0.8rem;
	font-weight: 400;
	font-family: var(--ps-font-body);
	color: rgba(34, 25, 18, 0.5);
}

/* Outlined Micro-Interaction Action Elements */
.btn-view-package {
	font-family: var(--ps-font-mono);
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ps-clay-500);
	background-color: transparent;
	border: 2px solid var(--ps-clay-500);
	border-radius: var(--ps-radius-sm);
	padding: 0.6rem 1.2rem;
	transition: var(--ps-transition);
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	text-decoration: none !important;
}
.ps-package-card:hover .btn-view-package {
	background-color: var(--ps-clay-500);
	color: #ffffff;
}

/* Custom Navigation Arrow Triggers for Carousel Controls */
.ps-carousel-control-btn {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background-color: #ffffff;
	border: 1px solid var(--ps-line-muted);
	color: var(--ps-text-dark);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: var(--ps-transition);
	box-shadow: 0 4px 12px rgba(34, 25, 18, 0.04);
}
.ps-carousel-control-btn:hover {
	background-color: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	color: #ffffff;
}

/* View All Button Formatting */
.btn-view-all-safaris {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 0.95rem;
	color: #ffffff;
	background-color: var(--ps-text-dark);
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.8rem 2rem;
	box-shadow: 0 4px 14px rgba(28, 24, 21, 0.12);
	transition: var(--ps-transition);
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.btn-view-all-safaris:hover {
	background-color: var(--ps-clay-500);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(158, 73, 44, 0.22);
}

/* ==========================================================================
       DESTINATIONS SECTION
       ========================================================================== */

/* Core Section Canvas Background */
.ps-offerings-canvas {
	background-color: var(--ps-clay-500);
	color: #ffffff;
}

.ps-eyebrow-light {
	font-family: var(--ps-font-mono);
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ps-clay-100);
}

/* Pill-Shaped Outline Action Button Wrapper */
.btn-create-now {
	background-color: transparent;
	color: #ffffff;
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 1.05rem;
	border: 2px solid rgba(255, 255, 255, 0.6);
	border-radius: var(--ps-radius-pill);
	padding: 0.65rem 2.25rem;
	transition: var(--ps-transition);
}
.btn-create-now:hover {
	background-color: rgba(255, 255, 255, 0.1);
	border-color: #ffffff;
	color: #ffffff;
}

/* Replicated Navigation Arrow Buttons */
.ps-nav-circle {
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background-color: #ffffff;
	color: var(--ps-clay-500);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none !important;
	transition: var(--ps-transition);
}
.ps-nav-circle:hover {
	background-color: var(--ps-clay-100);
	color: var(--ps-clay-500);
}

/* Premium Immersive Card Structure with Descriptive Content Shrouds */
.ps-interactive-holiday-card {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4.3;
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(34, 25, 18, 0.18);
	display: flex;
	align-items: flex-end;
	text-decoration: none !important;
	background-color: var(--ps-clay-600);
}

.ps-card-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
	transition: var(--ps-transition);
}

/* Multi-stage gradient protection shield for dynamic text contrast */
.ps-card-shroud {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		to top,
		rgba(26, 19, 14, 0.95) 0%,
		rgba(26, 19, 14, 0.6) 45%,
		rgba(26, 19, 14, 0.1) 100%
	);
	z-index: 2;
	transition: var(--ps-transition);
}

/* Meta text grouping block inside cards */
.ps-card-body-content {
	position: relative;
	z-index: 3;
	padding: 1.5rem 1.25rem;
	width: 100%;
}

.ps-card-meta-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.35rem;
	color: #ffffff;
	margin-bottom: 0.35rem;
	letter-spacing: -0.01em;
}

.ps-card-meta-desc {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.4;
	margin-bottom: 1rem;
	/* Keep descriptions uniform at max 2 lines */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ps-card-action-trigger {
	font-family: var(--ps-font-mono);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ps-clay-100);
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	transition: var(--ps-transition);
}

/* Focus Hover Motion Dynamics */
.ps-interactive-holiday-card:hover .ps-card-img {
	transform: scale(1.06);
}
.ps-interactive-holiday-card:hover .ps-card-shroud {
	background: linear-gradient(
		to top,
		rgba(26, 19, 14, 0.98) 0%,
		rgba(26, 19, 14, 0.75) 60%,
		rgba(26, 19, 14, 0.2) 100%
	);
}
.ps-interactive-holiday-card:hover .ps-card-action-trigger {
	color: #ffffff;
	transform: translateX(4px);
}

/* ==========================================================================
       CTA SECTION
       ========================================================================== */

.ps-measure {
	max-width: 68ch;
}

.ps-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: var(--ps-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ps-clay-100);
	display: inline-block;
}

.btn-primary {
	background-color: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	transition: var(--ps-transition);
}
.btn-primary:hover {
	background-color: var(--ps-clay-600);
	border-color: var(--ps-clay-600);
}

.ps-footer {
	background: var(--ps-bg-dark);
	color: var(--ps-on-dark-mute);
}

.font-mono {
	font-family: var(--ps-font-mono) !important;
}
.font-body {
	font-family: var(--ps-font-body) !important;
}
.tracking-wide {
	letter-spacing: 0.05em;
}
.tracking-wider {
	letter-spacing: 0.1em;
}
.backdrop-blur {
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

/* ==========================================================================
       FOOTER SECTION
       ========================================================================== */

footer {
	background-color: var(--ps-bg-dark);
	font-family: var(--ps-font-body);
	color: #e6e1da;
	-webkit-font-smoothing: antialiased;
}

/* Column Typography Headers */
.ps-footer-heading {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.ps-footer-subheading {
	font-family: var(--ps-font-mono);
	font-weight: 700;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(255, 255, 255, 0.4);
}

/* Sub-Navigation Layout Management Links */
.ps-footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ps-footer-links li {
	margin-bottom: 0.6rem;
}
.ps-footer-links a,
.ps-footer-contact-item {
	color: #e6e1da;
	text-decoration: none;
	opacity: 0.75;
	font-size: 0.95rem;
	transition: var(--ps-transition);
}
.ps-footer-links a:hover {
	opacity: 1;
	color: var(--ps-clay-400);
	transform: translateX(3px);
}

/* Active Anchor Contact Modifiers */
a.ps-footer-contact-item:hover {
	opacity: 1;
	color: #ffffff;
}

.ps-footer-about-text {
	font-size: 0.95rem;
	line-height: 1.6;
	opacity: 0.8;
}

/* Decorative & Verification Badging Framework */
.ps-trust-badge {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(255, 255, 255, 0.7);
	background-color: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 0.35rem 0.7rem;
	border-radius: var(--ps-radius-sm);
}
.ps-trust-badge.payment-badge {
	color: #ffffff;
	background-color: var(--ps-surface-dark);
	border-color: var(--ps-line-muted);
}

/* Platform Community Social Anchors */
.ps-social-circle {
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	color: #e6e1da;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none !important;
	transition: var(--ps-transition);
}
.ps-social-circle:hover {
	background-color: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	color: #ffffff;
	transform: translateY(-2px);
}

.font-mono {
	font-family: var(--ps-font-mono) !important;
}

/* ====== Added: signature texture, focus floor, motion safety ====== */
.ps-fi {
	color: var(--ps-clay-400);
}
.ps-rating {
	color: var(--ps-gold);
}
:where(
	a,
	button,
	.nav-link,
	input,
	textarea,
	select,
	[tabindex]
):focus-visible {
	outline: 3px solid var(--ps-clay-500);
	outline-offset: 2px;
	border-radius: var(--ps-radius-sm);
}
@keyframes psFadeIn {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
.animate-fade-in {
	animation: psFadeIn 0.7s var(--ps-ease) both;
}
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.animate-fade-in {
		animation: none !important;
	}
}

/* ====== Redesign layer (v3.1 system) ====== */

/* Signature: a small gold sun-disc before every section eyebrow —
			   echoes the logo's sun, replaces the removed dune texture. */
.ps-section-eyebrow,
.ps-eyebrow,
.ps-eyebrow-light {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}
.ps-section-eyebrow::before,
.ps-eyebrow::before,
.ps-eyebrow-light::before {
	content: '';
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: var(--ps-gold);
	box-shadow: 0 0 0 0.18rem rgba(246, 198, 18, 0.22);
	flex-shrink: 0;
}

/* Hero: secondary ghost CTA + scroll cue */
.btn-hero-ghost {
	font-family: var(--ps-font-body);
	font-weight: 600;
	font-size: 1.05rem;
	color: #fff;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.5rem 0.25rem;
	border-bottom: 2px solid transparent;
	transition: var(--ps-transition);
}
.btn-hero-ghost:hover {
	color: var(--ps-clay-100);
	border-bottom-color: var(--ps-clay-100);
}
.ps-scroll-cue {
	position: absolute;
	left: 50%;
	bottom: 1.5rem;
	transform: translateX(-50%);
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.35);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.1rem;
	animation: psCue 2.2s var(--ps-ease) infinite;
}
@keyframes psCue {
	0%,
	100% {
		transform: translate(-50%, 0);
		opacity: 0.7;
	}
	50% {
		transform: translate(-50%, 6px);
		opacity: 1;
	}
}

/* Calmer "What we offer" band: beige with terracotta accents (was a full
			   terracotta block — too much primary for a two-accent calm system) */
.ps-offerings-canvas {
	background-color: var(--ps-surface-2) !important;
	color: var(--ps-text-dark) !important;
	border-top: 1px solid var(--ps-line);
	border-bottom: 1px solid var(--ps-line);
}
.ps-offerings-canvas .ps-eyebrow-light {
	color: var(--ps-clay-500);
}
.ps-offerings-canvas h2 {
	color: var(--ps-text-dark) !important;
}
.ps-offerings-canvas .opacity-90 {
	color: var(--ps-muted);
	opacity: 1 !important;
}
.ps-offerings-canvas .btn-create-now {
	background-color: var(--ps-clay-500);
	color: #fff;
	border: 2px solid var(--ps-clay-500);
}
.ps-offerings-canvas .btn-create-now:hover {
	background-color: var(--ps-clay-600);
	border-color: var(--ps-clay-600);
	color: #fff;
}
.ps-offerings-canvas .ps-nav-circle {
	background-color: #fff;
	color: var(--ps-clay-500);
	border: 1px solid var(--ps-line-strong);
}
.ps-offerings-canvas .ps-nav-circle:hover {
	background-color: var(--ps-clay-500);
	color: #fff;
	border-color: var(--ps-clay-500);
}

/* Scroll-reveal (progressive: class added by JS only, motion-safe) */
.reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.6s var(--ps-ease),
		transform 0.6s var(--ps-ease);
}
.reveal.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.reveal {
		opacity: 1 !important;
		transform: none !important;
	}
	.ps-scroll-cue {
		animation: none !important;
	}
}

/* ====== Footer redesign ====== */
footer.ps-site-footer {
	/* border-top: 3px solid var(--ps-clay-500); */
	background: linear-gradient(180deg, #221d17 0%, #14110c 100%);
	color: var(--ps-on-dark-mute);
}
.ps-footer-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}
.ps-footer-brand-name {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 1.35rem;
	color: #fff;
	letter-spacing: -0.02em;
}
.ps-footer-tagline {
	color: var(--ps-on-dark-mute);
	font-size: 0.95rem;
	line-height: 1.6;
	max-width: 36ch;
}
.ps-footer-divider {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.09);
	margin: 0;
}
.ps-footer-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	background: var(--ps-clay-500);
	color: #fff;
	font-family: var(--ps-font-body);
	font-weight: 700;
	border-radius: var(--ps-radius-pill);
	padding: 0.7rem 1.6rem;
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-footer-cta:hover {
	background: var(--ps-clay-600);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(158, 73, 44, 0.28);
}
.ps-footer-stars {
	color: var(--ps-gold);
	font-size: 0.9rem;
	letter-spacing: -0.02em;
}
.ps-footer-rating {
	color: var(--ps-on-dark-mute);
	font-size: 0.85rem;
}
.ps-footer-rating strong {
	color: #fff;
}
.ps-footer-copy {
	color: var(--ps-on-dark-mute);
	font-family: var(--ps-font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.02em;
}
.ps-legal-link {
	color: var(--ps-on-dark-mute);
	text-decoration: none;
	font-family: var(--ps-font-mono);
	font-size: 0.76rem;
	transition: var(--ps-transition);
}
.ps-legal-link:hover {
	color: #fff;
}
.ps-backtotop {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ps-on-dark-mute);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: var(--ps-transition);
}
.ps-backtotop:hover {
	color: #fff;
}
.ps-backtotop i {
	transition: var(--ps-transition);
}
.ps-backtotop:hover i {
	transform: translateY(-2px);
}

/* ====== Header / nav redesign ====== */
.ps-header-wrapper {
	/* position: absolute; */
	background-color: rgba(20, 16, 11, 0.18);
	transition:
		background-color 0.3s var(--ps-ease),
		box-shadow 0.3s var(--ps-ease);
}
.ps-header-wrapper.is-scrolled {
	background-color: rgba(20, 16, 11, 0.94);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.3);
	border-bottom-color: rgba(255, 255, 255, 0.06);
}
.ps-top-utility-bar {
	/* background: rgba(20, 16, 11, 0.42) !important; */
	background: #2d403d url(images/pattern-two.webp) !important;
	overflow: hidden;
	max-height: 60px;
	transition:
		max-height 0.35s var(--ps-ease),
		opacity 0.25s var(--ps-ease),
		padding 0.35s var(--ps-ease);
}
.ps-header-wrapper.is-scrolled .ps-top-utility-bar {
	max-height: 0;
	opacity: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	border-bottom-color: transparent;
}
.ps-header-wrapper.is-scrolled .ps-header-navbar {
	padding: 0.5rem 0;
}
.ps-utility-trust i {
	color: var(--ps-clay-300);
}
.ps-header-navbar .nav-link {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--ps-body);
	padding: 0.5rem 0.9rem;
	position: relative;
	transition: color 0.2s var(--ps-ease);
	text-transform: uppercase;
}
.ps-header-navbar .nav-link::after {
	content: '';
	position: absolute;
	left: 0.9rem;
	right: 0.9rem;
	bottom: 0.2rem;
	height: 2px;
	border-radius: 2px;
	background: var(--ps-clay-400);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s var(--ps-ease);
}
.ps-header-navbar .nav-link:hover,
.ps-header-navbar .nav-link.active {
	color: var(--ps-body);
}
.ps-header-navbar .nav-link:hover::after,
.ps-header-navbar .nav-link.active::after {
	transform: scaleX(1);
}
@media (max-width: 991.98px) {
	.ps-header-navbar .navbar-collapse {
		background: #2d403d url(images/pattern-two.webp) !important;
		border: 1px solid rgba(255, 255, 255, 0.08);
		border-radius: var(--ps-radius-md);
		padding: 0.75rem 1rem 1rem;
		margin-top: 0.75rem;
	}
	.ps-header-navbar .nav-link {
		padding: 0.6rem 0.25rem;
		color: #fff !important;
	}
	.ps-header-navbar .nav-link::after {
		display: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.ps-header-wrapper,
	.ps-top-utility-bar {
		transition: none;
	}
}

/* Corrected nav */
.navbar .dropdown-menu {
	border: 0;
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.navbar .dropdown-menu .nav-link,
.navbar .dropdown-menu .dropdown-item {
	padding: 10px 16px;
}

.dropdown-menu .dropdown-menu {
	left: 100%;
	top: 0;
}

/* footer: drop unused membership-chip styles (compacted out) */

/* footer affiliation logos (white chips so any logo shows on the dark footer) */
.ps-affil-logo {
	background: rgba(255, 255, 255, 0.92);
	border-radius: var(--ps-radius-sm);
	padding: 0.4rem 0.55rem;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: var(--ps-transition);
}
.ps-affil-logo:hover {
	background: #fff;
	transform: translateY(-2px);
}
.ps-affil-logo img {
	max-height: 24px;
	max-width: 76px;
	width: auto;
	height: auto;
	display: block;
	object-fit: contain;
}
.ps-affil-logo.ps-affil-lg {
	height: 54px;
	min-width: 116px;
	padding: 0.55rem 0.95rem;
}
.ps-affil-logo.ps-affil-lg img {
	max-height: 30px;
	max-width: 96px;
}

/* ====== Hero booking form ====== */
.ps-hero-wrapper {
	min-height: 100vh;
	height: auto;
}
.ps-hero-content-box {
	padding-top: 8.5rem;
	padding-bottom: 3rem;
}
@media (max-width: 991.98px) {
	.ps-hero-content-box {
		padding-top: 7rem;
	}
}
.ps-hero-booking {
	background: rgba(20, 16, 11, 0.58);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--ps-radius-lg);
	padding: 1.75rem;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}
.ps-hero-booking h3 {
	font-family: var(--ps-font-display);
	color: #fff;
	font-weight: 700;
	font-size: 1.4rem;
}
.ps-bk-sub {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.9rem;
	line-height: 1.5;
}
.ps-bk-label {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.6);
	margin-bottom: 0.3rem;
	display: block;
}
.ps-bk-field {
	width: 100%;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: #fff;
	border-radius: var(--ps-radius-sm);
	padding: 0.6rem 0.8rem;
	font-size: 0.95rem;
	font-family: var(--ps-font-body);
	transition: var(--ps-transition);
}
.ps-bk-field::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
.ps-bk-field:focus {
	outline: none;
	border-color: var(--ps-clay-400);
	background: rgba(255, 255, 255, 0.12);
	box-shadow: 0 0 0 3px rgba(184, 85, 51, 0.28);
}
.ps-bk-field option {
	color: #1a1a1a;
}
.ps-bk-submit {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.3rem;
	background: var(--ps-clay-500);
	color: #fff;
	border: none;
	border-radius: var(--ps-radius-sm);
	padding: 0.8rem;
	font-weight: 700;
	font-family: var(--ps-font-body);
	transition: var(--ps-transition);
}
.ps-bk-submit:hover {
	background: var(--ps-clay-600);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(158, 73, 44, 0.3);
}
.ps-bk-note {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.75rem;
	text-align: center;
}
@media (max-width: 991.98px) {
	.ps-hero-booking {
		max-width: 460px;
	}
}

/* ====== FAQ accordion ====== */
.ps-faq .accordion-item {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md) !important;
	margin-bottom: 0.75rem;
	overflow: hidden;
}
.ps-faq .accordion-button {
	font-family: var(--ps-font-display);
	font-weight: 600;
	font-size: 1.08rem;
	color: var(--ps-text-dark);
	background: var(--ps-surface);
	padding: 1.1rem 1.25rem;
}
.ps-faq .accordion-button:not(.collapsed) {
	color: var(--ps-clay-600);
	background: var(--ps-clay-50);
	box-shadow: none;
}
.ps-faq .accordion-button:focus {
	box-shadow: 0 0 0 3px rgba(184, 85, 51, 0.3);
	border-color: transparent;
}
.ps-faq .accordion-button::after {
	background-size: 1.1rem;
}
.ps-faq .accordion-body {
	color: var(--ps-body);
	padding: 0 1.25rem 1.25rem;
	line-height: 1.65;
}

/* hero booking: WhatsApp alternative */
.ps-bk-or {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0.85rem 0 0.25rem;
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-family: var(--ps-font-mono);
}
.ps-bk-or::before,
.ps-bk-or::after {
	content: '';
	flex: 1;
	height: 1px;
	background: rgba(255, 255, 255, 0.14);
}
.ps-bk-whatsapp {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--ps-radius-sm);
	padding: 0.7rem;
	font-weight: 600;
	font-family: var(--ps-font-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-bk-whatsapp i {
	color: #25d366;
	font-size: 1.15rem;
}
.ps-bk-whatsapp:hover {
	background: #25d366;
	border-color: #25d366;
	color: #fff;
}
.ps-bk-whatsapp:hover i {
	color: #fff;
}

/* ==========================================================================
       ABOUT US PAGE SECTION
========================================================================== */

/* ====== About page ====== */
.ps-about-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: 60vh;
}
.ps-about-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ps-about-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(20, 16, 11, 0.55) 0%,
		rgba(20, 16, 11, 0.82) 100%
	);
}
.ps-about-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 5rem;
}
.ps-about-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.5rem, 1.5rem + 3.4vw, 4rem);
	line-height: 1.04;
}
.ps-about-lead {
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.2rem;
	line-height: 1.6;
	max-width: 62ch;
}
.ps-byline {
	font-family: var(--ps-font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.6);
}

.ps-keyfacts {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	box-shadow: 0 24px 60px rgba(26, 26, 26, 0.12);
}
.ps-fact {
	padding: 1.25rem 1.4rem;
	border-bottom: 1px solid var(--ps-line);
}
.ps-fact dt {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--ps-muted);
	margin-bottom: 0.3rem;
}
.ps-fact dd {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	margin: 0;
	line-height: 1.3;
}
.ps-fact dd span {
	font-family: var(--ps-font-body);
	font-weight: 400;
	font-size: 0.9rem;
	color: var(--ps-muted);
	display: block;
}

/* Our story numbered accordion */
.ps-story-img {
	border-radius: var(--ps-radius-lg);
	overflow: hidden;
	box-shadow: 0 20px 50px rgba(26, 26, 26, 0.14);
}
.ps-story-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ps-story-acc .accordion-item {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md) !important;
	margin-bottom: 0.75rem;
	overflow: hidden;
}
.ps-story-acc .accordion-button {
	font-family: var(--ps-font-display);
	font-weight: 600;
	color: var(--ps-text-dark);
	background: var(--ps-surface);
	padding: 0.95rem 1.4rem;
	border-radius: var(--ps-radius-md);
}
.ps-story-acc .accordion-button:not(.collapsed) {
	color: var(--ps-clay-600);
	background: var(--ps-surface);
	box-shadow: none;
}
.ps-story-acc .accordion-button:focus {
	box-shadow: 0 0 0 3px rgba(184, 85, 51, 0.18);
}
.ps-story-acc .accordion-body {
	padding: 0.1rem 1.4rem 1.2rem 3.7rem;
	color: var(--ps-body);
	line-height: 1.6;
}
.ps-story-num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--ps-line-strong);
	color: var(--ps-clay-600);
	font-family: var(--ps-font-mono);
	font-size: 0.8rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 0.85rem;
	flex-shrink: 0;
}

/* Vision & Mission */
.ps-vm-card {
	position: relative;
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	padding: clamp(1.75rem, 4vw, 3rem);
}
.ps-vm-badge {
	position: absolute;
	top: 0;
	right: 2.5rem;
	width: 62px;
	height: 84px;
	border-radius: 0 0 var(--ps-radius-pill) var(--ps-radius-pill);
	background: linear-gradient(165deg, var(--ps-clay-500), var(--ps-gold));
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.45rem;
	box-shadow: 0 12px 26px rgba(158, 73, 44, 0.3);
}
.ps-vm-img {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	border-radius: var(--ps-radius-md);
	background: var(--ps-surface-2);
	margin-bottom: 1.25rem;
	display: block;
}
.ps-vm-col h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.5rem;
}
.ps-vm-col p {
	color: var(--ps-body);
	margin: 0;
	line-height: 1.6;
}

/* How it works */
.ps-step-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-md);
	padding: 1.85rem;
	height: 100%;
	transition: var(--ps-transition);
}
.ps-step-card:hover {
	border-color: var(--ps-clay-400);
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.08);
	transform: translateY(-3px);
}
.ps-step-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	background: var(--ps-text-dark);
	color: #fff;
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.35rem 0.85rem;
	border-radius: var(--ps-radius-sm);
	margin-bottom: 1.1rem;
}
.ps-step-card h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.3rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.6rem;
}
.ps-step-card p {
	color: var(--ps-body);
	margin: 0;
	line-height: 1.6;
}

/* Team minimal portraits */
.ps-team2-photo {
	width: 100%;
	aspect-ratio: 3/4;
	object-fit: cover;
	border-radius: var(--ps-radius-md);
	background: var(--ps-surface-2);
	display: block;
	margin-bottom: 1rem;
	transition: var(--ps-transition);
}
.ps-team2:hover .ps-team2-photo {
	filter: brightness(0.97);
	transform: translateY(-3px);
}
.ps-team2 h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.08rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.1rem;
}
.ps-team2-role {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ps-muted);
}
.ps-team2-cred {
	font-size: 0.82rem;
	color: var(--ps-muted);
	margin-top: 0.3rem;
}
.ps-readmore {
	font-family: var(--ps-font-body);
	font-weight: 600;
	color: var(--ps-clay-600);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	transition: var(--ps-transition);
}
.ps-readmore:hover {
	gap: 0.6rem;
	color: var(--ps-clay-700);
}

/* Partners logo grid */
.ps-partner-cell {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 118px;
	padding: 1.4rem;
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	transition: var(--ps-transition);
}
.ps-partner-cell:hover {
	border-color: var(--ps-line-strong);
	box-shadow: 0 10px 26px rgba(26, 26, 26, 0.06);
}
.ps-partner-cell img {
	max-height: 104px;
	max-width: 200px;
	width: auto;
	object-fit: contain;
}

/* Testimonials */
.ps-rating-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--ps-font-body);
	color: var(--ps-body);
}
.ps-rating-badge .ps-stars {
	color: var(--ps-gold);
	font-size: 1.05rem;
	letter-spacing: -0.02em;
}
.ps-rating-badge strong {
	color: var(--ps-text-dark);
}
.ps-review-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	padding: 1.6rem;
	box-shadow: 0 10px 30px rgba(26, 26, 26, 0.06);
	height: 100%;
}
.ps-review-stars {
	color: var(--ps-gold);
	font-size: 0.9rem;
	margin-bottom: 0.75rem;
}
.ps-review-text {
	color: var(--ps-body);
	line-height: 1.6;
	margin-bottom: 1.25rem;
}
.ps-review-author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.ps-review-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--ps-surface-2);
	flex-shrink: 0;
}
.ps-review-name {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
	font-size: 0.95rem;
	line-height: 1.1;
}
.ps-review-time {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	color: var(--ps-muted);
}
.ps-quote-mark {
	font-family: var(--ps-font-display);
	font-size: 4rem;
	line-height: 0.5;
	color: var(--ps-clay-300);
}
.ps-tctrl {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--ps-line-strong);
	background: var(--ps-surface);
	color: var(--ps-text-dark);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: var(--ps-transition);
}
.ps-tctrl:hover {
	background: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	color: #fff;
}

/* Guarantees + bands */
.ps-guarantee {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.ps-guarantee i {
	color: var(--ps-clay-500);
	font-size: 1.5rem;
	margin-top: 0.1rem;
}
.ps-guarantee h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.25rem;
}
.ps-guarantee p {
	color: var(--ps-body);
	font-size: 0.92rem;
	margin: 0;
	line-height: 1.55;
}
.ps-band-dark {
	background: var(--ps-bg-dark);
	color: #fff;
}
.ps-band-dark .ps-section-title {
	color: #fff;
}
.ps-band-dark .ps-cred-text {
	color: rgba(255, 255, 255, 0.85);
}

/* FAQ two-column + call card */
.ps-faq-call {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	padding: 1.85rem;
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.08);
}
.ps-faq-call-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--ps-surface-2);
}
.btn-contact-submit {
	background: var(--ps-clay-500);
	color: #fff;
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.8rem 2rem;
	font-weight: 700;
	font-family: var(--ps-font-body);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: var(--ps-transition);
	text-decoration: none;
}
.btn-contact-submit:hover {
	background: var(--ps-clay-600);
	transform: translateY(-2px);
}

/* ====== Polish: key facts + commitments ====== */
.ps-keyfacts {
	overflow: hidden;
}
.ps-keyfacts-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 1.85rem 2rem 1.35rem;
	border-bottom: 1px solid var(--ps-line);
}
.ps-keyfacts-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.45rem;
	color: var(--ps-text-dark);
	margin: 0.35rem 0 0;
}
.ps-fact-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 0;
}
@media (max-width: 575.98px) {
	.ps-fact-grid {
		grid-template-columns: 1fr;
	}
}
@media (min-width: 576px) and (max-width: 991.98px) {
	.ps-fact-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
.ps-fact {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1.5rem 1.85rem;
	border-right: 1px solid var(--ps-line);
	border-bottom: 1px solid var(--ps-line);
}
.ps-fact-ico {
	width: 44px;
	height: 44px;
	border-radius: var(--ps-radius-sm);
	background: var(--ps-clay-50);
	color: var(--ps-clay-600);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	flex-shrink: 0;
}
.ps-fact dt {
	font-family: var(--ps-font-mono);
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--ps-muted);
	margin-bottom: 0.3rem;
}
.ps-fact dd {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	margin: 0;
	line-height: 1.25;
}
.ps-fact dd span {
	font-family: var(--ps-font-body);
	font-weight: 400;
	font-size: 0.85rem;
	color: var(--ps-muted);
	display: block;
	margin-top: 0.1rem;
}

.ps-commit {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 0.35rem 0;
}
.ps-commit-ico {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ps-clay-50);
	color: var(--ps-clay-600);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.05rem;
	flex-shrink: 0;
}
.ps-commit span.t {
	color: var(--ps-text-dark);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.4;
	display: block;
}
.ps-commit span.d {
	color: var(--ps-muted);
	font-size: 0.85rem;
	line-height: 1.4;
}
.ps-resp-band {
	background: var(--ps-surface-2);
}
section[id] {
	scroll-margin-top: 100px;
}

/* ==========================================================================
       NAMIBIA TRAVEL PAGE SECTION
========================================================================== */

/* ====== Destination page ====== */
.ps-dest-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: 78vh;
}
.ps-dest-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ps-dest-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(20, 16, 11, 0.45) 0%,
		rgba(20, 16, 11, 0.82) 100%
	);
}
.ps-dest-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 4.5rem;
}
.ps-dest-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.5rem, 1.5rem + 3.4vw, 4rem);
	line-height: 1.04;
}
.ps-dest-lead {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.15rem;
	line-height: 1.65;
	max-width: 60ch;
}
.ps-hl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.ps-hl-chip {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--ps-radius-pill);
	padding: 0.4rem 0.9rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.ps-hl-chip i {
	color: var(--ps-clay-300);
}

.ps-cta-card {
	background: var(--ps-surface);
	border-radius: var(--ps-radius-lg);
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
	padding: 1.85rem;
}
.ps-cta-card h3,
.ps-cta-card .ps-cta-card-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
	font-size: 1.35rem;
}
.ps-cta-card p {
	color: var(--ps-body);
	font-size: 0.95rem;
	line-height: 1.55;
}
.ps-cta-btn {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	background: var(--ps-clay-500);
	color: #fff;
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.85rem;
	font-weight: 700;
	font-family: var(--ps-font-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-cta-btn:hover {
	background: var(--ps-clay-600);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(158, 73, 44, 0.3);
}
.ps-cta-wa {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: transparent;
	color: var(--ps-text-dark);
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-pill);
	padding: 0.8rem;
	font-weight: 600;
	font-family: var(--ps-font-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-cta-wa i {
	color: #25d366;
	font-size: 1.15rem;
}
.ps-cta-wa:hover {
	border-color: #25d366;
}
.ps-cta-meta {
	font-family: var(--ps-font-mono);
	font-size: 0.74rem;
	color: var(--ps-muted);
}
.ps-cta-meta a {
	color: var(--ps-text-dark);
	text-decoration: none;
}

.ps-do-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	padding: 1.6rem;
	height: 100%;
	transition: var(--ps-transition);
}
.ps-do-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.1);
}
.ps-do-ico {
	width: 50px;
	height: 50px;
	border-radius: var(--ps-radius-sm);
	background: var(--ps-clay-50);
	color: var(--ps-clay-600);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.35rem;
	margin-bottom: 1rem;
}
.ps-do-card h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.12rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.4rem;
}
.ps-do-card p {
	color: var(--ps-body);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0;
}

.ps-dcard {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	height: 100%;
	transition: var(--ps-transition);
	display: flex;
	flex-direction: column;
}
.ps-dcard:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.12);
}
.ps-dcard-img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	background: var(--ps-surface-2);
	display: block;
}
.ps-dcard-body {
	padding: 1.25rem 1.35rem 1.4rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.ps-dcard-body h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.4rem;
}
.ps-dcard-body p {
	color: var(--ps-body);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0 0 1rem;
	flex-grow: 1;
}
.ps-dcard-link {
	font-family: var(--ps-font-body);
	font-weight: 600;
	color: var(--ps-clay-600);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	transition: var(--ps-transition);
}
.ps-dcard-link:hover {
	gap: 0.6rem;
	color: var(--ps-clay-700);
}

.ps-month-scroll {
	overflow-x: auto;
}
.ps-month-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	overflow: hidden;
	font-size: 0.94rem;
}
.ps-month-table th,
.ps-month-table td {
	text-align: left;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--ps-line);
	vertical-align: top;
}
.ps-month-table thead th {
	font-family: var(--ps-font-mono);
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ps-muted);
	background: var(--ps-surface-2);
}
.ps-month-table tbody tr:last-child td {
	border-bottom: 0;
}
.ps-month-table .m {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
	white-space: nowrap;
}
.ps-month-table tr.peak {
	background: var(--ps-clay-50);
}
.ps-season {
	display: inline-block;
	font-family: var(--ps-font-mono);
	font-size: 0.64rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.2rem 0.55rem;
	border-radius: var(--ps-radius-pill);
	white-space: nowrap;
}
.ps-season.dry {
	background: rgba(184, 85, 51, 0.12);
	color: var(--ps-clay-700);
}
.ps-season.green {
	background: rgba(0, 144, 72, 0.12);
	color: #0a7c43;
}
.ps-season.shoulder {
	background: rgba(246, 198, 18, 0.2);
	color: #8a6d00;
}
@media (max-width: 767.98px) {
	.ps-month-table {
		min-width: 660px;
	}
}
.ps-best-callout {
	background: var(--ps-clay-50);
	border: 1px solid var(--ps-line);
	border-left: 4px solid var(--ps-clay-500);
	border-radius: var(--ps-radius-md);
	padding: 1.25rem 1.5rem;
}

.ps-info-item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.ps-info-item i {
	color: var(--ps-clay-500);
	font-size: 1.4rem;
	margin-top: 0.1rem;
	flex-shrink: 0;
}
.ps-info-item h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.25rem;
}
.ps-info-item p {
	color: var(--ps-body);
	font-size: 0.92rem;
	margin: 0;
	line-height: 1.55;
}

/* ====== Reasons / stat band / month grid / tours ====== */
.ps-reason {
	display: flex;
	gap: 1.1rem;
	align-items: flex-start;
}
.ps-reason-num {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 1.7rem;
	color: var(--ps-clay-400);
	line-height: 1;
	flex-shrink: 0;
	width: 2.4rem;
}
.ps-reason h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.35rem;
}
.ps-reason p {
	color: var(--ps-body);
	font-size: 0.93rem;
	line-height: 1.55;
	margin: 0;
}
.ps-statband {
	background: linear-gradient(180deg, #221d17 0%, #14110c 100%);
	border-top: 3px solid var(--ps-clay-500);
}
.ps-stat-num {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: clamp(2rem, 1.4rem + 2vw, 2.9rem);
	color: #fff;
	line-height: 1;
}
.ps-stat-num span {
	color: var(--ps-clay-400);
}
.ps-stat-label {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 0.5rem;
}
.ps-month-cell {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	padding: 1rem 1.1rem;
	height: 100%;
	transition: var(--ps-transition);
}
.ps-month-cell.peak {
	border-color: var(--ps-clay-300);
	background: var(--ps-clay-50);
}
.ps-month-cell .mh {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.45rem;
}
.ps-month-cell .mn {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
}
.ps-month-cell p {
	color: var(--ps-body);
	font-size: 0.83rem;
	line-height: 1.45;
	margin: 0;
}
.ps-tour-badge {
	position: absolute;
	top: 0.85rem;
	left: 0.85rem;
	background: rgba(20, 16, 11, 0.82);
	color: #fff;
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.32rem 0.7rem;
	border-radius: var(--ps-radius-pill);
}
.ps-tour-price {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
}
.ps-tour-price span {
	font-family: var(--ps-font-body);
	font-weight: 400;
	font-size: 0.8rem;
	color: var(--ps-muted);
}

/* ====== Five reasons (zigzag) ====== */
.ps-reason-row {
	position: relative;
}
.ps-reason-imgcol {
	position: relative;
}
.ps-reason-img {
	position: relative;
	border-radius: var(--ps-radius-lg);
	overflow: hidden;
	background: var(--ps-surface-2);
	aspect-ratio: 5 / 4;
}
.ps-reason-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ps-reason-bignum {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: clamp(4rem, 3rem + 4vw, 7rem);
	line-height: 0.8;
	color: transparent;
	-webkit-text-stroke: 2px var(--ps-clay-400);
	position: absolute;
	top: -1.4rem;
	z-index: 3;
	pointer-events: none;
}
.ps-reason-bignum.l {
	left: 0.4rem;
}
.ps-reason-bignum.r {
	right: 0.4rem;
}
.ps-reason-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ps-blue-600);
	font-weight: 700;
}
.ps-reason-h {
	font-family: var(--ps-font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem);
	color: var(--ps-text-dark);
	line-height: 1.1;
}
.ps-reason-text p {
	color: var(--ps-body);
	line-height: 1.7;
}
.ps-tag {
	display: inline-block;
	font-family: var(--ps-font-body);
	font-size: 0.82rem;
	color: var(--ps-text-dark);
	background: var(--ps-surface);
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-pill);
	padding: 0.4rem 0.95rem;
}

/* ====== Best months strip ====== */
.ps-when-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ps-blue-600);
	font-weight: 700;
}
.ps-when-title {
	font-family: var(--ps-font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.4rem);
	color: var(--ps-text-dark);
}
.ps-monthbar {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	background: var(--ps-surface);
}
@media (max-width: 767.98px) {
	.ps-monthbar {
		grid-template-columns: repeat(6, 1fr);
	}
}
.ps-mb-cell {
	padding: 1.1rem 0.25rem;
	text-align: center;
	border-right: 1px solid var(--ps-line);
}
.ps-mb-cell:last-child {
	border-right: 0;
}
@media (max-width: 767.98px) {
	.ps-mb-cell:nth-child(6) {
		border-right: 0;
	}
	.ps-mb-cell:nth-child(n + 7) {
		border-top: 1px solid var(--ps-line);
	}
}
.ps-mb-cell .dot {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin: 0 auto 0.6rem;
	background: var(--ps-faint);
}
.ps-mb-cell .lbl {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.04em;
	color: var(--ps-muted);
}
.ps-mb-cell.prime {
	background: rgba(46, 122, 78, 0.09);
}
.ps-mb-cell.prime .dot {
	background: #2e7a4e;
}
.ps-mb-cell.prime .lbl {
	color: var(--ps-text-dark);
}
.ps-mb-cell.good .dot {
	background: #d99a2c;
}
.ps-mb-cell.quiet .dot {
	background: var(--ps-faint);
}
.ps-month-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 1.75rem;
}
.ps-leg {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.88rem;
	color: var(--ps-body);
}
.ps-leg .dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
}
.ps-leg.prime .dot {
	background: #2e7a4e;
}
.ps-leg.good .dot {
	background: #d99a2c;
}
.ps-leg.quiet .dot {
	background: var(--ps-faint);
}
.ps-month-note {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	color: var(--ps-faint);
}

/* Namibia at a glance - quick-facts card (travel-guide quick-answer block) */
.ps-glance {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	box-shadow: 0 1px 2px var(--ps-line-muted);
}
.ps-glance-head {
	background: var(--ps-blue-400);
	color: #fff;
	padding: 0.9rem 1.25rem;
	font-family: var(--ps-font-display);
	font-size: 1.05rem;
	font-weight: 700;
}
.ps-glance-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
.ps-glance-item {
	padding: 0.95rem 1.25rem;
	border-top: 1px solid var(--ps-line);
	border-right: 1px solid var(--ps-line);
}
.ps-glance-item:nth-child(2n) {
	border-right: 0;
}
.ps-glance-k {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ps-clay-500);
	margin-bottom: 0.25rem;
}
.ps-glance-v {
	font-size: var(--ps-text-sm);
	color: var(--ps-text-dark);
	line-height: 1.45;
}
@media (max-width: 575.98px) {
	.ps-glance-grid {
		grid-template-columns: 1fr;
	}
	.ps-glance-item {
		border-right: 0;
	}
}

/* ==========================================================================
       DESTINATIONS PAGE SECTION
========================================================================== */
/* ====== Destinations list ====== */
.ps-dl-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: 56vh;
}
.ps-dl-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.8) brightness(0.9);
}
.ps-dl-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(34, 24, 16, 0.55) 0%,
		rgba(20, 16, 11, 0.88) 100%
	);
}
.ps-dl-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 4rem;
}
.ps-dl-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.4rem, 1.5rem + 3vw, 3.75rem);
	line-height: 1.04;
}
.ps-dl-lead {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.15rem;
	line-height: 1.65;
	max-width: 62ch;
}
.ps-country-item {
	padding: 3rem 0;
	border-bottom: 1px solid var(--ps-line);
}
.ps-country-item:last-child {
	border-bottom: 0;
}
.ps-country-img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--ps-radius-lg);
	background: var(--ps-surface-2);
	display: block;
}
.ps-country-num {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: clamp(2rem, 1.4rem + 1.6vw, 2.9rem);
	line-height: 0.9;
	color: var(--ps-clay-500);
	flex-shrink: 0;
}
.ps-country-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ps-blue-600);
	font-weight: 700;
}
.ps-country-name {
	font-family: var(--ps-font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	font-size: clamp(1.8rem, 1.4rem + 1.3vw, 2.3rem);
	color: var(--ps-text-dark);
	margin: 0;
	line-height: 1.05;
}
.ps-country-desc {
	color: var(--ps-body);
	line-height: 1.7;
}
.ps-cfacts {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.25rem;
}
.ps-cfact .k {
	font-family: var(--ps-font-mono);
	font-size: 0.62rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ps-muted);
	display: block;
	margin-bottom: 0.15rem;
}
.ps-cfact .v {
	font-family: var(--ps-font-body);
	font-weight: 600;
	color: var(--ps-text-dark);
	font-size: 0.92rem;
}
.ps-country-link {
	font-family: var(--ps-font-body);
	font-weight: 700;
	color: var(--ps-clay-600);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	transition: var(--ps-transition);
}
.ps-country-link:hover {
	gap: 0.65rem;
	color: var(--ps-clay-700);
}

/* ==========================================================================
       HOLIDAY TYPES PAGE SECTION
========================================================================== */

/* ====== Holiday types ====== */
.ps-ht-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: 52vh;
}
.ps-ht-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.8) brightness(0.9);
}
.ps-ht-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(34, 24, 16, 0.55) 0%,
		rgba(20, 16, 11, 0.88) 100%
	);
}
.ps-ht-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 3.5rem;
}
.ps-ht-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.4rem, 1.5rem + 3vw, 3.6rem);
	line-height: 1.04;
}
.ps-ht-lead {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.12rem;
	line-height: 1.65;
	max-width: 60ch;
}
.ps-ht-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: var(--ps-transition);
}
.ps-ht-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.12);
	border-color: var(--ps-line-strong);
}
.ps-ht-imgwrap {
	position: relative;
}
.ps-ht-img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	background: var(--ps-surface-2);
	display: block;
}
.ps-ht-ico {
	position: absolute;
	bottom: 0.85rem;
	left: 0.85rem;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--ps-clay-500);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.15rem;
	box-shadow: 0 6px 16px rgba(20, 16, 11, 0.32);
}
.ps-ht-body {
	padding: 1.35rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.ps-ht-card h2 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.12rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.45rem;
}
.ps-ht-card p {
	color: var(--ps-body);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0 0 1rem;
	flex-grow: 1;
}
.ps-ht-link {
	font-family: var(--ps-font-body);
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--ps-clay-600);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	transition: var(--ps-transition);
}
.ps-ht-link:hover {
	gap: 0.6rem;
	color: var(--ps-clay-700);
}

/* ==========================================================================
       LEGAL PAGE SECTION
========================================================================== */
/* ====== Legal / policy pages ====== */
.ps-legal-hero {
	border-top: 0px solid var(--ps-clay-500);
	padding-top: 8.5rem;
	padding-bottom: 2.75rem;
	background: #2d403d url(images/pattern-two.webp) !important;
}
.ps-crumb {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.5);
}
.ps-crumb a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
}
.ps-crumb a:hover {
	color: #fff;
}
.ps-legal-hero h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
	margin: 0.6rem 0 0;
}
.ps-legal-wrap {
	padding: 3.5rem 0 5rem;
}
.ps-legal-nav {
	position: sticky;
	top: 100px;
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	padding: 0.6rem;
	box-shadow: 0 14px 40px rgba(26, 26, 26, 0.06);
}
.ps-legal-nav-title {
	font-family: var(--ps-font-mono);
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--ps-muted);
	padding: 0.85rem 0.9rem 0.6rem;
}
.ps-legal-nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.8rem 0.95rem;
	border-radius: var(--ps-radius-sm);
	color: var(--ps-text-dark);
	text-decoration: none;
	font-weight: 600;
	font-family: var(--ps-font-body);
	transition: var(--ps-transition);
}
.ps-legal-nav a:hover {
	background: var(--ps-surface-2);
	color: var(--ps-clay-600);
}
.ps-legal-nav a.active {
	background: var(--ps-clay-50);
	color: var(--ps-clay-700);
}
.ps-legal-nav a i {
	font-size: 1rem;
	opacity: 0;
	transform: translateX(-4px);
	transition: var(--ps-transition);
}
.ps-legal-nav a.active i,
.ps-legal-nav a:hover i {
	opacity: 1;
	transform: translateX(0);
}
@media (max-width: 991.98px) {
	.ps-legal-nav {
		position: static;
		margin-bottom: 2rem;
	}
}
.ps-legal-content {
	max-width: 72ch;
}
.ps-legal-updated {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ps-clay-600);
	font-weight: 700;
	font-family: var(--ps-font-body);
	margin-bottom: 0.5rem;
}
.ps-legal-intro {
	color: var(--ps-muted);
	font-size: 1.05rem;
	line-height: 1.7;
	margin-bottom: 2.5rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--ps-line);
}
.ps-legal-content h2 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.45rem;
	color: var(--ps-text-dark);
	margin: 2.75rem 0 1rem;
	scroll-margin-top: 100px;
}
.ps-legal-content h2:first-of-type {
	margin-top: 0;
}
.ps-legal-content h3 {
	font-family: var(--ps-font-display);
	font-weight: 600;
	font-size: 1.12rem;
	color: var(--ps-text-dark);
	margin: 1.6rem 0 0.7rem;
}
.ps-legal-content p,
.ps-legal-content li {
	color: var(--ps-body);
	line-height: 1.75;
}
.ps-legal-content p {
	margin-bottom: 1.15rem;
}
.ps-legal-content ul {
	padding-left: 1.25rem;
	margin-bottom: 1.25rem;
}
.ps-legal-content li {
	margin-bottom: 0.5rem;
}
.ps-legal-content li::marker {
	color: var(--ps-clay-500);
}
.ps-legal-content a {
	color: var(--ps-blue-600);
	text-decoration: underline;
}
.ps-legal-content a:hover {
	color: var(--ps-blue-700);
}
.ps-legal-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.95rem;
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	overflow: hidden;
}
.ps-legal-content th,
.ps-legal-content td {
	text-align: left;
	padding: 0.8rem 1rem;
	border-bottom: 1px solid var(--ps-line);
}
.ps-legal-content thead th {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ps-muted);
	background: var(--ps-surface-2);
}
.ps-legal-content tbody tr:last-child td {
	border-bottom: 0;
}
.ps-legal-cta {
	margin-top: 3rem;
	padding: 1.75rem;
	background: var(--ps-surface-2);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
}

/* ==========================================================================
       CONTACT PAGE SECTION
========================================================================== */

/* ==========================================================================
       CONTACT PAGE SECTION
========================================================================== */
/* ====== Contact page ====== */
.ps-contact-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: 52vh;
}
.ps-contact-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.62) sepia(0.18) brightness(0.86);
}
.ps-contact-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(34, 24, 16, 0.62) 0%,
		rgba(20, 16, 11, 0.92) 100%
	);
}
.ps-contact-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 6rem;
}
.ps-contact-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.5rem, 1.6rem + 3vw, 3.75rem);
	line-height: 1.05;
}
.ps-contact-lead {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.15rem;
	line-height: 1.6;
	max-width: 56ch;
}

.ps-card-shift {
	margin-top: -5.5rem;
	position: relative;
	z-index: 3;
}
.ps-contact-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	box-shadow: 0 30px 70px rgba(26, 26, 26, 0.16);
	overflow: hidden;
}
.ps-form-pane {
	padding: clamp(1.75rem, 4vw, 3rem);
}
.ps-pane-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
}
.ps-form-label {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ps-muted);
	margin-bottom: 0.4rem;
	display: block;
}
.ps-input {
	width: 100%;
	background: var(--ps-paper);
	border: 1px solid var(--ps-line-strong);
	color: var(--ps-text-dark);
	border-radius: var(--ps-radius-sm);
	padding: 0.7rem 0.9rem;
	font-size: 0.98rem;
	font-family: var(--ps-font-body);
	transition: var(--ps-transition);
}
.ps-input::placeholder {
	color: var(--ps-faint);
}
.ps-input:focus {
	outline: none;
	border-color: var(--ps-clay-400);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(184, 85, 51, 0.18);
}
.ps-input option {
	color: var(--ps-text-dark);
}
.btn-contact-submit {
	background: var(--ps-clay-500);
	color: #fff;
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.8rem 2.2rem;
	font-weight: 700;
	font-family: var(--ps-font-body);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: var(--ps-transition);
}
.btn-contact-submit:hover {
	background: var(--ps-clay-600);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(158, 73, 44, 0.3);
}

.ps-contact-sidebar {
	background: var(--ps-surface-2);
	color: var(--ps-body);
	padding: clamp(1.75rem, 4vw, 2.75rem);
	height: 100%;
	display: flex;
	flex-direction: column;
	border-left: 1px solid var(--ps-line);
}
.ps-detail-item {
	display: flex;
	gap: 1rem;
	margin-bottom: 1.4rem;
}
.ps-detail-icon {
	color: var(--ps-clay-600);
	font-size: 1.2rem;
	margin-top: 0.15rem;
	flex-shrink: 0;
}
.ps-detail-item h5 {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ps-muted);
	margin-bottom: 0.25rem;
}
.ps-detail-item p,
.ps-detail-item a {
	color: var(--ps-body);
	margin: 0;
	text-decoration: none;
	line-height: 1.5;
}
.ps-detail-item a:hover {
	color: var(--ps-clay-600);
}
.ps-wa-link {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	padding: 1rem 1.2rem;
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-wa-link:hover {
	border-color: var(--ps-clay-300);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(26, 26, 26, 0.07);
}
.ps-wa-badge {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	flex-shrink: 0;
}
.ps-sidebar-social {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--ps-line-strong);
	color: var(--ps-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-sidebar-social:hover {
	background: var(--ps-clay-500);
	border-color: var(--ps-clay-500);
	color: #fff;
	transform: translateY(-2px);
}
.ps-map-frame {
	border: 0;
	width: 100%;
	height: 440px;
	display: block;
}

.fancy-header {
	font-family: var(--ps-font-display);
}

.p-section {
	/* background: #f4f1e9 url(images/pattern-two.webp); */
	background: var(--ps-surface-2) url(images/pattern-two.webp);
}

.z-4 {
	z-index: 4;
}

.z-5 {
	z-index: 5;
}

.z-6 {
	z-index: 6;
}

.icon-user {
	display: inline-block;
	width: 42px;
	height: 42px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Cpath fill='%23d6d6d6' d='M45 88c-11.049 0-21.18-2.003-29.021-8.634C6.212 71.105 0 58.764 0 45C0 20.187 20.187 0 45 0s45 20.187 45 45c0 13.765-6.212 26.105-15.979 34.366C66.181 85.998 56.049 88 45 88z'/%3E%3Cpath fill='%23a5a4a4' d='M45 60.71c-11.479 0-20.818-9.339-20.818-20.817 0-11.479 9.339-20.818 20.818-20.818 11.479 0 20.817 9.339 20.817 20.818C65.817 51.371 56.479 60.71 45 60.71z'/%3E%3Cpath fill='%23a5a4a4' d='M45 90c-10.613 0-20.922-3.773-29.028-10.625-.648-.548-.88-1.444-.579-2.237C20.034 64.919 31.933 56.71 45 56.71s24.966 8.209 29.607 20.428c.301.793.069 1.689-.579 2.237C65.922 86.227 55.613 90 45 90z'/%3E%3C/svg%3E");
}

.ps-footer-subheading::before {
	content: '';
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--ps-gold);
	box-shadow: 0 0 0 0.14rem rgba(246, 198, 18, 0.2);
	flex-shrink: 0;
}

.ps-footer-subheading {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
}

/* ====== Breadcrumb (shared component) ====== */
.ps-breadcrumb {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.ps-breadcrumb ol {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
}
.ps-breadcrumb li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ps-muted);
}
.ps-breadcrumb li:not(:last-child)::after {
	content: '/';
	color: var(--ps-faint);
}
.ps-breadcrumb a {
	color: var(--ps-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-breadcrumb a:hover {
	color: var(--ps-clay-600);
}
.ps-breadcrumb [aria-current='page'] {
	color: var(--ps-clay-600);
}
.ps-breadcrumb--on-dark li {
	color: rgba(255, 255, 255, 0.55);
}
.ps-breadcrumb--on-dark a {
	color: rgba(255, 255, 255, 0.85);
}
.ps-breadcrumb--on-dark a:hover {
	color: #fff;
}
.ps-breadcrumb--on-dark li:not(:last-child)::after {
	color: rgba(255, 255, 255, 0.4);
}
.ps-breadcrumb--on-dark [aria-current='page'] {
	color: var(--ps-clay-300);
}

#hero-form .wpcf7 form.invalid .wpcf7-response-output,
#hero-form .wpcf7 form.unaccepted .wpcf7-response-output,
#hero-form .wpcf7 form.payment-required .wpcf7-response-output {
	color: white;
}

#hero-form .wpcf7-spinner {
	display: none !important;
}

/* Checkbox groups for the contact form */
.ps-check-group {
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	padding: 1rem 1.1rem 0.5rem;
	background: var(--ps-surface);
}
.ps-check-group .form-check {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-right: 1.5rem;
	margin-bottom: 0.6rem;
}
.ps-check-group .form-check-input {
	border: 0px;
	margin-top: 0;
	cursor: pointer;
}
.ps-check-group .form-check-input:checked {
	background-color: var(--ps-clay);
	border-color: var(--ps-clay);
}
.ps-check-group .form-check-label {
	color: var(--ps-text-dark);
	font-size: 0.95rem;
	cursor: pointer;
}

.navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ==========================================================================
       Itinerary PAGE SECTION
========================================================================== */

/* ====== Tour detail page ====== */
.ps-tour-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	/* min-height: 72vh; */
	min-height: 62vh;
}
.ps-tour-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ps-tour-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(20, 16, 11, 0.2) 0%,
		rgba(20, 16, 11, 0.85) 100%
	);
}
.ps-tour-hero .container {
	position: relative;
	z-index: 2;
	padding-top: 9.5rem;
	padding-bottom: 2.75rem;
}
.ps-tour-eyebrow {
	font-family: var(--ps-font-mono);
	font-size: 0.74rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ps-clay-300);
	font-weight: 700;
}
.ps-tour-h1 {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.02em;
	font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem);
	line-height: 1.05;
}
.ps-tour-sub {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.1rem;
	max-width: 62ch;
}
.ps-tour-rating {
	font-family: var(--ps-font-body);
	color: #fff;
	font-weight: 600;
}
.ps-tourfacts {
	background: var(--ps-surface);
	border-bottom: 1px solid var(--ps-line);
}
.ps-tour-fact {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.15rem 0;
}
.ps-tour-fact i {
	font-size: 1.5rem;
	color: var(--ps-clay-500);
}
.ps-tour-fact .k {
	font-family: var(--ps-font-mono);
	font-size: 0.64rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ps-muted);
}
.ps-tour-fact .v {
	font-family: var(--ps-font-display);
	font-weight: 700;
	color: var(--ps-text-dark);
}
.ps-content-h {
	font-family: var(--ps-font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem);
	color: var(--ps-text-dark);
}
.ps-prose p {
	color: var(--ps-body);
	line-height: 1.75;
}
.ps-hl-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ps-hl-list li {
	display: flex;
	gap: 0.7rem;
	align-items: flex-start;
	margin-bottom: 0.7rem;
	color: var(--ps-body);
}
.ps-hl-list li i {
	color: var(--ps-clay-500);
	margin-top: 0.15rem;
	flex-shrink: 0;
}
.ps-itin-item {
	position: relative;
	padding-left: 4.25rem;
	padding-bottom: 2rem;
}
.ps-itin-item:last-child {
	padding-bottom: 0;
}
.ps-itin-item::before {
	content: '';
	position: absolute;
	left: 1.4rem;
	top: 3.2rem;
	bottom: -0.2rem;
	width: 2px;
	background: var(--ps-line-strong);
}
.ps-itin-item:last-child::before {
	display: none;
}
.ps-itin-badge {
	position: absolute;
	left: 0;
	top: 0;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 50%;
	background: var(--ps-clay-500);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 1.05rem;
}
.ps-itin-item h3,
#itinerary h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.4rem;
}
.ps-itin-item p,
#itinerary p {
	color: var(--ps-body);
	line-height: 1.65;
	margin-bottom: 0.5rem;
}
#itinerary h3 {
	margin-bottom: 1.2rem;
}
#itinerary p {
	margin-bottom: 1.2rem;
}
.ps-itin-meta {
	font-family: var(--ps-font-mono);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ps-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
}
.ps-itin-meta i {
	color: var(--ps-clay-400);
}
.ps-ie-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ps-ie-list li {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	margin-bottom: 0.6rem;
	color: var(--ps-body);
	font-size: 0.95rem;
}
.ps-ie-list.inc li i {
	color: #0a7c43;
	margin-top: 0.15rem;
	flex-shrink: 0;
}
.ps-ie-list.exc li i {
	color: var(--ps-faint);
	margin-top: 0.15rem;
	flex-shrink: 0;
}
.ps-route {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.3rem;
}
.ps-route-step {
	font-family: var(--ps-font-body);
	font-weight: 600;
	color: var(--ps-text-dark);
	background: var(--ps-surface-2);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-pill);
	padding: 0.45rem 1rem;
}
.ps-route i {
	color: var(--ps-clay-400);
}
.ps-gallery-img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--ps-radius-md);
	background: var(--ps-surface-2);
	display: block;
}
.ps-book-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-lg);
	box-shadow: 0 20px 50px rgba(26, 26, 26, 0.08);
	padding: 1.6rem;
	position: sticky;
	top: 140px;
}
.ps-book-from {
	font-family: var(--ps-font-mono);
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ps-muted);
}
.ps-book-price {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: 2rem;
	color: var(--ps-text-dark);
	line-height: 1;
}
.ps-book-price span {
	font-family: var(--ps-font-body);
	font-weight: 400;
	font-size: 0.85rem;
	color: var(--ps-muted);
}
.ps-book-row {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--ps-body);
	font-size: 0.92rem;
}
.ps-book-row i {
	color: var(--ps-clay-500);
	font-size: 1.05rem;
}
.ps-book-btn {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	background: var(--ps-clay-500);
	color: #fff;
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.85rem;
	font-weight: 700;
	font-family: var(--ps-font-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-book-btn:hover {
	background: var(--ps-clay-600);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(158, 73, 44, 0.3);
}
.ps-book-wa {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: transparent;
	color: var(--ps-text-dark);
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-pill);
	padding: 0.8rem;
	font-weight: 600;
	font-family: var(--ps-font-body);
	text-decoration: none;
	transition: var(--ps-transition);
}
.ps-book-wa i {
	color: #25d366;
	font-size: 1.15rem;
}
.ps-book-wa:hover {
	border-color: #25d366;
}
@media (max-width: 991.98px) {
	.ps-book-card {
		position: static;
	}
}
.ps-rt-card {
	background: var(--ps-surface);
	border: 1px solid var(--ps-line);
	border-radius: var(--ps-radius-md);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: var(--ps-transition);
}
.ps-rt-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(26, 26, 26, 0.12);
}
.ps-rt-imgwrap {
	position: relative;
}
.ps-rt-img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	background: var(--ps-surface-2);
	display: block;
}
.ps-rt-badge {
	position: absolute;
	top: 0.8rem;
	left: 0.8rem;
	background: rgba(20, 16, 11, 0.82);
	color: #fff;
	font-family: var(--ps-font-mono);
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.3rem 0.7rem;
	border-radius: var(--ps-radius-pill);
}
.ps-rt-body {
	padding: 1.1rem 1.25rem 1.3rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.ps-rt-body h3 {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--ps-text-dark);
	margin-bottom: 0.35rem;
}
.ps-rt-body p {
	color: var(--ps-body);
	font-size: 0.9rem;
	line-height: 1.5;
	margin: 0 0 1rem;
	flex-grow: 1;
}
.ps-rt-link {
	font-family: var(--ps-font-body);
	font-weight: 600;
	color: var(--ps-clay-600);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	transition: var(--ps-transition);
}
.ps-rt-link:hover {
	gap: 0.6rem;
}

/* ====== Itinerary view v2 improvements ====== */
.ps-subnav {
	position: sticky;
	top: 64px;
	z-index: 20;
	background: var(--ps-surface);
	border-bottom: 1px solid var(--ps-line);
	box-shadow: 0 4px 16px rgba(26, 26, 26, 0.04);
}
.ps-subnav-inner {
	display: flex;
	gap: 0.25rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ps-subnav-inner::-webkit-scrollbar {
	display: none;
}
.ps-subnav a {
	white-space: nowrap;
	font-family: var(--ps-font-body);
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--ps-muted);
	text-decoration: none;
	padding: 1rem 0.9rem;
	border-bottom: 2px solid transparent;
	transition: var(--ps-transition);
}
.ps-subnav a:hover {
	color: var(--ps-text-dark);
}
.ps-subnav a.active {
	color: var(--ps-clay-700);
	border-bottom-color: var(--ps-clay-500);
}
.ps-anchor {
	scroll-margin-top: 130px;
}
.ps-meal-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: var(--ps-clay-50);
	color: var(--ps-clay-700);
	font-family: var(--ps-font-mono);
	font-size: 0.62rem;
	font-weight: 700;
	margin-left: 0.25rem;
}
.ps-meal-none {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	color: var(--ps-faint);
}
.ps-meal-legend {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	color: var(--ps-muted);
}
.ps-map {
	width: 100%;
	max-width: 340px;
	margin: 0 auto;
}
.ps-map svg {
	width: 100%;
	height: auto;
	display: block;
}
.ps-routenum {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ps-routenum li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.4rem 0;
	color: var(--ps-text-dark);
	font-weight: 600;
}
.ps-routenum li .n {
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: var(--ps-clay-500);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: 0.82rem;
	flex-shrink: 0;
}
.ps-maplegend {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	color: var(--ps-muted);
}
.ps-reassure {
	list-style: none;
	padding: 0;
	margin: 1.1rem 0 0;
}
.ps-reassure li {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	font-size: 0.86rem;
	color: var(--ps-body);
	margin-bottom: 0.45rem;
}
.ps-reassure li i {
	color: #0a7c43;
	margin-top: 0.1rem;
	flex-shrink: 0;
}
.ps-mobile-book {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	background: var(--ps-surface);
	border-top: 1px solid var(--ps-line);
	box-shadow: 0 -6px 20px rgba(26, 26, 26, 0.1);
	padding: 0.7rem 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.ps-mobile-book .pr {
	font-family: var(--ps-font-display);
	font-weight: 800;
	color: var(--ps-text-dark);
	line-height: 1.05;
}
.ps-mobile-book .pr small {
	font-family: var(--ps-font-body);
	font-weight: 400;
	font-size: 0.68rem;
	color: var(--ps-muted);
	display: block;
}
@media (min-width: 992px) {
	.ps-mobile-book {
		display: none;
	}
}
@media (max-width: 991.98px) {
	body {
		padding-bottom: 4.75rem;
	}
}
.ps-mobile-wa {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 1.1rem;
	color: #ffffff;
	background-color: #25d366;
	border: none;
	border-radius: var(--ps-radius-pill);
	padding: 0.6rem 0.95rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	flex-shrink: 0;
	box-shadow: 0 8px 30px rgba(37, 211, 102, 0.3);
	transition: var(--ps-transition);
}
.ps-mobile-wa:hover {
	background-color: #1da851;
	color: #ffffff;
}
/* ===== 404 page ===== */
.ps-404 {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	padding-top: 9.5rem;
	background: var(--ps-paper);
	overflow: hidden;
}
.ps-404-inner {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 2.5rem 1rem;
}
.ps-404-num {
	font-family: var(--ps-font-display);
	font-weight: 800;
	font-size: clamp(4.5rem, 16vw, 9.5rem);
	line-height: 1;
	color: var(--ps-clay-500);
	display: inline-flex;
	align-items: center;
	gap: 0.06em;
	letter-spacing: -0.03em;
	margin-bottom: 0.5rem;
}
.ps-404-sun {
	width: 0.66em;
	height: 0.66em;
	border-radius: 50%;
	display: inline-block;
	background: radial-gradient(circle at 38% 34%, #ffe071, var(--ps-gold) 68%);
	box-shadow:
		0 0 0 0.05em rgba(246, 198, 18, 0.25),
		0 12px 34px rgba(246, 198, 18, 0.38);
}
.ps-404-title {
	font-family: var(--ps-font-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 4.5vw, 3rem);
	color: var(--ps-text-dark);
	letter-spacing: -0.01em;
	margin-bottom: 0.9rem;
}
.ps-404-lead {
	font-size: 1.12rem;
	line-height: 1.7;
	color: var(--ps-muted);
	max-width: 54ch;
	margin: 0 auto 2rem;
}
.ps-404-actions {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 3rem;
}
.ps-404-btn-ghost {
	font-family: var(--ps-font-body);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ps-text-dark);
	background: transparent;
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-pill);
	padding: 0.9rem 1.8rem;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: var(--ps-transition);
}
.ps-404-btn-ghost:hover {
	border-color: var(--ps-clay-400);
	color: var(--ps-clay-700);
}
.ps-404-links-label {
	font-family: var(--ps-font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ps-faint);
	display: block;
	margin-bottom: 1rem;
}
.ps-404-links-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	justify-content: center;
}
.ps-404-links-grid a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1.05rem;
	border: 1px solid var(--ps-line-strong);
	border-radius: var(--ps-radius-pill);
	background: var(--ps-surface);
	color: var(--ps-text-dark);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.92rem;
	transition: var(--ps-transition);
}
.ps-404-links-grid a i {
	color: var(--ps-clay-600);
}
.ps-404-links-grid a:hover {
	border-color: var(--ps-clay-400);
	color: var(--ps-clay-700);
	transform: translateY(-1px);
}
.ps-404-dunes {
	margin-top: auto;
	line-height: 0;
}
.ps-404-dunes svg {
	width: 100%;
	height: auto;
	display: block;
}

#hero-form .wpcf7 form.sent .wpcf7-response-output {
	color: #fff!important;
}

/* Anchor targets sit below the sticky header */
[id] { scroll-margin-top: 130px; }

/* Holiday type cards link to their own page */
.ps-ht-card { position: relative; }
.ps-ht-card h2 a:hover { color: var(--ps-clay-600) !important; }
.ps-ht-content ul { padding-left: 1.2rem; margin-bottom: 1.5rem; }
.ps-ht-content li { margin-bottom: .4rem; color: var(--ps-body); }
.ps-ht-content h2 { font-family: var(--ps-font-display); font-weight: 700; font-size: 1.5rem; margin: 2rem 0 .75rem; color: var(--ps-text-dark); }
.ps-ht-content h3 { font-family: var(--ps-font-display); font-weight: 700; font-size: 1.1rem; margin: 1.25rem 0 .4rem; color: var(--ps-text-dark); }
.ps-ht-content > p:first-child { font-size: var(--ps-text-lg); }
.ps-trip-types a.ps-tag:hover { background: var(--ps-clay-50); }
