/* ==========================================================================
   Olio Holidays — design system (v8, "Toran")

   One stylesheet for the whole front end. It sits on top of the Elementor
   kit: the kit keeps the colour and type tokens the editor shows, this file
   owns layout, rhythm and every component.

   v8 keeps v7's structure and retokenises it: mango-leaf green, marigold and
   white; General Sans for every word, Panchang Extrabold for a handful of
   poster moments, JetBrains Mono for data (months, times, labels). The
   season calendar is the signature: every destination carries its twelve
   months, and the homepage opens on them. v7 is kept as design-v7.css and
   v6 as design-v6.css (neither loaded) for reference and rollback.

   Contents
     0  Tokens
     1  Base and typography
     2  Layout: shell, sections, bands, reveal
     3  Header, navigation, breadcrumbs, jump nav
     4  Buttons, links and forms
     5  Cards and grids
     6  Homepage sections
     7  Tour pages
     8  Destination pages
     9  Listing pages and filters
     10 Articles, guides and documents
     11 Silo and trust modules
     12 Footer
     14 Seasons: calendar bars, local time
     15 Homepage v8: almanac, manifesto, atlas, rail, route, styles, journal, finale
     13 Accessibility, motion and print (last, so its overrides win)
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Tokens
   -------------------------------------------------------------------------- */

:root,
body.olio {
	/* v8 "Toran": mango-leaf green and marigold, after the leaf-and-flower
	   garland hung over Indian doorways to welcome people home. */
	--olio-ink:          #0E1C18;
	--olio-leaf:         #123D2E;
	--olio-leaf-2:       #1C5540;
	--olio-leaf-deep:    #0B2A20;
	--olio-marigold:     #F4A82A;
	--olio-marigold-hi:  #FFC05A;
	--olio-marigold-soft:#F7D9A2;
	--olio-paper:        #FFFFFF;
	--olio-mist:         #EEF2EC;
	--olio-mist-2:       #D7E5D4;
	--olio-stone:        #5B6963;
	--olio-line:         #DCE3DD;
	--olio-line-str:     #C3CEC6;

	/* v7 names, kept so every existing rule inherits the new palette. */
	--olio-ground:       var(--olio-paper);
	--olio-surface:      #FFFFFF;
	--olio-sand:         var(--olio-mist);
	--olio-warm:         var(--olio-mist);
	--olio-hairline:     var(--olio-line);
	--olio-hairline-str: var(--olio-line-str);
	--olio-muted:        var(--olio-stone);
	--olio-forest:       var(--olio-leaf);
	--olio-forest-2:     var(--olio-leaf-2);
	--olio-forest-deep:  var(--olio-leaf-deep);
	--olio-terracotta:   var(--olio-leaf-2);
	--olio-terracotta-l: var(--olio-marigold);
	--olio-terracotta-btn: var(--olio-marigold);
	--olio-terracotta-text: var(--olio-stone);
	--olio-brass:        var(--olio-leaf-2);
	--olio-sandtext:     var(--olio-marigold-soft);
	--olio-on-dark:      #FFFFFF;
	--olio-on-dark-mute: rgba(255, 255, 255, 0.78);
	--olio-on-dark-line: rgba(255, 255, 255, 0.16);

	--olio-head:    "General Sans", "General Sans Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--olio-text:    var(--olio-head);
	--olio-display: "Panchang", "Panchang Fallback", "General Sans", sans-serif;
	--olio-mono:    "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

	--olio-fs-hero: clamp(2.75rem, 1.55rem + 4.4vw, 5.75rem);
	--olio-fs-h1:   clamp(2.5rem, 1.6rem + 3.2vw, 4.75rem);
	--olio-fs-h2:   clamp(2.125rem, 1.4rem + 2.6vw, 4rem);
	--olio-fs-h3:   clamp(1.25rem, 1.12rem + 0.5vw, 1.5rem);
	--olio-fs-lead: clamp(1.0625rem, 0.98rem + 0.35vw, 1.3125rem);

	--olio-container: 1320px;
	--olio-gutter:    clamp(20px, 4vw, 56px);
	--olio-section:   clamp(80px, 9vw, 144px);
	--olio-section-sm: clamp(52px, 5.5vw, 88px);
	--olio-header-h:  84px;
	--olio-r:         18px;
	--olio-r-sm:      12px;

	--olio-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
	--olio-fast: 200ms;
	--olio-slow: 900ms;
	--olio-shadow: 0 1px 2px rgba(14, 28, 24, 0.05), 0 18px 40px -22px rgba(14, 28, 24, 0.32);
	--olio-shadow-lg: 0 2px 4px rgba(14, 28, 24, 0.05), 0 30px 70px -30px rgba(14, 28, 24, 0.42);

	/* Elementor's own container variables, so every boxed container shares the
	   one shell instead of the 1200/1240 mix the templates were built with. */
	--container-max-width: var(--olio-container);
}

@media (max-width: 1024px) {
	:root,
	body.olio { --olio-header-h: 72px; }
}

/* --------------------------------------------------------------------------
   1. Base and typography
   -------------------------------------------------------------------------- */

body.olio {
	background-color: var(--olio-ground);
	color: var(--olio-ink);
	font-family: var(--olio-text);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.olio ::selection {
	background: var(--olio-marigold);
	color: var(--olio-ink);
}

body.olio :is(h1, h2, h3, h4, h5, h6),
body.olio .elementor-heading-title {
	font-optical-sizing: auto;
	text-wrap: balance;
}

body.olio :is(h1, h2, h3, h4) {
	font-family: var(--olio-head);
	font-weight: 600;
	color: var(--olio-ink);
	letter-spacing: -0.025em;
}

body.olio p {
	text-wrap: pretty;
}

/* Elementor prints kit typography as `"General Sans", Sans-serif`, which
   skips the metric-matched fallback; long copy then re-wraps when the font
   arrives. The text widgets take the full stack instead. */
body.olio :is(.elementor-widget-theme-post-content, .elementor-widget-text-editor, .elementor-widget-theme-post-excerpt, .elementor-widget-icon-box, .elementor-widget-accordion, .elementor-widget-icon-list) {
	font-family: var(--olio-text) !important;
}

body.olio img {
	max-width: 100%;
	height: auto;
}

/* Links carry no underline by default — WordPress's global styles add one to
   every anchor, which put rules under card titles, tiles and chips. Prose
   links get theirs back below, where a link must be visible as a link. */
body.olio a {
	text-decoration: none;
}

body.olio :is(main, [data-elementor-type="single-post"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) .elementor-widget-text-editor :is(p, li) a:not(.elementor-button) {
	color: var(--olio-forest);
	text-decoration: underline;
	text-decoration-color: var(--olio-hairline-str);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

body.olio :is(main, [data-elementor-type="single-post"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) .elementor-widget-text-editor :is(p, li) a:not(.elementor-button):hover {
	color: var(--olio-terracotta);
	text-decoration-color: currentColor;
}

/* One alignment rule for the page body: everything reads from the left edge
   of the shell. Individual widgets had been set to centre when the site was
   built. */
body.olio :is(main, [data-elementor-type="single-post"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) :is(.elementor-widget-heading, .elementor-widget-text-editor, .elementor-widget-theme-post-title),
body.olio :is(main, [data-elementor-type="single-post"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) :is(.elementor-widget-heading, .elementor-widget-theme-post-title) .elementor-heading-title {
	text-align: left !important;
}

/* Emphasis in a heading is a marigold marker stroke, not an italic: General
   Sans is loaded upright only. */
body.olio .olio-italic,
body.olio .elementor-heading-title em {
	font-family: inherit;
	font-style: normal;
	font-weight: inherit;
	background: linear-gradient(transparent 64%, rgba(244, 168, 42, 0.55) 64%, rgba(244, 168, 42, 0.55) 92%, transparent 92%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* Eyebrow: the small uppercase line above a heading. Widgets opt in with the
   class, and every eyebrow the templates already had is matched by its
   position (a div heading directly before an h1/h2). */
body.olio .olio-eyebrow .elementor-heading-title,
body.olio .olio-eyebrow:not(.elementor-widget),
body.olio .elementor-widget-heading:has(+ .elementor-widget-heading h2) > div.elementor-heading-title,
body.olio .elementor-widget-heading:has(+ .elementor-widget-heading h1) > div.elementor-heading-title,
body.olio .elementor-widget-heading:has(+ .elementor-widget-theme-post-title) > div.elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--olio-mono);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

/* The eyebrow's marigold dot: the same dot that sits over the i of the logo. */
body.olio .olio-eyebrow .elementor-heading-title::before,
body.olio .olio-eyebrow:not(.elementor-widget)::before,
body.olio .elementor-widget-heading:has(+ .elementor-widget-heading h2) > div.elementor-heading-title::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--olio-marigold);
	flex: none;
}

body.olio .olio-dark .olio-eyebrow .elementor-heading-title,
body.olio .olio-dark .elementor-widget-heading:has(+ .elementor-widget-heading h2) > div.elementor-heading-title,
body.olio .olio-hero .elementor-widget-heading:has(+ .elementor-widget-heading h1) > div.elementor-heading-title,
body.olio .olio-hero .elementor-widget-heading:has(+ .elementor-widget-theme-post-title) > div.elementor-heading-title {
	color: var(--olio-sandtext);
}

body.olio .olio-hero .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

/* Section heading scale. */
body.olio :is(main, [data-elementor-type="single-post"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) :is(.e-con, .e-con-inner) > .elementor-widget-heading h2.elementor-heading-title,
body.olio [data-elementor-type] :is(.e-con, .e-con-inner) > .elementor-widget-heading h2.elementor-heading-title {
	font-family: var(--olio-head);
	font-size: var(--olio-fs-h2);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.035em;
	color: var(--olio-ink);
	max-width: 16ch;
	margin: 0;
}

/* Lead paragraph after a section heading. */
body.olio .olio-lead p,
body.olio .elementor-widget-heading + .elementor-widget-text-editor p {
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	color: var(--olio-muted);
	max-width: 58ch;
	margin: 0 0 0.8em;
}

body.olio .elementor-widget-heading + .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/* Long copy keeps a readable measure. */
body.olio .elementor-widget-text-editor p,
body.olio .elementor-widget-theme-post-content :is(p, li) {
	max-width: 70ch;
}

/* --------------------------------------------------------------------------
   2. Layout: shell, sections, bands, reveal
   -------------------------------------------------------------------------- */

/* The shell: one content width and one gutter for header, sections, footer
   and the plain WordPress templates alike. */
.olio-shell {
	width: 100%;
	max-width: calc(var(--olio-container) + 2 * var(--olio-gutter));
	margin-inline: auto;
	padding-inline: var(--olio-gutter);
}

/* Every boxed Elementor container: its inner box is the shell. */
body.olio .e-con.e-con-boxed {
	--content-width: var(--olio-container);
}

/* Gutters belong to top-level sections only. Elementor 4 marks nested
   containers `e-parent` too, so the selector is structural — a container that
   is a direct child of a document root — never the class. */
body.olio [data-elementor-type]:not(.e-loop-item) > .e-con {
	--padding-left: var(--olio-gutter);
	--padding-right: var(--olio-gutter);
}

/* Full-width sections that hold content directly (no inner box) still share
   the shell's measure. */
body.olio [data-elementor-type]:not(.e-loop-item) > .e-con.e-con-full:not(.olio-hero) {
	padding-inline: max(var(--olio-gutter), calc((100% - var(--olio-container)) / 2));
}

/* Section rhythm: one scale, owned here, overriding the paddings typed into
   individual containers when the site was built. In Elementor 4 a boxed
   container carries its vertical padding on the inner box, which reads these
   same variables. */
body.olio :is([data-elementor-type="wp-page"], [data-elementor-type="single-post"], [data-elementor-type="single-page"], [data-elementor-type="single"], [data-elementor-type="archive"], [data-elementor-type="wp-post"], [data-elementor-type="error-404"]) > .e-con:not(.olio-hero) {
	--padding-top: var(--olio-section);
	--padding-bottom: var(--olio-section);
	position: relative;
}

/* Two light sections in a row are separated by a hairline on the shell, not
   by a change of ground. */
body.olio :is([data-elementor-type="wp-page"], [data-elementor-type="single-post"], [data-elementor-type="single"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) > .e-con.olio-rule::before,
body.olio :is([data-elementor-type="wp-page"], [data-elementor-type="single-post"], [data-elementor-type="single"], [data-elementor-type="archive"], [data-elementor-type="error-404"]) > .e-con:not(.olio-dark):not(.olio-band):not(.olio-hero):not(.olio-cta):not(.olio-finderwrap):not(.olio-jumpwrap) + .e-con:not(.olio-dark):not(.olio-band):not(.olio-cta):not(.olio-silo-slot)::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(var(--olio-container), calc(100% - 2 * var(--olio-gutter)));
	height: 1px;
	background: var(--olio-hairline);
}

/* Dark chapter band. */
body.olio .olio-dark,
body.olio .olio-dark.e-con {
	background-color: var(--olio-forest) !important;
	background-image: none !important;
	color: var(--olio-on-dark);
}

body.olio .olio-dark :is(h1, h2, h3, h4, h5, h6),
body.olio .olio-dark .elementor-heading-title,
body.olio .olio-dark .elementor-icon-box-title,
body.olio .olio-dark .elementor-icon-box-title a {
	color: #FFFFFF;
}

body.olio .olio-dark :is(p, li, dd, .elementor-widget-text-editor, .elementor-icon-box-description) {
	color: var(--olio-on-dark-mute) !important;
}

body.olio .olio-dark a:not(.elementor-button) {
	color: #FFFFFF;
}

/* Warm band — the third ground. */
body.olio .olio-band,
body.olio .olio-band.e-con {
	background-color: var(--olio-sand) !important;
}

/* Scroll reveal, gated on the class the inline head script adds so a crawler
   or a failed script never sees a blank section. */
html.olio-js body.olio .olio-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity var(--olio-slow) var(--olio-ease), transform var(--olio-slow) var(--olio-ease);
}

html.olio-js body.olio .olio-reveal.is-visible {
	opacity: 1;
	transform: none;
}

body.olio main {
	overflow-x: clip;
}

/* Plain WordPress templates (guides, intersection and policy pages) use the
   same shell as everything else. */
body.olio:not(.elementor-page) main.site-main {
	width: 100%;
	max-width: calc(var(--olio-container) + 2 * var(--olio-gutter));
	margin-inline: auto;
	padding: 0 var(--olio-gutter) var(--olio-section);
}

/* --------------------------------------------------------------------------
   3. Header, navigation, breadcrumbs, jump nav
   -------------------------------------------------------------------------- */

/* Top bar: contact details. It has nothing to say until a phone, email or
   WhatsApp number exists, so until then it is not drawn at all. */
body.olio.olio-no-contact .elementor-location-header .olio-darkchrome {
	display: none !important;
}

body.olio .elementor-location-header .olio-darkchrome {
	--padding-top: 8px;
	--padding-bottom: 8px;
	background-color: var(--olio-forest-deep) !important;
	font-size: 13px;
}

/* Main bar. */
body.olio .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome) {
	--padding-top: 0;
	--padding-bottom: 0;
	--min-height: var(--olio-header-h);
	min-height: var(--olio-header-h);
	background-color: rgba(255, 255, 255, 0.97) !important;
	border-bottom: 1px solid var(--olio-hairline) !important;
	transition: background-color 300ms var(--olio-ease), box-shadow 300ms var(--olio-ease), border-color 300ms var(--olio-ease);
}

body.olio .elementor-location-header .elementor-sticky--effects {
	box-shadow: 0 10px 30px -18px rgba(14, 28, 24, 0.35);
}

@supports (backdrop-filter: blur(1px)) {
	body.olio .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome) {
		background-color: rgba(255, 255, 255, 0.9) !important;
		backdrop-filter: saturate(1.4) blur(14px);
	}
}

/* Logo lockup: the Panchang wordmark with its marigold dot, and "holidays"
   in mono beside it on the baseline. */
body.olio .olio-logo {
	display: inline-flex;
	align-items: flex-end;
	gap: 9px;
	color: var(--olio-ink);
	text-decoration: none;
	line-height: 1;
}

body.olio .olio-logo svg {
	display: block;
	height: 25px;
	width: auto;
	overflow: visible;
}

body.olio .olio-logo__sub {
	padding-bottom: 1px;
	font: 500 10.5px/1 var(--olio-mono);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	opacity: 0.8;
}

body.olio .olio-logo:hover {
	color: var(--olio-leaf);
}

@media (max-width: 767px) {
	body.olio .olio-logo svg { height: 22px; }
	body.olio .olio-logo__sub { font-size: 9.5px; letter-spacing: 0.16em; }
}

/* Fallback when the site title widget is still in place. */
body.olio .elementor-widget-theme-site-title .elementor-heading-title a {
	color: var(--olio-forest);
	text-decoration: none;
}

/* Primary navigation. */
body.olio .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item {
	font-family: var(--olio-text);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--olio-ink);
	padding: 10px clamp(10px, 1.1vw, 18px);
	white-space: nowrap;
}

body.olio .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:hover,
body.olio .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item.elementor-item-active,
body.olio .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-ancestor > a.elementor-item {
	color: var(--olio-forest);
}

body.olio .elementor-location-header .e--pointer-underline .elementor-item::after {
	height: 2px;
	background-color: var(--olio-terracotta-l) !important;
	bottom: 2px;
	left: clamp(10px, 1.1vw, 18px);
	right: clamp(10px, 1.1vw, 18px);
}

body.olio .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu {
	flex-wrap: nowrap;
}

/* Dropdowns. */
body.olio .elementor-location-header .elementor-nav-menu--main .sub-menu {
	min-width: 240px !important;
	margin-top: 6px !important;
	padding: 8px !important;
	background: #FFFFFF;
	border: 1px solid var(--olio-hairline);
	border-radius: 16px;
	box-shadow: var(--olio-shadow-lg);
	overflow: hidden;
}

body.olio .elementor-location-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
	padding: 10px 14px !important;
	font-size: 15px;
	font-weight: 500;
	color: var(--olio-ink);
	background: transparent;
	border: 0;
	border-radius: 10px;
}

body.olio .elementor-location-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
body.olio .elementor-location-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active {
	color: var(--olio-leaf);
	background: var(--olio-mist);
}

body.olio .elementor-location-header .elementor-nav-menu--main .sub-arrow {
	padding-left: 6px;
	opacity: 0.55;
}

/* Header call to action. */
body.olio .elementor-location-header .elementor-widget-button .elementor-button {
	min-height: 44px;
	padding: 0 22px;
	font-size: 14.5px;
}

/* Mobile menu. */
body.olio .elementor-location-header .elementor-menu-toggle {
	width: 44px;
	height: 44px;
	justify-content: center;
	background: transparent;
	color: var(--olio-forest);
	border: 0;
}

body.olio .elementor-location-header .elementor-nav-menu--dropdown {
	background: #FFFFFF;
	border-top: 1px solid var(--olio-hairline);
	box-shadow: 0 30px 50px -30px rgba(14, 28, 24, 0.4);
}

body.olio .elementor-location-header .elementor-nav-menu--stretch .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	margin-top: 0;
	max-height: calc(100svh - var(--olio-header-h));
	overflow-y: auto;
}

