:root {
  /* Desktop rem follows the viewport (1rem = 10px at 1920) */
  font-size: 0.521vw;

  /* Layout spacing */
  --gutter-page: 24rem;
  --gutter-wide: 8rem;   /* wide layouts: Life & Leisure, Privileges, single privilege */
  --gutter-rooms: 16rem;   /* Accommodation page: the rooms and the first room's description box */

  --content-single: 36rem;   /* side padding of single story and single career */
  --measure-intro: 76rem;   /* line length of the centred intro texts */
  --space-section: 9rem;
  --space-section-lg: 14.8rem;

  /* Colors */
  --clr-green-dark: #0C342C;
  --clr-green-deep: #022C2C;
  --clr-green-medium: #173D2D;
  --clr-gold: #B4956C;
  --clr-cream-light: #FDFAF2;
  --clr-cream-base: #F3EEDF;
  --clr-white: #FFFFFF;
  --clr-gold-line: color-mix(in srgb, var(--clr-gold) 35%, transparent);   /* light dividers and card frames */
  --clr-link: #866640;   /* text links inside articles: deeper gold, readable on cream */
  --curtain-time: 0.7s;    /* arriving: the veil lifts */
  --curtain-leave: 0.5s;   /* leaving: the veil fades in */
  --curtain-ease: cubic-bezier(.22, 1, .36, 1);
  --transition: 0.3s cubic-bezier(.4,0,.2,1);   /* state changes: borders, backgrounds, dropdowns */
  --t-hover: .45s ease;   /* hover lines, tabs, cards, icons (buttons: the kit's --hover-time .6s) */
  --font-display: 'SVN', serif;
  --font-body: 'HTF', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  /* Desktop font sizes by role (phones: px in each component's 1024px block) */
  --fs-display: 7.5rem;
  --fs-section: 4.8rem;
  --fs-page-title: 4.5rem;
  --fs-title-md: 3.5rem;   /* between the section and the small titles */
  --fs-title-sm: 2.5rem;
  --fs-lead: 2.2rem;
  --fs-body-lg: 2rem;
  --fs-body: 1.75rem;
  --fs-caption: 1.2rem;

  /* Type: weights, line heights, letter spacing */
  --fw-regular: 400;
  --fw-body: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --lh-tight: 1.1;
  --lh-body: 1.4;
  --lh-loose: 1.7;
  --ls-body: 0.2px;
  --ls-caps: 1.7px;
  --ls-display: -0.2px;   /* display-font titles: the letters a touch closer */

  /* Layout: phone gutter, contact column, phone section spacing */
  --gutter-mobile: 15px;
  --content-contact: calc(var(--gutter-page) * 2);   /* contact page and press kit form: twice the usual side padding */
  --space-section-mobile: 50px;
  --space-section-mobile-lg: 70px;
  --space-block: 5rem;   /* between the blocks inside a section */   /* phones, where desktop uses --space-section-lg */

  /* Lines, shapes, layers, motion */
  --border-hairline: .5px solid var(--clr-gold);
  --border-accent: 8.5px solid var(--clr-gold);
  --radius-round: 50%;
  --radius-sm: .8rem;   /* controls, list items, small labels (phones 8px) */
  --radius-lg: 1.2rem;  /* panels: cookie notice, booking card, dropdown menus (phones 12px) */
  --z-header: 100;
  --z-fixed: 101;
  --z-wine-box: 900;
  --z-curtain: 1000;
  --z-menu: 9999;
  --duration-panel: .6s;
}
/* Floor for small laptops */
@media only screen and (min-width: 1025px) {
  :root { font-size: max(0.521vw, 6.4px); }
}

/* Fonts */
@font-face {
  font-family: 'SVN';
  font-weight: 400;
  src: url("../fonts/SVN-TabacGlamG3-Regular.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: 'HTF';
  font-weight: 600;
  src: url("../fonts/iCielTheSans-Plain.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: 'HTF';
  font-weight: 500;
  src: url("../fonts/iCielTheSans-LightPlain.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: 'HTF';
  font-weight: 400;
  src: url("../fonts/iCielTheSans-LightPlain.woff2") format("woff2");
  font-display: swap;
}
/* Chinese characters (zh pages) */
@font-face { font-family: 'HTF'; font-weight: 400; src: url("../fonts/NotoSansSC-400.woff2") format("woff2"); font-display: swap; unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF; }
@font-face { font-family: 'HTF'; font-weight: 500; src: url("../fonts/NotoSansSC-500.woff2") format("woff2"); font-display: swap; unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF; }
@font-face { font-family: 'HTF'; font-weight: 600; src: url("../fonts/NotoSansSC-600.woff2") format("woff2"); font-display: swap; unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF; }
@font-face { font-family: 'SVN'; font-weight: 400; src: url("../fonts/NotoSansSC-400.woff2") format("woff2"); font-display: swap; unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF; }

* {
  box-sizing: border-box;
  border-collapse: inherit;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}
/* Cream page background, the header bar and footer colour */
html { background-color: var(--clr-cream-base); }
/* Blocks without a background of their own were white */
.home-acc, .home-exp, .sustain-slide { background-color: var(--clr-cream-light); }
body {
  background-color: var(--clr-cream-base);
  overscroll-behavior: none;
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-body);
  font-style: normal;
  font-size: var(--fs-body);
  overflow-x: hidden;
  overflow-y: auto;
  min-height: 100%;
  width: 100%;
}
p { margin-block-start: 0.5rem; margin-block-end: 0.5rem; letter-spacing: var(--ls-body); }
section { position: relative; display: block; }
/* Headings: no browser margin-block */
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: var(--fw-regular); }   /* titles in the regular weight: no faux bold (SVN has only 400) */
/* Heading spacing */
:is(.page-banner__tagline, .page-banner__title, .career-head__title) h1 { padding-block: .67em; }
:is(.section-head__title, .acc-name, .story-item__title, .career-item__cell, .career-item__title) h2 { padding-block: .83em; }
/* Headings written in the editor of the singles */
.jiva-prose :is(h1, h2, h3, h4, h5, h6) { color: var(--clr-gold); font-family: var(--font-display); font-weight: var(--fw-regular); line-height: var(--lh-tight); padding: 1em 0 .5em; }
.jiva-prose > :is(h1, h2, h3, h4, h5, h6):first-child { padding-top: 0; }
.jiva-prose h1 { font-size: var(--fs-page-title); }
.jiva-prose h2 { font-size: var(--fs-title-sm); }   /* like the section headings of the other pages (career, contact, privilege) */
.jiva-prose h3 { font-size: var(--fs-lead); }
.jiva-prose h4 { font-size: var(--fs-body-lg); }
.jiva-prose :is(h5, h6) { font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .jiva-prose h1 { font-size: 30px; }
  .jiva-prose h2 { font-size: 20px; }
  .jiva-prose h3 { font-size: 18px; }
  .jiva-prose h4 { font-size: 16px; }
  .jiva-prose :is(h5, h6) { font-size: var(--fs-text-m); }
}
@media only screen and (max-width: 1024px) {
  /* Phone story and career cards */
  .story-list .story-item__title h2 { padding-block: 0; }
  .career-item__summary .career-item__title h2 { padding-block: 0; }   /* below: the details' own 20px */
}
h1 { font-size: var(--fs-display); }
h2 { font-size: var(--fs-section); }
h3, h4, h5, h6 { font-size: 2.4rem; }
a { color: inherit; text-decoration: none; }
/* Touch screens */
html { -webkit-tap-highlight-color: transparent; }
/* No blinking text cursor in plain text: with caret browsing on (F7 in Chrome, Edge and Firefox) a click in any text
   puts one there as if it were a field. Hidden outside the fields; selecting and copying text still work. */
body { caret-color: transparent; }
input, textarea, [contenteditable]:not([contenteditable="false"]) { caret-color: auto; }
ul { list-style: none; }
@media only screen and (max-width: 1024px) {
  body { font-size: var(--fs-text-m); }
  h1 { font-size: 45px; }
  h2 { font-size: 30px; }
  h3, h4, h5, h6 { font-size: 20px; }
}

/* Utilities */
/* Read by screen readers only */
.u-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.bgrsize100 { background-size: 100% 100%; background-repeat: no-repeat; overflow: hidden; }
/* Inline SVG icons from jiva_icon() (inc/support.php) */
.icon { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: var(--icon-stroke, 1); }
.icon circle { fill: var(--icon-fill, none); }
.icon .icon-fill { fill: currentColor; stroke: none; }
.availability-bar-spacer { position: relative; height: 5rem; }
.center { text-align: center; }
/* State class: these are shown while .is-active (toggled by JS) */
.loading.is-active, .gallery__tab > button.is-active { display: block !important; }
/* Image notices (core.js initImageNotices()) */
img.is-image-notice { object-fit: contain !important; background-color: var(--clr-cream-base); }
.is-image-notice-bg { background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; background-color: var(--clr-green-dark) !important; }

@media only screen and (max-width: 1024px) {
  .availability-bar-spacer { height: 50px; }
}

/* Loading Screen */
.page-curtain {
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  background-color: var(--clr-cream-base);
  z-index: var(--z-curtain);
  overflow: hidden;
  inset: 0;
  transform: translate3d(0, 0, 0);
  will-change: opacity;
}
/* Page transition */
.page-curtain__logo {
  background-image: url(../images/brand/logo-full.svg); width: 20rem; height: 20rem;
  transition: opacity .5s ease, transform var(--curtain-time) var(--curtain-ease);
}
.page-curtain.is-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--curtain-time) var(--curtain-ease) .2s, visibility 0s linear calc(var(--curtain-time) + .2s);
}
.page-curtain.is-hide .page-curtain__logo { opacity: 0; transform: scale(.96); }
.page-curtain.is-reset { opacity: 0; transition: none; }
.page-curtain.is-reset .page-curtain__logo { opacity: 0; transform: scale(.96); transition: none; }
.page-curtain.is-cover { opacity: 1; transition: opacity var(--curtain-leave) ease; }
.page-curtain.is-cover .page-curtain__logo { opacity: 1; transform: none; transition: opacity var(--curtain-leave) ease .15s, transform var(--curtain-time) var(--curtain-ease) .15s; }
.loading {
  background-image: url(../images/ui/loading.svg);
  position: absolute;
  transform: translate(-50%, -50%);
  display: none;
  z-index: 5;
}
.loading { width: 3rem; height: 3rem; top: 50%; left: 70%; }

/* Icons */
.brand-logo { background-size: 100% 100%; background-repeat: no-repeat; overflow: hidden; }
.brand-logo--mark { background-image: url(../images/brand/logo.svg); width: 7.63rem; height: 6.9rem; }
.brand-logo--mark-sm { background-image: url(../images/brand/logo.svg); width: 3rem; height: 2.5rem; }
.brand-logo--full { background-image: url(../images/brand/logo-full.svg); width: 10.7rem; height: 13.1rem; }
/* Native buttons that keep the look of the old div/span/a controls */
:where(.scroll-down__btn, .search-iconx, .text-expand, .home-exp__tab, .home-exp__thumb) {
  appearance: none; background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; text-align: inherit; cursor: pointer;
}
.scroll-down__btn { display: block; }
.icon-scroll { display: block; color: var(--clr-cream-light); --icon-stroke: 1.8; width: 2.1rem; height: 4.2rem; }
/* Inline SVG UI icons (jiva_icon): colour via `color` */
.fb-icon, .ig-icon, .in-icon, .trip-icon { color: var(--clr-gold); }
.fb-icon { width: 1.3rem; height: 2.3rem; }
.ig-icon { width: 2.4rem; height: 2.1rem; }
.in-icon { width: 2.4rem; height: 2.1rem; }
.trip-icon { width: 3.5rem; height: 2.2rem; }
.search-iconx, .phone-icon, .mail-icon, .menu-icon,
.room-icon, .size-icon, .bedding-icon, .valley-icon { color: var(--clr-green-medium); }
.search-iconx { width: 2.1rem; height: 2.1rem; }
.phone-icon { width: 2.1rem; height: 2.1rem; }
.whatsapp-icon { background-image: url(../images/contact/whatsapp.png); width: 2.1rem; height: 2.1rem; }
.mail-icon { width: 2.1rem; height: 2.1rem; }
.mailc-icon { background-image: url(../images/ui/mail-sent.svg); width: 2.1rem; height: 2.1rem; }
.site-footer__slh {
  background-image: url(../images/brand/slh.png);
  width: 13.1rem;
  height: 13.1rem;
  margin-left: 0.5rem;
}
.back-icon { color: var(--clr-green-medium); --icon-stroke: 2; width: 2.1rem; height: 2.1rem; }
.room-icon { width: 3rem; height: 3rem; margin-right: 1.2rem; }
.size-icon { width: 2.1rem; height: 2.1rem; margin-right: 2.1rem; }
.bedding-icon {
  width: 2.6rem;
  height: 1.9rem;
  margin-right: 1.6rem;
}
.valley-icon {
  width: 2.3rem;
  height: 3.1rem;
  margin-right: 1.9rem;
}
.acc-menu-icon {
  background-image: url(../images/amenities/menu.png);
  width: 1.86rem;
  height: 2.34rem;
  margin-right: 1.94rem;
}
.acc-themed_privileges-icon {
  background-image: url(../images/amenities/themed_privileges.png);
  width: 2.3rem;
  height: 3rem;
  margin-right: 1.5rem;
}
.acc-living_area-icon {
  background-image: url(../images/amenities/living_area.png);
  width: 3rem;
  height: 1.7rem;
  margin-right: 0.8rem;
}
.acc-terrace-icon {
  background-image: url(../images/amenities/terrace.png);
  width: 3rem;
  height: 1.9rem;
  margin-right: 0.8rem;
}
.acc-private_terrace-icon {
  background-image: url(../images/amenities/private_terrace.png);
  width: 3rem;
  height: 1.91rem;
  margin-right: 0.8rem;
}
.acc-standalone_villa-icon {
  background-image: url(../images/amenities/standalone_villa.png);
  width: 2.21rem;
  height: 2.26rem;
  margin-right: 1.59rem;
}
.acc-livinganddining-icon {
  background-image: url(../images/amenities/livinganddining.png);
  width: 2.51rem;
  height: 2.27rem;
  margin-right: 1.29rem;
}
.acc-private_pool-icon {
  background-image: url(../images/amenities/private_pool.png);
  width: 3rem;
  height: 2.18rem;
  margin-right: 0.8rem;
}
.acc-double_vanity-icon {
  background-image: url(../images/amenities/double_vanity.png);
  width: 3rem;
  height: 1.52rem;
  margin-right: 0.8rem;
}
.acc-retreat_room-icon {
  background-image: url(../images/amenities/retreat_room.png);
  width: 2.65rem;
  height: 1.91rem;
  margin-right: 1.15rem;
}
.acc-energizing-icon {
  background-image: url(../images/amenities/energizing.png);
  width: 2.31rem;
  height: 2.28rem;
  margin-right: 1.49rem;
}
.acc-calming-icon {
  background-image: url(../images/amenities/calming.png);
  width: 1.7rem;
  height: 2.26rem;
  margin-right: 2.1rem;
}
.acc-disgestive-icon {
  background-image: url(../images/amenities/disgestive.png);
  width: 2.28rem;
  height: 2.56rem;
  margin-right: 1.52rem;
}
.acc-caffein-icon {
  background-image: url(../images/amenities/caffein.png);
  width: 1.7rem;
  height: 2.19rem;
  margin-right: 2.1rem;
}
.acc-bathtub-icon {
  background-image: url(../images/amenities/bathtub.svg);
  width: 2.21rem;
  height: 2.295rem;
  margin-right: 1.59rem;
}
.acc-vanity_kits-icon {
  background-image: url(../images/amenities/vanity_kits.svg);
  width: 2.125rem;
  height: 2.295rem;
  margin-right: 1.675rem;
}
.acc-minibar-icon {
  background-image: url(../images/amenities/minibar.svg);
  width: 2.04rem;
  height: 2.04rem;
  margin-right: 1.76rem;
}
.acc-handicrafts-icon {
  background-image: url(../images/amenities/handicrafts.svg);
  width: 1.7rem;
  height: 3.23rem;
  margin-right: 2.1rem;
}
@media only screen and (max-width: 1024px) {
  .brand-logo--mark { width: 65px; height: 59px; }
  .brand-logo--mark-sm { width: 40px; height: 40px; }   /* the header logo: one size, the bar slims instead */
  .brand-logo--full { width: 58px; height: 71px; }
  .site-footer__slh { width: 71px; height: 71px; }
  .fb-icon { width: 13px; height: 23px; }
  .ig-icon { width: 24px; height: 21px; }
  .in-icon { width: 24px; height: 21px; }
  .trip-icon { width: 35px; height: 22px; }
  .menu-icon { width: 22px; height: 16px; }
  .acc-menu-icon { width: 19px; height: 23px; margin-right: 19px; }
  .acc-themed_privileges-icon { width: 23px; height: 30px; margin-right: 15px; }
  .acc-living_area-icon { width: 30px; height: 17px; margin-right: 8px; }
  .acc-terrace-icon { width: 30px; height: 19px; margin-right: 8px; }
  .acc-private_terrace-icon { width: 30px; height: 19px; margin-right: 8px; }
  .acc-standalone_villa-icon { width: 22px; height: 23px; margin-right: 16px; }
  .acc-livinganddining-icon { width: 25px; height: 23px; margin-right: 13px; }
  .acc-private_pool-icon { width: 30px; height: 22px; margin-right: 8px; }
  .acc-double_vanity-icon { width: 30px; height: 15px; margin-right: 8px; }
  .acc-retreat_room-icon { width: 27px; height: 19px; margin-right: 12px; }
  .acc-energizing-icon { width: 23px; height: 23px; margin-right: 15px; }
  .acc-calming-icon { width: 17px; height: 23px; margin-right: 21px; }
  .acc-disgestive-icon { width: 23px; height: 26px; margin-right: 15px; }
  .acc-caffein-icon { width: 17px; height: 22px; margin-right: 21px; }
  .acc-bathtub-icon { width: 22.1px; height: 22.95px; margin-right: 15.9px; }
  .acc-vanity_kits-icon { width: 21.25px; height: 22.95px; margin-right: 16.75px; }
  .acc-minibar-icon { width: 20.4px; height: 20.4px; margin-right: 17.6px; }
  .acc-handicrafts-icon { width: 17px; height: 32.3px; margin-right: 21px; }
  .room-icon { width: 25px; height: 25px; margin-right: 0; margin-bottom: 15px; margin-top: 10px; }
  .size-icon { width: 25px; height: 20px; margin-right: 0; margin-bottom: 15px; margin-top: 10px; }
  .bedding-icon { width: 25px; height: 25px; margin-right: 0; margin-bottom: 15px; margin-top: 10px; }
  .valley-icon { width: 25px; height: 25px; margin-right: 0; margin-bottom: 10px; margin-top: 10px; }
  .phone-icon { width: 21px; height: 21px; }
  .whatsapp-icon { width: 21px; height: 21px; }
  .mail-icon { width: 21px; height: 21px; }
  .back-icon { width: 20px; height: 20px; margin-right: 10px; }
  .single-story .back-icon { color: var(--clr-cream-base); }
  .icon-scroll { width: 10px; height: 20px; }
}

