/*
Theme Name:   TTA GP Child
Theme URI:    https://tumainicenter.africa
Description:  TTA GP child theme
Author:       Kelvin K
Author URI:   https://tumainicenter.africa
Template:     generatepress
Version:      0.1
*/

/* =========================
STYLE.CSS
========================= */
/* =========================
01. FONT DEFINITIONS
========================= */

/* Lato Regular */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* Lato Italic */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Italic.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

/* Lato Medium */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

/* Lato Medium Italic */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-MediumItalic.woff2") format("woff2");
	font-weight: 500;
	font-style: italic;
	font-display: swap;
}

/* Lato Semibold */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Semibold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

/* Lato Bold */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Lato Bold Italic */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-BoldItalic.woff2") format("woff2");
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

/* Lato Light (optional but allowed) */
@font-face {
	font-family: "Lato";
	src: url("/assets/fonts/Lato-Light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

/* Merriweather Variable – Normal */
@font-face {
	font-family: "Merriweather";
	src: url("/assets/fonts/Merriweather.woff2") format("woff2");
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}

/* Merriweather Variable – Italic */
@font-face {
	font-family: "Merriweather";
	src: url("/assets/fonts/Merriweather-Italic.woff2") format("woff2");
	font-weight: 300 900;
	font-style: italic;
	font-display: swap;
}


/* =========================
02. TOKENS / VARIABLES
========================= */

/* 🔴 G2A REPLICA (default) */

:root {

	/* =========================
	TYPOGRAPHY MODES
	========================= */

	--font-ui: "Lato", sans-serif;
	--font-editorial: "Merriweather", serif;

	--heading-style: italic;
	--heading-transform: capitalize;

	--text-color: #454442;


	/* =========================
	SPACING TOKENS (G2A RHYTHM)
	========================= */

	--space-2xs: 0.25rem; /* 4px */
	--space-xs:  0.5rem;  /* 8px */
	--space-sm:  1rem;    /* 16px */
	--space-md:  1.5rem;  /* 24px */
	--space-lg:  2rem;    /* 32px */
	--space-xl:  3rem;    /* 48px */
	--space-2xl: 4rem;    /* 64px */

	--gb-container-width: 1440px;
	--gb-container-padding: 1.5rem;

	/* =========================
	BUTTON TOKENS
	========================= */

	--btn-font-size: 1rem;
	--btn-line-height: 1;
	--btn-radius: 4px;
	--btn-radius-pill: 100vw;

	--btn-padding-y: var(--space-xs);   /* 8px */
	--btn-padding-x: var(--space-sm);   /* 16px */

	--btn-transition: 0.2s ease-in-out;

	/* =========================
	LINK TOKENS
	========================= */

	--link-color: #c88c3d;
	--link-hover-color: #94692e;

	--link-underline-thickness: 1px;
	--link-underline-offset: 0.15em;

	--link-transition: 0.2s ease-in-out;

	/* =========================
	FORM TOKENS
	========================= */

	--input-bg: #fff;
	--input-border-color: #d6d6d6;
	--input-border-hover: #bfbfbf;
	--input-border-focus: #c88c3d;

	--input-text-color: #454442;
	--input-placeholder-color: #9a9a9a;

	--input-radius: 4px;
	--input-padding-y: 0.65rem;
	--input-padding-x: 0.75rem;

	--input-font-size: 1rem;
	--input-line-height: 1.4;

	--input-transition: 0.2s ease-in-out;

}

/* 🟢 BRANDED MODE */
.theme-branded {
	--font-ui: "Lato", sans-serif;
	--font-editorial: "Lato", sans-serif;

	--heading-style: normal;
	--heading-transform: none;

	--text-color: #212121;
}


/* =========================
03: BASE STYLES
========================= */

body {
	font-family: var(--font-ui);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--text-color);
}

p {
	margin-bottom: var(--space-md);
}

.editing-now {
	background-color: hotpink !important;
}

a {
	color: var(--link-color);
	text-decoration: underline;
	text-decoration-thickness: var(--link-underline-thickness);
	text-underline-offset: var(--link-underline-offset);

	transition:
		color var(--link-transition),
		text-decoration-color var(--link-transition);
}

a:hover {
	color: var(--link-hover-color);
}

/* No Underlines for these UI elements */
.nav a,
.menu a,
.btn,
.wp-block-button__link {
	text-decoration: none;
}

/* Navigation Links (UI Semantics) */

.nav a,
.menu a {
	color: var(--text-color);
	opacity: 0.85;
	transition: opacity var(--link-transition), color var(--link-transition);
}

.nav a:hover,
.menu a:hover {
	opacity: 1;
	color: var(--link-hover-color);
}

/* Muted / Meta Links (Dates, Breadcrumbs, Small UI) */
/* Breadcrumbs, Post meta, Footer micro-links */

.link-muted {
	color: #777;
	font-size: 0.875rem;
	text-decoration: none;
}

.link-muted:hover {
	color: var(--text-color);
}

/* Links That Behave Like Buttons (CTA Links) */

.link-cta {
	font-weight: 600;
	text-decoration: none;
	color: var(--link-color);
}

.link-cta:hover {
	color: var(--link-hover-color);
}


/* Inline Links Inside Headings */
/* We do not underline heading links */

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
	text-decoration: none;
	color: inherit;
}