body.olio .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item,
body.olio .elementor-location-header .elementor-nav-menu--dropdown a.elementor-sub-item {
	padding: 17px var(--olio-gutter) !important;
	font-size: 21px !important;
	font-weight: 600 !important;
	letter-spacing: -0.022em !important;
	color: var(--olio-ink);
	border-bottom: 1px solid var(--olio-hairline);
	background: #FFFFFF;
}

body.olio .elementor-location-header .elementor-nav-menu--dropdown a.elementor-sub-item {
	padding: 13px var(--olio-gutter) 13px calc(var(--olio-gutter) + 16px) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	color: var(--olio-muted);
}

body.olio .elementor-location-header .elementor-nav-menu--dropdown a:hover,
body.olio .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item-active {
	color: var(--olio-terracotta);
	background: var(--olio-ground);
}

/* Homepage: the header sits over the almanac photograph until the page
   scrolls, at every width. */
body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):not(.elementor-sticky--effects) {
	background-color: transparent !important;
	border-bottom-color: rgba(255, 255, 255, 0.16) !important;
	backdrop-filter: none;
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):not(.elementor-sticky--effects) :is(.olio-logo, .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item, .elementor-menu-toggle) {
	color: #FFFFFF;
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):not(.elementor-sticky--effects) .elementor-menu-toggle svg {
	fill: #FFFFFF;
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):not(.elementor-sticky--effects) .elementor-widget-button .elementor-button {
	background-color: rgba(255, 255, 255, 0.14) !important;
	color: #FFFFFF !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
	backdrop-filter: blur(8px);
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):not(.elementor-sticky--effects) .elementor-widget-button .elementor-button:hover {
	background-color: var(--olio-marigold) !important;
	color: var(--olio-ink) !important;
	box-shadow: none;
}

body.olio.home [data-elementor-type] > .e-con.olio-almanac-sec {
	margin-top: calc(-1 * var(--olio-header-h));
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):has(.elementor-menu-toggle.elementor-active) {
	background-color: #FFFFFF !important;
	border-bottom-color: var(--olio-hairline) !important;
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):has(.elementor-menu-toggle.elementor-active) :is(.olio-logo, .elementor-menu-toggle) {
	color: var(--olio-ink) !important;
}

body.olio.home .elementor-location-header > .e-con.e-parent:not(.olio-darkchrome):has(.elementor-menu-toggle.elementor-active) .elementor-menu-toggle svg {
	fill: var(--olio-ink);
}

/* Breadcrumb bar on ordinary pages. */
.olio-breadcrumb-bar {
	background: transparent;
	border: 0;
	padding-block: 22px 0;
}

.olio-breadcrumbs {
	font: 500 13px/1.5 var(--olio-text);
	color: var(--olio-muted);
}

.olio-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.olio-breadcrumbs li + li::before {
	content: "";
	width: 5px;
	height: 5px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.55;
}

.olio-breadcrumbs a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	color: inherit;
	text-decoration: none;
	transition: color var(--olio-fast) var(--olio-ease);
}

.olio-breadcrumbs a:hover {
	color: var(--olio-forest);
}

.olio-breadcrumbs [aria-current="page"] {
	color: var(--olio-ink);
}

/* In a hero the trail sits on the photograph. */
body.olio .olio-hero .olio-breadcrumbs,
body.olio .olio-breadcrumbs--hero {
	color: rgba(255, 255, 255, 0.8);
}

body.olio .olio-hero .olio-breadcrumbs a,
body.olio .olio-hero .olio-breadcrumbs li::before {
	color: rgba(255, 255, 255, 0.82) !important;
}

body.olio .olio-hero .olio-breadcrumbs a:hover,
body.olio .olio-hero .olio-breadcrumbs [aria-current="page"] {
	color: #FFFFFF !important;
}

/* Tour jump nav: sticky under the header. */
.olio-jump {
	position: sticky;
	top: var(--olio-header-h);
	z-index: 40;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: saturate(1.3) blur(10px);
	border-bottom: 1px solid var(--olio-hairline);
}

body.admin-bar .olio-jump {
	top: calc(var(--olio-header-h) + 32px);
}

.olio-jump ol {
	display: flex;
	gap: clamp(18px, 2.6vw, 36px);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.olio-jump ol::-webkit-scrollbar {
	display: none;
}

.olio-jump li {
	margin: 0;
	flex: none;
}

.olio-jump a {
	display: block;
	padding: 17px 0 15px;
	font: 500 12px/1 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: var(--olio-muted);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: color var(--olio-fast) var(--olio-ease), border-color var(--olio-fast) var(--olio-ease);
	white-space: nowrap;
}

.olio-jump a:hover,
.olio-jump a[aria-current="true"] {
	color: var(--olio-forest);
	border-bottom-color: var(--olio-terracotta-l);
}

body.olio [id] {
	scroll-margin-top: calc(var(--olio-header-h) + 72px);
}

/* --------------------------------------------------------------------------
   4. Buttons, links and forms
   -------------------------------------------------------------------------- */

/* Primary: a marigold pill with ink text (10.4:1). Colour is set here with
   !important because Elementor prints each widget's kit colours at a higher
   specificity than any selector this file could reasonably use. */
body.olio .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 28px;
	font-family: var(--olio-text);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.005em;
	text-transform: none;
	text-decoration: none;
	border-radius: 999px !important;
	border: 0 !important;
	background-color: var(--olio-marigold) !important;
	color: var(--olio-ink) !important;
	transition: background-color 300ms var(--olio-ease), color 300ms var(--olio-ease), box-shadow 300ms var(--olio-ease), transform 300ms var(--olio-ease);
}

body.olio .elementor-button:hover {
	background-color: var(--olio-marigold-hi) !important;
	color: var(--olio-ink) !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -12px rgba(244, 168, 42, 0.75);
}

body.olio .elementor-button .elementor-button-text {
	color: inherit;
}

/* Secondary: add `olio-btn-ghost` to the button widget. */
body.olio .olio-btn-ghost .elementor-button {
	background-color: transparent !important;
	color: var(--olio-ink) !important;
	box-shadow: inset 0 0 0 1.5px var(--olio-ink);
}

body.olio .olio-btn-ghost .elementor-button:hover {
	background-color: var(--olio-ink) !important;
	color: #FFFFFF !important;
	box-shadow: inset 0 0 0 1.5px var(--olio-ink);
}

body.olio :is(.olio-dark, .olio-hero, .olio-cta) .olio-btn-ghost .elementor-button {
	color: #FFFFFF !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
	backdrop-filter: blur(8px);
}

body.olio :is(.olio-dark, .olio-hero, .olio-cta) .olio-btn-ghost .elementor-button:hover {
	background-color: #FFFFFF !important;
	color: var(--olio-ink) !important;
	box-shadow: none;
}

/* Text link with an arrow: add `olio-btn-link` to the button widget. The
   arrow is drawn, not a glyph: none of the three faces carries U+2192. */
body.olio .olio-btn-link .elementor-button,
body.olio .olio-morelink,
body.olio .olio-arrowlink {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 28px;
	padding: 0 0 7px;
	background: transparent !important;
	color: var(--olio-ink) !important;
	font: 600 15px/1 var(--olio-text);
	letter-spacing: -0.005em;
	text-transform: none;
	text-decoration: none;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: inset 0 -2px 0 var(--olio-marigold);
	transform: none !important;
	transition: color var(--olio-fast) var(--olio-ease), box-shadow 300ms var(--olio-ease);
}

body.olio .olio-btn-link .elementor-button::after,
body.olio .olio-morelink::after,
body.olio .olio-arrowlink::after {
	content: "";
	flex: none;
	width: 16px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 300ms var(--olio-ease);
}

body.olio .olio-btn-link .elementor-button:hover,
body.olio .olio-morelink:hover,
body.olio .olio-arrowlink:hover {
	color: var(--olio-leaf) !important;
	box-shadow: inset 0 -2px 0 var(--olio-leaf);
}

body.olio .olio-btn-link .elementor-button:hover::after,
body.olio .olio-morelink:hover::after,
body.olio .olio-arrowlink:hover::after {
	transform: translateX(4px);
}

body.olio .olio-dark .olio-btn-link .elementor-button,
body.olio .olio-dark .olio-arrowlink {
	color: #FFFFFF !important;
}

body.olio .olio-dark .olio-btn-link .elementor-button:hover,
body.olio .olio-dark .olio-arrowlink:hover {
	color: var(--olio-marigold) !important;
	box-shadow: inset 0 -2px 0 var(--olio-marigold);
}

/* Forms. */
body.olio .elementor-field-group .elementor-field-label,
body.olio .olio-finder label {
	margin-bottom: 8px;
	font: 500 11.5px/1.4 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olio-muted);
}

body.olio .elementor-field-textual,
body.olio .elementor-field-group select,
body.olio .olio-finder select {
	min-height: 52px;
	padding: 12px 16px;
	font: 400 16px/1.4 var(--olio-text);
	color: var(--olio-ink);
	background-color: #FFFFFF;
	border: 1px solid var(--olio-hairline-str);
	border-radius: var(--olio-r-sm);
	box-shadow: none;
	transition: border-color var(--olio-fast) var(--olio-ease), box-shadow var(--olio-fast) var(--olio-ease);
}

body.olio textarea.elementor-field-textual {
	min-height: 120px;
}

body.olio .elementor-field-textual::placeholder {
	color: #75817C;
}

body.olio .elementor-field-textual:hover,
body.olio .olio-finder select:hover {
	border-color: var(--olio-forest);
}

body.olio .elementor-field-textual:focus,
body.olio .olio-finder select:focus {
	border-color: var(--olio-forest) !important;
	outline: 2px solid var(--olio-forest) !important;
	outline-offset: 1px !important;
	box-shadow: none;
}

body.olio .elementor-field-type-submit .elementor-button,
body.olio .elementor-form button[type="submit"] {
	width: 100%;
	min-height: 56px;
	font-size: 16px;
}

body.olio .elementor-message {
	font-size: 15px;
	margin-top: 14px;
}

body.olio .elementor-message.elementor-message-danger {
	color: #8C2F1E;
}

body.olio .elementor-message.elementor-message-success {
	color: var(--olio-forest);
}

/* Consent line under enquiry forms. */
body.olio .olio-formnote {
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--olio-muted);
}

body.olio .olio-formnote a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   5. Cards and grids
   -------------------------------------------------------------------------- */

body.olio .elementor-loop-container {
	gap: clamp(36px, 3.4vw, 52px) clamp(18px, 2vw, 30px) !important;
}

/* Base card: open, not boxed. A rounded photograph with the words set
   beneath it on the page ground. */
