/* Green Orbit components (04 §2.5, §3, §10). Typed into Elementor's Advanced → CSS Classes. Never target .elementor-element-xxxx (06 §5.1). */

/* ---------- Base ---------- */
body {
	font-family: var(--go-font-body);
	color: var(--go-text-muted);
	background: var(--go-cream-50);
	-webkit-font-smoothing: antialiased;
}

/* Elementor gives each container its display through a variable in the page's generated CSS file. When that file is
   missing (staging, 22 Oct 2026: kit, header and footer files answered 404) containers fell back to inline and the
   header and footer collapsed; flex is Elementor's own default for these containers. */
.e-con.e-flex {
	display: var(--display, flex);
}

h1, h2, h3, h4 {
	font-family: var(--go-font-display);
	font-weight: 400;
	color: var(--go-forest-800);
	text-wrap: balance;
}

.go-tabular,
.go-price {
	font-variant-numeric: tabular-nums;
}

/* ---------- Accent word (04 §3.1, §3.3): <span class="go-accent">Friend</span> ---------- */
.go-accent {
	font-family: var(--go-font-accent);
	font-weight: 900;
	font-style: normal;
	font-size: .98em;
	color: var(--go-forest-800);
	/* Mint text can't be read on light backgrounds, so there the mint is a marker stroke under the word. */
	background: linear-gradient(transparent 58%, var(--go-accent) 58%, var(--go-accent) 92%, transparent 92%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.go-on-dark .go-accent,
.go-hero-overlay .go-accent {
	color: var(--go-accent);
	background: none;
}

/* ---------- Dark sections: add go-on-dark to a Forest container ---------- */
.go-on-dark {
	color: var(--go-text-on-dark);
}

.go-on-dark :is(h1, h2, h3, h4, h5, h6) {
	color: var(--go-white);
}

/* Trip cards are links too, but they keep their own colours on dark sections. */
.go-on-dark a:not([class*="go-btn"], .elementor-button, .go-card) {
	color: var(--go-accent);
}

/* ---------- The three gradients (04 §2.5) ---------- */
.go-hero-overlay,
.go-card-scrim {
	position: relative;
	isolation: isolate;
}

.go-hero-overlay::before,
.go-card-scrim::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	border-radius: inherit;
}

.go-hero-overlay::before {
	background: var(--go-grad-hero);
}

.go-card-scrim::before {
	background: var(--go-grad-scrim);
}

@media (max-width: 767px) {
	.go-hero-overlay::before {
		background: var(--go-grad-hero), rgba(10, 59, 97, .25);
	}
}

/* Elementor background images sit on the container itself; keep the overlay above them and the content above the overlay. */
.go-hero-overlay > .e-con-inner,
.go-card-scrim > .e-con-inner {
	position: relative;
	z-index: 1;
}

/* ---------- Buttons (04 §10.1) ----------
   Add the class to an Elementor Button widget (the wrapper) or to an <a>. */
:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp).elementor-widget .elementor-button,
a:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--go-space-2);
	min-height: 48px;
	padding: 0 var(--go-space-6);
	border-radius: var(--go-radius-pill);
	border: 1.5px solid transparent;
	font-family: var(--go-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: transform var(--go-dur-hover) var(--go-ease-in), box-shadow var(--go-dur-hover) var(--go-ease-in), background-color var(--go-dur-hover) var(--go-ease-in);
}

/* The gradient is a background image, and Elementor's "lazy load background images" removes every background image
   inside a section until it scrolls near the screen, so the Lime fill underneath keeps the button visible. */
.go-btn-cta.elementor-widget .elementor-button,
a.go-btn-cta {
	background: var(--go-grad-cta);
	background-color: var(--go-cta);
	color: var(--go-on-cta);
}

.go-btn-cta.elementor-widget .elementor-button:hover,
a.go-btn-cta:hover {
	background: linear-gradient(0deg, var(--go-cta-hover), var(--go-cta-hover));
	background-color: var(--go-cta);
	color: var(--go-on-cta);
}

.go-btn-primary.elementor-widget .elementor-button,
a.go-btn-primary {
	background: var(--go-forest-800);
	color: var(--go-cream-50);
}

.go-btn-primary.elementor-widget .elementor-button:hover,
a.go-btn-primary:hover {
	background: var(--go-forest-950);
	color: var(--go-cream-50);
}

.go-btn-secondary.elementor-widget .elementor-button,
a.go-btn-secondary {
	background: transparent;
	color: var(--go-forest-800);
	border-color: var(--go-forest-800);
}

.go-btn-secondary-dark.elementor-widget .elementor-button,
a.go-btn-secondary-dark {
	background: transparent;
	color: var(--go-white);
	border-color: rgba(255, 255, 255, .35);
}

.go-btn-whatsapp.elementor-widget .elementor-button,
a.go-btn-whatsapp {
	background: var(--go-whatsapp);
	color: var(--go-forest-950);
}

:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp).elementor-widget .elementor-button:hover,
a:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp):hover {
	transform: translateY(-1px);
	box-shadow: var(--go-shadow-sm);
}

:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp).elementor-widget .elementor-button:active,
a:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp):active {
	transform: none;
}

@media (max-width: 767px) {
	.go-btn-full-mobile.elementor-widget {
		align-self: stretch;
		width: 100%;
	}

	.go-btn-full-mobile.elementor-widget .elementor-button,
	a.go-btn-full-mobile {
		width: 100%;
	}
}

/* ---------- Focus (04 §10.1): 3 px ring, 2 px gap ---------- */
:focus-visible {
	outline: 3px solid var(--go-forest-800);
	outline-offset: 2px;
}

.go-on-dark :focus-visible,
.go-hero-overlay :focus-visible {
	outline-color: var(--go-lime-300);
}

/* ---------- Text links ---------- */
.go-link,
.go-prose a {
	color: var(--go-green-700);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Eyebrow (04 §3.2) ---------- */
.go-eyebrow,
.go-eyebrow .elementor-heading-title {
	font-family: var(--go-font-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--go-green-700);
}

.go-on-dark .go-eyebrow,
.go-on-dark .go-eyebrow .elementor-heading-title {
	color: var(--go-accent);
}

@media (max-width: 767px) {
	.go-eyebrow,
	.go-eyebrow .elementor-heading-title {
		font-size: 12px;
	}
}

/* ---------- Running text (04 §3.2 measure) ---------- */
.go-prose {
	max-width: var(--go-measure);
}

/* ---------- Chat-bubble testimonial (04 §10.9) ---------- */
.go-bubble {
	background: var(--go-white);
	border-radius: 18px 18px 18px 4px;
	padding: var(--go-space-4) 18px;
	max-width: 320px;
	box-shadow: var(--go-shadow-sm);
	color: var(--go-forest-800);
}

/* Home, Our Services: Explore Cars is the same Mint button as Know More (27 Oct 2026). */
.go-services a.go-btn-whatsapp {
	background: var(--go-grad-cta);
	background-color: var(--go-cta);
	color: var(--go-on-cta);
}

.go-services a.go-btn-whatsapp:hover {
	background: linear-gradient(0deg, var(--go-cta-hover), var(--go-cta-hover));
	background-color: var(--go-cta);
	color: var(--go-on-cta);
}

/* ---------- CTA band (04 §10.11) ---------- */
.go-cta-band {
	background: var(--go-forest-900);
	border-radius: var(--go-radius-xl);
}

/* ---------- Header (04 §10.5, teal base from the agency's review, 20 Oct 2026) ----------
   The ElementsKit header template from Build/site-setup/header-footer.js:
   .ekit-template-content-header > header.go-header > [go_logo variant="light" emblem="yes"] + .go-header__actions
   (call button and the ElementsKit Nav Menu, class go-header__nav). The header is Forest 900 (the teal of the
   Wanderly reference) on every page, with the emblem and the light lockup; header.js adds is-scrolled once the page
   moves, which only adds a shadow: the height stays put, so nothing below it jumps while the page scrolls.
   The Nav Menu widget prints default styles for its own element id, so the menu rules are scoped with
   .go-header.e-con .go-header__nav.elementor-widget: one class more than those defaults, no element ids. */

/* The wrapper is what sticks: the header inside it is only as tall as its parent, so it can't. Above the
   page content; anything floating (WhatsApp button, popup tab) stays below 1000 so the open phone menu covers it. */
.ekit-template-content-header {
	position: sticky;
	top: 0;
	z-index: 1000;
}

/* --go-header-top comes from header.js: on phones WordPress lets the admin bar scroll away. */
.admin-bar .ekit-template-content-header {
	top: var(--go-header-top, var(--wp-admin--admin-bar--height, 32px));
}

/* Logo sizes: larger since the agency's second review (20 Oct 2026), so the name reads at a glance; the bar keeps
   its 80 / 64 px height (04 §10.5). */
.go-header.e-con {
	--go-header-h: 80px;
	--go-logo-h: 52px;
	--go-emblem-h: 64px;
	--go-nav-color: var(--go-white);
	--go-nav-accent: var(--go-accent);
	--go-focus: var(--go-lime-300);
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	min-height: var(--go-header-h);
	padding: 0 max(var(--go-gutter), calc((100% - var(--go-content-width)) / 2));
	gap: var(--go-space-4);
	background-color: var(--go-forest-900);
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .08);
	transition: box-shadow var(--go-dur-ui) ease;
}

.go-header.e-con.is-scrolled {
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .08), 0 10px 28px rgba(10, 59, 97, .28);
}

.go-header.e-con :focus-visible,
.go-header.e-con .elementskit-navbar-nav li .ekit-menu-nav-link:focus-visible {
	outline: 3px solid var(--go-focus);
	outline-offset: 2px;
	box-shadow: none;
}

.go-header.e-con > .go-header__logo.elementor-widget {
	flex: 0 0 auto;
	width: auto;
}

.go-header.e-con > .go-header__actions.e-con {
	flex: 0 1 auto;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	width: auto;
	gap: var(--go-space-1);
	padding: 0;
}

/* Logo (04 §8, blueprint's logo box): the octagon emblem, then the light lockup (cream lettering, lime orbit),
   which is the version made for dark backgrounds. A header still on [go_logo] (both lockups) shows the light one. */
.go-header .go-logo,
.go-footer .go-logo {
	display: inline-flex;
	align-items: center;
	gap: var(--go-space-3);
	text-decoration: none;
}

.go-logo__lockup {
	display: inline-flex;
}

.go-header .go-logo__emblem {
	display: block;
	width: auto;
	height: var(--go-emblem-h);
	transition: transform 240ms var(--go-ease-in);
}

.go-header .go-logo__img {
	display: block;
	width: auto;
	height: var(--go-logo-h);
}

.go-header .go-logo__img--default {
	display: none;
}

/* A small turn of the emblem when the logo is pointed at: the orbit, orbiting. */
@media (hover: hover) and (pointer: fine) {
	.go-header .go-logo:hover .go-logo__emblem {
		transform: rotate(-6deg);
	}
}

/* Call button (phones and tablets only; the widget is hidden on desktop in Elementor). */
.go-header .go-header__call .go-phone--icon {
	border-radius: var(--go-radius-pill);
	color: var(--go-nav-color);
}

.go-header .go-header__call .go-icon {
	width: 22px;
	height: 22px;
}

/* Submenu chevron, drawn in CSS so ElementsKit's icon font can stay off (05 §3, PERF-03). ElementsKit's own
   <i class="elementskit-submenu-indicator"> stays, because it's the element ElementsKit listens to. */
.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a .elementskit-submenu-indicator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	float: none;
	width: 12px;
	height: 12px;
	margin: 0 0 0 var(--go-space-2);
	padding: 0;
	border: 0;
	font-size: 0;
	line-height: 0;
}

.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a .elementskit-submenu-indicator::before {
	content: "";
	width: 7px;
	height: 7px;
	border: solid var(--go-nav-color);
	border-width: 0 2px 2px 0;
	transform: translateY(-2px) rotate(45deg);
	transition: transform var(--go-dur-ui) var(--go-ease-in);
}

.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a[aria-expanded="true"] .elementskit-submenu-indicator::before {
	transform: translateY(2px) rotate(225deg);
}