h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover {
	color: var(--link-hover-color);
}

/* Focus States */
/* Keyboard & Accessibility — Required */

a:focus-visible {
	outline: 2px solid var(--link-color);
	outline-offset: 2px;
}


/* Base Form Input Reset - CRITICAL */
input,
textarea,
select {
	font-family: var(--font-ui);
	font-size: var(--input-font-size);
	line-height: var(--input-line-height);
	color: var(--input-text-color);

	background-color: var(--input-bg);
	border: 1px solid var(--input-border-color);
	border-radius: var(--input-radius);

	padding: var(--input-padding-y) var(--input-padding-x);

	transition:
		border-color var(--input-transition),
		box-shadow var(--input-transition);

	width: 100%;
}


/* =========================
04: TYPOGRAPHY
========================= */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-editorial);
	font-style: var(--heading-style);
	text-transform: var(--heading-transform);
	color: var(--text-color);
	margin-top: var(--space-xl);
	margin-bottom: var(--space-md);}

h1 { font-size: 3.25rem; } /* 52px */
h2 { font-size: 2.7rem; font-weight: 500; }  /* 40px */
h3 { font-size: 2rem; }    /* 32px */
h4 { font-size: 1.5rem; }  /* 24px */
h5 { font-size: 1.25rem; } /* 20px */
h6 { font-size: 1.125rem; }/* 18px */

ul, ol {
	margin-bottom: var(--space-md);
	padding-left: var(--space-lg);
}

li {
	margin-bottom: var(--space-xs);
}

section,
.wp-block-group {
	/* 	margin-bottom: var(--space-2xl); */
}


/* Primary CTA Button */

.btn-primary {
	background-color: #c88c3d;
	border-color: #c88c3d;
	color: #fff;
}

.btn-primary:hover {
	background-color: #94692e;
	border-color: #94692e;
	color: #fff;
}

/* Secondary / Dark Button */

.btn-secondary {
	background-color: #141414;
	border-color: #141414;
	color: #fff;
}

.btn-secondary:hover {
	background-color: #000;
	border-color: #000;
}

/* Pill Modifier (Reusable Everywhere) */

.btn-pill {
	border-radius: var(--btn-radius-pill);
}

.destination-link:hover {
	background-color: var(--border-color-subtle);
	border-radius: var(--btn-radius-pill);
}

/* Pill Groups (Tags / Filters / UI Pills) */

.pill-group {
	display: flex;
	gap: var(--space-xs);
	flex-wrap: wrap;
}

.pill {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2xs);

	padding: var(--space-2xs) var(--space-sm);
	border-radius: var(--btn-radius-pill);

	font-size: 0.875rem;
	background-color: #f2f2f2;
	color: var(--text-color);
}

/* FORM Hover + Focus Semantics */
input:hover,
textarea:hover,
select:hover {
	border-color: var(--input-border-hover);
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--input-border-focus);
	outline: none;
	box-shadow: 0 0 0 2px rgba(200, 140, 61, 0.15);
}