/* UI Overrides (Button / Input / Dropdown) */
/* Form submits stay disabled until the required fields are filled (core.js updateJivaSubmit) */
form[data-jiva-form] .ui-btn[type=submit]:disabled {
  --bg: var(--ui-accent); --bg-hover: var(--ui-accent); --bg-active: var(--ui-accent);
  --color: var(--ui-on-accent); --bc: var(--ui-accent); --bc-hover: var(--ui-accent); --bc-active: var(--ui-accent);
  --color-hover: var(--ui-on-accent); --ls-hover: var(--ls);   /* no hover change while locked */
  opacity: .6; pointer-events: auto; cursor: not-allowed;
}
/* Being sent (core.js setFormLoading) */
form[data-jiva-form] .ui-btn[type=submit].is-loading { opacity: 1; cursor: progress; }
/* Field toast */
.has-field-toast { position: relative; }
.field-toast {
  position: absolute; left: 0; top: calc(100% + 1.2rem); z-index: 5;
  padding: .8rem 1.6rem; border-radius: var(--radius-sm);
  background: var(--clr-green-dark); color: var(--clr-cream-light);
  font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-tight); letter-spacing: var(--ls-body);
  text-transform: none; text-align: left; white-space: nowrap;
  opacity: 0; transform: translateY(-.6rem); pointer-events: none;
  transition: opacity var(--transition), transform var(--transition);
}
.field-toast::before { content: ""; position: absolute; left: 2rem; bottom: 100%; border: .7rem solid transparent; border-bottom-color: var(--clr-green-dark); }
.field-toast.is-visible { opacity: 1; transform: none; }
@media only screen and (max-width: 1024px) {
  .field-toast { top: calc(100% + 8px); padding: 6px 12px; font-size: var(--fs-text-m); }
  .field-toast::before { left: 16px; border-width: 6px; }
}
/* Control sizes, every page */
:root { --control-h: 4.5rem; }
:is(.ui-btn, .ui-input, .ui-input-group, .ui-dropdown, .ui-select, .ui-combo, .ui-stepper):where(:not(.ui-btn--sm, .ui-btn--lg, .ui-input--sm, .ui-input--lg, .ui-input--multiline, .ui-dropdown--sm, .ui-dropdown--lg, .ui-select--sm, .ui-select--lg, .ui-combo--sm, .ui-combo--lg, .ui-stepper--sm, .ui-stepper--lg, .site-header *)) { --h: var(--control-h); }
.cal:where(:not(.site-header *)) { --input-h: var(--control-h); }
@media only screen and (max-width: 1024px) {
  /* Phones: body text 15px with a 1.55 line height */
  :root { --control-h: 44px; --control-fs: 16px; --control-fs-btn: 15px; --fs-text-m: 15px; --lh-body: 1.55; --radius-sm: 8px; --radius-lg: 12px; --space-block: 30px; --space-section: var(--space-section-mobile); --space-section-lg: var(--space-section-mobile-lg); }
  :is(.ui-input, .ui-input-group, .ui-combo, .ui-stepper):where(:not(.ui-btn--sm, .ui-btn--lg, .ui-input--sm, .ui-input--lg, .ui-dropdown--sm, .ui-dropdown--lg, .ui-select--sm, .ui-select--lg, .ui-combo--sm, .ui-combo--lg, .ui-stepper--sm, .ui-stepper--lg, .site-header *)) { --fs: var(--control-fs); }
  :is(.ui-btn, .ui-dropdown, .ui-select):where(:not(.ui-btn--sm, .ui-btn--lg, .ui-dropdown--sm, .ui-dropdown--lg, .ui-select--sm, .ui-select--lg, .site-header *)) { --fs: var(--control-fs-btn); }
  .cal:where(:not(.site-header *)) { --cal-input-fs-sm: var(--control-fs); }
  /* Checkbox and radio labels (form consents, press kit Yes / No) */
  .ui-check:where(:not(.ui-check--sm, .ui-check--lg)) { --fs: var(--fs-text-m); }
}
.home-sust__actions .ui-btn {
  --bg: var(--clr-green-dark);
  --color: var(--clr-gold);
  --bc: var(--clr-gold);
  --bg-hover: var(--clr-gold);
  --color-hover: var(--clr-cream-light);
}
/* Gold outline button, the gold fades in on hover */
.home-wine__info .ui-btn, .home-acc__slider .ui-btn, .story-item .ui-btn, .career-item .ui-btn {
  --bg: transparent;
  --color: var(--clr-gold);
  --bc: var(--clr-gold);
  --bg-hover: var(--clr-gold);
  --color-hover: var(--clr-cream-light);
}
.list-accomodation .ui-btn { --w: 24rem; }
.ll-venues .ui-btn { min-width: 33rem; }
.story-item .ui-btn, .career-item .ui-btn { --px: 3.9rem; }
/* The featured story's button sits on the dark image */
.story-item--featured .ui-btn { --color: var(--clr-cream-light); --bc: var(--clr-cream-light); --bc-hover: var(--clr-gold); }
/* Every button is shown in caps */
.ui-btn { text-transform: uppercase; }
/* Form submits and the Privileges cards' "Book Now" */
.inquiry-form .ui-btn, .career-form .ui-btn, .presskit-form .ui-btn, .booking-form .ui-btn, .privilege-card__link .ui-btn { --w: 100%; --h: 5.5rem; --fs: 2.1rem; }
.search-box .ui-input { --w: 24rem; --color: var(--clr-green-dark); }
/* Suggestions under the header search box (core.js initSearchSuggest()) */
.site-header__search { position: relative; }
.search-suggest {
  position: absolute; top: calc(100% + 1rem); left: 0; z-index: var(--z-menu);
  width: 52rem; max-height: calc(100vh - 12rem); overflow-y: auto;
  background-color: var(--clr-cream-light); border: var(--border-hairline); border-radius: var(--radius-sm);
  box-shadow: 0 .6rem 1.8rem rgba(0, 0, 0, .12);
}
.search-suggest[hidden] { display: none; }
.search-suggest__item { display: flex; align-items: center; gap: 1.5rem; padding: 1.2rem 1.5rem; color: var(--clr-green-dark); }
.search-suggest__item + .search-suggest__item { border-top: 1px solid var(--clr-gold-line); }
.search-suggest__item.is-active, .search-suggest__all.is-active { background-color: var(--clr-cream-base); }
@media (hover: hover) { .search-suggest__item:hover, .search-suggest__all:hover { background-color: var(--clr-cream-base); } }
.search-suggest__thumb { flex: 0 0 5.5rem; height: 5.5rem; overflow: hidden; background-color: var(--clr-cream-base); }
.search-suggest__thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-suggest__text { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.search-suggest__title {
  font-family: var(--font-display); font-size: var(--fs-body-lg); line-height: var(--lh-tight); color: var(--clr-gold);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.search-suggest__crumb { font-size: var(--fs-caption); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--clr-green-medium); }
.search-suggest__all, .search-suggest__empty {
  display: block; padding: 1.4rem 1.5rem; border-top: var(--border-hairline);
  font-size: var(--fs-body); color: var(--clr-green-dark);
}
.search-suggest__all { text-decoration: underline; text-underline-offset: .2em; }
.search-suggest__empty { border-top: none; }
.career-filters__search .ui-input { 
  --color: var(--clr-green-dark); --px: 0; 
  --ui-bc: transparent;
  --ui-bc-hover: transparent;
  --ui-bc-focus: transparent;
}
.career-filters__search { font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .career-filters__search { font-size: var(--fs-text-m); }
}
.inquiry-form .ui-input, .newsletter-form .ui-input, .inquiry-form .ui-dropdown, .career-form .ui-input, .presskit-form .ui-input, .booking-form .ui-input, .inquiry-form .inquiry-form__cell--code .ui-combo, .presskit-form .ui-combo, .booking-form .ui-combo { --color: var(--clr-green-dark); }
.story-filter .ui-dropdown {
  min-width: 25rem; max-width: 30rem; margin-left: 1.4rem;
  --w: auto; --px: 0; --bw: 0;
}
.career-filters .ui-dropdown { --px: 0; --bw: 0;}
.inquiry-form .ui-dropdown, .inquiry-form .ui-combo, .story-filter .ui-dropdown, .career-filters .ui-dropdown { --menu-maxh: 30rem; --ui-color: var(--clr-green-dark); }
.inquiry-form .ui-combo, .presskit-form .ui-combo, .booking-form .ui-combo { --menu-pad: 0; }
.inquiry-form .ui-dropdown, .inquiry-form .ui-combo, .presskit-form .ui-combo, .booking-form .ui-combo { --item-h: 4.5rem; }
.career-form .ui-input--multiline, .booking-form .ui-input--multiline { --h: 15rem; }
.inquiry-form .ui-input--multiline, .presskit-form .ui-input--multiline { --h: 20rem; }
/* Phone sizes for the overrides above */
@media only screen and (max-width: 1024px) {
  .story-item .ui-btn, .career-item .ui-btn { --px: 20px; }
  .inquiry-form .ui-btn, .career-form .ui-btn, .presskit-form .ui-btn, .booking-form .ui-btn, .privilege-card__link .ui-btn { --h: var(--control-h); --fs: var(--control-fs-btn); }
  .inquiry-form .ui-dropdown, .inquiry-form .ui-combo, .story-filter .ui-dropdown, .career-filters .ui-dropdown { --menu-maxh: 240px; }
  .inquiry-form .ui-dropdown, .inquiry-form .ui-combo, .presskit-form .ui-combo, .booking-form .ui-combo { --item-h: 40px; }
  .booking-form .ui-input--multiline { --h: 120px; }
  .career-form .ui-input--multiline { --h: 140px; }   /* same as the Contact / Press kit message box */
  .inquiry-form .ui-input--multiline, .presskit-form .ui-input--multiline { --h: 140px; }
}

/* Language */

/* Autocomplete / Flag */
.autocomplete { position: relative; display: inline-block; }

/* Popup Reservation / Promotion / Travelagent */
.reservation-popup.ui-popup {
  --pad: 5rem 9rem;
  --bg: var(--clr-cream-base);
}
.promotion-popup.ui-popup { --bg: var(--clr-cream-base); --pad: 5rem 9rem 10rem; }
.travelagent-popup.ui-popup { --bg: var(--clr-cream-base); --pad: 5rem 9rem; }
/* The artwork loads only when the popup opens */
:is(.promotion-popup, .travelagent-popup).ui-popup.is-open {
  --bg: url(../images/backgrounds/promotion-popup.webp) 0 -469.394px / 100% 229.59% no-repeat, var(--clr-cream-base);
}
/* After a submit the popup forms show the shared thank-you block */
.ui-popup.is-result:is(.reservation-popup, .promotion-popup, .travelagent-popup) { --w: 56rem; --bg: var(--clr-cream-base); --pad: 5rem 5rem 4rem; }
@media only screen and (max-width: 1024px) {
  .ui-popup.is-result:is(.reservation-popup, .promotion-popup, .travelagent-popup) { --w: 100%; --pad: 32px 16px 24px; }
}
.reservation-popup__title {
  color: var(--clr-gold);
  text-align: center;
  font-family: var(--font-display);
  font-size: var(--fs-title-md);
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: var(--lh-tight);
  text-transform: uppercase;
  margin-bottom: 5rem;
}
.reservation-popup__notice {
  color: var(--clr-green-dark);
  text-align: center;
}
/* No venue notice: its row takes no space (it would add a gap before Submit) */
.popup-form__row:has(> .reservation-popup__notice p:empty) { display: none; }
.popup-form__row {
  display: flex;
  justify-content: space-between;
  gap: 1.2rem;
  align-items: center;
  width: 100%;
  margin-top: 2.2rem;
}
.popup-form__cell--email { width: 40%;}
.popup-form__cell--code { width: 30%;}
.popup-form__cell--phone { width: 30%;}

.popup-form__cell--people { width: 35%;}
.popup-form__cell--date { width: 45%;}
.popup-form__cell--time { width: 20%;}

.reservation-form .ui-input,
.promotion-form .ui-input,
.travelagent-form .ui-input,
.reservation-form .ui-dropdown,
.reservation-form .ui-combo {
  --menu-pad: 0;
}
.reservation-form .cal { --cal-input-fs: 1.75rem; }
.reservation-form .ui-input.ui-input--multiline,
.travelagent-form .ui-input.ui-input--multiline {
  --h: 20rem;
}
.reservation-form .ui-dropdown, .reservation-form .ui-combo {
  --item-h: 4.5rem;
}
.reservation-form .ui-btn,
.promotion-form .ui-btn,
.travelagent-form .ui-btn {
  --h: 5.5rem;
  --fs: 2.1rem;
  text-transform: uppercase;
}
/* Phone sizes for the popup forms (same values as the contact form) */
@media only screen and (max-width: 1024px) {
  .travelagent-form .ui-input.ui-input--multiline { --h: 120px; }
  .reservation-form .ui-input.ui-input--multiline { --h: 140px; }
  /* Reservation on phones */
  .reservation-form .popup-form__row { flex-wrap: wrap; gap: 12px 10px; }
  .reservation-form .popup-form__row > .ui-input,
  .reservation-form .popup-form__cell--email,
  .reservation-form .popup-form__cell--people { width: 100%; margin-top: 0; }
  .reservation-form .popup-form__cell--code { width: 130px; flex: none; margin-top: 0; }
  .reservation-form .popup-form__cell--time { width: 110px; flex: none; }
  .reservation-form .popup-form__cell--phone,
  .reservation-form .popup-form__cell--date { width: auto; flex: 1 1 0; margin-top: 0; }
  .reservation-form .popup-form__row > .ui-input:not(:only-child) { width: auto; flex: 1 1 0; }   /* the two names */
  /* The date picker is as wide as its row, i.e */
  .popup-form__row:has(.cal--popup) { container-type: inline-size; }
  .popup-form__row .cal--popup { --popup-min-w: 0; --popup-w: 100cqw; }
  .reservation-form .ui-dropdown, .reservation-form .ui-combo { --item-h: 40px; }
  .reservation-form .ui-btn,
  .promotion-form .ui-btn,
  .travelagent-form .ui-btn { --h: var(--control-h); --fs: var(--control-fs-btn); }
}
.reservation-popup [hidden] { display: none !important; }

.travelagent-popup__title {
  color: var(--clr-gold);
  font-family: var(--font-display);
  text-transform: uppercase;
  text-align: center;
  font-size: var(--fs-title-md);
}
.travelagent-popup__intro {
  color: var(--clr-green-dark);
  padding: 2rem 13rem;
  text-align: center;
}
.promotion-popup__logo {
  display: flex; justify-content: center; align-items: center;
  margin-bottom: 7rem;
}
.promotion-popup__eyebrow {
  color: var(--clr-gold);
  text-align: center;
  font-family: var(--font-display);
  font-size: var(--fs-body-lg);
  text-transform: uppercase;
  margin-bottom: 2rem;
}
.promotion-popup__title {
  color: var(--clr-gold);
  font-family: var(--font-display);
  text-transform: uppercase;
  text-align: center;
  font-size: var(--fs-title-md);
  line-height: var(--lh-tight);
  margin-bottom: 2rem;
}
.promotion-popup__intro {
  color: var(--clr-green-dark);
  text-align: center;
  padding: 0 16rem;
  margin-bottom: 3.7rem;
}
/* Phone sizes for the popup headings; the form rows may shrink below their inputs' default width */
@media only screen and (max-width: 1024px) {
  .popup-form__row > * { min-width: 0; }
  /* Every popup form */
  .popup-form__row { margin-top: 12px; column-gap: 10px; }
  /* Popups: 16px padding (the kit's 20px was a little roomy on a phone) */
  .ui-popup,
  .reservation-popup.ui-popup,
  .promotion-popup.ui-popup,
  .travelagent-popup.ui-popup { --pad: 16px; }
  .reservation-popup__title { font-size: 24px; margin: 10px 0 20px; }
  .travelagent-popup__title { font-size: 24px; margin-top: 10px; }
  .travelagent-popup__intro { padding: 10px 0; }
  .promotion-popup__logo { margin-bottom: 20px; }
  .promotion-popup__eyebrow { font-size: 16px; margin-bottom: 10px; }
  .promotion-popup__title { font-size: 24px; margin-bottom: 10px; }
  .promotion-popup__intro { padding: 0; margin-bottom: 20px; }
}
/* Start popup and the thank-you popups (components/popup.php) */
.start-popup.ui-popup, .notice-popup.ui-popup { --bg: var(--clr-cream-base); --bc: var(--clr-gold); text-align: center; }
.start-popup.ui-popup { --w: 70rem; --pad: 6rem 7rem 5rem; }
.notice-popup.ui-popup { --w: 56rem; --pad: 5rem 5rem 4rem; }
.start-popup__title { color: var(--clr-gold); font-family: var(--font-display); text-transform: uppercase; line-height: var(--lh-tight); font-size: var(--fs-section); margin-bottom: 2.4rem; }
.start-popup__text, .thanks__text { color: var(--clr-green-dark); font-size: var(--fs-body); line-height: var(--lh-body); }
.start-popup__actions, .thanks__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.6rem; }
.start-popup__actions { margin-top: 3.5rem; }
.start-popup__actions .ui-btn, .thanks__actions .ui-btn { --px: 3.9rem; }
/* Thank-you block of every form (inc/support.php jiva_thanks_block()) */
.thanks { text-align: center; }
.thanks__icon { width: 5rem; height: 5rem; margin: 0 auto 2rem; }
.thanks__text { margin-bottom: 3rem; }
.thanks__text p { margin: 0; }
.thanks__text p + p { margin-top: 1em; }
@media only screen and (max-width: 1024px) {
  .start-popup.ui-popup, .notice-popup.ui-popup { --w: 100%; --pad: 32px 16px 24px; }
  .start-popup__title { font-size: 30px; margin-bottom: 15px; }
  .start-popup__text, .thanks__text { font-size: var(--fs-text-m); }
  .start-popup__actions, .thanks__actions { gap: 10px; }
  .start-popup__actions { margin-top: 25px; }
  .start-popup__actions .ui-btn, .thanks__actions .ui-btn { --px: 20px; }
  .thanks__icon { width: 40px; height: 40px; margin-bottom: 20px; }
  .thanks__text { margin-bottom: 25px; }
}
/* reCAPTCHA: Google's floating badge is hidden */
.grecaptcha-badge { visibility: hidden !important; }
.form-notice { margin-top: 1.4rem; font-size: var(--fs-caption); line-height: var(--lh-body); letter-spacing: var(--ls-body); text-align: center; opacity: .75; }
.form-notice a { color: inherit; text-decoration: underline; }
.newsletter-form .form-notice { text-align: left; }
/* Footer newsletter */
.site-footer .form-notice { text-transform: none; }
.site-footer .form-notice a { display: inline; color: inherit; }
@media only screen and (max-width: 1024px) {
  .form-notice { margin-top: 12px; font-size: 12px; }
}
/* Cookie notice (components/cookie-notice.php, core.js initCookieNotice) */
.cookie-notice {
  position: fixed; left: 2.4rem; bottom: calc(5rem + 2.4rem); z-index: var(--z-wine-box);
  width: min(46rem, calc(100vw - 4.8rem)); padding: 2.8rem 3rem 3rem; box-sizing: border-box;
  background: var(--clr-cream-light); border: var(--border-hairline); border-radius: var(--radius-lg);
  box-shadow: 0 1.2rem 4rem color-mix(in srgb, var(--clr-green-medium) 16%, transparent); color: var(--clr-green-dark);
  opacity: 0; transform: translateY(2rem); transition: opacity .4s ease, transform .4s cubic-bezier(.22, 1, .36, 1);
}
.cookie-notice.is-visible { opacity: 1; transform: none; }
.cookie-notice__title { color: var(--clr-gold); font-family: var(--font-display); text-transform: uppercase; font-size: var(--fs-title-sm); line-height: var(--lh-tight); }
.cookie-notice__text { margin: 1.2rem 0 2.2rem; font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.cookie-notice__text a { color: var(--clr-gold); text-decoration: underline; }
.cookie-notice__actions { display: flex; gap: 1.2rem; }
.cookie-notice__actions .ui-btn { flex: 1; }
@media only screen and (max-width: 1024px) {
  .cookie-notice { left: var(--gutter-mobile); right: var(--gutter-mobile); bottom: 62px; width: auto; padding: 20px; }
  .cookie-notice__title { font-size: 20px; }
  .cookie-notice__text { margin: 10px 0 16px; font-size: var(--fs-text-m); }
  .cookie-notice__actions { gap: 10px; }
}

/* Corner dock (fixed-contact.php, core.js initContactDock()), every page */
.contact-dock {
  /* Desktop: just above the fixed availability bar, which holds back to top */
  position: fixed; right: 2.4rem; bottom: calc(5rem + 1.6rem); z-index: var(--z-fixed);
  display: flex; flex-direction: column; align-items: flex-end; gap: 1.2rem;
  transition: opacity .3s ease, transform .3s ease;
}
/* Homepage: hidden until the gallery is reached, then in together with the availability bar */
body:not(.has-fixed-ui) .contact-dock { opacity: 0; transform: translateY(2rem); pointer-events: none; }
/* Back to top (dock on phones, availability bar on desktop) */
.contact-dock__top, .availability-bar__top {
  padding: 0; border: 0; background: none; cursor: pointer;
  color: var(--clr-gold); --icon-fill: var(--clr-cream-light); --icon-stroke: 1.5;
}
@media (hover: hover) { .contact-dock__top:hover, .availability-bar__top:hover { color: var(--clr-cream-light); --icon-fill: var(--clr-gold); } }
:is(.contact-dock__top, .availability-bar__top) .icon path { fill: currentColor; }   /* a small triangle, as Swiper draws it in the sliders */
.availability-bar__top {
  position: absolute; top: 50%; right: calc(2.4rem + 1.3rem); transform: translateY(-50%);   /* under the launcher's centre */
  width: 3.8rem; height: 3.8rem;
  opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s, color var(--transition);
}
.availability-bar.has-top .availability-bar__top { opacity: 1; visibility: visible; transition-delay: 0s; }
@media only screen and (min-width: 1025px) {
  .contact-dock .contact-dock__top { display: none; }   /* desktop: back to top is in the availability bar */
}
.contact-dock__top {
  display: flex; justify-content: center; align-items: center;
  width: 4.6rem; height: 4.6rem; margin-right: .9rem;
  border-radius: var(--radius-round); box-shadow: 0 .6rem 1.8rem color-mix(in srgb, var(--clr-green-medium) 14%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(1rem);
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear .35s, color var(--transition);
}
.contact-dock.has-top .contact-dock__top { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.contact-dock__dial { position: relative; display: flex; align-items: center; }
.contact-dock__toggle {
  position: relative; width: 6.4rem; height: 6.4rem; padding: 0;
  background: var(--clr-cream-light); border: .1rem solid var(--clr-gold); border-radius: var(--radius-round);
  box-shadow: 0 .8rem 2.4rem color-mix(in srgb, var(--clr-green-medium) 18%, transparent); cursor: pointer;
  animation: dock-nudge 7s ease-in-out infinite;
}
.contact-dock__toggle::before {   /* the pulse */
  content: ""; position: absolute; inset: -.1rem; border-radius: var(--radius-round); border: .1rem solid var(--clr-gold);
  animation: dock-pulse 2.4s ease-out infinite; pointer-events: none;
}
.contact-dock__preview { position: absolute; inset: .9rem; transition: opacity .3s ease; }
.contact-dock__badge {
  position: absolute; inset: 0; background: center / contain no-repeat;
  opacity: 0; transform: scale(.8); transition: opacity .6s ease, transform .6s cubic-bezier(.22, 1, .36, 1);
}
.contact-dock__badge.is-shown { opacity: 1; transform: none; }
.contact-dock__close {
  position: absolute; inset: 0; display: flex; justify-content: center; align-items: center;
  color: var(--clr-gold); opacity: 0; transform: rotate(-90deg);
  transition: opacity .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1);
}
.contact-dock__close .icon { width: 1.8rem; height: 1.8rem; }
.contact-dock.is-open .contact-dock__toggle, .contact-dock.is-open .contact-dock__toggle::before { animation: none; }
.contact-dock.is-open .contact-dock__toggle::before { opacity: 0; }
.contact-dock.is-open .contact-dock__preview { opacity: 0; }
.contact-dock.is-open .contact-dock__close { opacity: 1; transform: none; }
.contact-dock__items {
  position: absolute; right: calc(100% + 1.4rem); top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: row-reverse; gap: 1.2rem; pointer-events: none;
}
.contact-dock__btn {
  position: relative; display: block; width: 5.2rem; height: 5.2rem; padding: 0; border: 0; border-radius: var(--radius-round);
  background: center / contain no-repeat; cursor: pointer;
  opacity: 0; transform: translateX(2rem) scale(.6);
  transition: opacity .3s ease, transform .45s cubic-bezier(.22, 1, .36, 1);
}
.contact-dock.is-open .contact-dock__items { pointer-events: auto; }
.contact-dock.is-open .contact-dock__btn { opacity: 1; transform: none; transition-delay: calc(var(--i) * .05s); }
@media (hover: hover) { .contact-dock__btn:hover { transform: scale(1.08); } }
.contact-dock__btn--promotion { background-image: url(../images/contact/promotion.svg); }
.contact-dock__btn--travelagent { background-image: url(../images/contact/travel-agent.png); }
.contact-dock__btn--messenger { background-image: url(../images/contact/messenger.svg); }
.contact-dock__btn--whatsapp { background-image: url(../images/contact/whatsapp-badge.svg); }
.contact-dock__label {
  position: absolute; bottom: calc(100% + .8rem); left: 50%; transform: translateX(-50%);
  padding: .4rem 1rem; border-radius: var(--radius-sm); background: var(--clr-green-dark); color: var(--clr-cream-light);
  font-size: var(--fs-caption); letter-spacing: var(--ls-body); white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .2s ease;
}
.contact-dock__btn:focus-visible .contact-dock__label { opacity: 1; }
@media (hover: hover) { .contact-dock__btn:hover .contact-dock__label { opacity: 1; } }
@keyframes dock-pulse {
  0% { transform: scale(1); opacity: .7; }
  100% { transform: scale(1.55); opacity: 0; }
}
@keyframes dock-nudge {
  0%, 86%, 100% { transform: none; }
  89% { transform: rotate(-12deg); }
  92% { transform: rotate(10deg); }
  95% { transform: rotate(-6deg); }
}
@media (prefers-reduced-motion: reduce) {
  .contact-dock__toggle, .contact-dock__toggle::before { animation: none; }
}
@media only screen and (max-width: 1024px) {
  /* Above the phones' Book now bar (50px) */
  .contact-dock { right: 12px; bottom: 64px; gap: 10px; }
  .contact-dock__top { width: 40px; height: 40px; margin-right: 6px; }
  .contact-dock__toggle { width: 52px; height: 52px; border-width: 1px; }
  .contact-dock__toggle::before { border-width: 1px; }
  .contact-dock__preview { inset: 8px; }
  .contact-dock__close .icon { width: 16px; height: 16px; }
  .contact-dock__items { right: calc(100% + 10px); gap: 8px; }
  .contact-dock__btn { width: 44px; height: 44px; }
  .contact-dock__label { display: none; }
}

/* Swiper / Slick (Shared) */
.swiper-navigation-icon { display: none; }
/* Slider arrows */
:is(.swiper-button-prev, .swiper-button-next) :is(.icon--chevron-left, .icon--chevron-right):not(:only-child) { display: none; }
@media only screen and (max-width: 1024px) {
  :is(.swiper-button-prev, .swiper-button-next) :is(.icon--chevron-left-ring, .icon--chevron-right-ring):not(:only-child) { display: none; }
  :is(.swiper-button-prev, .swiper-button-next) :is(.icon--chevron-left, .icon--chevron-right):not(:only-child) { display: block; }
  :is(.swiper-button-prev, .swiper-button-next):has(.icon--chevron-left-ring + .icon, .icon--chevron-right-ring + .icon) {
    width: 12px; color: var(--clr-cream-base); --icon-stroke: 3;
  }
}
@media only screen and (min-width: 1025px) {
  :is(.swiper-button-prev, .swiper-button-next):has(.icon--chevron-left-ring + .icon, .icon--chevron-right-ring + .icon) {
    color: var(--clr-gold); --icon-fill: var(--clr-cream-base); --icon-stroke: 1;
  }
}
@media only screen and (min-width: 1025px) {
  :is(.ll-venue__slider, .home-wine__slider, .home-exp__item, .privileges-list, .slide_sustainability, .home-acc__body, .acc-gallery_s1, .acc-gallery) :is(.swiper-button-prev, .swiper-button-next) {
    --swiper-navigation-size: 4.5rem; width: 4.5rem; height: 4.5rem;
  }
}
.home-wine__slider .swiper-button-prev,
.home-exp__item .swiper-button-prev,
.privileges-list .swiper-button-prev,
.slide_sustainability .swiper-button-prev,
.home-acc__body .swiper-button-prev {
  color: var(--clr-gold);
  --icon-fill: var(--clr-cream-base);
  overflow: hidden;
}
.home-wine__slider .swiper-button-next,
.home-exp__item .swiper-button-next,
.privileges-list .swiper-button-next,
.slide_sustainability .swiper-button-next,
.home-acc__body .swiper-button-next {
  color: var(--clr-gold);
  --icon-fill: var(--clr-cream-base);
  overflow: hidden;
}
.swiper-material-wrapper { border-radius: 0px !important; }

/* Header */
.site-header-spacer { height: 5rem; }
.page-banner {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
  background-color: var(--clr-cream-light);
  z-index: var(--z-header);
}
.page-banner__inner { width: 100%; height: 100%; }
.page-banner__video {
  width: 100%;
  height: 100%;
  position: relative;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.page-banner__video::before {
  content: "";
  position: absolute;
  top: 70%;
  left: 0px;
  text-align: center;
  width: 100%;
  transform: translateY(-70%);
  z-index: 0;
  font-size: 3.6rem;
  color: var(--clr-gold);
}
.page-banner__video iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  aspect-ratio: 16/9;
  /* Covers the banner at any window shape */
  min-width: calc(100% + 2px);
  min-height: calc(100% + 2px);
}
.page-banner__content {
  position: relative;
  z-index: var(--z-fixed);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: calc(100vh - 5rem);
}
.top-bar {
  margin-top: 2rem;
  display: flex;
  align-items: flex-start;
  width: 100%;
  justify-content: center;
}
.top-bar.top-bar--desktop { position: relative; }
/* No banner shows the logo mark (it is in the header bar) */
@media only screen and (min-width: 1025px) { .top-bar.top-bar--desktop:empty { height: 6.9rem; } }
.page-banner__tagline, .page-banner__subline {
  color: var(--clr-cream-light);
  text-align: center;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
}
.page-banner__tagline { text-transform: uppercase; letter-spacing: var(--ls-display); }
.page-banner__subline { margin-top: 3rem; }
.page-banner__subline { font-size: var(--fs-title-sm); }
.page-banner__tagline, .page-banner__tagline h1 { font-size: var(--fs-display); }
.scroll-down {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  margin-bottom: 2.4rem;
}
/* Inner-page banners keep the space but show no arrow */
.scroll-down--hidden { visibility: hidden; }
.scroll-down__label {
  color: var(--clr-cream-light);
  text-align: center;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.site-header { width: 100%; height: 5rem; border-bottom: var(--border-hairline); background-color: var(--clr-cream-base); }
/* One bar for every width (header-menu.php): search · logo · menu · language; phones swap menu + language for the menu button */
.site-header__bar {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--clr-cream-base);
  height: 100%;
  width: 100%;
  gap: 3rem;
  padding: 0;
}
.site-header__bar .menu { display: flex; justify-content: center; align-items: center; width: 100%; gap: 3rem; padding-inline-start: 0; }
.site-header__nav { width: auto; }
.site-header__menu { display: contents; }
/* Language switch (language-dropdown.php) */
.lang-select {
  --color: var(--clr-green-dark); --item-color: var(--clr-green-dark); --item-color-hover: var(--clr-green-dark);
  --arrow-color: currentColor; --arrow-size: 1.4rem; --arrow-gap: 1rem;
  --h: 3.8rem; --px: 1.2rem; --radius: var(--radius-sm); --ring-size: 0px;
  --bg: transparent; --bg-hover: transparent; --bg-focus: transparent;
  --icon-w: 2.75rem; --icon-h: 1.9rem; --icon-gap: 1rem; --icon-radius: .25rem;
  --menu-bg: color-mix(in srgb, var(--clr-white) 60%, transparent); --menu-radius: var(--radius-lg); --menu-shadow: 0 .6rem 1.8rem rgba(0, 0, 0, .18);
  --menu-gap: .4rem; --menu-offset: -.625rem; --menu-maxh: none;
  --item-h: 3.8rem; --item-px: 1rem; --item-radius: var(--radius-sm); --item-bg-hover: color-mix(in srgb, var(--clr-white) 45%, transparent);
  --w: auto; min-width: 15rem;   /* as wide as the current language, like the original */
}
.lang-select .ui-dropdown__toggle, .lang-select .ui-dropdown__item { text-transform: uppercase; }
.lang-select .ui-dropdown__menu { width: max-content; -webkit-backdrop-filter: blur(1rem); backdrop-filter: blur(1rem); }
.lang-select .ui-dropdown__icon { box-shadow: 0 0 0 .0625rem color-mix(in srgb, var(--clr-white) 35%, transparent); }
.lang-select .ui-dropdown__item.is-active { display: none; }   /* the current language is the button */
.lang-zh { font-family: 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans CJK SC', sans-serif; }   /* system font: the theme's Chinese font (1 MB) loads on zh pages only */
.site-header__toggle { display: none; }
/* Menu button: three bars that turn into ✕ while the menu is open */
.site-header__toggle { padding: 0; border: 0; background: none; cursor: pointer; color: var(--clr-green-medium); }
.site-header__burger { position: relative; display: block; width: 22px; height: 16px; }
.site-header__burger > span {
  position: absolute; left: 0; width: 100%; height: 2.67px; background: currentColor;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1), opacity .2s ease;
}
.site-header__burger > span:nth-child(1) { top: 0; }
.site-header__burger > span:nth-child(2) { top: 6.67px; }
.site-header__burger > span:nth-child(3) { top: 13.33px; }
.site-header.is-menu-open .site-header__burger > span:nth-child(1) { transform: translateY(6.67px) rotate(45deg); }
.site-header.is-menu-open .site-header__burger > span:nth-child(2) { opacity: 0; }
.site-header.is-menu-open .site-header__burger > span:nth-child(3) { transform: translateY(-6.67px) rotate(-45deg); }
html.has-menu-open { overflow: hidden; }
/* Fixed bars at the bottom would sit on the open menu */
html.has-menu-open .booknow-bar, html.has-menu-open .contact-dock { display: none !important; }
.site-header .menu a {
  color: var(--clr-green-dark);
  text-transform: uppercase;
}
/* The current page in gold, on desktop and in the phone panel */
.site-header .menu .current-menu-item > a, .site-header .menu .current_page_item > a { color: var(--clr-gold); }
.site-header { position: fixed; top: 0; left: 0; z-index: var(--z-fixed); }
.booknow-bar { display: none; opacity: 0; }
@media only screen and (max-width: 1024px) {
  /* Every banner fills the screen below the 76px bar */
  .page-banner { height: calc(var(--banner-h, 100svh) - 76px); }
  .page-banner__video iframe {
    min-height: calc(var(--banner-h, 100svh) - 76px);
  }
  .page-banner__content {
    height: calc(var(--banner-h, 100svh) - 76px);
  }
  .page-banner__video::before { font-size: 30px; }
  .booknow-bar { position: fixed; bottom: 0; width: 100%; left: 0; z-index: var(--z-fixed); height: 50px; }
  .booknow-bar button {
    height: 100%;
    width: 100%;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--clr-cream-base);
    text-align: center;
    font-family: var(--font-body);
    font-style: normal;
    font-weight: var(--fw-body);
    line-height: var(--lh-body);
    letter-spacing: var(--ls-caps);
    background: var(--clr-gold);
    border: none;
  }
  .site-header { z-index: var(--z-fixed); }
  .site-header { height: auto; }  /* as tall as its bar */
  .top-bar { margin-top: 0; padding: 18px var(--gutter-mobile) 18px; }
  .top-bar.top-bar--desktop { visibility: hidden; height: 0px; padding: 0; margin-bottom: 0; }
  /* Same cream bar on every page (the homepage look) */
  .site-header__bar { justify-content: space-between; gap: 0; height: auto; padding: 18px var(--gutter-mobile); transition: padding .7s cubic-bezier(.4, 0, .2, 1); }
  .site-header.is-compact .site-header__bar { padding-top: 10px; padding-bottom: 10px; }   /* 40px content + 20px = 60px */
  /* Search: tapping the box widens it over the logo, which steps aside */
  .site-header__search { transition: width .45s cubic-bezier(.4, 0, .2, 1); }
  .site-header__logo { transition: opacity .3s ease, width .45s cubic-bezier(.4, 0, .2, 1); overflow: hidden; }
  .site-header__toggle { transition: width .45s cubic-bezier(.4, 0, .2, 1); }
  .site-header__bar:has(.site-header__search:focus-within) .site-header__search { width: calc(100% - 50px); }
  .site-header__bar:has(.site-header__search:focus-within) .site-header__logo { width: 0; opacity: 0; pointer-events: none; }
  .site-header__bar:has(.site-header__search:focus-within) .site-header__toggle { width: 40px; }
  .site-header__search .ui-input { transition: box-shadow .3s ease; }
  .site-header__search:focus-within .ui-input { box-shadow: inset 0 -1px 0 var(--clr-gold); }   /* the widened box shows its edge */
  .site-header__search, .site-header__toggle { width: 33%; }
  .site-header__toggle { display: flex; justify-content: flex-end; align-items: center; height: 40px; }
  /* The menu panel */
  .site-header__menu {
    display: flex; flex-direction: column; justify-content: space-between;
    position: absolute; top: 100%; left: 0; width: 100%; height: 100dvh;
    padding: 30px var(--gutter-mobile) calc(76px + 30px);   /* bottom: room for the bar above, so the end stays on screen */
    overflow-y: auto; overscroll-behavior: contain;
    background: var(--clr-cream-base); border-top: var(--border-hairline);
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s;
  }
  .site-header.is-menu-open .site-header__menu {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity .3s ease, transform .3s ease, visibility 0s;
  }
  /* <ul class="menu"> from an assigned menu */
  .site-header__menu .menu, .site-header__nav ul { display: block; margin: 0; padding: 0; list-style: none; }
  .site-header__nav li { border-bottom: var(--border-hairline); }
  .site-header__menu .menu a {
    display: block; padding: 14px 0;
    color: var(--clr-green-medium); font-size: 20px; line-height: var(--lh-tight); letter-spacing: var(--ls-display); text-transform: uppercase;
  }
  /* Language: the desktop dropdown in phone sizes, opening upwards from the bottom of the panel */
  /* Language: the same ui-dropdown in phone sizes with a hairline border */
  .site-header__menu .lang-select {
    align-self: flex-start; margin-top: 30px;
    --h: 44px; --fs: 16px; --px: 12px; --arrow-size: 14px; --arrow-gap: 10px; --item-h: 44px; --item-px: 12px; --item-radius: var(--radius-sm);
    --icon-w: 26px; --icon-h: 18px; --icon-gap: 10px; --icon-radius: 3px;
    --bw: 1px; --bc: var(--clr-gold); --bc-hover: var(--clr-gold); --bc-focus: var(--clr-gold); --radius: var(--radius-sm);
    --menu-radius: var(--radius-lg); --menu-bg: var(--clr-cream-light); min-width: 0;
  }
  .site-header__menu .lang-select .ui-dropdown__menu { top: auto; bottom: calc(100% + var(--menu-gap)); }
  .page-banner__subline { margin-top: 10px; padding: 0 80px; }
  .page-banner__subline { font-size: 20px; }
  .page-banner__tagline, .page-banner__tagline h1 { font-size: 40px; }
}

/* Check Availability */
.availability-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: var(--z-header);
  width: 100%;
  height: 5rem;
  display: none;
  --control-h: 3.8rem;   /* lower fields and button than the rest of the site, in proportion to the slim bar */
}
.availability-bar__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.4rem;   /* the same spacing in every language */
  background-color: var(--clr-green-medium);
  height: 100%;
  width: 100%;
  padding: 0 var(--gutter-page);
}
.availability-bar__label { color: var(--clr-gold); line-height: 2.54; letter-spacing: var(--ls-caps); text-transform: uppercase; text-align: center; font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .availability-bar__label { font-size: var(--fs-text-m); }
}
.availability-bar__label--lead { color: var(--clr-cream-light); }
.availability-bar__date .cal {
  --cal-input-fs: 1.75rem;
  --input-px: 1.5rem;
  --cal-input-color: var(--clr-cream-light);
  --cal-input-bg: var(--clr-green-dark);
  --cal-input-bc: var(--clr-green-dark);
  --cal-input-bc-hover: var(--clr-green-dark);
  --cal-input-bc-focus: var(--clr-green-dark);
}

