/* ==========================================================================
   Discovery by Wyndham: premium UI layer (October 2026, v2)

   Modelled on the Lifestyle Travel design system (serif display type,
   full-bleed photography with soft scrims, rounded image tiles and cards,
   pill buttons, tinted bands), in the Discovery palette:

     Emerald     #094541  primary, dark surfaces, text on light
     Mint        #65D2C3  accent buttons, highlights on Emerald and photos
     Aquamarine  #00B2A9  decorative accents (a deeper shade, #007A73, is
                          used for small text on light backgrounds: 5.2:1)
     White       #FFFFFF

   Loaded after the legacy theme styles. Components use the dp- prefix so
   they never collide with Bootstrap. Legacy markup on inner pages is
   restyled under #page where it needs to win over nested legacy selectors.
   ========================================================================== */

@font-face {
  font-family: "Founders Grotesk";
  src: url("../webfonts/FoundersGrotesk-Regular.woff") format("woff"),
       url("../webfonts/FoundersGrotesk-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Founders Grotesk";
  src: url("../webfonts/FoundersGrotesk-Bold.woff") format("woff"),
       url("../webfonts/FoundersGrotesk-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Fraunces (SIL Open Font License), self-hosted latin subset, variable weight. */
@font-face {
  font-family: "Fraunces";
  src: url("../webfonts/fraunces-normal.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Fraunces";
  src: url("../webfonts/fraunces-italic.woff2") format("woff2");
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
}

/* --------------------------------------------------------------------------
   Tokens
   -------------------------------------------------------------------------- */

:root {
  --dp-emerald: #094541;
  --dp-mint: #65d2c3;
  --dp-aqua: #00b2a9;
  --dp-white: #ffffff;

  --dp-bg: #f7fbfa;
  --dp-surface: #ffffff;
  --dp-tint: #e9f5f2;
  --dp-ink: #0f2a28;
  --dp-ink-2: #3d4f4d;
  --dp-ink-3: #56686a;
  --dp-line: #dbe8e5;
  --dp-line-strong: #bdd3ce;

  --dp-primary: var(--dp-emerald);
  --dp-primary-hover: #06332f;
  --dp-primary-soft: #e1f2ee;
  --dp-accent: var(--dp-mint);
  --dp-accent-hover: #4cc3b3;
  --dp-accent-ink: var(--dp-emerald);

  --dp-dark: var(--dp-emerald);
  --dp-dark-2: #06302d;
  --dp-dark-ink: #f2faf8;
  --dp-dark-muted: #a8cfc8;
  --dp-line-light: rgba(255, 255, 255, 0.16);

  --dp-eyebrow: #007a73;
  --dp-em: #007a73;

  --dp-font: "Founders Grotesk", "Helvetica Neue", Arial, sans-serif;
  --dp-display: "Fraunces", Georgia, "Times New Roman", serif;

  --dp-radius: 16px;
  --dp-radius-sm: 10px;
  --dp-radius-btn: 999px;

  --dp-container: 1240px;
  --dp-gutter: clamp(16px, 4vw, 40px);
  --dp-header-h: 76px;
  --dp-admin-h: 0px;
  --dp-section: clamp(64px, 8vw, 112px);

  --dp-shadow-1: 0 1px 2px rgba(6, 40, 37, 0.05), 0 6px 20px rgba(6, 40, 37, 0.06);
  --dp-shadow-2: 0 18px 48px rgba(6, 40, 37, 0.16);
  --dp-scrim: 4, 26, 24;
  --dp-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.admin-bar { --dp-admin-h: 32px; }

@media (max-width: 782px) {
  body.admin-bar { --dp-admin-h: 46px; }
}

@media (max-width: 640px) {
  :root { --dp-header-h: 64px; }
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

html { scroll-padding-top: calc(var(--dp-header-h) + var(--dp-admin-h) + 24px); }

body.dp-ui {
  padding: 0 !important;
  background: var(--dp-bg);
  color: var(--dp-ink);
  font-family: var(--dp-font);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.dp-ui #page { background: var(--dp-bg); }

.dp-ui ::selection { background: var(--dp-mint); color: var(--dp-emerald); }

.dp-ui :focus-visible {
  outline: 2px solid var(--dp-primary);
  outline-offset: 3px;
  border-radius: 4px;
}

.dp-ui .dp-dark :focus-visible,
.dp-ui .dp-footer :focus-visible,
.dp-ui .dp-hero :focus-visible,
.dp-ui .dp-pagehero :focus-visible,
.dp-ui .dp-artbanner :focus-visible,
.dp-ui .dp-topbar :focus-visible { outline-color: var(--dp-mint); }

.dp-ui img { max-width: 100%; }

.dp-ui .skip-link:focus {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 1000;
  width: auto;
  height: auto;
  padding: 10px 16px;
  clip: auto;
  border-radius: 8px;
  background: var(--dp-primary);
  color: #fff;
}

.dp-icon {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  flex: none;
  vertical-align: -0.2em;
}

.dp-container {
  width: 100%;
  max-width: calc(var(--dp-container) + var(--dp-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--dp-gutter);
}

.dp-container--narrow { max-width: calc(880px + var(--dp-gutter) * 2); }

.dp-center { text-align: center; }

/* Lists and paragraphs inside components start from zero (legacy and
   Bootstrap both add margins and padding to every ul/ol/p). :where() keeps
   these at element specificity so any component rule can set spacing. */
:where(.dp-ui [class^="dp-"]) ul,
:where(.dp-ui [class^="dp-"]) ol,
:where(.dp-ui) ul[class^="dp-"],
:where(.dp-ui) ol[class^="dp-"],
:where(.dp-ui) dl[class^="dp-"] {
  margin: 0;
  padding: 0;
  list-style: none;
}

:where(.dp-ui [class^="dp-"]) p,
:where(.dp-ui [class^="dp-"]) dd,
:where(.dp-ui [class^="dp-"]) figure { margin: 0; }

:where(.dp-ui [class^="dp-"]) a,
:where(.dp-ui [class^="dp-"]) a:hover,
:where(.dp-ui) a[class^="dp-"],
:where(.dp-ui) a[class^="dp-"]:hover { text-decoration: none; }

/* --------------------------------------------------------------------------
   Typography
   -------------------------------------------------------------------------- */

.dp-h1,
.dp-h2,
.dp-h3,
.dp-hero__title,
.dp-pagehero__title,
.dp-card__title,
.dp-tile__title,
.dp-feature__title,
.dp-artbanner__title,
.dp-prose h2,
.dp-prose h3 {
  margin: 0;
  font-family: var(--dp-display);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
  text-transform: none;
  color: inherit;
  text-wrap: balance;
}

.dp-ui .dp-h1 { font-size: clamp(2.3rem, 4.8vw, 3.8rem); color: var(--dp-ink); }
.dp-ui .dp-h2 { font-size: clamp(1.9rem, 3.4vw, 2.85rem); color: var(--dp-ink); }
.dp-ui .dp-h3 { display: block; font-size: 1.4rem; line-height: 1.2; color: var(--dp-ink); }

.dp-h1 em,
.dp-h2 em,
.dp-h3 em,
.dp-hero__title em,
.dp-pagehero__title em,
.dp-artbanner__title em,
.dp-footer__tagline em {
  font-style: italic;
  color: var(--dp-em);
}

.dp-lead,
.dp-lead p {
  font-size: clamp(1.1rem, 1.5vw, 1.27rem);
  line-height: 1.55;
  color: var(--dp-ink-2);
}

.dp-ui .dp-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.76rem;
  line-height: 1.2;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dp-eyebrow);
}

.dp-eyebrow .dp-icon { width: 15px; height: 15px; }
.dp-center .dp-eyebrow { justify-content: center; }
.dp-ui .dp-eyebrow--light { color: #fff; opacity: 0.95; }

/* Long-form text */
.dp-prose { font-size: 1.07rem; line-height: 1.75; color: var(--dp-ink-2); }
.dp-prose > * + * { margin-top: 1.1em; }
.dp-prose p { margin-bottom: 0; color: var(--dp-ink-2); }
.dp-prose h2 { margin-top: 1.7em; font-size: 1.85rem; color: var(--dp-ink); }
.dp-prose > h2:first-child { margin-top: 0; }
.dp-prose h3 { margin-top: 1.6em; font-size: 1.4rem; color: var(--dp-ink); }
.dp-prose h4 { margin: 1.5em 0 0; font-family: var(--dp-font); font-weight: 700; font-size: 1.05rem; color: var(--dp-ink); }
.dp-prose strong, .dp-prose b { color: var(--dp-ink); }
.dp-ui .dp-prose a:not(.dp-btn):not(.dp-link) {
  color: var(--dp-primary);
  text-decoration: underline;
  text-decoration-color: var(--dp-mint);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.dp-prose img { height: auto; border-radius: var(--dp-radius); }
.dp-prose figcaption, .dp-prose .wp-caption-text { margin-top: 10px; font-size: 0.86rem; color: var(--dp-ink-3); }
.dp-ui .dp-prose ul, .dp-ui .dp-prose ol { margin: 1.1em 0 0; padding-left: 1.3em; }
.dp-ui .dp-prose ul { list-style: disc; }
.dp-ui .dp-prose ol { list-style: decimal; }
.dp-prose li + li { margin-top: 0.4em; }
.dp-prose li::marker { color: var(--dp-aqua); }
.dp-prose blockquote { margin: 2em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--dp-mint); font-family: var(--dp-display); font-size: 1.45rem; line-height: 1.35; color: var(--dp-ink); }
.dp-prose iframe { max-width: 100%; border-radius: var(--dp-radius); }

/* --------------------------------------------------------------------------
   Buttons and links
   -------------------------------------------------------------------------- */

.dp-ui .dp-btn,
#page .purple-btn,
#page a.purple-btn,
#page input.purple-btn,
#page button.purple-btn,
#page .resort-loadmore {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  width: auto;
  max-width: none;
  height: auto;
  min-height: 50px;
  margin: 0;
  padding: 0 26px;
  border: 1.5px solid var(--dp-primary);
  border-radius: var(--dp-radius-btn);
  background: var(--dp-primary);
  color: #fff;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.97rem;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.18s, border-color 0.18s, color 0.18s, transform 0.18s var(--dp-ease);
}

.dp-ui .dp-btn:hover,
#page .purple-btn:hover,
#page .resort-loadmore:hover {
  background: var(--dp-primary-hover);
  border-color: var(--dp-primary-hover);
  color: #fff;
  text-decoration: none;
}

.dp-ui .dp-btn:active { transform: translateY(1px); }
.dp-btn .dp-icon { width: 1.1em; height: 1.1em; transition: transform 0.2s var(--dp-ease); }
.dp-btn:hover .dp-icon:last-child:not(:first-child) { transform: translateX(3px); }

.dp-ui .dp-btn--accent,
#page .dp-dark .purple-btn,
#page .become-block .purple-btn,
#page .make-outer-block .purple-btn,
#page .dp-pagehero .purple-btn {
  background: var(--dp-accent);
  border-color: var(--dp-accent);
  color: var(--dp-accent-ink);
}

.dp-ui .dp-btn--accent:hover,
#page .dp-dark .purple-btn:hover,
#page .become-block .purple-btn:hover,
#page .make-outer-block .purple-btn:hover {
  background: var(--dp-accent-hover);
  border-color: var(--dp-accent-hover);
  color: var(--dp-accent-ink);
}

.dp-ui .dp-btn--ghost,
#page .resort-loadmore {
  background: transparent;
  border-color: var(--dp-line-strong);
  color: var(--dp-primary);
}

.dp-ui .dp-btn--ghost:hover,
#page .resort-loadmore:hover {
  background: var(--dp-primary-soft);
  border-color: var(--dp-primary);
  color: var(--dp-primary);
}

.dp-ui .dp-btn--light { background: #fff; border-color: #fff; color: var(--dp-ink); }
.dp-ui .dp-btn--light:hover { background: rgba(255, 255, 255, 0.86); border-color: transparent; color: var(--dp-ink); }

.dp-ui .dp-btn--sm { min-height: 42px; padding: 0 18px; font-size: 0.92rem; }
.dp-ui .dp-btn--lg { min-height: 56px; padding: 0 30px; font-size: 1.02rem; }
.dp-ui .dp-btn--block { width: 100%; }

.dp-ui .dp-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 1rem;
  color: var(--dp-primary);
  text-decoration: none;
  white-space: nowrap;
}

.dp-ui .dp-link:hover { color: var(--dp-primary); text-decoration: underline; text-decoration-color: var(--dp-mint); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.dp-link .dp-icon { width: 1em; height: 1em; transition: transform 0.2s var(--dp-ease); }
.dp-link:hover .dp-icon,
a:hover > .dp-link .dp-icon,
.dp-card:hover .dp-link .dp-icon { transform: translateX(3px); }
.dp-ui .dp-link--light { color: #fff; }
.dp-ui .dp-link--light:hover { color: #fff; }

/* --------------------------------------------------------------------------
   Badges, tags, ticks, panels
   -------------------------------------------------------------------------- */

.dp-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 11px;
  border-radius: var(--dp-radius-btn);
  background: rgba(255, 255, 255, 0.94);
  color: var(--dp-ink);
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.dp-badge--accent { background: var(--dp-accent); color: var(--dp-accent-ink); }

.dp-ui .dp-tags { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.dp-tags li { display: inline-flex; align-items: center; gap: 7px; font-size: 0.92rem; color: var(--dp-ink-2); }
.dp-tags .dp-icon { width: 17px; height: 17px; color: var(--dp-eyebrow); }

.dp-ui .dp-ticks { display: grid; gap: 10px; margin-top: 14px; }
.dp-ticks li { display: flex; align-items: flex-start; gap: 10px; color: var(--dp-ink-2); line-height: 1.45; }
.dp-ticks .dp-icon { width: 20px; height: 20px; margin-top: 1px; padding: 4px; border-radius: 50%; background: var(--dp-primary-soft); color: var(--dp-primary); stroke-width: 3; }
.dp-ui .dp-ticks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.dp-ui .dp-ticks--inline { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 0.95rem; }

.dp-panel {
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
}

/* --------------------------------------------------------------------------
   Top bar, header, navigation, drawer
   -------------------------------------------------------------------------- */

.dp-topbar { background: var(--dp-dark); color: var(--dp-dark-ink); font-size: 0.84rem; }
.dp-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.dp-ui .dp-topbar__note { color: var(--dp-dark-muted); }
.dp-ui .dp-topbar__links { display: flex; align-items: center; gap: 22px; }
.dp-topbar a { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: var(--dp-dark-ink); }
.dp-topbar a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.dp-topbar .dp-icon { width: 14px; height: 14px; color: var(--dp-mint); }
.dp-topbar__label { font-weight: 400; color: var(--dp-dark-muted); }

.dp-header {
  position: sticky;
  top: var(--dp-admin-h);
  z-index: 60;
  background: var(--dp-surface);
  border-bottom: 1px solid var(--dp-line);
  transition: box-shadow 0.2s;
}

.dp-header.is-stuck { box-shadow: 0 6px 24px rgba(6, 40, 37, 0.08); }

.dp-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--dp-header-h); }

.dp-logo { display: inline-flex; align-items: center; flex: none; }
.dp-logo img { display: block; width: clamp(128px, 11vw, 158px); height: auto; }
.dp-logo__text { font-family: var(--dp-display); font-size: 1.4rem; color: var(--dp-ink); }

.dp-nav { margin-left: auto; }
.dp-ui .dp-nav__list { display: flex; align-items: center; gap: 2px; }
.dp-nav__list > li { position: relative; display: flex; align-items: center; }

.dp-ui .dp-nav__list > li > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 10px;
  font-family: var(--dp-font);
  font-size: 1rem;
  font-weight: 400;
  color: var(--dp-ink-2);
  white-space: nowrap;
  transition: color 0.15s, background-color 0.15s;
}

.dp-ui .dp-nav__list > li > a:hover,
.dp-ui .dp-nav__list > li.is-open > a { color: var(--dp-primary); background: var(--dp-primary-soft); }

.dp-ui .dp-nav__list > li.current-menu-item > a,
.dp-ui .dp-nav__list > li.current-menu-parent > a,
.dp-ui .dp-nav__list > li.current-menu-ancestor > a,
.dp-ui .dp-nav__list > li.current_page_parent > a {
  color: var(--dp-primary);
  font-weight: 700;
  border-radius: 0;
  background: none;
  box-shadow: inset 0 -2px 0 var(--dp-mint);
}

.dp-ui .dp-nav__list > li.menu-item-has-children > a { padding-right: 4px; }

.dp-subtoggle {
  display: grid;
  place-items: center;
  width: 28px;
  height: 36px;
  margin-right: 6px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--dp-ink-3);
  cursor: pointer;
}

.dp-subtoggle:hover { background: var(--dp-primary-soft); color: var(--dp-primary); }
.dp-subtoggle .dp-icon { width: 16px; height: 16px; transition: transform 0.2s var(--dp-ease); }
.is-open > .dp-subtoggle .dp-icon { transform: rotate(180deg); }

.dp-ui .dp-nav .sub-menu,
.dp-ui .dp-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 5;
  min-width: 260px;
  margin: 0;
  padding: 8px;
  list-style: none;
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  box-shadow: var(--dp-shadow-2);
}

