/* The homepage composition is expressed through reusable, CMS-controlled variants. */
@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-variable.woff2') format('woff2'); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('../fonts/manrope.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; }
:root {
  --vv-serif: var(--wp--preset--font-family--serif, Georgia, serif);
  --vv-sans: var(--wp--preset--font-family--sans, system-ui, sans-serif);
  --vv-gutter: clamp(4rem, 5vw, 5.5rem);
  --vv-content: 82.5rem;
  --vv-cream: #f5f2eb;
  --vv-forest: #183c31;
  --vv-ink: #23352b;
}
html { scroll-padding-top: 7rem; }
body { background: var(--vv-cream); color: var(--vv-ink); font-family: var(--vv-sans); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
::selection { color: var(--vv-cream); background: var(--vv-forest); }
.vv-section { scroll-margin-top: 5.5rem; --vv-muted: #596158; }
.vv-background--forest, .vv-background--image, .vv-background--video { --vv-muted: #dce4db; }
.vv-spacing--compact { --vv-rhythm: 0.75; }
.vv-spacing--standard { --vv-rhythm: 1; }
.vv-spacing--spacious { --vv-rhythm: 1.25; }
.vv-section :where(h1,h2,h3) { font-family: var(--vv-serif); font-weight: 500; font-stretch: normal; font-variation-settings: 'SOFT' 12, 'WONK' 0; }
.vv-typography--standard { font-family: var(--vv-sans); }
.vv-typography--editorial { font-family: var(--vv-serif); }
.vv-typography--editorial :where(h1,h2,h3) { font-style: normal; }
.vv-variant--story-film.vv-typography--editorial .vv-section__inner > p:last-child { font-style: italic; }
.vv-section :where(h1,h2) { letter-spacing: -0.035em; }
.vv-section p { line-height: 1.8; }
.vv-section .wp-block-button__link, .vv-cta { font-family: var(--vv-sans); font-size: 0.78rem; letter-spacing: 0.035em; font-weight: 650; border-radius: 99rem; min-height: 48px; padding: 0.92rem 1.6rem; transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.vv-section .wp-block-button__link:hover, .vv-cta:hover { background: #2c5344; }
.vv-ctastyle--secondary .wp-block-button__link:hover { background: var(--vv-forest); color: var(--vv-white); border-color: var(--vv-forest); }
.vv-section .wp-block-button__link:focus-visible { outline-offset: 5px; }

/* The primary action, logo and all navigation labels originate in WordPress. */
.vv-site-header { display: block; position: relative; z-index: 100; padding: 1.65rem var(--vv-gutter); background: var(--vv-cream); transition: background-color 220ms ease, padding 220ms ease, box-shadow 220ms ease; }
.vv-site-header--immersive { position: absolute; inset: 0 0 auto; background: transparent; color: #1c342d; }
.vv-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; max-width: var(--vv-content); margin-inline: auto; }
.vv-site-name { display: inline-block; padding: 0 !important; color: inherit; font-size: clamp(1.55rem, 2.25vw, 2rem); font-weight: 400; letter-spacing: 0.14em; line-height: 1; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.vv-site-brand { display: flex; align-items: center; flex: 0 0 auto; }
.vv-site-brand .custom-logo-link { display: block; padding: 0; }
.vv-site-brand .custom-logo { width: 10rem; height: auto; display: block; }
.vv-header__nav { margin-inline-start: auto; }
.vv-site-header .vv-primary-menu { gap: clamp(1.15rem, 2.1vw, 2.2rem); margin: 0; align-items: center; }
.vv-primary-menu > li > a { position: relative; padding-block: 0.7rem; font-size: 0.8rem; text-decoration: none; font-weight: 550; }
.vv-primary-menu > li > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0.3rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 200ms ease; }
.vv-primary-menu > li > a:hover::after, .vv-primary-menu > li > a:focus-visible::after { transform: scaleX(1); }
.vv-primary-menu .vv-menu-cta { display: none; }
.vv-header__actions { display: flex; align-items: center; gap: 1rem; flex: 0 0 auto; }
.vv-site-header .vv-header__cta { display: inline-flex; justify-content: center; align-items: center; gap: 1.2rem; min-height: 46px; border-radius: 99rem; padding: 0.75rem 1.3rem; background: var(--vv-forest); color: white; font-size: 0.74rem; font-weight: 650; text-decoration: none; }
.vv-header__cta > span { font-size: 1rem; }
.vv-header__cta:hover { background: #2c5344; }
.vv-menu-toggle { display: none; width: 44px; height: 44px; padding: 12px 8px; border: none; background: transparent; color: inherit; cursor: pointer; }
.vv-menu-toggle span { width: 23px; height: 1px; background: currentColor; display: block; margin: 6px auto; transition: transform 180ms ease; }
.vv-site-header.is-scrolled { position: fixed; inset: 0 0 auto; padding-block: 1rem; color: var(--vv-ink); background: rgb(245 242 235 / 97%); box-shadow: 0 1px 0 rgb(24 60 49 / 10%); }
.vv-site-header:not(.vv-site-header--immersive) { position: sticky; top: 0; }

/* A quiet, full-bleed opening with three immediate paths into the ecosystem. */
.vv-variant--immersive { min-height: 100svh; display: flex; align-items: center; padding-top: clamp(10rem, 18vh, 13rem); padding-bottom: 1.5rem; text-align: center; background: #24392f; color: white; }
.vv-variant--immersive > .vv-section__inner { width: 100%; display: flex; flex-direction: column; align-items: center; }
.vv-variant--immersive .vv-section__background-image { object-position: center 48%; }
.vv-variant--immersive > .vv-section__overlay { background: linear-gradient(180deg, rgb(9 30 27 / 0%) 7%, rgb(9 26 24 / 24%) 18%, rgb(5 24 20 / 44%) 40%, rgb(4 16 13 / 60%) 70%, rgb(4 16 13 / 91%) 100%); }
.vv-variant--immersive.vv-overlay--soft > .vv-section__overlay { background: linear-gradient(180deg, rgb(9 30 27 / 0%) 7%, rgb(9 26 24 / 24%) 18%, rgb(5 24 20 / 39%) 40%, rgb(4 16 13 / 55%) 70%, rgb(4 16 13 / 87%) 100%); }
.vv-variant--immersive.vv-overlay--strong > .vv-section__overlay { background: linear-gradient(180deg, rgb(9 30 27 / 0%) 7%, rgb(9 26 24 / 35%) 18%, rgb(5 24 20 / 52%) 40%, rgb(4 16 13 / 70%) 70%, rgb(4 16 13 / 95%) 100%); }
.vv-variant--immersive > .vv-section__inner > p:first-child { font-size: 0.63rem; letter-spacing: 0.24em; line-height: 1.5; text-transform: uppercase; margin: 0 0 1.6rem; }
.vv-variant--immersive h1 { max-width: 14ch; margin: 0; font-size: clamp(4.5rem, 7.4vw, 7.75rem); line-height: 0.98; text-wrap: balance; text-shadow: 0 2px 30px rgb(0 0 0 / 12%); }
.vv-variant--immersive h1 + p { max-width: 38rem; margin: 1.6rem 0 0; font-size: clamp(0.875rem, 1.12vw, 1rem); font-weight: 400; letter-spacing: 0.012em; }
.vv-gateways { width: min(100%, 61rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: clamp(3.5rem, 9vh, 7rem); text-align: start; }
.vv-gateway { position: relative; padding: 1.35rem 1.6rem 1.55rem; border: 1px solid rgb(255 255 255 / 42%); border-radius: 2px; background: rgb(18 39 32 / 20%); transition: background-color 220ms ease, border-color 220ms ease; min-width: 0; }
.vv-gateway:hover { background: rgb(245 242 235 / 12%); border-color: rgb(255 255 255 / 90%); }
.vv-gateway h2, .vv-gateway h3 { margin: 0 2rem 0.3rem 0; font-size: clamp(1.65rem, 2.1vw, 2.1rem); line-height: 1.15; letter-spacing: -0.01em; }
.vv-gateway p { margin: 0; font-size: 0.7rem; color: rgb(255 255 255 / 84%); }
.vv-gateway .wp-block-buttons, .vv-gateway .wp-block-button { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.vv-gateway .wp-block-button__link { position: absolute; inset: 0; display: block; min-height: 0; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 2px; background: transparent !important; text-indent: -999rem; overflow: hidden; }
.vv-gateway .wp-block-button__link::after { content: '↗'; position: absolute; top: 1.5rem; right: 1.5rem; font-size: 1.3rem; text-indent: 0; color: white; }
.vv-variant--immersive > .vv-section__inner > .wp-block-buttons { margin-top: 1.5rem; }
.vv-variant--immersive > .vv-section__inner > .wp-block-buttons .wp-block-button__link { background: transparent; color: white; border: 0; border-radius: 0; padding: 0.4rem; min-height: 44px; font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; }
.vv-variant--immersive > .vv-section__inner > .wp-block-buttons .wp-block-button__link::before { content: '↓'; display: inline-block; margin-right: 0.8rem; font-size: 1.2rem; }

/* Open editorial space provides contrast to the cinematic opening. */
.vv-section--story.vv-variant--default .vv-section__inner > h2 { max-width: 20ch; margin: 0 0 1.2rem; font-size: clamp(2.5rem,4vw,4rem); line-height: 1.1; text-wrap: balance; }
.vv-section--story.vv-variant--default .vv-section__inner > p { max-width: 40rem; font-size: 0.9rem; color: var(--vv-muted); }
.vv-section--story.vv-variant--default .vv-section__inner > p:first-child:not(:only-child) { margin: 0 0 1.2rem; font-size: 0.63rem; letter-spacing: 0.17em; line-height: 1.6; text-transform: uppercase; }
.vv-variant--manifesto { padding-block: calc(clamp(5rem, 9vw, 9rem) * var(--vv-rhythm, 1)); text-align: center; }
.vv-variant--manifesto > .vv-section__inner { max-width: 49rem; }
.vv-variant--manifesto h2 { max-width: 20ch; margin: 0 auto 1.6rem; font-size: clamp(2.65rem, 4.7vw, 4.8rem); line-height: 1.1; text-wrap: balance; }
.vv-variant--manifesto p { max-width: 39rem; margin: 0 auto 1.5rem; color: var(--vv-muted); font-size: 0.9rem; }
.vv-variant--manifesto .wp-block-buttons { justify-content: center; margin-top: 2rem; }
.vv-variant--story-film { min-height: 38rem; display: flex; align-items: flex-end; padding: calc(4rem * var(--vv-rhythm, 1)) var(--vv-gutter); }
.vv-variant--story-film > .vv-section__inner { width: 100%; }
.vv-variant--story-film > .vv-section__overlay { background: linear-gradient(180deg, rgb(5 22 15 / 30%) 0%, rgb(5 22 15 / 64%) 45%, rgb(5 22 15 / 76%) 100%); }
.vv-variant--story-film.vv-overlay--soft > .vv-section__overlay { background: linear-gradient(180deg, rgb(5 22 15 / 25%) 0%, rgb(5 22 15 / 58%) 45%, rgb(5 22 15 / 68%) 100%); }
.vv-variant--story-film.vv-overlay--strong > .vv-section__overlay { background: linear-gradient(180deg, rgb(5 22 15 / 40%) 0%, rgb(5 22 15 / 72%) 45%, rgb(5 22 15 / 84%) 100%); }
.vv-variant--story-film .vv-section__background-image { object-position: center 53%; }
.vv-variant--story-film p { max-width: 33rem; margin: 0; font-family: var(--vv-serif); font-size: clamp(2.25rem, 4vw, 4rem); line-height: 1.15; }
.vv-variant--story-film .vv-section__inner > p:first-child:not(:only-child) { max-width: none; margin-bottom: 1.1rem; font-family: var(--vv-sans); font-size: 0.65rem; letter-spacing: 0.2em; line-height: 1.6; text-transform: uppercase; }

/* Image-led pathways use shared cards without detached dashboard containers. */
.vv-variant--pathways { padding-block: calc(clamp(4.5rem, 8vw, 8rem) * var(--vv-rhythm, 1)); }
.vv-section--cards.vv-variant--pathways > .vv-section__inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1.4rem; }
.vv-variant--pathways .vv-card { position: relative; display: flex; flex-direction: column; }
.vv-variant--pathways .vv-card > .wp-block-image { overflow: hidden; margin: 0 0 1.65rem; }
.vv-variant--pathways .vv-card .wp-block-image img { width: 100%; aspect-ratio: 0.84; object-fit: cover; display: block; transition: transform 700ms cubic-bezier(0.2,0.65,0.3,1); }
.vv-variant--pathways .vv-card:hover .wp-block-image img { transform: scale(1.035); }
.vv-variant--pathways .vv-card h3 { margin: 0 0 0.55rem; font-size: clamp(2.1rem, 2.9vw, 3rem); line-height: 1.1; }
.vv-variant--pathways .vv-card p { margin: 0; color: var(--vv-muted); font-size: 0.82rem; max-width: 32ch; }
.vv-variant--pathways .vv-card .wp-block-buttons { margin-top: 1.2rem; }
.vv-variant--pathways.vv-ctastyle--text .vv-card .wp-block-button__link { border: 0; border-radius: 0; border-bottom: 1px solid currentColor; padding: 0.4rem 0; background: transparent; color: inherit; min-height: 40px; font-size: 0.7rem; }
.vv-variant--pathways.vv-ctastyle--text .vv-card .wp-block-button__link::after { content: '↗'; margin-left: 1.4rem; font-size: 1rem; }
.vv-variant--pathways.vv-ctastyle--text .vv-card .wp-block-button__link:hover { border-color: currentColor; }

/* Five steps stay a simple, editable sequence. */
.vv-variant--journey { padding-block: calc(clamp(4rem, 7vw, 7rem) * var(--vv-rhythm, 1)); border-top: 1px solid rgb(24 60 49 / 14%); }
.vv-section--cards.vv-variant--journey > .vv-section__inner { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 2rem; counter-reset: vv-steps; }
.vv-variant--journey .vv-card { position: relative; counter-increment: vv-steps; padding-top: 3.5rem; }
.vv-variant--journey .vv-card::before { content: '0' counter(vv-steps); position: absolute; top: 0; left: 0; width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border: 1px solid rgb(24 60 49 / 30%); border-radius: 50%; font-size: 0.62rem; letter-spacing: 0.02em; }
.vv-variant--journey .vv-card:not(:last-child)::after { content: ''; position: absolute; height: 1px; top: 1.1rem; left: 3rem; right: -1rem; background: rgb(24 60 49 / 16%); }
.vv-variant--journey h3 { margin: 0 0 0.5rem; font-size: clamp(1.6rem, 2.3vw, 2.25rem); }
.vv-variant--journey p { max-width: 20ch; margin: 0; font-size: 0.75rem; color: var(--vv-muted); }
.vv-variant--journey .wp-block-image:empty, .vv-variant--journey .wp-block-buttons:empty { display: none; }

/* Community and merchandise continue the same image-and-story vocabulary. */
.vv-variant--community, .vv-variant--merchandise { padding-block: calc(5rem * var(--vv-rhythm, 1)); }
.vv-variant--community.vv-background--none { background: #e9ede5; }
.vv-variant--community > .vv-section__inner, .vv-variant--merchandise > .vv-section__inner { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.vv-variant--community .wp-block-image, .vv-variant--merchandise .wp-block-image { margin: 0; overflow: hidden; }
.vv-variant--community .wp-block-image img, .vv-variant--merchandise .wp-block-image img { display: block; width: 100%; aspect-ratio: 1.04; object-fit: cover; }
.vv-variant--community h2, .vv-variant--merchandise h2 { max-width: 13ch; margin: 0 0 1.5rem; font-size: clamp(2.75rem, 4.4vw, 4.7rem); line-height: 1.06; text-wrap: balance; }
.vv-variant--community p, .vv-variant--merchandise p { max-width: 40ch; color: var(--vv-muted); font-size: 0.85rem; }
.vv-variant--community .wp-block-buttons, .vv-variant--merchandise .wp-block-buttons { margin-top: 1.8rem; }
.vv-variant--merchandise > .vv-section__inner > .wp-block-image { order: 2; }
.vv-variant--merchandise .wp-block-image img { aspect-ratio: 1.1; }

/* A calm, complete enquiry surface instead of an abrupt external handoff. */
.vv-variant--planner { padding-top: clamp(5rem, 8vw, 8rem); padding-bottom: 2rem; text-align: center; }
.vv-variant--planner > .vv-section__inner { max-width: 49rem; }
.vv-variant--planner h2 { margin: 0 auto 1rem; font-size: clamp(3rem, 5vw, 5.25rem); line-height: 1.04; }
.vv-variant--planner p { max-width: 38rem; margin: 0 auto; color: var(--vv-muted); font-size: 0.86rem; }
.vv-section--trip-enquiry { padding-top: clamp(5rem, 8vw, 8rem); padding-bottom: clamp(5rem, 8vw, 8rem); background: var(--vv-forest); color: white; }
.vv-section--trip-enquiry:is(.vv-background--cream,.vv-background--none) { background: var(--vv-cream); color: var(--vv-ink); }
.vv-variant--planner + .vv-section--trip-enquiry { padding-top: 2rem; }
.vv-section--trip-enquiry > .vv-section__inner { max-width: 57rem; }
.vv-planner { --vv-form-text: #f5f2eb; --vv-form-muted: #dce4db; --vv-form-border: rgb(255 255 255 / 35%); --vv-form-input-border: #94a89b; --vv-form-surface: rgb(255 255 255 / 5%); --vv-form-accent: #f5f2eb; --vv-form-on-accent: var(--vv-forest); color: var(--vv-form-text); }
.vv-section--trip-enquiry:is(.vv-background--cream,.vv-background--none) .vv-planner { --vv-form-text: var(--vv-ink); --vv-form-muted: #596158; --vv-form-border: rgb(24 60 49 / 35%); --vv-form-input-border: #738375; --vv-form-surface: rgb(24 60 49 / 3%); --vv-form-accent: var(--vv-forest); --vv-form-on-accent: var(--vv-cream); }
.vv-planner__intro { max-width: 46rem; margin: 0 auto 3rem; text-align: center; }
.vv-planner__intro .vv-eyebrow { margin: 0 0 1.25rem; font-size: 0.6rem; letter-spacing: 0.2em; line-height: 1.5; }
.vv-planner__intro h2 { margin: 0 0 1rem; font-size: clamp(3.25rem,5vw,5.3rem); line-height: 1.05; }
.vv-planner__intro > p:last-child { max-width: 38rem; margin: 0 auto; color: var(--vv-form-muted); font-size: 0.85rem; }
.vv-planner__form { position: relative; font-family: var(--vv-sans); }
.vv-planner__trap { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.vv-planner__feedback { margin-bottom: 2rem; padding: 1.25rem 1.5rem; border: 1px solid var(--vv-form-border); background: var(--vv-form-surface); color: var(--vv-form-text); font-size: 0.85rem; }
.vv-planner__feedback p { margin: 0 0 0.5rem; }
.vv-planner__feedback p:last-child { margin-bottom: 0; }
.vv-planner__feedback a { text-decoration: underline; text-underline-offset: 4px; }
.vv-planner__feedback:focus { outline: 2px solid var(--vv-form-text); outline-offset: 4px; }
.vv-planner :where(input,select,textarea) { width: 100%; min-height: 48px; border: 1px solid var(--vv-form-input-border); border-radius: 2px; background: var(--vv-form-surface); color: var(--vv-form-text); padding: 0.8rem 0.9rem; font-family: var(--vv-sans); font-size: 0.8rem; }
.vv-planner :where(input,textarea)::placeholder { color: var(--vv-form-muted); opacity: 1; }
.vv-planner select option { color: var(--vv-ink); background: var(--vv-cream); }
.vv-planner label { display: block; margin-bottom: 0.4rem; font-size: 0.74rem; }
.vv-planner__fields label > input, .vv-planner__notes textarea { display: block; margin-top: 0.55rem; }
.vv-planner :where(fieldset,legend) { padding: 0; border: 0; }
.vv-planner legend { margin-bottom: 0.8rem; font-size: 0.75rem; }
.vv-planner fieldset { margin: 1.8rem 0; }
.vv-planner :where(input[type=checkbox],input[type=radio]) { width: 1rem; height: 1rem; min-height: 0; accent-color: var(--vv-form-accent); }
.vv-planner input[type=date] { color-scheme: dark; }
.vv-section--trip-enquiry:is(.vv-background--cream,.vv-background--none) input[type=date] { color-scheme: light; }
.vv-planner textarea { min-height: 100px; resize: vertical; }
.vv-planner button[type=submit] { min-height: 48px; border-radius: 99rem; border: 1px solid var(--vv-form-border); padding: 0.85rem 1.5rem; background: transparent; color: var(--vv-form-text); font-family: var(--vv-sans); font-size: 0.75rem; cursor: pointer; }
.vv-planner button[type=submit]:first-child { background: var(--vv-form-accent); border-color: var(--vv-form-accent); color: var(--vv-form-on-accent); }
.vv-planner button[type=submit]:hover { background: var(--vv-form-accent); color: var(--vv-form-on-accent); }
.vv-planner button[type=submit]:disabled { opacity: 0.65; cursor: wait; }
.vv-planner button[type=submit] span { margin-inline-start: 0.65rem; font-size: 1rem; }
.vv-planner small { font-size: 0.68rem; color: var(--vv-form-muted); }
.vv-planner__fields, .vv-planner__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem 1.5rem; }
.vv-planner__full { grid-column: 1 / -1; }
.vv-planner__interests { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.vv-planner__interests legend { width: 100%; }
.vv-planner__interests label { display: inline-flex; align-items: center; gap: 0.6rem; border: 1px solid var(--vv-form-border); padding: 0.65rem 0.8rem; border-radius: 2px; margin: 0; font-size: 0.72rem; }
.vv-planner__interests label:has(input:checked) { border-color: var(--vv-form-accent); background: var(--vv-form-surface); }
.vv-planner__interests label:has(input:focus-visible) { outline: 2px solid var(--vv-form-text); outline-offset: 3px; }
.vv-planner__notes { margin-block: 1.4rem 1.25rem; }
.vv-planner__selected { padding: 1rem !important; border: 1px solid var(--vv-form-border) !important; }
.vv-selected-item > label:first-child { display: flex; align-items: center; gap: 0.6rem; font-size: 0.8rem; }
.vv-selected-item + .vv-selected-item { border-top: 1px solid var(--vv-form-border); padding-top: 1.4rem; margin-top: 1.4rem; }
.vv-selected-item__options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1rem 0; }
.vv-selected-item__options label > input, .vv-selected-item__options label > select { display: block; margin-top: 0.5rem; }
.vv-selected-item__options input[type=number] { max-width: 8rem; }
.vv-planner .vv-planner__consent { display: flex; align-items: flex-start; gap: 0.65rem; line-height: 1.6; }
.vv-planner__consent input { flex: 0 0 auto; margin-top: 0.2rem; }
.vv-planner__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.75rem; }
.vv-planner__note { text-align: center; color: var(--vv-form-muted); font-size: 0.67rem; margin-top: 1.3rem; }
.vv-planner__notice { border: 1px solid currentColor; padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.85rem; }

.vv-site-footer { background: var(--vv-cream); color: var(--vv-ink); padding: 4.5rem var(--vv-gutter) 1.4rem; }
.vv-footer__main, .vv-footer__bottom { max-width: var(--vv-content); margin-inline: auto; }
.vv-footer__main { display: flex; justify-content: space-between; align-items: flex-start; gap: 5rem; padding-bottom: 4rem; }
.vv-footer__brand .vv-site-name { font-size: 2rem; }
.vv-footer__brand p { margin-top: 1.1rem; max-width: 28ch; color: #627063; font-size: 0.76rem; line-height: 1.7; }
.vv-footer__main nav { max-width: 43rem; }
.vv-site-footer .vv-footer-menu { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0.35rem 3rem; margin: 0; }
.vv-footer-menu a { font-size: 0.75rem; text-decoration: none; }
.vv-footer-menu a:hover { text-decoration: underline; text-underline-offset: 4px; }
.vv-site-footer .vv-footer-menu .sub-menu { display: block; padding: 0; margin: 0.5rem 0 0; }
.vv-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; border-top: 1px solid rgb(24 60 49 / 15%); padding-top: 1.2rem; color: #687065; font-size: 0.65rem; }
.vv-footer__bottom a { padding: 0; color: inherit; text-decoration: none; }
.vv-footer__bottom a span { margin-left: 1.1rem; }
.vv-site-footer > .vv-footer-legal { display: flex; flex-wrap: wrap; gap: 0.15rem 1rem; width: 100%; max-width: var(--vv-content); margin-inline: auto; padding-top: 0.7rem; font-size: 0.7rem; }
.vv-site-footer > .vv-footer-legal a { color: inherit; }

/* The same modules remain legible and editable in the native editor. */
.vv-editor-section.vv-variant--immersive { min-height: 50rem; }
.vv-editor-section .vv-editor-section__label { font-family: var(--vv-sans); font-size: 0.75rem; letter-spacing: normal; }
.vv-editor-section .vv-gateway .wp-block-buttons { position: static; }
.vv-editor-section .vv-gateway .wp-block-button, .vv-editor-section .vv-gateway .wp-block-button__link { position: static; height: auto; text-indent: 0; padding: 0.5rem 0; }
.vv-editor-section .vv-gateway .wp-block-button__link::after { display: none; }
.vv-editor-section.vv-variant--community > .vv-editor-section__label, .vv-editor-section.vv-variant--merchandise > .vv-editor-section__label { grid-column: 1 / -1; }

@media (max-width: 1040px) {
  :root { --vv-gutter: 2rem; }
  .vv-header__inner { gap: 1rem; flex-wrap: wrap; }
  .vv-header__actions { margin-inline-start: auto; }
  .vv-header__nav { order: 3; width: 100%; }
  .vv-site-header .vv-primary-menu { justify-content: center; flex-wrap: wrap; gap: 0.4rem 1.5rem; }
  .vv-site-header.is-enhanced .vv-header__nav { display: none; }
  .vv-site-header.is-enhanced .vv-menu-toggle { display: block; }
  .vv-site-header.is-menu-open { position: fixed; inset: 0; height: 100dvh; overflow-y: auto; background: var(--vv-cream); color: var(--vv-ink); }
  .vv-site-header.is-menu-open .vv-header__nav { display: block; padding-block: 3rem; }
  .vv-site-header.is-menu-open .vv-primary-menu { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
  .vv-site-header.is-menu-open .vv-primary-menu > li > a { font-family: var(--vv-serif); font-size: clamp(2.25rem,7vw,4rem); font-weight: 400; line-height: 1.15; }
  .vv-site-header.is-menu-open .vv-menu-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .vv-site-header.is-menu-open .vv-menu-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .vv-variant--immersive h1 { font-size: clamp(4.5rem,10vw,6.5rem); }
  .vv-gateway { padding: 1.15rem; }
  .vv-gateway .wp-block-button__link::after { right: 1rem; top: 1.15rem; }
  .vv-section--cards.vv-variant--journey > .vv-section__inner { gap: 1.2rem; }
  .vv-variant--community > .vv-section__inner, .vv-variant--merchandise > .vv-section__inner { gap: 3rem; }
}
@media (max-width: 767px) {
  :root { --vv-gutter: 1.25rem; }
  html { scroll-padding-top: 6rem; }
  .vv-mobile--compact { --vv-rhythm: 0.8; }
  .vv-site-header, .vv-site-header.is-scrolled { padding-block: 1.1rem; }
  .vv-site-name { font-size: 1.45rem; letter-spacing: 0.1em; }
  .vv-header__actions { gap: 0.45rem; }
  .vv-site-header .vv-header__cta { font-size: 0.7rem; gap: 0.6rem; padding: 0.65rem 1rem; min-height: 44px; }
  .vv-variant--immersive { min-height: 100svh; padding-top: 10.5rem; padding-bottom: 1rem; }
  .vv-variant--immersive h1 { font-size: clamp(3.85rem,13vw,5.5rem); max-width: 13ch; }
  .vv-variant--immersive > .vv-section__inner > p:first-child { font-size: 0.54rem; letter-spacing: 0.2em; margin-bottom: 1.5rem; }
  .vv-variant--immersive h1 + p { font-size: 0.875rem; max-width: 28ch; margin-top: 1.35rem; }
  .vv-gateways { margin-top: 3.5rem; gap: 0.4rem; }
  .vv-gateway { padding: 1rem 0.7rem 1.6rem; text-align: center; min-height: 8rem; }
  .vv-gateway h2, .vv-gateway h3 { font-size: clamp(1.32rem,5vw,1.8rem); margin: 0 0 0.45rem; }
  .vv-gateway p { font-size: 0.61rem; line-height: 1.5; }
  .vv-gateway .wp-block-button__link::after { font-size: 0.9rem; top: auto; right: 0.5rem; bottom: 0.3rem; }
  .vv-variant--immersive > .vv-section__inner > .wp-block-buttons { margin-top: 1rem; }
  .vv-variant--manifesto { padding-block: calc(4.5rem * var(--vv-rhythm, 1)); }
  .vv-variant--manifesto h2 { font-size: 2.9rem; }
  .vv-variant--manifesto p { font-size: 0.83rem; }
  .vv-variant--manifesto p, .vv-variant--pathways .vv-card p, .vv-variant--journey p, .vv-variant--community p, .vv-variant--merchandise p, .vv-planner__intro > p:last-child { font-size: 0.9rem; }
  .vv-variant--story-film { min-height: 28rem; padding-block: calc(2.5rem * var(--vv-rhythm, 1)); }
  .vv-variant--story-film p { font-size: 2.75rem; }
  .vv-variant--pathways { padding-block: calc(4rem * var(--vv-rhythm, 1)); }
  .vv-section--cards.vv-variant--pathways > .vv-section__inner { grid-template-columns: minmax(0,1fr); gap: 3rem; }
  .vv-variant--pathways .vv-card .wp-block-image img { aspect-ratio: 1.15; }
  .vv-variant--pathways .vv-card > .wp-block-image { margin-bottom: 1.2rem; }
  .vv-variant--pathways .vv-card h3 { font-size: 2.6rem; }
  .vv-variant--pathways .vv-card p { max-width: 42ch; }
  .vv-variant--journey { padding-block: calc(3rem * var(--vv-rhythm, 1)) calc(4rem * var(--vv-rhythm, 1)); }
  .vv-section--cards.vv-variant--journey > .vv-section__inner { grid-template-columns: minmax(0,1fr); gap: 0; }
  .vv-variant--journey .vv-card { padding: 0 0 2rem 4rem; }
  .vv-variant--journey .vv-card:last-child { padding-bottom: 0; }
  .vv-variant--journey .vv-card:not(:last-child)::after { width: 1px; height: auto; top: 2.6rem; bottom: 0.4rem; left: 1.1rem; }
  .vv-variant--journey h3 { font-size: 2rem; }
  .vv-variant--journey p { max-width: 35ch; font-size: 0.9rem; }
  .vv-variant--community, .vv-variant--merchandise { padding-block: calc(3rem * var(--vv-rhythm, 1)) calc(4rem * var(--vv-rhythm, 1)); }
  .vv-variant--community > .vv-section__inner, .vv-variant--merchandise > .vv-section__inner { grid-template-columns: minmax(0,1fr); gap: 2.25rem; }
  .vv-variant--community .wp-block-image img { aspect-ratio: 1.12; }
  .vv-variant--community h2, .vv-variant--merchandise h2 { font-size: 3.2rem; }
  .vv-variant--merchandise > .vv-section__inner > .wp-block-image { order: 0; }
  .vv-variant--planner { padding-top: 4rem; }
  .vv-variant--planner h2 { font-size: 3.5rem; }
  .vv-section--trip-enquiry { padding-bottom: 4rem; }
  .vv-planner__intro { margin-bottom: 2rem; }
  .vv-planner__intro h2 { font-size: 3.5rem; }
  .vv-planner__fields, .vv-planner__grid { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .vv-selected-item__options { grid-template-columns: minmax(0,1fr); }
  .vv-planner :where(input,select,textarea) { font-size: 1rem; }
  .vv-planner__actions { flex-direction: column; }
  .vv-planner button[type=submit] { width: 100%; }
  .vv-site-footer { padding-top: 3rem; }
  .vv-footer__main { display: block; padding-bottom: 2.5rem; }
  .vv-footer__main nav { margin-top: 2rem; }
  .vv-site-footer .vv-footer-menu { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0.25rem 1.5rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .vv-variant--immersive[data-vv-animation="rise"] h1 { animation: vv-hero-arrive 850ms cubic-bezier(0.2,0.65,0.3,1) both; }
}
@keyframes vv-hero-arrive { from { transform: translateY(0.8rem); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .vv-site-header, .vv-menu-toggle span, .vv-primary-menu > li > a::after, .vv-gateway, .vv-variant--pathways .vv-card .wp-block-image img, .vv-section .wp-block-button__link { transition: none; }
  .vv-variant--pathways .vv-card:hover .wp-block-image img { transform: none; }
}