/* Footer */
.site-footer {
  padding: var(--space-section) var(--gutter-page) 2rem;
  border-top: var(--border-hairline);
  height: auto;
}
.single-career .site-footer { padding: var(--space-section) var(--gutter-page) 5.4rem; }
.site-footer__main {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 2rem;
  width: 100%;
}
.site-footer__brand {
  margin-right: 8rem;
  width: 20%;
  padding-top: 0.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  flex-direction: column;
}
.site-footer__columns { width: 80%; position: relative; }
/* The single newsletter form sits after the rows */
@media only screen and (min-width: 1025px) {
  .site-footer__item--newsletter { position: absolute; top: 0; left: calc(56% + 14rem); }
}
.site-footer__row {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin-bottom: 2.8rem;
}
.site-footer__item { min-width: 28%; margin-right: 7rem; max-width: 28%; }
.site-footer__item--wide { margin-right: 0px; max-width: 30%; min-width: 30%; }
.site-footer__item.resmobile { display: none; }
.site-footer__label {
  line-height: 2.54;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--clr-gold);
  font-size: var(--fs-caption);
}
@media only screen and (max-width: 1024px) {
  .site-footer__label { font-size: 12px; }
}
.site-footer .menu a { letter-spacing: var(--ls-body); text-transform: uppercase; color: var(--clr-gold); }
.site-footer .menu a { min-height: 24px; }   /* touch target of at least 24px */
/* The current page marked by colour like the header menu, the other way round */
.site-footer .menu :is(.current-menu-item, .current_page_item) > a { color: var(--clr-green-dark); }
.site-footer__text p { letter-spacing: var(--ls-body); text-transform: capitalize; color: var(--clr-gold); }
.site-footer__text a { display: block; text-transform: none; }
.site-footer__text { text-transform: capitalize; font-size: var(--fs-lead); }
@media only screen and (max-width: 1024px) {
  .site-footer__text { font-size: var(--fs-text-m); }
}
.site-footer ul { padding-inline-start: 0px; margin-block-start: 0.5rem; margin-block-end: 0.5rem; }
/* The Info menu starts level with the address beside it */
.site-footer__item--info ul { margin-block-start: 0; }
.site-footer__social ul { display: flex; align-items: flex-end; }
.site-footer__social ul>li>a { display: table-cell; background-size: 100% 100%; }   /* no overflow clip: the icon lifts out of its box on hover */
.site-footer__social ul>li { margin-right: 3rem; }
.site-footer a { color: var(--clr-gold); }
/* Text links on hover (not buttons, image links or slides) */
.site-footer__text > a, .site-footer .menu a { width: fit-content; }
.site-footer__text > .site-footer__address { display: inline; }   /* inline, so the line runs under each of its lines */
:is(.site-header .menu a, .site-footer .menu a, .site-footer__text > a, .contact-info__link a, .jiva-prose a, .contact-items a, .career-contact a, .page-banner__desc a, .site-footer__copyright a, .site-footer__cookies) {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 1px;
  transition: background-size var(--t-hover), color var(--t-hover);
}
:is(.site-header .menu a, .site-footer .menu a) { background-position: 50% 100%; }
.jiva-prose a { color: var(--clr-link); }   /* links inside articles stand out from the text */
.jiva-prose a:has(img) { background-image: none; }
:is(.site-header__logo, .site-footer__brand > a, .promotion-popup__logo a) > .brand-logo,
.site-footer__social ul>li>a > * { transition: transform var(--t-hover); }
@media (hover: hover) {
  :is(.site-header .menu a, .site-footer .menu a, .site-footer__text > a, .contact-info__link a, .jiva-prose a, .contact-items a, .career-contact a, .page-banner__desc a, .site-footer__copyright a, .site-footer__cookies):hover { background-size: 100% 1px; }
  :is(.site-header__logo, .site-footer__brand > a, .promotion-popup__logo a):hover > .brand-logo,
  .site-footer__social ul>li>a:hover > * { transform: translateY(-3px); }
}
/* The menu item of the page being viewed */
:is(.site-header, .site-footer) .menu :is(.current-menu-item, .current_page_item) > a { pointer-events: none; cursor: default; }
.error-text { color: red; text-transform: none; font-size: var(--fs-body); }
.inquiry-form__cell--email .error-text { position: absolute; left: 0; top: -2.5rem; }
.inquiry-form__cell--email { position: relative; }
.site-footer__copyright {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4em 0;
  letter-spacing: var(--ls-body);
  color: var(--clr-gold);
}
/* "|" between copyright, all rights reserved and privacy link */
.site-footer__copyright > :not(.site-footer__cookies, .site-footer__break, .site-footer__visits):has(+ :not(.site-footer__cookies, .site-footer__break, .site-footer__visits, [hidden]))::after { content: "|"; margin: 0 .8em; }   /* after the part before it, so the Privacy Policy link's hover line stays under its own words */
.site-footer__copyright { font-size: var(--fs-body); }
/* A long hairline splits the footer from the copyright line */
.site-footer__copyright { border-top: var(--border-hairline); padding-top: 2rem; }
/* "Cookie settings" looks like the Privacy Policy link, on its own at the right end of the line */
.site-footer__cookies { margin-left: auto; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
/* Visit counter: on its own between the privacy link and "Cookie settings" (both auto margins share the free space) */
.site-footer__break { display: none; }
.site-footer__visits { margin-left: auto; }
.site-footer__visits strong { font-weight: 700; }
/* Newsletter: after a sign-up the form shows its thank-you line */
.newsletter-form__done { display: none; margin-top: 1.2rem; color: var(--clr-gold); font-size: var(--fs-body); letter-spacing: var(--ls-body); }
.newsletter-form.is-done .newsletter-form__done { display: block; animation: fadeIn .6s ease both; }
@media only screen and (max-width: 1024px) {
  .newsletter-form__done { margin-top: 10px; font-size: var(--fs-text-m); }
}
@media only screen and (max-width: 1024px) {
  .site-footer { padding: var(--space-section-mobile) var(--gutter-mobile) 28px; }
  .single-career .site-footer { padding: var(--space-section-mobile) var(--gutter-mobile) 40px; }
  .site-footer__main, .site-footer__row { flex-direction: column; }
  .site-footer__item { min-width: auto; width: 100%; margin-right: 0; max-width: 100%; }
  .site-footer__columns { width: 100%; }
  .site-footer__brand { width: 100%; display: flex; justify-content: center; margin-bottom: 50px; }
  .site-footer__slh { position: absolute; left: 0; top: 0; }
  .site-footer__social ul>li { margin-right: 20px; }
  .site-footer__item.resmobile { display: block; }
  .site-footer__item.resdesktop { display: none; }
  /* One column with the same gap between every block */
  .site-footer__columns { display: flex; flex-direction: column; gap: 28px; }
  .site-footer__row { display: contents; }
  .site-footer__item--newsletter { order: 1; }
  .site-footer__item--social { order: 2; }
  .site-footer__copyright { margin-top: 33px; }
  .site-footer__copyright { font-size: 12px; }   /* caption size */
  .site-footer__copyright { padding-top: 16px; }
  .site-footer__copyright { padding-right: 56px; }   /* keeps "Cookie settings" clear of the fixed back-to-top button */
  /* Next line: visit counter at the left, "Cookie settings" at the right (at the left when there is no counter) */
  .site-footer__break { display: block; flex-basis: 100%; height: 0; }
  .site-footer__visits { margin: 0; }
  .site-footer__cookies { margin: 0 0 0 auto; }
  .site-footer__visits[hidden] + .site-footer__cookies { margin-left: 0; }
  .inquiry-form__cell--email .error-text {
    position: absolute;
    left: auto;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
  }
  .error-text { font-size: var(--fs-text-m); }
}

/* Page Banner */
.page-banner__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.page-banner__title {
  color: var(--clr-cream-base);
  padding: 0px 44rem;
  text-transform: uppercase;
  text-align: center;
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.page-banner__desc {
  margin: 3rem auto 0;
  max-width: var(--measure-intro);
  color: var(--clr-cream-base);
  text-align: center;
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
}
.page-banner__text a { color: var(--clr-gold); }
.page-banner__image {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
/* Phones and tablets load the smaller banner set in --banner-m */
@media (max-width: 1024px) {
  .page-banner__image[style*="--banner-m"], .page-banner__video[style*="--banner-m"] { background-image: var(--banner-m) !important; }
}
.bg-pagefill { position: absolute; width: 100%; height: 100%; bottom: 0; left: 0; z-index: 2; }
/* Green overlays on story images (formerly PNG overlays); rgb = --clr-green-medium */
.bg-pagefill--fade { background: linear-gradient(color-mix(in srgb, var(--clr-green-medium) 80%, transparent) 5%, color-mix(in srgb, var(--clr-green-medium) 9%, transparent)); }
.bgblackfill { opacity: 0.4; background-color: #000; mix-blend-mode: multiply; }
.scroll-down__label { font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .scroll-down__label { font-size: var(--fs-text-m); }
}
.page-banner__desc p { color: var(--clr-cream-base); }
.page-banner__fill {
    background: linear-gradient(
        color-mix(in srgb, var(--clr-green-medium) 85%, transparent) 0%,
        color-mix(in srgb, var(--clr-green-medium) 60%, transparent) 100%
    );
    mix-blend-mode: multiply;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
@media only screen and (max-width: 1024px) {
  .page-banner__title, .page-banner__title h1 {
    padding: 0 5%;
    width: 100%;
  }
  .page-banner__desc { padding: 0 32px; margin-top: 20px; max-width: none; }
}

/* Home: Intro & Gallery */
.home-main { overflow: hidden; }
.section-head { display: flex; flex-direction: column; justify-content: center; align-items: center; }
.section-head__eyebrow {
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 4rem;
  color: var(--clr-gold);
  font-size: var(--fs-body);
}
/* Eyebrow to title */
.section-head__eyebrow + .section-head__title h2 { padding-top: 0; }
/* Title to description */
.section-head__title:has(+ .section-head__text) { margin-bottom: 6rem; }
.section-head__title:has(+ .section-head__text) h2 { padding-bottom: 0; }
.section-head__text > p:first-child { margin-top: 0; }
.section-head__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-caps);
  text-align: center;
  margin-bottom: 4rem;
  width: 95rem;
  color: var(--clr-gold);
}
.section-head__text { letter-spacing: var(--ls-body); width: var(--measure-intro); text-align: center; color: var(--clr-gold); font-size: var(--fs-lead); }
.home-intro .section-head__title { letter-spacing: var(--ls-display); }
.home-intro, .home-wine, .site-footer { background-color: var(--clr-cream-base); }
.home-main section { margin-top: -1px; }
.gallery-slide {
  width: 100%;
  padding: 3rem 0;
  --swiper-wrapper-transition-timing-function: cubic-bezier(.22, .61, .36, 1);
}
.gallery-slide .swiper-wrapper { align-items: center; }
.gallery-slide .swiper-slide {
  aspect-ratio: 3 / 4;
  transform: scale(1);
  transition: transform 1s cubic-bezier(.22, .61, .36, 1);
  z-index: 1;
}
.gallery-slide .swiper-slide-active { transform: scale(1.1); z-index: 3; }
.gallery-slide .swiper-material-wrapper, .gallery-slide .swiper-material-content {
  width: 100%;
  height: 100%;
}
.gallery-slide .swiper-material-content img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-slide .swiper-nav { margin-top: var(--space-block); }
.gallery-slide .gallery-pagination { justify-content: center; padding-top: 1.5rem; color: var(--clr-green-dark); }
.gallery-slide .swiper-pagination { position: static; }
.gallery-slide .gallery-prev svg, .gallery-slide .gallery-next svg {
  width: 100%;
  height: 100%;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
}
.swiper-nav.resmobile { display: none; }
@media only screen and (max-width: 1024px) {
  .swiper-nav.resmobile { display: flex; justify-content: center; }
  .section-head__eyebrow, .section-head__title, .section-head__text { width: 100%; }
  .section-head__eyebrow { margin-bottom: 25px; font-size: var(--fs-text-m); }
  .section-head__title { padding: 0 30px; margin-bottom: 20px; }
  .section-head__title:has(+ .section-head__text) { margin-bottom: 35px; }
  .section-head__text { padding: 0 var(--gutter-mobile); font-size: var(--fs-text-m); }
  .home-intro { overflow: hidden; }
}

/* Home: Accommodation */
.home-acc__body { padding: var(--space-section) var(--gutter-page) 0; position: relative; }
/* Every room as tall as the tallest one, Find Out More at the bottom */
.home-acc__item { color: var(--clr-green-medium); height: 100%; display: flex; flex-direction: column; }
.home-acc__image img {
  display: block;
  object-fit: cover;
  width: 100%;
  height: 100%;
  object-position: center;
  aspect-ratio: 581/558;
}
.home-acc__text { margin-top: 3rem; flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
@media only screen and (min-width: 1025px) {
  .home-acc__text .ui-btn { margin-top: auto; }
}
.home-acc__slider { overflow: hidden; }
.home-acc__slider .swiper-slide { height: auto; }
.home-acc__title { line-height: var(--lh-tight); letter-spacing: var(--ls-caps); text-transform: uppercase; font-weight: var(--fw-bold); font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .home-acc__title { font-size: 16px; }
}
.home-acc__desc { letter-spacing: var(--ls-body); margin: 2.4rem 0 3rem; font-size: var(--fs-body); }
.home-acc__body .swiper-button-next { margin-right: 15rem; }
.home-acc__body .swiper-button-prev { margin-left: 15rem; }
@media only screen and (max-width: 1024px) {
  .home-acc .section-head__text { width: 100%; margin-bottom: 50px; }
  /* One room (Swiper fade) in the Wine & Dine box */
  .home-acc__body { padding: 0 var(--gutter-mobile); }   /* the section's own padding spaces it below */
  .home-acc__slider .swiper-slide { height: auto; }
  .home-acc__item { display: flex; flex-direction: column; background-color: var(--clr-cream-base); }
  .home-acc__image { flex: none; overflow: hidden; }
  .home-acc__text { flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 15px; margin: 0; padding: 30px 20px 35px; text-align: left; }
  .home-acc__desc { margin: auto 0; font-size: var(--fs-text-m); }
  /* Like Wine & Dine */
  .home-acc__image img { transform: scale(1.06); transition: transform 0s linear 1.2s; }
  .home-acc__slider .swiper-slide-active .home-acc__image img { transform: none; transition: transform 2.4s cubic-bezier(.22, 1, .36, 1); }
  .home-acc__text > * { opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform 0s linear .3s; }
  .home-acc__slider .swiper-slide-active .home-acc__text > * {
    opacity: 1;
    transform: none;
    transition: opacity .7s ease var(--acc-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--acc-delay);
  }
  /* The button keeps its hover fade in the list */
  .home-acc__slider .swiper-slide-active .home-acc__text > .ui-btn {
    transition: opacity .7s ease var(--acc-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--acc-delay),
                background-color var(--hover-time) ease, color var(--hover-time) ease, border-color var(--hover-time) ease, letter-spacing var(--hover-time) ease;
  }
  .home-acc__slider .swiper-slide-active .home-acc__title { --acc-delay: .2s; }
  .home-acc__slider .swiper-slide-active .home-acc__desc { --acc-delay: .35s; }
  .home-acc__slider .swiper-slide-active .ui-btn { --acc-delay: .5s; }
  /* The Accommodation arrows on the image, centred on its height */
  .home-acc__body { --swiper-navigation-top-offset: calc((100vw - 2 * var(--gutter-mobile)) * 558 / 581 / 2); }
  .home-acc__body .swiper-button-prev { left: var(--gutter-mobile); margin-left: 10px; }
  .home-acc__body .swiper-button-next { right: var(--gutter-mobile); margin-right: 10px; }
}

/* Home: Values */
.home-intro, .home-acc, .home-values, .home-wine, .home-recharge {
  padding: var(--space-section) 0;
}
.home-values { background-color: var(--clr-cream-base); }
.home-values .resmobile { display: none; }
.home-values__grid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: var(--space-section);
}
.home-values__item { width: 30%; }
.home-values__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-values__label {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 5.5rem;
  color: var(--clr-cream-light);
  background-color: var(--clr-gold);
  font-size: var(--fs-lead);
  line-height: 0.85;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
}
@media only screen and (max-width: 1024px) {
  .home-values { padding-top: var(--space-section-mobile); padding-bottom: var(--space-section-mobile); padding-left: 0; padding-right: 0; }
  .home-values .resmobile { display: block; }
  .home-values .resdesktop { display: none; }
  .home-values__item { width: 100%; }
  .home-values__slider { padding-left: var(--gutter-mobile); margin-top: 30px; }
  .home-values__image img { height: auto; aspect-ratio: 1/1; }
  .home-values__label { height: auto; font-size: var(--fs-text-m); padding: 10px 0; }
  /* Like the gallery on phones */
  .home-values__slider .swiper-slide { transition: transform 0ms; }
}

/* Home: Sustainability */
.home-sust .section-head__text, .home-values, .home-wine {
  padding-left: var(--gutter-page);
  padding-right: var(--gutter-page);
}
/* Phones: the values slider brings its own left gutter */
@media only screen and (max-width: 1024px) {
  .home-values { padding-left: 0; padding-right: 0; }
}
.home-sust {
  background: var(--clr-green-dark);
}
.home-sust .section-head__text { width: 100%; display: flex; justify-content: space-between; }
.home-sust__intro { padding: var(--space-section) 0; }
.home-sust__col { width: 48%; text-align: left; }
/* Full-width picture under the Sustainability text */
.home-sust__image { overflow: hidden; }
.home-sust__image img { width: 100%; height: auto; display: block; }
.home-sust__actions { margin-top: 5rem; }
@media only screen and (max-width: 1024px) {
  .home-sust__actions { margin-top: 30px; }
  .home-sust .section-head__text { padding-left: var(--gutter-mobile); padding-right: var(--gutter-mobile); flex-wrap: wrap; }
  .home-sust__col { width: 100%; text-align: center; }
  .home-sust__col:first-child { margin-bottom: 15px; }
  .home-sust__intro { padding-top: var(--space-section-mobile); padding-bottom: var(--space-section-mobile); }
  .home-sust__image img { aspect-ratio: 375/293; display: block; object-fit: cover; object-position: center; }
}

/* Home: Wine & Dine */
.home-wine__slider { position: relative; }
.home-wine .section-head { margin-bottom: var(--space-section); }
.home-wine__item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  background-color: var(--clr-cream-light);   /* the text box: cream, gold title, green text */
}
.home-wine__image { height: 48rem; }
.home-wine__image, .home-wine__info { width: 50%; }
.home-wine__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-wine__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
  padding: 0 7rem;
}
.home-wine__title {
  color: var(--clr-gold);
  text-transform: uppercase;
  text-align: center;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-caps);
  font-size: var(--fs-title-sm);
}
@media only screen and (max-width: 1024px) {
  .home-wine__title { font-size: 20px; }
}
.home-wine__desc { color: var(--clr-green-dark); text-align: center; letter-spacing: var(--ls-body); margin: 2.4rem 0 3rem; font-size: var(--fs-lead); }
.home-wine__slider .swiper-button-prev { margin-left: -2.5rem; }
.home-wine__slider .swiper-button-next { margin-right: -2.5rem; }
/* Slide change (Swiper fade, 1.2s) */
.home-wine__image { overflow: hidden; }
.home-wine__image img { transform: scale(1.06); transition: transform 0s linear 1.4s;   /* reset once the 1.4s fade (SLIDE_SPEED.fade) has hidden it */ }
.home-wine__slider .swiper-slide-active .home-wine__image img { transform: none; transition: transform 2.4s cubic-bezier(.22, 1, .36, 1); }
/* The old text leaves quickly, the new text follows the image */
.home-wine__title, .home-wine__desc, .home-wine__info .ui-btn {
  opacity: 0;
  transform: translateY(var(--wine-rise, 2.4rem));
  transition: opacity .3s ease, transform 0s linear .3s, letter-spacing 0s linear .3s;
}
.home-wine__title { letter-spacing: .5rem; }
.home-wine__slider .swiper-slide-active :is(.home-wine__title, .home-wine__desc, .ui-btn) {
  opacity: 1;
  transform: none;
  transition: opacity .7s ease var(--wine-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--wine-delay), letter-spacing 1.6s cubic-bezier(.22, 1, .36, 1) var(--wine-delay);
}
.home-wine__slider .swiper-slide-active .home-wine__title { letter-spacing: var(--ls-caps); --wine-delay: .2s; }
.home-wine__slider .swiper-slide-active .home-wine__desc { --wine-delay: .35s; }
.home-wine__slider .swiper-slide-active .ui-btn { --wine-delay: .5s; }
/* The reveal's transition list replaces the button's own: keep its hover fade in it */
.home-wine__slider .swiper-slide-active .home-wine__info .ui-btn {
  transition: opacity .7s ease var(--wine-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--wine-delay),
              background-color var(--hover-time) ease, color var(--hover-time) ease, border-color var(--hover-time) ease, letter-spacing var(--hover-time) ease;
}
@media only screen and (max-width: 1024px) {
  .home-wine {
    padding-left: 0;
    padding-right: 0;
    padding-top: var(--space-section-mobile);
    padding-bottom: var(--space-section-mobile);
    overflow: hidden;
  }
  /* One slide (the desktop fade) */
  .home-wine__slider { margin: 0 var(--gutter-mobile); --swiper-navigation-top-offset: 120px; }
  .home-wine__slider .swiper-button-prev { left: 10px; margin-left: 10px; }
  .home-wine__slider .swiper-button-next { right: 10px; margin-right: 10px; }
  .home-wine__slider .swiper-slide { height: auto; }
  /* Image on top, the text in a gold box under it (always shown) */
  .home-wine__item { flex-direction: column; justify-content: flex-start; align-items: stretch; height: 100%; }
  .home-wine__image, .home-wine__info { width: 100%; }
  .home-wine__image { height: 240px; flex: none; }
  .home-wine__image img { width: 100%; height: 100%; }
  /* Every box as tall as the tallest one */
  .home-wine__info { flex: 1; justify-content: space-between; gap: 15px; padding: 30px 20px 35px; --wine-rise: 12px; }
  /* No letter-spacing change on phones */
  .home-wine__title, .home-wine__slider .swiper-slide-active .home-wine__title { letter-spacing: var(--ls-caps); }
  .home-wine__desc { margin: auto 0; font-size: var(--fs-text-m); }
}