.dp-ui .dp-nav .sub-menu { display: none; }
.dp-ui .dp-nav li.is-open > .sub-menu { display: block; animation: dp-pop 0.18s var(--dp-ease); }

@media (hover: hover) {
  .dp-ui .dp-nav li:hover > .sub-menu { display: block; }
  .dp-nav li.menu-item-has-children::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; }
}

@keyframes dp-pop { from { opacity: 0; transform: translateY(-6px); } }

.dp-ui .dp-nav .sub-menu a,
.dp-ui .dp-menu a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: var(--dp-radius-sm);
  font-size: 0.97rem;
  color: var(--dp-ink);
  text-decoration: none;
  transition: background-color 0.15s;
}

.dp-ui .dp-nav .sub-menu a:hover,
.dp-ui .dp-menu a:hover { background: var(--dp-primary-soft); color: var(--dp-primary); }
.dp-ui .dp-menu .dp-icon { width: 17px; height: 17px; color: var(--dp-primary); }
.dp-ui .dp-menu__foot { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--dp-line); }

.dp-header__actions { display: flex; align-items: center; gap: 10px; }
.dp-nav + .dp-header__actions { margin-left: 8px; }

.dp-account { position: relative; }

.dp-account__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border: 1.5px solid var(--dp-line-strong);
  border-radius: var(--dp-radius-btn);
  background: var(--dp-surface);
  color: var(--dp-primary);
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
}

.dp-account__toggle:hover { border-color: var(--dp-primary); }
.dp-account__toggle .dp-icon { width: 17px; height: 17px; }
.dp-account__toggle[aria-expanded="true"] .dp-account__chev { transform: rotate(180deg); }

.dp-nav-toggle {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--dp-ink);
  cursor: pointer;
}

.dp-nav-toggle:hover { background: var(--dp-primary-soft); }
.dp-nav-toggle .dp-icon { width: 24px; height: 24px; }

.dp-drawer { position: fixed; inset: 0; z-index: 1000; background: rgba(4, 26, 24, 0); transition: background-color 0.24s; }
.dp-drawer.is-open { background: rgba(4, 26, 24, 0.5); }

.dp-drawer__panel {
  position: absolute;
  inset: 0 0 0 auto;
  display: flex;
  flex-direction: column;
  width: min(400px, 100%);
  overflow-y: auto;
  background: var(--dp-surface);
  transform: translateX(100%);
  transition: transform 0.26s var(--dp-ease);
}

.dp-drawer.is-open .dp-drawer__panel { transform: none; }
.dp-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 12px var(--dp-gutter); border-bottom: 1px solid var(--dp-line); }
.dp-drawer__head .dp-logo img { width: 132px; }

.dp-drawer__close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--dp-ink);
  cursor: pointer;
}

.dp-drawer__close:hover { background: var(--dp-primary-soft); }
.dp-drawer__close .dp-icon { width: 24px; height: 24px; }

.dp-ui .dp-drawer__list { padding: 8px var(--dp-gutter); }
.dp-drawer__list > li { border-bottom: 1px solid var(--dp-line); }

.dp-ui .dp-drawer__list > li > a {
  display: block;
  padding: 16px 0;
  font-family: var(--dp-display);
  font-size: 1.4rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--dp-ink);
}