body.olio .e-loop-item {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background-color: transparent !important;
	border: 0;
	border-radius: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

/* The listing filter hides cards with the hidden attribute. */
body.olio .e-loop-item[hidden] {
	display: none !important;
}

body.olio .e-loop-item > .e-con,
body.olio .e-loop-item > .e-con > .e-con-inner {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

body.olio .e-loop-item > .e-con,
body.olio .e-loop-item .olio-cardfoot {
	border: 0 !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

/* Card image. */
body.olio .e-loop-item :is(.elementor-widget-image, .elementor-widget-theme-post-featured-image) {
	position: relative;
	overflow: hidden;
	margin: 0;
	border-radius: var(--olio-r);
	background: var(--olio-mist);
	isolation: isolate;
}

body.olio .e-loop-item :is(.elementor-widget-image, .elementor-widget-theme-post-featured-image) img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0 !important;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .e-loop-item:hover :is(.elementor-widget-image, .elementor-widget-theme-post-featured-image) img {
	transform: scale(1.05);
}

/* Card body. */
body.olio .e-loop-item > .e-con > .e-con:not(:first-child),
body.olio .e-loop-item > .e-con > .e-con-inner > .e-con:not(:first-child) {
	--padding-top: 18px;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	--gap: 8px;
	gap: 8px;
	flex: 1 1 auto;
	background: transparent !important;
	border: 0 !important;
}

/* Card eyebrow (stops / category). */
body.olio .e-loop-item .elementor-widget-heading:first-child .elementor-heading-title,
body.olio .e-loop-item .elementor-widget-heading:first-child .elementor-heading-title a {
	font: 500 11.5px/1.5 var(--olio-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
	text-decoration: none;
}

/* Card title. */
body.olio .e-loop-item :is(h2, h3).elementor-heading-title,
body.olio .e-loop-item :is(h2, h3).elementor-heading-title a {
	font-family: var(--olio-head);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5625rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.022em;
	color: var(--olio-ink);
	text-decoration: none;
	max-width: none;
}

body.olio .e-loop-item:hover :is(h2, h3).elementor-heading-title a {
	text-decoration: underline;
	text-decoration-color: var(--olio-marigold);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

/* The whole card is the target. */
body.olio .e-loop-item :is(h2, h3).elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

body.olio .e-loop-item :is(a.elementor-button, .olio-cardcta a, .elementor-widget-heading:first-child a) {
	position: relative;
	z-index: 2;
}

/* Excerpt. */
body.olio .e-loop-item .elementor-widget-theme-post-excerpt,
body.olio .e-loop-item .elementor-widget-theme-post-excerpt p {
	font-size: 15px;
	line-height: 1.6;
	color: var(--olio-muted);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Trip metrics row. */
.olio-cardmetrics {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 0;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.olio-cardmetrics li {
	display: flex;
	align-items: baseline;
	gap: 5px;
	margin: 0;
	padding: 0;
	border: 0;
}

.olio-cardmetrics li + li::before {
	content: "";
	align-self: center;
	width: 4px;
	height: 4px;
	margin: 0 12px;
	border-radius: 50%;
	background: var(--olio-line-str);
}

.olio-cardmetrics b {
	font-family: var(--olio-head);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	color: var(--olio-ink);
	font-variant-numeric: lining-nums tabular-nums;
}

.olio-cardmetrics span {
	font: 500 10.5px/1.3 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: var(--olio-muted);
	white-space: nowrap;
}

body.olio .olio-cardroute {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--olio-muted);
}

/* Price pinned to the foot of the card. */
body.olio .e-loop-item :is(.olio-cardfoot, .e-con:has(> .elementor-widget-shortcode .olio-cardcta)) {
	margin-top: auto;
	flex-wrap: wrap;
	--padding-top: 6px;
	--padding-left: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	row-gap: 0;
}

body.olio .e-loop-item :is(.olio-cardfoot, .e-con:has(> .elementor-widget-shortcode .olio-cardcta)) > .elementor-widget-heading .elementor-heading-title {
	font: 600 17px/1.3 var(--olio-text);
	color: var(--olio-ink);
	text-transform: none;
	letter-spacing: -0.01em;
}

/* Days pill on the tour card's photograph. */
body.olio .e-loop-item .elementor-widget-shortcode:has(.olio-trip__days) {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	width: auto !important;
	margin: 0;
}

body.olio .e-loop-item > .e-con:has(.olio-trip__days) {
	position: relative;
}

body.olio .e-loop-item .olio-price {
	font-family: var(--olio-text);
}

body.olio .e-loop-item .olio-price b,
body.olio .e-loop-item .olio-price strong {
	display: inline-block;
	margin-left: 4px;
	font-family: var(--olio-head);
	font-size: 22px;
	font-weight: 600;
	color: var(--olio-ink);
	letter-spacing: -0.01em;
}

body.olio .e-loop-item .elementor-widget-shortcode:has(.olio-cardcta) {
	flex: 1 1 100%;
	width: 100%;
}

body.olio .olio-cardcta {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	width: 100%;
	margin-top: 14px;
}

body.olio .olio-cardcta a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 10px;
	font: 600 11.5px/1 var(--olio-text);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none !important;
	border: 1px solid var(--olio-forest);
	transition: background-color var(--olio-fast) var(--olio-ease), color var(--olio-fast) var(--olio-ease), border-color var(--olio-fast) var(--olio-ease);
}

body.olio .olio-cardcta__ghost,
body.olio .olio-cardcta__ghost:visited {
	background: transparent;
	color: var(--olio-forest) !important;
}

body.olio .olio-cardcta__ghost:hover {
	background: var(--olio-ground);
	color: var(--olio-forest) !important;
}

body.olio .olio-cardcta__solid,
body.olio .olio-cardcta__solid:visited {
	background: var(--olio-forest);
	color: #FFFFFF !important;
}

body.olio .olio-cardcta__solid:hover,
body.olio .olio-cardcta__solid:focus-visible {
	background: var(--olio-terracotta);
	border-color: var(--olio-terracotta);
	color: #FFFFFF !important;
}

/* Blog card read link. */
body.olio .e-loop-item .elementor-widget-button {
	margin-top: auto;
	padding-top: 6px;
}

body.olio .e-loop-item .elementor-widget-button .elementor-button {
	min-height: 26px;
	padding: 0 0 6px;
	background: transparent !important;
	color: var(--olio-ink) !important;
	font-size: 14.5px;
	border-radius: 0 !important;
	box-shadow: inset 0 -2px 0 var(--olio-marigold);
	transform: none !important;
}

body.olio .e-loop-item .elementor-widget-button .elementor-button:hover {
	color: var(--olio-leaf) !important;
	box-shadow: inset 0 -2px 0 var(--olio-leaf);
}

/* --- Destination card: the atlas tile ------------------------------------
   Portrait photograph, then the country in mono, the name in Panchang, the
   twelve-month season bar and the lowest trip price. Same anatomy as the
   homepage atlas, so a destination looks the same wherever it appears. */

body.olio .olio-destcard {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 0;
	background: transparent !important;
	border: 0;
	--padding-top: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
}

body.olio .e-loop-item:has(.olio-destcard) {
	border: 0;
	background: transparent;
}

body.olio .olio-destcard > .olio-destcard__media,
body.olio .olio-destcard > .elementor-widget-image {
	position: relative;
	width: 100% !important;
	max-width: none;
	margin: 0;
	border-radius: var(--olio-r);
	overflow: hidden;
	background: var(--olio-mist);
	isolation: isolate;
}

body.olio .olio-destcard .olio-destcard__media :is(.elementor-widget-container, figure, a),
body.olio .olio-destcard > .elementor-widget-image a {
	display: block;
	margin: 0;
}

body.olio .olio-destcard .olio-destcard__media img,
body.olio .olio-destcard > .elementor-widget-image img {
	width: 100%;
	height: auto !important;
	aspect-ratio: 4 / 5 !important;
	object-fit: cover;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .olio-destcard:hover .olio-destcard__media img {
	transform: scale(1.06);
}

body.olio .olio-destcard .olio-destcard__body {
	position: static;
	flex: 1 1 auto !important;
	--padding-top: 16px;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	--gap: 8px;
	gap: 8px;
	background: transparent !important;
}

body.olio .olio-destcard .olio-destcard__body :is(.e-con, .e-con-inner) {
	background: transparent !important;
	border: 0 !important;
}

body.olio .olio-destcard .olio-destcard__body > .elementor-widget-heading:first-child .elementor-heading-title {
	font: 500 11.5px/1.4 var(--olio-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-destcard .olio-destcard__body :is(h2, h3).elementor-heading-title,
body.olio .olio-destcard .olio-destcard__body :is(h2, h3).elementor-heading-title a {
	font: 800 clamp(1.25rem, 1.05rem + 0.7vw, 1.75rem)/1.05 var(--olio-display);
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--olio-ink);
	text-decoration: none;
}

body.olio .olio-destcard .olio-destcard__body :is(h2, h3).elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

body.olio .olio-destcard .elementor-widget-theme-post-excerpt,
body.olio .olio-destcard .elementor-widget-theme-post-excerpt p {
	font-size: 15px;
	line-height: 1.55;
	color: var(--olio-stone);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
	max-width: 48ch;
}

body.olio .olio-destcard .olio-destcard__body > .e-con {
	--padding-top: 4px;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	display: flex;
	flex-direction: row !important;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
}

body.olio .olio-destcard .olio-destcard__body > .e-con .elementor-heading-title {
	font: 400 15px/1.3 var(--olio-text);
	color: var(--olio-stone);
	letter-spacing: 0;
	text-transform: none;
}

body.olio .olio-destcard .elementor-button {
	min-height: 26px;
	padding: 0 0 5px;
	background: transparent !important;
	color: var(--olio-ink) !important;
	font-size: 14.5px;
	border-radius: 0 !important;
	box-shadow: inset 0 -2px 0 var(--olio-marigold);
	transform: none !important;
}

body.olio .olio-destcard:hover .elementor-button {
	color: var(--olio-leaf) !important;
	box-shadow: inset 0 -2px 0 var(--olio-leaf);
}

/* --------------------------------------------------------------------------
   6. Homepage sections
   -------------------------------------------------------------------------- */

/* --- Rows of icon boxes (mission and vision, trust points, contact) ----- */

body.olio :is(.e-con, .e-con-inner):has(> .elementor-widget-icon-box + .elementor-widget-icon-box):not(:has(> .e-con)) {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(28px, 3.5vw, 56px) !important;
	align-items: start;
}

body.olio :is(.e-con, .e-con-inner):has(> .elementor-widget-icon-box + .elementor-widget-icon-box) > .elementor-widget-icon-box {
	width: auto !important;
	max-width: none !important;
}

body.olio :is(.e-con, .e-con-inner):not(.olio-steps *):not(.olio-valueprops *):has(> .elementor-widget-icon-box + .elementor-widget-icon-box) > .elementor-widget-icon-box {
	padding-top: 22px;
	border-top: 1px solid var(--olio-hairline-str);
}

body.olio .elementor-widget-icon-box .elementor-icon-box-wrapper {
	text-align: left !important;
}

body.olio .elementor-widget-icon-box .elementor-icon-box-icon {
	margin-bottom: 14px !important;
}

body.olio .elementor-widget-icon-box .elementor-icon {
	font-size: 22px;
	color: var(--olio-terracotta) !important;
	fill: var(--olio-terracotta) !important;
}

body.olio .elementor-widget-icon-box .elementor-icon svg {
	width: 22px;
	height: 22px;
}

body.olio .elementor-widget-icon-box .elementor-icon-box-title,
body.olio .elementor-widget-icon-box .elementor-icon-box-title :is(span, a) {
	font-family: var(--olio-head);
	font-size: clamp(1.1875rem, 1.1rem + 0.35vw, 1.375rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--olio-forest);
	margin: 0 0 8px;
}

body.olio .elementor-widget-icon-box .elementor-icon-box-description {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--olio-muted);
	max-width: 42ch;
}

/* The destination-and-style index on the packages page. */
body.olio .olio-hubband .olio-silo-module {
	margin: 0;
	padding: 0;
	border: 0;
}

body.olio .olio-hubband .olio-silo-module__title {
	font-size: var(--olio-fs-h2) !important;
	line-height: 1.04;
	letter-spacing: -0.022em;
	max-width: 18ch !important;
}

body.olio .olio-hubband .olio-silo-links {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	column-gap: clamp(28px, 4vw, 64px);
	margin-top: 28px;
}

/* --- Heroes (home, tour, destination) ------------------------------------ */

body.olio .olio-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	--padding-left: var(--olio-gutter);
	--padding-right: var(--olio-gutter);
}

body.olio .olio-hero > .elementor-motion-effects-container {
	z-index: 0;
}

body.olio .olio-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(8, 24, 19, 0.45) 0%, rgba(8, 24, 19, 0) 26%),
		linear-gradient(0deg, rgba(8, 24, 19, 0.78) 0%, rgba(8, 24, 19, 0.34) 36%, rgba(8, 24, 19, 0) 64%),
		linear-gradient(90deg, rgba(8, 24, 19, 0.5) 0%, rgba(8, 24, 19, 0.12) 46%, rgba(8, 24, 19, 0) 70%);
}

body.olio .olio-hero::before {
	display: none;
}

body.olio .olio-hero > .e-con-inner {
	position: relative;
	z-index: 2;
}

body.olio .olio-hero :is(h1, h2, p, .elementor-heading-title) {
	color: #FFFFFF;
}

body.olio .olio-hero h1.elementor-heading-title {
	font-family: var(--olio-head);
	font-size: clamp(2.75rem, 1.3rem + 4.4vw, 6rem);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.038em;
	max-width: 16ch;
	text-shadow: 0 2px 30px rgba(8, 24, 19, 0.25);
}

/* A destination's name is a poster: Panchang, uppercase, as large as the
   shell allows. Names are short ("Bali", "Ladakh"), so it never runs long. */
body.olio.olio-destination .olio-hero h1.elementor-heading-title {
	font: 800 min(12rem, calc((100vw - 2 * var(--olio-gutter)) / var(--olio-dest-mw, 11.9)))/0.9 var(--olio-display);
	letter-spacing: -0.012em;
	text-transform: uppercase;
	max-width: none;
	overflow-wrap: anywhere;
}

body.olio .olio-hero .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.9);
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	max-width: 50ch;
}

/* Hero meta chips (duration, stops). */
body.olio .olio-hero .elementor-icon-list-items,
body.olio .olio-hero .elementor-icon-list-items.elementor-inline-items {
	gap: 10px;
	margin: 0 !important;
}

body.olio .olio-hero .elementor-icon-list-item {
	margin: 0 !important;
	padding: 9px 16px !important;
	background: rgba(255, 255, 255, 0.12);
	border: 0;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3);
	backdrop-filter: blur(8px);
}

body.olio .olio-hero .elementor-icon-list-item::after {
	display: none !important;
}

body.olio .olio-hero .elementor-icon-list-text {
	font: 500 14px/1.2 var(--olio-text);
	color: #FFFFFF !important;
	padding-left: 8px !important;
}

body.olio .olio-hero .elementor-icon-list-icon :is(i, svg) {
	color: var(--olio-sandtext) !important;
	fill: var(--olio-sandtext) !important;
	width: 14px;
	font-size: 14px;
}

/* Home hero. */
body.olio [data-elementor-type] > .e-con.olio-hero--home {
	min-height: min(100svh, 940px) !important;
	--min-height: min(100svh, 940px);
	--padding-top: calc(var(--olio-header-h) + clamp(48px, 7vh, 96px));
	--padding-bottom: clamp(130px, 15vh, 180px);
	justify-content: flex-end !important;
}

body.olio .olio-hero--home > .e-con-inner {
	justify-content: flex-end !important;
	gap: 18px;
}

body.olio .olio-hero--home h1.elementor-heading-title {
	font-size: var(--olio-fs-hero);
	line-height: 0.98;
	letter-spacing: -0.018em;
	max-width: 14ch;
}

body.olio .olio-hero--home h1 em {
	font-style: italic;
	font-weight: 300;
	color: var(--olio-marigold-soft);
}

body.olio .olio-hero--home .elementor-widget-text-editor p {
	max-width: 46ch;
}

body.olio .olio-hero--home .e-con:has(> .elementor-widget-button) {
	--padding-top: 10px;
	gap: 12px;
}

/* Inner-page heroes (tour, destination). */
body.olio [data-elementor-type] > .e-con.olio-hero--page {
	min-height: clamp(460px, 72vh, 760px) !important;
	--min-height: clamp(460px, 72vh, 760px);
	--padding-top: 28px;
	--padding-bottom: clamp(44px, 7vh, 80px);
}

body.olio .olio-hero--page > .e-con-inner {
	justify-content: space-between;
	height: 100%;
	gap: 14px;
}

body.olio .olio-hero--page .elementor-widget-shortcode:has(.olio-breadcrumbs) {
	margin-bottom: auto;
}

/* --- Trip finder: the search panel that bridges hero and page ----------- */

body.olio [data-elementor-type] > .e-con.olio-finderwrap {
	position: relative;
	z-index: 5;
	margin-top: calc(-1 * clamp(72px, 9vh, 104px));
	--padding-top: 0;
	--padding-bottom: 0;
}

/* Shortcode widgets in these bands span the shell rather than shrinking to
   their content inside a row container. */
body.olio :is(.olio-finderwrap, .olio-factband, .olio-silo-slot, .olio-jumpwrap) > :is(.e-con-inner, .e-con-inner > .e-con) {
	flex-direction: column !important;
}

body.olio :is(.olio-finderwrap, .olio-factband, .olio-jumpwrap) .elementor-widget-shortcode {
	width: 100% !important;
	max-width: 100%;
	flex: 1 1 100%;
}

body.olio .olio-finderwrap::before {
	display: none !important;
}

.olio-finder {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	align-items: end;
	gap: 14px 18px;
	padding: clamp(20px, 2.4vw, 30px);
	background: #FFFFFF;
	border: 1px solid var(--olio-hairline);
	border-radius: var(--olio-r);
	box-shadow: var(--olio-shadow-lg);
}

.olio-finder__title {
	grid-column: 1 / -1;
	margin: 0 0 2px;
	font: 500 12px/1.4 var(--olio-mono);
	letter-spacing: 0.099em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

.olio-finder__field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.olio-finder label {
	display: block;
}

.olio-finder select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23123D2E' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	cursor: pointer;
}

.olio-finder__submit {
	min-height: 52px;
	padding: 0 30px;
	font: 600 15px/1 var(--olio-text);
	letter-spacing: -0.005em;
	text-transform: none;
	color: var(--olio-ink);
	background: var(--olio-marigold);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color var(--olio-fast) var(--olio-ease);
	white-space: nowrap;
}

.olio-finder__submit:hover,
.olio-finder__submit:focus-visible {
	background: var(--olio-marigold-hi);
	color: var(--olio-ink);
}

@media (max-width: 900px) {
	.olio-finder {
		grid-template-columns: 1fr 1fr;
	}

	.olio-finder__submit {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.olio-finder {
		grid-template-columns: 1fr;
	}
}

/* --- Fact strip ---------------------------------------------------------- */

.olio-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-facts li {
	margin: 0;
	padding: 6px clamp(18px, 2.4vw, 36px);
	border-left: 1px solid var(--olio-hairline);
}

.olio-facts li:first-child {
	padding-left: 0;
	border-left: 0;
}

.olio-facts b {
	display: block;
	font-family: var(--olio-head);
	font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3.25rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--olio-forest);
	font-variant-numeric: lining-nums;
}

.olio-facts span {
	display: block;
	margin-top: 10px;
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--olio-muted);
	max-width: 22ch;
}

@media (max-width: 767px) {
	.olio-facts {
		grid-template-columns: 1fr 1fr;
		gap: 26px 0;
	}

	.olio-facts li:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}
}

body.olio .olio-factband {
	--padding-top: clamp(56px, 6vw, 88px) !important;
	--padding-bottom: clamp(48px, 5vw, 72px) !important;
}

body.olio .olio-factband::before {
	display: none !important;
}

/* --- Section header: eyebrow, heading, lead, and a link on the right ---- */

body.olio .olio-sechead {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 14px 40px;
	margin-bottom: clamp(32px, 4vw, 56px);
	--padding-top: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
}

body.olio .olio-sechead > * {
	grid-column: 1;
	margin: 0;
}

body.olio .olio-sechead > .elementor-widget-button,
body.olio .olio-sechead > .olio-sechead__link {
	grid-column: 2;
	grid-row: 1 / span 3;
	align-self: end;
}

@media (max-width: 767px) {
	body.olio .olio-sechead {
		grid-template-columns: 1fr;
	}

	body.olio .olio-sechead > .elementor-widget-button,
	body.olio .olio-sechead > .olio-sechead__link {
		grid-column: 1;
		grid-row: auto;
	}
}

/* --- Destination mosaic ------------------------------------------------- */

@media (min-width: 900px) {
	body.olio .olio-mosaic .elementor-loop-container {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		grid-auto-rows: 300px !important;
		gap: 20px !important;
	}

	body.olio .olio-mosaic .elementor-loop-container > div.e-loop-item {
		min-height: 0;
		height: 100%;
	}

	body.olio .olio-mosaic .elementor-loop-container > div.e-loop-item:nth-of-type(1) {
		grid-column: span 2;
		grid-row: span 2;
	}

	body.olio .olio-mosaic .olio-destcard {
		min-height: 0;
	}

	body.olio .olio-mosaic .elementor-loop-container > div.e-loop-item:not(:nth-of-type(1)) .elementor-widget-theme-post-excerpt {
		display: none;
	}

	body.olio .olio-mosaic .elementor-loop-container > div.e-loop-item:nth-of-type(1) .olio-destcard__body {
		--padding-left: clamp(28px, 3vw, 44px);
		--padding-right: clamp(28px, 3vw, 44px);
		--padding-bottom: clamp(28px, 3vw, 40px);
	}

	body.olio .olio-mosaic .elementor-loop-container > div.e-loop-item:nth-of-type(1) .olio-destcard__body :is(h2, h3).elementor-heading-title {
		font-size: clamp(2.5rem, 1.8rem + 2vw, 3.75rem);
		letter-spacing: -0.02em;
	}
}

/* --- Tour package grid: no index badges, generous cards ----------------- */

body.olio .olio-packages .e-loop-item::before {
	content: none !important;
}

/* --- Value propositions (dark band) ------------------------------------- */

@media (min-width: 1000px) {
	body.olio .olio-valueprops > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		grid-template-rows: auto auto 1fr;
		gap: 0 clamp(48px, 6vw, 110px);
		align-items: start;
	}

	/* Eyebrow and statement stack in the left column; the four points take
	   the right column for the full height of the band. */
	body.olio .olio-valueprops > .e-con-inner > .elementor-widget-heading {
		grid-column: 1;
		align-self: start;
	}

	body.olio .olio-valueprops > .e-con-inner > .elementor-widget-heading:has(h2) {
		position: sticky;
		top: calc(var(--olio-header-h) + 48px);
		margin-top: 10px;
	}

	body.olio .olio-valueprops > .e-con-inner > .e-con {
		grid-column: 2;
		grid-row: 1 / span 3;
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: clamp(36px, 4vw, 56px) clamp(32px, 4vw, 56px);
		--padding-top: 0;
		--padding-left: 0;
		--padding-right: 0;
		--padding-bottom: 0;
	}
}

body.olio .olio-valueprops > .e-con-inner > .elementor-widget-heading h2.elementor-heading-title {
	color: #FFFFFF;
	max-width: 13ch;
}

body.olio .olio-valueprops .elementor-widget-icon-box {
	padding-top: 24px;
	border-top: 1px solid var(--olio-on-dark-line);
	width: auto !important;
}

body.olio .olio-valueprops .elementor-icon-box-wrapper {
	text-align: left !important;
}

body.olio .olio-valueprops .elementor-icon-box-icon {
	margin-bottom: 18px !important;
}

body.olio .olio-valueprops .elementor-icon-box-icon .elementor-icon {
	font-size: 26px;
	color: var(--olio-sandtext) !important;
	fill: var(--olio-sandtext) !important;
	border: 0;
}

body.olio .olio-valueprops .elementor-icon-box-icon svg {
	fill: var(--olio-sandtext) !important;
	width: 26px;
	height: 26px;
}

body.olio .olio-valueprops .elementor-icon-box-title,
body.olio .olio-valueprops .elementor-icon-box-title :is(span, a) {
	font-family: var(--olio-head);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 600;
	line-height: 1.2;
	color: #FFFFFF;
	margin: 0 0 10px;
}

body.olio .olio-valueprops .elementor-icon-box-description {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--olio-on-dark-mute) !important;
}

/* --- Trip styles (theme tiles) ------------------------------------------ */

.olio-theme-tiles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 0;
	padding: 1px;
	list-style: none;
	background: var(--olio-hairline);
}

@media (max-width: 1024px) {
	.olio-theme-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
	.olio-theme-tiles { grid-template-columns: 1fr; }
}

.olio-theme-tile {
	margin: 0;
	background: var(--olio-surface);
	border: 0 !important;
}

body.olio .olio-theme-tile a {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	height: 100%;
	min-height: 150px;
	padding: 26px 26px 24px;
	background: var(--olio-surface);
	color: var(--olio-ink);
	text-decoration: none;
	transition: background-color 300ms var(--olio-ease), color 300ms var(--olio-ease);
}

body.olio .olio-theme-tile a::after {
	content: "";
	position: absolute;
	right: 26px;
	bottom: 30px;
	width: 8px;
	height: 8px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.5;
	transition: transform var(--olio-fast) var(--olio-ease), opacity var(--olio-fast) var(--olio-ease);
}