/* Home: Recharge */
.home-recharge { background-color: var(--clr-cream-light); }
.home-recharge .section-head__title { margin-bottom: 0; }
.section-head__title, .section-head__title h2 { font-size: var(--fs-section); }
@media only screen and (max-width: 1024px) {
  .section-head__title, .section-head__title h2 { font-size: 30px; }
}
.home-recharge__list {
  display: flex;
  width: 100%;
  margin-top: var(--space-section);
  height: auto;
  position: relative;
  background-color: var(--clr-cream-base);
}
.home-recharge__item { display: block; width: 33.333vw; height: auto; position: relative; overflow: hidden; }
.home-recharge__list::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 3px;
  top: 0;
  left: 0;
  z-index: 2;
  background-color: var(--clr-cream-light);
  margin-top: -2px;
}
.home-recharge__item img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
/* Dark fade over each image (formerly PNG overlays) */
.home-recharge__fade {
  position: absolute; width: 100%; height: 100%; bottom: 0; left: 0; z-index: 3;
  background: linear-gradient(rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
}
.home-recharge__title {
  color: var(--clr-cream-light);
  text-transform: uppercase;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-caps);
  position: absolute;
  bottom: 4.1rem;
  right: 4.1rem;
  z-index: 5;
  transform: rotate(-90deg) translate(100%, 0);
  transform-origin: right bottom;
  font-size: var(--fs-section);
}
.home-recharge__desc {
  color: var(--clr-cream-light);
  letter-spacing: var(--ls-body);
  z-index: 5;
  position: absolute;
  top: 0;
  left: 0;
  padding: 6.5rem 15.1rem 0px 4.2rem;
  font-size: var(--fs-lead);
}
/* Desktop: the card zooms and darkens so it reads as a link */
.home-recharge__item img { transition: transform .8s cubic-bezier(.4, 0, .2, 1); }
.home-recharge__fade, .home-recharge__title { transition: background-color var(--transition), color var(--transition); }
@media (hover: hover) and (min-width: 1025px) {
  .home-recharge__item:hover img, .home-recharge__item:focus-visible img { transform: scale(1.05); }
  .home-recharge__item:hover .home-recharge__fade, .home-recharge__item:focus-visible .home-recharge__fade { background-color: rgba(0, 0, 0, .2); }
  .home-recharge__item:hover .home-recharge__title, .home-recharge__item:focus-visible .home-recharge__title { color: var(--clr-gold); }
}
@media (prefers-reduced-motion: reduce) { .home-recharge__item img { transition: none; transform: none !important; } }
@media only screen and (max-width: 1024px) {
  .home-recharge__list { flex-wrap: wrap; margin-top: var(--space-block); }
  /* Phones: section title to its content, the block step (on desktop the section step) */
  .home-wine .section-head { margin-bottom: var(--space-block); }
  .home-values__grid { margin-top: var(--space-block); }
  .home-recharge__item { width: 100%; }
  .home-recharge__item img { height: auto; aspect-ratio: 385/274; }
  .home-recharge__fade { background: linear-gradient(rgba(0, 0, 0, .5), rgba(0, 0, 0, .3)); }
  .home-recharge { padding-top: var(--space-section-mobile); }
  .home-main .home-recharge { margin-top: -2px; }
  .home-recharge__title { right: 30px; bottom: 50%; transform: rotate(-90deg) translate(50%); z-index: 5; font-size: 28px; }
  .home-recharge__desc { padding: 0 156px 0 0; left: 30px; top: 15%; width: 100%; z-index: 5; font-size: var(--fs-text-m); }
  .home-recharge__item:first-child .home-recharge__title {
    right: 30px;
    bottom: auto;
    top: 30%;
    transform: rotate(-90deg) translate(30%);
  }
  .home-recharge__item:first-child .home-recharge__desc { padding: 0 156px 0 0; left: 30px; top: 25%; width: 100%; }
}

/* Home: Experiences */
.home-exp { padding-bottom: var(--space-section); }
.home-exp .resmobile { display: none; }
.home-exp__body { margin-top: var(--space-block); }
.home-exp__panels { overflow: hidden; margin-top: var(--space-block); position: relative; height: auto; }
.home-exp__tabs {
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: normal;
  height: auto;
}
.home-exp__tab::before {
  content: "";
  width: 0%;
  height: 2px;
  background-color: var(--clr-green-medium);
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  transition: width var(--t-hover);
}
.home-exp__tab.is-active { opacity: 1; }
@media (hover: hover) { .home-exp__tab:hover { opacity: 1; } }
.home-exp__tab.is-active::before { width: 100%; }
@media (hover: hover) { .home-exp__tab:hover::before { width: 100%; } }
.home-exp__tab {
  color: var(--clr-green-medium);
  text-transform: uppercase;
  text-align: center;
  position: relative;
  letter-spacing: var(--ls-caps);
  padding: 0;
  transition: opacity var(--t-hover);
  opacity: 0.4;
  margin: 0px 5.5rem;
  cursor: pointer;
  font-size: var(--fs-body);
}
.home-exp__item {
  padding-left: var(--gutter-page);
  padding-right: var(--gutter-page);
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  overflow: hidden;
}
.home-exp__slider { width: 70%; overflow: hidden; position: relative; height: 59.5rem; }
.home-exp__slider img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-exp__aside {
  width: 27%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
}
.home-exp__title {
  color: var(--clr-green-medium);
  text-transform: uppercase;
  letter-spacing: var(--ls-caps);
  margin-bottom: 1rem;
  font-weight: var(--fw-semibold);
  font-size: var(--fs-body);
}
.home-exp__text { color: var(--clr-green-dark); line-height: var(--lh-loose); letter-spacing: var(--ls-body); font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .home-exp__text { font-size: var(--fs-text-m); }
}
.home-exp__thumbs { display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; width: 45%; }
.home-exp__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-exp__thumb { display: block; width: 3rem; height: 3rem; margin-right: 1rem; margin-top: 1rem; opacity: 0.4; }
.home-exp__thumb:nth-child(4n) { margin-right: 0; }
.home-exp__thumb.is-active { opacity: 1; }
.home-exp__captions { display: flex; width: 100%; overflow: hidden; height: 50%; }
.home-exp__caption { height: 100%; }
/* Caption change, like Wine & Dine */
.home-exp__title, .home-exp__text {
  opacity: 0;
  transform: translateY(var(--exp-rise, 2.4rem));
  transition: opacity .3s ease, transform 0s linear .3s, letter-spacing 0s linear .3s;
}
.home-exp__title { letter-spacing: .5rem; }
.home-exp__captions .swiper-slide-active :is(.home-exp__title, .home-exp__text) {
  opacity: 1;
  transform: none;
  transition: opacity .7s ease var(--exp-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--exp-delay), letter-spacing 1.6s cubic-bezier(.22, 1, .36, 1) var(--exp-delay);
}
.home-exp__captions .swiper-slide-active .home-exp__title { letter-spacing: var(--ls-caps); --exp-delay: .2s; }
.home-exp__captions .swiper-slide-active .home-exp__text { --exp-delay: .35s; }
@media only screen and (max-width: 1024px) {
  .home-exp__captions { --exp-rise: 12px; }
  .home-exp__title { letter-spacing: 4px; }
}
.home-exp__item .swiper-button-prev { top: 50%; left: 11.6%; }
.home-exp__item .swiper-button-next { top: 50%; right: 34%; }
@media only screen and (max-width: 1024px) {
  .home-exp { padding-top: var(--space-section-mobile); padding-bottom: var(--space-section-mobile); }
  .home-exp .resmobile { display: block; }
  .home-exp .resdesktop { display: none; }
  .home-exp .home-exp__picker.resmobile { display: flex; justify-content: center; }
  .home-exp__body { margin-top: var(--space-block); }
  .home-exp__panels { margin-top: var(--space-block); }
  .home-exp__item { flex-direction: column-reverse; padding-left: var(--gutter-mobile); padding-right: var(--gutter-mobile); }
  .home-exp__aside, .home-exp__thumbs { width: 100%; }
  .home-exp__slider { width: 100%; height: auto; aspect-ratio: 310/211; margin-top: 15px; }
  .home-exp__title { margin-bottom: 12px; font-size: 16px; }
  .home-exp .home-exp__thumbs.resmobile { display: flex; margin-top: 15px; }
  .home-exp__thumb, .home-exp__thumb:nth-child(4n) {
    width: 9.875%;
    height: auto;
    aspect-ratio: 1/1;
    margin-right: 3%;
    margin-top: 0;
  }
  .home-exp__thumb:last-child { margin-right: 0; }
}