.dp-ui .dp-drawer__list > li.current-menu-item > a { color: var(--dp-primary); }
.dp-ui .dp-drawer__list .sub-menu { margin: -6px 0 0; padding: 0 0 14px; list-style: none; }
.dp-ui .dp-drawer__list .sub-menu a { display: flex; align-items: center; gap: 8px; padding: 8px 0; color: var(--dp-ink-2); font-size: 1rem; }
.dp-ui .dp-drawer__list .sub-menu a::before { content: ""; width: 14px; height: 2px; background: var(--dp-mint); }

.dp-drawer__foot { display: grid; gap: 16px; margin-top: auto; padding: 22px var(--dp-gutter) 30px; }
.dp-drawer__phone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; color: var(--dp-primary); }

html.dp-no-scroll { overflow: hidden; }

@media (max-width: 1100px) {
  .dp-nav { display: none; }
  .dp-nav-toggle { display: grid; }
  .dp-header__actions { margin-left: auto; }
}

@media (max-width: 640px) {
  .dp-topbar__note,
  .dp-topbar__nz { display: none; }
  .dp-topbar__inner { justify-content: center; }
  .dp-header__cta { display: none !important; }
  .dp-account__toggle span { display: none; }
  .dp-nav-toggle { margin-right: -8px; }
}

/* --------------------------------------------------------------------------
   Sections and layout
   -------------------------------------------------------------------------- */

.dp-section { padding-block: var(--dp-section); }
.dp-section--tight { padding-block: clamp(36px, 5vw, 64px); }
.dp-section--flush-t { padding-top: 0; }
.dp-section--tint { background: var(--dp-tint); }
.dp-section--tint + .dp-section--tint { padding-top: 0; }

.dp-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 32px;
  margin-bottom: clamp(26px, 3.5vw, 44px);
}

.dp-section-head__copy { max-width: 46rem; }
.dp-ui .dp-section-head__text { margin-top: 12px; font-size: 1.07rem; color: var(--dp-ink-2); }

.dp-grid { display: grid; gap: clamp(16px, 2.2vw, 28px); }
.dp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 1040px) { .dp-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dp-grid--3 { grid-template-columns: 1fr; } }

.dp-split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 6vw, 88px); align-items: center; }
.dp-split__copy { display: grid; gap: 16px; justify-items: start; }
.dp-split__copy .dp-eyebrow { margin-bottom: -4px; }

.dp-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--dp-radius); overflow: hidden; background: var(--dp-dark); box-shadow: var(--dp-shadow-2); }
.dp-video iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }

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

/* --------------------------------------------------------------------------
   Home hero
   -------------------------------------------------------------------------- */

.dp-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: min(86vh, 780px);
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}

.dp-hero__media { position: absolute; inset: 0; z-index: -1; background: var(--dp-dark); overflow: hidden; }

.dp-hero__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.4s ease;
}

.dp-hero__slide.is-active { opacity: 1; }

@media (prefers-reduced-motion: no-preference) {
  .dp-hero__slide.is-active { animation: dp-drift 10s ease-out both; }
}

@keyframes dp-drift { from { transform: scale(1.07); } to { transform: scale(1); } }

.dp-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--dp-scrim), 0.32) 0%, rgba(var(--dp-scrim), 0.04) 34%, rgba(var(--dp-scrim), 0.78) 100%),
    linear-gradient(90deg, rgba(var(--dp-scrim), 0.5) 0%, rgba(var(--dp-scrim), 0) 64%);
}

.dp-hero__inner { position: relative; padding-block: clamp(40px, 6vw, 80px); }
.dp-hero .dp-eyebrow { margin-bottom: 18px; }

.dp-ui .dp-hero__title {
  max-width: 16ch;
  font-size: clamp(2.7rem, 6.2vw, 5.2rem);
  line-height: 1.02;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.22);
}

.dp-ui .dp-hero__title em,
.dp-ui .dp-pagehero__title em,
.dp-ui .dp-artbanner__title em,
.dp-ui .dp-footer__tagline em { color: var(--dp-mint); }

.dp-ui .dp-hero__text { max-width: 44ch; margin-top: 28px; font-size: clamp(1.07rem, 1.6vw, 1.3rem); line-height: 1.5; color: #fff; opacity: 0.96; }
.dp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.dp-spotlight {
  position: absolute;
  right: var(--dp-gutter);
  bottom: clamp(40px, 6vw, 80px);
  display: flex;
  align-items: center;
  gap: 14px;
  width: 360px;
  padding: 10px 18px 10px 10px;
  border-radius: var(--dp-radius);
  background: #fff;
  color: var(--dp-ink);
  box-shadow: var(--dp-shadow-2);
  transition: transform 0.2s var(--dp-ease);
}

.dp-ui .dp-spotlight:hover { transform: translateY(-3px); color: var(--dp-ink); }
.dp-spotlight__media { flex: none; width: 88px; height: 88px; border-radius: 11px; overflow: hidden; }
.dp-spotlight__media img { width: 100%; height: 100%; object-fit: cover; }
.dp-spotlight__body { display: grid; gap: 4px; justify-items: start; min-width: 0; font-size: 0.88rem; color: var(--dp-ink-3); }
.dp-spotlight__body strong { font-size: 1rem; line-height: 1.25; color: var(--dp-ink); }
.dp-spotlight > .dp-icon { margin-left: auto; color: var(--dp-primary); }

.dp-hero__toggle {
  position: absolute;
  top: 20px;
  right: var(--dp-gutter);
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  background: rgba(var(--dp-scrim), 0.35);
  color: #fff;
  cursor: pointer;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.dp-hero__toggle:hover { background: rgba(var(--dp-scrim), 0.6); }
.dp-hero__toggle .dp-icon { width: 16px; height: 16px; }
.dp-hero__play,
.dp-hero.is-paused .dp-hero__pause { display: none; }
.dp-hero.is-paused .dp-hero__play { display: block; }

@media (max-width: 1100px) {
  .dp-spotlight { position: static; width: auto; max-width: 400px; margin-top: 30px; }
}

@media (max-width: 520px) {
  .dp-hero { min-height: 640px; }
  .dp-hero__actions .dp-btn { width: 100%; }
}

/* --------------------------------------------------------------------------
   Page hero (photo) and page head (no photo)
   -------------------------------------------------------------------------- */

.dp-pagehero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: min(56vh, 500px);
  color: #fff;
  isolation: isolate;
}

.dp-pagehero--tall { min-height: min(68vh, 620px); }

.dp-pagehero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: var(--dp-dark); }
.dp-pagehero__media img { width: 100%; height: 100%; object-fit: cover; }

.dp-pagehero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--dp-scrim), 0.3) 0%, rgba(var(--dp-scrim), 0.06) 34%, rgba(var(--dp-scrim), 0.76) 100%),
    linear-gradient(90deg, rgba(var(--dp-scrim), 0.42) 0%, rgba(var(--dp-scrim), 0) 62%);
}

.dp-pagehero__inner { position: relative; padding-block: clamp(36px, 6vw, 72px); }
.dp-pagehero .dp-eyebrow { color: #fff; opacity: 0.95; }

.dp-ui .dp-pagehero__title {
  max-width: 18ch;
  font-size: clamp(2.3rem, 5vw, 4rem);
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
}

.dp-ui .dp-pagehero__text,
.dp-ui .dp-pagehero__text p {
  max-width: 48ch;
  margin-top: 16px;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.5;
  color: #fff;
  text-shadow: none;
}

.dp-ui .dp-pagehero__text p + p { margin-top: 8px; }
.dp-pagehero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

.dp-pagehead { padding-block: clamp(40px, 6vw, 80px) clamp(28px, 3.5vw, 44px); border-bottom: 1px solid var(--dp-line); background: var(--dp-tint); }
.dp-ui .dp-pagehead .dp-pagehero__title { max-width: 22ch; font-size: clamp(2.2rem, 4.6vw, 3.6rem); color: var(--dp-ink); text-shadow: none; }
.dp-ui .dp-pagehead .dp-pagehero__text,
.dp-ui .dp-pagehead .dp-pagehero__text p { color: var(--dp-ink-2); }

.dp-crumbs { margin-bottom: 18px; font-size: 0.88rem; }
.dp-ui .dp-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; }
.dp-crumbs li { display: inline-flex; align-items: center; opacity: 0.92; }
.dp-crumbs li + li::before { content: "/"; margin: 0 9px; opacity: 0.6; }
.dp-ui .dp-crumbs a { color: inherit; }
.dp-ui .dp-crumbs a:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.dp-crumbs [aria-current] { display: inline-block; max-width: 30ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: 0.8; }
.dp-pagehead .dp-crumbs { color: var(--dp-ink-3); }

@media (max-width: 640px) {
  .dp-crumbs li { display: none; }
  .dp-crumbs li:nth-last-child(2) { display: inline-flex; font-weight: 700; opacity: 1; }
  .dp-crumbs li:nth-last-child(2)::before { content: "\2190"; margin: 0 8px 0 0; opacity: 1; }
}

/* --------------------------------------------------------------------------
   Intro, stats and steps
   -------------------------------------------------------------------------- */

.dp-intro { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 28px 56px; margin-bottom: clamp(32px, 4.5vw, 56px); }
.dp-intro__copy { max-width: 40rem; }
.dp-intro__copy .dp-lead { margin-top: 16px; }

.dp-ui .dp-stats { display: flex; flex-wrap: wrap; gap: 20px clamp(28px, 4vw, 56px); }
.dp-stats li { display: grid; gap: 2px; }
.dp-stats strong { font-family: var(--dp-display); font-weight: 400; font-size: clamp(2.6rem, 4.6vw, 3.6rem); line-height: 1; letter-spacing: -0.02em; color: var(--dp-primary); }
.dp-stats span { font-size: 0.95rem; color: var(--dp-ink-3); }

.dp-ui .dp-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); counter-reset: dp-step; }
.dp-ui .dp-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dp-ui .dp-steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.dp-step { position: relative; padding-top: 22px; border-top: 2px solid var(--dp-line-strong); counter-increment: dp-step; }
.dp-step::before { content: "0" counter(dp-step); position: absolute; right: 0; top: 20px; font-family: var(--dp-display); font-size: 1.05rem; color: var(--dp-ink-3); }
.dp-step__icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 20px; border-radius: var(--dp-radius-sm); background: var(--dp-primary-soft); color: var(--dp-primary); }
.dp-step__icon .dp-icon { width: 23px; height: 23px; }
.dp-ui .dp-step p { margin-top: 8px; color: var(--dp-ink-2); }
.dp-steps__more { margin-top: clamp(32px, 4vw, 48px); }