/* Form Placeholder Styling */
::placeholder {
	color: var(--input-placeholder-color);
	opacity: 1;
}

/* Form Label Styling */
label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: var(--space-xs);
	color: var(--text-color);
}

/* Textarea */
/* Don't allow horizontal resize */
textarea {
	min-height: 120px;
	resize: vertical;
}

/* Select */
select {
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, #777 50%),
		linear-gradient(135deg, #777 50%, transparent 50%);
	background-position:
		calc(100% - 16px) calc(50% - 2px),
		calc(100% - 11px) calc(50% - 2px);
	background-size: 5px 5px;
	background-repeat: no-repeat;
	padding-right: 2rem;
}

/* Checkbox & Radio */
input[type="checkbox"],
input[type="radio"] {
	width: auto;
	margin-right: 0.4rem;
}


/* Error + Help Text */
.form-help {
	font-size: 0.875rem;
	color: #777;
	margin-top: var(--space-2xs);
}

.form-error {
	font-size: 0.875rem;
	color: #b00020;
	margin-top: var(--space-2xs);
}

/* Form Spacing Rhythm */
/* keeps forms aligned with content sections */
.form-field {
	margin-bottom: var(--space-md);
}

form {
	margin-bottom: var(--space-xl);
}

/* Buttons inside Forms */
form .btn {
	margin-top: var(--space-sm);
}


.full-width {
	max-width: none;
	width: 100%;
}

.full-width > .inside-container {
	max-width: var(--gb-container-width);
	margin-inline: auto;
	padding-inline: var(--gb-container-padding);
}

.full-width {
	max-width: none;
	width: 100%;
}

.full-width > .inside-container {
	max-width: var(--gb-container-width);
	margin-inline: auto;
	padding-inline: var(--gb-container-padding);
}


.reason-list {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

.destination-facts.facts-forest {
	display: none;
}

.destination-tours {
	padding: 2rem;
	/*   text-align: center; */
}

.destination-tours h2 {
	text-align: center;
	padding: 1rem;
}

.site-content {
	display: block;
}


.hero {
	position: relative;
	width: 100%;
}

.hero__media {
	width: 100%;
	height: 100%;
	object-fit: cover;
/* 		object-position: bottom; */
}

.hero__slide {
	flex: 0 0 100%;
	min-height: 70vh;
	position: relative;
}

.hero__content::after {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 6vw, 4rem);
	color: #fff;
	background: linear-gradient(
		to top,
		rgba(0,0,0,.6),
		rgba(0,0,0,0)
	);
}

.hero__slider {
	width: 100%;
	max-height:80vh;
	min-height: 70vh;
}

.hero__slider .card__track {
	height: 100%;
}

.hero__slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
/* 	object-position: bottom !important; */
}

.hero + section {
	/* 	margin-top: clamp(2rem, 6vw, 4rem); */
}

.hero {
	margin-bottom: 0;
}

.hero__content {
	/*   max-width: 72ch; */
}

.hero__title {
	line-height: 1.1;
	margin: auto 3rem;
	color: var(--text-inverse);
}

.hero-actions {
	display: none;
	gap: 0.75rem;
	z-index: 3;
}

.hero-action {
	background: rgba(0,0,0,.45);
	color: #fff;
	border-radius: 999px;
	padding: .5rem 1rem;
	backdrop-filter: blur(4px);
}

.hero--video-active .hero-slider {
	opacity: 0;
	pointer-events: none;
}