/* Page: Accommodation */
.list-accomodation { overflow: hidden; }
.list-accomodation .resmobile { display: none; }
.list-accomodation>div:nth-child(odd) { background-color: var(--clr-cream-base); }
.list-accomodation>div:nth-child(even) { background-color: var(--clr-cream-light); flex-direction: row-reverse; }
.list-accomodation>div:nth-child(odd) .acc-gallery>div:nth-child(2) { flex-direction: row-reverse; }
.list-accomodation>div:not(:first-child) {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  padding: var(--space-section) var(--gutter-rooms);
}
.list-accomodation>div:first-child { padding-bottom: var(--space-block); }
.acc-info>div:nth-child(1) {
  color: var(--clr-gold);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  margin-bottom: 0;   /* the room name's own padding spaces it (Heading spacing) */
}
/* overflow-x: clip */
.acc-gallery { width: 60%; position: relative; height: 51rem; overflow-x: clip; }
.acc-gallery img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.acc-gallery .gal-pag { justify-content: flex-start; color: var(--clr-green-dark); }   /* on the cream page, like the homepage gallery */
.acc-gallery>div:nth-child(2) {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 3.5rem;
  width: 100%;
}
.acc-gallery>div:nth-child(2)>div:nth-child(2) { height: 3.8rem; }   /* Book Now at its own width (24rem) */
.acc-info { width: 35%; }
.acc-label { font-size: var(--fs-body); }
.acc-desc, .acc-infoamen, .acc-infoamen-s1 { font-size: var(--fs-body-lg); }
.acc-name, .acc-name h2 { font-size: var(--fs-section); }
.acc-infoamen, .acc-infoamen-1 { color: var(--clr-green-medium); letter-spacing: var(--ls-body); }
.acc-infoamen>div:nth-child(2), .acc-infoamen-1>div:first-child {
  color: var(--clr-gold);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
}
.acc-infoamen-1>div, .acc-infoamen-2>div { display: flex; }
.acc-infoamen-1>div>div:nth-child(2), .acc-infoamen-2>div>div:nth-child(2) { width: 80%; }
.acc-infoamen .acc-infoamen-1>div:not(:last-child) {
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin-bottom: 2rem;
}
.acc-infoamen-2>div {
  justify-content: flex-start;
  align-items: center;
  width: 45%;
  margin-bottom: 3rem;
  height: 4rem;
  margin-right: 3rem;
}
.acc-infoamen-2>div:nth-child(even) { margin-right: 0; }
.acc-infoamen-1 { margin: 3rem 0; }
.acc-infoamen-2 { display: flex; flex-wrap: wrap; margin-top: 3rem; }
.acc-info_s1 {
  background-color: var(--clr-cream-light);
  margin: -22rem var(--gutter-rooms) 0;
  padding: 5rem 7.1rem 6.5rem;
  position: relative;
  z-index: 2;
}
.acc-info_s1>div:first-child { padding: 0 16.6rem; text-align: center; }
.acc-gallery_s1>div:nth-child(2) {
  position: absolute;
  top: 8.36rem;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  color: var(--clr-cream-base);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  text-align: center;
}
.acc-gallery_s1 img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.acc-gallery_s1 { position: relative; width: 100%; height: 85rem; }
.acc-infoamen-s1 {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  margin: 4.7rem 0 5rem;
}
.acc-infoamen-s1>div { width: 50%; }
.acc-infoamen-s1>.acc-infoamens1-1 { width: 45%; }
.acc-infoamen-s1>.acc-infoamens1-2 { width: 55%; }
.acc-infoamens1-1>div { display: flex; justify-content: flex-start; align-items: flex-start; }
.acc-infoamens1-2>div {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 33%;
  margin-bottom: 5rem;
  height: 3rem;
}
.acc-infoamens1-1, .acc-infoamens1-2 { display: flex; flex-wrap: wrap; }
.acc-infoamens1-1 { justify-content: flex-start; }
.acc-infoamens1-2 { justify-content: flex-start; }
.acc-infoamens1-1>div:first-child { height: 3rem; }
.acc-infoamens1-1>div:not(:first-child) { width: 47%; margin-bottom: 2.5rem; padding-top: 1rem; }
.acc-infoamens1-1>div:first-child, .acc-infoamens1-2>div:first-child {
  width: 100%;
  margin-bottom: 2rem;
  height: 3rem;
  align-items: flex-start;
  color: var(--clr-gold);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
}
.acc-infoamens1-2>div:last-child { width: 100%; margin-bottom: 0; }
.acc-infoamens1-1>div:not(:first-child)>div:last-child { width: 80%; }
.acc-info_s1>div:last-child { height: 3.8rem; width: 18.5%; margin: auto; }
.acc-gallery_s1 .swiper-button-prev, .acc-gallery .swiper-button-prev {
  margin-left: 21rem;
  color: var(--clr-cream-base);
  --icon-stroke: 3;
  overflow: hidden;
}
.acc-gallery_s1 .swiper-button-next, .acc-gallery .swiper-button-next {
  margin-right: 21rem;
  color: var(--clr-cream-base);
  --icon-stroke: 3;
  overflow: hidden;
}
@media only screen and (min-width: 1025px) {
  /* First room: the arrows line up with the edges of the description box under the image */
  .acc-gallery_s1 .swiper-button-prev { left: var(--gutter-rooms); margin-left: 0; }
  .acc-gallery_s1 .swiper-button-next { right: var(--gutter-rooms); margin-right: 0; }
}
@media only screen and (max-width: 1024px) {
  .list-accomodation .resmobile { display: block; }
  .list-accomodation .resdesktop { display: none; }
  .list-accomodation>div:not(:first-child) { padding: 0; flex-direction: column; }
  .acc-gallery_s1, .acc-gallery { overflow: hidden; height: 530px; width: 100%; }
  .acc-gallery_s1 img, .acc-gallery img { aspect-ratio: 376/453; width: 100%; }
  .acc-gallery_s1>div:nth-child(2) { top: 100px; padding: 0 var(--gutter-mobile); }
  .acc-gallery>div:nth-child(2) { display: none; }
  .acc-gallery>div:nth-child(3) {
    position: absolute;
    top: 100px;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0 var(--gutter-mobile);
    color: var(--clr-cream-base);
    font-family: var(--font-display);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-display);
    text-transform: uppercase;
    text-align: center;
  }
  .acc-info {
    width: auto;
    background: var(--clr-cream-light);
    position: relative;
    z-index: 2;
    margin: -70px var(--gutter-mobile) 30px;
    padding: 30px;
    text-align: center;
  }
  .acc-label { font-size: var(--fs-text-m); }
  .acc-desc, .acc-infoamen, .acc-infoamen-s1 { font-size: var(--fs-text-m); }
  .acc-name, .acc-name h2 { font-size: 30px; }
  .acc-info_s1>div:first-child { padding: 0; }
  .text-expand {
    display: block;
    width: 100%;
    color: var(--clr-gold);
    text-align: center;
    line-height: var(--lh-loose);
    letter-spacing: var(--ls-caps);
    text-decoration-line: underline;
    text-transform: uppercase;
    margin-top: 22px;
    overflow: hidden;
  }
  .acc-info_s1 { margin: -70px var(--gutter-mobile) 30px; padding: 30px; }
  .acc-infoamen-s1, .acc-infoamen { height: 0; overflow: hidden; display: block; margin: 0; }
  .acc-infoamen-s1>div,
  .acc-infoamen>div,
  .acc-infoamen-s1>.acc-infoamens1-1,
  .acc-infoamen-s1>.acc-infoamens1-2 {
    width: 100%;
    justify-content: space-between;
  }
  .acc-infoamens1-2>div:last-child { justify-content: center; margin-bottom: 0; }
  .acc-infoamens1-1>div:first-child, .acc-infoamens1-2>div:first-child {
    margin-bottom: 20px;
    height: auto;
    letter-spacing: var(--ls-caps);
    text-transform: uppercase;
    padding-left: 0;
  }
  .acc-infoamens1-2>div, .acc-infoamen-2>div {
    width: 48%;
    margin-bottom: 20px;
    padding-left: 0;
    height: auto;
  }
  .acc-infoamen-2>div { align-items: center; justify-content: flex-start; text-align: left; }
  .acc-infoamens1-2 { margin-top: 20px; }
  .acc-infoamen .acc-infoamen-1>div:first-child, .acc-infoamen>div:nth-child(2) {
    margin-bottom: 20px;
    height: auto;
    letter-spacing: var(--ls-caps);
    text-transform: uppercase;
    padding-left: 0;
  }
  .acc-infoamen>div:nth-child(2) { text-align: left; margin-top: 20px; }
  .acc-infoamen-1 { display: flex; flex-wrap: wrap; text-align: left; }
  .acc-infoamens1-1>div:not(:first-child),
  .acc-infoamen-1>div:not(:first-child),
  .acc-infoamen .acc-infoamen-1>div:not(:last-child, :first-child) {
    width: 48%;
    margin-bottom: 10px;
    padding-top: 0;
    display: block;
  }
  .list-accomodation>div:first-child { padding-bottom: 0px; display: flex; flex-direction: column; }
  .list-accomodation>div:nth-child(even), .list-accomodation>div:nth-child(odd) {
    background-color: var(--clr-cream-base);
  }
  .list-accomodation .resdesktop { display: none; }
  /* "Book Now" in the opened room details */
  .buttonacc { margin-top: 40px; }
  .list-accomodation .buttonacc .ui-btn { --w: 100%; }
  .acc-gallery_s1 .swiper-button-prev, .acc-gallery .swiper-button-prev {
    margin-left: 20px;
    width: 12px;
  }
  .acc-gallery_s1 .swiper-button-next, .acc-gallery .swiper-button-next {
    margin-right: 20px;
    width: 12px;
  }
}

/* Page: Gallery */
.jiva-page-gallery .page-banner__fill {
  height: 100%;
  background: linear-gradient(0deg, color-mix(in srgb, var(--clr-green-medium) 60%, transparent) 5.48%, transparent 100.24%);
  mix-blend-mode: multiply;
}
.jiva-page-gallery { background: var(--clr-green-medium); }
/* Panels reuse the homepage .gallery-slide; only colour, spacing and zoom differ */
.gallery__panels { padding-bottom: var(--space-section); }
.gallery__panel { animation: panel-in var(--duration-panel) ease; }
.gallery__panel[hidden] { display: none; }
#gallery .gallery-pagination { color: var(--clr-cream-base); }
/* Expand button on each image: opens the full-size viewer */
#gallery .gallery-slide .swiper-material-content, .gallery-grid a { position: relative; }
.gallery-zoom {
  position: absolute; top: 1.4rem; right: 1.4rem; z-index: 2;
  display: grid; place-items: center;
  width: 4.4rem; height: 4.4rem; padding: 1.1rem;
  border: 0; border-radius: var(--radius-round);
  background: color-mix(in srgb, var(--clr-cream-light) 82%, transparent);
  color: var(--clr-green-dark); --icon-stroke: 1.6;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(12, 52, 44, .18);
  transition: background-color var(--t-hover), transform var(--t-hover);
}
@media (hover: hover) {
  .gallery-zoom:hover { background: var(--clr-cream-light); transform: scale(1.06); }
}
.gallery-zoom:focus-visible { outline: 2px solid var(--clr-gold); outline-offset: 2px; }
.gallery-zoom--sm { top: 8px; right: 8px; width: 30px; height: 30px; padding: 7px; pointer-events: none; }
/* Full-size viewer: large image slider with a thumbnail strip */
.gallery-viewer {
  position: fixed; inset: 0; z-index: 2000;
  --thumbs-h: 8.4rem;
  background: color-mix(in srgb, var(--clr-green-dark) 96%, transparent);
  opacity: 0; transition: opacity .35s ease;
}
.gallery-viewer.is-open { opacity: 1; }
.gallery-viewer[hidden] { display: none; }
.gallery-viewer__main { position: absolute; top: 7rem; bottom: calc(var(--thumbs-h) + 5rem); left: 0; right: 0; transform: scale(.96); transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
.gallery-viewer.is-open .gallery-viewer__main { transform: none; }
.gallery-viewer__main .swiper-slide { display: flex; align-items: center; justify-content: center; overflow: hidden; }
.gallery-viewer__main .swiper-zoom-container { width: 100%; height: 100%; padding: 0 10rem; display: flex; align-items: center; justify-content: center; }
.gallery-viewer__main img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.gallery-viewer__main .swiper-slide.is-loading img { filter: blur(.4px); }
.gallery-viewer__thumbs { position: absolute; left: 0; right: 0; bottom: 2.4rem; height: var(--thumbs-h); padding: 0 3rem; }
.gallery-viewer__thumbs .swiper-wrapper { justify-content: safe center; }
.gallery-viewer__thumbs .swiper-slide { width: auto; height: 100%; aspect-ratio: 3 / 4; cursor: pointer; opacity: .45; transition: opacity .3s ease; border: 1px solid transparent; }
.gallery-viewer__thumbs .swiper-slide-thumb-active { opacity: 1; border-color: var(--clr-gold); }
.gallery-viewer__thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; }
:where(.gallery-viewer button) { background: none; border: 0; padding: 0; cursor: pointer; }
.gallery-viewer__close { position: absolute; top: 2rem; right: 3rem; z-index: 2; width: 4.4rem; height: 4.4rem; padding: 1.3rem; color: var(--clr-cream-base); }
.gallery-viewer__nav { position: absolute; z-index: 2; top: calc((100% - var(--thumbs-h) - 5rem + 7rem) / 2); translate: 0 -50%; width: 4.5rem; height: 4.5rem; color: var(--clr-gold); --icon-fill: transparent; --icon-stroke: 1; }
.gallery-viewer__nav--prev { left: 3rem; }
.gallery-viewer__nav--next { right: 3rem; }
.gallery-viewer__nav :is(.icon--chevron-left, .icon--chevron-right) { display: none; }
@media (hover: hover) {
  .gallery-viewer__nav:hover { --icon-fill: color-mix(in srgb, var(--clr-gold) 20%, transparent); }
  .gallery-viewer__close:hover { color: var(--clr-gold); }
  .gallery-viewer__thumbs .swiper-slide:hover { opacity: .8; }
}
.gallery-viewer button:focus-visible { outline: 2px solid var(--clr-gold); outline-offset: 3px; border-radius: 50%; }
.gallery-viewer.is-single :is(.gallery-viewer__nav, .gallery-viewer__thumbs) { display: none; }
.gallery-viewer__count { position: absolute; top: 3.2rem; left: 0; right: 0; text-align: center; color: var(--clr-cream-base); font-size: var(--fs-body); letter-spacing: var(--ls-caps); pointer-events: none; }
@media only screen and (max-width: 1024px) {
  .gallery-zoom { top: 10px; right: 10px; width: 36px; height: 36px; padding: 9px; }
  .gallery-zoom--sm { top: 8px; right: 8px; width: 30px; height: 30px; padding: 7px; }
  .gallery-viewer { --thumbs-h: 64px; }
  .gallery-viewer__main { top: 60px; bottom: calc(var(--thumbs-h) + 32px); }
  .gallery-viewer__main .swiper-zoom-container { padding: 0; }
  .gallery-viewer__thumbs { bottom: 16px; padding: 0 var(--gutter-mobile); }
  .gallery-viewer__close { top: 8px; right: 6px; width: 44px; height: 44px; padding: 14px; }
  .gallery-viewer__nav { top: calc((100% - var(--thumbs-h) - 32px + 60px) / 2); width: 40px; height: 44px; padding: 12px 14px; color: var(--clr-cream-base); --icon-stroke: 3; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .5)); }
  .gallery-viewer__nav--prev { left: 0; }
  .gallery-viewer__nav--next { right: 0; }
  .gallery-viewer__nav :is(.icon--chevron-left-ring, .icon--chevron-right-ring) { display: none; }
  .gallery-viewer__nav :is(.icon--chevron-left, .icon--chevron-right) { display: block; }
  .gallery-viewer__count { top: 22px; font-size: var(--fs-text-m); }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-viewer, .gallery-viewer__main { transition: none; transform: none; }
}
/* Tab panels and the Grid/Single switch fade in and rise */
@keyframes panel-in { from { opacity: 0; transform: translateY(3rem); } to { opacity: 1; transform: none; } }
.home-exp__panel.is-active { animation: panel-in var(--duration-panel) ease; }
#gallery .is-entering { animation: panel-in .45s ease; }
/* Mobile tab pickers (Gallery page, homepage Experiences) */
.tab-dropdown {
  --arrow-size: 14px; --item-h: 40px; --item-px: 12px; --menu-radius: var(--radius-lg);
  --color: var(--clr-green-medium); --item-color: var(--clr-green-medium); --arrow-color: currentColor;
  --bc: var(--clr-green-medium); --bc-hover: var(--clr-green-medium); --bc-focus: var(--clr-green-medium);
  letter-spacing: var(--ls-caps); text-transform: uppercase;
}
.tab-dropdown .ui-dropdown__toggle { text-transform: inherit; letter-spacing: inherit; }
#gallery .tab-dropdown { --color: var(--clr-cream-base); --bc: var(--clr-cream-base); --bc-hover: var(--clr-cream-base); --bc-focus: var(--clr-cream-base); }
.gallery__views, .gallery-grid { display: none; }
.flex { display: flex; width: 100%; flex-wrap: wrap; }
.flex.content-center { justify-content: center; }
.gallery__tab {
  color: var(--clr-gold);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--fs-body-lg);
  font-style: normal;
  font-weight: var(--fw-body);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  margin: var(--space-section) 0;
}
.gallery__tabmb { display: none; }
.gallery__tab>button {
  margin: 0px 5.5rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  cursor: pointer;
  position: relative;
}
.gallery__tab>button::before {
  content: "";
  width: 0%;
  height: 1px;
  background-color: var(--clr-cream-base);
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  transition: width var(--t-hover);
}
.gallery__tab>button.is-active { color: var(--clr-cream-base); }
@media (hover: hover) { .gallery__tab>button:hover { color: var(--clr-cream-base); } }
.gallery__tab>button.is-active::before { width: 100%; }
@media (hover: hover) { .gallery__tab>button:hover::before { width: 100%; } }
.gal-pag .swiper-pagination { position: relative !important; bottom: 0 !important; }
/* Fraction counters ("4 / 26" between thin < > arrows) */
:is(.gallery-pagination, .gal-pag) { display: flex; align-items: center; gap: 2rem; --icon-stroke: 1.5; }
:is(.gallery-pagination, .gal-pag) .swiper-pagination { display: flex; align-items: center; gap: .4em; width: auto; font-size: var(--fs-lead); line-height: 1; color: inherit; }
:is(.gallery-prev, .gallery-next, .gal-prev, .gal-next) { flex: none; width: 4rem; height: 4rem; padding: .25rem; box-sizing: content-box; cursor: pointer; }
@media only screen and (max-width: 1024px) {
  :is(.gallery-pagination, .gal-pag) { gap: 12px; }
  :is(.gallery-pagination, .gal-pag) .swiper-pagination { font-size: 16px; }
  :is(.gallery-prev, .gallery-next, .gal-prev, .gal-next) { width: 24px; height: 24px; padding: 4px; }
}
.home-exp__panel {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.home-exp__panel.is-active { z-index: 1; opacity: 1; position: relative; }
@media only screen and (max-width: 1024px) {
  .gallery__tab.resdesktop { display: none; }
  .no-overflow { overflow: hidden; }
  .gal-pag .resdesktop { display: none; }
  .gallery__panels { margin-top: var(--space-section-mobile); padding-bottom: var(--space-section-mobile); }
  /* Gallery slider (homepage + Gallery page) */
  .gallery-slide { padding: 10px 0 10px var(--gutter-mobile); }
  .gallery-slide .swiper-slide { transition: transform 0ms; }
  .gallery-slide .swiper-nav { margin-top: var(--space-block); }
  .gallery-slide .gallery-pagination { padding-top: 0; }
  /* Gallery page: Grid / Single switch */
  .gallery__views { display: flex; justify-content: center; gap: 30px; margin-top: 30px; }
  .gallery__views button {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--clr-cream-base);
    font-family: var(--font-body);   /* buttons do not inherit the font */
    font-size: 12px;
    font-weight: var(--fw-body);
    line-height: 1;
    opacity: .6;
    transition: opacity .3s ease;
    cursor: pointer;
  }
  .gallery__views button.is-active { opacity: 1; }
  .gallery__views .icon { width: 30px; height: 30px; }
  #gallery[data-view="grid"] .gallery-slide { display: none; }
  #gallery[data-view="grid"] .gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 0 var(--gutter-mobile); }
  .gallery-grid a { display: block; }
  .gallery-grid img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
  .gallery__tabmb { display: flex; margin-top: 61px; position: relative; z-index: 2; }
}