@media (max-width: 1040px) { .dp-ui .dp-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dp-ui .dp-steps, .dp-ui .dp-steps--4, .dp-ui .dp-steps--2 { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Destination tiles
   -------------------------------------------------------------------------- */

.dp-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(220px, 22vw, 300px); gap: clamp(12px, 1.6vw, 20px); }
.dp-tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dp-tiles--3 .dp-tile { grid-row: span 2; }
.dp-tiles--4 .dp-tile:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
.dp-tiles--4 .dp-tile:nth-child(2) { grid-column: 2; grid-row: 1; }
.dp-tiles--4 .dp-tile:nth-child(3) { grid-column: 2; grid-row: 2; }
.dp-tiles--4 .dp-tile:nth-child(4) { grid-column: 3; grid-row: 1 / span 2; }
.dp-tiles--5 .dp-tile:nth-child(1) { grid-row: span 2; }
.dp-tiles--6 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dp-tiles--6 .dp-tile:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
.dp-tiles--6 .dp-tile:nth-child(6) { grid-column: 4; grid-row: 1 / span 2; }

.dp-ui .dp-tile { position: relative; display: block; border-radius: var(--dp-radius); overflow: hidden; color: #fff; isolation: isolate; background: var(--dp-dark); }
.dp-tile img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--dp-ease); }
.dp-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--dp-scrim), 0) 34%, rgba(var(--dp-scrim), 0.8) 100%); }
.dp-ui .dp-tile:hover { color: #fff; }
.dp-tile:hover img { transform: scale(1.05); }
.dp-tile__body { position: absolute; inset: auto 0 0 0; display: grid; gap: 6px; padding: clamp(18px, 2vw, 26px); }
.dp-ui .dp-tile__title { font-size: clamp(1.5rem, 2.3vw, 2rem); color: #fff; }
.dp-tile__cta { display: inline-flex; align-items: center; gap: 6px; font-size: 0.92rem; font-weight: 700; }
.dp-tile__cta .dp-icon { width: 15px; height: 15px; color: var(--dp-mint); transition: transform 0.2s var(--dp-ease); }
.dp-tile:hover .dp-tile__cta .dp-icon { transform: translateX(4px); }

@media (max-width: 1040px) {
  .dp-tiles, .dp-tiles--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  .dp-tiles .dp-tile { grid-column: auto !important; grid-row: auto !important; aspect-ratio: 4 / 3; }
}

@media (max-width: 560px) {
  .dp-tiles, .dp-tiles--2, .dp-tiles--6 { grid-template-columns: 1fr; }
  .dp-tiles .dp-tile { aspect-ratio: 16 / 10; }
}

/* --------------------------------------------------------------------------
   Cards and carousel
   -------------------------------------------------------------------------- */

.dp-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  overflow: hidden;
  transition: box-shadow 0.25s, transform 0.25s var(--dp-ease), border-color 0.25s;
}

.dp-card:hover { box-shadow: var(--dp-shadow-2); transform: translateY(-3px); border-color: transparent; }
.dp-card:focus-within { outline: 2px solid var(--dp-primary); outline-offset: 3px; }
.dp-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--dp-tint); }
.dp-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--dp-ease); }
.dp-card:hover .dp-card__media img { transform: scale(1.05); }
.dp-card__media .dp-badge { position: absolute; left: 14px; top: 14px; z-index: 1; }
.dp-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: clamp(18px, 2vw, 24px); }

.dp-ui .dp-card__meta { display: flex; align-items: center; gap: 6px; font-size: 0.86rem; color: var(--dp-ink-3); }
.dp-card__meta .dp-icon { width: 15px; height: 15px; color: var(--dp-eyebrow); }

.dp-ui .dp-card__title { font-size: 1.42rem; line-height: 1.2; color: var(--dp-ink); }
.dp-ui .dp-card__title a { color: inherit; }
.dp-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.dp-card__title a:focus-visible { outline: none; }
.dp-ui .dp-card__text { font-size: 0.97rem; color: var(--dp-ink-2); }
.dp-card__cta { margin-top: auto; padding-top: 6px; font-size: 0.95rem; }

.dp-carousel__nav { display: flex; gap: 8px; flex: none; }

.dp-carousel__nav button {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1.5px solid var(--dp-line-strong);
  border-radius: 50%;
  background: var(--dp-surface);
  color: var(--dp-ink);
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}

.dp-carousel__nav button:hover:not(:disabled) { background: var(--dp-primary); border-color: var(--dp-primary); color: #fff; }
.dp-carousel__nav button:disabled { opacity: 0.35; cursor: default; }
.dp-carousel__nav .dp-icon { width: 19px; height: 19px; }

.dp-ui .dp-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * clamp(16px, 2.2vw, 28px)) / 3);
  gap: clamp(16px, 2.2vw, 28px);
  margin: -6px -4px 0;
  padding: 6px 4px 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.dp-carousel::-webkit-scrollbar { display: none; }
.dp-carousel > * { scroll-snap-align: start; }
.dp-carousel .dp-card:hover { transform: none; box-shadow: var(--dp-shadow-1); }

@media (max-width: 1040px) { .dp-ui .dp-carousel { grid-auto-columns: calc((100% - clamp(16px, 2.2vw, 28px)) / 2); } }
@media (max-width: 640px) {
  .dp-ui .dp-carousel { grid-auto-columns: 84%; }
  .dp-carousel__nav { display: none; }
}

/* --------------------------------------------------------------------------
   Editorial feature cards (stories)
   -------------------------------------------------------------------------- */

.dp-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 28px); }

.dp-feature {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  overflow: hidden;
  transition: box-shadow 0.25s, border-color 0.25s;
}

.dp-feature:hover { box-shadow: var(--dp-shadow-2); border-color: transparent; }
.dp-feature:focus-within { outline: 2px solid var(--dp-primary); outline-offset: 3px; }
.dp-feature__media { position: relative; min-height: 360px; overflow: hidden; background: var(--dp-tint); }
.dp-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--dp-ease); }
.dp-feature:hover .dp-feature__media img { transform: scale(1.04); }
.dp-feature__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 14px; padding: clamp(24px, 4vw, 52px); }
.dp-ui .dp-feature__title { font-size: clamp(1.6rem, 2.6vw, 2.25rem); color: var(--dp-ink); }
.dp-ui .dp-feature__title a { color: inherit; }
.dp-feature__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.dp-feature__title a:focus-visible { outline: none; }
.dp-feature .dp-card__cta { margin-top: 4px; }

.dp-feature--row { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); }
.dp-feature--row .dp-feature__media { min-height: 300px; }
.dp-feature--row .dp-feature__body { padding: clamp(22px, 3vw, 40px); }
.dp-ui .dp-feature--row .dp-feature__title { font-size: clamp(1.45rem, 2.2vw, 1.9rem); }

@media (max-width: 820px) {
  .dp-guide-grid { grid-template-columns: 1fr; }
  .dp-feature, .dp-feature--row { grid-template-columns: 1fr; }
  .dp-feature__media, .dp-feature--row .dp-feature__media { min-height: 0; aspect-ratio: 3 / 2; }
}

/* --------------------------------------------------------------------------
   Promo pair
   -------------------------------------------------------------------------- */

.dp-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 32px); }

.dp-ui .dp-promo {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  overflow: hidden;
  color: var(--dp-ink);
  transition: box-shadow 0.25s, border-color 0.25s;
}

.dp-ui .dp-promo:hover { box-shadow: var(--dp-shadow-2); border-color: transparent; color: var(--dp-ink); }
.dp-promo__media { position: relative; min-height: 280px; background: var(--dp-tint); }
.dp-promo__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dp-promo__copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: clamp(22px, 3vw, 36px); }
.dp-promo__copy .dp-eyebrow { margin: 0; }
.dp-promo__text { color: var(--dp-ink-2); }
.dp-promo:hover .dp-link .dp-icon { transform: translateX(3px); }

@media (max-width: 900px) { .dp-duo { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .dp-ui .dp-promo { grid-template-columns: 1fr; } .dp-promo__media { min-height: 0; aspect-ratio: 16 / 9; } }

/* --------------------------------------------------------------------------
   Art banner (colour panel + photo + stamp)
   -------------------------------------------------------------------------- */

.dp-artbanner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: clamp(380px, 44vw, 540px);
  background: var(--dp-dark);
  color: #fff;
}

.dp-artbanner__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 18px;
  padding: clamp(40px, 6vw, 88px) clamp(48px, 7vw, 120px) clamp(40px, 6vw, 88px) max(var(--dp-gutter), calc((100vw - var(--dp-container)) / 2));
}

.dp-ui .dp-artbanner .dp-eyebrow { margin: 0; color: var(--dp-mint); }
.dp-ui .dp-artbanner__title { max-width: 12ch; font-size: clamp(2.4rem, 5vw, 4.3rem); line-height: 1; color: #fff; }
.dp-ui .dp-artbanner__text { max-width: 40ch; font-size: 1.1rem; color: var(--dp-dark-muted); }
.dp-artbanner__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 8px; }
.dp-artbanner__media { position: relative; overflow: hidden; }
.dp-artbanner__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--dp-ease); }
.dp-artbanner:hover .dp-artbanner__media img { transform: scale(1.03); }

.dp-artbanner__stamp {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 138px;
  height: 138px;
  padding: 18px;
  border-radius: 50%;
  background: var(--dp-mint);
  color: var(--dp-emerald);
  font-family: var(--dp-display);
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.1;
  text-align: center;
  box-shadow: var(--dp-shadow-2);
  transform: translate(-50%, -50%) rotate(-8deg);
}

@media (max-width: 820px) {
  .dp-artbanner { grid-template-columns: 1fr; }
  .dp-artbanner__media { min-height: 260px; order: -1; }
  .dp-artbanner__panel { padding-inline: var(--dp-gutter); }
  .dp-artbanner__stamp { left: auto; right: 20px; top: 260px; width: 104px; height: 104px; padding: 12px; font-size: 0.92rem; transform: translateY(-50%) rotate(-8deg); }
}

/* --------------------------------------------------------------------------
   Newsletter band (footer widget area 2: title, text and Ninja Form)
   -------------------------------------------------------------------------- */

