:root {
	/* "Bold Expedition" palette. --hh-forest is now the GREEN accent (interactive/
	   hover states, CTA banner), --hh-forest-dark is the near-black ink base
	   (page bg, header/footer, dark chrome), --hh-white is the raised dark card
	   surface, --hh-cream is the page background + recessed input fields,
	   --hh-gold is the primary accent (kickers, prices, solid buttons). Deliberately
	   kept the SAME variable names as the original light theme so every existing
	   template (they all share these classes) picks up the new look with zero
	   template changes — see hikehimalayan-bold-expedition-redesign.md memory. */
	--hh-forest: #1f6f4a;
	--hh-forest-dark: #14120f;
	--hh-forest-light: #2b241d;
	--hh-gold: #c9a227;
	--hh-gold-light: #e8c860;
	--hh-cream: #14120f;
	--hh-white: #211d18;
	--hh-text: #f4efe6;
	--hh-text-muted: #b3aa9c;
	--hh-border: #34291c;
	--hh-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
	--hh-radius: 8px;
	--hh-font-heading: 'Poppins', -apple-system, Segoe UI, sans-serif;
	--hh-font-body: 'Inter', -apple-system, Segoe UI, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--hh-font-body);
	color: var(--hh-text);
	background: var(--hh-cream);
	line-height: 1.65;
	font-size: 16px;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--hh-font-heading); font-weight: 800; line-height: 1.15; color: var(--hh-text); margin: 0 0 .5em; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }
a { color: var(--hh-gold); text-decoration: none; }
a:hover { color: var(--hh-gold-light); }
img { max-width: 100%; display: block; }
ul { padding-left: 1.2em; }

/* ---------- Header ---------- */
.hh-header {
	background: var(--hh-forest-dark);
	position: sticky;
	top: 0;
	z-index: 100;
	transition: box-shadow .2s ease;
}
.hh-header.is-scrolled { box-shadow: 0 2px 20px rgba(0,0,0,.5); }
.hh-header-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 10px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
}
.hh-logo { display: flex; align-items: center; color: #fff; font-family: var(--hh-font-heading); font-weight: 700; font-size: 1.2rem; }
.hh-logo img { max-height: 62px; width: auto; }
.hh-nav { display: flex; align-items: center; gap: 6px; }
.hh-nav ul { list-style: none; display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; }
.hh-nav li { position: relative; }
.hh-nav > ul > li > a {
	display: block;
	color: #fff;
	text-decoration: none;
	font-weight: 500;
	font-size: .95rem;
	padding: 10px 14px;
	border-radius: 6px;
	opacity: .92;
	transition: background .15s ease, opacity .15s ease, color .15s ease;
}
.hh-nav > ul > li > a:hover { background: rgba(255,255,255,.08); opacity: 1; color: var(--hh-gold-light); }
.hh-nav ul ul {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--hh-white);
	min-width: 200px;
	border: 1px solid var(--hh-border);
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(0,0,0,.5);
	padding: 8px;
	z-index: 10;
}
.hh-nav li:hover > ul { display: block; }
.hh-nav ul ul li a { color: var(--hh-text); padding: 9px 12px; border-radius: 6px; font-size: .92rem; }
.hh-nav ul ul li a:hover { background: var(--hh-cream); color: var(--hh-gold); }
.hh-nav-cta { margin-left: 10px; white-space: nowrap; }
.hh-nav-account {
	display: inline-block;
	color: #fff;
	text-decoration: none;
	font-weight: 500;
	font-size: .95rem;
	padding: 10px 14px;
	border-radius: 6px;
	opacity: .92;
	white-space: nowrap;
	transition: background .15s ease, opacity .15s ease;
}
.hh-nav-account:hover { background: rgba(255,255,255,.08); opacity: 1; color: var(--hh-gold-light); }
.hh-nav-logout { opacity: .7; font-size: .85rem; }

.hh-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
}
.hh-nav-toggle span { display: block; height: 2px; width: 24px; background: #fff; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; margin: 0 auto; }
.hh-nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hh-nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.hh-nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 860px) {
	.hh-nav-toggle { display: flex; }
	.hh-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--hh-forest-dark);
		flex-direction: column;
		align-items: stretch;
		padding: 10px 20px 20px;
	}
	.hh-nav.is-open { display: flex; }
	.hh-nav ul { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
	.hh-nav ul ul { position: static; box-shadow: none; background: rgba(255,255,255,.04); margin-left: 12px; }
	.hh-nav-cta { margin: 12px 0 0; text-align: center; }
	.hh-nav-account { text-align: center; }
	.hh-header { position: relative; }
}