.hero-video-layer {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.hero-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.hero-action {
	background: rgba(0,0,0,.45);
	color: #fff;
	border-radius: 999px;
	padding: .5rem 1rem;
	backdrop-filter: blur(4px);
}

.hero--video-active .hero-slider {
	opacity: 0;
	pointer-events: none;
}

.hero-video-layer {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.hero-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Destinations Mega Menu Styles - Inspired by go2africa.com */
/*
.destinations-mega-menu {
position: absolute;
left: 0;
right: 0;
top: 100%;
width: 100vw;
max-width: 100vw;
margin-left: calc(-50vw + 50%);
background: #fff;
border-top: 1px solid #eaeaea;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
padding: 40px 0;
display: none;
opacity: 0;
visibility: hidden;
transform: translateY(15px);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 99999;
overflow: hidden;
}
*/

.main-navigation .main-nav ul li a {
	padding-left: 20px;
	padding-right: 20px;
	line-height: 42px;
}

.destinations-mega-menu {
	position: fixed;
	left: 0;
	/* right: 0; */
	top: 115px;
	width: 95vw;
	max-width: 95vw;
	margin-left: 2rem;
	background: #fff;
	border-top: 1px solid #eaeaea;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	padding: 40px 0;
	display: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(15px);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 99999;
	overflow: hidden;
	margin-right: 2rem;
	border-radius: var(--btn-radius);
}

/* Show on hover */
.mega-destinations.destinations-mega:hover .destinations-mega-menu,
.mega-destinations.destinations-mega:focus-within .destinations-mega-menu {
	display: block;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.mega-menu-column {
	display: flex;
	flex-direction: column !important;
}
.mega-menu-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
}

.mega-menu-navs {
	display: flex;
	gap: 1.5rem;
	position: relative;
}
#destinations-mega-menu-wrapper .main-navigation .main-nav ul li a {
	line-height: 2.5rem !important;
}
/* Columns */
.mega-menu-column {
	flex: 1;
	min-width: 200px;
}
h5.column-title {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0 0 20px 0;
	padding-bottom: 10px;
	border-bottom: 2px solid #e0a526;
	font-style: normal;

}

.mega-menu-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mega-menu-nav .menu-item {
	margin-bottom: 8px;
}

.mega-menu-nav .menu-item a {
	font-size: 14px;
	color: #555;
	text-decoration: none;
	padding: 6px 0;
	display: block;
	transition: all 0.2s ease;
	border-left: 2px solid transparent;
	padding-left: 10px;
}

.mega-menu-nav .menu-item a:hover,
.mega-menu-nav .menu-item.active a {
	color: #e0a526;
	border-left-color: #e0a526;
	padding-left: 15px;
}

/* Map Container */
.mega-menu-map-container {
	flex: 1.5;
	min-width: 300px;
	position: relative;
}

.map-wrapper {
	position: relative;
	height: 100%;
	min-height: 300px;
}

/* .map-wrapper {
display: flex;
align-items: center;
}
*/
.africa-map {
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

/* Map Pins */
.map-pins-container {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
}

.map-pin {
	position: absolute;
	transform: translate(-50%, -50%);
	transition: all 0.3s ease;
	pointer-events: auto;
	z-index: 10;
}

.pin-dot {
	width: 12px;
	height: 12px;
	background: #e0a526;
	border-radius: 50%;
	border: 2px solid white;
	box-shadow: 0 0 0 1px rgba(224, 165, 38, 0.3);
	transition: all 0.3s ease;
	position: relative;
	z-index: 2;

}

.pin-label {
	position: absolute;
	top: -30px;
	left: 50%;
	transform: translateX(-50%);
	background: #e0a526;
	color: white;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 99999;
	text-transform: capitalize;
}

.pin-label:after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: #e0a526;
	z-index: 99999;

}

.map-pin.active .pin-dot {
	width: 16px;
	height: 16px;
	background: #ff6b00;
	box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.2);
}

.map-pin.active .pin-label {
	opacity: 1;
	visibility: visible;
	top: -35px;
	z-index: 99999;

}

/* Mobile Responsive */
@media (max-width: 1024px) {
	.mega-menu-navs {
		flex-wrap: wrap;
		gap: 30px;
	}

	.mega-menu-column {
		flex: 0 0 calc(50% - 15px);
	}

	.mega-menu-map-container {
		flex: 0 0 100%;
		order: 5;
	}
}