.dp-subscribe { padding-block: clamp(52px, 6vw, 84px); background: var(--dp-tint); border-top: 1px solid var(--dp-line); }

.dp-subscribe__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  column-gap: clamp(28px, 6vw, 80px);
  align-items: start;
}

.dp-subscribe__inner > *,
.dp-subscribe__inner .widget,
.dp-subscribe__inner .textwidget { grid-column: 1; }
.dp-subscribe__inner .widget,
.dp-subscribe__inner .textwidget { display: contents; }

.dp-ui .dp-subscribe .dp-eyebrow { margin-bottom: 10px; }

.dp-ui .dp-subscribe .widget-title {
  margin: 0;
  padding: 0;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--dp-ink);
}

.dp-ui .dp-subscribe .textwidget > p { max-width: 44ch; margin: 12px 0 0; font-size: 1.05rem; color: var(--dp-ink-2); }
.dp-ui .dp-subscribe .textwidget > p:empty { display: none; }

.dp-ui .dp-subscribe .nf-form-cont,
.dp-ui .dp-subscribe .textwidget > p:has(.nf-form-cont) {
  grid-column: 2;
  grid-row: 1 / span 4;
  align-self: center;
  margin: 0;
}

/* Ninja Forms renders one row per field: first and last name side by side,
   email full width, then the button. */
.dp-subscribe nf-rows-wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.dp-subscribe nf-rows-wrap > .nf-row:nth-child(n + 3) { grid-column: 1 / -1; }
#page .dp-subscribe .nf-field-container { margin-bottom: 0; }
#page .dp-subscribe .nf-form-fields-required { margin-bottom: 10px; }
#page .dp-subscribe .nf-form-content { padding: 0; max-width: none; }
#page .dp-subscribe .submit-container .nf-field-element { display: flex; }
#page .dp-subscribe .submit-container input[type="submit"],
#page .dp-subscribe .submit-container input[type="button"] { min-width: 180px; }

@media (max-width: 520px) {
  .dp-subscribe nf-rows-wrap { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .dp-subscribe__inner { grid-template-columns: 1fr; }
  .dp-ui .dp-subscribe .nf-form-cont,
  .dp-ui .dp-subscribe .textwidget > p:has(.nf-form-cont) { grid-column: 1; grid-row: auto; margin-top: 24px; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

#page .site-footer.dp-footer { padding: 0; background: var(--dp-dark); color: var(--dp-dark-ink); }
.dp-footer__main { padding-block: clamp(48px, 6vw, 80px); }
.dp-footer__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px clamp(32px, 5vw, 64px); align-items: start; }
.dp-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

.dp-ui .dp-footer__h,
#page .dp-footer .widget-title {
  margin: 0 0 16px;
  padding: 0;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.74rem;
  line-height: 1.2;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dp-dark-muted);
}

#page .dp-footer ul.menu,
.dp-ui .dp-footer__menu { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
#page .dp-footer ul.menu li { margin: 0; padding: 0; }

#page .dp-footer ul.menu a,
.dp-ui .dp-footer__menu a {
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--dp-dark-ink);
  opacity: 0.94;
  text-decoration: none;
}

#page .dp-footer ul.menu a:hover,
.dp-ui .dp-footer__menu a:hover { color: #fff; opacity: 1; text-decoration: underline; text-decoration-color: var(--dp-mint); text-underline-offset: 4px; }

.dp-footer__brand { display: grid; justify-items: center; gap: 14px; text-align: center; }
.dp-footer__logo img { display: block; width: 176px; height: auto; filter: brightness(0) invert(1); }
#page .dp-footer p.dp-footer__tagline { font-family: var(--dp-display); font-size: 1.7rem; line-height: 1.1; letter-spacing: -0.01em; color: #fff; }
#page .dp-footer__brand p:not(.dp-footer__tagline) { max-width: 36ch; font-size: 0.95rem; color: var(--dp-dark-muted); }

.dp-footer__aside { display: grid; justify-items: end; gap: 6px; text-align: right; }
.dp-ui .dp-footer__contact { display: grid; gap: 10px; margin-bottom: 18px; }
.dp-footer__contact li { display: flex; align-items: center; justify-content: flex-end; gap: 10px; font-size: 0.97rem; color: var(--dp-dark-muted); }
.dp-footer__contact a { font-weight: 700; color: var(--dp-dark-ink); }
.dp-footer__contact a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.dp-footer__contact .dp-icon { order: 2; width: 16px; height: 16px; color: var(--dp-mint); }

.dp-footer__disclaimer { margin-top: clamp(36px, 4vw, 52px); padding-top: 26px; border-top: 1px solid var(--dp-line-light); }
#page .dp-footer__disclaimer .widget-title { margin-bottom: 10px; }
#page .dp-footer__disclaimer .textwidget,
#page .dp-footer__disclaimer .textwidget p { max-width: 1080px; margin: 0; font-size: 0.82rem; line-height: 1.65; color: var(--dp-dark-muted); }
#page .dp-footer .textwidget a { color: var(--dp-dark-ink); text-decoration: underline; text-decoration-color: var(--dp-mint); text-underline-offset: 3px; }

.dp-footer__bar { background: var(--dp-dark-2); color: var(--dp-dark-muted); font-size: 0.86rem; }
#page .dp-footer__bar p { margin: 0; font-size: 0.86rem; color: var(--dp-dark-muted); }
.dp-footer__bar-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 32px; padding-block: 18px; }
.dp-ui .dp-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; }
.dp-footer__legal a { color: var(--dp-dark-muted); }
.dp-footer__legal a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

#page #ot-sdk-btn.ot-sdk-show-settings {
  position: static !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: var(--dp-dark-muted) !important;
  font-family: var(--dp-font) !important;
  font-size: 0.86rem !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  cursor: pointer;
}

#page #ot-sdk-btn.ot-sdk-show-settings:hover { color: #fff !important; text-decoration: underline !important; }

@media (max-width: 900px) {
  .dp-footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .dp-footer__brand { order: -1; justify-items: start; text-align: left; }
  .dp-footer__aside { justify-items: start; text-align: left; }
  .dp-footer__contact li { justify-content: flex-start; }
  .dp-footer__contact .dp-icon { order: 0; }
}

/* --------------------------------------------------------------------------
   Resort page: property bar, section nav, gallery, overview, rooms
   -------------------------------------------------------------------------- */

.dp-resort-hero .dp-pagehero__title { max-width: 16ch; }

.dp-propbar { background: var(--dp-surface); border-bottom: 1px solid var(--dp-line); }
.dp-propbar__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 32px; padding-block: 18px; }
.dp-propbar__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.dp-subnav {
  position: sticky;
  top: calc(var(--dp-header-h) + var(--dp-admin-h));
  z-index: 40;
  background: color-mix(in srgb, var(--dp-bg) 92%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--dp-line);
}

.dp-subnav__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; }
.dp-ui .dp-subnav ul { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.dp-subnav ul::-webkit-scrollbar { display: none; }

.dp-ui .dp-subnav ul a {
  display: inline-flex;
  align-items: center;
  min-height: 58px;
  padding: 0 14px;
  border-bottom: 2px solid transparent;
  font-size: 0.97rem;
  color: var(--dp-ink-2);
  white-space: nowrap;
}

.dp-ui .dp-subnav ul a:hover { color: var(--dp-primary); }
.dp-ui .dp-subnav ul a[aria-current] { color: var(--dp-primary); font-weight: 700; border-color: var(--dp-mint); }
#gallery, #overview, #rooms, #credits, #location { scroll-margin-top: calc(var(--dp-header-h) + var(--dp-admin-h) + 76px); }

@media (max-width: 640px) { .dp-subnav .dp-btn { display: none; } }

.dp-ui .dp-gallery { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.dp-gallery--mosaic { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, clamp(150px, 17vw, 240px)); }

.dp-ui .dp-gallery__item {
  position: relative;
  display: block;
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: var(--dp-radius-sm);
  overflow: hidden;
  background: var(--dp-tint);
  aspect-ratio: 4 / 3;
  cursor: zoom-in;
}

.dp-gallery--mosaic .dp-gallery__item { aspect-ratio: auto; height: 100%; }
.dp-gallery--mosaic .dp-gallery__item:first-child { grid-row: span 2; border-radius: var(--dp-radius) var(--dp-radius-sm) var(--dp-radius-sm) var(--dp-radius); }
.dp-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--dp-ease); }
.dp-gallery__item:hover img { transform: scale(1.05); }
.dp-ui .dp-gallery__all { position: absolute; right: 16px; bottom: 16px; box-shadow: var(--dp-shadow-1); }

@media (max-width: 760px) {
  .dp-gallery--mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .dp-gallery--mosaic .dp-gallery__item { aspect-ratio: 4 / 3; height: auto; }
  .dp-gallery--mosaic .dp-gallery__item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 10; }
  .dp-gallery--mosaic .dp-gallery__item:nth-child(n + 4) { display: none; }
  .dp-ui .dp-gallery { grid-template-columns: 1fr 1fr; }
}

.dp-detail { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(28px, 5vw, 72px); align-items: start; }
.dp-detail .dp-prose > .dp-h2 { margin-bottom: 0.2em; }
.dp-detail .dp-prose > h3 { margin-top: 1.8em; }

.dp-bookcard { position: sticky; top: calc(var(--dp-header-h) + var(--dp-admin-h) + 82px); display: grid; gap: 14px; box-shadow: var(--dp-shadow-1); }
.dp-bookcard .dp-eyebrow { margin: 0; }
.dp-ui .dp-bookcard__sub { margin-top: -4px; font-size: 0.95rem; color: var(--dp-ink-2); }

.dp-ui .dp-infolist { display: grid; gap: 14px; margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--dp-line); }
.dp-infolist li { display: flex; gap: 12px; }
.dp-infolist .dp-icon { width: 18px; height: 18px; margin-top: 3px; color: var(--dp-primary); }
.dp-infolist span { display: block; font-size: 0.8rem; color: var(--dp-ink-3); }
.dp-infolist strong,
.dp-infolist a { display: block; font-weight: 700; line-height: 1.4; color: var(--dp-ink); }
.dp-infolist a:hover { color: var(--dp-primary); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 960px) {
  .dp-detail { grid-template-columns: 1fr; }
  .dp-bookcard { position: static; }
}

@media (max-width: 640px) { .dp-ui .dp-ticks--2 { grid-template-columns: 1fr; } }