body.olio .olio-theme-tile a:hover {
	background: var(--olio-forest);
	color: #FFFFFF;
}

body.olio .olio-theme-tile a:hover::after {
	opacity: 1;
	transform: translateX(4px) rotate(45deg);
}

body.olio .olio-theme-tile__name {
	font-family: var(--olio-head);
	font-size: clamp(1.25rem, 1.12rem + 0.45vw, 1.5rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: inherit;
}

body.olio .olio-theme-tile__count {
	font: 500 11px/1.3 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

body.olio .olio-theme-tile a:hover .olio-theme-tile__count {
	color: var(--olio-sandtext);
}

/* --- How it works -------------------------------------------------------- */

body.olio .olio-steps > .e-con-inner > .e-con,
body.olio .olio-steps > .e-con {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 44px);
	counter-reset: olio-step;
	--padding-top: 0;
	--padding-left: 0;
	--padding-right: 0;
	--padding-bottom: 0;
}

@media (max-width: 900px) {
	body.olio .olio-steps > .e-con-inner > .e-con,
	body.olio .olio-steps > .e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	body.olio .olio-steps > .e-con-inner > .e-con,
	body.olio .olio-steps > .e-con { grid-template-columns: 1fr; }
}

body.olio .olio-steps .elementor-widget-icon-box {
	position: relative;
	counter-increment: olio-step;
	padding-top: 28px;
	border-top: 1px solid var(--olio-hairline-str);
	width: auto !important;
}

body.olio .olio-steps .elementor-widget-icon-box::before {
	content: counter(olio-step, decimal-leading-zero);
	display: block;
	margin-bottom: 22px;
	font: 500 13px/1 var(--olio-mono);
	letter-spacing: 0.1em;
	color: var(--olio-leaf-2);
}

body.olio .olio-steps .elementor-icon-box-icon {
	display: none;
}

body.olio .olio-steps .elementor-icon-box-wrapper,
body.olio .olio-steps :is(.elementor-icon-box-title, .elementor-icon-box-description) {
	text-align: left !important;
}

body.olio .olio-steps .elementor-icon-box-title,
body.olio .olio-steps .elementor-icon-box-title :is(span, a) {
	font-family: var(--olio-head);
	font-size: clamp(1.1875rem, 1.1rem + 0.35vw, 1.375rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--olio-forest);
	margin: 0 0 8px;
}

body.olio .olio-steps .elementor-icon-box-description {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--olio-muted);
	max-width: 34ch;
}

/* --- FAQ ----------------------------------------------------------------- */

@media (min-width: 1000px) {
	body.olio .olio-faq > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		gap: clamp(40px, 6vw, 110px);
		align-items: start;
	}

	body.olio .olio-faq > .e-con-inner > :not(.elementor-widget-accordion):not(.elementor-widget-n-accordion) {
		grid-column: 1;
		align-self: start;
	}

	body.olio .olio-faq > .e-con-inner > :is(.elementor-widget-accordion, .elementor-widget-n-accordion) {
		grid-column: 2;
		grid-row: 1 / span 5;
	}

	body.olio .olio-faq > .e-con-inner {
		grid-template-rows: auto auto auto auto 1fr;
		row-gap: 18px !important;
	}
}

body.olio .elementor-widget-accordion {
	width: 100%;
	max-width: 900px;
}

body.olio .elementor-accordion {
	border-top: 1px solid var(--olio-hairline-str);
}

body.olio .elementor-accordion .elementor-accordion-item {
	border: 0 !important;
	border-bottom: 1px solid var(--olio-hairline-str) !important;
}

body.olio .elementor-accordion .elementor-tab-title {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 22px 48px 22px 0 !important;
	border: 0 !important;
	background: transparent !important;
	cursor: pointer;
}

body.olio .elementor-accordion .elementor-accordion-title,
body.olio .elementor-accordion .elementor-accordion-title:hover {
	font-family: var(--olio-head);
	font-size: clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.018em;
	color: var(--olio-ink) !important;
	text-decoration: none !important;
	border: 0 !important;
}

body.olio .elementor-accordion .elementor-tab-title:hover .elementor-accordion-title {
	color: var(--olio-leaf) !important;
}

body.olio .elementor-accordion .elementor-accordion-icon {
	position: absolute;
	right: 0;
	top: 50%;
	display: grid !important;
	place-items: center;
	width: 34px !important;
	height: 34px;
	margin: 0 !important;
	border-radius: 50%;
	background: var(--olio-mist);
	transform: translateY(-50%);
	color: var(--olio-ink) !important;
	transition: background-color 300ms var(--olio-ease);
}

body.olio .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
	background: var(--olio-marigold);
}

body.olio .elementor-accordion .elementor-accordion-icon :is(i, svg) {
	font-size: 12px;
	width: 12px;
	fill: currentColor;
}

body.olio .elementor-accordion .elementor-tab-content {
	padding: 0 56px 26px 0 !important;
	border: 0 !important;
	font-size: 16.5px;
	line-height: 1.7;
	color: var(--olio-muted);
	background: transparent;
}

body.olio .elementor-accordion .elementor-tab-content p {
	margin: 0 0 0.8em;
}

body.olio .elementor-accordion .elementor-tab-content p:last-child {
	margin-bottom: 0;
}

/* --- Popular searches ---------------------------------------------------- */

.olio-popular {
	margin: 0;
}

.olio-popular__title {
	margin: 0 0 22px;
	font: 500 12px/1.4 var(--olio-mono) !important;
	letter-spacing: 0.099em !important;
	text-transform: uppercase;
	color: var(--olio-terracotta-text) !important;
}

.olio-popular__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-popular__list li {
	margin: 0;
}

body.olio .olio-popular__list a {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 12px 20px;
	background: var(--olio-surface);
	border: 1px solid var(--olio-hairline);
	border-radius: 999px;
	color: var(--olio-ink);
	text-decoration: none;
	transition: border-color var(--olio-fast) var(--olio-ease), color var(--olio-fast) var(--olio-ease), background-color var(--olio-fast) var(--olio-ease);
}

body.olio .olio-popular__list a:hover {
	border-color: var(--olio-forest);
	color: var(--olio-forest);
}

.olio-popular__label {
	font-size: 15px;
	font-weight: 500;
}

.olio-popular__note {
	font: 500 12px/1 var(--olio-text);
	color: var(--olio-muted);
}

/* --- Closing call to action (photograph band) ---------------------------- */

body.olio .olio-cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-color: var(--olio-forest-deep) !important;
	--padding-top: clamp(96px, 12vw, 180px) !important;
	--padding-bottom: clamp(96px, 12vw, 180px) !important;
}

body.olio .olio-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(90deg, rgba(8, 24, 19, 0.86) 0%, rgba(8, 24, 19, 0.55) 55%, rgba(8, 24, 19, 0.25) 100%);
	pointer-events: none;
	transform: none !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

body.olio .olio-cta > .elementor-motion-effects-container {
	z-index: -1;
}

body.olio .olio-cta > .e-con-inner {
	position: relative;
	z-index: 1;
	align-items: flex-start !important;
	text-align: left;
}

body.olio .olio-cta :is(h2, .elementor-heading-title) {
	color: #FFFFFF !important;
	text-align: left !important;
}

body.olio .olio-cta h2.elementor-heading-title {
	max-width: 15ch;
}

body.olio .olio-cta .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.86);
	font-size: var(--olio-fs-lead);
	max-width: 46ch;
	text-align: left !important;
}

body.olio .olio-cta .e-con:has(> .elementor-widget-button) {
	gap: 12px;
	--padding-top: 12px;
	--padding-left: 0;
	--padding-right: 0;
}

/* --------------------------------------------------------------------------
   7. Tour pages
   -------------------------------------------------------------------------- */

/* Two columns: the trip on the left, the enquiry card on the right. */
@media (min-width: 1025px) {
	body.olio-tour .olio-tourbody > .e-con-inner,
	body.olio-destination .olio-tourbody > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
		gap: clamp(48px, 5vw, 96px);
		align-items: start;
	}

	body.olio .olio-tourbody > .e-con-inner > .e-con {
		width: auto !important;
		--width: auto;
		--padding-left: 0;
		--padding-right: 0;
		--padding-top: 0;
		--padding-bottom: 0;
	}

	body.olio .olio-sidebar {
		position: sticky;
		top: calc(var(--olio-header-h) + 76px);
	}
}

/* The body opens straight under the jump nav, not a full section below it. */
body.olio [data-elementor-type] > .e-con.olio-tourbody {
	--padding-top: clamp(40px, 4.5vw, 72px) !important;
}

body.olio [data-elementor-type] > .e-con.olio-tourbody::before {
	display: none !important;
}

/* Enquiry card. */
body.olio .olio-sidebar {
	background: var(--olio-surface) !important;
	border: 1px solid var(--olio-hairline) !important;
	border-radius: var(--olio-r);
	box-shadow: var(--olio-shadow);
	--padding-top: clamp(24px, 2.4vw, 34px) !important;
	--padding-bottom: clamp(24px, 2.4vw, 34px) !important;
	--padding-left: clamp(22px, 2.4vw, 32px) !important;
	--padding-right: clamp(22px, 2.4vw, 32px) !important;
	gap: 12px;
}

body.olio .olio-sidebar .olio-sidebar__price .elementor-heading-title,
body.olio .olio-sidebar > .elementor-widget-heading:first-child:not(.olio-eyebrow) .elementor-heading-title {
	font-family: var(--olio-head) !important;
	font-size: clamp(1.75rem, 1.5rem + 0.9vw, 2.375rem) !important;
	font-weight: 600 !important;
	line-height: 1.05;
	letter-spacing: -0.03em !important;
	text-transform: none !important;
	color: var(--olio-ink) !important;
}

body.olio-tour .olio-sidebar > .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--olio-muted);
	padding-bottom: 16px;
	border-bottom: 1px solid var(--olio-hairline);
	margin-bottom: 4px;
}

body.olio .olio-sidebar .elementor-form .elementor-field-group {
	margin-bottom: 12px;
}

body.olio .olio-sidebar .elementor-field-textual {
	min-height: 46px;
	font-size: 15px;
}

body.olio .olio-sidebar .elementor-icon-list-items {
	margin-top: 8px;
}

body.olio .olio-sidebar .elementor-icon-list-item {
	padding-block: 3px !important;
}

body.olio .olio-sidebar .elementor-icon-list-text {
	font-size: 13.5px;
	color: var(--olio-muted);
}

body.olio .olio-sidebar .elementor-icon-list-icon :is(i, svg) {
	color: var(--olio-forest) !important;
	fill: var(--olio-forest) !important;
	font-size: 12px;
	width: 12px;
}

/* Trip facts: a row of four at a glance. */
.olio-tripfacts {
	margin: 0 0 clamp(28px, 3vw, 40px);
	border: 1px solid var(--olio-hairline);
	border-radius: var(--olio-r);
	background: var(--olio-surface);
	overflow: hidden;
}

.olio-tripfacts__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 0;
}

.olio-tripfacts__row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 20px 22px;
	border-left: 1px solid var(--olio-hairline);
}

.olio-tripfacts__row:first-child {
	border-left: 0;
}

.olio-tripfacts__row dt {
	margin: 0;
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-muted);
}

.olio-tripfacts__row dd {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin: 0;
}

.olio-tripfacts__value {
	font-family: var(--olio-head);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--olio-ink);
}

.olio-tripfacts__note {
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--olio-muted);
}

@media (max-width: 600px) {
	.olio-tripfacts__list {
		grid-template-columns: 1fr 1fr;
	}

	.olio-tripfacts__row:nth-child(odd) {
		border-left: 0;
	}

	.olio-tripfacts__row:nth-child(n + 3) {
		border-top: 1px solid var(--olio-hairline);
	}
}

/* Route strip. */
.olio-route {
	margin: 0 0 clamp(36px, 4vw, 56px);
	padding: 0;
}

.olio-route__caption {
	margin-bottom: 20px;
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-muted);
}

.olio-route__list {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-route__stop {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	padding: 28px 16px 0 0;
}

.olio-route__stop::after {
	content: "";
	position: absolute;
	top: 6px;
	left: 14px;
	right: 0;
	height: 1px;
	background: repeating-linear-gradient(90deg, var(--olio-hairline-str) 0 6px, transparent 6px 11px);
}

.olio-route__stop.is-last::after {
	display: none;
}

.olio-route__marker {
	position: absolute;
	top: 0;
	left: 0;
	width: 13px;
	height: 13px;
	border: 1.5px solid var(--olio-forest);
	background: var(--olio-ground);
	border-radius: 50%;
}

.olio-route__stop.is-first .olio-route__marker {
	background: var(--olio-marigold);
	border-color: var(--olio-marigold);
}

.olio-route__stop.is-last .olio-route__marker {
	background: var(--olio-forest);
}

.olio-route__city {
	font-family: var(--olio-head);
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
	line-height: 1.25;
	color: var(--olio-ink);
}

.olio-route__country {
	font: 500 12px/1.4 var(--olio-text);
	color: var(--olio-muted);
}

@media (max-width: 700px) {
	.olio-route__list {
		flex-direction: column;
	}

	.olio-route__stop {
		flex: none;
		padding: 0 0 22px 28px;
	}

	.olio-route__stop::after {
		top: 14px;
		bottom: -2px;
		left: 6px;
		right: auto;
		width: 1px;
		height: auto;
		background: repeating-linear-gradient(180deg, var(--olio-hairline-str) 0 6px, transparent 6px 11px);
	}

	.olio-route__marker {
		top: 4px;
	}
}

/* Tour copy. */
body.olio-tour .elementor-widget-theme-post-content,
body.olio-destination .elementor-widget-theme-post-content {
	font-size: 17px;
	line-height: 1.75;
	counter-reset: olio-day;
}

body.olio-tour .elementor-widget-theme-post-content > h2,
body.olio-destination .elementor-widget-theme-post-content > h2 {
	margin: clamp(52px, 6vw, 80px) 0 20px;
	font-size: clamp(1.875rem, 1.4rem + 1.6vw, 2.875rem);
	line-height: 1.04;
	letter-spacing: -0.034em;
	color: var(--olio-ink);
}

body.olio-tour .elementor-widget-theme-post-content > h2:first-child,
body.olio-destination .elementor-widget-theme-post-content > h2:first-child {
	margin-top: 0;
}

body.olio-tour .elementor-widget-theme-post-content > h2#section-overview + p {
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	color: var(--olio-ink);
}

body.olio :is(.olio-tour, .olio-destination) .elementor-widget-theme-post-content a:not(.elementor-button) {
	color: var(--olio-forest);
	text-decoration: underline;
	text-decoration-color: var(--olio-hairline-str);
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

body.olio :is(.olio-tour, .olio-destination) .elementor-widget-theme-post-content a:not(.elementor-button):hover {
	color: var(--olio-terracotta);
	text-decoration-color: currentColor;
}

/* Highlight and inclusion lists: two columns with a check. */
body.olio-tour .elementor-widget-theme-post-content > ul,
body.olio-destination .elementor-widget-theme-post-content > ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 14px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.olio-tour .elementor-widget-theme-post-content > ul > li,
body.olio-destination .elementor-widget-theme-post-content > ul > li {
	position: relative;
	margin: 0;
	padding: 0 0 0 32px;
	line-height: 1.55;
}

body.olio-tour .elementor-widget-theme-post-content > ul > li::before,
body.olio-destination .elementor-widget-theme-post-content > ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(18, 61, 46, 0.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.2l2.6 2.4L9 1' fill='none' stroke='%23123D2E' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center;
}

/* Exclusions get a cross in terracotta. */
body.olio-tour .elementor-widget-theme-post-content > h2#section-whats-not-included + ul > li::before {
	background: rgba(91, 105, 99, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath d='M1 1l6 6M7 1L1 7' fill='none' stroke='%235B6963' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat center;
}

/* Itinerary: a timeline of days. */
.olio-day-controls {
	display: flex;
	gap: 12px;
	margin: 0 0 8px;
}

.olio-day-controls__btn[hidden] {
	display: none;
}

body.olio .olio-day-controls .olio-day-controls__btn {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0 0 4px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--olio-hairline-str);
	border-radius: 0;
	font: 600 11.5px/1.4 var(--olio-text);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--olio-muted);
	cursor: pointer;
}

body.olio .olio-day-controls .olio-day-controls__btn:hover {
	color: var(--olio-forest);
	border-bottom-color: currentColor;
	background: transparent;
}

details.olio-day {
	position: relative;
	margin: 0;
	padding: 0 0 0 64px;
	border: 0;
}

details.olio-day::before {
	content: "";
	position: absolute;
	left: 21px;
	top: 44px;
	bottom: -4px;
	width: 1px;
	background: var(--olio-hairline-str);
}

details.olio-day:last-of-type::before {
	display: none;
}

details.olio-day > .olio-day__summary {
	position: relative;
	display: block;
	padding: 22px 40px 14px 0;
	list-style: none;
	cursor: pointer;
	counter-increment: olio-day;
}

details.olio-day > .olio-day__summary::-webkit-details-marker {
	display: none;
}

details.olio-day > .olio-day__summary::before {
	content: counter(olio-day);
	position: absolute;
	left: -64px;
	top: 18px;
	display: grid;
	place-items: center;
	width: 43px;
	height: 43px;
	border-radius: 50%;
	background: var(--olio-surface);
	border: 1px solid var(--olio-hairline-str);
	font: 600 18px/1 var(--olio-head);
	color: var(--olio-forest);
	transition: background-color var(--olio-fast) var(--olio-ease), color var(--olio-fast) var(--olio-ease), border-color var(--olio-fast) var(--olio-ease);
}

details.olio-day[open] > .olio-day__summary::before {
	background: var(--olio-marigold);
	border-color: var(--olio-marigold);
	color: var(--olio-ink);
}

details.olio-day > .olio-day__summary::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 34px;
	width: 9px;
	height: 9px;
	border-right: 1.5px solid var(--olio-muted);
	border-bottom: 1.5px solid var(--olio-muted);
	transform: rotate(45deg);
	transition: transform var(--olio-fast) var(--olio-ease);
}

details.olio-day[open] > .olio-day__summary::after {
	transform: rotate(-135deg);
	top: 38px;
}

body.olio details.olio-day > .olio-day__summary h3 {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--olio-head);
	font-size: clamp(1.25rem, 1.1rem + 0.55vw, 1.5rem);
	font-weight: 600;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--olio-ink);
}