@media (max-width: 768px) {
	.mega-menu-inner {
		padding: 0 20px;
	}

	.mega-menu-navs {
		flex-direction: column;
		gap: 25px;
	}

	.mega-menu-column {
		flex: 0 0 100%;
	}

	.destinations-mega-menu {
		position: static;
		width: 100%;
		margin-left: 0;
		box-shadow: none;
		padding: 20px 0;
	}

	/* Mobile toggle functionality */
	.destinations-mega-menu.mobile-closed {
		display: none !important;
	}

	.mega-destinations.destinations-mega > a .mobile-toggle {
		display: inline-block;
		margin-left: 5px;
	}
}

/* Animation for menu entrance */
@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(15px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.destinations-mega-menu {
	animation: slideDown 0.3s ease forwards;
}

/* Add to existing navigation CSS */
.mega-destinations.destinations-mega {
	position: static;
}

.mega-destinations.destinations-mega > a {
	position: relative;
}

.mega-destinations.destinations-mega:hover > a:after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 2px;
	background: #e0a526;
}

/* Destinations Mega Menu Styles - Updated */
.mega-menu-wrapper {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	width: 100%;
	display: block !important;
	z-index: 99999;
}

.mega-destinations.destinations-mega {
	position: static;
}

/* Show mega menu on hover */
.mega-destinations.destinations-mega:hover .mega-menu-wrapper,
.mega-destinations.destinations-mega:focus-within .mega-menu-wrapper {
	display: block !important;
}

/* Hide by default on desktop */
@media (min-width: 769px) {
	.mega-menu-wrapper {
		display: none !important;
	}

	.mega-destinations.destinations-mega:hover .mega-menu-wrapper,
	.mega-destinations.destinations-mega:focus-within .mega-menu-wrapper {
		display: block !important;
	}
}

/* Mobile styles */
@media (max-width: 768px) {
	.mega-menu-wrapper {
		position: static;
		width: 100%;
		display: none;
	}

	.mega-menu-wrapper.mobile-open {
		display: block !important;
	}
}

.swiper-slide {
	flex-shrink: 0;
	width: 100%;
	height: 100%;
	position: relative;
	transition-property: transform;
	display: block;
	background-size: cover;
	background-position: center;
}

.card__track img {
	height: 100% !important;
	flex: 0 0 100%;
}

.card__track {
	display: flex;
	transition: transform 0.35s ease;
	will-change: transform;
	height: 100%;
}

.main-navigation ul ul.destination-list {
	display: block;
	box-shadow: 1px 1px 0 rgba(0,0,0,.1);
	float: none;
	position: absolute;
	left: 0;
	opacity: 1;
	z-index: 999;
	width: 100%;
	text-align: left;
	top: auto;
	transition: opacity 80ms linear;
	transition-delay: 0s;
	/* transition-delay: 0s; */
	pointer-events: none;
	height: fit-content;
	min-height: 480px;
	height: 450px;
}

.mega-menu-columns {
	display: flex;
	flex-direction: row;
	gap: 1rem;
}

.main-navigation .main-nav ul li .destinations-mega-menu  a {
	padding-left: 1rem;
	padding-right: 1rem;
	line-height: 2.5rem;
}

/* Ensure map container and image have consistent sizing */
.map-wrapper {
	position: relative;
	width: 100%;
	height: 100%;
}

.africa-map {
	width: 100%;
	height: auto;
	max-width: 100%;
	display: block;
	position: relative;
}

.map-pins-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	pointer-events: none;
	aspect-ratio: 1/1 !important;
}

.map-pin {
	position: absolute;
	transform: translate(-50%, -50%); /* Center the pin on the coordinates */
	z-index: 9999;
	pointer-events: auto; /* Allow hover interactions */
}

/* Alternative: Use transform-origin if you want bottom-center alignment */
/* .map-pin {
position: absolute;
transform: translateX(-50%);
z-index: 10;
pointer-events: auto;
} */

img#africa-map-gz {
	aspect-ratio: 1/1 !important;
}


/* ==================== */
/* GO2AFRICA STYLE CHEVRONS */
/* ==================== */

/* Remove default GeneratePress chevron */
.mega-destinations.destinations-mega > a .dropdown-menu-toggle .gp-icon {
	display: none;
}