.dp-faq { display: grid; gap: 12px; }
.dp-acc { border: 1px solid var(--dp-line); border-radius: var(--dp-radius-sm); background: var(--dp-surface); }

.dp-acc > summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  font-weight: 700;
  font-size: 1.06rem;
  color: var(--dp-ink);
  cursor: pointer;
  list-style: none;
}

.dp-acc > summary::-webkit-details-marker { display: none; }
.dp-acc > summary .dp-icon { margin-left: auto; color: var(--dp-primary); transition: transform 0.25s var(--dp-ease); }
.dp-acc[open] > summary .dp-icon { transform: rotate(45deg); }
.dp-acc__body { display: grid; gap: 18px; padding: 0 22px 22px; color: var(--dp-ink-2); }
.dp-room__name { min-width: 0; }
.dp-room__facts { font-weight: 400; font-size: 0.9rem; color: var(--dp-ink-3); }
.dp-ui .dp-room__desc p { margin: 0; }
.dp-ui .dp-room__desc p + p { margin-top: 0.8em; }

.dp-ui .dp-facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 1px;
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius-sm);
  background: var(--dp-line);
  overflow: hidden;
}

.dp-facts div { padding: 14px 16px; background: var(--dp-surface); }
.dp-facts dt { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dp-ink-3); }
.dp-ui .dp-facts dd { margin-top: 3px; font-weight: 700; line-height: 1.35; color: var(--dp-ink); }
.dp-acc__body .dp-ticks { margin-top: 0; }

.dp-room__media { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.dp-room__plan { background: #fff; }
.dp-room__plan img { object-fit: contain; padding: 8px; }
.dp-room__plan span { position: absolute; left: 8px; bottom: 8px; padding: 3px 9px; border-radius: 999px; background: var(--dp-primary); color: #fff; font-size: 0.74rem; font-weight: 700; }

@media (max-width: 640px) { .dp-room__facts { display: none; } }

.dp-ui .dp-chart { position: relative; display: block; padding: clamp(12px, 2vw, 24px); border: 1px solid var(--dp-line); border-radius: var(--dp-radius); background: #fff; }
.dp-chart img { display: block; width: 100%; height: auto; }
.dp-chart__open { position: absolute; right: 16px; top: 16px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: var(--dp-primary); color: #fff; font-size: 0.86rem; font-weight: 700; opacity: 0; transition: opacity 0.2s; }
.dp-chart:hover .dp-chart__open,
.dp-chart:focus-visible .dp-chart__open { opacity: 1; }

.dp-locmap { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }

.dp-locmap__frame {
  min-height: 480px;
  border-radius: var(--dp-radius);
  overflow: hidden;
  background: #d8ece8 repeating-linear-gradient(45deg, transparent 0 14px, rgba(255, 255, 255, 0.35) 14px 15px);
}

.dp-locmap__card { display: grid; gap: 12px; align-content: start; }
.dp-ui .dp-locmap__h { margin: 0; font-family: var(--dp-font); font-weight: 700; font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dp-ink-3); }
.dp-ui .dp-locmap__hint { font-size: 0.92rem; color: var(--dp-ink-2); }
.dp-ui .dp-nearby { display: grid; gap: 2px; margin: 0 -10px; }

.dp-nearby button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: var(--dp-radius-sm);
  background: none;
  color: var(--dp-ink);
  font-family: var(--dp-font);
  font-size: 0.98rem;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s;
}

.dp-nearby button:hover,
.dp-nearby button[aria-pressed="true"] { background: var(--dp-primary-soft); color: var(--dp-primary); }
.dp-nearby .dp-icon { width: 17px; height: 17px; color: var(--dp-eyebrow); }
.dp-nearby span { flex: 1; }
.dp-nearby .dp-nearby__go { color: var(--dp-ink-3); }
.dp-directions:empty { display: none; }
.dp-directions { max-height: 320px; overflow-y: auto; padding-top: 12px; border-top: 1px solid var(--dp-line); font-size: 0.88rem; color: var(--dp-ink-2); }
.dp-directions table { width: 100%; }

@media (max-width: 900px) {
  .dp-locmap { grid-template-columns: 1fr; }
  .dp-locmap__frame { min-height: 340px; }
}

/* Lightbox */
.dp-lightbox {
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(4, 16, 15, 0.95);
  color: #fff;
}

.dp-lightbox[open] { display: grid; grid-template-columns: auto 1fr auto; align-items: center; }
.dp-lightbox::backdrop { background: rgba(4, 16, 15, 0.6); }
.dp-lightbox figure { display: grid; justify-items: center; gap: 12px; min-width: 0; margin: 0; padding: 60px 8px 24px; }
.dp-lightbox img { max-width: 100%; max-height: calc(100vh - 130px); border-radius: 8px; object-fit: contain; }
.dp-lightbox figcaption { font-size: 0.9rem; opacity: 0.8; }

.dp-lightbox button {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 0 12px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
}

.dp-lightbox button:hover { background: rgba(255, 255, 255, 0.24); }
.dp-lightbox button .dp-icon { width: 22px; height: 22px; }
.dp-lightbox .dp-lightbox__close { position: absolute; right: 8px; top: 12px; }

@media (max-width: 640px) {
  .dp-lightbox[open] { grid-template-columns: 1fr; }
  .dp-lightbox [data-dir] { position: absolute; bottom: 20px; }
  .dp-lightbox [data-dir="-1"] { left: 20px; }
  .dp-lightbox [data-dir="1"] { right: 20px; }
}

/* --------------------------------------------------------------------------
   Articles and the blog index
   -------------------------------------------------------------------------- */

.dp-article { display: grid; grid-template-columns: 210px minmax(0, 740px); justify-content: center; gap: clamp(28px, 6vw, 88px); align-items: start; }
.dp-article__aside { position: sticky; top: calc(var(--dp-header-h) + var(--dp-admin-h) + 32px); display: grid; gap: 28px; }
.dp-ui .dp-article__meta { display: grid; gap: 16px; }
.dp-article__meta dt { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dp-ink-3); }
.dp-ui .dp-article__meta dd { margin-top: 2px; font-weight: 700; color: var(--dp-ink); }
.dp-article__body.dp-prose > p:first-child { font-size: clamp(1.15rem, 1.7vw, 1.32rem); line-height: 1.6; color: var(--dp-ink); }

.dp-share { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.dp-share__label { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dp-ink-3); }
.dp-ui .dp-share__list { display: flex; gap: 8px; }

.dp-share__list a {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1.5px solid var(--dp-line-strong);
  border-radius: 50%;
  background: var(--dp-surface);
  color: var(--dp-ink-2);
  transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

.dp-share__list a:hover { background: var(--dp-primary); border-color: var(--dp-primary); color: #fff; }
.dp-share__list .dp-icon { width: 18px; height: 18px; }

@media (max-width: 900px) {
  .dp-article { grid-template-columns: minmax(0, 740px); }
  .dp-article__aside { position: static; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding-bottom: 22px; border-bottom: 1px solid var(--dp-line); }
  .dp-ui .dp-article__meta { grid-template-columns: repeat(2, auto); gap: 12px 32px; }
  .dp-share { flex-direction: row; align-items: center; }
}

.dp-blog { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.dp-blog__main { display: grid; gap: clamp(18px, 2.4vw, 28px); }
.dp-blog__aside { position: sticky; top: calc(var(--dp-header-h) + var(--dp-admin-h) + 24px); display: grid; gap: 20px; }

@media (max-width: 1040px) {
  .dp-blog { grid-template-columns: 1fr; }
  .dp-blog__aside { position: static; }
}

#page .blog-right-post .widget { margin: 0; padding: clamp(22px, 2.6vw, 28px); border: 1px solid var(--dp-line); border-radius: var(--dp-radius); background: var(--dp-surface); }

#page .blog-right-post .widget-title {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: 1.45rem;
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .blog-right-post ul { margin: 0; padding: 0; list-style: none; }
#page .blog-right-post .widget_recent_entries li { padding: 12px 0; border-bottom: 1px solid var(--dp-line); }
#page .blog-right-post .widget_recent_entries li:last-child { border-bottom: 0; padding-bottom: 0; }
#page .blog-right-post .widget_recent_entries a { color: var(--dp-ink); font-size: 0.98rem; line-height: 1.4; text-decoration: none; }
#page .blog-right-post .widget_recent_entries a:hover { color: var(--dp-primary); text-decoration: underline; text-decoration-color: var(--dp-mint); text-underline-offset: 3px; }

#page .posts-navigation .nav-links,
#page .navigation.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }

#page .posts-navigation a,
#page .navigation.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 20px;
  border: 1.5px solid var(--dp-line-strong);
  border-radius: 999px;
  background: var(--dp-surface);
  color: var(--dp-primary);
  font-weight: 700;
  text-decoration: none;
}

#page .posts-navigation a:hover,
#page .navigation.pagination .page-numbers.current,
#page .navigation.pagination a.page-numbers:hover { background: var(--dp-primary); border-color: var(--dp-primary); color: #fff; }

/* --------------------------------------------------------------------------
   Forms (Ninja Forms, Contact Form 7, legacy Bootstrap)
   -------------------------------------------------------------------------- */

#page .nf-form-content input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
#page .nf-form-content select,
#page .nf-form-content textarea,
#page .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
#page .wpcf7 textarea,
#page .wpcf7 select,
#page input.form-control,
#page select.form-control,
#page select.custom-select,
#page textarea.form-control {
  height: 52px;
  padding: 0 16px !important;
  border: 1.5px solid var(--dp-line-strong) !important;
  border-radius: var(--dp-radius-sm) !important;
  background-color: var(--dp-surface) !important;
  box-shadow: none !important;
  color: var(--dp-ink) !important;
  font-family: var(--dp-font) !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  transition: border-color 0.15s, box-shadow 0.15s;
}

#page .nf-form-content textarea,
#page .wpcf7 textarea,
#page textarea.form-control { height: auto; min-height: 140px; padding: 14px 16px !important; line-height: 1.5 !important; }

#page .nf-form-content input:hover,
#page .nf-form-content textarea:hover,
#page .form-control:hover { border-color: var(--dp-ink-3) !important; }

#page .nf-form-content input:focus,
#page .nf-form-content select:focus,
#page .nf-form-content textarea:focus,
#page .wpcf7 input:focus,
#page .wpcf7 textarea:focus,
#page .form-control:focus,
#page .custom-select:focus {
  border-color: var(--dp-primary) !important;
  box-shadow: 0 0 0 3px var(--dp-primary-soft) !important;
  outline: none;
}

#page .nf-form-content ::placeholder,
#page .wpcf7 ::placeholder,
#page .form-control::placeholder { color: #6b7b79; opacity: 1; }

#page .nf-form-content .nf-field-label label,
#page .nf-form-content .nf-field-label .nf-label-span {
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--dp-ink);
}