body.olio details.olio-day > .olio-day__summary h3::before {
	content: "Day " counter(olio-day);
	display: block;
	position: static;
	width: auto;
	margin-bottom: 4px;
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

details.olio-day > .olio-day__body {
	padding: 0 0 26px;
	border-bottom: 1px solid var(--olio-hairline);
}

details.olio-day > .olio-day__body p {
	margin: 0;
	color: var(--olio-muted);
}

.olio-daystops {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 12px !important;
	padding: 0 !important;
	list-style: none;
}

body.olio .olio-daystops li {
	margin: 0;
	padding: 6px 11px !important;
	border-radius: 999px;
	font: 500 10.5px/1 var(--olio-mono);
	letter-spacing: 0.062em;
	text-transform: uppercase;
	color: var(--olio-forest);
	background: rgba(18, 61, 46, 0.06);
	border: 1px solid rgba(18, 61, 46, 0.1);
}

body.olio .olio-daystops li::before {
	content: none !important;
	display: none !important;
}

/* Gallery: one large frame and a column of three. */
body.olio .elementor-widget-theme-post-content .gallery {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: clamp(150px, 15vw, 210px);
	gap: 10px;
	margin: 0 !important;
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-item {
	position: relative;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: var(--olio-r-sm);
	background: var(--olio-forest-deep);
	isolation: isolate;
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-item:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-item:nth-child(4) {
	grid-column: span 3;
}

@media (min-width: 700px) {
	body.olio .elementor-widget-theme-post-content .gallery .gallery-item:nth-child(4) {
		grid-column: span 1;
	}

	body.olio .elementor-widget-theme-post-content .gallery {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	body.olio .elementor-widget-theme-post-content .gallery .gallery-item:first-child {
		grid-column: span 2;
		grid-row: span 2;
	}

	body.olio .elementor-widget-theme-post-content .gallery .gallery-item:nth-child(2) {
		grid-column: span 2;
	}
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-icon,
body.olio .elementor-widget-theme-post-content .gallery .gallery-icon a {
	display: block;
	height: 100%;
}

body.olio .elementor-widget-theme-post-content .gallery img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	border: 0 !important;
	transition: transform 1.2s var(--olio-ease), opacity 400ms;
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-item:hover img {
	transform: scale(1.05);
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 36px 14px 12px;
	background: linear-gradient(to top, rgba(8, 24, 19, 0.78), rgba(8, 24, 19, 0));
	font: 500 13px/1.4 var(--olio-text);
	color: #FFFFFF;
	text-align: left;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 300ms var(--olio-ease), transform 300ms var(--olio-ease);
	pointer-events: none;
	max-width: none;
}

body.olio .elementor-widget-theme-post-content .gallery .gallery-item:hover .gallery-caption,
body.olio .elementor-widget-theme-post-content .gallery .gallery-item:focus-within .gallery-caption {
	opacity: 1;
	transform: none;
}

@media (hover: none) {
	body.olio .elementor-widget-theme-post-content .gallery .gallery-caption {
		opacity: 1;
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   8. Destination pages
   -------------------------------------------------------------------------- */

body.olio-destination .elementor-widget-theme-post-content > h2 + p {
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	color: var(--olio-ink);
}

body.olio-destination .olio-sidebar .elementor-widget-heading:not(:first-child) .elementor-heading-title {
	font-size: 15px;
	line-height: 1.6;
	color: var(--olio-muted);
}

body.olio-destination .olio-sidebar h3.elementor-heading-title {
	margin-top: 10px;
	padding-top: 16px;
	border-top: 1px solid var(--olio-hairline);
	font: 500 11px/1.4 var(--olio-mono) !important;
	letter-spacing: 0.087em !important;
	text-transform: uppercase;
	color: var(--olio-terracotta-text) !important;
}

body.olio-destination .olio-sidebar .elementor-widget-button .elementor-button {
	width: 100%;
	margin-top: 10px;
}

/* --- About page ---------------------------------------------------------- */

/* The photograph beside "Our story" is a container background. */
body.olio .elementor-element-q100014 {
	border-radius: var(--olio-r);
	overflow: hidden;
	min-height: 320px;
}

/* --- Contact page -------------------------------------------------------- */

@media (min-width: 1025px) {
	body.olio .olio-contactbody > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr);
		gap: clamp(40px, 5vw, 88px);
		align-items: start;
	}

	body.olio .olio-contactbody > .e-con-inner > .e-con {
		width: auto !important;
		--width: auto;
	}
}

body.olio .olio-contactform {
	background: var(--olio-surface) !important;
	border: 1px solid var(--olio-hairline) !important;
	border-radius: var(--olio-r);
	box-shadow: var(--olio-shadow);
	--padding-top: clamp(26px, 3vw, 44px) !important;
	--padding-bottom: clamp(26px, 3vw, 44px) !important;
	--padding-left: clamp(22px, 3vw, 44px) !important;
	--padding-right: clamp(22px, 3vw, 44px) !important;
}

body.olio .olio-contactform h2.elementor-heading-title,
body.olio .olio-contactbody h2.elementor-heading-title {
	font-size: clamp(1.625rem, 1.35rem + 1vw, 2.25rem) !important;
	max-width: none !important;
	margin-bottom: 8px !important;
}

body.olio .olio-steps-list {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	counter-reset: olio-next;
}

body.olio .olio-steps-list li {
	position: relative;
	margin: 0;
	padding: 0 0 22px 52px;
	counter-increment: olio-next;
	font-size: 16px;
	line-height: 1.6;
	color: var(--olio-muted);
}

body.olio .olio-steps-list li::before {
	content: counter(olio-next);
	position: absolute;
	left: 0;
	top: -2px;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--olio-hairline-str);
	font: 600 16px/1 var(--olio-head);
	color: var(--olio-forest);
}

body.olio .olio-steps-list li strong {
	display: block;
	font-weight: 600;
	color: var(--olio-ink);
}

/* --------------------------------------------------------------------------
   9. Listing pages and filters
   -------------------------------------------------------------------------- */

/* Page header: a typographic opening on the page ground. */
body.olio .olio-pagehead {
	--padding-top: clamp(48px, 7vw, 104px) !important;
	--padding-bottom: clamp(36px, 4.5vw, 64px) !important;
	background: transparent !important;
}

body.olio .olio-pagehead::before {
	display: none !important;
}

body.olio .olio-pagehead > .e-con-inner {
	align-items: flex-start !important;
	text-align: left;
}

body.olio .olio-pagehead :is(h1, .elementor-heading-title) {
	text-align: left !important;
}

body.olio .olio-pagehead h1.elementor-heading-title {
	font-family: var(--olio-head);
	font-size: var(--olio-fs-h1);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.04em;
	color: var(--olio-ink) !important;
	max-width: 16ch;
}

/* Listing pages open on a poster: the page name in Panchang. The longest
   single word any of them holds is INTERNATIONAL (12.7em), so 7vw keeps it
   inside the shell on a phone. */
body.olio .olio-pagehead--poster h1.elementor-heading-title {
	font: 800 clamp(1.5rem, 7vw, 6.5rem)/0.94 var(--olio-display);
	letter-spacing: -0.012em;
	text-transform: uppercase;
	max-width: none;
}

body.olio .olio-pagehead .elementor-widget-text-editor p {
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	color: var(--olio-muted) !important;
	max-width: 58ch;
	text-align: left !important;
}

body.olio .olio-pagehead + .e-con.e-parent {
	--padding-top: 0 !important;
}

body.olio .olio-pagehead + .e-con.e-parent::before {
	display: none !important;
}

body.olio .olio-pagehead .e-con:has(> .elementor-widget-button) {
	justify-content: flex-start !important;
	gap: 12px;
	--padding-top: 16px;
	--padding-left: 0;
	--padding-right: 0;
}

/* Region archives: destination tiles above the tour grid. */
.olio-dtiles-wrap {
	margin: 0 0 clamp(40px, 5vw, 64px);
}

.olio-dtiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-dtile {
	margin: 0;
}

body.olio .olio-dtile a {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: var(--olio-r);
	overflow: hidden;
	background: var(--olio-forest-deep);
	color: #FFFFFF;
	text-decoration: none;
	isolation: isolate;
}

.olio-dtile__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .olio-dtile a:hover .olio-dtile__img {
	transform: scale(1.05);
}

body.olio .olio-dtile a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 24, 19, 0.88) 0%, rgba(8, 24, 19, 0.3) 45%, rgba(8, 24, 19, 0) 70%);
}

.olio-dtile__body {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 22px 24px;
}

.olio-dtile__eyebrow {
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.099em;
	text-transform: uppercase;
	color: var(--olio-sandtext);
}

.olio-dtile__name {
	font: 800 clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem)/1.05 var(--olio-display);
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: #FFFFFF;
}

.olio-dtile__meta {
	font: 500 13.5px/1.4 var(--olio-text);
	color: rgba(255, 255, 255, 0.85);
}

/* Grid heading. */
body.olio .olio-gridheading {
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--olio-hairline);
	font-family: var(--olio-mono) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.087em !important;
	line-height: 1.4 !important;
	text-transform: uppercase;
	color: var(--olio-muted) !important;
	max-width: none !important;
}

/* Filter bar. */
.olio-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 22px clamp(24px, 3.5vw, 48px);
	margin: 0 0 clamp(32px, 3.4vw, 48px);
	padding: clamp(20px, 2.2vw, 28px);
	background: var(--olio-mist);
	border: 0;
	border-radius: var(--olio-r);
}

.olio-filter[hidden] {
	display: none;
}

/* Without JavaScript the filter cannot work, so it is not drawn. With it,
   it is there from the first paint and never shifts the grid. */
html:not(.olio-js) body.olio .olio-filter {
	display: none;
}

.olio-filter__group {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.olio-filter__legend {
	margin-bottom: 12px;
	padding: 0;
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-muted);
}

.olio-filter__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.olio .olio-filter .olio-filter__pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	font: 500 14px/1 var(--olio-text);
	letter-spacing: 0;
	text-transform: none;
	color: var(--olio-ink);
	background: #FFFFFF;
	border: 1px solid var(--olio-hairline-str);
	border-radius: 999px;
	box-shadow: none;
	cursor: pointer;
	transition: background-color var(--olio-fast) var(--olio-ease), border-color var(--olio-fast) var(--olio-ease), color var(--olio-fast) var(--olio-ease);
}

body.olio .olio-filter .olio-filter__pill:hover {
	background: #FFFFFF;
	border-color: var(--olio-forest);
	color: var(--olio-forest);
}

body.olio .olio-filter .olio-filter__pill.is-active,
body.olio .olio-filter .olio-filter__pill.is-active:hover {
	background: var(--olio-forest);
	border-color: var(--olio-forest);
	color: #FFFFFF;
}

.olio-filter__count {
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	color: var(--olio-muted);
}

body.olio .olio-filter .olio-filter__pill.is-active .olio-filter__count {
	color: inherit;
	opacity: 0.75;
}

.olio-filter__status {
	flex: 1 1 100%;
	margin: 0;
	padding-top: 16px;
	border-top: 1px solid var(--olio-hairline);
	font: 500 14px/1.5 var(--olio-text);
	color: var(--olio-muted);
}

body.olio .olio-filter .olio-filter__reset {
	display: inline;
	min-height: 0;
	margin-left: 14px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	font: 600 14px/1.5 var(--olio-text);
	letter-spacing: 0;
	text-transform: none;
	color: var(--olio-forest);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

body.olio .olio-filter .olio-filter__reset:hover {
	background: none;
	color: var(--olio-terracotta);
}

body.olio .olio-filter .olio-filter__reset[hidden] {
	display: none;
}

body.olio .olio-filter__empty a {
	color: var(--olio-forest);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.olio-filter__empty {
	grid-column: 1 / -1;
	padding: 48px 24px;
	text-align: center;
	background: var(--olio-surface);
	border: 1px dashed var(--olio-hairline-str);
	border-radius: var(--olio-r);
	color: var(--olio-muted);
}

/* Elementor's taxonomy filter (blog categories). */
body.olio .elementor-widget-taxonomy-filter .e-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 26px;
}

body.olio .elementor-widget-taxonomy-filter .e-filter-item {
	min-height: 40px;
	padding: 0 16px;
	font: 500 14px/1 var(--olio-text);
	letter-spacing: 0;
	text-transform: none;
	color: var(--olio-ink);
	background: transparent;
	border: 1px solid var(--olio-hairline-str);
	border-radius: 999px;
	cursor: pointer;
	transition: background-color var(--olio-fast) var(--olio-ease), border-color var(--olio-fast) var(--olio-ease), color var(--olio-fast) var(--olio-ease);
}

body.olio .elementor-widget-taxonomy-filter .e-filter-item:hover {
	border-color: var(--olio-forest);
	color: var(--olio-forest);
}

body.olio .elementor-widget-taxonomy-filter .e-filter-item[aria-pressed="true"] {
	background: var(--olio-forest);
	border-color: var(--olio-forest);
	color: #FFFFFF;
}

/* Pagination. */
body.olio .elementor-pagination,
body.olio .e-load-more-anchor + .elementor-button-wrapper,
body.olio nav.pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: clamp(32px, 4vw, 48px);
	font: 500 15px/1 var(--olio-text);
}

body.olio .elementor-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-radius: 999px;
	border: 1px solid var(--olio-hairline-str);
	color: var(--olio-ink);
	text-decoration: none;
}

body.olio .elementor-pagination .page-numbers.current,
body.olio .elementor-pagination a.page-numbers:hover {
	background: var(--olio-forest);
	border-color: var(--olio-forest);
	color: #FFFFFF;
}

/* --------------------------------------------------------------------------
   10. Articles, guides and documents
   -------------------------------------------------------------------------- */

/* Single article. */
body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:first-child {
	--padding-top: clamp(48px, 7vw, 100px);
	--padding-bottom: clamp(28px, 3vw, 40px);
}

body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:first-child > .e-con-inner {
	max-width: 900px;
	align-items: flex-start !important;
}

body.olio.single-post h1.elementor-heading-title {
	font-size: clamp(2.375rem, 1.6rem + 2.9vw, 4.25rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--olio-ink) !important;
	text-align: left !important;
	max-width: 20ch;
}

body.olio.single-post .elementor-widget-post-info .elementor-icon-list-text,
body.olio.single-post .elementor-widget-post-info .elementor-icon-list-text a {
	font-size: 14px;
	color: var(--olio-muted);
}

body.olio.single-post .elementor-widget-theme-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 8;
	object-fit: cover;
	border-radius: var(--olio-r);
}

body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:nth-child(2) {
	--padding-top: 0;
	--padding-bottom: 0;
}

body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:nth-child(2)::before,
body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:nth-child(3)::before {
	display: none;
}

body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:nth-child(3) {
	--padding-top: clamp(40px, 5vw, 72px);
}

body.olio.single-post [data-elementor-type="single-post"] > .e-con.e-parent:nth-child(3) > .e-con-inner {
	max-width: 760px;
}

body.olio .elementor-widget-theme-post-content {
	font-size: 18px;
	line-height: 1.75;
	color: var(--olio-ink);
}

body.olio.single-post .elementor-widget-theme-post-content > p:first-of-type {
	font-size: clamp(1.1875rem, 1.1rem + 0.35vw, 1.375rem);
	line-height: 1.6;
}

body.olio.single-post .elementor-widget-theme-post-content :is(h2, h3) {
	color: var(--olio-ink);
	letter-spacing: -0.028em;
}

body.olio.single-post .elementor-widget-theme-post-content h2 {
	margin: 2.2em 0 0.6em;
	font-size: clamp(1.625rem, 1.35rem + 1vw, 2.25rem);
	line-height: 1.15;
}

body.olio.single-post .elementor-widget-theme-post-content h3 {
	margin: 1.8em 0 0.5em;
	font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
	line-height: 1.25;
}

body.olio .elementor-widget-theme-post-content p,
body.olio .elementor-widget-theme-post-content li {
	margin-bottom: 1em;
}

body.olio.single-post .elementor-widget-theme-post-content :is(ul, ol) {
	padding-left: 1.2em;
}

body.olio.single-post .elementor-widget-theme-post-content li::marker {
	color: var(--olio-marigold);
}

body.olio .elementor-widget-theme-post-content blockquote {
	margin: 1.8em 0;
	padding: 4px 0 4px 24px;
	border-left: 3px solid var(--olio-marigold);
	font-family: var(--olio-head);
	font-size: 1.3em;
	font-style: normal;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: -0.015em;
	color: var(--olio-ink);
}

/* In-body links. */
body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) a:not(.elementor-button):not([class*="olio-"]) {
	color: var(--olio-forest);
	text-decoration: underline;
	text-decoration-color: var(--olio-hairline-str);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--olio-fast) var(--olio-ease), text-decoration-color var(--olio-fast) var(--olio-ease);
}

body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) a:not(.elementor-button):not([class*="olio-"]):hover {
	color: var(--olio-terracotta);
	text-decoration-color: currentColor;
}

/* Tables. */
body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	margin: 1.8em 0;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.55;
	background: var(--olio-surface);
	border: 1px solid var(--olio-hairline);
}

@media (min-width: 700px) {
	body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) table {
		display: table;
	}
}

body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) :is(th, td) {
	padding: 13px 16px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--olio-hairline);
}

body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) th {
	font: 500 11.5px/1.4 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: var(--olio-muted);
	background: var(--olio-ground);
}

body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) tr:last-child :is(th, td) {
	border-bottom: 0;
}

body.olio :is(body:not(.elementor-page) .entry-content, body:not(.elementor-page) .page-content, .elementor-widget-theme-post-content) tbody tr:nth-child(even) td {
	background: rgba(238, 242, 236, 0.6);
}

/* Plain page template: guides hub, intersection and policy pages. */
body.olio:not(.elementor-page) .page-header {
	margin: 0;
	padding: clamp(40px, 6vw, 88px) 0 clamp(20px, 3vw, 32px);
	border: 0;
	background: none;
}

body.olio:not(.elementor-page) .page-header .entry-title,
body.olio:not(.elementor-page) .page-header h1 {
	margin: 0;
	font-family: var(--olio-head);
	font-size: var(--olio-fs-h1);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.04em;
	color: var(--olio-ink);
	max-width: 18ch;
	text-align: left;
}

body.olio:not(.elementor-page) .page-content,
body.olio:not(.elementor-page) .entry-content {
	max-width: none;
	padding: 0;
	font-size: 17.5px;
	line-height: 1.75;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) > :is(p, ul, ol, h2, h3, h4, blockquote, table, .olio-callout, .olio-empty-state, hr, .olio-table) {
	max-width: 760px;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) > p:first-of-type,