/* ---------- Layout ----------
   .hh-main is intentionally full-bleed (no max-width/padding): legacy
   GoodLayers page-builder pages (page.php) rely on their own full-width
   rows/stretch sections. Templates this theme actually designed wrap
   their own content in .hh-container for a constrained, padded layout. */
.hh-container { max-width: 1200px; margin: 0 auto; padding: 40px 24px 70px; }

/* ---------- Footer ---------- */
.hh-footer { background: var(--hh-forest-dark); color: #cddcd3; margin-top: 60px; border-top: 1px solid var(--hh-border); }
.hh-footer-top {
	max-width: 1200px; margin: 0 auto; padding: 56px 24px 40px;
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px;
}
.hh-footer-brand p { color: var(--hh-text-muted); }
.hh-footer-logo img { max-height: 70px; filter: brightness(0) invert(1); opacity: .95; }
.hh-footer h4 { color: #fff; font-size: 1rem; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 16px; }
.hh-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.hh-footer a { color: var(--hh-text-muted); }
.hh-footer a:hover { color: var(--hh-gold-light); }
.hh-footer-bottom { border-top: 1px solid var(--hh-border); text-align: center; padding: 18px; font-size: .85rem; color: var(--hh-text-muted); }
@media (max-width: 860px) { .hh-footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .hh-footer-top { grid-template-columns: 1fr; } }

/* ---------- Buttons ---------- */
.hh-btn {
	display: inline-block;
	padding: 13px 28px;
	border-radius: 4px;
	border: 2px solid var(--hh-text);
	background: transparent;
	color: var(--hh-text);
	text-decoration: none;
	cursor: pointer;
	font-family: var(--hh-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	font-size: .88rem;
	transition: all .18s ease;
}
.hh-btn:hover { background: var(--hh-forest); border-color: var(--hh-forest); color: #fff; }
.hh-btn-primary { background: var(--hh-gold); border-color: var(--hh-gold); color: var(--hh-forest-dark); }
.hh-btn-primary:hover { background: var(--hh-gold-light); border-color: var(--hh-gold-light); color: var(--hh-forest-dark); }
.hh-btn-sm { padding: 7px 18px; font-size: .78rem; white-space: nowrap; }

/* ---------- Generic page content (legacy page-builder pages) ---------- */
.hh-page { background: var(--hh-white); }

/* ---------- Single tour ---------- */
.hh-tour-hero { position: relative; }
.hh-tour-hero img { width: 100%; height: 440px; object-fit: cover; display: block; }
.hh-tour-hero-caption {
	position: absolute; inset: 0; display: flex; align-items: flex-end;
	background: linear-gradient(180deg, rgba(20,18,15,0) 35%, rgba(20,18,15,.95) 100%);
}
.hh-tour-hero-caption-inner { padding-top: 0; padding-bottom: 32px; }
.hh-tour-hero h1 { margin: 0 0 10px; font-size: clamp(1.6rem, 3.4vw, 2.6rem); color: #fff; text-transform: uppercase; }
.hh-tour-meta span {
	display: inline-block; margin-right: 10px; margin-bottom: 6px; color: var(--hh-forest-dark);
	background: var(--hh-gold-light); padding: 5px 14px; border-radius: 4px; font-size: .85rem; font-weight: 700;
}
.hh-tour-body { display: grid; grid-template-columns: 1fr 340px; gap: 48px; margin-top: 40px; align-items: start; }
@media (max-width: 860px) { .hh-tour-body { grid-template-columns: 1fr; } .hh-tour-hero img { height: 300px; } }

.hh-tour-content { background: var(--hh-white); border-radius: var(--hh-radius); padding: 8px 4px; }
.hh-tour-section { margin: 0 0 28px; padding-bottom: 24px; border-bottom: 1px solid var(--hh-border); }
.hh-tour-section:last-child { border-bottom: none; }
.hh-tour-section h3 { color: var(--hh-gold); font-size: 1.15rem; text-transform: none; }
.hh-tour-section p { color: var(--hh-text); }

.hh-tour-booking {
	background: var(--hh-white);
	border: 1px solid var(--hh-border);
	border-radius: var(--hh-radius);
	padding: 24px;
	position: sticky;
	top: 96px;
	box-shadow: var(--hh-shadow);
}
.hh-tour-price { border-bottom: 1px solid var(--hh-border); padding-bottom: 16px; margin-bottom: 16px; }
.hh-price-amount { font-family: var(--hh-font-heading); font-size: 1.8rem; font-weight: 800; color: var(--hh-gold); }
.hh-price-unit { color: var(--hh-text-muted); font-size: .9rem; }
.hh-booking-form { display: flex; flex-direction: column; gap: 4px; }
.hh-booking-form label { font-family: var(--hh-font-heading); font-weight: 600; margin-top: 12px; font-size: .85rem; color: var(--hh-text); text-transform: uppercase; letter-spacing: .02em; }
.hh-booking-form input, .hh-booking-form select {
	padding: 11px 12px; border: 1px solid var(--hh-border); border-radius: 6px; font-size: 1rem; font-family: var(--hh-font-body);
	background: var(--hh-cream); color: var(--hh-text);
}
.hh-booking-form input:focus, .hh-booking-form select:focus { outline: none; border-color: var(--hh-gold); }
.hh-booking-form button { margin-top: 20px; width: 100%; text-align: center; }
.hh-hint { font-size: .78rem; color: var(--hh-text-muted); margin: 2px 0 0; }

/* ---------- Archive / taxonomy grid ---------- */
.hh-archive-header { text-align: center; margin-bottom: 36px; }
.hh-archive-header h1 { font-size: clamp(1.6rem, 3.4vw, 2.2rem); text-transform: uppercase; }
.hh-tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 28px; }
.hh-tour-card {
	background: var(--hh-white);
	border: 1px solid var(--hh-border);
	border-radius: var(--hh-radius);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .18s ease, border-color .18s ease;
	display: block;
}
.hh-tour-card:hover { transform: translateY(-4px); border-color: var(--hh-forest); }
.hh-tour-card img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.hh-tour-card h2 { font-size: 1.05rem; margin: 14px 16px 4px; color: var(--hh-text); text-transform: none; }
.hh-tour-card-price { margin: 0 16px 16px; color: var(--hh-gold); font-weight: 700; font-family: var(--hh-font-heading); }

/* ---------- Auth pages / payment / my bookings ---------- */
.hh-auth-page, .hh-payment-page { max-width: 460px; margin: 20px auto; background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 36px; box-shadow: var(--hh-shadow); }
.hh-my-bookings { max-width: 960px; margin: 0 auto; }
.hh-my-bookings h2 { margin-top: 40px; font-size: 1.3rem; text-transform: none; }
.hh-my-bookings h2:first-of-type { margin-top: 28px; }
.hh-auth-form { display: flex; flex-direction: column; gap: 4px; }
.hh-auth-form label { font-family: var(--hh-font-heading); font-weight: 600; margin-top: 14px; font-size: .85rem; text-transform: uppercase; letter-spacing: .02em; color: var(--hh-text); }
.hh-auth-form input { padding: 11px 12px; border: 1px solid var(--hh-border); border-radius: 6px; font-size: 1rem; background: var(--hh-cream); color: var(--hh-text); }
.hh-auth-form input:focus { outline: none; border-color: var(--hh-gold); }
.hh-auth-form button { margin-top: 24px; }
.hh-notice { padding: 12px 16px; border-radius: 6px; margin-bottom: 16px; font-size: .9rem; }
.hh-notice-error { background: rgba(220,80,70,.12); color: #ff8a7a; border: 1px solid rgba(220,80,70,.35); }
.hh-notice-success { background: rgba(31,111,74,.18); color: #6fd89f; border: 1px solid rgba(31,111,74,.5); }

.hh-bookings-table { width: 100%; border-collapse: collapse; background: var(--hh-white); border-radius: var(--hh-radius); overflow: hidden; box-shadow: var(--hh-shadow); }
.hh-bookings-table th { background: var(--hh-forest); color: #fff; font-family: var(--hh-font-heading); font-size: .85rem; text-transform: uppercase; letter-spacing: .02em; }
.hh-bookings-table th, .hh-bookings-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--hh-border); }
.hh-bookings-table tr:last-child td { border-bottom: none; }
.hh-row-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.hh-status-tabs { list-style: none; display: flex; gap: 6px; padding: 0; margin-bottom: 20px; flex-wrap: wrap; }

/* ---------- Marketing pages: shared section scaffolding ---------- */
.hh-section { padding: 84px 0; }
.hh-section-alt { background: var(--hh-white); }
.hh-section-header { text-align: center; max-width: 680px; margin: 0 auto 44px; }
.hh-eyebrow { display: block; color: var(--hh-gold); font-family: var(--hh-font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; margin-bottom: 10px; }
.hh-section-header h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); text-transform: uppercase; }
.hh-section-header p { color: var(--hh-text-muted); }

/* ---------- Hero (home/about/destinations/gallery) ---------- */
.hh-hero { position: relative; }
.hh-hero img { width: 100%; height: 88vh; min-height: 560px; object-fit: cover; display: block; filter: saturate(1.05) contrast(1.05); }
.hh-hero-overlay {
	position: absolute; inset: 0; display: flex; align-items: flex-end; padding-bottom: 72px;
	background:
		linear-gradient(180deg, rgba(20,18,15,.5) 0%, rgba(20,18,15,.3) 35%, rgba(20,18,15,.94) 100%),
		linear-gradient(90deg, rgba(20,18,15,.82) 0%, rgba(20,18,15,.1) 55%);
}
.hh-hero-overlay-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; width: 100%; }
.hh-hero-content { max-width: 660px; }
.hh-hero-content h1 { color: #fff; font-size: clamp(2.1rem, 5vw, 3.6rem); margin-bottom: 16px; text-transform: uppercase; }
.hh-hero-content .hh-hero-subhead { color: var(--hh-gold); font-family: var(--hh-font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; margin-bottom: 10px; }
.hh-hero-content p { color: #e6ded0; font-size: 1.08rem; }
.hh-hero-actions { display: flex; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.hh-page-hero img { height: 380px; min-height: 0; }
@media (max-width: 700px) { .hh-hero img { height: 70vh; min-height: 420px; } .hh-page-hero img { height: 260px; } .hh-hero-overlay { padding-bottom: 40px; } }

/* ---------- Value props / feature grid ---------- */
.hh-value-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2px; background: var(--hh-border); border: 1px solid var(--hh-border); }
.hh-value-card { background: var(--hh-cream); padding: 34px 30px; }
.hh-value-card .hh-value-icon {
	width: 46px; height: 46px; border-radius: 4px; background: transparent; display: flex; align-items: center; justify-content: center;
	font-family: var(--hh-font-heading); font-weight: 900; font-size: 1.6rem; color: var(--hh-gold); margin-bottom: 16px; padding: 0;
}
.hh-value-card h3 { font-size: 1.1rem; text-transform: none; }
.hh-value-card p { color: var(--hh-text-muted); margin: 0; }

/* ---------- Category cards ---------- */
.hh-category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.hh-category-card {
	display: block; text-decoration: none; background: var(--hh-white); color: var(--hh-text); border: 1px solid var(--hh-border); border-radius: var(--hh-radius);
	padding: 28px 24px; transition: transform .18s ease, border-color .18s ease;
}
.hh-category-card:hover { border-color: var(--hh-forest); color: var(--hh-text); transform: translateY(-3px); }
.hh-category-card h3 { color: var(--hh-text); margin: 0 0 8px; font-size: 1.1rem; text-transform: none; }
.hh-category-card span { color: var(--hh-gold); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }

.hh-grid-heading { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 24px; flex-wrap: wrap; gap: 10px; }
.hh-grid-heading h2 { margin: 0; font-size: 1.5rem; text-transform: uppercase; }

/* ---------- Testimonials ---------- */
.hh-testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.hh-testimonial-card { background: var(--hh-cream); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 28px; }
.hh-testimonial-quote { font-size: 2rem; color: var(--hh-gold); font-family: var(--hh-font-heading); line-height: 1; display: block; margin-bottom: 8px; }
.hh-testimonial-card p.hh-testimonial-content { color: var(--hh-text-muted); }
.hh-testimonial-name { font-family: var(--hh-font-heading); font-weight: 700; color: var(--hh-text); }
.hh-testimonial-position { color: var(--hh-text-muted); font-size: .85rem; }

/* ---------- FAQ accordion (native details/summary) ---------- */
.hh-faq { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.hh-faq details { background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 4px 22px; }
.hh-faq summary { cursor: pointer; padding: 18px 0; font-family: var(--hh-font-heading); font-weight: 700; color: var(--hh-text); list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.hh-faq summary::-webkit-details-marker { display: none; }
.hh-faq summary::after { content: '+'; color: var(--hh-gold); font-size: 1.3rem; flex-shrink: 0; }
.hh-faq details[open] summary::after { content: '\2212'; }
.hh-faq details p { color: var(--hh-text-muted); margin: 0 0 18px; }

/* ---------- CTA banner ---------- */
.hh-cta-banner { background: linear-gradient(135deg, var(--hh-forest) 0%, #154f35 100%); color: #fff; border-radius: var(--hh-radius); padding: 52px 40px; text-align: center; }
.hh-cta-banner h2 { color: #fff; margin-bottom: 10px; text-transform: uppercase; }
.hh-cta-banner p { color: rgba(244,239,230,.85); margin-bottom: 24px; }

/* ---------- About: stats + skill bars ---------- */
.hh-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 24px; text-align: center; }
.hh-stat-number { font-family: var(--hh-font-heading); font-weight: 900; font-size: 2.6rem; color: var(--hh-gold); }
.hh-stat-label { color: var(--hh-text-muted); font-size: .95rem; }
.hh-skillbars { max-width: 620px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.hh-skillbar-head { display: flex; justify-content: space-between; font-family: var(--hh-font-heading); font-weight: 600; margin-bottom: 6px; }
.hh-skillbar-track { background: var(--hh-border); border-radius: 999px; height: 10px; overflow: hidden; }
.hh-skillbar-fill { background: var(--hh-gold); height: 100%; border-radius: 999px; }

/* ---------- Contact ---------- */
.hh-contact-grid { display: grid; grid-template-columns: 340px 1fr; gap: 44px; align-items: start; }
@media (max-width: 860px) { .hh-contact-grid { grid-template-columns: 1fr; } }
.hh-info-card { background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 28px; box-shadow: var(--hh-shadow); }
.hh-info-card h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; color: var(--hh-text-muted); margin-bottom: 18px; }
.hh-info-row { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.hh-info-row:last-child { margin-bottom: 0; }
.hh-info-icon { width: 34px; height: 34px; border-radius: 4px; background: var(--hh-cream); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--hh-gold); font-weight: 700; }
.hh-contact-form-card { background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 32px; box-shadow: var(--hh-shadow); }
.hh-contact-form { display: flex; flex-direction: column; gap: 4px; }
.hh-contact-form label { display: block; font-family: var(--hh-font-heading); font-weight: 600; margin-top: 12px; font-size: .85rem; text-transform: uppercase; letter-spacing: .02em; color: var(--hh-text); }
.hh-contact-form input[type=text], .hh-contact-form input[type=email], .hh-contact-form textarea {
	width: 100%; padding: 11px 12px; border: 1px solid var(--hh-border); border-radius: 6px; font-size: 1rem; font-family: var(--hh-font-body); background: var(--hh-cream); color: var(--hh-text); margin-top: 4px;
}
.hh-contact-form input:focus, .hh-contact-form textarea:focus { outline: none; border-color: var(--hh-gold); }
.hh-contact-acceptance { display: flex !important; align-items: flex-start; gap: 8px; text-transform: none !important; font-weight: 400 !important; font-size: .85rem !important; color: var(--hh-text-muted); margin-top: 16px !important; }
.hh-contact-acceptance input { width: auto; margin-top: 3px; }
.hh-contact-form button { margin-top: 22px; }
.hh-map-wrap { border-radius: var(--hh-radius); overflow: hidden; margin-top: 40px; border: 1px solid var(--hh-border); box-shadow: var(--hh-shadow); filter: grayscale(.3) invert(.92) contrast(.9); }
.hh-map-wrap iframe { width: 100%; height: 360px; border: 0; display: block; }

/* ---------- Gallery ---------- */
.hh-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.hh-gallery-grid button { padding: 0; border: 0; background: none; cursor: pointer; border-radius: var(--hh-radius); overflow: hidden; display: block; }
.hh-gallery-grid img { aspect-ratio: 4/3; object-fit: cover; width: 100%; transition: transform .25s ease; }
.hh-gallery-grid button:hover img { transform: scale(1.05); }
.hh-lightbox { position: fixed; inset: 0; background: rgba(10,9,7,.96); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 40px; }
.hh-lightbox[hidden] { display: none; }
.hh-lightbox img { max-width: 100%; max-height: 100%; border-radius: 6px; }
.hh-lightbox-close { position: absolute; top: 20px; right: 28px; background: none; border: 0; color: #fff; font-size: 2rem; cursor: pointer; line-height: 1; }

/* ---------- Itinerary/addon quote builder ---------- */
.hh-quote-page { max-width: 860px; }
.hh-quote-form { display: flex; flex-direction: column; gap: 4px; background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 32px; box-shadow: var(--hh-shadow); }
.hh-quote-form h2 { font-size: 1.1rem; margin: 26px 0 10px; padding-top: 18px; border-top: 1px solid var(--hh-border); text-transform: uppercase; }
.hh-quote-form h2:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
.hh-quote-form label { font-family: var(--hh-font-heading); font-weight: 600; margin-top: 12px; font-size: .85rem; color: var(--hh-text); text-transform: uppercase; letter-spacing: .02em; }
.hh-quote-form input, .hh-quote-form select, .hh-quote-form textarea {
	padding: 11px 12px; border: 1px solid var(--hh-border); border-radius: 6px; font-size: 1rem; font-family: var(--hh-font-body);
	background: var(--hh-cream); color: var(--hh-text); width: 100%;
}
.hh-quote-form input:focus, .hh-quote-form select:focus, .hh-quote-form textarea:focus { outline: none; border-color: var(--hh-gold); }
.hh-quote-form button { margin-top: 24px; }

.hh-window-row { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; padding: 14px; border: 1px solid var(--hh-border); border-radius: var(--hh-radius); }
.hh-window-row label { margin-top: 0; display: flex; flex-direction: column; gap: 4px; flex: 0 0 auto; }
.hh-window-row input, .hh-window-row select { width: auto; }
.hh-window-row .hh-window-remove { margin-bottom: 1px; }
.hh-day-row { border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 16px 18px; margin-bottom: 14px; }
.hh-day-row .hh-day-title, .hh-day-row .hh-day-desc { margin-top: 0 !important; }
.hh-day-row .hh-day-desc { min-height: 90px; }
.hh-day-row .hh-day-remove { margin-top: 10px; }

.hh-addon-group { border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 16px 18px; margin-bottom: 14px; }
.hh-addon-group legend { font-family: var(--hh-font-heading); font-weight: 700; color: var(--hh-gold); padding: 0 4px; text-transform: uppercase; font-size: .9rem; }
.hh-addon-row { display: flex; align-items: center; gap: 18px; padding: 8px 0; border-bottom: 1px solid var(--hh-border); flex-wrap: wrap; }
.hh-addon-row:last-child { border-bottom: none; }
.hh-addon-check { flex: 1; min-width: 200px; display: flex !important; align-items: center; gap: 8px; text-transform: none !important; font-weight: 500 !important; margin-top: 0 !important; color: var(--hh-text); }
.hh-addon-check input[type=checkbox] { width: auto; margin: 0; }
.hh-addon-qty, .hh-addon-price { display: flex !important; align-items: center; gap: 6px; text-transform: none !important; font-weight: 500 !important; margin-top: 0 !important; font-size: .85rem; color: var(--hh-text-muted); }
.hh-addon-qty input, .hh-addon-price input { width: 80px; padding: 7px 10px; }

/* ---------- Generated quote/itinerary view ---------- */
.hh-quote-view { max-width: 820px; background: var(--hh-white); border-radius: var(--hh-radius); box-shadow: var(--hh-shadow); padding: 44px; }
.hh-quote-view-actions { text-align: right; margin-bottom: 20px; }
.hh-quote-view-header { border-bottom: 2px solid var(--hh-border); padding-bottom: 18px; margin-bottom: 24px; }
.hh-quote-view-meta { color: var(--hh-text-muted); }
.hh-quote-view-block { margin-bottom: 32px; }
.hh-quote-details-table, .hh-quote-addons-table { width: 100%; border-collapse: collapse; }
.hh-quote-details-table th { text-align: left; width: 160px; color: var(--hh-text-muted); font-weight: 600; padding: 6px 0; vertical-align: top; }
.hh-quote-details-table td { padding: 6px 0; }
.hh-quote-addons-table th, .hh-quote-addons-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--hh-border); }
.hh-quote-addons-table th { background: var(--hh-forest); color: #fff; font-family: var(--hh-font-heading); font-size: .85rem; text-transform: uppercase; }
.hh-quote-day { margin-bottom: 18px; }
.hh-quote-day h3 { font-size: 1rem; color: var(--hh-gold); margin-bottom: 4px; text-transform: none; }
.hh-quote-view-total { display: flex; justify-content: space-between; align-items: center; background: var(--hh-forest-dark); border: 1px solid var(--hh-border); color: #fff; border-radius: var(--hh-radius); padding: 20px 26px; font-family: var(--hh-font-heading); font-weight: 700; font-size: 1.1rem; }
.hh-quote-total-amount { font-size: 1.6rem; color: var(--hh-gold-light); }

@media print {
	.hh-header, .hh-footer, .hh-quote-view-actions { display: none !important; }
	.hh-quote-view { box-shadow: none; padding: 0; }
	body { background: #fff; color: #14120f; }
}

/* ---------- Legal pages (T&C / Privacy) ---------- */
.hh-legal-body { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 8px; }
.hh-legal-section { background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); padding: 26px 28px; }
.hh-legal-section h2 { font-size: 1.1rem; text-transform: none; color: var(--hh-gold); margin-bottom: 10px; }
.hh-legal-section p, .hh-legal-section li { color: var(--hh-text-muted); }
.hh-legal-section ul { margin: 0 0 1em; }
.hh-legal-section p:last-child, .hh-legal-section ul:last-child { margin-bottom: 0; }

/* ---------- Blog archive / single ---------- */
.hh-blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px; }
.hh-blog-card { background: var(--hh-white); border: 1px solid var(--hh-border); border-radius: var(--hh-radius); overflow: hidden; text-decoration: none; color: inherit; display: block; transition: transform .18s ease, border-color .18s ease; }
.hh-blog-card:hover { transform: translateY(-4px); border-color: var(--hh-forest); }
.hh-blog-card img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.hh-blog-card-body { padding: 18px 20px; }
.hh-blog-date { color: var(--hh-gold); font-family: var(--hh-font-heading); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.hh-blog-card h2 { font-size: 1.1rem; margin: 8px 0 10px; text-transform: none; }
.hh-blog-card p { color: var(--hh-text-muted); font-size: .92rem; margin: 0; }
.hh-blog-single { max-width: 780px; margin: 0 auto; }
.hh-blog-single-meta { color: var(--hh-gold); font-family: var(--hh-font-heading); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 14px; }
.hh-blog-single-thumb { border-radius: var(--hh-radius); overflow: hidden; margin-bottom: 32px; }
.hh-blog-single-content { color: var(--hh-text-muted); font-size: 1.05rem; }
.hh-blog-single-content p { margin: 0 0 1.4em; }
.hh-blog-single-content h2, .hh-blog-single-content h3 { color: var(--hh-text); margin-top: 1.6em; text-transform: none; }
.hh-blog-single-content img { border-radius: var(--hh-radius); margin: 1.4em 0; }
.hh-blog-back { display: inline-block; margin-bottom: 28px; }

/* ---------- Destinations tiles ---------- */
.hh-dest-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.hh-dest-tile {
	position: relative; display: block; height: 260px; border-radius: var(--hh-radius); overflow: hidden;
	text-decoration: none; color: #fff;
}
.hh-dest-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.hh-dest-tile:hover img { transform: scale(1.06); }
.hh-dest-tile-overlay {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 22px;
	background: linear-gradient(180deg, rgba(10,9,7,0) 35%, rgba(10,9,7,.88) 100%);
}
.hh-dest-tile h3 { color: #fff; margin: 0 0 4px; font-size: 1.2rem; text-transform: none; }
.hh-dest-tile span { color: var(--hh-gold); font-size: .85rem; font-weight: 600; }