/* Create go2africa-style chevron */
.mega-destinations.destinations-mega > a .dropdown-menu-toggle {
	position: relative;
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 8px;
	vertical-align: middle;
}

.mega-destinations.destinations-mega > a .dropdown-menu-toggle::before,
.mega-destinations.destinations-mega > a .dropdown-menu-toggle::after {
	content: "";
	position: absolute;
	background-color: currentColor;
	border-radius: 2px;
	height: 12px;
	width: 2px;
	top: 2px;
	right: 7px;
	transition: all 0.2s ease-in-out;
}

.mega-destinations.destinations-mega > a .dropdown-menu-toggle::before {
	transform: translateX(-3px) rotate(40deg);
}

.mega-destinations.destinations-mega > a .dropdown-menu-toggle::after {
	transform: translateX(3px) rotate(-40deg);
}

/* Chevron hover state */
.mega-destinations.destinations-mega:hover > a .dropdown-menu-toggle::before,
.mega-destinations.destinations-mega:hover > a .dropdown-menu-toggle::after {
	background-color: #e0a526;
}

/* Chevron active/expanded state (mobile) */
.mega-destinations.destinations-mega.menu-open > a .dropdown-menu-toggle::before {
	transform: translateX(-3px) rotate(-40deg);
}

.mega-destinations.destinations-mega.menu-open > a .dropdown-menu-toggle::after {
	transform: translateX(3px) rotate(40deg);
}

/* Alternative: Use a simpler arrow if above is too complex */
.mega-destinations.destinations-mega > a .dropdown-menu-toggle .custom-chevron {
	display: inline-block;
	width: 16px;
	height: 16px;
	position: relative;
	margin-left: 8px;
}

.mega-destinations.destinations-mega > a .dropdown-menu-toggle .custom-chevron::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translate(-50%, -70%) rotate(45deg);
	transition: all 0.2s ease;
}

.mega-destinations.destinations-mega.menu-open > a .dropdown-menu-toggle .custom-chevron::before {
	transform: translate(-50%, -30%) rotate(-135deg);
}

/* Only show on mobile */
@media (min-width: 769px) {
	.mega-destinations.destinations-mega > a .dropdown-menu-toggle {
		display: none !important;
	}
}

@media (max-width: 768px) {
	.mega-destinations.destinations-mega > a .dropdown-menu-toggle {
		display: inline-block !important;
	}
}

/* ==================== */
/* MAP PIN VISIBILITY IMPROVEMENTS */
/* ==================== */

.map-pin {
	position: absolute;
	transform: translate(-50%, -50%);
	z-index: 10;
	pointer-events: auto;
	transition: all 0.3s ease;
}

/* Inactive pin dot */
.pin-dot {
	width: 12px;
	height: 12px;
	background: #e0a526;
	border-radius: 50%;
	border: 2px solid white;
	box-shadow: 0 0 0 1px rgba(224, 165, 38, 0.3);
	transition: all 0.3s ease;
	position: relative;
	z-index: 20;
	opacity: 0.6; /* Reduced opacity for inactive */
}

/* Active pin dot */
.map-pin.active .pin-dot {
	width: 16px;
	height: 16px;
	background: #ff6b00;
	border: 3px solid white;
	box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.4);
	opacity: 1; /* Full opacity when active */
	z-index: 30;
}

/* Pin label */
.pin-label {
	position: absolute;
	top: -40px; /* Move label higher above the dot */
	left: 50%;
	transform: translateX(-50%) translateY(10px);
	background: #e0a526;
	color: white;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 25; /* Higher than inactive dot, lower than active dot */
	pointer-events: none;
	min-width: 80px;
	text-align: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Label arrow */
.pin-label::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: #e0a526;
	z-index: 26;
}

/* Active label */
.map-pin.active .pin-label {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
	z-index: 35; /* Highest when active */
	background: #ff6b00; /* Match active dot color */
}

/* Active label arrow */
.map-pin.active .pin-label::after {
	border-top-color: #ff6b00;
}

/* Hover effects for better visibility */
.map-pin:hover .pin-dot {
	opacity: 0.8;
	transform: scale(1.1);
}