body.olio .olio-lede {
	font-size: var(--olio-fs-lead);
	line-height: 1.6;
	color: var(--olio-ink);
	max-width: 62ch;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) h2 {
	margin: 2em 0 0.55em;
	font-size: clamp(1.625rem, 1.35rem + 1vw, 2.25rem);
	line-height: 1.1;
	letter-spacing: -0.03em;
	color: var(--olio-ink);
	max-width: 24ch;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) h3 {
	margin: 1.7em 0 0.45em;
	font-size: clamp(1.1875rem, 1.1rem + 0.3vw, 1.375rem);
	line-height: 1.3;
	letter-spacing: -0.02em;
	color: var(--olio-ink);
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) :is(p, li) {
	margin-bottom: 0.95em;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) :is(ul, ol) {
	padding-left: 1.2em;
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) li::marker {
	color: var(--olio-marigold);
}

body.olio:not(.elementor-page) :is(.page-content, .entry-content) hr {
	margin: 2.6em 0;
	border: 0;
	border-top: 1px solid var(--olio-hairline);
}

/* The FAQ page: each question opens a new block on a hairline. */
body.olio.page-id-1240 .page-content > h2,
body.olio .olio-faqdoc > h2 {
	margin: 0 !important;
	padding: 34px 0 10px;
	border-top: 1px solid var(--olio-hairline);
	font-size: clamp(1.3125rem, 1.2rem + 0.45vw, 1.625rem) !important;
	line-height: 1.3;
	max-width: 36ch !important;
}

body.olio.page-id-1240 .page-content > h2 + p {
	margin-top: 0;
}

/* Document pages (policies, payments, GST and TCS, FAQ). */
body.olio-page-doc .page-content h2:first-child {
	margin-top: 0;
}

body.olio .olio-fineprint {
	font-size: 14px;
	line-height: 1.65;
	color: var(--olio-muted);
}

.olio-callout {
	margin: 1.8em 0;
	padding: 24px 26px;
	background: var(--olio-mist);
	border: 0;
	border-left: 3px solid var(--olio-marigold);
	border-radius: 0 var(--olio-r-sm) var(--olio-r-sm) 0;
}

.olio-callout > :last-child {
	margin-bottom: 0;
}

.olio-callout h3 {
	margin-top: 0 !important;
}

.olio-empty-state {
	margin: 1.4em 0;
	padding: 22px 24px;
	background: var(--olio-surface);
	border: 1px dashed var(--olio-hairline-str);
	font-size: 16px;
	line-height: 1.65;
	color: var(--olio-muted);
}

.olio-note {
	margin: 0 0 2em;
	padding: 18px 22px;
	background: #FFF8E5;
	border: 1px dashed #B08B2E;
}

.olio-note > :last-child {
	margin-bottom: 0;
}

.olio-note__label {
	margin: 0 0 0.5em !important;
	font: 500 11px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: #8A6A16;
}

.olio-tbc {
	display: inline-block;
	padding: 1px 7px;
	background: #FBE7C6;
	border-bottom: 2px solid #B08B2E;
	font: 500 12px/1.5 var(--olio-mono);
	letter-spacing: 0.037em;
	text-transform: uppercase;
	color: #6E5310;
	white-space: nowrap;
}

.olio-table {
	max-width: 100%;
	margin: 1.8em 0;
	overflow-x: auto;
	border: 1px solid var(--olio-hairline);
	background: var(--olio-surface);
}

.olio-table table {
	width: 100%;
	min-width: 520px;
	margin: 0 !important;
	border: 0 !important;
}

/* Reviews and people (render once real data exists). */
.olio-reviews {
	margin: 1.6em 0;
	padding: 0;
	list-style: none;
	max-width: 760px;
}

.olio-review {
	margin: 0;
	padding: 28px 0;
	border-top: 1px solid var(--olio-hairline);
}

.olio-review__rating {
	margin: 0 0 10px !important;
	font: 500 11px/1 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-brass);
}

.olio-review__body {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	font: 600 20px/1.55 var(--olio-head);
	color: var(--olio-ink);
}

.olio-review__body p {
	margin: 0 !important;
	font: inherit;
}

.olio-review__who {
	margin: 0 0 2px !important;
	font: 500 15px/1.5 var(--olio-text);
}

.olio-review__who cite {
	font-style: normal;
}

.olio-review__trip,
.olio-review__source {
	margin: 0 !important;
	font: 400 13px/1.6 var(--olio-text);
	color: var(--olio-muted);
}

.olio-review-links {
	margin: 1.2em 0;
	padding: 0;
	list-style: none;
}

.olio-review-links li {
	margin: 0;
	padding: 14px 0;
	border-bottom: 1px solid var(--olio-hairline);
}

.olio-review-links__note {
	display: block;
	font-size: 13px;
	color: var(--olio-muted);
}

.olio-team {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: clamp(28px, 4vw, 48px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-team__member {
	margin: 0;
}

.olio-team__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin-bottom: 18px;
}

.olio-team__name {
	margin: 0 0 2px;
	font: 600 22px/1.25 var(--olio-head);
	color: var(--olio-forest);
}

.olio-team__role,
.olio-person__role {
	margin: 0 0 10px;
	font: 500 11.5px/1.4 var(--olio-mono);
	letter-spacing: 0.087em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

.olio-team__destinations,
.olio-person__destinations {
	margin: 0 0 10px;
	font: 500 14px/1.5 var(--olio-text);
	color: var(--olio-muted);
}

.olio-team__bio {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.65;
}

.olio-person__photo {
	display: block;
	width: 200px;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin-bottom: 20px;
}

.olio-credentials {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 500 13px/1.5 var(--olio-text);
	color: var(--olio-muted);
}

/* --------------------------------------------------------------------------
   11. Silo modules (related guides, sibling destinations, trip styles)
   -------------------------------------------------------------------------- */

/* Hub and intersection pages open up the plain template's heading. */
body.olio-silo-page {
	--page-title-display: block;
}

body.olio-silo-page h1.entry-title {
	display: block;
}

/* The template slot the modules sit in: a warm band, laid out as a grid. */
body.olio .olio-silo-slot {
	background: var(--olio-sand) !important;
	--padding-top: var(--olio-section-sm) !important;
	--padding-bottom: var(--olio-section-sm) !important;
}

body.olio .olio-silo-slot::before {
	display: none !important;
}

body.olio .olio-silo-slot:not(:has(.olio-silo-module, .olio-footer-silo)) {
	display: none;
}

/* In the footer the slot is a plain row on the footer ground. */
body.olio .elementor-location-footer .olio-silo-slot {
	background: transparent !important;
	--padding-top: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--padding-right: 0 !important;
}

body.olio .elementor-location-footer .olio-silo-slot > .e-con-inner {
	display: block !important;
}

body.olio .olio-silo-slot > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

body.olio .olio-silo-slot .elementor-widget-shortcode {
	width: auto !important;
	min-width: 0;
}

body.olio .olio-silo-slot .elementor-widget-shortcode:not(:has(.olio-silo-module, .olio-footer-silo)) {
	display: none;
}

body.olio .olio-silo-slot .elementor-shortcode {
	display: grid;
	gap: clamp(28px, 4vw, 48px);
}

.olio-silo-module {
	margin: 0;
	padding: 0;
	border: 0;
}

.olio-silo-module__title {
	margin: 0 0 18px !important;
	font-family: var(--olio-head);
	font-size: clamp(1.375rem, 1.2rem + 0.7vw, 1.875rem) !important;
	font-weight: 600;
	line-height: 1.15;
	color: var(--olio-forest);
	max-width: none !important;
}

.olio-silo-module__intro {
	margin: -6px 0 18px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--olio-muted);
	max-width: 60ch;
}

.olio-silo-links {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(22, 33, 30, 0.14);
}

.olio-silo-link {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(22, 33, 30, 0.14);
	background: transparent;
}

body.olio .olio-silo-link > a {
	position: relative;
	display: block;
	padding: 16px 32px 4px 0;
	font: 500 16.5px/1.4 var(--olio-text);
	color: var(--olio-ink);
	text-decoration: none;
	transition: color var(--olio-fast) var(--olio-ease);
}

body.olio .olio-silo-link > a::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 24px;
	width: 7px;
	height: 7px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.45;
	transition: transform var(--olio-fast) var(--olio-ease), opacity var(--olio-fast) var(--olio-ease);
}

body.olio .olio-silo-link > a:hover {
	color: var(--olio-terracotta);
}

body.olio .olio-silo-link > a:hover::after {
	opacity: 1;
	transform: translateX(3px) rotate(45deg);
}

.olio-silo-link__note {
	display: block;
	padding: 0 32px 16px 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--olio-muted);
}

.olio-silo-links--compact .olio-silo-link > a {
	padding-bottom: 2px;
}

.olio-silo-module__more {
	margin: 18px 0 0;
}

body.olio .olio-silo-module__more a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 28px;
	padding-bottom: 7px;
	font: 600 15px/1 var(--olio-text);
	letter-spacing: -0.005em;
	text-transform: none;
	color: var(--olio-ink);
	text-decoration: none;
	border: 0;
	box-shadow: inset 0 -2px 0 var(--olio-marigold);
}

body.olio .olio-silo-module__more a::after {
	content: "";
	width: 16px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 300ms var(--olio-ease);
}

body.olio .olio-silo-module__more a:hover {
	color: var(--olio-leaf);
	box-shadow: inset 0 -2px 0 var(--olio-leaf);
}

body.olio .olio-silo-module__more a:hover::after {
	transform: translateX(4px);
}

body.olio :is(.page-content, .entry-content) :is(ul.olio-silo-links, ul.olio-silo-cards, ul.olio-popular__list, ul.olio-dtiles, ul.olio-theme-tiles) {
	padding-left: 0 !important;
	margin-left: 0;
	list-style: none;
}

body.olio :is(.page-content, .entry-content) :is(.olio-silo-links, .olio-silo-cards) li::marker {
	content: none;
}

/* Tour cards rendered by the silo shortcodes on intersection pages. */
.olio-silo-cards {
	display: grid;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) {
	.olio-silo-cards {
		grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	}
}

.olio-silo-card {
	position: relative;
	margin: 0;
	padding: 26px 28px;
	background: var(--olio-surface);
	border: 1px solid var(--olio-hairline);
	border-radius: var(--olio-r);
	transition: border-color var(--olio-fast) var(--olio-ease), box-shadow 400ms var(--olio-ease);
}

.olio-silo-card:hover {
	border-color: var(--olio-hairline-str);
	box-shadow: var(--olio-shadow);
}

.olio-silo-card__title {
	margin: 0 0 8px !important;
	font: 600 24px/1.2 var(--olio-head) !important;
}

body.olio .olio-silo-card__title a {
	color: var(--olio-forest);
	text-decoration: none;
}

body.olio .olio-silo-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.olio-silo-card__meta {
	margin: 0 0 12px;
	font: 500 11px/1.45 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: var(--olio-terracotta-text);
}

.olio-silo-card__note {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--olio-muted);
}

.olio-silo-card__price {
	margin: 0 0 14px;
	font: 600 20px/1.3 var(--olio-head);
	color: var(--olio-ink);
}

.olio-silo-card__price span {
	display: block;
	font: 400 13px/1.4 var(--olio-text);
	color: var(--olio-muted);
}

.olio-silo-card__cta {
	margin: 0;
	font: 500 12px/1 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: var(--olio-forest);
}

body.olio .olio-silo-card__cta a {
	color: inherit;
	text-decoration: none;
}

/* Hub page modules on the plain template. */
body.olio:not(.elementor-page) .page-content .olio-silo-module {
	margin-block: clamp(40px, 5vw, 64px);
	padding-top: clamp(28px, 3vw, 36px);
	border-top: 1px solid var(--olio-hairline);
	max-width: 900px;
}

.olio-silo-hub {
	padding-block: var(--olio-section-sm);
}

.olio-silo-hub .olio-silo-module {
	max-width: var(--olio-container);
	margin-inline: auto;
	padding-inline: var(--olio-gutter);
}

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */

body.olio .elementor-location-footer > .e-con.e-parent {
	background-color: var(--olio-ink) !important;
	--padding-top: clamp(64px, 7vw, 104px);
	--padding-bottom: 28px;
	color: var(--olio-on-dark-mute);
}

body.olio .elementor-location-footer .e-con {
	background-color: transparent;
}

body.olio .elementor-location-footer .olio-darkchrome {
	background-color: var(--olio-ink) !important;
}

/* The wordmark, set as large as the shell, closes every page. */
body.olio .olio-footword {
	margin: clamp(28px, 4vw, 56px) 0 clamp(8px, 1vw, 16px);
	color: var(--olio-leaf-2);
	--olio-dot: var(--olio-marigold);
	line-height: 0;
}

body.olio .olio-footword svg {
	display: block;
	width: 100%;
	height: auto;
}

body.olio .elementor-location-footer .elementor-widget-shortcode:has(.olio-footword) {
	width: 100% !important;
	max-width: 100%;
}

body.olio .elementor-location-footer .olio-logo {
	color: #FFFFFF;
}

body.olio .elementor-location-footer .olio-logo svg {
	height: 30px;
}

body.olio .elementor-location-footer .elementor-widget-text-editor p {
	max-width: 36ch;
	font-size: 15px;
	line-height: 1.7;
	color: var(--olio-on-dark-mute);
}

body.olio .elementor-location-footer h3.elementor-heading-title,
body.olio .olio-footer-silo h3 {
	margin: 0 0 16px;
	font: 500 11.5px/1.4 var(--olio-mono) !important;
	letter-spacing: 0.099em !important;
	text-transform: uppercase;
	color: var(--olio-sandtext) !important;
}

body.olio .elementor-location-footer .elementor-nav-menu .elementor-item,
body.olio .olio-footer-silo a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 4px 0 !important;
	font: 400 15px/1.5 var(--olio-text) !important;
	color: rgba(255, 255, 255, 0.78) !important;
	text-decoration: none;
	transition: color var(--olio-fast) var(--olio-ease);
}

body.olio .elementor-location-footer .elementor-nav-menu .elementor-item:hover,
body.olio .elementor-location-footer .elementor-nav-menu .elementor-item.elementor-item-active,
body.olio .olio-footer-silo a:hover {
	color: #FFFFFF !important;
}

body.olio .elementor-location-footer .elementor-nav-menu .elementor-item::before,
body.olio .elementor-location-footer .elementor-nav-menu .elementor-item::after {
	display: none;
}

.olio-footer-silo {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 28px clamp(28px, 4vw, 64px);
	margin: 0;
	padding: 32px 0 0;
	border-top: 1px solid var(--olio-on-dark-line);
}

.olio-footer-silo ul {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.olio-footer-silo li {
	margin: 0;
}

/* Footer base line. */
body.olio .elementor-location-footer .e-con:last-child > .e-con-inner,
body.olio .olio-footer-base {
	border-top: 1px solid var(--olio-on-dark-line);
}

body.olio .elementor-location-footer :is(p, span) {
	color: var(--olio-on-dark-mute);
}

body.olio .elementor-location-footer a:not(.elementor-button) {
	color: rgba(255, 255, 255, 0.82);
}

body.olio .elementor-location-footer a:not(.elementor-button):hover {
	color: #FFFFFF;
}

body.olio .olio-footer-base p {
	margin: 0;
	font-size: 13.5px;
}

body.olio.olio-no-contact .olio-footer-contact {
	display: none !important;
}

.olio-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.olio-social li {
	margin: 0;
}

body.olio .olio-social__link {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	font: 500 11.5px/1.4 var(--olio-mono);
	letter-spacing: 0.074em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

body.olio .olio-social__link:hover {
	color: #FFFFFF;
	border-bottom-color: #FFFFFF;
}

body.olio .olio-wa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 28px;
	border-radius: 999px;
	background: var(--olio-marigold);
	color: var(--olio-ink) !important;
	font: 600 15px/1 var(--olio-text);
	text-decoration: none;
	transition: background-color var(--olio-fast) var(--olio-ease);
}

body.olio .olio-wa:hover {
	background: var(--olio-marigold-hi);
	color: var(--olio-ink) !important;
}

body.olio.olio-no-whatsapp .olio-needs-whatsapp {
	display: none !important;
}

body.olio.olio-no-social .elementor-widget-social-icons {
	display: none;
}

/* Regions that wait for a business fact. The olio-no-* flags come from
   olio-48-browse.php and olio-49-experience.php. */
body.olio.olio-no-contact .olio-needs-contact,
body.olio.olio-no-address .olio-needs-address {
	display: none !important;
}

/* Tour jump nav wrapper: sticks under the header for the length of the page. */
body.olio [data-elementor-type] > .e-con.olio-jumpwrap {
	position: sticky;
	top: var(--olio-header-h);
	z-index: 40;
	--padding-top: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--padding-right: 0 !important;
	padding: 0 !important;
	gap: 0;
}

body.admin-bar .olio-jumpwrap {
	top: calc(var(--olio-header-h) + 32px);
}

body.olio .olio-jumpwrap::before,
body.olio .olio-jumpwrap + .e-con::before {
	display: none !important;
}

body.olio .olio-jumpwrap .olio-jump {
	position: static;
}

/* --- Mobile enquiry bar (tour and destination pages) --------------------- */

.olio-mobilecta {
	display: none;
}

@media (max-width: 1024px) {
	.olio-mobilecta {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 12px var(--olio-gutter) calc(12px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, 0.97);
		border-top: 1px solid var(--olio-hairline);
		box-shadow: 0 -12px 30px -18px rgba(14, 28, 24, 0.4);
		transform: translateY(110%);
		transition: transform 350ms var(--olio-ease);
	}

	.olio-mobilecta[hidden] {
		display: none;
	}

	.olio-mobilecta.is-on {
		transform: none;
	}

	.olio-mobilecta__price {
		margin: 0;
		font: 500 12px/1.3 var(--olio-text);
		color: var(--olio-muted);
	}

	.olio-mobilecta__price b {
		display: block;
		font: 600 21px/1.1 var(--olio-head);
		letter-spacing: -0.02em;
		color: var(--olio-ink);
	}

	.olio-mobilecta__price span:last-child {
		display: none;
	}

	body.olio .olio-mobilecta__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		padding: 0 24px;
		border-radius: 999px;
		background: var(--olio-marigold);
		color: var(--olio-ink);
		font: 600 15px/1 var(--olio-text);
		text-decoration: none;
		white-space: nowrap;
	}

	body.olio.olio-tour,
	body.olio.olio-destination {
		padding-bottom: 76px;
	}
}