#page .nf-form-content .list-checkbox-wrap .nf-field-element li label,
#page .nf-form-content .checkbox-wrap .nf-field-label label,
#page .nf-form-content .checkbox-wrap .nf-field-element label {
  font-weight: 400;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--dp-ink-2);
}

#page .nf-form-content input[type="checkbox"],
#page .nf-form-content input[type="radio"] { accent-color: var(--dp-primary); }

#page .nf-form-content input[type="button"],
#page .nf-form-content input[type="submit"],
#page .nf-form-content button,
#page .wpcf7 input[type="submit"] {
  height: auto !important;
  min-height: 52px;
  padding: 0 30px !important;
  border: 1.5px solid var(--dp-primary) !important;
  border-radius: var(--dp-radius-btn) !important;
  background: var(--dp-primary) !important;
  color: #fff !important;
  font-family: var(--dp-font) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  cursor: pointer;
  transition: background-color 0.18s, border-color 0.18s, color 0.18s;
}

#page .nf-form-content input[type="button"]:hover,
#page .nf-form-content input[type="submit"]:hover,
#page .nf-form-content button:hover,
#page .wpcf7 input[type="submit"]:hover { background: var(--dp-primary-hover) !important; border-color: var(--dp-primary-hover) !important; }

#page .nf-error-msg,
#page .ninja-forms-req-symbol { color: #b42318; }
#page .nf-form-fields-required { font-size: 0.86rem; color: var(--dp-ink-3); }

/* Forms on a page get a panel of their own. */
#page .common-content-page .nf-form-cont,
#page .make-outer-block .nf-form-cont {
  max-width: 720px;
  margin-inline: auto;
  padding: clamp(24px, 3.4vw, 40px);
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  box-shadow: var(--dp-shadow-1);
  color: var(--dp-ink);
}

/* --------------------------------------------------------------------------
   Content pages (privacy, terms, guides, contact and booking forms)
   -------------------------------------------------------------------------- */

#page .common-content-page { padding: clamp(48px, 6vw, 96px) 0; }
#page .common-content-page > .container { max-width: calc(var(--dp-container) + var(--dp-gutter) * 2); padding-inline: var(--dp-gutter); }
#page .dp-page--prose > .container { max-width: calc(820px + var(--dp-gutter) * 2); }

#page .common-content-page .entry-content,
#page .blog-left-post .entry-content { font-size: 1.07rem; line-height: 1.75; color: var(--dp-ink-2); }

#page .common-content-page .entry-content h1,
#page .common-content-page .entry-content h2,
#page .common-content-page .entry-content h3,
#page .common-content-page .entry-content h4,
#page .common-content-page .elementor-heading-title {
  margin: 1.5em 0 0.5em;
  font-family: var(--dp-display);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.015em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .common-content-page .entry-content > :first-child,
#page .common-content-page .elementor-widget-container > :first-child { margin-top: 0; }
#page .common-content-page .entry-content h2 { font-size: clamp(1.6rem, 2.4vw, 2rem); }
#page .common-content-page .entry-content h3 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); }
#page .common-content-page .entry-content h4 { font-size: 1.2rem; }
#page .common-content-page .entry-content h3 b,
#page .common-content-page .entry-content h3 strong { font-weight: 400; }
#page .common-content-page .entry-content p { margin: 0 0 1em; color: var(--dp-ink-2); }
#page .common-content-page .entry-content p[style] { font-family: var(--dp-font) !important; }
#page .common-content-page .entry-content p b,
#page .common-content-page .entry-content p strong { color: var(--dp-ink); font-family: var(--dp-font) !important; font-size: inherit !important; }
#page .common-content-page .entry-content ul,
#page .common-content-page .entry-content ol { margin: 0 0 1.1em; padding-left: 1.3em; }
#page .common-content-page .entry-content li + li { margin-top: 0.35em; }
#page .common-content-page .entry-content li::marker { color: var(--dp-aqua); }

#page .common-content-page .entry-content a:not([class]),
#page .blog-left-post .entry-content a:not([class]) {
  color: var(--dp-primary);
  text-decoration: underline;
  text-decoration-color: var(--dp-mint);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

#page .common-content-page .entry-content img { height: auto; border-radius: var(--dp-radius); }
#page .common-content-page .entry-content table { width: 100%; border-collapse: collapse; font-size: 0.97rem; background: var(--dp-surface); }
#page .common-content-page .entry-content th,
#page .common-content-page .entry-content td { padding: 12px 14px; border: 1px solid var(--dp-line); }
#page .common-content-page .entry-content th { background: var(--dp-primary); color: #fff; font-weight: 700; }
#page .common-content-page .entry-footer { margin-top: 32px; font-size: 0.9rem; }

/* Elementor-built pages inside the default template (for example Contact Us). */
#page .dp-page--builder .elementor-widget-image img { border-radius: var(--dp-radius); }
#page .dp-page--builder .elementor-section .elementor-container { max-width: var(--dp-container); }

/* --------------------------------------------------------------------------
   Legacy section heading and text blocks
   -------------------------------------------------------------------------- */

#page .heading-block {
  max-width: calc(var(--dp-container) + var(--dp-gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--dp-gutter) clamp(18px, 2vw, 26px);
  text-align: left;
  overflow: visible;
}

#page .heading-block::before { display: none; }

#page .heading-block span,
#page .heading-block h1 {
  display: block;
  max-width: 24ch;
  padding: 0;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.4vw, 2.85rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .heading-block span::before,
#page .heading-block span::after,
#page .heading-block h1::before,
#page .heading-block h1::after { display: none; }

#page .p-text-pg {
  max-width: calc(var(--dp-container) + var(--dp-gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--dp-gutter);
  text-align: left;
}

#page .p-text-pg p { max-width: 46rem; margin: 0 0 1em; font-size: clamp(1.07rem, 1.4vw, 1.2rem); line-height: 1.6; color: var(--dp-ink-2); }

#page .parallax { background-size: cover !important; background-position: center center !important; background-attachment: scroll !important; }

/* Become a member band (blog, posts, welcome, program) */
#page .become-block {
  position: relative;
  padding: clamp(80px, 10vw, 150px) 0;
  background-size: cover;
  background-position: center;
  background-color: var(--dp-dark);
  isolation: isolate;
}

#page .become-block::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--dp-scrim), 0.55), rgba(var(--dp-scrim), 0.8));
}

#page .become-block .become-block-inst {
  position: relative;
  top: auto;
  max-width: calc(780px + var(--dp-gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--dp-gutter);
  text-align: center;
  transform: none;
}

#page .become-block .dp-eyebrow { justify-content: center; color: var(--dp-mint); }

#page .become-block h2 {
  margin: 0 0 18px;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: clamp(2.3rem, 5vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
  text-transform: none;
  color: #fff;
  text-shadow: none;
}

#page .become-block p { max-width: 560px; margin: 0 auto 26px; font-size: 1.12rem; color: var(--dp-dark-muted); text-align: center; text-shadow: none !important; }
#page .become-block .purple-btn { margin-top: 10px; }

/* The Discovery Program band used an Indigo swatch image: use solid Emerald. */
body.page-id-113 #page .become-block { background-image: none !important; }

/* --------------------------------------------------------------------------
   Resorts listing (legacy tab markup restyled as chips and cards)
   -------------------------------------------------------------------------- */

#page .resort-list-page-alt { padding: clamp(48px, 6vw, 88px) 0 clamp(64px, 8vw, 112px); }
#page .resort-list-page-alt > .container { max-width: calc(var(--dp-container) + var(--dp-gutter) * 2); padding-inline: var(--dp-gutter); }

#page .resort-list-page-alt .cat-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 clamp(28px, 3.4vw, 44px);
  padding: 0;
  border: 0;
}

#page .resort-list-page-alt .cat-list li { margin: 0; padding: 0; }

#page .resort-list-page-alt .cat-list li a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  margin: 0;
  padding: 0 18px;
  border: 1.5px solid var(--dp-line-strong);
  border-radius: 999px;
  background: var(--dp-surface);
  color: var(--dp-ink-2);
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

#page .resort-list-page-alt .cat-list li a::before,
#page .resort-list-page-alt .cat-list li a::after { display: none; }
#page .resort-list-page-alt .cat-list li a:hover { border-color: var(--dp-primary); color: var(--dp-primary); }
#page .resort-list-page-alt .cat-list li a.active { background: var(--dp-primary); border-color: var(--dp-primary); color: #fff; }

#page .resort-list-page-alt .tab-pane > .row { row-gap: clamp(16px, 2.2vw, 28px); margin-inline: calc(clamp(16px, 2.2vw, 28px) / -2); }
#page .resort-list-page-alt .tab-pane > .row > [class*="col-"] { display: flex; padding-inline: calc(clamp(16px, 2.2vw, 28px) / 2); }
#page .resort-all-list-outer { display: flex; flex: 1; margin: 0; }

#page .resort-all-list {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  overflow: hidden;
  color: var(--dp-ink);
  text-decoration: none;
  transition: box-shadow 0.25s, transform 0.25s var(--dp-ease), border-color 0.25s;
}

#page .resort-all-list:hover { box-shadow: var(--dp-shadow-2); transform: translateY(-3px); border-color: transparent; }
#page .resort-all-list .list-img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--dp-tint); }
#page .resort-all-list .list-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--dp-ease); }
#page .resort-all-list:hover .list-img img { transform: scale(1.05); }
#page .resort-all-list .uper-hover-box { display: none; }

#page .resort-all-list .text-list { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 12px; padding: clamp(18px, 2vw, 24px); text-align: left; }

#page .resort-all-list .text-list > span {
  display: block;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: 1.38rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--dp-ink);
  background: none;
}

#page .resort-all-list .text-list p { display: none; }

#page .resort-all-list .text-list::after {
  content: "View resort  \2192";
  margin-top: auto;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.95rem;
  white-space: pre;
  color: var(--dp-primary);
}