.map-pin:hover .pin-label {
	opacity: 0.9;
	visibility: visible;
	transform: translateX(-50%) translateY(-5px);
	z-index: 40;
}

/* Ensure map container has proper stacking context */
.map-wrapper {
	position: relative;
	z-index: 1;
}

.map-pins-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 2;
}

/* Higher z-index for pins to ensure they're above the map */
.map-pin {
	z-index: 100;
}

.map-pin.active {
	z-index: 200;
}

.map-pin:hover {
	z-index: 300;
}

/* Alternative: Use different pin styles for better visibility */
.map-pin .pulse-effect {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(224, 165, 38, 0.2);
	opacity: 0;
	z-index: 15;
}

.map-pin.active .pulse-effect {
	animation: pulse 2s infinite;
	opacity: 1;
}

@keyframes pulse {
	0% {
		transform: translate(-50%, -50%) scale(0.8);
		opacity: 0.5;
	}
	70% {
		transform: translate(-50%, -50%) scale(1.5);
		opacity: 0;
	}
	100% {
		transform: translate(-50%, -50%) scale(1.5);
		opacity: 0;
	}
}

/* For HomePage */


.archive-hero h1 {
	text-align: center;
}


/* REFRESH TTA-UNI-GALLERY.CSS */
.tta-gallery-strip {
	display: flex;
	gap: .5rem;
	width: 100%;
	height: 210px;
	max-height: 210px;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	justify-content: center;
	padding: 1.5rem;
}

.tta-gallery-thumb img {
	border-radius: var(--btn-padding-y);
}

.tta-gallery-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.7);
	backdrop-filter: blur(8px);
	display: grid;
	grid-template-rows: 1fr auto;
	z-index: 9999;
}

.tta-gallery-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.tta-gallery-full {
	max-width: 100%;
	max-height: 80vh;
	object-fit: contain;
}

.tta-gallery-lightbox-strip {
	display: flex;
	gap: .5rem;
	padding: .75rem;
	background: rgba(0,0,0,.6);
	overflow-x: auto;
}

.tta-gallery-lightbox-strip .tta-gallery-thumb {
	flex: 0 0 80px;
	height: 80px;
	opacity: .6;
}

.tta-gallery-lightbox-strip .tta-gallery-thumb:hover,
.tta-gallery-lightbox-strip .tta-gallery-thumb.active {
	opacity: 1;
}


.topic--cards .cards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 1.5rem;
}


/* Height lock */
.toc__inner {
	justify-content: space-between;
}


.toc__list {
	position: relative;
}

.toc__indicator {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 2px;
	width: 0;
	background: currentColor;
	transform: translateX(0);
	transition:
		transform 0.35s cubic-bezier(.4,0,.2,1),
		width 0.35s cubic-bezier(.4,0,.2,1);
	pointer-events: none;
}

.button-18 {
	align-items: center;
	background-color: #636363;
	border: 0;
	border-radius: 100px;
	box-sizing: border-box;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font-family: -apple-system, system-ui, system-ui, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 600;
	justify-content: center;
	line-height: 20px;
	max-width: 480px;
	min-height: 40px;
	min-width: 0px;
	overflow: hidden;
	padding: 0px;
	padding-left: 20px;
	padding-right: 20px;
	text-align: center;
	touch-action: manipulation;
	transition: background-color 0.167s cubic-bezier(0.4, 0, 0.2, 1) 0s, box-shadow 0.167s cubic-bezier(0.4, 0, 0.2, 1) 0s, color 0.167s cubic-bezier(0.4, 0, 0.2, 1) 0s;
	user-select: none;
	-webkit-user-select: none;
	vertical-align: middle;
}

/* .toc__logo img {
display: none;
} */

.btn-enquire {
	--bg: #154633;
	--accent: #95C11F;
	--fg: #ffffff;

	display: inline-flex;
	align-items: center;
	gap: 1.25rem;

	padding: 0.9em 1.6em 0.9em 1.8em;
	border-radius: 999px;

	font-weight: 600;
	color: var(--fg);
	background: var(--bg);
	text-decoration: none;

	position: relative;
	overflow: hidden;

	transition: transform .25s ease, box-shadow .25s ease;
}