/* --- Mobile refinements ---------------------------------------------------- */

@media (max-width: 767px) {
	/* Two trip-style tiles per row instead of eight tall single rows. */
	.olio-theme-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.olio .olio-theme-tile a {
		min-height: 112px;
		padding: 18px 16px 16px;
		gap: 14px;
	}

	body.olio .olio-theme-tile a::after {
		right: 16px;
		bottom: 20px;
	}

	body.olio .olio-theme-tile__name {
		font-size: 1.125rem;
	}

	/* Popular searches become compact chips. */
	.olio-popular__note {
		display: none;
	}

	body.olio .olio-popular__list a {
		padding: 10px 14px;
	}

	/* The hero copy sits over the lower half of the photograph on a phone. */
	body.olio .olio-hero::after {
		background:
			linear-gradient(180deg, rgba(8, 24, 19, 0.4) 0%, rgba(8, 24, 19, 0) 22%),
			linear-gradient(0deg, rgba(8, 24, 19, 0.88) 0%, rgba(8, 24, 19, 0.62) 42%, rgba(8, 24, 19, 0.12) 72%, rgba(8, 24, 19, 0) 100%);
	}

	/* Footer navigation in two columns rather than one long list. */
	body.olio .elementor-location-footer .elementor-element-b100002 > .e-con-inner {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 36px 20px;
	}

	body.olio .elementor-location-footer .elementor-element-b100003 {
		grid-column: 1 / -1;
	}

	body.olio .elementor-location-footer .elementor-element-b100002 > .e-con-inner > .e-con {
		width: auto !important;
		--padding-left: 0;
		--padding-right: 0;
	}

	/* A long jump nav scrolls; the fade says so. */
	.olio-jump ol {
		-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
		mask-image: linear-gradient(90deg, #000 85%, transparent);
		padding-right: 30px;
	}
}

/* Hero eyebrows that hold more than one link wrap as whole links. */
body.olio .olio-hero .elementor-widget-heading:has(+ .elementor-widget-theme-post-title) > div.elementor-heading-title {
	flex-wrap: wrap;
	row-gap: 4px;
}

body.olio .olio-hero .elementor-heading-title a {
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   14. Seasons: calendar bars, local time
   -------------------------------------------------------------------------- */

/* Twelve cells, January to December. Leaf is the season a destination's own
   page names as best, pale leaf is good, mist is quieter. The marigold ring
   is the current month. Letters are solid colours, not alpha, so each one
   holds 4.5:1 against its cell. */
body.olio .olio-season {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 3px;
	margin: 0;
}

body.olio .olio-season span {
	display: block;
	height: 22px;
	border-radius: 4px;
	background: var(--olio-mist);
	font: 500 9.5px/22px var(--olio-mono);
	text-align: center;
	color: var(--olio-stone);
	overflow: hidden;
}

body.olio .olio-season .lv1 {
	background: var(--olio-mist-2);
	color: #34423C;
}

body.olio .olio-season .lv2 {
	background: var(--olio-leaf);
	color: #FFFFFF;
}

body.olio .olio-season .is-now {
	box-shadow: 0 0 0 2px var(--olio-marigold);
}

body.olio .olio-seasonblock {
	display: grid;
	gap: 10px;
	width: 100%;
	max-width: 440px;
}

body.olio .olio-seasonblock__label,
body.olio .olio-localtime span {
	margin: 0;
	font: 500 11.5px/1.3 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-seasonblock__text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--olio-stone);
}

body.olio .olio-localtime {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
}

body.olio .olio-localtime b {
	font: 500 13px/1 var(--olio-mono);
	letter-spacing: 0.04em;
	color: var(--olio-ink);
}

/* On a photograph. */
body.olio .olio-hero .olio-season span {
	background: rgba(255, 255, 255, 0.16);
	color: #FFFFFF;
}

body.olio .olio-hero .olio-season .lv1 {
	background: rgba(255, 255, 255, 0.36);
}

body.olio .olio-hero .olio-season .lv2 {
	background: var(--olio-marigold);
	color: var(--olio-ink);
}

body.olio .olio-hero .olio-season .is-now {
	box-shadow: 0 0 0 2px #FFFFFF;
}

body.olio .olio-hero :is(.olio-seasonblock__label, .olio-seasonblock__text, .olio-localtime span) {
	color: rgba(255, 255, 255, 0.86) !important;
}

body.olio .olio-hero .olio-localtime b {
	color: #FFFFFF;
}

/* Destination hero: when to go, and the time there now. */
body.olio .olio-hero .olio-herometa {
	--padding-top: 18px;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	display: flex;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px 40px;
	width: 100%;
	margin-top: 8px;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
}

body.olio .olio-hero .olio-herometa > .elementor-widget-shortcode {
	width: auto !important;
	max-width: 100%;
	flex: 0 1 auto;
}

body.olio .olio-hero .olio-herometa > .elementor-widget-shortcode:first-child {
	flex: 1 1 320px;
	max-width: 440px;
}

/* Tour page: the season sits between the route and the itinerary. */
body.olio .olio-tourbody .olio-seasonblock {
	margin: 0 0 clamp(36px, 4vw, 56px);
}

/* Legend under the atlas. */
body.olio .olio-season-key {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: clamp(28px, 3vw, 40px) 0 0;
	font: 500 11px/1 var(--olio-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-season-key span {
	width: 14px;
	height: 14px;
	margin-left: 8px;
	border-radius: 3px;
	background: var(--olio-mist);
}

body.olio .olio-season-key span:first-child {
	margin-left: 0;
}

body.olio .olio-season-key .lv1 { background: var(--olio-mist-2); }
body.olio .olio-season-key .lv2 { background: var(--olio-leaf); }
body.olio .olio-season-key .is-now { background: transparent; box-shadow: inset 0 0 0 2px var(--olio-marigold); }

/* --------------------------------------------------------------------------
   15. Homepage v8
   -------------------------------------------------------------------------- */

/* Shortcode widgets in the v8 sections span the shell. */
body.olio :is(.olio-almanac-sec, .olio-manifesto-sec, .olio-atlas-sec, .olio-trips-sec, .olio-process-sec, .olio-styles-sec, .olio-journal-sec, .olio-finale-sec) .elementor-widget-shortcode {
	width: 100% !important;
	max-width: 100%;
	flex: 1 1 100%;
}

/* Reveal: components mark themselves with data-reveal; app.js adds .is-in
   and a stagger delay. Gated on the head script's class, so nothing is ever
   hidden from a reader without JavaScript. */
html.olio-js body.olio [data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 900ms var(--olio-ease), transform 900ms var(--olio-ease);
	transition-delay: var(--olio-d, 0ms);
}

html.olio-js body.olio [data-reveal].is-in {
	opacity: 1;
	transform: none;
}

/* Pills printed by the components. */
body.olio .olio-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 26px;
	border-radius: 999px;
	font: 600 15px/1 var(--olio-text);
	letter-spacing: -0.005em;
	text-decoration: none;
	white-space: nowrap;
	transition: transform 300ms var(--olio-ease), background-color 300ms var(--olio-ease), color 300ms var(--olio-ease), box-shadow 300ms var(--olio-ease);
}

body.olio .olio-pill--marigold {
	background: var(--olio-marigold);
	color: var(--olio-ink) !important;
}

body.olio .olio-pill--marigold:hover {
	background: var(--olio-marigold-hi);
	transform: translateY(-2px);
	box-shadow: 0 12px 30px -12px rgba(244, 168, 42, 0.8);
}

body.olio .olio-pill--glass {
	background: rgba(255, 255, 255, 0.14);
	color: #FFFFFF !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

body.olio .olio-pill--glass:hover {
	background: #FFFFFF;
	color: var(--olio-ink) !important;
}

body.olio .olio-pill--lg {
	min-height: 60px;
	padding: 0 34px;
	font-size: 17px;
}

/* Eyebrow printed by the components (the Elementor one is in section 1). */
body.olio p.olio-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font: 500 12px/1.3 var(--olio-mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio p.olio-eyebrow::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--olio-marigold);
}

body.olio .olio-dark p.olio-eyebrow--light,
body.olio p.olio-eyebrow--light {
	color: var(--olio-marigold-soft) !important;
}

/* --- Almanac hero ----------------------------------------------------------
   "Where will you be in [month]?" The month rail picks a month; the list
   shows where is at its best then, the photograph crossfades to one of
   them, and the atlas below marks the same places. It opens on next month,
   because trips are planned ahead. */

body.olio [data-elementor-type] > .e-con.olio-almanac-sec {
	--padding-top: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	padding: 0 !important;
	background: var(--olio-leaf);
}

body.olio [data-elementor-type] > .e-con.olio-almanac-sec::before {
	display: none !important;
}

body.olio .olio-almanac {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: max(640px, 100svh);
	color: #FFFFFF;
	background: var(--olio-leaf);
	overflow: hidden;
	isolation: isolate;
}

body.olio .olio-almanac__media {
	position: absolute;
	inset: 0;
	z-index: -1;
}

body.olio .olio-almanac__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 1200ms var(--olio-ease), transform 9000ms linear;
}

body.olio .olio-almanac__media img.is-on {
	opacity: 1;
	transform: scale(1);
}

/* The first photograph is in the HTML already on, so it settles in with an
   animation rather than a transition. Transform only: opacity is never
   touched on load, so the image paints (and counts for LCP) at once. */
body.olio .olio-almanac__media img:first-child.is-on {
	animation: olio-settle 2600ms var(--olio-ease) both;
}

@keyframes olio-settle {
	from { transform: scale(1.1); }
	to { transform: scale(1); }
}

body.olio .olio-almanac__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(8, 24, 19, 0.5) 0%, rgba(8, 24, 19, 0) 24%),
		linear-gradient(0deg, rgba(8, 24, 19, 0.94) 0%, rgba(8, 24, 19, 0.6) 40%, rgba(8, 24, 19, 0.1) 72%, rgba(8, 24, 19, 0) 100%);
}

body.olio .olio-almanac__inner {
	width: 100%;
	max-width: calc(var(--olio-container) + 2 * var(--olio-gutter));
	margin: 0 auto;
	padding: calc(var(--olio-header-h) + 48px) var(--olio-gutter) 30px;
}

body.olio .olio-almanac h1.olio-almanac__kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 500 12px/1.3 var(--olio-mono);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--olio-marigold-soft);
	animation: olio-rise 900ms var(--olio-ease) 150ms both;
}

body.olio .olio-almanac__kicker::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--olio-marigold);
}

body.olio .olio-almanac__q {
	margin: 22px 0 0;
}

body.olio .olio-almanac__lead {
	display: block;
	font: 500 clamp(1.375rem, 1rem + 1.5vw, 2.375rem)/1.1 var(--olio-head);
	letter-spacing: -0.025em;
	animation: olio-rise 900ms var(--olio-ease) 250ms both;
}

/* Fit to width: --olio-mw is the month word's own width in em (measured
   from the font, printed by PHP, updated by app.js), so every month fills
   the shell on a phone and stops at 8.25rem on a wide screen. */
body.olio .olio-almanac__month {
	display: block;
	margin-top: 8px;
	font: 800 min(8.25rem, calc((100vw - 2 * var(--olio-gutter)) / var(--olio-mw, 10.7)))/0.95 var(--olio-display);
	letter-spacing: -0.015em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	padding-bottom: 0.04em;
}

body.olio .olio-almanac__month > span {
	display: inline-block;
	transition: transform 520ms var(--olio-ease), opacity 520ms var(--olio-ease);
}

/* The entrance plays once; after the first pick the word only slides. */
body.olio .olio-almanac:not(.is-live) .olio-almanac__month > span {
	animation: olio-rise 1100ms var(--olio-ease) 350ms both;
}

body.olio .olio-almanac__month.is-leaving > span {
	transform: translateY(-100%);
	opacity: 0;
}

body.olio .olio-almanac__month.is-entering > span {
	transform: translateY(100%);
	opacity: 0;
	transition: none;
	animation: none;
}

@keyframes olio-rise {
	from { transform: translateY(40%); opacity: 0; }
	to { transform: none; opacity: 1; }
}

body.olio .olio-almanac__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 28px 40px;
	margin-top: 30px;
	animation: olio-rise 900ms var(--olio-ease) 500ms both;
}

body.olio .olio-almanac__label {
	margin: 0 0 12px;
	font: 500 11.5px/1.3 var(--olio-mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}

body.olio .olio-almanac__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.olio .olio-almanac__list li {
	margin: 0;
}

body.olio .olio-almanac__list a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 42px;
	padding: 0 18px 0 15px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.34);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font: 500 16px/1 var(--olio-text);
	color: #FFFFFF;
	transition: background-color 250ms var(--olio-ease), color 250ms var(--olio-ease);
}

body.olio .olio-almanac__list a::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--olio-marigold);
}

body.olio .olio-almanac__list a:hover {
	background: #FFFFFF;
	color: var(--olio-ink);
}

/* Places that are good rather than best that month: quieter chips. */
body.olio .olio-almanac__good {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
}

body.olio .olio-almanac__good[hidden] {
	display: none;
}

body.olio .olio-almanac__goodlabel {
	margin-right: 4px;
	font: 500 11px/1 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

body.olio .olio-almanac__list--good a {
	min-height: 36px;
	background: transparent;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24);
	font-size: 14.5px;
	color: rgba(255, 255, 255, 0.9);
}

body.olio .olio-almanac__list--good a::before {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--olio-marigold);
}

body.olio .olio-almanac__list[hidden] {
	display: none;
}

body.olio .olio-almanac__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	flex: none;
}

/* Month rail: twelve equal columns under one hairline. The chosen month
   takes a marigold bar; this month carries a small dot. */
body.olio .olio-almanac__rail {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	margin-top: 36px;
	border-top: 1px solid rgba(255, 255, 255, 0.26);
	animation: olio-rise 900ms var(--olio-ease) 650ms both;
}

body.olio .olio-almanac__rail button {
	position: relative;
	appearance: none;
	min-height: 48px;
	margin: 0;
	padding: 14px 0 8px;
	border: 0;
	border-radius: 0;
	background: none;
	font: 500 12px/1 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: left;
	color: rgba(255, 255, 255, 0.72);
	cursor: pointer;
	transition: color 250ms var(--olio-ease);
}

body.olio .olio-almanac__rail button::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	right: 6px;
	height: 3px;
	background: transparent;
	transform-origin: left;
	transition: background-color 300ms var(--olio-ease);
}

body.olio .olio-almanac__rail button.is-now::after {
	content: "";
	position: absolute;
	top: 18px;
	left: calc(3ch + 0.55em);
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--olio-marigold);
}

body.olio .olio-almanac__rail button:hover,
body.olio .olio-almanac__rail button[aria-pressed="true"] {
	color: #FFFFFF;
	background: none;
}

body.olio .olio-almanac__rail button[aria-pressed="true"]::before {
	background: var(--olio-marigold);
}

body.olio .olio-almanac__rail button:focus-visible {
	outline: 2px solid #FFFFFF;
	outline-offset: -2px;
}

@media (max-width: 767px) {
	body.olio .olio-almanac {
		min-height: max(600px, 100svh);
	}

	body.olio .olio-almanac__inner {
		padding-top: calc(var(--olio-header-h) + 32px);
		padding-bottom: 20px;
	}

	body.olio .olio-almanac__row {
		flex-direction: column;
		align-items: flex-start;
		margin-top: 22px;
	}

	body.olio .olio-almanac__list a {
		min-height: 38px;
		font-size: 15px;
	}

	body.olio .olio-almanac__good {
		gap: 4px 8px;
	}

	body.olio .olio-almanac__list--good {
		gap: 2px 0;
	}

	body.olio .olio-almanac__list--good li:not(:last-child)::after {
		content: ",";
		margin-right: 7px;
		color: rgba(255, 255, 255, 0.7);
	}

	body.olio .olio-almanac__list--good a {
		display: inline;
		min-height: 0;
		padding: 0;
		background: none;
		box-shadow: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		font-size: 15px;
		line-height: 1.5;
		text-decoration: underline;
		text-decoration-color: rgba(255, 255, 255, 0.45);
		text-underline-offset: 3px;
	}

	body.olio .olio-almanac__list--good a::before {
		display: none;
	}

	body.olio .olio-almanac__rail {
		margin-top: 26px;
	}

	body.olio .olio-almanac__rail button {
		font-size: 10.5px;
		letter-spacing: 0.02em;
		text-align: center;
	}

	body.olio .olio-almanac__rail button::before {
		right: 2px;
		left: 2px;
	}

	body.olio .olio-almanac__rail button.is-now::after {
		top: 34px;
		left: calc(50% - 2.5px);
	}
}

/* --- Manifesto --------------------------------------------------------- */

body.olio .olio-manifesto__text {
	margin: 0;
	font: 500 clamp(1.875rem, 1rem + 3vw, 3.75rem)/1.1 var(--olio-head);
	letter-spacing: -0.034em;
	color: var(--olio-ink);
	max-width: 27ch;
	text-wrap: balance;
}