/* Page: Experiences */
.exp-sec>div:nth-child(1), .exp-sec>div:nth-child(2) { padding: 0 var(--gutter-page); }
.exp-sec>div:nth-child(1) { background-color: var(--clr-cream-base); padding-top: var(--space-section-lg); }
.exp-sec>div:nth-child(2) { background-color: var(--clr-green-medium); }
.exp-secitem { display: flex; justify-content: center; align-items: center; }
.exp-secitem>div { width: 50%; }
.exp-secitem img {
  display: block;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: auto;
  aspect-ratio: 72/44;
}
.exp-secitem>div:last-child {
  padding: 0 11.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: var(--clr-cream-light);
  align-self: stretch;
}
.exp-secitem:last-child { flex-direction: row-reverse; }
.exp-itemct>div:first-child {
  color: var(--clr-gold);
  text-align: center;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
}
.exp-itemct>div:last-child {
  color: var(--clr-green-medium);
  text-align: center;
  letter-spacing: var(--ls-body);
  margin-top: 2.4rem;
}
.exp-itemct__text { font-size: var(--fs-body-lg); }
.exp-itemct__title { font-size: var(--fs-title-sm); }
.expsec-title { text-align: center; max-width: var(--measure-intro); margin: 0 auto var(--space-section); }
.expsec-title>div:first-child {
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  white-space: nowrap;
}
.expsec-title>div:last-child { letter-spacing: var(--ls-body); margin-top: 6rem; }   /* section title to description, like .section-head */
.expslidehalf .expsec-title>div:first-child { color: var(--clr-gold); }
.bgnature .expsec-title>div:last-child {
  color: var(--clr-cream-base);
}
.bghistory .expsec-title>div:last-child { color: var(--clr-green-medium); }
.expsec-desc { font-size: var(--fs-body); }
.expsec-heading { font-size: var(--fs-section); }
.expslidehalf { padding: var(--space-section-lg) 0; overflow-x: clip; }   /* slides beyond the screen edge must not widen the page */
.bgnature { background-color: var(--clr-green-medium); margin-top: -1px; }
.bghistory { background-color: var(--clr-cream-base); }
.slide-expp { width: 100%; position: relative; }
.expslide-item { text-align: center; width: 100%; }
.expslide-item>div:first-child { position: relative; overflow: hidden; }
.expslide-item img {
  display: block;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: auto;
  aspect-ratio: 9/5.4;
}
.expslide-item>div:last-child { margin: -5rem 8% 0; position: relative; z-index: 5; }
.expslide-item>div:last-child>div:first-child {
  min-height: 5rem;   /* a long title wraps to a second line inside the band */
  padding: 1rem 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
}
/* Two rows: a four-line slot for the short description and Read more at the bottom */
.expslide-item>div:last-child>div:last-child {
  display: grid;
  grid-template-rows: calc(4em * var(--lh-body)) auto;
  justify-items: center;
  gap: 1.8rem;
  padding: 2.4rem 3.2rem 2.8rem;
  letter-spacing: var(--ls-body);
}
/* The short description shows four lines at most, then "…" */
.exp-intro-text__desc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; line-height: var(--lh-body); align-self: center; }
/* Read more (sliders.js showbox()) */
.exp-intro-more { --px: 3.9rem; --bg: transparent; --color: var(--clr-gold); --bc: var(--clr-gold); --bg-hover: var(--clr-gold); --color-hover: var(--clr-cream-light); --bc-hover: var(--clr-gold); }
.exp-popup.ui-popup { --w: 70rem; --pad: 6rem 6rem 5rem; --bg: var(--clr-cream-base); --bc: var(--clr-gold); text-align: center; }
.exp-popup__title { color: var(--clr-gold); font-family: var(--font-display); text-transform: uppercase; line-height: var(--lh-tight); font-size: var(--fs-title-sm); margin-bottom: 2.4rem; }
.exp-popup__text { color: var(--clr-green-dark); font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.exp-popup__text p + p { margin-top: 1em; }
.bgnature .expslide-item>div:last-child>div:first-child {
  background-color: var(--clr-gold);
  color: var(--clr-cream-base);
}
.bgnature .expslide-item>div:last-child>div:last-child {
  background-color: var(--clr-cream-base);
  color: var(--clr-green-medium);
}
.bghistory .expslide-item>div:last-child>div:first-child {
  background-color: var(--clr-gold);
  color: var(--clr-cream-base);
}
.bghistory .expslide-item>div:last-child>div:last-child {
  background-color: var(--clr-green-medium);
  color: var(--clr-cream-base);
}
.exp-intro-text { font-size: var(--fs-body); }
.exp-intro-title { font-size: var(--fs-title-sm); }
.box-hidden {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background: var(--clr-cream-base);   /* the colours and gold frame of the phone popup (#popup-exp-info) */
  border: .1rem solid var(--clr-gold);
  padding: 4.5rem;
  overflow-y: auto;
  opacity: 0;
  color: var(--clr-green-dark);
  font-size: var(--fs-body-lg);
}
.box-hidden > div { margin: auto 0; }   /* centred when it fits, scrolls from the top when it does not */
.is-front { z-index: var(--z-header); }
.box-hidden p { color: var(--clr-green-dark); text-align: center; letter-spacing: var(--ls-body); }
.slide-expp .swiper-slide { opacity: 0.5; transition: all 1s ease; }
.slide-expp .swiper-slide.swiper-slide-active { opacity: 1; transition: all 1s ease; }
/* Desktop: the centre slide grows as it arrives and the others shrink */
.slide-expp .swiper-slide, .slide-expp .swiper-slide.swiper-slide-active { transition-property: transform, opacity; transition-timing-function: ease; }
/* "n / total" counter with its thin < > arrows under the slider, on every screen */
.slide-expp .gal-pag { justify-content: center; margin-top: 3rem; color: var(--clr-cream-base); }
.bghistory .slide-expp .gal-pag { color: var(--clr-green-medium); }
@media only screen and (max-width: 1024px) {
  .exp-secitem { display: block; }
  .exp-secitem>div { width: 100%; }
  .exp-secitem img { aspect-ratio: 1/1; }
  .exp-sec>div:nth-child(1), .exp-sec>div:nth-child(2) { padding: 0; }
  .exp-sec>div:nth-child(1) { margin-bottom: 30px; }
  .exp-secitem>div:last-child { padding: 30px 20px 35px; }
  .exp-itemct>div:first-child { margin-bottom: 15px; }
  .exp-itemct__text { font-size: var(--fs-text-m); }
  .exp-itemct__title { font-size: 20px; }
  .exp-sec { padding: var(--space-section-mobile) var(--gutter-mobile); background: var(--clr-cream-base); }
  .expsec-title { padding: 0 20px; max-width: none; margin-bottom: 30px; }
  .expsec-title>div:last-child { margin-top: 35px; }
  .expslide-item>div:last-child>div:first-child { height: auto; min-height: 47px; padding: 12px 20px; }
  .expslide-item>div:last-child>div:last-child { height: auto; padding: 30px 20px 35px; }
  .expslide-item>div:last-child { position: relative; margin: 0; z-index: 2; }
  /* Same colours as on desktop: Nature green, Culture & History cream */
  .bghistory, .bgnature { overflow: hidden; margin-top: -1px; }
  .bgnature { padding: var(--space-section-mobile-lg) var(--gutter-mobile) var(--space-section-mobile); }
  .bghistory { padding: var(--space-section-mobile-lg) var(--gutter-mobile) var(--space-section-mobile); }
  .slide-expp .gal-pag { margin-top: 10px; }
  /* Phones: the full text opens in #popup-exp-info instead of over the image */
  .expslide-item .box-hidden { display: none; }
  .expslide-item>div:last-child>div:last-child { gap: 16px; }
  .exp-intro-more { --px: 20px; }
  .exp-popup.ui-popup { --w: 100%; --pad: 32px 16px 24px; }
  .exp-popup__title { font-size: 20px; margin-bottom: 15px; }
  .exp-popup__text { font-size: var(--fs-text-m); }
  .exp-intro-text { font-size: var(--fs-text-m); }
  .exp-intro-title { font-size: 20px; }
  .expsec-desc { font-size: var(--fs-text-m); }
  .expsec-heading { font-size: 30px; }
  /* One slide that cross-fades (Swiper fade) */
  .slide-expp .swiper-slide img { transform: scale(1.06); transition: transform 0s linear 1.2s; }
  .slide-expp .swiper-slide-active img { transform: none; transition: transform 2.4s cubic-bezier(.22, 1, .36, 1); }
  .slide-expp .swiper-slide .exp-intro-title { -webkit-text-fill-color: transparent; transition: -webkit-text-fill-color .3s ease; }
  .slide-expp .swiper-slide-active .exp-intro-title { -webkit-text-fill-color: currentColor; transition: -webkit-text-fill-color .7s ease .2s; }
  .slide-expp .swiper-slide .exp-intro-text > * { opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform 0s linear .3s; }
  .slide-expp .swiper-slide-active .exp-intro-text > * { opacity: 1; transform: none; transition: opacity .7s ease .35s, transform 1.2s cubic-bezier(.22, 1, .36, 1) .35s; }
}

/* Page: Sustainability */
.slide_sustainability { overflow: hidden; }
.slide_sustainability .exp-secitem { display: flex; }
.slide_sustainability .exp-secitem.item-revert { flex-direction: row; }
.jiva-page-sustainability .exp-sec.sustain-slide>div:nth-child(1) { padding: 0; margin: -1px var(--gutter-page) 0; }
.jiva-page-sustainability .exp-sec.sustain-top>div:nth-child(1) {
  padding: var(--space-section-lg) var(--gutter-page) 0;
  margin-top: -1px;
}
.page-banner__desc { font-size: var(--fs-lead); }
@media only screen and (max-width: 1024px) {
  .page-banner__desc { font-size: var(--fs-text-m); }
}
.page-banner__title, .page-banner__title h1 { font-size: var(--fs-display); }
@media only screen and (max-width: 1024px) {
  .page-banner__title, .page-banner__title h1 { font-size: 40px; }
}
/* Spacer in the next section's colour (inline style) */
.div-temp { height: 16rem; margin-top: -1px; background: var(--clr-green-dark); }
.slide_sustainability .swiper-button-prev { margin-left: 25rem; }
.slide_sustainability .swiper-button-next { margin-right: 25rem; }
/* Slide change like the homepage Wine & Dine */
.slide_sustainability .exp-secitem>div:first-child { overflow: hidden; }
.slide_sustainability .exp-secitem img { transform: scale(1.06); transition: transform 0s linear 1.4s;   /* reset once the 1.4s fade has hidden it */ }
.slide_sustainability .swiper-slide-active .exp-secitem img { transform: none; transition: transform 2.4s cubic-bezier(.22, 1, .36, 1); }
.slide_sustainability :is(.exp-itemct__title, .exp-itemct__text) {
  opacity: 0;
  transform: translateY(var(--sus-rise, 2.4rem));
  transition: opacity .3s ease, transform 0s linear .3s, letter-spacing 0s linear .3s;
}
.slide_sustainability .exp-itemct__title { letter-spacing: .5rem; }
.slide_sustainability .swiper-slide-active :is(.exp-itemct__title, .exp-itemct__text) {
  opacity: 1;
  transform: none;
  transition: opacity .7s ease var(--sus-delay), transform 1.2s cubic-bezier(.22, 1, .36, 1) var(--sus-delay), letter-spacing 1.6s cubic-bezier(.22, 1, .36, 1) var(--sus-delay);
}
.slide_sustainability .swiper-slide-active .exp-itemct__title { letter-spacing: var(--ls-display); --sus-delay: .2s; }
.slide_sustainability .swiper-slide-active .exp-itemct__text { --sus-delay: .35s; }
@media only screen and (max-width: 1024px) {
  .slide_sustainability .exp-secitem, .slide_sustainability .exp-secitem.item-revert {
    flex-direction: column;
  }
  .jiva-page-sustainability .exp-sec.sustain-slide>div:nth-child(1),
  .jiva-page-sustainability .exp-sec.sustain-top>div:nth-child(1) {
    padding: 0;
    margin: 0;
  }
  .jiva-page-sustainability .exp-sec { padding: var(--space-section-mobile) var(--gutter-mobile); margin: 0; }
  /* Like Wine & Dine on phones */
  .slide_sustainability { --swiper-navigation-top-offset: calc(50vw - var(--gutter-mobile)); --sus-rise: 12px; }
  .slide_sustainability .swiper-button-prev { left: 10px; margin-left: 10px; }
  .slide_sustainability .swiper-button-next { right: 10px; margin-right: 10px; }
  /* Like the homepage Accommodation box */
  .slide_sustainability .swiper-slide { height: auto; }
  .slide_sustainability .exp-secitem { height: 100%; }
  .slide_sustainability .exp-secitem>div:first-child { flex: none; }
  .slide_sustainability .exp-secitem>div:last-child { flex: 1; justify-content: flex-start; align-items: flex-start; gap: 15px; padding: 30px 20px 35px; text-align: left; }
  .slide_sustainability .exp-itemct>div:first-child { margin-bottom: 0; text-align: left; }
  .slide_sustainability .exp-itemct>div:last-child { margin: auto 0; text-align: left; }
  /* No letter-spacing change on phones */
  .slide_sustainability .exp-itemct__title, .slide_sustainability .swiper-slide-active .exp-itemct__title { letter-spacing: var(--ls-display); }
}

/* Page: Wine & Dine / Recharge */
.ll-venue__slide img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.ll-venues { padding: var(--space-section) var(--gutter-wide) 6rem; background-color: var(--clr-cream-base); z-index: 1; }
.ll-venue { margin-bottom: 3rem; }
.ll-venue:last-child { margin-bottom: 0px; }
.ll-venue__media { position: relative; height: 76.4rem; }
.ll-venue__slider { overflow: hidden; height: 100%; position: relative; }
.ll-venue__slider.is-single .swiper-material-content { width: 100%; height: 100%; left: 0; top: 0; }   /* one image: no Swiper, so the frame is set here */
/* Dark fade over the whole slide image (no longer set per post) */
.slide__pagefill {
  position: absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.50));
  mix-blend-mode: multiply;
}
.ll-venue__box {
  position: absolute;
  bottom: 1rem;
  width: 87rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-wine-box);
}
.ll-venue__text { padding: 2.5rem 0px 3rem; }
.ll-venue__content {
  padding: 0px 5rem;
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--fs-body-lg);
  font-style: normal;
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
}
.ll-venue__content p { font-size: var(--fs-body-lg); line-height: var(--lh-body); margin: 0px 0px 2.5rem; }
.ll-venue__content p:last-child { margin: 0px; }
.ll-venue__logo.resmobile { display: none; }
.ll-venue__logo img { display: block; margin: auto auto 8.4rem; }
.ll-venue__links { display: flex; justify-content: center; margin-top: 5rem; }
.ll-venue__links>div { margin: 0px 1rem; }
.hat-gao .ll-venue__logo img { max-width: 31.6rem; height: auto; margin: auto auto 4.4rem; }
.nhat-yen .ll-venue__logo img { max-width: 24.6rem; height: auto; }
.the-cellar-door .ll-venue__logo img { max-width: 18.4rem; height: auto; }
.chi-quan-spa .ll-venue__logo img { max-width: 32rem; height: auto; }
.tea-house .ll-venue__logo img { max-width: 69.5rem; height: auto; }
/* The Accommodation arrow (a cream chevron on the image) on every screen */
.ll-venue__slider :is(.swiper-button-prev, .swiper-button-next) { color: var(--clr-cream-base); --icon-stroke: 3; overflow: hidden; }
.ll-venue__slider .swiper-button-next { margin-right: 9rem; }
.ll-venue__slider .swiper-button-prev { margin-left: 9rem; }
@media only screen and (max-width: 1024px) {
  .ll-venue__media { height: auto; z-index: 1; }
  .ll-venue { margin-bottom: 30px; }
  .ll-venue__slider--tall { height: 100rem; overflow: visible; }
  .ll-venues { padding: 30px var(--gutter-mobile); overflow: hidden; }   /* the same 30px below the last venue as above the first and between them */
  .ll-venue__box { width: 100%; position: relative; bottom: 0; }
  .ll-venue__logo.resdesktop { display: none; }
  .ll-venue__logo.resmobile {
    display: block;
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
  }
  /* Logos centred on the slide, all with the same area whatever their shape: width = base × √(width / height)
     (--logo-scale, set in content-lifeleisure.php), so wide logos get wider and square or tall ones narrower.
     Without --logo-scale the width is invalid and falls back to auto. The caps keep very wide or tall logos in check;
     object-fit stops a capped logo from stretching. Beats the per-logo desktop max-widths above (0,2,1). */
  .ll-venue .ll-venue__logo img {
    width: calc(100px * var(--logo-scale));
    max-width: min(240px, 65vw);
    max-height: 110px;
    height: auto;
    object-fit: contain;
    margin: 0;
  }
  .ll-venue__links { flex-direction: column; width: 100%; padding: 0 25px; margin-top: 0; }
  /* Full-width, centred buttons */
  /* Long labels wrap inside the button, which grows taller (at least the standard 44px) */
  .ll-venue__links .ui-btn { --w: 100%; --px: 14px; min-width: 100%; text-align: center; line-height: 1.3; height: auto; min-height: var(--h); padding-block: 10px; white-space: normal; }
  .ll-venue__text { padding: 20px 0 36px; }
  .ll-venue__content { padding: 0 30px; margin-bottom: 20px; }
  .ll-venue__content p { font-size: var(--fs-text-m); }
  .ll-venue__links>div { margin: 20px 0 0; }
  /* On the slide (like the homepage and Accommodation sliders), not past the screen edge */
  .ll-venue__slider--tall .swiper-button-next { width: 12px; margin-right: 20px; right: 10px; }
  .ll-venue__slider--tall .swiper-button-prev { width: 12px; margin-left: 20px; left: 10px; }
}

/* Page: Features */
.feature-title-wr { position: relative; z-index: 5; margin-bottom: var(--space-section); }
.feature-title-wr.resdesktop { display: block; }
.feature-title-wr.resmobile { display: none; }
.feature-title {
  font-family: var(--font-display);
  font-size: var(--fs-display);
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  margin: 0;
  text-align: center;
}
@media only screen and (max-width: 1024px) {
  .feature-title-wr {
    margin-bottom: 0rem;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80%;
    transform: translate(-50%, -50%);
  }
  .feature-title-wr.resdesktop { display: none; }
  .feature-title-wr.resmobile { display: block; }
  .feature-title { font-size: 40px; }
}

/* Page: Privileges */
.privileges-intro {
  color: var(--clr-green-medium);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--fs-body-lg);
  font-style: normal;
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  width: var(--measure-intro);
  margin: auto;
  padding: var(--space-section) 0;
}
.privileges-list { width: 100%; padding: 0 var(--gutter-wide) var(--space-section); }
.privileges-list .resmobile { display: none; }
.privilege-card { display: flex; width: 100%; }
/* The same gap between the cards as between the Life & Leisure venues */
.privileges-grid { display: grid; gap: 3rem; }
.privileges-list .swiper-slide.swiper-slide-prev { scale: 0.5; transition: all 2s ease; }
.privileges-list .swiper-slide.swiper-slide-active { scale: 1; transition: all 1.5s ease; }
.privileges-list .swiper-slide.swiper-slide-next { opacity: 0.5; transition: all 1s ease; }
/* The image fills its half of the card however tall the text gets */
.privilege-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  aspect-ratio: 5 / 3;
  object-fit: cover;
  object-position: center;
}
.privilege-card__image { width: 60%; }
.privilege-card__body {
  width: 40%;
  padding: 4rem;
  color: var(--clr-green-medium);
  font-family: var(--font-body);
  font-size: var(--fs-body-lg);
  font-style: normal;
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  background-color: var(--clr-cream-light);
}
.privilege-card__body p {
  margin-block-end: 2rem;
}
.privilege-card__body h2 {
  color: var(--clr-gold);
  font-family: var(--font-display);
  font-size: var(--fs-title-md);
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  padding: 0 0 2.4rem;   /* nothing above */
}
.privilege-card__link { width: 100%; margin-top: 4rem; }
@media only screen and (min-width: 1025px) {
  /* The text column is as tall as the image */
  .privilege-card__body { display: flex; flex-direction: column; }
  .privilege-card__link { margin-top: auto; padding-top: 4rem; }
}
@media only screen and (max-width: 1024px) {
  .privileges-intro { font-size: var(--fs-text-m); width: 100%; margin: auto; padding: var(--space-section-mobile-lg) var(--gutter-mobile); }
  .privileges-list { padding: 0 var(--gutter-mobile) var(--space-section-mobile); overflow: hidden; position: relative; }
  .privileges-grid { gap: 30px; }
  .privilege-card { flex-direction: column; }
  .privilege-card__image { width: 100%; height: 300px; }
  .privilege-card__body { height: auto; width: 100%; }
  .privilege-card__image img { object-fit: cover; object-position: center; height: 100%; }
  .privileges-list .swiper-slide.swiper-slide-next { opacity: 0.5; scale: 0.5; transition: all 1s ease; }
  .privilege-card__body h2 { font-size: 24px; text-align: center; padding-bottom: 15px; }
  .privilege-card__body {
    font-size: var(--fs-text-m);
    text-align: center;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
  }
  .privilege-card__link { display: flex; justify-content: center; align-items: center; margin-top: 20px; }
  .privileges-list .resmobile { display: block; }
  .privileges-list .resdesktop { display: none; }
  .privileges-list .swiper-button-next {
    width: 40px;
    height: 40px;
    top: var(--swiper-navigation-top-offset,300px);
  }
  .privileges-list .swiper-button-prev {
    width: 40px;
    height: 40px;
    top: var(--swiper-navigation-top-offset,300px);
  }
}