.btn-enquire::before {
	content: "";
	position: absolute;
	inset: auto 1rem 50% auto;
	width: 32px;
	height: 32px;
	background: var(--accent);
	border-radius: 50%;
	transform: translateY(50%);
	transition: width .35s ease, height .35s ease, inset .35s ease;
	z-index: 0;
}

.btn-enquire > * {
	position: relative;
	z-index: 1;
}

.btn-enquire .btn-arrow {
	display: inline-flex;
	transition: transform .35s cubic-bezier(.4,0,.2,1);
}

/* Hover */
.btn-enquire:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}

.btn-enquire:hover::before {
	inset: 0;
	width: 100%;
	height: 100%;
	border-radius: 999px;
}

.btn-enquire:hover .btn-arrow {
	transform: rotate(45deg) translateX(-4px);
}

.toc-enquire {
	--enquire-bg: transparent;
	--enquire-fg: var(--brand, #1f29371f2937);
	--enquire-border: color-mix(in srgb, var(--enquire-fg) 30%, transparent);
	--enquire-bg-hover: var(--enquire-fg);

	display: inline-flex;
	align-items: center;
	gap: 0.5rem;

	height: 36px; /* fits nicely inside 64px TOC */
	padding: 0 1.1rem;

	border-radius: 999px;
	border: 1px solid var(--enquire-border);

	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;

	color: var(--enquire-fg);
	background: var(--enquire-bg);

	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease,
		transform 0.2s ease;
}

.toc-enquire:hover {
	color: var(--link-hover-color, #111);
	background: var(--enquire-bg-hover);
	border-color: var(--enquire-bg-hover);
	transform: translateY(-1px);
}

.toc-enquire:active {
	transform: translateY(0);
}

/* Icon micro-motion */
.toc-enquire__icon {
	display: inline-block;
	transform: translateX(0);
	transition: transform 0.25s cubic-bezier(.4,0,.2,1);
}

.toc-enquire:hover .toc-enquire__icon {
	transform: translateX(2px);
}



/* FOOTER TESTS */
.footer-widgets {
	padding: 2rem;
	font-size: 0.85rem;
	background-color: var(--gray-900);
	color: var(--gray-100);
	margin-left: auto;
	margin-right: auto;
}

div#footer-widgets a {
/* 	color: #e0a526; */
	color: var(--link-color);
}

div#footer-widgets a:hover {
	color: var(--link-hover-color);
	font-weight:500;
}
.site-footer h2.widget-title {
    margin-top: var(--space-2xs);
    color: var(--brand-gold);
/* 	color: #e0a526; */
    margin-bottom: var(--space-sm);
}

.site-info {
	background: var(--gray-800);
	color: var(--base);
}

/* TOP BAR TESTS */
.top-bar .top-bar-search-results .title {
    font-family: var(--font-body);
    font-size: 1.125rem;
    line-height: 1.3;
    font-style: normal;
    margin: 0;
    font-weight: 500;
}

.toc__slot.toc__slot--left {
	display: flex !important;
	align-items: center;
}

button.country-current, button.entity-current {
	padding: 0;
	margin: 0;
	background-color: transparent;
}

.toc__mobile-toggle {
	display: none;
	background: transparent;
	border: 0;
	color: inherit;
	font: inherit;
	cursor: pointer;
	align-items: center;
	gap: 6px;
}

@media (max-width: 1024px) {

	.toc__inner {
		flex-wrap: wrap;
	}

	.toc__mobile-toggle {
		display: inline-flex;
	}

	.toc__list {
		width: 100%;
		max-height: 0;
		overflow: hidden;
		transition: max-height 250ms ease;
		flex-direction: column;
		padding-top: 0;
		margin-top: 8px;
	}

	.toc.is-open .toc__list {
		max-height: 400px; /* enough for links */
		overflow-y: auto;
	}

	.toc__indicator {
		display: none;
	}

	.toc__item {
		width: 100%;
	}

	.toc__link {
		display: block;
		padding: 10px 0;
	}
}

img.country-flag {
	width: 45px;
	height: auto;
}