#page .resort-loadmore { display: flex; width: max-content; margin: clamp(28px, 3vw, 40px) auto 0; }
#page .resort-not-found p { padding: 28px; border: 1.5px dashed var(--dp-line-strong); border-radius: var(--dp-radius); font-size: 1.05rem; color: var(--dp-ink-2); text-align: center; }

/* --------------------------------------------------------------------------
   Discovery Program page
   -------------------------------------------------------------------------- */

#page .booking-program { padding: var(--dp-section) 0 clamp(48px, 6vw, 80px); }
#page .program-booking-list { margin-top: clamp(28px, 3.4vw, 44px); }
#page .program-booking-list .container,
#page .how-it-works > .container { max-width: calc(var(--dp-container) + var(--dp-gutter) * 2); padding-inline: var(--dp-gutter); }
#page .program-booking-list .row { row-gap: 20px; }

#page .bok-hmt-block {
  position: relative;
  height: 100%;
  padding: 28px 26px 26px;
  border: 1px solid var(--dp-line);
  border-radius: var(--dp-radius);
  background: var(--dp-surface);
  text-align: left;
  transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s var(--dp-ease);
}

#page .bok-hmt-block:hover { border-color: transparent; box-shadow: var(--dp-shadow-2); transform: translateY(-3px); }
#page .program-booking-list .row { counter-reset: dp-plan; }
#page .program-booking-list .col-md-3 { counter-increment: dp-plan; }
#page .bok-hmt-block::after { content: "0" counter(dp-plan); position: absolute; right: 24px; top: 26px; font-family: var(--dp-display); font-size: 1.05rem; color: var(--dp-ink-3); }

#page .bok-hmt-img { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 0 22px; border-radius: var(--dp-radius-sm); background: var(--dp-primary-soft); }
#page .bok-hmt-img img { width: auto; max-width: 34px; max-height: 34px; }

#page .bok-hmt-tetx span {
  display: block;
  margin: 0 0 10px;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .bok-hmt-tetx p { margin: 0; font-size: 0.98rem; line-height: 1.6; color: var(--dp-ink-2); }
#page .program-booking-list .btn-outer { margin-top: clamp(28px, 3vw, 40px); text-align: left; }

#page .housekeeping-block { position: relative; padding: var(--dp-section) 0; isolation: isolate; background-color: var(--dp-dark); }
#page .housekeeping-block::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(9, 69, 65, 0.9); }
#page .housekeeping-block .heading-block span { color: #fff; }
#page .housekeeping-block .p-text-pg,
#page .housekeeping-block .p-text-pg p,
#page .housekeeping-block .p-text-pg li { color: var(--dp-dark-ink); }
#page .housekeeping-block .p-text-pg a { color: var(--dp-mint); }

#page .make-outer-block {
  position: relative;
  padding: var(--dp-section) 0;
  background-image: none !important;
  background-color: var(--dp-tint);
  color: var(--dp-ink);
}

#page .make-outer-block .heading-block span { color: var(--dp-ink); }
#page .make-outer-block .p-text-pg,
#page .make-outer-block .p-text-pg p { color: var(--dp-ink-2); }

#page .make-outer-block .p-text-pg span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 10px 28px 0 0;
  padding: 10px 18px 10px 12px;
  border: 1px solid var(--dp-line);
  border-radius: 999px;
  background: var(--dp-surface);
  font-weight: 700;
  font-size: 1rem;
  color: var(--dp-ink);
}

#page .make-outer-block .p-text-pg span i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--dp-primary); }
#page .make-outer-block .p-text-pg span i img { width: 14px; filter: brightness(0) invert(1); }

#page .make-outer-block .makereserv-form {
  max-width: calc(var(--dp-container) + var(--dp-gutter) * 2);
  margin: 28px auto 0;
  padding: 0 var(--dp-gutter);
}

#page .make-outer-block .makereserv-form > .purple-btn { background: var(--dp-primary); border-color: var(--dp-primary); color: #fff; }

/* Split rows (Welcome benefits, Program "Discover more") */
#page .how-it-works { padding: clamp(12px, 2vw, 24px) 0 clamp(48px, 6vw, 88px); }
#page .how-it-works .row { align-items: center; margin-bottom: clamp(40px, 6vw, 88px); }
#page .how-it-works .row:nth-of-type(even) .vehicleColRlt { order: -1; }

#page .how-tetx-block { max-width: 34rem; padding: 0 clamp(0px, 2vw, 24px); }

#page .how-tetx-block > span {
  display: block;
  margin: 0 0 12px;
  font-family: var(--dp-font);
  font-weight: 700;
  font-size: 0.76rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dp-eyebrow);
}

#page .how-tetx-block > span::before { display: none; }

#page .how-tetx-block h2 {
  margin: 0 0 16px;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .how-tetx-block h2:empty { display: none; }
#page .how-tetx-block p,
#page .how-tetx-block li { font-size: 1.05rem; line-height: 1.7; color: var(--dp-ink-2); }
#page .how-img-block { border-radius: var(--dp-radius); overflow: hidden; box-shadow: var(--dp-shadow-1); }
#page .how-img-block img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

@media (max-width: 767px) {
  #page .how-it-works .row:nth-of-type(even) .vehicleColRlt { order: 0; }
  #page .how-it-works .vehicleColRlt { margin-top: 24px; }
}

/* --------------------------------------------------------------------------
   Welcome page
   -------------------------------------------------------------------------- */

#page .dp-welcome-video { background: var(--dp-surface); border-bottom: 1px solid var(--dp-line); }
#page .dp-welcome-video .dp-lead p { margin: 0; }
#page .benefits-block { padding-top: var(--dp-section); }
#page .benefits-block > .heading-block { margin-bottom: clamp(16px, 2vw, 28px); }

#page .what-block {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(320px, 40vw, 480px);
  padding: 48px var(--dp-gutter);
  isolation: isolate;
}

#page .what-block::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--dp-scrim), 0.2), rgba(var(--dp-scrim), 0.55)); }

#page .what-block span {
  position: relative;
  max-width: 16ch;
  font-family: var(--dp-display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(2.4rem, 6vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  text-align: center;
  text-transform: none;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
}

#page .owner-block { padding: var(--dp-section) 0; }
#page .owner-block > .container,
#page .relive-block > .container { max-width: calc(var(--dp-container) + var(--dp-gutter) * 2); padding-inline: var(--dp-gutter); }

#page .owner-text-block h2,
#page .relive-text-block h3 {
  margin: 0 0 16px;
  font-family: var(--dp-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.4vw, 2.85rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--dp-ink);
}

#page .owner-text-block p { max-width: 46rem; font-size: 1.1rem; color: var(--dp-ink-2); }
#page .owner-list ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: clamp(12px, 1.6vw, 20px); margin: 28px 0 0; padding: 0; list-style: none; }
#page .owner-list li { margin: 0; border-radius: var(--dp-radius); overflow: hidden; }
#page .owner-list img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

#page .relive-block { padding: var(--dp-section) 0; background: var(--dp-tint); }
#page .relive-text-block h3:empty { display: none; }
#page .relive-text-block span { display: block; max-width: 28ch; margin-bottom: clamp(24px, 3vw, 40px); font-family: var(--dp-display); font-size: clamp(1.7rem, 3vw, 2.5rem); line-height: 1.12; letter-spacing: -0.02em; color: var(--dp-ink); }
#page .review-block .row { row-gap: 20px; }
#page .rev-hmt { height: 100%; padding: 0 0 22px; border: 1px solid var(--dp-line); border-radius: var(--dp-radius); background: var(--dp-surface); overflow: hidden; text-align: left; }
#page .rev-hmt .user-rev-img { margin: 0 0 18px; }
#page .rev-hmt .user-rev-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
#page .rev-hmt span { display: block; padding: 0 22px; font-family: var(--dp-display); font-weight: 400; font-size: 1.3rem; line-height: 1.2; color: var(--dp-ink); }
#page .rev-hmt p { padding: 8px 22px 0; font-size: 0.98rem; line-height: 1.6; color: var(--dp-ink-2); }
#page .rev-hmt .rd-more-btn:empty { display: none; }
#page .rev-hmt .rd-more-btn { display: inline-flex; margin: 8px 22px 0; font-weight: 700; color: var(--dp-primary); }

#page .benefits-block .how-it-works .container > .purple-btn { margin-top: 8px; }

/* --------------------------------------------------------------------------
   Discovery Package (Elementor page 1014) and other legacy pages
   -------------------------------------------------------------------------- */

body.page-id-1014 .elementor-1014 .elementor-element.elementor-element-29ee069:not(.elementor-motion-effects-element-type-background) { background-color: var(--dp-emerald); }

body.page-id-1014 .elementor-1014 .elementor-heading-title {
  font-family: var(--dp-display) !important;
  font-weight: 400 !important;
  letter-spacing: -0.015em !important;
  text-transform: none !important;
}

body.page-id-1014 .elementor-1014 .elementor-element.elementor-element-c04a0ef,
body.page-id-1014 .elementor-1014 .elementor-element.elementor-element-c04a0ef p,
body.page-id-1014 .elementor-1014 .elementor-element.elementor-element-c04a0ef li { color: var(--dp-ink-2) !important; }

body.page-id-1014 .elementor-1014 .elementor-element.elementor-element-c04a0ef a { color: var(--dp-primary) !important; }
body.page-id-1014 .elementor-1014 .elementor-button { border-radius: 999px !important; font-family: var(--dp-font) !important; text-transform: none !important; letter-spacing: 0.01em !important; }

#page .w-section.gray_bg,
#page .w-section.grey-sec { background: var(--dp-bg); }
#page .resort-availability-table table th { background: var(--dp-primary); color: #fff; }
#page .member-search { padding: clamp(40px, 5vw, 72px) 0; }

.dp-notfound { padding-block: clamp(80px, 12vw, 160px); }
.dp-notfound .dp-lead { margin-top: 16px; }
.dp-notfound__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }

#page .comment-respond .comment-reply-title { font-family: var(--dp-display); font-weight: 400; text-transform: none; color: var(--dp-ink); }

/* --------------------------------------------------------------------------
   Scroll reveal (only when JS runs and motion is allowed)
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .dp-js [data-dp-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s var(--dp-ease), transform 0.8s var(--dp-ease);
  }

  .dp-js [data-dp-reveal].is-visible { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .dp-ui *,
  .dp-ui *::before,
  .dp-ui *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}