/* Page: Story (Archive) */
.story-section>div { padding: 0 var(--gutter-page) var(--space-section); background-color: var(--clr-cream-base); }
@media only screen and (max-width: 1024px) {
  /* The story items carry the phone gutter themselves */
  .story-section>div { padding-left: 0; padding-right: 0; }
}
.story-list .story-item--featured {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  margin-bottom: 2rem;
}
.stories-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  padding: var(--space-section-lg) var(--gutter-page) 3.8rem;
  background-color: var(--clr-cream-base);
}
.stories-head .list-title { font-size: var(--fs-section); }
.list-title {
  color: var(--clr-green-medium);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.story-list .story-item--featured img {
  display: block;
  width: 100%;
  height: 70rem;
  object-fit: cover;
  object-position: center;
}
.story-list .story-item--featured .story-item__text {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 5;
  width: 40%;
  padding-left: 8.1rem;
  padding-bottom: 7.3rem;
}
.story-list .story-item--featured .story-item__date {
  color: var(--clr-cream-base);
  letter-spacing: var(--ls-body);
}
.story-list .story-item--featured .story-item__title a {
  color: var(--clr-cream-base);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.story-item__more { margin-top: 3rem; }
.story-list {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 100%;
}
.story-item { width: 32%; align-self: stretch; overflow: hidden; }
.story-list .story-item:not(:nth-child(3n + 1)) { margin-right: 2%; }
.story-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 3/2;
}
.story-list .story-item__date {
  margin-top: 2rem;
  color: var(--clr-green-medium);
  letter-spacing: var(--ls-body);
}
.story-list .story-item__title a {
  color: var(--clr-gold);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.story-list .story-item__title { margin-top: 2rem; }
.story-list .story-item__title h2 { padding-top: 0; }   /* date to title: the 2rem alone */
/* Every story but the featured one is a white card with its text padded inside */
.story-list .story-item:not(.story-item--featured) { background-color: var(--clr-cream-light); }
.story-list .story-item:not(.story-item--featured) .story-item__text { padding: 3rem 3rem 3.5rem; }
.story-list .story-item:not(.story-item--featured) .story-item__date { margin-top: 0; }
@media only screen and (min-width: 1025px) {
  /* The three stories of a row are equally tall (the row stretches them) */
  .story-list .story-item:not(.story-item--featured) { display: flex; flex-direction: column; }
  .story-list .story-item:not(.story-item--featured) .story-item__text { flex: 1; display: flex; flex-direction: column; }
  .story-list .story-item:not(.story-item--featured) .story-item__more { margin-top: auto; padding-top: 3rem; }
}
.story-filter {
  border-bottom: solid 0.5px var(--clr-green-medium);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 3.05rem;
  position: relative;
}
.career-filters__sort { display: flex; justify-content: flex-start; align-items: center; position: relative; }
.story-filter>label { color: var(--clr-green-medium); letter-spacing: var(--ls-body); white-space: nowrap; }
.story-filter label { font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .story-archive>div { padding: 0 0 54px; border-bottom: none; }
  .story-archive > .stories-head { display: block; padding: var(--space-section-mobile) var(--gutter-mobile); }   /* beats `.story-archive>div` above */
  .stories-head .list-title { font-size: 30px; }
  .story-filter { height: auto; margin-top: 26px; justify-content: flex-start; width: 100%; }
  .story-filter>label { width: auto; margin-right: 10px; }
  .story-filter .ui-dropdown { flex: 1 1 auto; min-width: 0; max-width: none; margin-left: 0; }   /* rest of the row after the label */
  .story-filter .loading, .career-filters .loading { width: 30px; height: 30px; }
  .story-filter label { font-size: 16px; }
  .story-list { display: block; }
  .story-item { width: 100%; }
  .story-list .story-item--featured { width: auto; margin: 0 var(--gutter-mobile); }
  .story-list .story-item--featured .story-item__text {
    width: 100%;
    padding-left: var(--gutter-mobile);
    padding-bottom: 18px;
    padding-top: 18px;
    bottom: 0;
  }
  .story-list .story-item--featured img { height: 150rem; }
  .story-list .story-item--featured .story-item__date {
    font-size: var(--fs-text-m);
    margin-top: 0;
    margin-bottom: 15px;
    width: 100%;
  }
  .story-list .story-item--featured .story-item__title {
    font-size: 20px;
    margin-top: 0;
    margin-bottom: 18px;
    width: 70%;
  }
  .story-item__more { margin-top: 0; }
  .story-list .story-item:not(:nth-child(3n + 1)) { margin-right: 0px; }
  .story-list .story-item:not(:first-child) { width: auto; margin: var(--space-block) var(--gutter-mobile) 0; }
  .story-list .story-item__date {
    margin-top: 24px;
    margin-bottom: 15px;
    font-size: 12px;
  }
  .story-list .story-item__title {
    margin-top: 0;
    margin-bottom: 24px;
    font-size: 20px;
  }
  .story-list .story-item:not(.story-item--featured) .story-item__text { padding: 20px 20px 24px; }
  .story-list .story-item:not(.story-item--featured) .story-item__date { margin-top: 0; }
  .career-filters__sort { height: 100%; }
}

/* Page: Story (Single) */
.single-story .wp-caption { width: 100% !important; height: auto; }
.single-story .wp-caption img { width: 100% !important; height: auto; }
.story-body__back { width: auto; }
.story-body__back a { display: flex; justify-content: space-between; align-items: center; }
.story-body__back .back-icon { margin-right: 1rem; }
.story-body, .story-related { background-color: var(--clr-cream-base); }
/* Table of contents links (Table of Contents Plus) jump to a heading */
.story-body__content :is(h1, h2, h3, h4, h5, h6),
.story-body__content :is(h1, h2, h3, h4, h5, h6) [id] { scroll-margin-top: 8rem; }
.story-body .story-body__back { position: absolute; top: 0; left: -21rem; }   /* 16rem from the screen edge */
.story-body .story-body__back a { color: var(--clr-green-medium); }
.story-body { padding: var(--space-section) var(--content-single); border-bottom: solid 1px var(--clr-gold); }
.story-body p { color: var(--clr-green-medium); font-size: var(--fs-lead); }
.story-body__meta {
  color: var(--clr-green-medium);
  letter-spacing: var(--ls-body);
  position: relative;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.story-related { padding: var(--space-section) var(--content-single); }
.story-related .story-related__title {
  color: var(--clr-green-medium);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.story-related__title { font-size: var(--fs-section); }
.story-item__title, .story-item__title h2 { font-size: var(--fs-title-sm); }
.story-item__date { font-size: var(--fs-body); }
/* Related stories */
.story-related .pkg-slider { margin-top: var(--space-block); }
.story-body__content img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.story-tags { display: flex; justify-content: flex-end; align-items: center; }
.story-tags__item { padding-right: 1.6rem; color: var(--clr-gold); letter-spacing: var(--ls-body); }
.story-tags__item:last-child { padding-right: 0; color: var(--clr-gold); letter-spacing: var(--ls-body); }
.story-tags.resmobile { display: none; }
/* Story text: headings, links, captions, quotes and the contents box */
.story-body__content h2 { font-size: var(--fs-title-md); }
.story-body__content h3 { font-size: var(--fs-title-sm); }
.story-body__content h4 { font-size: var(--fs-lead); }
.story-body__content [style*="justify"] { text-align: left !important; }   /* pasted justified text leaves gaps */
.story-body__content .wp-caption { margin-bottom: 2rem; }
.story-body__content .wp-caption img { margin-bottom: 1rem; }
.story-body__content .wp-caption-text {
  font-size: var(--fs-body);
  font-style: italic;
  text-align: center;
  color: color-mix(in srgb, var(--clr-green-medium) 70%, transparent);
}
.story-body__content blockquote {
  margin: 3rem 0;
  padding: 2rem 2.8rem;
  border-left: 3px solid var(--clr-gold);
  background: var(--clr-cream-light);
}
.story-body__content blockquote > :last-child { margin-bottom: 0; }
/* Numbered lists whose items start with a heading: the number moves into the heading */
/* Privacy Policy: bullet lists, nested ones with open circles */
.privacy-page ul { list-style: disc; padding-left: 1.4em; margin: 1em 0; }
.privacy-page ul ul { list-style: circle; margin: .6em 0 0; }
.privacy-page li { color: var(--clr-green-medium); font-size: var(--fs-lead); line-height: var(--lh-body); }
.privacy-page li + li { margin-top: .6em; }
@media only screen and (max-width: 1024px) {
  .privacy-page li { font-size: var(--fs-text-m); }
}
.story-body__content ol:has(> li > :is(h2, h3, h4):first-child) { list-style: none; padding-left: 0; }
.story-body__content ol:has(> li > :is(h2, h3, h4):first-child) > li > :is(h2, h3, h4):first-child::before { content: counter(list-item) ". "; }
/* Table of Contents Plus box */
.story-body__content #toc_container {
  display: block;
  width: 100%;
  margin: 0 0 3rem;
  padding: 2.4rem 3rem;
  font-size: var(--fs-body-lg);
  background: var(--clr-cream-light);
  border: 1px solid var(--clr-gold-line);
  border-radius: var(--radius-sm);
}
.story-body__content #toc_container .toc_title {
  font-family: var(--font-display);
  font-size: var(--fs-title-sm);
  font-weight: var(--fw-regular);
  color: var(--clr-gold);
  text-align: left;
}
.story-body__content #toc_container .toc_title + ul.toc_list { margin-top: 1.4rem; }
.story-body__content #toc_container li { line-height: var(--lh-loose); }
.story-body__content #toc_container a { color: var(--clr-green-medium); text-decoration: none; }
.story-body__content #toc_container .toc_number { color: var(--clr-gold); }
@media only screen and (max-width: 1024px) {
  .story-body__content h2 { font-size: 24px; }
  .story-body__content h3 { font-size: 20px; }
  .story-body__content h4 { font-size: 17px; }
  .story-body__content .wp-caption { margin-bottom: 20px; }
  .story-body__content .wp-caption img { margin-bottom: 8px; }
  .story-body__content .wp-caption-text { font-size: 13px; }
  .story-body__content blockquote { margin: 24px 0; padding: 14px 16px; }
  .story-body__content #toc_container { margin-bottom: 24px; padding: 16px 18px; font-size: var(--fs-text-m); }
  .story-body__content #toc_container .toc_title { font-size: 20px; }
}
.story-body__date, .story-tags__item, .story-body__back { font-size: var(--fs-body); }
@media only screen and (max-width: 1024px) {
  .story-body { padding: var(--space-section-mobile) var(--gutter-mobile); }
  .story-body__content :is(h1, h2, h3, h4, h5, h6),
  .story-body__content :is(h1, h2, h3, h4, h5, h6) [id] { scroll-margin-top: 80px; }   /* below the 60px phone header */
  .story-related { padding: var(--space-section-mobile) var(--gutter-mobile) 0; border-bottom: none; margin-bottom: -2px; }
  .story-tags.resdesktop { display: none; }
  .story-tags.resmobile { display: flex; justify-content: space-between; margin-top: 20px; }
  .story-body__date, .story-tags__item, .story-body__back { font-size: var(--fs-text-m); }
  .story-body__meta { margin-bottom: 20px; }
  .story-body p { font-size: var(--fs-text-m); }
  .story-related .pkg-slider { margin-top: var(--space-block); }
  .story-related__title { font-size: 30px; }   /* like the privilege headings and Discover more packages */
  .story-item__title, .story-item__title h2 { font-size: 20px; }
  .story-item__date { font-size: 16px; }
  .story-body .story-body__back { display: none; }   /* phones: no Go back on single pages */
  .story-body__content img { margin-top: 20px; margin-bottom: 20px; }
}

/* Page: Career (Archive) */
.career-archive { background-color: var(--clr-cream-base); }
.careers-head { display: flex; justify-content: center; align-items: center; padding: var(--space-section-lg) 0 var(--space-section); }
.careers-head .list-title { font-size: var(--fs-section); }
.career-filters {
  padding: 0 var(--gutter-page);
  margin-bottom: 5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.career-list { padding: 0 var(--gutter-page) var(--space-section); }
.career-item__summary.resmobile, .career-item__action.resmobile, .career-item__details.resmobile { display: none; }
.career-item { border: 0.5px solid var(--clr-green-medium); padding: 4rem; }
.career-item__head, .career-item__body, .career-item__summary, .career-item__details, .career-item__action { display: flex; justify-content: flex-start; align-items: center; width: 100%; }
.career-item__head { margin-bottom: 2.6rem; }
.career-item__cell--position { width: 40%; }
.career-item__cell--type { width: 15%; }
.career-item__head .career-item__cell--date { width: 45%; }
.career-item__body .career-item__cell--date { width: 20%; }
.career-item__cell--action { width: 25%; display: flex; justify-content: flex-end; align-items: center; }
.career-item__cell--action .ui-btn { min-width: 20rem; }   /* a longer Apply */
.career-item__head .career-item__label { color: var(--clr-gold); letter-spacing: var(--ls-body); }
.career-item__body > .career-item__cell { color: var(--clr-green-medium); }
.career-item__body .career-item__title {
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
}
.career-item__body .career-item__cell--type, .career-item__body .career-item__cell--date { letter-spacing: var(--ls-body); }
.career-item__meta { font-size: var(--fs-body); }
.career-item__title, .career-item__title h2 { font-size: var(--fs-title-sm); }
.career-item__label { font-size: var(--fs-body); }
.career-filters__item { width: 24%; border-bottom: solid 0.5px var(--clr-green-deep); }
@media only screen and (max-width: 1024px) {
  .careers-head { padding: 0; margin-top: var(--space-section-mobile); margin-bottom: var(--space-section-mobile); }
  .careers-head .list-title { font-size: 30px; }
  .career-filters { padding: 0 var(--gutter-mobile); margin-bottom: 47px; display: block; }
  .career-filters__item { width: 100%; height: 32px; margin-bottom: 15px; }
  .career-filters__search { display: flex; align-items: center; }   /* the search box centred in its row like the dropdowns */
  .career-filters .search-iconx { width: 15px; height: 15px; }   /* the header search icon's size */
  .career-list { padding: 0 var(--gutter-mobile) var(--space-section-mobile); }
  .career-list .resdesktop { display: none; }
  .career-item { padding: 20px; }
  .career-item__meta { font-size: var(--fs-text-m); }
  .career-item__title, .career-item__title h2 { font-size: 20px; }
  .career-item__label { font-size: var(--fs-text-m); }
  .career-item__summary.resmobile, .career-item__action.resmobile { display: block; }
  .career-item__action .ui-btn { --w: 100%; }   /* Apply across the card */
  .career-item__details.resmobile {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin: 20px 0;
  }
  .career-item__detail { width: 50%; }
  .career-item__summary .career-item__label, .career-item__detail .career-item__label {
    color: var(--clr-gold);
    margin-bottom: 10px;
  }
  .career-item__summary .career-item__label { margin-bottom: 15px; }   /* the space above the position title */
  .career-item__summary .career-item__title {
    color: var(--clr-green-medium);
    font-family: var(--font-display);
    font-weight: var(--fw-regular);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-display);
    text-transform: uppercase;
  }
  .career-item__detail .career-item__meta { color: var(--clr-green-medium); }
}

/* Page: Career (Single) */
.career-head, .career-detail { padding: 0 var(--content-single); }
.career-head__back a {
  color: var(--clr-green-deep);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.career-head__back .back-icon { margin-right: 1rem; }
.career-head__title {
  color: var(--clr-green-medium);
  text-align: center;
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}
.career-detail { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; padding-bottom: var(--space-section); }   /* space above the footer */
.career-detail__col--desc { width: 57%; }
.career-detail__col--apply { width: 35%; }
.career-detail__col--desc .career-detail__title, .career-detail__col--apply .career-detail__title {
  color: var(--clr-green-deep);
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  margin-bottom: 1.4rem;
}
.career-detail__body { font-size: var(--fs-body); }
.career-detail__title { font-size: var(--fs-title-sm); }
.career-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  margin: var(--space-section-lg) 0 var(--space-section);
}
.career-head__back, .career-head__spacer { width: 15%; }
.career-head__title { width: 70%; }
.career-head__title, .career-head__title h1 { font-size: var(--fs-page-title); }
.career-head__back { font-size: var(--fs-body); }
.career-detail__meta { display: flex; justify-content: flex-start; align-items: flex-end; margin: 2rem 0; }
.career-detail__sep { margin: 0 1rem; }
.career-detail__meta, .career-detail__content p, .career-form label {
  color: var(--clr-green-deep);
  letter-spacing: var(--ls-body);
}
.career-form__row { margin-bottom: 2rem; }
/* Direct contact: clear of the form and its reCAPTCHA line */
.career-contact { margin-top: 4rem; }
.career-form__row--submit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-bottom: 2rem;
  margin-top: 2rem;
}
@media only screen and (max-width: 1024px) {
  .career-head { margin: var(--space-section-mobile-lg) 0 var(--space-section-mobile); flex-direction: column; padding: 0 var(--gutter-mobile); }
  .career-head__title, .career-head__spacer { width: 100%; }
  .career-head__back { display: none; }   /* phones: no Go back on single pages */
  .career-head__title, .career-head__title h1 { font-size: 40px; }
  .career-detail { display: block; padding: 0 var(--gutter-mobile) var(--space-section-mobile); }
  .career-detail__col--desc, .career-detail__col--apply { width: 100%; }
  .career-detail__col--desc { margin-bottom: 40px; }
  .career-detail__col--apply { margin-bottom: 0; }
  .career-detail__col--desc .career-detail__title { margin-bottom: 0; }
  .career-detail__body { font-size: var(--fs-text-m); }
  .career-detail__title { font-size: 20px; }
  .career-detail__col--apply .career-detail__title { margin-bottom: 20px; }
  .career-detail__meta { margin: 20px 0; }
  /* Phones: posted date and type on their own lines, no "|" */
  .career-detail__meta { flex-direction: column; align-items: flex-start; }
  .career-detail__sep { display: none; }
  /* Phones: the same 12px between fields as the Contact / Press kit forms */
  .career-form__row, .career-form__row--file { margin-bottom: 12px; }
  .career-form__row--file { margin-top: 0; }
  .career-form__row--submit { height: auto; margin-top: 24px; }
  .career-form label { margin-bottom: 0; }
  .career-contact { margin-top: 30px; }
}

/* Page: Contact */
.simple-head { margin: var(--space-section-lg) 0 var(--space-section); z-index: 1; }
.simple-head__title {
  color: var(--clr-gold);
  text-align: center;
  font-family: var(--font-display);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
}
.simple-head__desc {
  color: var(--clr-green-medium);
  font-weight: var(--fw-semibold);
  text-align: center;
  font-style: normal;
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  max-width: var(--measure-intro);
  margin-inline: auto;
}
.simple-head__desc { font-size: var(--fs-lead); }   /* like the banner description (.page-banner__desc) */
/* Title to description: 6rem / 35px on phones */
.simple-head__desc { margin-top: 6rem; }
.simple-head__desc > p:first-child { margin-top: 0; }
.simple-head__title, .simple-head__title h1 { font-size: var(--fs-page-title); }
.contact-page__main { padding: 0 var(--content-contact); margin-bottom: var(--space-section-lg); z-index: 1; }
.contact-page__heading, .contact-page__heading--info {
  color: var(--clr-gold);
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-display);
  text-transform: uppercase;
  border-bottom: var(--border-hairline);
  padding-bottom: 1.2rem;
}
.contact-page__heading--info { margin-top: var(--space-block); }
.contact-page__heading { font-size: var(--fs-title-sm); }
.inquiry-form__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: auto;
  margin-top: 2.2rem;
}
.inquiry-form__cell--inquiry { width: calc(25% - 1.2rem); }
.inquiry-form__cell--salutation { width: calc(15% - 1.2rem); }
.inquiry-form__cell--first { width: calc(25% - 1.2rem); }
.inquiry-form__cell--last { width: 35%; }

.inquiry-form__cell--email { width: calc(40% - 1.2rem); }
.inquiry-form__cell--code { width: calc(20% - 1.2rem); }
.inquiry-form__cell--phone { width: 40%; }

.contact-info {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  height: auto;
  margin-top: 1.6rem;
}
.contact-info__text { width: 55%; margin-right: 5rem; }
.contact-info__links { width: 45%; }
.contact-info__text p { color: var(--clr-green-medium); line-height: var(--lh-body); letter-spacing: var(--ls-body); font-weight: var(--fw-semibold); }
.contact-info__text { font-size: var(--fs-body); }
.contact-info__links a { color: var(--clr-gold); font-weight: var(--fw-body); letter-spacing: var(--ls-body); }
.contact-info__row { display: flex; justify-content: flex-start; align-items: center; width: 100%; height: auto; }
.contact-info__icon { margin-right: 2rem; }
.contact-info__whatsapp { margin-right: 1rem; }
.contact-info__link { font-size: var(--fs-lead); }
.contact-page__map img { width: 100%; height: 100%; display: block; }
.contact-page__map { position: relative; }
.jiva-page-contact, .single-career { background: var(--clr-cream-base); }
.jiva-page-contact .page-banner, .single-career .page-banner { height: auto; }
.contact-page__hotspot { position: absolute; z-index: 1; }
.contact-page__hotspot--jiva { width: 7.3rem; height: 7.3rem; top: 55.6rem; right: 63.6rem; }
.contact-page__hotspot--cucphuong { width: 10.1rem; height: 7rem; top: 36.5rem; left: 37rem; }
.contact-page__hotspot--hoalucave { width: 7.1rem; height: 5rem; top: 6rem; left: 86rem; }
.contact-page__hotspot--vanlong { width: 8.1rem; height: 6rem; top: 13.5rem; right: 73rem; }
.contact-page__hotspot--dichlong { width: 10rem; height: 7rem; top: 14rem; left: 96.3rem; }
.contact-page__hotspot--kenhga { width: 6.1rem; height: 6.2rem; top: 30.5rem; left: 87.4rem; }
.contact-page__hotspot--vatrinh { width: 10.1rem; height: 6rem; top: 41.5rem; left: 75rem; }
.contact-page__hotspot--hoaluac { width: 10.1rem; height: 7.5rem; top: 38.5rem; right: 69.6rem; }
.contact-page__hotspot--trangan { width: 5.6rem; height: 5.4rem; top: 50.4rem; right: 73rem; }
.contact-page__hotspot--muacave { width: 5.8rem; height: 5.4rem; top: 51.9rem; right: 57rem; }
.contact-page__hotspot--thaivi { width: 7.1rem; height: 3.2rem; top: 61rem; right: 56rem; }
.contact-page__hotspot--kylan { width: 11.1rem; height: 6rem; top: 43rem; right: 47.7rem; }
.contact-page__hotspot--baidinh { width: 5rem; height: 6.5rem; top: 43.5rem; left: 98.3rem; }
.contact-page__hotspot--quynhluu { width: 10.1rem; height: 4.5rem; top: 55.5rem; left: 87.4rem; }
.contact-page__hotspot--tamcoc { width: 6.1rem; height: 4.5rem; top: 68.4rem; right: 61rem; }
.contact-page__hotspot--dongchuong { width: 7.7rem; height: 6.7rem; top: 57.8rem; left: 75.4rem; }
.contact-page__hotspot--tamdiep { width: 10.1rem; height: 2.8rem; bottom: 17rem; right: 72rem; }
.contact-page__hotspot--hoanggia { width: 7.1rem; height: 7rem; bottom: 17rem; right: 53rem; }
.contact-page__hotspot--dongthai { width: 7.1rem; height: 7.4rem; bottom: 3rem; right: 53rem; }
@media only screen and (max-width: 1024px) {
  .simple-head { margin: var(--space-section-mobile) 0; }
  .simple-head__desc { padding: 0 var(--gutter-mobile); max-width: none; margin-top: 35px; font-weight: var(--fw-body); }
  .simple-head__desc { font-size: var(--fs-text-m); }
  .simple-head__title, .simple-head__title h1 { font-size: 40px; }
  .contact-page__main { margin-bottom: var(--space-section-mobile); padding: 0 var(--gutter-mobile); }   /* the same side padding as the other pages */
  .contact-page__heading--info { margin-top: var(--space-block); }
  .contact-page__heading { font-size: 20px; }
  .contact-info { margin-top: 12px; display: block; }
  .contact-info__text, .contact-info__links { width: 100%; margin-right: 0; }
  .contact-info__links { margin-top: 20px; }
  .contact-info__text p { font-size: var(--fs-text-m); font-weight: var(--fw-body); }
  .contact-info__text { font-size: 16px; }
  .contact-info__row--mail { margin-top: 10px; }
  .contact-info__icon { margin-right: 20px; }
  .contact-info__whatsapp { margin-right: 10px; }
  .contact-info__link { font-size: 16px; }
  .inquiry-form { margin-top: 22px; }
  .inquiry-form__row { flex-wrap: wrap; column-gap: 10px; margin-top: 0px; }
  .inquiry-form__cell, .popup-form__cell--email, .popup-form__cell--code, .popup-form__cell--phone { margin-top: 12px; }
  /* Phone layout */
  .inquiry-form__cell--inquiry, .inquiry-form__cell--last, .inquiry-form__cell--email { width: 100%; }
  .inquiry-form__cell--salutation { width: 120px; flex: none; }
  .inquiry-form__cell--code { width: 130px; flex: none; }
  .inquiry-form__cell--first, .inquiry-form__cell--phone { width: auto; flex: 1 1 0; min-width: 0; }
  .inquiry-form__row--message, .inquiry-form__row--file, .inquiry-form__row--consent, .inquiry-form__row--submit { margin-top: 12px; }
}