body.olio .olio-manifesto__text em {
	font-style: normal;
	background: linear-gradient(transparent 62%, rgba(244, 168, 42, 0.55) 62%, rgba(244, 168, 42, 0.55) 94%, transparent 94%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* A photograph set inline in the sentence, like a word. */
body.olio .olio-inlineimg {
	display: inline-block;
	width: 1.9em;
	height: 0.86em;
	margin: 0 0.08em;
	border-radius: 999px;
	background: var(--olio-mist) var(--img) center / cover no-repeat;
	vertical-align: -0.06em;
}

body.olio .olio-principles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
	margin: clamp(48px, 6vw, 88px) 0 0;
	padding: 0;
	list-style: none;
}

body.olio .olio-principles li {
	margin: 0;
	padding-top: 20px;
	border-top: 1px solid var(--olio-line);
}

body.olio .olio-principles b {
	display: block;
	margin-bottom: 8px;
	font: 600 20px/1.2 var(--olio-head);
	letter-spacing: -0.018em;
	color: var(--olio-ink);
}

body.olio .olio-principles span {
	font-size: 16px;
	line-height: 1.55;
	color: var(--olio-stone);
}

@media (max-width: 767px) {
	body.olio .olio-principles {
		grid-template-columns: 1fr;
	}
}

/* --- Atlas ------------------------------------------------------------- */

body.olio .olio-atlas {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(36px, 3.4vw, 52px) clamp(16px, 1.8vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body.olio .olio-dest {
	margin: 0;
	container-type: inline-size;
}

body.olio .olio-dest > a {
	display: block;
	color: inherit;
	text-decoration: none;
}

body.olio .olio-dest__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	border-radius: var(--olio-r);
	overflow: hidden;
	background: var(--olio-mist);
	isolation: isolate;
	transition: box-shadow 400ms var(--olio-ease);
}

body.olio .olio-dest__media img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .olio-dest > a:hover .olio-dest__media img {
	transform: scale(1.06);
}

/* In season for the month chosen above. */
body.olio .olio-dest.is-best .olio-dest__media {
	box-shadow: 0 0 0 3px var(--olio-paper), 0 0 0 5px var(--olio-marigold);
}

body.olio .olio-dest__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 1;
	padding: 8px 11px;
	border-radius: 999px;
	background: var(--olio-marigold);
	font: 500 10.5px/1 var(--olio-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olio-ink);
}

body.olio .olio-dest__badge[hidden] {
	display: none;
}

body.olio .olio-dest__body {
	padding-top: 14px;
}

body.olio .olio-dest__where {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin: 0;
	font: 500 11px/1.35 var(--olio-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-dest__time {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* Panchang runs about 1.07em a letter; 8.2cqi keeps SWITZERLAND inside its
   own card at any column width. */
body.olio .olio-dest__name {
	margin: 8px 0 0;
	font: 800 min(1.625rem, 8.2cqi)/1.05 var(--olio-display);
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--olio-ink);
	max-width: none;
}

body.olio .olio-dest .olio-season {
	margin-top: 14px;
}

body.olio .olio-dest__price {
	margin: 12px 0 0;
	font-size: 15px;
	color: var(--olio-stone);
}

body.olio .olio-dest__price b {
	font-weight: 600;
	color: var(--olio-ink);
}

@media (max-width: 1024px) {
	body.olio .olio-atlas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (max-width: 220px) {
	body.olio .olio-dest .olio-season span {
		height: 16px;
		font-size: 0;
	}

	body.olio .olio-dest__where span + span {
		display: none;
	}
}

/* Destination loop cards (listing pages) size their Panchang name the same
   way. */
body.olio .olio-destcard {
	container-type: inline-size;
}

body.olio .olio-destcard .olio-destcard__body :is(h2, h3).elementor-heading-title,
body.olio .olio-destcard .olio-destcard__body :is(h2, h3).elementor-heading-title a {
	font-size: min(1.75rem, 8.2cqi);
}

body.olio .olio-destcard .olio-seasonblock {
	max-width: none;
	gap: 6px;
}

body.olio .olio-destcard .olio-seasonblock__text {
	display: none;
}

/* --- Itinerary rail ------------------------------------------------------ */

body.olio .olio-railwrap {
	position: relative;
}

/* Full bleed to the right edge of the window, aligned to the shell on the
   left: the margin and padding cancel exactly, scrollbar or not. */
body.olio .olio-rail {
	display: flex;
	gap: clamp(16px, 2vw, 28px);
	margin-inline: calc(50% - 50vw);
	padding: 6px calc(50vw - 50%) 10px;
	scroll-padding-inline: max(var(--olio-gutter), calc((100vw - var(--olio-container)) / 2));
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

body.olio .olio-rail::-webkit-scrollbar {
	display: none;
}

@media (hover: hover) and (pointer: fine) {
	body.olio .olio-rail {
		cursor: grab;
	}

	body.olio .olio-rail.is-dragging {
		cursor: grabbing;
		user-select: none;
	}

	body.olio .olio-rail.is-dragging a {
		pointer-events: none;
	}
}

body.olio .olio-rail:focus-visible {
	outline: 2px solid var(--olio-leaf);
	outline-offset: -2px;
}

body.olio .olio-trip {
	flex: 0 0 clamp(272px, 28vw, 400px);
	margin: 0;
	scroll-snap-align: start;
}

body.olio .olio-trip > a {
	display: block;
	color: inherit;
	text-decoration: none;
}

body.olio .olio-trip__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	border-radius: var(--olio-r);
	overflow: hidden;
	background: var(--olio-mist-2);
	isolation: isolate;
}

body.olio .olio-trip__media img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .olio-trip > a:hover .olio-trip__media img {
	transform: scale(1.05);
}

body.olio .olio-trip__days {
	display: inline-block;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	font: 500 11.5px/1 var(--olio-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--olio-ink);
	white-space: nowrap;
}

body.olio .olio-trip__media .olio-trip__days {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 1;
}

body.olio .olio-trip__stops {
	margin: 16px 0 0;
	font: 500 11px/1.7 var(--olio-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-trip__stops span {
	white-space: nowrap;
}

/* The route between stops is drawn: a short marigold dash. */
body.olio .olio-trip__stops span + span::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 1.5px;
	margin: 0 7px;
	vertical-align: middle;
	background: var(--olio-marigold);
}

body.olio .olio-trip__title {
	margin: 6px 0 0;
	font: 600 clamp(1.25rem, 1.05rem + 0.6vw, 1.5625rem)/1.15 var(--olio-head);
	letter-spacing: -0.022em;
	color: var(--olio-ink);
}

body.olio .olio-trip > a:hover .olio-trip__title {
	text-decoration: underline;
	text-decoration-color: var(--olio-marigold);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

body.olio .olio-trip__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin: 8px 0 0;
	font-size: 15px;
	color: var(--olio-stone);
}

body.olio .olio-trip__meta span + span::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin-right: 12px;
	border-radius: 50%;
	vertical-align: middle;
	background: currentColor;
	opacity: 0.55;
}

body.olio .olio-trip__price {
	margin: 10px 0 0;
	font-size: 15px;
	color: var(--olio-stone);
}

body.olio .olio-trip__price b {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--olio-ink);
}

body.olio .olio-railfoot {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-top: clamp(24px, 3vw, 40px);
}

body.olio .olio-rail__progress {
	position: relative;
	flex: 1 1 auto;
	height: 2px;
	border-radius: 2px;
	background: rgba(14, 28, 24, 0.12);
	overflow: hidden;
}

body.olio .olio-rail__progress span {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: var(--olio-w, 30%);
	background: var(--olio-ink);
	transform: translateX(var(--olio-x, 0%));
	transition: width 200ms linear;
}

body.olio .olio-railnav {
	display: flex;
	gap: 8px;
	flex: none;
}

body.olio .olio-railnav button {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: inset 0 0 0 1px rgba(14, 28, 24, 0.24);
	color: var(--olio-ink);
	cursor: pointer;
	transition: background-color 250ms var(--olio-ease), color 250ms var(--olio-ease), box-shadow 250ms var(--olio-ease), opacity 250ms;
}

body.olio .olio-railnav button:hover:not(:disabled) {
	background: var(--olio-ink);
	color: #FFFFFF;
	box-shadow: none;
}

body.olio .olio-railnav button:disabled {
	opacity: 0.35;
	cursor: default;
}

body.olio .olio-railnav svg {
	width: 18px;
	height: 12px;
}

/* --- Process as a route -------------------------------------------------- */

body.olio .olio-route8 {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 44px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body.olio .olio-route8 li {
	position: relative;
	margin: 0;
	padding-top: 46px;
}

/* The dashed road to the next stop draws itself in as the step appears. */
body.olio .olio-route8 li::before {
	content: "";
	position: absolute;
	top: 9px;
	left: 26px;
	right: calc(-1 * clamp(28px, 3vw, 44px) + 4px);
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--olio-leaf) 0 8px, transparent 8px 16px);
	clip-path: inset(0 0 0 0);
	transition: clip-path 1200ms var(--olio-ease) calc(var(--olio-d, 0ms) + 300ms);
}

html.olio-js body.olio .olio-route8 li[data-reveal]:not(.is-in)::before {
	clip-path: inset(0 100% 0 0);
}

body.olio .olio-route8 li:last-child::before {
	display: none;
}

body.olio .olio-route8__dot {
	position: absolute;
	top: 0;
	left: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--olio-paper);
	box-shadow: inset 0 0 0 3px var(--olio-leaf);
}

body.olio .olio-route8 li:first-child .olio-route8__dot {
	background: var(--olio-marigold);
	box-shadow: none;
}

body.olio .olio-route8 li:last-child .olio-route8__dot {
	background: var(--olio-leaf);
	box-shadow: none;
}

body.olio .olio-route8__when {
	margin: 0 0 12px;
	font: 500 11.5px/1.3 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-route8 h3 {
	margin: 0 0 10px;
	font: 600 clamp(1.25rem, 1.12rem + 0.4vw, 1.4375rem)/1.2 var(--olio-head);
	letter-spacing: -0.02em;
	color: var(--olio-ink);
}

body.olio .olio-route8 p:last-child {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--olio-stone);
}

@media (max-width: 1024px) {
	body.olio .olio-route8 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 52px;
	}

	body.olio .olio-route8 li:nth-child(2)::before {
		display: none;
	}
}

@media (max-width: 600px) {
	body.olio .olio-route8 {
		grid-template-columns: 1fr;
		row-gap: 36px;
	}

	body.olio .olio-route8 li {
		padding: 0 0 0 46px;
	}

	body.olio .olio-route8 li::before,
	body.olio .olio-route8 li:nth-child(2)::before {
		display: block;
		top: 26px;
		left: 9px;
		right: auto;
		bottom: -32px;
		width: 2px;
		height: auto;
		background: repeating-linear-gradient(180deg, var(--olio-leaf) 0 8px, transparent 8px 16px);
	}

	html.olio-js body.olio .olio-route8 li[data-reveal]:not(.is-in)::before {
		clip-path: inset(0 0 100% 0);
	}

	body.olio .olio-route8 li:last-child::before {
		display: none;
	}
}

/* --- Trip styles (dark band) --------------------------------------------- */

@media (min-width: 1025px) {
	body.olio .olio-styles-sec > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
		gap: clamp(40px, 5vw, 110px) clamp(48px, 6vw, 120px);
		align-items: start;
	}

	body.olio .olio-styles-sec > .e-con-inner > .olio-sechead {
		grid-column: 1;
		grid-template-columns: 1fr;
		position: sticky;
		top: calc(var(--olio-header-h) + 40px);
	}

	body.olio .olio-styles-sec > .e-con-inner > .elementor-widget-shortcode:has(.olio-styles) {
		grid-column: 2;
	}

	body.olio .olio-styles-sec > .e-con-inner > .elementor-widget-shortcode:has(.olio-popular) {
		grid-column: 2;
	}
}

body.olio .olio-styles {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

body.olio .olio-styles li {
	margin: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

body.olio .olio-dark .olio-styles a {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 20px;
	padding: 22px 0;
	color: #FFFFFF;
	text-decoration: none;
	transition: padding 400ms var(--olio-ease), color 300ms var(--olio-ease);
}

body.olio .olio-styles__name {
	font: 600 clamp(1.625rem, 1rem + 2.1vw, 2.875rem)/1.05 var(--olio-head);
	letter-spacing: -0.032em;
}

body.olio .olio-styles__count {
	flex: none;
	font: 500 12px/1 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olio-marigold-soft);
}

body.olio .olio-dark .olio-styles a:hover,
body.olio .olio-dark .olio-styles a:focus-visible {
	padding-left: 18px;
	color: var(--olio-marigold);
}

/* The photograph that follows the cursor over the list (hover devices). */
body.olio .olio-peek {
	position: fixed;
	z-index: 1;
	top: 0;
	left: 0;
	width: 260px;
	aspect-ratio: 4 / 5;
	border-radius: var(--olio-r);
	overflow: hidden;
	pointer-events: none;
	opacity: 0;
	transform: translate3d(var(--olio-px, -999px), var(--olio-py, -999px), 0) translate(-50%, -50%) scale(0.85) rotate(-4deg);
	transition: opacity 300ms var(--olio-ease), transform 500ms var(--olio-ease);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.5);
}

body.olio .olio-peek.is-on {
	opacity: 1;
	transform: translate3d(var(--olio-px, -999px), var(--olio-py, -999px), 0) translate(-50%, -50%) scale(1) rotate(-4deg);
}

body.olio .olio-peek img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

body.olio .olio-dark .olio-popular {
	margin-top: 8px;
	padding-top: clamp(28px, 3vw, 40px);
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

body.olio .olio-dark .olio-popular__title {
	color: var(--olio-marigold-soft) !important;
}

body.olio .olio-dark .olio-popular__list a {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.2);
	color: #FFFFFF;
}

body.olio .olio-dark .olio-popular__list a:hover {
	background: #FFFFFF;
	border-color: #FFFFFF;
	color: var(--olio-ink);
}

body.olio .olio-dark .olio-popular__note {
	color: rgba(255, 255, 255, 0.66);
}

body.olio .olio-dark .olio-popular__list a:hover .olio-popular__note {
	color: var(--olio-stone);
}

/* --- Journal ------------------------------------------------------------- */

body.olio .olio-journal {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(32px, 3vw, 48px) clamp(20px, 2.4vw, 36px);
}

body.olio .olio-story {
	display: block;
	color: inherit;
	text-decoration: none;
}

body.olio .olio-story figure {
	margin: 0;
	aspect-ratio: 4 / 3;
	border-radius: var(--olio-r);
	overflow: hidden;
	background: var(--olio-mist);
	isolation: isolate;
}

body.olio .olio-story img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.2s var(--olio-ease);
}

body.olio .olio-story:hover img {
	transform: scale(1.05);
}

body.olio .olio-story__body {
	padding-top: 16px;
}

body.olio .olio-story__cat {
	margin: 0 0 8px;
	font: 500 11.5px/1.3 var(--olio-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olio-stone);
}

body.olio .olio-story h3 {
	margin: 0;
	font: 600 clamp(1.125rem, 1rem + 0.4vw, 1.3125rem)/1.22 var(--olio-head);
	letter-spacing: -0.018em;
	color: var(--olio-ink);
}

body.olio .olio-story:hover h3 {
	text-decoration: underline;
	text-decoration-color: var(--olio-marigold);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

body.olio .olio-story--lead {
	grid-row: span 2;
}

body.olio .olio-story--lead figure {
	aspect-ratio: 1 / 1;
}

body.olio .olio-story--lead h3 {
	font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
}

body.olio .olio-story__excerpt {
	margin: 12px 0 0;
	max-width: 46ch;
	color: var(--olio-stone);
}

body.olio .olio-journal .olio-story:nth-child(4) {
	grid-column: 2 / span 2;
	align-self: end;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
	align-items: center;
}

body.olio .olio-journal .olio-story:nth-child(4) .olio-story__body {
	padding-top: 0;
}

@media (max-width: 1024px) {
	body.olio .olio-journal {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	body.olio .olio-story--lead {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	body.olio .olio-story--lead figure {
		aspect-ratio: 16 / 10;
	}

	body.olio .olio-journal .olio-story:nth-child(4) {
		grid-column: auto;
		display: block;
	}

	body.olio .olio-journal .olio-story:nth-child(4) .olio-story__body {
		padding-top: 16px;
	}
}

@media (max-width: 600px) {
	body.olio .olio-journal {
		grid-template-columns: 1fr;
	}
}

/* --- Closing statement -------------------------------------------------- */

body.olio [data-elementor-type] > .e-con.olio-finale-sec {
	--padding-top: var(--olio-section);
	--padding-bottom: calc(var(--olio-section) * 0.8);
}

body.olio .olio-dark .olio-finale__big {
	margin: 12px 0 0;
	font: 800 clamp(2.5rem, 10.4vw, 10.5rem)/0.9 var(--olio-display);
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: #FFFFFF !important;
	max-width: none;
}

body.olio .olio-finale__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 28px 40px;
	margin-top: clamp(32px, 4vw, 56px);
	padding-top: 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

body.olio .olio-dark .olio-finale__row p {
	max-width: 46ch;
	margin: 0;
	font-size: 19px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.84) !important;
}

@media (max-width: 767px) {
	body.olio .olio-finale__row {
		flex-direction: column;
		align-items: flex-start;
	}

	body.olio .olio-finale__row p {
		font-size: 17px;
	}
}

/* --- Section heads on the v8 homepage ------------------------------------ */

body.olio .olio-dark :is(.e-con, .e-con-inner) > .elementor-widget-heading :is(h1, h2, h3).elementor-heading-title {
	color: #FFFFFF !important;
}

body.olio .olio-dark .olio-sechead .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.78) !important;
}

body.olio :is(.olio-atlas-sec, .olio-trips-sec, .olio-process-sec, .olio-journal-sec) .olio-sechead .elementor-widget-text-editor p {
	max-width: 44ch;
}

body.olio .olio-manifesto-sec {
	--padding-bottom: calc(var(--olio-section) * 0.75);
}

body.olio .olio-atlas-sec {
	--padding-top: calc(var(--olio-section) * 0.75);
}

/* The rail's own section clips nothing: the rail bleeds to the window edge. */
body.olio .olio-trips-sec,
body.olio .olio-trips-sec > .e-con-inner {
	overflow: visible;
}

/* --------------------------------------------------------------------------
   13. Accessibility, motion and print
   -------------------------------------------------------------------------- */

body.olio :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--olio-forest);
	outline-offset: 3px;
}

body.olio :is(.olio-dark, .olio-hero, .olio-cta, .elementor-location-footer) :is(a, button, summary):focus-visible {
	outline-color: #FFFFFF;
}

body.olio .skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	clip: auto;
	clip-path: none;
	padding: 14px 22px;
	border-radius: 999px;
	background: var(--olio-marigold);
	color: var(--olio-ink);
	font: 600 15px/1 var(--olio-text);
	text-decoration: none;
}

body.olio .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	body.olio *,
	body.olio *::before,
	body.olio *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	html.olio-js body.olio .olio-reveal {
		opacity: 1;
		transform: none;
	}

	body.olio .e-loop-item:hover img,
	body.olio .olio-destcard:hover img,
	body.olio :is(.olio-dest, .olio-trip, .olio-story) a:hover img,
	body.olio .olio-story:hover img,
	body.olio .olio-almanac__media img {
		transform: none !important;
		animation: none !important;
	}

	html.olio-js body.olio [data-reveal] {
		opacity: 1;
		transform: none;
	}

	body.olio .olio-peek {
		display: none;
	}
}

@media print {
	body.olio :is(.olio-jump, .elementor-location-header, .elementor-location-footer, .elementor-widget-form, .olio-finder, .olio-silo-slot) {
		display: none !important;
	}

	body.olio {
		background: #FFFFFF;
	}

	body.olio .olio-hero {
		min-height: 0 !important;
		color: #000;
	}
}