/* ----- Desktop menu bar ----- */
@media (min-width: 1025px) {
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-menu-container {
		height: var(--go-header-h);
		background: none;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li {
		display: flex;
		align-items: center;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a {
		height: auto;
		padding: 10px var(--go-space-4);
		border-radius: var(--go-radius-sm);
		color: var(--go-nav-color);
		font-family: var(--go-font-body);
		font-size: 16px;
		font-weight: 400;
		line-height: 1;
		transition: color var(--go-dur-hover) var(--go-ease-in);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a:is(:hover, :focus, :active, .active),
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li:is(:hover, .current-menu-item, .current-menu-ancestor) > a {
		color: var(--go-nav-color);
	}

	/* Hover and the current page: a 2 px underline (Lime over the hero, Forest on cream); the current page is also 600. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li:not(.go-menu-cta) > a::after {
		content: "";
		position: absolute;
		left: var(--go-space-4);
		right: var(--go-space-4);
		bottom: 4px;
		height: 2px;
		border-radius: 2px;
		background: var(--go-nav-accent);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform var(--go-dur-hover) var(--go-ease-in);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li:not(.go-menu-cta) > a:is(:hover, .active)::after,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.current-menu-ancestor:not(.go-menu-cta) > a::after {
		transform: scaleX(1);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a.active,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.current-menu-ancestor > a {
		font-weight: 600;
	}

	/* A click on the chevron follows the link, like the rest of the item; the panel opens on hover and by keyboard. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a .elementskit-submenu-indicator {
		pointer-events: none;
	}

	/* Contact Us is the Primary button for dark backgrounds (04 §10.1): the Lime CTA gradient, Forest 950 label. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta {
		margin-left: var(--go-space-3);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a:is(:hover, :focus, :active, .active),
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta:is(:hover, .current-menu-item) > a {
		min-height: 48px;
		padding: 0 var(--go-space-6);
		border-radius: var(--go-radius-pill);
		background: var(--go-grad-cta);
		background-color: var(--go-cta);
		color: var(--go-on-cta);
		font-weight: 600;
		transition: transform var(--go-dur-hover) var(--go-ease-in), box-shadow var(--go-dur-hover) var(--go-ease-in);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a:hover {
		background: linear-gradient(0deg, var(--go-cta-hover), var(--go-cta-hover));
		background-color: var(--go-cta-hover);
		transform: translateY(-1px);
		box-shadow: 0 6px 18px rgba(244, 197, 66, .35);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a:active {
		transform: none;
	}

	/* The Destinations panel: a White card, 16 px corners, shadow lg, 360 px wide. It opens after a 150 ms pause
	   on hover (so it doesn't flicker as the pointer passes) and at once from the keyboard. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-megamenu-panel {
		/* ElementsKit writes the bar's height at page load as an inline top; that's wrong once the header shrinks. */
		top: 100% !important;
		width: 360px;
		padding: var(--go-space-2);
		border-radius: var(--go-radius-md);
		background: var(--go-white);
		box-shadow: var(--go-shadow-lg);
		--go-focus: var(--go-forest-800);
		transform: translateY(8px);
		transition: opacity var(--go-dur-ui) var(--go-ease-out), transform var(--go-dur-ui) var(--go-ease-out), visibility 0s linear var(--go-dur-ui);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.elementskit-megamenu-has:hover > .elementskit-megamenu-panel {
		transform: none;
		transition: opacity var(--go-dur-ui) var(--go-ease-in) 150ms, transform var(--go-dur-ui) var(--go-ease-in) 150ms, visibility 0s linear 150ms;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.elementskit-megamenu-has > .elementskit-megamenu-panel.ekit-dropdown-open-onclick {
		transform: none;
		transition: opacity var(--go-dur-ui) var(--go-ease-in), transform var(--go-dur-ui) var(--go-ease-in), visibility 0s;
	}
}

/* The rows inside the Destinations panel ([go_menu_panel]). */
.go-mega-panel.e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	padding: 0;
}

.go-mega {
	display: grid;
	gap: var(--go-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.go-mega a.go-mega__link {
	display: flex;
	align-items: center;
	gap: var(--go-space-3);
	padding: var(--go-space-3);
	border-radius: var(--go-radius-sm);
	color: var(--go-forest-800);
	text-decoration: none;
	transition: background-color var(--go-dur-hover) var(--go-ease-in);
}

.go-mega a.go-mega__link:hover {
	background-color: var(--go-mint-50);
	color: var(--go-forest-800);
}

.go-mega__icon {
	display: inline-flex;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--go-forest-800);
	color: var(--go-accent);
}

.go-mega__icon .go-icon {
	width: 20px;
	height: 20px;
}

.go-mega__text {
	display: grid;
	gap: 2px;
}

.go-mega__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}

.go-mega__desc {
	font-size: 14px;
	line-height: 1.5;
	color: var(--go-text-muted);
}

/* ----- Phones and tablets (1024 px and narrower): 64 px bar and the full-screen menu ----- */
@media (max-width: 1024px) {
	.go-header.e-con {
		--go-header-h: 64px;
		--go-logo-h: 38px;
		--go-emblem-h: 48px;
	}

	.go-header .go-logo {
		gap: var(--go-space-2);
	}

	.go-header.e-con .go-header__nav.elementor-widget button.elementskit-menu-hamburger {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
		float: none;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: var(--go-radius-pill);
		background: transparent;
	}

	.go-header.e-con .go-header__nav.elementor-widget button.elementskit-menu-hamburger .elementskit-menu-hamburger-icon {
		width: 22px;
		height: 2px;
		margin: 0;
		border-radius: 2px;
		background-color: var(--go-nav-color);
	}

	/* The menu: a full-screen Forest 950 panel instead of ElementsKit's sliding drawer. Hidden (not just moved
	   off screen) while closed, so Tab and screen readers can't reach it. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-menu-container {
		--go-nav-color: var(--go-white);
		--go-nav-accent: var(--go-accent);
		--go-focus: var(--go-lime-300);
		position: fixed;
		inset: 0;
		z-index: 10;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		width: auto;
		max-width: none;
		height: auto !important; /* ElementsKit forces 100% with !important; inset sizes it, below the admin bar too. */
		padding: var(--go-space-3) var(--go-gutter) calc(var(--go-space-8) + env(safe-area-inset-bottom));
		border-radius: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--go-forest-900);
		color: var(--go-text-on-dark);
		visibility: hidden;
		opacity: 0;
		transition: opacity var(--go-dur-leave) var(--go-ease-out), visibility 0s linear var(--go-dur-leave);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-menu-container.active {
		visibility: visible;
		opacity: 1;
		transition: opacity var(--go-dur-enter) var(--go-ease-in), visibility 0s;
	}

	.admin-bar .go-header.e-con .go-header__nav.elementor-widget .elementskit-menu-container {
		top: var(--go-header-top, var(--wp-admin--admin-bar--height, 46px));
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-menu-overlay {
		display: none;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-nav-identity-panel {
		display: flex;
		justify-content: flex-end;
		margin: 0 0 var(--go-space-2);
		padding: 0;
	}

	/* ElementsKit gives its buttons "transition: .4s" on every property, visibility included, so the close button stayed
	   hidden for a moment after the menu opened and header.js couldn't move focus to it (only visitors with motion
	   turned off got focus there). Only the background fades now. */
	.go-header.e-con .go-header__nav.elementor-widget button.elementskit-menu-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		float: none;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: var(--go-radius-pill);
		background: rgba(255, 255, 255, .08);
		color: var(--go-white);
		transition: background-color var(--go-dur-hover) ease;
	}

	.go-header.e-con .go-header__nav.elementor-widget button.elementskit-menu-close:hover {
		background: rgba(255, 255, 255, .16);
		color: var(--go-white);
	}

	.go-header.e-con .go-header__nav.elementor-widget button.elementskit-menu-close .go-icon {
		width: 24px;
		height: 24px;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav {
		display: block;
		height: auto;
		overflow: visible;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li {
		display: block;
		border-bottom: 1px solid rgba(255, 255, 255, .12);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a:is(:hover, :focus, :active),
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li:hover > a {
		display: flex;
		align-items: center;
		min-height: 48px;
		padding: var(--go-space-2) 0;
		color: var(--go-white);
		font-family: var(--go-font-body);
		font-size: 17px;
		font-weight: 500;
		line-height: 1.2;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a.active,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li:is(.current-menu-item, .current-menu-ancestor) > a {
		color: var(--go-accent);
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li > a .elementskit-submenu-indicator {
		order: 2;
		width: 24px;
		height: 24px;
		margin-left: auto;
	}

	/* Destinations' three tour pages, under it when expanded (ElementsKit shows and hides the list). */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown {
		position: static;
		min-width: 0;
		margin: 0;
		padding: 0 0 var(--go-space-3);
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		transform: none;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown > li > a,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown > li > a:is(:hover, :focus, :active),
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown > li:hover > a {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
		min-height: 42px;
		padding: var(--go-space-1) 0 var(--go-space-1) var(--go-space-4);
		background: transparent;
		color: var(--go-text-on-dark);
		font-size: 15px;
		font-weight: 400;
	}

	/* An icon before each Destinations page (26 Oct 2026), the same three as the desktop panel: a briefcase for Short
	   Tours, a mountain for Domestic, a plane for International. Drawn as a mask so it takes the link's colour. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown > li > a::before {
		content: "";
		flex: none;
		width: 18px;
		height: 18px;
		background: var(--go-accent);
		-webkit-mask: var(--go-menu-icon) center / contain no-repeat;
		mask: var(--go-menu-icon) center / contain no-repeat;
	}

	.go-header .elementskit-dropdown a.go-icon-short {
		--go-menu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
	}

	.go-header .elementskit-dropdown a.go-icon-domestic {
		--go-menu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 3 4 8 5-5 5 15H2L8 3z'/%3E%3C/svg%3E");
	}

	.go-header .elementskit-dropdown a.go-icon-international {
		--go-menu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E");
	}

	/* ElementsKit greys out the current sub-page with !important; on Forest that would fail contrast. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav .elementskit-dropdown > li.current-menu-item > a {
		color: var(--go-accent) !important;
	}

	/* Contact Us: the Primary button (dark style) in the menu. */
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta {
		padding-top: var(--go-space-4);
		border-bottom: 0;
	}

	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a,
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta > a:is(:hover, :focus, :active, .active),
	.go-header.e-con .go-header__nav.elementor-widget .elementskit-navbar-nav > li.go-menu-cta:hover > a {
		display: inline-flex;
		justify-content: center;
		width: 204px;
		max-width: 100%;
		min-height: 38px;
		padding: 0 var(--go-space-5);
		border-radius: var(--go-radius-pill);
		background: var(--go-grad-cta);
		color: var(--go-on-cta);
		font-size: 13px;
	}

	/* WhatsApp, the 24/7 line and the hours (Core adds them to this menu only). */
	.go-header .go-menu-extras {
		display: grid;
		gap: var(--go-space-3);
		margin-top: var(--go-space-5);
		padding-top: var(--go-space-5);
		border-top: 1px solid rgba(255, 255, 255, .12);
	}

	/* Smaller than the page's buttons (26 Oct 2026, "enlarged buttons"): three classes beat the button's own sizes. */
	.go-header .go-menu-extras a.go-btn-whatsapp.go-btn-whatsapp {
		width: 204px;
		max-width: 100%;
		justify-self: start;
		min-height: 38px;
		padding-block: 0;
		font-size: 13px;
	}

	.go-header .go-menu-extras a.go-menu-extras__call {
		display: inline-flex;
		align-items: center;
		gap: var(--go-space-2);
		min-height: 44px;
		color: var(--go-white);
		font-size: 15px;
		font-weight: 600;
		text-decoration: none;
	}

	.go-header .go-menu-extras__call .go-icon {
		width: 20px;
		height: 20px;
		color: var(--go-accent);
	}

	.go-header .go-menu-extras__hours {
		font-size: 13px;
	}
}

/* The page behind the open phone menu doesn't scroll (class set by header.js). */
html.go-menu-open {
	overflow: hidden;
}

/* ---------- Footer (04 §10.17; the blueprint's Contact us / Follow us / Timings in Wanderly's columns) ----------
   The ElementsKit footer template from Build/site-setup/header-footer.js: footer.go-footer.go-on-dark with
   .go-footer__grid — brand (emblem + lockup, tagline, Follow us icons), Quick links, Contact us (offices with map
   pin and phone, the email) and Timings (hours, 24/7 line) — then .go-footer__bottom. Everything in it comes from
   Core's shortcodes. Compact since the agency's second review (20 Oct 2026, "the footer is too large"): about 370 px
   tall on desktop instead of 575, with Quick links in two columns. */
.go-footer.e-con {
	--row-gap: 0px;
	--go-text-on-dark: rgba(255, 255, 255, .94);
	padding: 32px var(--go-gutter) 14px;
	background-color: var(--go-forest-900);
	color: var(--go-text-on-dark);
	font-size: 14px;
	line-height: 1.5;
}

/* Quick links needs room for its two columns, Contact us for an address on one or two lines, Timings for each time
   on one line. */
.go-footer .go-footer__grid.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.65fr) minmax(0, 1.25fr);
	gap: var(--go-space-5) var(--go-space-6);
	padding: 0;
}

.go-footer .elementor-widget-text-editor {
	font-family: var(--go-font-body);
}

.go-footer :is(.go-footer__brand, .go-footer__contact, .go-footer__links, .go-footer__hours).e-con {
	align-content: flex-start;
	justify-content: flex-start;
	gap: var(--go-space-2);
	padding: 0;
}

/* Column headings: eyebrow style in Lime 400 (04 §10.17). One class more than .go-on-dark's white headings. */
.go-footer .go-footer__heading.elementor-widget-heading .elementor-heading-title {
	margin: 0;
	font-family: var(--go-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--go-accent);
}

/* Brand column */
.go-footer .go-logo__emblem {
	display: block;
	width: auto;
	height: 40px;
}

.go-footer .go-logo__img {
	display: block;
	width: auto;
	height: 28px;
}

.go-footer .go-footer__tagline,
.go-footer .go-footer__tagline p {
	margin: 0;
	max-width: 280px;
	color: var(--go-text-on-dark);
	font-size: 14px;
}

.go-footer .go-footer__brand .go-footer__heading {
	margin-top: var(--go-space-1);
}

/* Links (not buttons: an Elementor Button's class is on its wrapper, so its <a> is left out by .elementor-button) */
.go-footer a:not([class*="go-btn"], .elementor-button, .go-social) {
	color: var(--go-text-on-dark);
	text-decoration: none;
	transition: color var(--go-dur-hover) ease;
}

.go-footer a:not([class*="go-btn"], .elementor-button, .go-social):hover {
	color: var(--go-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.go-footer :is(.go-menu__list, .go-social-links) {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Quick links in two columns: seven links take four rows instead of seven. */
.go-footer .go-menu__list {
	display: grid;
	grid-template-columns: repeat(2, max-content);
	gap: 6px var(--go-space-6);
}

.go-footer .go-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--go-space-2) var(--go-space-4);
}

/* Follow us: the networks' own icons (see "Real social icons" below), 40 px round. */
.go-footer .go-social-links.go-social-links--icons {
	gap: var(--go-space-3);
}

.go-footer .go-social-links--icons a.go-social {
	display: inline-flex;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	text-decoration: none;
	transition: transform var(--go-dur-hover) ease, box-shadow var(--go-dur-hover) ease;
}

.go-footer .go-social-links--icons a.go-social .go-icon {
	width: 100%;
	height: 100%;
	padding: 10px;
}

.go-footer .go-social-links--icons a.go-social:active {
	transform: scale(.94);
}

@media (hover: hover) and (pointer: fine) {
	.go-footer .go-social-links--icons a.go-social:hover {
		transform: translateY(-2px);
		box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
	}
}

/* Contact us: each office's name, then its address and phone, each after a Lime icon; the email last. */
.go-footer .go-offices {
	display: grid;
	gap: var(--go-space-2);
}

.go-footer .go-office__name {
	margin: 0 0 2px;
	font-family: var(--go-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--go-white);
}

.go-footer :is(.go-office__address, .go-office__phone, .go-support) {
	margin: 0 0 2px;
}

.go-footer .go-offices--icons :is(.go-office__address, .go-office__phone),
.go-footer a.go-email--icon {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.go-footer .go-offices--icons .go-icon,
.go-footer a.go-email--icon .go-icon {
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 2px;
	color: var(--go-accent);
}

.go-footer a.go-email--icon {
	overflow-wrap: anywhere;
}

/* Timings */
:is(.go-footer, .go-header) .go-hours {
	width: auto;
	margin: 0;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.5;
}

:is(.go-footer, .go-header) .go-hours :is(th, td) {
	padding: 2px var(--go-space-4) 2px 0;
	border: 0;
	background: none;
	color: inherit;
	font-weight: 400;
	text-align: left;
	vertical-align: top;
}

:is(.go-footer, .go-header) .go-hours thead th {
	font-weight: 600;
	color: var(--go-white);
}

.go-footer .go-hours tbody th {
	color: var(--go-white);
}

.go-footer .go-hours {
	font-size: 13px;
}

.go-footer .go-hours :is(th, td) {
	padding-right: var(--go-space-3);
	white-space: nowrap;
}

.go-footer .go-support {
	margin-top: var(--go-space-2);
	padding-top: var(--go-space-2);
	border-top: 1px solid rgba(255, 255, 255, .12);
}

/* Bottom bar */
.go-footer .go-footer__bottom.e-con {
	margin-top: var(--go-space-5);
	padding: var(--go-space-3) 0 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.go-footer .go-copyright {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
}

@media (max-width: 1024px) {
	.go-footer .go-footer__grid.e-con {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* 44 px tap targets on touch screens (04 §11). */
	.go-footer .go-social-links--icons a.go-social {
		width: 44px;
		height: 44px;
	}

	.go-footer .go-social-links--icons a.go-social .go-icon {
		padding: 11px;
	}
}

@media (max-width: 767px) {
	/* The bottom padding keeps the copyright line clear of the floating WhatsApp button at the end of the page. */
	.go-footer.e-con {
		padding-top: 28px;
		padding-bottom: 72px;
	}

	.go-footer .go-footer__grid.e-con {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--go-space-5);
	}

	/* 44 px tap targets on phones (04 §11). */
	.go-footer .go-menu__list a,
	.go-footer .go-social-links:not(.go-social-links--icons) a,
	.go-footer a.go-phone,
	.go-footer a.go-email {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.go-footer .go-menu__list {
		gap: 0 var(--go-space-6);
	}

	.go-footer .go-offices--icons .go-office__phone {
		align-items: center;
	}

	.go-footer .go-offices--icons .go-office__phone .go-icon {
		margin-top: 0;
	}
}

/* ---------- Real social icons (agency, 20 Oct 2026) ----------
   Wherever Core prints a social link (.go-social--<network>: the footer's Follow us row, the hero's buttons, the
   Instagram card), its icon sits in the network's own colour with a white glyph on top: Instagram's gradient, YouTube
   red, Facebook blue, WhatsApp green. These are the networks' brand colours, not site tokens; don't recolour them.
   The digital visiting card isn't a network, so it keeps a quiet translucent circle. */
:is(.go-social--instagram, .go-social--youtube, .go-social--facebook, .go-social--whatsapp, .go-social--digital-card) .go-icon {
	box-sizing: border-box;
	flex: none;
	border-radius: 50%;
	color: #fff;
}

.go-social--instagram .go-icon {
	background-color: #d6249f;
	background-image: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.go-social--youtube .go-icon {
	background-color: #ff0000;
}

.go-social--facebook .go-icon {
	background-color: #1877f2;
}

.go-social--whatsapp .go-icon {
	background-color: #25d366;
}

/* The My DVC digital card is blue like a network of its own (25 Oct 2026). */
.go-social--digital-card .go-icon {
	background-color: #1d6fe8;
}

/* ---------- Skip link (04 §10.18) ---------- */
.go-skip-link {
	position: absolute;
	left: var(--go-space-4);
	top: -100px;
	z-index: 1000;
	padding: var(--go-space-3) var(--go-space-4);
	border-radius: var(--go-radius-sm);
	background: var(--go-forest-800);
	color: var(--go-cream-50);
	font-weight: 600;
}

.go-skip-link:focus {
	top: var(--go-space-4);
}

/* ---------- Notices (04 §10.18) ---------- */
.go-notice {
	display: flex;
	gap: var(--go-space-3);
	padding: var(--go-space-4);
	border-radius: var(--go-radius-sm);
	background: var(--go-info-soft);
	color: var(--go-info);
}

.go-notice--success { background: var(--go-success-soft); color: var(--go-success); }
.go-notice--warning { background: var(--go-warning-soft); color: var(--go-warning); }
.go-notice--error { background: var(--go-error-soft); color: var(--go-error); }

/* ---------- Forms: Forminator "basic" style (04 §10.14) ---------- */
.forminator-ui.forminator-custom-form .forminator-label {
	font-family: var(--go-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--go-forest-800);
}

.forminator-ui.forminator-custom-form :is(.forminator-input, .forminator-textarea, select) {
	min-height: 48px;
	padding: 0 14px;
	border: 1.5px solid var(--go-border-input);
	border-radius: var(--go-radius-sm);
	background: var(--go-white);
	font-family: var(--go-font-body);
	font-size: 16px;
	color: var(--go-forest-800);
}

.forminator-ui.forminator-custom-form .forminator-textarea {
	padding: 12px 14px;
}

.forminator-ui.forminator-custom-form :is(.forminator-input, .forminator-textarea, select):focus {
	border: 2px solid var(--go-forest-800);
	box-shadow: 0 0 0 3px rgba(8, 64, 102, .15);
	outline: none;
}

.forminator-ui.forminator-custom-form .forminator-error-message {
	font-size: 14px;
	color: var(--go-error);
}

.forminator-ui.forminator-custom-form .forminator-has_error :is(.forminator-input, .forminator-textarea, select) {
	border-color: var(--go-error);
}

.forminator-ui.forminator-custom-form .forminator-button-submit {
	min-height: 48px;
	padding: 0 var(--go-space-6);
	border: 0;
	border-radius: var(--go-radius-pill);
	background: var(--go-forest-800);
	color: var(--go-cream-50);
	font-family: var(--go-font-body);
	font-size: 16px;
	font-weight: 600;
}

@media (max-width: 767px) {
	.forminator-ui.forminator-custom-form .forminator-button-submit {
		width: 100%;
	}
}

/* ---------- 404 page ---------- */
.go-404 {
	max-width: var(--go-content-width);
	margin: 0 auto;
	padding: var(--go-space-11) var(--go-gutter);
	display: grid;
	gap: var(--go-space-8);
	align-items: center;
	grid-template-columns: minmax(0, 1fr) 280px;
}

.go-404__title {
	font-size: 52px;
	line-height: 1.1;
	letter-spacing: -.01em;
	margin: var(--go-space-3) 0;
}

.go-404__lead {
	font-size: 20px;
	line-height: 1.55;
	max-width: 560px;
}

.go-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--go-space-3);
	margin-top: var(--go-space-7);
}

.go-404__tern {
	width: 280px;
	height: auto;
}

@media (max-width: 767px) {
	.go-404 {
		grid-template-columns: 1fr;
		padding: var(--go-space-10) var(--go-gutter);
	}

	.go-404__title {
		font-size: 36px;
	}

	.go-404__lead {
		font-size: 18px;
	}

	.go-404__tern {
		width: 180px;
		order: -1;
	}
}

/* ---------- Page sections (04 §4): add go-section to a page's top-level container ----------
   Elementor containers take their spacing from CSS variables, so the section rules set those variables; anything
   set in a container's own Elementor panel still wins. */
/* Side padding is the 04 §4 gutter (24 px, 16 px on phones), not Elementor's default 10 px; on wide screens the
   boxed content width centres the content anyway. */
.e-con.go-section,
.e-con.go-stats {
	--padding-left: var(--go-gutter);
	--padding-right: var(--go-gutter);
}

.e-con.go-section {
	--padding-top: 96px;
	--padding-bottom: 96px;
	--row-gap: 40px;
	background-color: var(--go-white);
}

.e-con.go-section--cream {
	background-color: var(--go-cream-50);
}

.e-con.go-section--mint {
	background-color: var(--go-mint-50);
}

/* Dark sections hold photos and browsing (04 §1.2), like the Wanderly reference's destinations row. Add go-on-dark too. */
.e-con.go-section--forest {
	background-color: var(--go-forest-900);
}

/* Headings and intros inside go- sections follow 04 §3.2 whatever the Elementor kit says. A style set on the widget
   itself in Elementor still wins (its selector is more specific). */
:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading :is(h2, h3).elementor-heading-title {
	font-family: var(--go-font-display);
	font-weight: 400;
	letter-spacing: -.01em;
	color: var(--go-forest-800);
}

:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h2.elementor-heading-title {
	font-size: 42px;
	line-height: 1.12;
}

:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h3.elementor-heading-title {
	font-size: 30px;
	line-height: 1.2;
}

.go-on-dark .elementor-widget-heading :is(h2, h3).elementor-heading-title,
:is(.go-section, .go-stats, .go-cta-band).go-on-dark .elementor-widget-heading :is(h2, h3).elementor-heading-title {
	color: var(--go-white);
}

:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-text-editor {
	font-family: var(--go-font-body);
	font-size: 17px;
	line-height: 1.6;
	color: var(--go-text-muted);
}

@media (max-width: 1024px) {
	:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h2.elementor-heading-title {
		font-size: 36px;
	}

	:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h3.elementor-heading-title {
		font-size: 27px;
	}
}

@media (max-width: 767px) {
	:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h2.elementor-heading-title {
		font-size: 30px;
	}

	:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-heading h3.elementor-heading-title {
		font-size: 24px;
	}

	:is(.go-section, .go-stats, .go-cta-band) .elementor-widget-text-editor {
		font-size: 16px;
	}
}

/* Section header (04 §10.7): H2, then a Lead intro of at most 640 px. */
.e-con.go-section-head {
	--row-gap: 12px;
}

.go-section-head .elementor-heading-title {
	text-wrap: balance;
}

.elementor-widget.go-lead,
.go-lead p {
	max-width: 640px;
	margin: 0;
	font-size: 20px;
	line-height: 1.55;
	color: var(--go-text-muted);
}

.go-on-dark .elementor-widget.go-lead,
.go-on-dark .go-lead p {
	color: var(--go-text-on-dark);
}

.e-con.go-section-head--center {
	--align-items: center;
	text-align: center;
}

.go-section-head--center .go-lead,
.go-section-head--center .go-lead p {
	margin-inline: auto;
}

/* A trip-list section with nothing to show disappears completely (03 §4.2). Elementor's editor still shows it. */
body:not(.elementor-editor-active) .go-hide-if-no-trips:not(:has(.go-carousel, .go-trips, .go-trips-empty)) {
	display: none;
}

/* ---------- Home: Upcoming tours (review of 25 Oct 2026: "the section is too large") ----------
   Same cards, less air above and below. */
.e-con.go-section.go-home-upcoming {
	--padding-top: 56px;
	--padding-bottom: 56px;
	--row-gap: 24px;
}

@media (max-width: 1024px) {
	.e-con.go-section.go-home-upcoming {
		--padding-top: 48px;
		--padding-bottom: 48px;
	}
}

@media (max-width: 767px) {
	.e-con.go-section.go-home-upcoming {
		--padding-top: 40px;
		--padding-bottom: 40px;
		--row-gap: 20px;
	}
}

/* ---------- Home: Domestic | International (03 §4.2) ---------- */
.e-con.go-home-regions {
	--column-gap: 48px;
}

.e-con.go-home-regions__col {
	--width: 50%;
	--row-gap: 16px;
}

.go-home-regions__col > .elementor-widget-button {
	margin-top: var(--go-space-2);
}

/* The blueprint's rule between the two columns, on wide screens. */
@media (min-width: 1025px) {
	.e-con.go-home-regions {
		--column-gap: 0px;
	}

	.e-con.go-home-regions__col:first-child {
		--padding-right: 48px;
	}

	.e-con.go-home-regions__col + .go-home-regions__col {
		--padding-left: 48px;
		border-left: 1px solid var(--go-border-light);
	}
}

/* ---------- Home: the CTA band's section ----------
   The top padding leaves room for Tern's head, which rises above the band. */
.e-con.go-home-cta {
	--padding-top: 104px;
	--padding-bottom: 72px;
}

/* ---------- CTA band layout (04 §10.11; one row like the blueprint since the agency's review, 20 Oct 2026) ----------
   [Tern] [heading + one line] [Customize my trip]. Tern stands on the band's bottom edge, pointing at the button,
   and his head rises above the band, so the band itself stays one short row. */
.e-con.go-cta-band {
	--padding-top: 32px;
	--padding-bottom: 32px;
	--padding-left: 40px;
	--padding-right: 48px;
	--column-gap: 32px;
	--align-items: center;
	--justify-content: space-between;
	position: relative;
	min-height: 168px;
	overflow: visible;
}

.e-con.go-cta-band__text {
	--row-gap: 6px;
	--width: auto;
	flex: 1 1 0;
	min-width: 0;
	max-width: 600px;
}

.go-cta-band.e-con .elementor-widget-heading h2.elementor-heading-title {
	font-size: 36px;
}

@media (max-width: 1024px) {
	.go-cta-band.e-con .elementor-widget-heading h2.elementor-heading-title {
		font-size: 30px;
	}
}

@media (max-width: 767px) {
	.go-cta-band.e-con .elementor-widget-heading h2.elementor-heading-title {
		font-size: 28px;
	}
}

.go-cta-band .go-lead p,
.go-cta-band .elementor-widget.go-lead {
	font-size: 17px;
	line-height: 1.55;
	max-width: 520px;
}

.go-cta-band > .elementor-widget-button {
	flex: none;
}

/* The widget keeps Tern's width in the row; the picture hangs from the band's bottom edge. */
.go-cta-band > .go-cta-band__tern.elementor-widget {
	position: relative;
	flex: none;
	align-self: stretch;
	width: 188px;
}

.go-cta-band__tern .go-tern {
	position: absolute;
	left: 0;
	bottom: calc(-1 * var(--padding-bottom, 32px));
	width: 188px;
	max-width: none;
	filter: drop-shadow(0 0 1px rgba(10, 59, 97, .35)) drop-shadow(0 2px 8px rgba(10, 59, 97, .22));
}

.go-tern {
	display: block;
	max-width: 100%;
	height: auto;
}

/* ---------- Home: Memory Lane (04 §10.9): messages on the left, photos on the right, as in the blueprint ----------
   .go-memories-wrap holds .go-memories (short chat bubbles, one below the other) and .go-memories-photos (Elementor's
   free Image Gallery, 4:5 photos, the photo's caption as a place chip). Both scroll (review of 25 Oct 2026): the
   messages up and down (go-scroll--y), the photos sideways three across and two down (go-scroll--x), each with
   arrows that Core's scroller.js adds inside a .go-scroll-frame. The messages box takes the photos' height, so as
   many bubbles show as fit (three or four on a wide screen); the photos take two thirds of the row. */
.e-con.go-memories-wrap {
	--flex-direction: row;
	--column-gap: 40px;
	--row-gap: 32px;
	--align-items: stretch;
	flex-direction: row;
	align-items: stretch;
}

.e-con.go-memories-wrap > .go-scroll-frame--y {
	flex: 1 1 0;
	min-width: 0;
}

.go-memories-wrap > .go-scroll-frame--x {
	flex: 2 1 0;
	min-width: 0;
	align-self: center;
}

.e-con.go-memories {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.go-memories > .go-memory.elementor-widget {
	flex: none;
}

.go-memory .go-bubble {
	max-width: none;
}

/* The frame the scroller wraps round a go-scroll element, with the arrows inside it. */
.go-scroll-frame {
	position: relative;
}

/* The messages are a plain stack that grows the row (review of 29 Oct 2026): no inner scroller, so wheel and touch
   scrolling always reach the page; the up/down arrows are not needed and stay hidden. */
.go-scroll-frame--y > .go-memories {
	position: relative;
	overflow: visible;
	padding: 0;
}

.go-scroll-frame--y > .go-scroll__arrow.go-scroll__arrow {
	display: none;
}

/* The kit's own button rules are (0,2,1) with hover and focus; three classes beat them. */
.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--go-white);
	box-shadow: var(--go-shadow-md);
	color: var(--go-forest-800);
	cursor: pointer;
	transition: background-color var(--go-dur-hover) ease, color var(--go-dur-hover) ease, opacity var(--go-dur-hover) ease, transform var(--go-dur-hover) ease;
}

.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow svg {
	display: block;
	width: 18px;
	height: 18px;
}

.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow:hover:not([aria-disabled="true"]),
.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow:focus:not([aria-disabled="true"]) {
	background: var(--go-forest-800);
	color: var(--go-cream-50);
}

.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow:active:not([aria-disabled="true"]) {
	transform: scale(.94);
}

.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow:focus-visible {
	outline: 3px solid var(--go-forest-800);
	outline-offset: 2px;
}

.go-scroll-frame > .go-scroll__arrow.go-scroll__arrow[aria-disabled="true"] {
	opacity: .35;
	cursor: default;
}

.go-scroll-frame--static > .go-scroll__arrow {
	display: none;
}

.go-scroll-frame--x > .go-scroll__arrow {
	top: 50%;
	margin-top: -22px;
}

.go-scroll-frame--x > .go-scroll__arrow--prev {
	left: 8px;
}

.go-scroll-frame--x > .go-scroll__arrow--next {
	right: 8px;
}

.go-scroll-frame--y > .go-scroll__arrow {
	left: 50%;
	margin-left: -22px;
}

.go-scroll-frame--y > .go-scroll__arrow--prev {
	top: 4px;
}

.go-scroll-frame--y > .go-scroll__arrow--next {
	bottom: 4px;
}

/* Photos (Elementor's free Image Gallery): a page is three across and two down, 4:5; the arrows (or a swipe) bring
   the next page. */
.go-memories-photos .gallery.gallery {
	display: grid;
	grid-template-columns: none;
	grid-template-rows: auto auto;
	grid-auto-columns: calc((100% - 24px) / 3);
	grid-auto-flow: column dense;
	gap: 12px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	overscroll-behavior-y: auto;
	touch-action: pan-x pan-y;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.go-memories-photos .gallery::-webkit-scrollbar {
	display: none;
}

.go-memories-photos .gallery-item:nth-child(6n + 1),
.go-memories-photos .gallery-item:nth-child(6n + 2),
.go-memories-photos .gallery-item:nth-child(6n + 3) {
	grid-row: 1;
}

.go-memories-photos .gallery-item:nth-child(6n + 4),
.go-memories-photos .gallery-item:nth-child(6n + 5),
.go-memories-photos .gallery-item:nth-child(6n + 6) {
	grid-row: 2;
}

.go-memories-photos .gallery-item:nth-child(6n + 1) {
	scroll-snap-align: start;
}

/* Elementor caps an item at 33.33% of its column (four classes), so this needs five. */
.go-memories-photos .gallery.gallery .gallery-item.gallery-item {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.go-memories-photos .gallery-icon {
	display: block;
	margin: 0;
	line-height: 0;
}

.go-memories-photos.elementor-widget .gallery-item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border: 0;
	border-radius: var(--go-radius-md);
	transition: transform 450ms var(--go-ease-in);
}

.go-memories-photos .gallery-item .gallery-caption {
	position: absolute;
	left: 10px;
	bottom: 10px;
	width: auto;
	max-width: calc(100% - 20px);
	margin: 0;
	padding: 5px 10px;
	border-radius: var(--go-radius-pill);
	background: rgba(10, 59, 97, .72);
	color: var(--go-white);
	font: 600 12px/1.25 var(--go-font-body);
	text-align: left;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

/* A photo pointed at comes forward a little (mouse only). */
@media (hover: hover) and (pointer: fine) {
	.go-memories-photos.elementor-widget .gallery-item:hover img {
		transform: scale(1.03);
	}
}


.go-memory p {
	margin: 0;
}

/* Short bubbles: smaller type and padding than 04 §10.9's single testimonial, so four fit beside the photos. */
.go-memory .go-bubble {
	position: relative;
	padding: 11px 12px 22px;
	font-size: 14px;
	line-height: 1.5;
}

/* Two small ticks in Green 600, drawn as a background so screen readers don't announce them. */
.go-memory .go-bubble::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 7px;
	width: 18px;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12' fill='none' stroke='%234D7A5C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 6.5 3 3 6-7.5'/%3E%3Cpath d='m7 9.5 1 1 7-8.5'/%3E%3C/svg%3E") no-repeat center / contain;
}

.go-memory .go-bubble__name {
	margin-top: var(--go-space-2);
	font-size: 13px;
	font-weight: 600;
	color: var(--go-forest-800);
}

.go-memory .go-bubble__trip {
	font-size: 13px;
	color: var(--go-text-muted);
}

/* ---------- Home: service cards (04 §10.10) ---------- */
.e-con.go-services {
	--column-gap: 24px;
	--row-gap: 24px;
}

.e-con.go-service-card {
	--width: 50%;
	--min-height: 360px;
	--justify-content: flex-end;
	--row-gap: 12px;
	--padding-top: 32px;
	--padding-bottom: 32px;
	--padding-left: 32px;
	--padding-right: 32px;
	overflow: hidden;
	border-radius: var(--go-radius-lg);
	background-color: var(--go-forest-800);
	background-size: cover;
	background-position: center;
}

.go-service-card .elementor-heading-title {
	color: var(--go-cream-50);
}

.go-service-card p {
	margin: 0;
	color: rgba(255, 255, 255, .85);
}

.go-service-card .elementor-widget-shortcode,
.go-service-card .elementor-widget-button {
	margin-top: var(--go-space-2);
}

.e-con.go-service-card {
	transition: transform 200ms var(--go-ease-in), box-shadow 200ms var(--go-ease-in);
}

/* The text covers the lower half of the photo, so the shade starts higher and darker than the card scrim's default:
   04 §2.5 lets the tint rise wherever white text would sit on a bright part of a photo (a road, passport pages). */
.go-service-card.go-card-scrim::before {
	background: linear-gradient(180deg, rgba(10, 59, 97, .1) 0%, rgba(10, 59, 97, .55) 38%, rgba(10, 59, 97, .9) 68%, #0A3B61 100%);
}

@media (hover: hover) and (pointer: fine) {
	.e-con.go-service-card:hover {
		transform: translateY(-2px);
		box-shadow: var(--go-shadow-lg);
	}
}

/* ---------- Icon badge (04 §6): add go-icon-badge to Elementor's free Icon widget ----------
   A 56 px Forest 800 circle with a 24 px Lime 400 icon; on dark sections and photos a lime-tinted ring instead,
   because Forest 800 disappears on Forest 900. */
.elementor-widget-icon.go-icon-badge .elementor-icon-wrapper {
	line-height: 0;
}

.elementor-widget-icon.go-icon-badge .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--go-forest-800);
	color: var(--go-accent);
	font-size: 24px;
	line-height: 1;
}

.elementor-widget-icon.go-icon-badge .elementor-icon :is(svg, i) {
	width: 24px;
	height: 24px;
	fill: currentColor;
	color: currentColor;
}

.go-on-dark .elementor-widget-icon.go-icon-badge .elementor-icon {
	background: rgba(244, 197, 66, .1);
	box-shadow: inset 0 0 0 1px rgba(244, 197, 66, .4);
}

/* ---------- Home: Why choose us (04 §10.8) ----------
   A Forest 900 band: the heading, the 24/7 line and Tern's flock on the left; four numbers two by two on the right,
   inside an orbit (the logo's orbit, drawn as a thin Lime ring) with a soft Lime glow behind it. Since the agency's
   second review (20 Oct 2026, "needs animations and effects") the band arrives in one moment when it scrolls into
   view (motion.js sets go-fx-in on .go-stats): the ring draws itself once, the numbers count up, each badge sends
   out one ring, and the flock glides in. Everything ends within about two seconds; nothing loops (WCAG 2.2.2).
   Reworked after the review of 22 Oct 2026 ("not created nicely"): each number is a frosted tile with a Lime rule
   that draws along its foot, the 24/7 line is a pill with a Lime dot, and the orbit circles the heading, with a
   small Lime satellite that rides once round it while it draws, instead of an ellipse crossing the numbers. */
.e-con.go-stats {
	--padding-top: 96px;
	--padding-bottom: 96px;
	--column-gap: 64px;
	--row-gap: 40px;
	--align-items: center;
	position: relative;
	overflow: hidden;
	background-color: var(--go-forest-900);
}

.e-con.go-stats__intro {
	--width: 38%;
	--row-gap: 20px;
	position: relative;
	isolation: isolate;
}

/* The 24/7 line as a pill, a Lime dot before it (the dot pulses three times when the band arrives). */
.go-stats p.go-stats__support {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin: 0;
	padding: 10px 18px 10px 14px;
	border: 1px solid rgba(244, 197, 66, .3);
	border-radius: var(--go-radius-pill);
	background: rgba(244, 197, 66, .08);
	font-size: 16px;
	font-weight: 500;
	color: var(--go-white);
}

.go-stats p.go-stats__support::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--go-accent);
	box-shadow: 0 0 0 0 rgba(244, 197, 66, .6);
}

/* The orbit (::before) and its satellite (::after): a circle behind the heading, the logo's orbit. The ring's arc is
   masked by a conic gradient whose angle (--go-orbit) runs from 0 to 360deg when the band arrives, so it draws
   itself once; the satellite sits on the ring at the top and rides once round it at the same pace. */
.e-con.go-stats__intro::before,
.e-con.go-stats__intro::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	border-radius: 50%;
}

.e-con.go-stats__intro::before {
	--go-orbit-size: 340px;
	top: calc(50% - var(--go-orbit-size) / 2);
	left: -96px;
	width: var(--go-orbit-size);
	height: var(--go-orbit-size);
	border: 1.5px solid rgba(244, 197, 66, .26);
	-webkit-mask-image: conic-gradient(#000 var(--go-orbit), transparent 0);
	mask-image: conic-gradient(#000 var(--go-orbit), transparent 0);
}

.e-con.go-stats__intro::after {
	top: calc(50% - 176px);
	left: -102px;
	width: 352px;
	height: 352px;
	background: radial-gradient(circle, var(--go-accent) 0 4px, rgba(244, 197, 66, .35) 5px, transparent 8px) 50% 0 / 16px 16px no-repeat;
}

.go-stats__flock .go-tern {
	width: 160px;
	margin-top: var(--go-space-4);
}

/* Two by two, as in the blueprint: each stat is an icon badge beside its number and label (.go-stat). */
.e-con.go-stats__grid {
	--width: 58%;
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

@property --go-orbit {
	syntax: "<angle>";
	inherits: false;
	initial-value: 360deg;
}

/* The glow behind the tiles: a blurred Lime ellipse (a background colour, which Elementor's lazy background loading
   leaves alone). */
.e-con.go-stats__grid::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 4% 10%;
	pointer-events: none;
	border-radius: 50%;
	background-color: rgba(244, 197, 66, .1);
	filter: blur(56px);
}

/* Each number on a frosted tile; its ::after is the Lime rule along the foot. */
.e-con.go-stat {
	--flex-direction: row;
	--align-items: center;
	--column-gap: 18px;
	--padding-top: 24px;
	--padding-bottom: 24px;
	--padding-left: 24px;
	--padding-right: 24px;
	position: relative;
	overflow: hidden;
	flex-direction: row;
	align-items: center;
	border: 1px solid rgba(244, 197, 66, .16);
	border-radius: 20px;
	background: rgba(255, 255, 255, .035);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: border-color 200ms ease, background-color 200ms ease, transform 200ms var(--go-ease-in);
}

.e-con.go-stat::after {
	content: "";
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--go-grad-cta);
	transform-origin: 0 50%;
	opacity: .7;
}

@media (hover: hover) and (pointer: fine) {
	.e-con.go-stat:hover {
		border-color: rgba(244, 197, 66, .45);
		background: rgba(244, 197, 66, .07);
		transform: translateY(-3px);
	}
}

.go-stat > .elementor-widget-icon {
	flex: none;
}

.go-stat > .elementor-widget-counter {
	flex: 1 1 auto;
	min-width: 0;
}

/* Each badge can send out one ring (its ::after) when the band arrives. */
.go-stats .go-stat .go-icon-badge .elementor-icon {
	position: relative;
	transition: background-color 200ms ease, color 200ms ease;
}

.go-stats .go-stat .go-icon-badge .elementor-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 1.5px var(--go-accent);
	opacity: 0;
	pointer-events: none;
}

/* Pointing at a number fills its badge with Lime (mouse only). */
@media (hover: hover) and (pointer: fine) {
	.go-stats .go-stat:hover .go-icon-badge .elementor-icon {
		background: var(--go-accent);
		color: var(--go-forest-900);
	}
}

/* The number above its label; the label stays first in the HTML, so it's read as "Happy customers, 2K+". */
.go-stats .elementor-counter {
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: var(--go-space-2);
}

.go-stats .elementor-counter .elementor-counter-number-wrapper {
	justify-content: flex-start;
	font-family: var(--go-font-display);
	font-size: 48px;
	font-weight: 400;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--go-accent);
}

.go-stats .elementor-counter .elementor-counter-title {
	margin: 0;
	text-align: left;
	font-family: var(--go-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: rgba(255, 255, 255, .85);
}

/* The arrival, for visitors who allow motion. Before it (go-fx-wait without go-fx-in) the ring is undrawn and the
   flock waits a little lower left; with go-fx-in the ring draws (1.6 s), each badge rings once (staggered like the
   numbers) and the flock glides up. Without motion.js nothing waits, so the band simply shows. */
@media (prefers-reduced-motion: no-preference) {
	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stats__intro::before {
		--go-orbit: 0deg;
	}

	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stats__intro::after {
		opacity: 0;
	}

	.go-motion .go-stats.go-fx-in .go-stats__intro::before {
		animation: go-orbit-draw 1600ms cubic-bezier(.23, 1, .32, 1) 150ms both;
	}

	.go-motion .go-stats.go-fx-in .go-stats__intro::after {
		animation: go-orbit-ride 1600ms cubic-bezier(.23, 1, .32, 1) 150ms both;
	}

	.go-motion .go-stats.go-fx-in p.go-stats__support::before {
		animation: go-dot-pulse 1200ms ease-out 600ms 3;
	}

	/* Each tile's Lime rule draws along its foot, one after another. */
	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stat::after {
		transform: scaleX(0);
	}

	.go-motion .go-stats.go-fx-in .go-stat::after {
		transition: transform 900ms cubic-bezier(.23, 1, .32, 1) var(--go-rule-delay, 400ms);
	}

	.go-motion .go-stats .go-stat:nth-child(2) { --go-rule-delay: 500ms; }
	.go-motion .go-stats .go-stat:nth-child(3) { --go-rule-delay: 600ms; }
	.go-motion .go-stats .go-stat:nth-child(4) { --go-rule-delay: 700ms; }

	.go-motion .go-stats.go-fx-in .go-stat .go-icon-badge .elementor-icon::after {
		animation: go-badge-pulse 900ms cubic-bezier(.23, 1, .32, 1) 1 both;
	}

	.go-motion .go-stats.go-fx-in .go-stat:nth-child(1) .go-icon-badge .elementor-icon::after { animation-delay: 350ms; }
	.go-motion .go-stats.go-fx-in .go-stat:nth-child(2) .go-icon-badge .elementor-icon::after { animation-delay: 450ms; }
	.go-motion .go-stats.go-fx-in .go-stat:nth-child(3) .go-icon-badge .elementor-icon::after { animation-delay: 550ms; }
	.go-motion .go-stats.go-fx-in .go-stat:nth-child(4) .go-icon-badge .elementor-icon::after { animation-delay: 650ms; }

	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stats__flock .go-tern {
		opacity: 0;
		transform: translate(-28px, 18px);
	}

	.go-motion .go-stats.go-fx-in .go-stats__flock .go-tern {
		transition: opacity 500ms ease 300ms, transform 1100ms var(--go-ease-in) 300ms;
	}
}

/* With reduced motion the ring and the flock only fade in; nothing draws, moves or rings. These beat the site-wide
   reduced-motion rule (it stops every transition) because they're more specific. */
@media (prefers-reduced-motion: reduce) {
	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stats__intro::before,
	.go-motion .go-stats.go-fx-wait:not(.go-fx-in) .go-stats__flock .go-tern {
		opacity: 0;
	}

	.go-motion .go-stats.go-fx-in .go-stats__intro::before,
	.go-motion .go-stats.go-fx-in .go-stats__flock .go-tern {
		transition: opacity 600ms ease 200ms !important;
	}
}

@keyframes go-orbit-draw {
	from {
		--go-orbit: 0deg;
	}

	to {
		--go-orbit: 360deg;
	}
}

@keyframes go-orbit-ride {
	from {
		opacity: 0;
		transform: rotate(-360deg);
	}

	15% {
		opacity: 1;
	}

	to {
		opacity: 1;
		transform: rotate(0deg);
	}
}

@keyframes go-dot-pulse {
	from {
		box-shadow: 0 0 0 0 rgba(244, 197, 66, .6);
	}

	to {
		box-shadow: 0 0 0 10px rgba(244, 197, 66, 0);
	}
}

@keyframes go-badge-pulse {
	from {
		opacity: .8;
		transform: scale(1);
	}

	to {
		opacity: 0;
		transform: scale(1.7);
	}
}

/* ---------- Home: Follow Green Orbit (clean video tiles, review of 26 Oct 2026) ----------
   Two rows of tiles: the YouTube videos (Elementor's free Video widget), then the Instagram reels (an HTML widget
   with Instagram's own embed). No card behind them: every tile is a rounded 9:16 video with a soft shadow, the way
   the user's tripoly.co.in reference does it. Every tile is the same size, in a grid: 4 across on desktop, 3 on
   tablets, the first two of each row on phones. Both play where they are (YouTube after its thumbnail is pressed,
   Instagram in its own player). The play button is small: ours on YouTube (a thumbnail overlay), and on Instagram the
   embed is laid out twice as wide and shrunk to 0.715, which also shrinks Instagram's own play button.
   Instagram's embed brings a header, a footer with likes and a comment box, and black bars round a reel. The iframe
   is therefore enlarged 1.43 times (a 4:5 embed of a 9:16 reel then fills a 9:16 tile exactly) and pulled up
   behind the tile's top edge, and the tile clips whatever is left. Instagram's own play button stays. */
.e-con.go-reels.go-reels {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	padding-block: 8px 0;
}

.go-reels > .go-reel.elementor-widget {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	border-radius: 28px;
	background: transparent;
	box-shadow: 0 12px 28px rgba(10, 59, 97, .2);
	transition: transform 300ms cubic-bezier(.23, 1, .32, 1), box-shadow 300ms cubic-bezier(.23, 1, .32, 1);
}

@media (hover: hover) and (pointer: fine) {
	.go-reels > .go-reel.elementor-widget:hover {
		transform: translateY(-4px);
		box-shadow: 0 18px 36px rgba(10, 59, 97, .28);
	}
}

.go-reel .elementor-widget-container {
	position: relative;
	height: 100%;
	overflow: hidden;
	border-radius: 28px;
}

.go-reel .elementor-wrapper {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	aspect-ratio: auto;
	background: var(--go-forest-900);
}

.go-reel--video iframe,
.go-reel--video .elementor-custom-embed-image-overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background-position: center;
	background-size: cover;
}

/* YouTube's thumbnail with a small round play button (Elementor's own overlay; the video then plays in the tile). */
.go-reel--video .elementor-custom-embed-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 50%;
	background: rgba(10, 59, 97, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	color: #fff;
	transform: translate(-50%, -50%);
	transition: background-color var(--go-dur-hover, 120ms) ease, transform var(--go-dur-hover, 120ms) ease;
}

.go-reel--video .elementor-custom-embed-play i,
.go-reel--video .elementor-custom-embed-play svg {
	width: 20px;
	height: 20px;
	margin-left: 2px;
	font-size: 20px;
	fill: currentColor;
	color: #fff;
	text-shadow: none;
	opacity: 1;
}

.go-reel--video:hover .elementor-custom-embed-play {
	background: rgba(255, 0, 0, .9);
	transform: translate(-50%, -50%) scale(1.08);
}

/* Instagram's embed: laid out twice as wide as the tile, then shrunk to 0.715, so a 9:16 reel fills the tile's width
   (2 x 0.715 = 1.43), its header (56 px) rises out of the tile and its footer falls below it. The iframe's own
   max-width: 100% must go, or the width is clamped. */
.go-reel--insta iframe {
	position: absolute;
	top: -40px;
	left: 50%;
	display: block;
	width: 200%;
	max-width: none;
	height: 300%;
	margin-left: -100%;
	border: 0;
	background: var(--go-forest-900);
	transform: scale(.715);
	transform-origin: 50% 0;
}

/* Before the tap: a brand-gradient tile with a play button. The reel's frame (about 5 MB of Instagram scripts) is only
   built when the visitor taps it (Core insta-facade.js). */
.go-reel--insta .go-insta {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: inherit;
	background: radial-gradient(circle at 30% 110%, #fdf497 0, #fd5949 45%, #d6249f 60%, #285aeb 100%);
	color: #fff;
	font: 700 15px/1.2 var(--go-font-body, 'DM Sans', sans-serif);
	cursor: pointer;
}

.go-reel--insta .go-insta__play {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	position: relative;
	transition: transform .2s ease-out;
}

.go-reel--insta .go-insta__play::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 11px 0 11px 18px;
	border-color: transparent transparent transparent #d6249f;
}

.go-reel--insta .go-insta:hover .go-insta__play {
	transform: scale(1.08);
}

.go-reel--insta .go-insta:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -6px;
}

@media (max-width: 1024px) {
	.e-con.go-reels.go-reels {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.go-reels > .go-reel:nth-child(n + 4) {
		display: none;
	}
}

@media (max-width: 767px) {
	.e-con.go-reels.go-reels {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.go-reels > .go-reel:nth-child(n + 3):nth-child(-n + 5) {
		display: none;
	}
}

/* Two tiles across even on small phones (26 Oct 2026: one 323 x 575 px tile per row was far too big). A tile is about
   150 px wide there, and Instagram's embed needs about 330 px, so its iframe is laid out 2.7 times as wide and scaled
   to .53 (2.7 x .53 = 1.43, the same fill as above); its 56 px header then rises 30 px instead of 40. */
@media (max-width: 519px) {
	.go-reel--insta iframe {
		top: -30px;
		width: 270%;
		margin-left: -135%;
		transform: scale(.53);
	}
}

@media (prefers-reduced-motion: reduce) {
	.go-reels > .go-reel.elementor-widget {
		transition: box-shadow 200ms ease;
	}

	.go-reels > .go-reel.elementor-widget:hover {
		transform: none;
	}
}

/* The Follow row's buttons are the hero's: brand-coloured pills with a white name and glyph (26 Oct 2026). */
.go-social-follow a.go-social--youtube,
.go-social-follow a.go-social--instagram {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 18px 0 6px;
	border-radius: var(--go-radius-pill, 999px);
	box-shadow: 0 4px 12px rgba(10, 59, 97, .22);
	color: #fff;
	font: 600 14px/1 var(--go-font-body);
	text-decoration: none;
	transition: filter var(--go-dur-hover, 120ms) ease, transform var(--go-dur-hover, 120ms) ease;
}

.go-social-follow a.go-social--youtube {
	background: #ff0000;
}

.go-social-follow a.go-social--instagram {
	background: linear-gradient(115deg, #515bd4 0%, #8134af 32%, #dd2a7b 68%, #f58529 100%);
}

.go-social-follow a.go-social--youtube .go-icon,
.go-social-follow a.go-social--instagram .go-icon {
	width: 28px;
	height: 28px;
	padding: 6px;
	background: none;
}

.go-social-follow a.go-social--youtube:hover,
.go-social-follow a.go-social--youtube:focus,
.go-social-follow a.go-social--instagram:hover,
.go-social-follow a.go-social--instagram:focus {
	color: #fff;
	filter: brightness(1.08);
}

.go-social-follow a.go-social--youtube:active,
.go-social-follow a.go-social--instagram:active {
	transform: scale(.97);
}

/* My DVC digital card: the special button beside the YouTube and Instagram ones. */
a.go-btn-dvc.go-social {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 18px 0 6px;
	border-radius: var(--go-radius-pill, 999px);
	background: linear-gradient(135deg, #1d6fe8, #3b8cff);
	box-shadow: 0 4px 12px rgba(29, 111, 232, .32);
	color: #fff;
	font: 600 14px/1 var(--go-font-body);
	text-decoration: none;
	transition: filter var(--go-dur-hover, 120ms) ease, transform var(--go-dur-hover, 120ms) ease;
}

a.go-btn-dvc.go-social .go-icon {
	width: 28px;
	height: 28px;
	padding: 6px;
	background-color: rgba(255, 255, 255, .2);
}

a.go-btn-dvc.go-social:hover,
a.go-btn-dvc.go-social:focus {
	color: #fff;
	filter: brightness(1.08);
}

a.go-btn-dvc.go-social:active {
	transform: scale(.97);
}

.e-con.go-social-follow {
	--flex-direction: row;
	--justify-content: center;
	--gap: 12px;
	flex-flow: row wrap;
	justify-content: center;
}

/* Core's [go_social_card] (profile card; not on Home since 22 Oct 2026). */
.go-social-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--go-space-3);
	color: var(--go-text-on-dark);
}

.go-social-card__avatar {
	display: inline-flex;
	padding: 3px;
	border-radius: 50%;
	background-color: #d6249f;
	background-image: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

/* A YouTube or Facebook card gets its network's colour for the ring. */
.go-social-card--youtube .go-social-card__avatar {
	background: #ff0000;
}

.go-social-card--facebook .go-social-card__avatar {
	background: #1877f2;
}

.go-social-card__avatar img {
	display: block;
	box-sizing: border-box;
	width: 60px;
	height: 60px;
	padding: 6px;
	border-radius: 50%;
	background: var(--go-white);
	object-fit: contain;
}

.go-social-card p {
	margin: 0;
}

.go-social-card .go-social-card__handle {
	font: 600 17px/1.3 var(--go-font-body);
	color: var(--go-white);
	overflow-wrap: anywhere;
}

.go-social-card .go-social-card__text {
	font-size: 14px;
	line-height: 1.5;
}

/* Follow: a white pill with Instagram's own icon (its colours come from "Real social icons"). */
.go-social-card a.go-social-card__follow {
	display: inline-flex;
	align-items: center;
	gap: var(--go-space-2);
	min-height: 44px;
	margin-top: var(--go-space-1);
	padding: 0 18px 0 8px;
	border-radius: var(--go-radius-pill);
	background: var(--go-white);
	color: var(--go-forest-900);
	font: 600 15px/1 var(--go-font-body);
	white-space: nowrap;
	text-decoration: none;
	transition: background-color var(--go-dur-hover) ease, transform var(--go-dur-hover) ease;
}

.go-social-card a.go-social-card__follow .go-icon {
	width: 30px;
	height: 30px;
	padding: 6px;
}

.go-social-card a.go-social-card__follow:hover {
	background: var(--go-cream-50);
	color: var(--go-forest-900);
}

.go-social-card a.go-social-card__follow:active {
	transform: scale(.97);
}

.go-social-card a.go-social-card__follow:focus-visible {
	outline: 3px solid var(--go-lime-300);
	outline-offset: 2px;
}

/* ---------- Home sections: tablet ---------- */
@media (max-width: 1024px) {
	.e-con.go-section,
	.e-con.go-stats {
		--padding-top: 72px;
		--padding-bottom: 72px;
		--row-gap: 32px;
	}

	.elementor-widget.go-lead,
	.go-lead p {
		font-size: 19px;
	}

	.e-con.go-home-regions__col,
	.e-con.go-stats__intro,
	.e-con.go-stats__grid {
		--width: 100%;
	}

	/* Messages above the photos; the messages box is a fixed height (three bubbles or so). */
	.e-con.go-memories-wrap {
		--flex-direction: column;
		--align-items: stretch;
		flex-direction: column;
	}

	.e-con.go-memories-wrap > .go-scroll-frame--y,
	.go-memories-wrap > .go-scroll-frame--x {
		flex: none;
		width: 100%;
	}

	/* Tablet: the stacked messages sit two across above the photos. */
	.e-con.go-memories.go-memories {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		align-items: start;
	}

	.go-memories > .go-memory.elementor-widget {
		width: auto;
		max-width: none;
		min-width: 0;
	}

	.e-con.go-cta-band {
		--padding-left: 28px;
		--padding-right: 32px;
		--column-gap: 24px;
	}

	.go-cta-band > .go-cta-band__tern.elementor-widget,
	.go-cta-band__tern .go-tern {
		width: 150px;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 42px;
	}
}

/* ---------- Home sections: mobile ---------- */
@media (max-width: 767px) {
	.e-con.go-section,
	.e-con.go-stats {
		--padding-top: 56px;
		--padding-bottom: 56px;
		--row-gap: 28px;
	}

	.e-con.go-home-cta {
		--padding-top: 76px;
		--padding-bottom: 48px;
	}

	/* These containers carry Elementor's 10 px side padding: without this their content sits 10 px in from the
	   section's headings and the trip cards in the region columns are 20 px narrower than Upcoming's. */
	.e-con:is(.go-home-regions__col, .go-memories-wrap, .go-services, .go-reels) {
		--padding-left: 0px;
		--padding-right: 0px;
	}

	/* Upcoming tours: two cards across, the rest a swipe away (the carousel's phone rule shows one and a bit). */
	.go-home-upcoming .go-carousel__track {
		grid-auto-columns: calc((100% - 12px) / 2);
		gap: 12px;
	}

	.elementor-widget.go-lead,
	.go-lead p {
		font-size: 18px;
	}

	/* Phones: one column. Tern stands at the top left with his head above the band, pointing across it. */
	.e-con.go-cta-band {
		--padding-top: 68px;
		--padding-bottom: 28px;
		--padding-left: 24px;
		--padding-right: 24px;
		--row-gap: 20px;
		--align-items: stretch;
		min-height: 0;
	}

	/* The text column's own 10 px side padding put the heading 10 px right of the button below it. */
	.e-con.go-cta-band__text {
		--padding-left: 0px;
		--padding-right: 0px;
		max-width: none;
	}

	.go-cta-band > .go-cta-band__tern.elementor-widget {
		position: absolute;
		top: -56px;
		left: 16px;
		width: 108px;
		height: 121px;
	}

	.go-cta-band__tern .go-tern {
		bottom: auto;
		top: 0;
		width: 108px;
	}

	/* Memory Lane on phones: the messages are one column of compact bubbles (no inner scroller), the photos two across
	   and two down. The photos' rule needs the same four classes as the base rule, or it loses to it. */
	.e-con.go-memories.go-memories {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}

	.go-memory .go-bubble {
		padding: 9px 11px 20px;
		font-size: 13px;
		line-height: 1.45;
	}

	.go-memory .go-bubble__name {
		font-size: 12px;
	}

	.e-con.go-memories-wrap {
		--row-gap: 20px;
		row-gap: 20px;
	}

	.go-memories-photos .gallery-item .gallery-caption {
		left: 6px;
		bottom: 6px;
		max-width: calc(100% - 12px);
		padding: 3px 7px;
		font-size: 10px;
		line-height: 1.2;
	}

	.go-scroll-frame--x > .go-scroll__arrow.go-scroll__arrow {
		width: 36px;
		height: 36px;
		margin-top: -18px;
	}

	.go-scroll-frame--x > .go-scroll__arrow--prev {
		left: 4px;
	}

	.go-scroll-frame--x > .go-scroll__arrow--next {
		right: 4px;
	}

	.go-memories-photos .gallery.gallery {
		grid-auto-columns: calc((100% - 10px) / 2);
		gap: 10px;
	}

	.go-memories-photos .gallery-item:nth-child(6n + 1),
	.go-memories-photos .gallery-item:nth-child(6n + 2),
	.go-memories-photos .gallery-item:nth-child(6n + 3),
	.go-memories-photos .gallery-item:nth-child(6n + 4),
	.go-memories-photos .gallery-item:nth-child(6n + 5),
	.go-memories-photos .gallery-item:nth-child(6n + 6) {
		grid-row: auto;
		scroll-snap-align: none;
	}

	.go-memories-photos .gallery-item:nth-child(4n + 1),
	.go-memories-photos .gallery-item:nth-child(4n + 2) {
		grid-row: 1;
	}

	.go-memories-photos .gallery-item:nth-child(4n + 3),
	.go-memories-photos .gallery-item:nth-child(4n + 4) {
		grid-row: 2;
	}

	.go-memories-photos .gallery-item:nth-child(4n + 1) {
		scroll-snap-align: start;
	}

	.e-con.go-service-card {
		--width: 100%;
		--padding-top: 24px;
		--padding-bottom: 24px;
		--padding-left: 24px;
		--padding-right: 24px;
	}

	.e-con.go-stats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	/* Phones: the badge sits above its number. */
	.e-con.go-stat {
		--flex-direction: column;
		--align-items: flex-start;
		--row-gap: 12px;
		--padding-top: 18px;
		--padding-bottom: 18px;
		--padding-left: 16px;
		--padding-right: 16px;
		flex-direction: column;
		align-items: flex-start;
	}

	.e-con.go-stat::after {
		left: 16px;
		right: 16px;
	}

	/* The orbit is a small ring to the right of the heading on phones (26 Oct 2026): a big one crossed the 24/7 pill and
	   was cut off by the screen. Its satellite's box is 12 px larger and starts 6 px higher and further out. */
	.e-con.go-stats__intro::before {
		--go-orbit-size: 104px;
		top: -50px;
		left: auto;
		right: 6px;
	}

	.e-con.go-stats__intro::after {
		top: -56px;
		left: auto;
		right: 0;
		width: 116px;
		height: 116px;
	}

	.go-stats__flock .go-tern {
		width: 120px;
		margin-top: 0;
	}

	.e-con.go-stats {
		--row-gap: 20px;
	}

	.go-stats p.go-stats__support {
		font-size: 15px;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 36px;
	}
}

/* ---------- Scroll reveals (04 §9; motion.js) ----------
   motion.js marks content groups go-reveal (except what's already on screen) and adds is-in the first time each
   scrolls into view: it rises 20 px and fades in once, 600 ms, 70 ms apart inside a group; with reduced motion it
   only fades. Only once motion.js has run (html.go-motion), so nothing is hidden without it. */
@media (prefers-reduced-motion: no-preference) {
	/* Hidden at once (no transition while hiding, so nothing fades out as the page opens); only the arrival moves. */
	.go-motion .go-reveal:not(.is-in) {
		opacity: 0;
		transform: translateY(20px);
	}

	.go-motion .go-reveal.is-in {
		transition: opacity 600ms var(--go-ease-in) var(--go-reveal-delay, 0ms), transform 600ms var(--go-ease-in) var(--go-reveal-delay, 0ms);
	}

	/* Memory Lane's bubbles arrive like chat messages: from a little lower and a touch smaller, from the tail corner. */
	.go-motion .go-memory.go-reveal {
		transform-origin: 0 100%;
	}

	.go-motion .go-memory.go-reveal:not(.is-in) {
		transform: translateY(14px) scale(.96);
	}

	/* Tern steps up into the CTA band just after the band arrives. */
	.go-motion .go-cta-band.go-reveal:not(.is-in) .go-tern {
		opacity: 0;
		transform: translateY(28px);
	}

	.go-motion .go-cta-band.go-reveal.is-in .go-tern {
		transition: transform 700ms var(--go-ease-in) calc(var(--go-reveal-delay, 0ms) + 220ms), opacity 400ms ease calc(var(--go-reveal-delay, 0ms) + 220ms);
	}
}

/* Visitors who turn off motion get the same arrivals as gentle fades: nothing moves, nothing is scaled (agency's
   choice, 20 Oct 2026). !important, because the site-wide reduced-motion rule below stops every transition; these
   selectors are more specific, so they win. */
@media (prefers-reduced-motion: reduce) {
	.go-motion .go-reveal:not(.is-in),
	.go-motion .go-cta-band.go-reveal:not(.is-in) .go-tern {
		opacity: 0;
	}

	.go-motion .go-reveal.is-in {
		transition: opacity 500ms ease var(--go-reveal-delay, 0ms) !important;
	}

	.go-motion .go-cta-band.go-reveal.is-in .go-tern {
		transition: opacity 500ms ease calc(var(--go-reveal-delay, 0ms) + 200ms) !important;
	}
}

@media print {
	.go-motion .go-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ---------- Motion: only when the visitor allows it (04 §9) ---------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp).elementor-widget .elementor-button:hover,
	a:is(.go-btn-cta, .go-btn-primary, .go-btn-secondary, .go-btn-secondary-dark, .go-btn-whatsapp):hover {
		transform: none;
	}
}

/* ---------- Phones: touch targets and small print (review of 25 Oct 2026, "optimise for mobile") ---------- */
@media (max-width: 767px) {
	.go-stats .go-phone {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	/* The Follow row's three pills, smaller still (26 Oct 2026, "the buttons are still too large"): 34 px high, 13 px text. */
	.go-social-follow a.go-social--youtube,
	.go-social-follow a.go-social--instagram,
	a.go-btn-dvc.go-social {
		gap: 6px;
		min-height: 34px;
		padding: 0 14px 0 5px;
		font-size: 13px;
	}

	.go-social-follow a.go-social--youtube .go-icon,
	.go-social-follow a.go-social--instagram .go-icon,
	a.go-btn-dvc.go-social .go-icon {
		width: 24px;
		height: 24px;
		padding: 5px;
	}

	.e-con.go-social-follow .elementor-widget-button {
		flex: 1 1 140px;
	}

	.e-con.go-social-follow .elementor-button {
		width: 100%;
		justify-content: center;
	}
}

/* ---------- Passport & Visa page (25 Oct 2026) ---------- */
.e-con.go-help-cards {
	--flex-direction: row;
	--gap: 20px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.e-con.go-help-card {
	--padding-top: 28px;
	--padding-right: 28px;
	--padding-bottom: 28px;
	--padding-left: 28px;
	--row-gap: 12px;
	border-radius: var(--go-radius-lg, 24px);
	background: var(--go-white);
	box-shadow: 0 1px 2px rgba(10, 59, 97, .05), 0 6px 16px rgba(10, 59, 97, .08);
}

.go-steps ol {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 32px;
	margin: 0;
	padding-left: 1.4em;
}

.go-steps li {
	font-size: 18px;
	line-height: 1.5;
}

@media (max-width: 1024px) {
	.e-con.go-help-cards {
		grid-template-columns: minmax(0, 1fr);
	}

	.go-steps ol {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Home: smaller green bands (26 Oct 2026, "reduce the height of these 2 green sections") ----------
   Upcoming Tours keeps its cards exactly as they are; only the band around them (padding, gaps, heading) is cut.
   Why Choose Us becomes a slim strip: everything in it is smaller. Placed last so it wins over the rules above. */
.e-con.go-section.go-home-upcoming {
	--padding-top: 28px;
	--padding-bottom: 28px;
	--row-gap: 14px;
}

.go-home-upcoming .elementor-widget-heading h2.elementor-heading-title {
	font-size: 32px;
}

.go-home-upcoming :is(.go-lead, .go-lead p, .elementor-widget-text-editor) {
	font-size: 16px;
	line-height: 1.5;
}

.e-con.go-stats {
	--padding-top: 32px;
	--padding-bottom: 32px;
	--column-gap: 40px;
	--row-gap: 16px;
}

.e-con.go-stats__intro {
	--row-gap: 10px;
}

.go-stats .elementor-widget-heading h2.elementor-heading-title {
	font-size: 28px;
}

.go-stats p.go-stats__support {
	padding: 6px 14px 6px 12px;
	font-size: 14px;
}

.e-con.go-stats__intro::before {
	--go-orbit-size: 190px;
	left: -52px;
}

.e-con.go-stats__intro::after {
	top: calc(50% - 101px);
	left: -58px;
	width: 202px;
	height: 202px;
}

.go-stats__flock .go-tern {
	width: 72px;
	margin-top: 6px;
}

.e-con.go-stats__grid {
	gap: 10px;
}

.e-con.go-stat {
	--column-gap: 12px;
	--padding-top: 12px;
	--padding-bottom: 12px;
	--padding-left: 16px;
	--padding-right: 16px;
	border-radius: 14px;
}

.e-con.go-stat::after {
	left: 16px;
	right: 16px;
}

.elementor-widget-icon.go-icon-badge .elementor-icon {
	width: 40px;
	height: 40px;
}

.go-stats .elementor-widget-icon.go-icon-badge .elementor-icon :is(svg, i) {
	width: 18px;
	height: 18px;
	font-size: 18px;
}

.go-stats .elementor-counter {
	gap: 2px;
}

.go-stats .elementor-counter .elementor-counter-number-wrapper {
	font-size: 30px;
}

.go-stats .elementor-counter .elementor-counter-title {
	font-size: 14px;
}

@media (max-width: 1024px) {
	.e-con.go-section.go-home-upcoming {
		--padding-top: 24px;
		--padding-bottom: 24px;
	}

	.e-con.go-stats {
		--padding-top: 28px;
		--padding-bottom: 28px;
		--row-gap: 14px;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 28px;
	}
}

@media (max-width: 767px) {
	.e-con.go-section.go-home-upcoming {
		--padding-top: 20px;
		--padding-bottom: 20px;
		--row-gap: 12px;
	}

	.go-home-upcoming .elementor-widget-heading h2.elementor-heading-title {
		font-size: 26px;
	}

	.go-home-upcoming :is(.go-lead, .go-lead p, .elementor-widget-text-editor) {
		font-size: 14px;
	}

	.e-con.go-stats {
		--padding-top: 24px;
		--padding-bottom: 24px;
		--row-gap: 12px;
	}

	.go-stats .elementor-widget-heading h2.elementor-heading-title {
		font-size: 24px;
	}

	.e-con.go-stats__grid {
		gap: 8px;
	}

	.e-con.go-stat {
		--row-gap: 6px;
		--padding-top: 10px;
		--padding-bottom: 12px;
		--padding-left: 12px;
		--padding-right: 12px;
	}

	.elementor-widget-icon.go-icon-badge .elementor-icon {
		width: 34px;
		height: 34px;
	}

	.go-stats .elementor-widget-icon.go-icon-badge .elementor-icon :is(svg, i) {
		width: 16px;
		height: 16px;
		font-size: 16px;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 24px;
	}

	.go-stats .elementor-counter .elementor-counter-title {
		font-size: 13px;
	}
}

/* ---------- Home: section colours (26 Oct 2026, reference image 4) ----------
   Upcoming Tours off-white, Domestic | International soft muted green, Why Choose Us pastel green with the same
   icon-and-number tiles. Customise, Memory Lane, Services and the videos band are left as they were. Upcoming Tours was
   built dark (go-section--forest go-on-dark), so its text and carousel arrows are put back to the light-section look here. */
.e-con.go-section.go-home-upcoming {
	background-color: #FFFFFF;
}

.e-con.go-home-upcoming.go-on-dark .elementor-widget-heading h2.elementor-heading-title {
	color: var(--go-forest-800);
}

.e-con.go-home-upcoming.go-on-dark :is(.elementor-widget.go-lead, .go-lead p) {
	color: var(--go-text-muted);
}

.go-home-upcoming.go-on-dark .go-carousel .go-carousel__nav .go-carousel__arrow {
	border-color: var(--go-forest-800);
	color: var(--go-forest-800);
}

.go-home-upcoming.go-on-dark .go-carousel .go-carousel__nav .go-carousel__arrow:hover:not([aria-disabled="true"]) {
	background: var(--go-forest-800);
	color: var(--go-cream-50);
}

.e-con.go-section.go-home-regions {
	background-color: #F7F9F9;
}

@media (min-width: 1025px) {
	.e-con.go-home-regions__col + .go-home-regions__col {
		border-left-color: rgba(8, 64, 102, .16);
	}
}

.e-con.go-stats.go-on-dark {
	background-color: #FFEBDF;
	color: var(--go-forest-800);
}

.e-con.go-stats.go-on-dark .elementor-widget-heading h2.elementor-heading-title {
	color: var(--go-forest-800);
}

.go-stats.go-on-dark p.go-stats__support {
	border-color: rgba(8, 64, 102, .2);
	background: rgba(255, 255, 255, .6);
	color: var(--go-forest-800);
}

.go-stats.go-on-dark p.go-stats__support::before {
	background: #084066;
}

.go-stats.go-on-dark p.go-stats__support a {
	color: #084066;
	font-weight: 700;
}

.e-con.go-stats__intro::before {
	border-color: rgba(8, 64, 102, .22);
}

.e-con.go-stats__intro::after {
	background: radial-gradient(circle, #084066 0 4px, rgba(8, 64, 102, .3) 5px, transparent 8px) 50% 0 / 16px 16px no-repeat;
}

.go-stats__flock .go-tern {
	filter: brightness(0) opacity(.5);
}

.e-con.go-stats__grid::after {
	background-color: rgba(255, 255, 255, .45);
}

.e-con.go-stats .e-con.go-stat {
	border-color: rgba(8, 64, 102, .12);
	background: rgba(255, 255, 255, .6);
	box-shadow: 0 1px 2px rgba(8, 64, 102, .06);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.e-con.go-stats .e-con.go-stat::after {
	background: #084066;
	opacity: .55;
}

.go-stats.go-on-dark .elementor-widget-icon.go-icon-badge .elementor-icon {
	background: var(--go-forest-800);
	box-shadow: none;
	color: var(--go-accent);
}

.go-stats .elementor-counter .elementor-counter-number-wrapper {
	color: var(--go-forest-800);
}

.go-stats .elementor-counter .elementor-counter-title {
	color: rgba(8, 64, 102, .85);
}

@media (hover: hover) and (pointer: fine) {
	.e-con.go-stats .e-con.go-stat:hover {
		border-color: rgba(8, 64, 102, .3);
		background: #fff;
	}
}

/* ---------- Home: Why Choose Us as one row of four (26 Oct 2026, "4 icons next to each other") ----------
   The heading and the 24/7 line on the left, then the four icon + number + label items side by side with thin dividers,
   as in the reference. The orbit ring, the bird flock and the frosted tiles are dropped: the strip is plain and clean.
   Four across on desktop and tablet (icon above the number on tablet), two by two on phones. */
.e-con.go-stats__intro::before,
.e-con.go-stats__intro::after,
.e-con.go-stats__grid::after,
.go-stats__flock {
	display: none;
}

.e-con.go-stats {
	--column-gap: 32px;
}

.e-con.go-stats__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
}

.e-con.go-stats .e-con.go-stat {
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	--padding-top: 6px;
	--padding-bottom: 6px;
	--padding-left: 18px;
	--padding-right: 18px;
	transform: none;
}

.e-con.go-stats .e-con.go-stat::after {
	display: none;
}

.e-con.go-stats .e-con.go-stat + .e-con.go-stat {
	border-left: 1px solid rgba(8, 64, 102, .16);
}

@media (hover: hover) and (pointer: fine) {
	.e-con.go-stats .e-con.go-stat:hover {
		background: transparent;
		transform: none;
	}
}

@media (min-width: 1025px) {
	.e-con.go-stats__intro {
		--width: 26%;
	}

	.e-con.go-stats__grid {
		--width: 74%;
	}
}

@media (max-width: 1024px) {
	.e-con.go-stats__intro,
	.e-con.go-stats__grid {
		--width: 100%;
	}

	.e-con.go-stats .e-con.go-stat {
		--flex-direction: column;
		--align-items: center;
		--row-gap: 6px;
		--padding-left: 8px;
		--padding-right: 8px;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.go-stats .elementor-counter {
		align-items: center;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		justify-content: center;
	}

	.go-stats .elementor-counter .elementor-counter-title {
		text-align: center;
	}
}

@media (max-width: 767px) {
	.e-con.go-stats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 14px;
	}

	.e-con.go-stats .e-con.go-stat:nth-child(odd) {
		border-left: 0;
	}
}

@media (min-width: 1025px) {
	.e-con.go-stats__intro {
		--width: 32%;
	}

	.e-con.go-stats__grid {
		--width: 68%;
	}

	.e-con.go-stats .e-con.go-stat {
		--justify-content: center;
		justify-content: center;
	}
}

.go-stats.go-on-dark p.go-stats__support {
	flex-wrap: nowrap;
	white-space: nowrap;
}

/* ---------- Home: Why Choose Us as a slim one-line strip (26 Oct 2026, reference strip) ----------
   "Why Choose Us?" on the left, then the four icon + number + label items evenly spaced, no tiles and no dividers.
   The 24/7 phone pill is not shown in the strip (the number is in the header and footer); its markup is untouched. */
.e-con.go-stats {
	--padding-top: 14px;
	--padding-bottom: 14px;
	--column-gap: 24px;
	--row-gap: 8px;
}

.e-con.go-stats__intro {
	--row-gap: 0px;
}

.go-stats.go-on-dark p.go-stats__support {
	display: none;
}

.go-stats .elementor-widget-heading h2.elementor-heading-title {
	font-size: 22px;
	line-height: 1.2;
}

.e-con.go-stats .e-con.go-stat + .e-con.go-stat {
	border-left: 0;
}

.e-con.go-stats .e-con.go-stat {
	--column-gap: 12px;
	--padding-top: 2px;
	--padding-bottom: 2px;
	--padding-left: 8px;
	--padding-right: 8px;
}

.elementor-widget-icon.go-icon-badge .elementor-icon {
	width: 38px;
	height: 38px;
}

.go-stats.go-on-dark .elementor-widget-icon.go-icon-badge .elementor-icon {
	background: transparent;
	box-shadow: none;
	border: 1.5px solid #084066;
	color: #084066;
}

@media (hover: hover) and (pointer: fine) {
	.go-stats .go-stat:hover .go-icon-badge .elementor-icon {
		background: transparent;
		color: #084066;
	}
}

.go-stats .elementor-counter {
	gap: 0;
}

.go-stats .elementor-counter .elementor-counter-number-wrapper {
	font-family: var(--go-font-body);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.1;
}

.go-stats .elementor-counter .elementor-counter-title {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;
	color: rgba(8, 64, 102, .7);
}

@media (min-width: 1025px) {
	.e-con.go-stats__intro {
		--width: 24%;
	}

	.e-con.go-stats__grid {
		--width: 76%;
	}
}

@media (max-width: 1024px) {
	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 20px;
	}
}

@media (max-width: 767px) {
	.e-con.go-stats {
		--padding-top: 18px;
		--padding-bottom: 18px;
	}

	.go-stats .elementor-widget-heading h2.elementor-heading-title {
		font-size: 20px;
	}
}

/* ---------- Home: Why Choose Us, a little bigger, reference colours, 24/7 phone line (26 Oct 2026) ----------
   Colours sampled from the reference strip: pale green #F7F9F9, deep teal #084066 for the words, soft teal for the icons. */
.e-con.go-stats.go-on-dark {
	--padding-top: 30px;
	--padding-bottom: 30px;
	--column-gap: 32px;
	background-color: #F7F9F9;
	color: #084066;
}

.e-con.go-stats.go-on-dark .elementor-widget-heading h2.elementor-heading-title {
	font-size: 30px;
	color: #084066;
}

.e-con.go-stats__intro {
	--row-gap: 10px;
}

.go-stats.go-on-dark p.go-stats__support {
	display: inline-flex;
	padding: 7px 16px 7px 12px;
	border-color: rgba(8, 64, 102, .22);
	background: #fff;
	font-size: 15px;
	color: #084066;
}

.go-stats.go-on-dark p.go-stats__support::before {
	background: #2741AA;
}

.go-stats.go-on-dark p.go-stats__support a {
	color: #084066;
	font-weight: 700;
}

.elementor-widget-icon.go-icon-badge .elementor-icon {
	width: 52px;
	height: 52px;
}

.go-stats .elementor-widget-icon.go-icon-badge .elementor-icon :is(svg, i) {
	width: 24px;
	height: 24px;
	font-size: 24px;
}

.go-stats.go-on-dark .elementor-widget-icon.go-icon-badge .elementor-icon {
	border-color: #2741AA;
	color: #2741AA;
}

@media (hover: hover) and (pointer: fine) {
	.go-stats .go-stat:hover .go-icon-badge .elementor-icon {
		background: transparent;
		color: #2741AA;
	}
}

.e-con.go-stats .e-con.go-stat {
	--column-gap: 14px;
}

.go-stats .elementor-counter .elementor-counter-number-wrapper {
	font-size: 32px;
	color: #084066;
}

.go-stats .elementor-counter .elementor-counter-title {
	font-size: 14px;
	color: #656565;
}

@media (min-width: 1025px) {
	.e-con.go-stats__intro {
		--width: 36%;
	}

	.e-con.go-stats__grid {
		--width: 64%;
	}
}

@media (max-width: 1024px) {
	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 26px;
	}

	.elementor-widget-icon.go-icon-badge .elementor-icon {
		width: 44px;
		height: 44px;
	}
}

@media (max-width: 767px) {
	.e-con.go-stats.go-on-dark {
		--padding-top: 22px;
		--padding-bottom: 22px;
	}

	.e-con.go-stats.go-on-dark .elementor-widget-heading h2.elementor-heading-title {
		font-size: 24px;
	}

	.go-stats.go-on-dark p.go-stats__support {
		font-size: 14px;
	}

	.go-stats .elementor-counter .elementor-counter-number-wrapper {
		font-size: 24px;
	}
}

.go-stats .elementor-counter .elementor-counter-title {
	white-space: nowrap;
}

@media (min-width: 1025px) {
	.e-con.go-stats__intro {
		--width: 33%;
	}

	.e-con.go-stats__grid {
		--width: 67%;
	}

	.e-con.go-stats .e-con.go-stat {
		--padding-left: 4px;
		--padding-right: 4px;
	}
}

/* ---------- Home: one pale green for the bands, white videos strip (26 Oct 2026) ---------- */
.e-con.go-section.go-home-regions {
	background-color: #F7F9F9;
}

.e-con.go-section.go-home-social {
	background-color: #fff;
}

/* ---------- Home: smaller service cards on phones (26 Oct 2026, "too large", mobile only) ---------- */
@media (max-width: 767px) {
	.e-con.go-section.go-home-services {
		--padding-top: 32px;
		--padding-bottom: 32px;
		--row-gap: 18px;
	}

	.e-con.go-services {
		--row-gap: 14px;
	}

	.e-con.go-service-card {
		--min-height: 0px;
		--row-gap: 6px;
		--padding-top: 16px;
		--padding-bottom: 16px;
		--padding-left: 18px;
		--padding-right: 18px;
		min-height: 0;
		border-radius: 20px;
	}

	.go-service-card .elementor-widget-icon.go-icon-badge .elementor-icon {
		width: 34px;
		height: 34px;
	}

	.go-service-card .elementor-widget-icon.go-icon-badge .elementor-icon :is(svg, i) {
		width: 16px;
		height: 16px;
		font-size: 16px;
	}

	.go-service-card .elementor-widget-heading h3.elementor-heading-title {
		font-size: 21px;
		line-height: 1.15;
	}

	.go-service-card .elementor-widget-text-editor,
	.go-service-card p {
		font-size: 13.5px;
		line-height: 1.4;
	}

	.go-service-card .elementor-widget-shortcode,
	.go-service-card .elementor-widget-button {
		margin-top: 4px;
	}

	/* Explore Cars and Know More: one size and one gold (30 Oct 2026 review), so no phone shrink. */
	.go-service-card :is(a.go-btn-whatsapp, .elementor-button) {
		min-width: 160px;
		min-height: 48px;
		padding: 0 var(--go-space-6, 24px);
		font-size: 16px;
	}
}

/* ---------- Footer on phones: half the height (26 Oct 2026) ----------
   footer.js adds go-footer--m below 768 px: both phone numbers and the email show at once, Our Offices and Timings are
   small dropdowns, Quick links stay open, and the spacing is tightened. Text sizes are unchanged. */
.go-footer .go-footer__toggle,
.go-footer .go-footer__phones {
	display: none;
}

.go-footer [hidden] {
	display: none !important;
}

@media (max-width: 767px) {
	.go-footer.e-con.go-footer--m {
		padding-top: 18px;
		padding-bottom: 60px;
	}

	.go-footer.go-footer--m .go-footer__grid.e-con {
		gap: 12px;
	}

	.go-footer.go-footer--m :is(.go-footer__brand, .go-footer__links, .go-footer__contact, .go-footer__hours).e-con {
		gap: 6px;
	}

	.go-footer.go-footer--m :is(.go-footer__contact, .go-footer__hours) .go-footer__heading,
	.go-footer.go-footer--m .go-footer__brand .go-footer__heading {
		display: none;
	}

	.go-footer.go-footer--m .go-logo__emblem {
		height: 34px;
	}

	.go-footer.go-footer--m .go-logo__img {
		height: 24px;
	}

	.go-footer.go-footer--m .go-footer__tagline p {
		line-height: 1.3;
	}

	.go-footer.go-footer--m .go-social-links--icons a.go-social {
		width: 38px;
		height: 38px;
	}

	.go-footer.go-footer--m .go-social-links--icons a.go-social .go-icon {
		padding: 9px;
	}

	.go-footer.go-footer--m .go-menu__list {
		gap: 0 var(--go-space-6);
	}

	.go-footer.go-footer--m .go-menu__list a {
		min-height: 34px;
	}

	/* Contact: phones, email, then the Offices dropdown. */
	.go-footer.e-con.go-footer--m .go-footer__contact {
		display: flex;
		flex-direction: column;
	}

	.go-footer.go-footer--m .go-footer__phones {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		order: 1;
	}

	.go-footer.go-footer--m .go-footer__email {
		order: 2;
	}

	.go-footer.go-footer--m .go-footer__contact .go-footer__toggle {
		order: 3;
	}

	.go-footer.go-footer--m .go-footer__offices {
		order: 4;
	}

	.go-footer.go-footer--m a.go-fp {
		display: grid;
		grid-template-columns: 16px minmax(0, 1fr);
		column-gap: 8px;
		align-items: center;
		min-height: 38px;
		color: var(--go-white);
		text-decoration: none;
	}

	.go-footer.go-footer--m a.go-fp .go-icon {
		grid-row: 1 / span 2;
		width: 16px;
		height: 16px;
		color: var(--go-accent);
	}

	.go-footer.go-footer--m .go-fp__label {
		font-size: 11px;
		line-height: 1.1;
		letter-spacing: .08em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, .65);
	}

	.go-footer.go-footer--m .go-fp__num {
		font-size: 14px;
		line-height: 1.3;
		white-space: nowrap;
	}

	.go-footer.go-footer--m a.go-email {
		min-height: 30px;
	}

	/* The two dropdown rows. */
	.go-footer.go-footer--m .go-footer__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 40px;
		margin: 0;
		padding: 0 14px;
		border: 1px solid rgba(255, 255, 255, .18);
		border-radius: 12px;
		background: rgba(255, 255, 255, .04);
		box-shadow: none;
		font: 600 14px/1 var(--go-font-body);
		letter-spacing: 0;
		text-transform: none;
		color: var(--go-white);
		cursor: pointer;
	}

	.go-footer.go-footer--m .go-footer__toggle:is(:hover, :focus) {
		border-color: rgba(255, 255, 255, .18);
		border-radius: 12px;
		background: rgba(255, 255, 255, .08);
		color: var(--go-white);
	}

	.go-footer.go-footer--m .go-footer__toggle:focus-visible {
		outline: 3px solid var(--go-accent);
		outline-offset: 2px;
	}

	.go-footer.go-footer--m .go-footer__toggle svg {
		flex: none;
		color: var(--go-accent);
		transition: transform 200ms ease;
	}

	.go-footer.go-footer--m .go-footer__toggle[aria-expanded="true"] svg {
		transform: rotate(180deg);
	}

	.go-footer.go-footer--m .go-footer__offices,
	.go-footer.go-footer--m .go-footer__panel {
		padding: 6px 2px 0;
	}

	.go-footer.go-footer--m .go-footer__bottom.e-con {
		margin-top: 2px;
		padding-top: 10px;
	}
}

/* Memory Lane messages are a plain stack now (no inner scroller), so their up/down arrows are not needed. */
.go-scroll-frame--y > .go-scroll__arrow.go-scroll__arrow {
	display: none !important;
}

/* Videos in the Memory Lane photos (Core's gallery-video.js): a photo with a Video Link shows a play button; tapping
   plays the video inside the tile, over the photo, with its controls and a close button. */
.go-memories-photos .gallery-item.go-has-video {
	cursor: pointer;
}

.go-memories-photos .go-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: -28px 0 0 -28px;
	padding: 0 0 0 3px;
	border: 0;
	border-radius: 50%;
	background: var(--go-cta, #f4c542);
	color: var(--go-on-cta, #0a3b61);
	box-shadow: 0 6px 20px rgba(10, 59, 97, .35);
	cursor: pointer;
	transition: transform var(--go-dur-ui, 200ms) var(--go-ease-in, ease);
}

.go-memories-photos .go-has-video:hover .go-video-play,
.go-memories-photos .go-video-play:focus-visible {
	transform: scale(1.08);
}

.go-memories-photos .go-video-play:focus-visible,
.go-memories-photos .go-video-close:focus-visible {
	outline: 3px solid var(--go-white, #fff);
	outline-offset: 2px;
}

.go-memories-photos .gallery-item.go-video-playing .gallery-caption,
.go-memories-photos .gallery-item.go-video-playing .go-video-play {
	display: none;
}

.go-memories-photos .go-video-player {
	position: absolute;
	inset: 0;
	z-index: 4;
	overflow: hidden;
	border-radius: var(--go-radius-md);
	background: #000;
}

.go-memories-photos .go-video-player video,
.go-memories-photos .go-video-player iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: contain;
	background: #000;
}

.go-memories-photos .go-video-player .go-video-close.go-video-close {
	border-radius: 50%;
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: rgba(10, 59, 97, .82);
	color: var(--go-white, #fff);
	cursor: pointer;
}

@media (max-width: 767px) {
	.go-memories-photos .go-video-play {
		width: 48px;
		height: 48px;
		margin: -24px 0 0 -24px;
	}
}

/* Memory Lane reviews: the rating stars under a message, and the Show More button (Core's show-more.js). */
.go-memory .go-bubble__stars {
	margin: 2px 0 0;
	font-size: 15px;
	letter-spacing: 2px;
	color: var(--go-lime-500, #caa941);
}

.go-more__hidden {
	display: none !important;
}

.go-more__button.go-more__button {
	align-self: flex-start;
	min-height: 44px;
	margin-top: var(--go-space-2, 8px);
	padding: 0 22px;
	border: 1.5px solid var(--go-forest-800, #084066);
	border-radius: var(--go-radius-pill, 999px);
	background: transparent;
	color: var(--go-forest-800, #084066);
	font: 600 14px/1 var(--go-font-body, sans-serif);
	cursor: pointer;
	transition: background-color var(--go-dur-ui, 200ms) var(--go-ease-in, ease), color var(--go-dur-ui, 200ms) var(--go-ease-in, ease);
}

.go-more__button.go-more__button:hover,
.go-more__button.go-more__button:focus-visible {
	background: var(--go-forest-800, #084066);
	color: var(--go-white, #fff);
}

/* ---------- Home review round 2 (30 Oct 2026) ---------- */
/* Memory Lane: a message's name and stars share one line under the bubble, so five messages stand about as tall as the
   photo grid. */
.go-memory .elementor-widget-container {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 10px;
	align-items: center;
}

.go-memory .elementor-widget-container > .go-bubble {
	grid-column: 1 / -1;
}

.go-memory .go-bubble__name,
.go-memory .go-bubble__trip.go-bubble__stars {
	margin: 0;
}

.go-memory .go-bubble__name {
	margin-top: var(--go-space-2, 8px);
}

.go-memory .go-bubble__trip.go-bubble__stars {
	margin-top: var(--go-space-2, 8px);
}

/* Desktop: the messages column is exactly as tall as the photo grid (the photos set the row's height; the column
   fills it and scrolls inside if a long message needs more room). */
@media (min-width: 1025px) {
	.e-con.go-memories-wrap > .go-scroll-frame--y {
		position: relative;
		min-height: 420px;
	}

	.e-con.go-memories-wrap > .go-scroll-frame--y > .go-memories.go-memories {
		position: absolute;
		inset: 0;
		overflow-x: hidden;
		overflow-y: auto;
		padding: 0 8px 0 0;
		scrollbar-width: thin;
		scrollbar-color: #F4C542 transparent;
	}

	.go-memories-wrap > .go-scroll-frame--x {
		align-self: stretch;
	}
}

/* Why Choose Us counters: the FAQ's palette (sky band, deep green numbers, one tint and badge colour per card). */
.e-con.go-stats.go-on-dark {
	background: linear-gradient(180deg, #CDE8F6 0%, #E9F4F6 100%);
	color: #02503C;
}

.e-con.go-stats.go-on-dark .elementor-widget-heading h2.elementor-heading-title {
	color: #02503C;
}

.e-con.go-stats.go-on-dark .e-con.go-stat {
	--padding-top: 12px;
	--padding-bottom: 12px;
	--padding-left: 12px;
	--padding-right: 12px;
	--column-gap: 9px;
	border: 1px solid rgba(2, 80, 60, .1);
	border-radius: 18px;
	background: var(--stat-tint, #E5F4EA);
	box-shadow: 0 6px 16px rgba(2, 80, 60, .08);
	transition: transform var(--go-dur-ui, 200ms) var(--go-ease-in, ease), box-shadow var(--go-dur-ui, 200ms) var(--go-ease-in, ease);
}

.e-con.go-stats.go-on-dark .e-con.go-stat + .e-con.go-stat {
	border-left: 1px solid rgba(2, 80, 60, .1);
}

.e-con.go-stats.go-on-dark .e-con.go-stat:nth-child(1) { --stat-tint: #E5F4EA; --stat-badge: #2E7D32; }
.e-con.go-stats.go-on-dark .e-con.go-stat:nth-child(2) { --stat-tint: #FCF1D2; --stat-badge: #E69A0B; }
.e-con.go-stats.go-on-dark .e-con.go-stat:nth-child(3) { --stat-tint: #DDF1F1; --stat-badge: #14A3A8; }
.e-con.go-stats.go-on-dark .e-con.go-stat:nth-child(4) { --stat-tint: #FCE4E0; --stat-badge: #E5604F; }

.e-con.go-stats.go-on-dark .e-con.go-stat .go-icon-badge .elementor-icon {
	width: 38px;
	height: 38px;
	border: 0;
	background: var(--stat-badge, #2E7D32);
	box-shadow: 0 4px 10px rgba(2, 80, 60, .18);
	color: #fff;
}

.e-con.go-stats.go-on-dark .e-con.go-stat .go-icon-badge .elementor-icon :is(svg, i) {
	color: #fff;
	fill: currentColor;
}

.e-con.go-stats.go-on-dark .e-con.go-stat .elementor-counter .elementor-counter-number-wrapper {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.1;
	color: #02503C;
}

.e-con.go-stats.go-on-dark .e-con.go-stat .elementor-counter .elementor-counter-title {
	font-size: 13px;
	font-weight: 500;
	color: #3F5F57;
}

.e-con.go-stats.go-on-dark .e-con__grid,
.e-con.go-stats.go-on-dark .e-con.go-stats__grid {
	gap: 14px;
}

@media (hover: hover) and (pointer: fine) {
	.e-con.go-stats.go-on-dark .e-con.go-stat:hover {
		background: var(--stat-tint, #E5F4EA);
		box-shadow: 0 10px 22px rgba(2, 80, 60, .14);
		transform: translateY(-2px);
	}
}

@media (max-width: 1024px) {
	.e-con.go-stats.go-on-dark .e-con.go-stat .elementor-counter .elementor-counter-number-wrapper {
		font-size: 28px;
	}
}

@media (max-width: 767px) {
	.e-con.go-stats.go-on-dark .e-con.go-stat {
		--padding-left: 8px;
		--padding-right: 8px;
	}

	.e-con.go-stats.go-on-dark .e-con.go-stat .go-icon-badge .elementor-icon {
		width: 34px;
		height: 34px;
	}

	.e-con.go-stats.go-on-dark .e-con.go-stat .elementor-counter .elementor-counter-number-wrapper {
		font-size: 24px;
	}
}