/* Page: Search */
.noneresult-text { color: var(--clr-green-medium); font-size: var(--fs-title-md); text-align: center; }
/* Stories / Careers */
.list-results { transition: opacity .3s ease; }
.list-results.is-loading { opacity: .4; pointer-events: none; }
.list-results.is-restoring { opacity: 0; transition: none; }
.list-pagination {
  display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 2rem 4rem;
  margin-top: 7rem; font-family: var(--font-body); color: var(--clr-green-dark);
}
.list-pagination__nav { display: flex; align-items: center; gap: 1.2rem; }
.list-pagination__arrow {
  display: flex; justify-content: center; align-items: center;
  width: 4.5rem; height: 4.5rem; box-sizing: border-box;
  background-color: var(--clr-cream-base); border: .1rem solid var(--clr-gold); border-radius: var(--radius-sm);
  color: var(--clr-gold);
  transition: background-color var(--transition), color var(--transition), opacity var(--transition);
}
.list-pagination__arrow .icon { width: 100%; height: 100%; fill: currentColor; }
.list-pagination__arrow .icon circle { display: none; }
@media (hover: hover) { .list-pagination__arrow:hover { background-color: var(--clr-gold); color: var(--clr-cream-light); } }
.list-pagination__arrow.is-disabled { opacity: .35; pointer-events: none; }
.list-pagination__pages {
  display: flex; align-items: center; gap: .4rem; height: 4.5rem; padding: 0 .4rem; box-sizing: border-box;
  background-color: var(--clr-cream-base); border: .1rem solid var(--clr-gold); border-radius: var(--radius-sm);
}
.list-pagination__page {
  display: flex; justify-content: center; align-items: center;
  min-width: 3.5rem; height: 3.5rem; padding: 0 .8rem; box-sizing: border-box;
  border: .1rem solid transparent; border-radius: .6rem;
  color: inherit; font-size: var(--fs-body);
  transition: border-color var(--transition), background-color var(--transition);
}
@media (hover: hover) { .list-pagination__page:hover { border-color: var(--clr-gold); } }
.list-pagination__page.is-active { background-color: var(--clr-cream-light); border-color: var(--clr-gold); cursor: default; }
.list-pagination__gap { min-width: 2.4rem; text-align: center; color: var(--clr-gold); }
.list-pagination__jump { display: flex; align-items: center; gap: 1.2rem; font-size: var(--fs-body); }
.list-pagination__jump-label { font-size: var(--fs-caption); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.list-pagination__field { --w: 8.5rem; --px: 1.2rem; --fs: var(--fs-body); --color: var(--clr-green-dark); }
/* The number sits in the middle of the box */
.list-pagination__field .ui-input__field { text-align: center; -moz-appearance: textfield; appearance: textfield; }
.list-pagination__field .ui-input__field::-webkit-inner-spin-button,
.list-pagination__field .ui-input__field::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* Page: Search (content-search.php) */
.search-page {
  padding: var(--space-section) var(--gutter-page);
  background-color: var(--clr-cream-base);
  border-bottom: 1px solid var(--clr-gold);
}
.search-page__form { position: relative; }
.search-page__field { --w: 100%; --color: var(--clr-green-dark); }
.search-page__form .loading { left: auto; right: 1.5rem; transform: translateY(-50%); }   /* inside the box, at its right end */
.search-page__field .ui-input__field::-webkit-search-cancel-button { cursor: pointer; }
.search-page__stats { margin-top: 2.5rem; font-size: var(--fs-body); letter-spacing: var(--ls-body); color: var(--clr-green-medium); }
.search-results { list-style: none; margin: var(--space-block) 0 0; padding: 0; }
.search-result {
  display: flex; align-items: flex-start; gap: 4rem;
  padding: 3rem 0; border-top: var(--border-hairline);
}
.search-result:last-child { border-bottom: var(--border-hairline); }
.search-result__text { flex: 1; min-width: 0; }
.search-result__crumb {
  font-size: var(--fs-caption); letter-spacing: var(--ls-caps); text-transform: uppercase;
  color: var(--clr-green-medium); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.search-result__title { margin: 1rem 0 0; padding: 0; font-size: var(--fs-title-sm); font-weight: var(--fw-regular); }
.search-result__title a {
  color: var(--clr-gold); font-family: var(--font-display); line-height: var(--lh-tight); letter-spacing: var(--ls-display);
}
.search-result__snippet { margin-top: 1.2rem; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--clr-green-dark); }
.search-result__snippet b { font-weight: var(--fw-bold); }
.search-result__thumb { flex: 0 0 13rem; aspect-ratio: 1; overflow: hidden; }
.search-result__thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-results + .list-pagination { margin-top: var(--space-block); }
.search-empty { margin-top: var(--space-block); color: var(--clr-green-dark); font-size: var(--fs-body); line-height: var(--lh-body); }
.search-empty__title { font-family: var(--font-display); font-size: var(--fs-title-sm); color: var(--clr-gold); line-height: var(--lh-tight); }
.search-empty__label { margin-top: 2.5rem; }
.search-empty__tips { margin: 1rem 0 0; padding-left: 2.5rem; }
@media (hover: hover) { .search-result__title a:hover { text-decoration: underline; text-underline-offset: .2em; } }
.jiva-page-search .page-banner__fill {
  height: 100%;
  background: linear-gradient(0deg, color-mix(in srgb, var(--clr-green-medium) 60%, transparent) 5.48%, transparent 100.24%);
  mix-blend-mode: multiply;
}
@media only screen and (max-width: 1024px) {
  .search-page { padding: var(--space-section-mobile) var(--gutter-mobile); }
  .search-page__field .search-iconx { width: 15px; height: 15px; }   /* the header search icon's size */
  .search-page__stats { margin-top: 16px; font-size: 13px; }
  .search-result { gap: 16px; padding: 20px 0; }
  .search-result__crumb { font-size: 11px; }
  .search-result__title { margin-top: 8px; font-size: 20px; }
  .search-result__snippet { margin-top: 8px; font-size: var(--fs-text-m); }
  .search-result__thumb { flex-basis: 72px; margin-top: 22px; }
  .search-empty { font-size: var(--fs-text-m); }
  .search-empty__title { font-size: 22px; }
  .search-empty__label { margin-top: 18px; }
  .search-empty__tips { margin-top: 8px; padding-left: 20px; }
  .noneresult-text { font-size: 24px; }
  .list-pagination { flex-direction: column; gap: 16px; margin-top: 36px; }
  .list-pagination__nav { gap: 8px; }
  .list-pagination__arrow { width: 44px; height: 44px; border-width: 1px; }
  .list-pagination__pages { gap: 2px; height: 44px; padding: 0 3px; border-width: 1px; }
  .list-pagination__page { min-width: 36px; height: 36px; padding: 0 6px; border-width: 1px; border-radius: 6px; font-size: var(--fs-text-m); }
  .list-pagination__gap { min-width: 16px; font-size: var(--fs-text-m); }
  .list-pagination__jump { gap: 10px; font-size: var(--fs-text-m); }
  .list-pagination__jump-label { font-size: 12px; }
  .list-pagination__field { --w: 70px; --px: 10px; --fs: var(--control-fs); }   /* 16px like every field on phones (the desktop rem value shrank to a few px) */
}

/* Page: 404 */

/* Page: Press Kit */
#presskitpage { background: var(--clr-cream-base); }
/* The head (template-parts/common/content-header.php, press kit case) */
.presskit-head { padding: var(--space-section-lg) var(--gutter-page) var(--space-section); text-align: center; background: var(--clr-cream-base); }
.presskit-head__eyebrow, .media-eyebrow { color: var(--clr-gold); font-family: var(--font-body); font-size: var(--fs-body); letter-spacing: var(--ls-caps); text-transform: uppercase; margin-bottom: 4rem; }
.presskit-head__title { color: var(--clr-gold); font-family: var(--font-display); font-weight: var(--fw-regular); font-size: var(--fs-page-title); line-height: var(--lh-tight); text-transform: uppercase; padding-bottom: 6rem; }
.presskit-head__desc { color: var(--clr-green-medium); max-width: var(--measure-intro); margin: 0 auto; font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.media-feature-section, .kits-section, .form-section { padding: 0 var(--gutter-page); }
/* Press kit reset, not applied to the shared site footer */
html :where(.jiva-page-presskit) :where(:not(.site-footer *)), html :where(.jiva-page-presskit) :where(:not(.site-footer *))::before, html :where(.jiva-page-presskit) :where(:not(.site-footer *))::after { box-sizing: border-box; margin: 0; }
/* Section titles */
:is(.media-title, .kits-title, .form-title, .contact-title) {
  color: var(--clr-gold);
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--fs-section);
  line-height: var(--lh-tight);
  text-transform: uppercase;
}
/* Body text */
:is(.kit-item, .presskit-form__question, .contact-label, .contact-items) { font-family: var(--font-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.banner-section { overflow: hidden; margin-bottom: var(--space-section); }
.banner-wrapper { width: 100%; overflow: hidden; }
.banner-wrapper img {
  width: 100%;
  height: auto;
  aspect-ratio: 15/4;
  object-fit: cover;
  object-position: center;
}
.media-feature-section { margin-bottom: var(--space-section-lg); }
.media-header {
  text-align: left;
  margin-bottom: var(--space-block);
  padding-bottom: var(--space-block);
  border-bottom: 1px solid var(--clr-gold);
}

.media-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 36rem;
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  color: var(--clr-cream-base);
}
.media-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.45) 50%, rgba(0, 0, 0, 0.15) 100%);
  transition: background var(--t-hover);
}
@media (hover: hover) { .media-card:hover .media-card-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, .25) 50%, rgba(0, 0, 0, .1) 100%);
} }
.media-card-body {
  min-height: 36rem;
  position: relative;
  z-index: 1;
  padding: 4rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
.media-card-name {
  color: var(--clr-cream-base);
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--fs-title-sm);
  line-height: var(--lh-tight);
  text-transform: uppercase;
  text-align: center;
}
.media-swiper { overflow: hidden; padding-bottom: 5rem; }
.media-swiper .swiper-slide { width: 100%; }
.media-swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  bottom: 0;
}
/* Each dot sits in a 24px tap area */
.media-swiper-pagination.swiper-pagination-bullets .swiper-pagination-bullet {
  width: 24px;
  height: 24px;
  margin: 0;
  display: grid;
  place-items: center;
  background: none;
  opacity: 1;
  cursor: pointer;
}
.media-swiper-pagination .swiper-pagination-bullet::before {
  content: "";
  width: 1rem;
  height: 1rem;
  border-radius: var(--radius-round);
  background: var(--clr-gold-line);
  transition: background var(--transition), transform var(--transition);
}
.media-swiper-pagination .swiper-pagination-bullet-active::before {
  background: var(--clr-gold);
  transform: scale(1.35);
}
/* One screenful of cards (1 to 3 on desktop, 1 on phones) */
.media-swiper-pagination.swiper-pagination-lock { display: none; }
.kits-section { margin-bottom: var(--space-section-lg); }
/* The bordered titles keep no margin */
.kits-title { padding-bottom: var(--space-block); }
.kits-list { display: flex; flex-direction: column; margin-top: 2px; }
.kit-item:first-child { border-top: 1px solid var(--clr-gold); }
.kit-item {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2.2rem 0;
  color: var(--clr-green-medium);
  font-size: var(--fs-body);
  transition: color var(--t-hover), padding-left var(--t-hover);
  border-bottom: 1px solid var(--clr-gold);
  margin-bottom: 2px;
}
@media (hover: hover) { .kit-item:hover { color: var(--clr-gold); padding-left: 1rem; } }
.form-section { margin-bottom: var(--space-section-lg); }
.form-title {
  border-bottom: 1px solid var(--clr-gold);
  padding-bottom: var(--space-block);
}
/* Press kit form */
/* 48rem from the screen edge (--content-contact, like the contact form) */
.presskit-form { position: relative; margin-top: var(--space-block); padding: 0 calc(var(--content-contact) - var(--gutter-page)); font-family: var(--font-body); }
.presskit-form__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.2rem; margin-top: 2.2rem; }
.presskit-form__row:first-of-type { margin-top: 0; }
.presskit-form__row > *, .presskit-form__cell { flex: 1 1 0; min-width: 0; }
.presskit-form__cell { position: relative; }
.presskit-form__cell .error-text { position: absolute; left: 0; top: -2.5rem; }
.presskit-form__phone { display: flex; gap: 1.2rem; }
.presskit-form__phone .ui-combo { flex: 0 0 30%; min-width: 0; }
.presskit-form__phone .ui-input { flex: 1 1 auto; min-width: 0; }
.presskit-form__row--choice { flex-direction: column; color: var(--clr-green-dark); }
.presskit-form__row--choice > * { flex: none; }
.presskit-form__question { font-size: var(--fs-body); }
.honeypot {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 0;
  width: 0;
  z-index: -1;
  pointer-events: none;
}
.contact-section { padding: 0 var(--gutter-page) var(--space-section-lg); }
.contact-title {
  border-bottom: solid 1px var(--clr-gold);
  padding-bottom: var(--space-block);
}
.contact-grid { display: flex; flex-direction: column; align-items: flex-start; margin-top: 3rem; }
.contact-grid .contact-row { width: 100%; }
.contact-grid .contact-row:first-child { padding-bottom: 3rem; border-bottom: 1px solid var(--clr-gold); }
.contact-grid .contact-row:last-child { padding-top: 3rem; }
.contact-label { font-size: var(--fs-body); font-weight: var(--fw-bold); color: var(--clr-green-medium); margin-bottom: 2.8rem; }
.contact-items { display: flex; flex-direction: column; gap: 2.3rem; color: var(--clr-green-medium); font-size: var(--fs-body); }
/* Shared fade-in (the newsletter thank-you line) */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}
@media only screen and (max-width: 1024px) {
  .media-feature-section, .kits-section, .form-section { padding: 0 var(--gutter-mobile); }
  .banner-section, .media-feature-section, .kits-section, .form-section { margin-bottom: var(--space-section-mobile-lg); }
  .presskit-head { padding: var(--space-section-mobile-lg) var(--gutter-mobile) var(--space-section-mobile); }
  .presskit-head__eyebrow, .media-eyebrow { margin-bottom: 25px; font-size: var(--fs-text-m); }   /* like .section-head__eyebrow */
  .presskit-head__title { font-size: 40px; padding-bottom: 35px; }
  :is(.media-title, .kits-title, .form-title, .contact-title) { font-size: 30px; }   /* like .section-head__title */
  .presskit-head__desc,
  .contact-label,
  .contact-items,
  .presskit-form__question {
    font-size: var(--fs-text-m);
  }
  .presskit-head__desc { max-width: none; }
  .banner-wrapper img { aspect-ratio: 16/10; }
  .kit-item { font-size: var(--fs-text-m); padding: 20px 0; }
  .contact-section { padding: 0 var(--gutter-mobile) var(--space-section-mobile-lg); }
  .contact-grid .contact-row:first-child { padding-bottom: 30px; }
  .contact-grid .contact-row:last-child { padding-top: 30px; }
  .media-header, .kits-title, .form-title, .contact-title { padding-bottom: var(--space-block); }
  .media-header { margin-bottom: var(--space-block); }
  .presskit-form, .contact-grid { margin-top: var(--space-block); }   /* under the form and contact titles' gold lines */
  .media-card, .media-card-body { min-height: 360px; }
  .media-card-name { font-size: 20px; }
  .media-card-body { padding: 20px; }
  .media-swiper { padding-bottom: 40px; }
  .media-swiper-pagination { gap: 0; }
  .media-swiper-pagination .swiper-pagination-bullet::before { width: 8px; height: 8px; }
  .presskit-form { padding: 0; }
  .presskit-form__row { flex-direction: column; gap: 12px; margin-top: 12px; }
  .presskit-form__row > *, .presskit-form__cell { flex: none; width: 100%; }
  .presskit-form__cell .error-text { top: -20px; }
  /* Code + phone side by side like the contact form */
  .presskit-form__phone { gap: 10px; }
  .presskit-form__phone .ui-combo { flex: 0 0 130px; }
  .contact-label { margin-bottom: 20px; }
  .contact-items { gap: 20px; }
}

/* Page: Pre-tour (Single privilege) */
:where(.container-pre, .more-packages) *,
:where(.container-pre, .more-packages) *::before,
:where(.container-pre, .more-packages) *::after {
  margin: 0;
  padding: 0;
}
html:has(.container-pre) { scroll-behavior: smooth; }
:where(.container-pre, .more-packages) {
  color: var(--clr-green-medium);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}
:where(.container-pre, .more-packages) img { max-width: 100%; display: block; }
.container-pre { background: var(--clr-cream-base); }
.container-pre .page-layout { padding: var(--space-section) var(--gutter-wide); }   /* section rhythm of the other pages */
/* Headings as typed (no caps) */
.section-title { color: var(--clr-gold); font-family: var(--font-display); font-weight: var(--fw-regular); font-size: var(--fs-section); line-height: var(--lh-tight); }
/* The headings of the content column, editor ones included */
.content-col .section-title,
.more-packages .section-title,
.single-privileges .jiva-prose :is(h1, h2, h3, h4, h5, h6) { color: var(--clr-green-dark); }
.content-col .tour-desc .section-title { color: var(--clr-gold); }   /* the package name at the top stays gold */
/* The price: a line of the package's details, set like a small display-font title */
.tour-desc .tour-price {
  color: var(--clr-green-dark);
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--fs-title-sm);
  line-height: var(--lh-tight);
  letter-spacing: normal;
  margin: 0;
  padding: 1rem 0 .8rem;
}
.page-layout { display: flex; justify-content: center; align-items: flex-start; gap: 5rem; }
.page-layout > .content-col { width: 65%; }
.page-layout > .sidebar { width: 35%; }   /* the booking card */
.content-col { min-width: 0; }
.tour-desc { margin-bottom: var(--space-block); }
.section-block.tour-desc .section-title { padding-bottom: .8rem; }   /* the note sits just under the package name */
.section-block { margin-bottom: var(--space-block); }
.section-block .section-title { padding-bottom: 2rem; }
:is(.section-block p, .section-block li, .day-card__body, .lodge-link, .lodge-popup__content) { color: var(--clr-green-dark); font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.tour-desc p { margin: 0 0 1.4rem; }   /* no top margin: the title's padding alone sets the gap above */
.day-card {
  border: 1px solid var(--clr-gold-line);
  overflow: hidden;
  margin-bottom: 1.6rem;
  transition: border-color var(--transition);
}
@media (hover: hover) { .day-card:hover { border-color: var(--clr-gold); } }
.day-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  padding: 2rem 2.4rem;
  cursor: pointer;
  background: var(--clr-cream-light);
  user-select: none;
  transition: background var(--transition);
}
@media (hover: hover) { .day-card__header:hover { background: var(--clr-cream-light); } }
.day-card__title { flex: 1; font-size: var(--fs-body-lg); color: var(--clr-green-medium); }
/* "Day 1": like the eyebrows of the other pages */
.day-card__title--day { color: var(--clr-gold); font-size: var(--fs-body); letter-spacing: var(--ls-caps); text-transform: uppercase; margin-bottom: .4rem; }
.day-card__chevron { font-size: 1.3rem; color: var(--clr-gold); transition: transform var(--transition); }
.day-card.is-open .day-card__chevron { transform: rotate(180deg); }
.day-card__body {
  display: none;
  padding: 2rem 2.4rem;
  border-top: 1px solid var(--clr-gold-line);
  animation: slideDown 0.3s ease;
  background: var(--clr-cream-light);
}
.day-card__body p {
  margin-block-end: 2rem;
}
.day-card.is-open .day-card__body { display: block; }
.inc-grid {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 2.4rem;
  margin-top: 0;   /* the heading's padding spaces it */
}
/* The list sits on the page background right under the Inclusions heading */
.inc-box { padding: 0; }
.inc-box li {
  --dot: .6rem;
  padding: .6rem 0;   /* no line between the items */
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
/* The dot sits on the middle of the first line whatever the text size */
.inc-box li::before {
  content: '';
  width: var(--dot);
  height: var(--dot);
  border-radius: var(--radius-round);
  margin-top: calc((1em * var(--lh-body) - var(--dot)) / 2);
  flex-shrink: 0;
}
.inc-box.included li::before { background: var(--clr-green-dark); }
.lodge-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 2rem;
  overflow: hidden;
  margin-top: 0;   /* the heading's padding spaces it */
}
.lodge-link {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.8rem 0 1.8rem 1rem;
  border-bottom: 1px solid var(--clr-gold-line);
  transition: background var(--transition), color var(--transition);
  cursor: pointer;
}
@media (hover: hover) { .lodge-link:hover { background: var(--clr-cream-light); color: var(--clr-gold); } }
.lodge-link .ll-icon {
  width: 3.6rem;
  height: 3.6rem;
  background: var(--clr-cream-base);
  border-radius: var(--radius-round);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-body);
  flex-shrink: 0;
}
.lodge-link .ll-icon img { width: 60%; height: 60%; object-fit: contain; }
.sidebar { position: sticky; top: 2.4rem; }
/* Same frame as the UI kit's boxes */
.booking-card {
  background: var(--clr-cream-light);
  border: .1rem solid var(--ui-bc);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 1.2rem 4rem var(--ui-shadow);
}
.booking-card__body { padding: 2.4rem; }
.booking-divider { height: 1px; background: var(--clr-gold-line); margin: 2rem 0; }
/* The stay range under the calendar (components-custom.js calRange) */
.cal-summary { margin: 1.6rem 0 0; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--clr-green-dark); }
.cal-summary__range { display: block; font-weight: var(--fw-semibold); }
.cal-summary__hint { display: block; margin-top: .4rem; font-size: var(--fs-caption); color: var(--clr-green-medium); letter-spacing: var(--ls-body); }
.field-group { margin-bottom: 1.6rem; }
.field-group label sup { color: var(--clr-gold); }
.field-group label {
  display: block;
  font-size: var(--fs-body);
  color: var(--clr-green-medium);
  margin-bottom: 0.6rem;
}
/* Guest counters side by side, wrapping onto a new line when the card is too narrow */
.booking-guests { display: flex; flex-wrap: wrap; gap: 1.6rem 1.2rem; }
.booking-guests .field-group { flex: 1 1 14rem; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; margin-bottom: 0; }
.container-pre .radio-group { margin-bottom: 1.6rem; }
.container-pre .radio-group legend {
  font-size: var(--fs-body);
  color: var(--clr-green-medium);
  margin-bottom: 0.8rem;
  display: block;
}
/* Booking form: fields use the shared form sizes (UI overrides at the top) */
.booking-form__row { margin-top: 2.2rem; }
.booking-form__row--pair, .booking-form__row--phone { display: flex; gap: 1.2rem; }
.booking-form__row--pair > * { flex: 1 1 0; min-width: 0; }
.booking-form__row--phone .ui-combo { flex: 0 0 35%; min-width: 0; }
.booking-form__row--phone .ui-input { flex: 1 1 auto; min-width: 0; }
.booking-form__row--email { position: relative; }
.booking-form__row--email .error-text { position: absolute; left: 0; top: -2.5rem; }
.policy { font-size: var(--fs-caption); color: var(--clr-green-dark); margin: 0.4rem 0 1.2rem; }
.policy summary { cursor: pointer; font-weight: var(--fw-semibold); color: var(--clr-gold); }
.policy p { margin-top: 0.8rem; line-height: var(--lh-body); }
/* The box privilege.js slides open and shut */
.policy__body { display: flow-root; overflow: hidden; padding-bottom: .4rem; }
.more-packages { background: var(--clr-cream-light); padding: var(--space-section) var(--gutter-wide); }
@media only screen and (max-width: 1024px) {
  .more-packages { padding: var(--space-section-mobile) var(--gutter-mobile); }
  .more-packages .pkg-slider { margin-top: 30px; }   /* like the single story's Related Stories */
}
.more-packages .container-pre { background: var(--clr-cream-light); }
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-0.8rem); }
  to { opacity: 1; transform: translateY(0); }
}
/* Retreat information popup (ui-popup, filled by privilege.js) */
.lodge-popup.ui-popup { --w: 70rem; --pad: 5rem 6rem; --bg: var(--clr-cream-base); }
.lodge-popup__title {
  color: var(--clr-gold);
  font-family: var(--font-display);
  font-size: var(--fs-title-md);
  font-weight: var(--fw-regular);
  line-height: var(--lh-tight);
  text-transform: uppercase;
  margin-bottom: 2.4rem;
}

.lodge-popup__content p + p { margin-top: 1.2rem; }
@media only screen and (max-width: 1024px) {
  .day-card__body p, .privilege-card__body p {
    margin-block-end: 15px;
  }
  .lodge-popup.ui-popup { --w: 100%; --pad: 16px; }
  .booking-form__row--phone .ui-combo { flex-basis: 40%; }
  .lodge-popup__title { font-size: 24px; margin: 10px 30px 15px 0; }
  .lodge-popup__content { font-size: var(--fs-text-m); }
  .page-layout { flex-direction: column-reverse; gap: 20px }
  .page-layout > .content-col, .page-layout > .sidebar { width: 100%; }
  .sidebar { position: static; order: -1; }
  .container-pre .page-layout { padding: var(--space-section-mobile) var(--gutter-mobile); }
  .lodge-links { grid-template-columns: 1fr; }
  .section-title { font-size: 30px; }
  .section-block.tour-desc .section-title { padding-bottom: 6px; }
  .tour-desc .tour-price { font-size: 20px; padding: 20px 0 6px; }
  .tour-desc p { margin-bottom: 0; }   /* the price title's 20px alone spaces the two groups */   /* the price group a little apart from the name group */
  .more-packages .section-title { font-size: 30px; }   /* like the headings above it and Related Stories */
  .section-block { margin-bottom: var(--space-block); }
  .section-block .section-title { padding-bottom: 20px; }   /* Itinerary, Inclusions… */
  :is(.section-block p, .section-block li, .day-card__body, .lodge-link) { font-size: var(--fs-text-m); }
  .day-card__title.day-card__title--day { font-size: 12px; }
  .day-card__header, .day-card__body {
    padding: 10px 20px;
  }
  .day-card__title { font-size: 16px; }
  .day-card__chevron { font-size: 13px; }
  .inc-box li { gap: 10px; padding: 6px 0; }
  .inc-box li { --dot: 6px; }
  .lodge-link { padding: 10px 5px; gap: 12px; }
  /* The rest of the desktop rem spacing in px (it shrank to 1-5px on phones) */
  .day-card { margin-bottom: 12px; }
  .day-card__header { gap: 12px; }
  .day-card__title.day-card__title--day { margin-bottom: 4px; }
  .inc-grid { gap: 16px; }
  .booking-divider { margin: 20px 0; }
  .cal-summary { margin-top: 14px; font-size: var(--fs-text-m); }
  .cal-summary__hint { margin-top: 4px; font-size: 12px; }
  .field-group label { margin-bottom: 6px; }
  .booking-form__row--pair, .booking-form__row--phone { gap: 10px; }   /* like the other forms on phones */
  .policy { margin: 4px 0 12px; }
  .policy p { margin-top: 8px; }
  .lodge-link .ll-icon { font-size: var(--fs-text-m); width: 24px; height: 24px; }
  .field-group label, .container-pre .radio-group legend { font-size: var(--fs-text-m); }
  .policy { font-size: 12px; }
  .booking-form__row { margin-top: 12px; }
  .booking-form__row--email .error-text { top: -20px; }
  .booking-guests { gap: 12px 10px; }
  /* Phones: adults on their own row, the two children counters side by side below */
  .booking-guests .field-group { flex: 1 1 0; }
  .booking-guests .field-group:first-child { flex-basis: 100%; }
  .search-box .ui-input {
    --w: 100%;
    border: none;
    --fs: var(--control-fs);   /* 16px like every field on phones: below 16px iOS zooms the page in on focus */
    padding: 0;
  }
  .search-box .search-iconx {
    width: 15px; height: 15px;
  }
  /* Suggestions: the header's full width under it */
  .site-header__search { position: static; }
  .search-suggest { top: 100%; left: var(--gutter-mobile); right: var(--gutter-mobile); width: auto; max-height: calc(100dvh - 90px); border-radius: var(--radius-sm); }
  .search-suggest__item { gap: 12px; padding: 10px 12px; }
  .search-suggest__thumb { flex-basis: 48px; height: 48px; }
  .search-suggest__text { gap: 3px; }
  .search-suggest__title { font-size: 16px; }
  .search-suggest__crumb { font-size: 10px; }
  .search-suggest__all, .search-suggest__empty { padding: 12px; font-size: var(--fs-text-m); }
  .page-curtain {
    height: 100dvh;
  }
  /* Same as desktop: the page starts below the fixed bar (100px) instead of under it */
  .site-header-spacer { height: 76px; }
  /* Phones: no frame, the form sits on the page in line with the content */
  .booking-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
  /* On the cream page the calendar's cream days vanished */
  .booking-card .cal { --day-bg: var(--clr-cream-light); --day-bg-disabled: color-mix(in srgb, var(--clr-gold) 12%, var(--clr-cream-base)); --nav-bg: var(--clr-cream-light); }
  .booking-card .cal .flatpickr-day:not(.flatpickr-disabled, .selected, .inRange, .prevMonthDay, .nextMonthDay) { box-shadow: inset 0 0 0 1px var(--clr-gold-line); }
  .booking-card__body { padding: 0; }
}

/* Helpers */
@media only screen and (max-width: 1024px) {
  .page-curtain__logo {
    width: 200px;
    height: 200px;
  }
}

.pkg-slider { position: relative; margin-top: 2.4rem; }
.pkg-swiper { overflow: hidden; }

/* Card sliders use the Swiper material effect (as on Accommodation) */
.pkg-slide { height: 325px; }
@media only screen and (min-width: 1025px) {
  .pkg-slide { height: auto; aspect-ratio: 8 / 5; }
}
.pkg-card {
  background-size: cover;
  background-position: center;
  color: var(--clr-cream-light);
  justify-content: flex-start;
  align-items: flex-end;
}
.pkg-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,0) 55%);
}
.pkg-card__price {
  position: absolute; top: 2rem; left: 3.2rem;
  background: color-mix(in srgb, var(--clr-green-dark) 85%, transparent);
  padding: 1.2rem 3.2rem; font-size: var(--fs-body); letter-spacing: var(--ls-body);
}
.pkg-card__info { position: relative; padding: 3.2rem; max-width: 100%; }
.pkg-card__title { color: var(--clr-cream-light); font-family: var(--font-display); font-weight: var(--fw-regular); font-size: var(--fs-title-sm); line-height: var(--lh-tight); text-transform: uppercase; padding: 1.2rem 0 2.4rem; }
.pkg-card__desc { font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); margin: 0 0 2.4rem; }
@media only screen and (max-width: 1024px) {
  .pkg-card__price { top: 14px; left: 20px; padding: 8px 20px; font-size: var(--fs-text-m); }
  .pkg-card__info { padding: 20px; }
  .pkg-card__title { font-size: 20px; padding: 8px 0 15px; }
  .pkg-card__desc { font-size: var(--fs-text-m); margin-bottom: 16px; }
}
/* Same button as the other sliders */
.pkg-card .ui-btn, .media-card .ui-btn { --px: 3.9rem; }
@media only screen and (max-width: 1024px) {
  .pkg-card .ui-btn, .media-card .ui-btn { --px: 20px; }
  .pkg-slide { height: 300px; }   /* phones and tablets (was a lone 768px block) */
}

/* Small phones */
@media only screen and (max-width: 360px) {
  .acc-info, .acc-info_s1 { margin: -70px 10px 20px; padding: 20px; }
  .ll-venue__content { padding: 0 15px; }
  .ll-venue__links { padding: 0 10px; }
  .story-list .story-item--featured .story-item__title { width: 95%; }
  .contact-info__icon { margin-right: 10px; }
}
