/* src/styles/hero-text-contrast.css */
/* Hero text contrast: scoped to bright photographic entry heroes only. */

.jp-entry-hero:has(.jp-hero__media img[src*="hbO183krbZW9SBc-tefmp-destination-apo-island-hero"]) {
  --jp-hero-contrast-overlay:
    linear-gradient(90deg, rgba(8, 20, 22, 0.52) 0%, rgba(8, 20, 22, 0.36) 38%, rgba(8, 20, 22, 0.08) 72%, transparent 100%),
    linear-gradient(0deg, rgba(8, 20, 22, 0.56) 0%, rgba(8, 20, 22, 0.3) 38%, rgba(8, 20, 22, 0.06) 70%, transparent 88%),
    rgba(8, 20, 22, 0.08);
}

:where(
  .jp-entry-hero:has(.jp-hero__media img[src*="iZqYZacd1AOw3_Vd5nXXx-destination-dauin-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Yo85g9XhBw57hW6E2hdf7-destination-dumaguete-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="IYywPqtLhFzwOhBxNNW2L-destination-lake-balanan-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AzoFtdgkcRt47OY8aXT_d-destination-najandig-peak-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AWNNpSB3ZfQwyHi9FfM7a-Pulangbato__Falls"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Z3vR2IvcKajkH0HLpM3Ii-dive-site-dauin-hero"])
) {
  --jp-hero-contrast-overlay:
    linear-gradient(90deg, rgba(8, 20, 22, 0.42) 0%, rgba(8, 20, 22, 0.3) 38%, rgba(8, 20, 22, 0.07) 70%, transparent 100%),
    linear-gradient(0deg, rgba(8, 20, 22, 0.46) 0%, rgba(8, 20, 22, 0.24) 38%, rgba(8, 20, 22, 0.04) 68%, transparent 86%),
    rgba(8, 20, 22, 0.12);
}

:where(
  .jp-entry-hero:has(.jp-hero__media img[src*="hbO183krbZW9SBc-tefmp-destination-apo-island-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="iZqYZacd1AOw3_Vd5nXXx-destination-dauin-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Yo85g9XhBw57hW6E2hdf7-destination-dumaguete-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="IYywPqtLhFzwOhBxNNW2L-destination-lake-balanan-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AzoFtdgkcRt47OY8aXT_d-destination-najandig-peak-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AWNNpSB3ZfQwyHi9FfM7a-Pulangbato__Falls"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Z3vR2IvcKajkH0HLpM3Ii-dive-site-dauin-hero"])
) .jp-hero__media::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: var(--jp-hero-contrast-overlay);
}

:where(
  .jp-entry-hero:has(.jp-hero__media img[src*="hbO183krbZW9SBc-tefmp-destination-apo-island-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="iZqYZacd1AOw3_Vd5nXXx-destination-dauin-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Yo85g9XhBw57hW6E2hdf7-destination-dumaguete-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="IYywPqtLhFzwOhBxNNW2L-destination-lake-balanan-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AzoFtdgkcRt47OY8aXT_d-destination-najandig-peak-hero"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="AWNNpSB3ZfQwyHi9FfM7a-Pulangbato__Falls"]),
  .jp-entry-hero:has(.jp-hero__media img[src*="Z3vR2IvcKajkH0HLpM3Ii-dive-site-dauin-hero"])
) .jp-hero__content {
  z-index: 2;
}

@media (max-width: 48rem) {
  .jp-entry-hero:has(.jp-hero__media img[src*="hbO183krbZW9SBc-tefmp-destination-apo-island-hero"]) {
    --jp-hero-contrast-overlay:
      linear-gradient(90deg, rgba(8, 20, 22, 0.5) 0%, rgba(8, 20, 22, 0.38) 72%, rgba(8, 20, 22, 0.1) 100%),
      linear-gradient(0deg, rgba(8, 20, 22, 0.6) 0%, rgba(8, 20, 22, 0.36) 46%, rgba(8, 20, 22, 0.06) 76%, transparent 92%),
      rgba(8, 20, 22, 0.1);
  }
}

/* Valencia market hero: stronger lower-left contrast without flattening the full image. */
.jp-entry-hero:has(.jp-hero__media img[src*="qpYEP-vUXV1d4L0L8OHqK-Valencia-1"]) {
  --jp-hero-contrast-overlay:
    linear-gradient(90deg, rgba(8, 20, 22, 0.5) 0%, rgba(8, 20, 22, 0.34) 38%, rgba(8, 20, 22, 0.08) 70%, transparent 100%),
    linear-gradient(0deg, rgba(8, 20, 22, 0.58) 0%, rgba(8, 20, 22, 0.31) 40%, rgba(8, 20, 22, 0.05) 70%, transparent 88%),
    rgba(8, 20, 22, 0.08);
}

.jp-entry-hero:has(.jp-hero__media img[src*="qpYEP-vUXV1d4L0L8OHqK-Valencia-1"]) .jp-hero__media::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: var(--jp-hero-contrast-overlay);
}

.jp-entry-hero:has(.jp-hero__media img[src*="qpYEP-vUXV1d4L0L8OHqK-Valencia-1"]) .jp-hero__content {
  z-index: 2;
}

@media (max-width: 48rem) {
  .jp-entry-hero:has(.jp-hero__media img[src*="qpYEP-vUXV1d4L0L8OHqK-Valencia-1"]) {
    --jp-hero-contrast-overlay:
      linear-gradient(90deg, rgba(8, 20, 22, 0.54) 0%, rgba(8, 20, 22, 0.4) 70%, rgba(8, 20, 22, 0.1) 100%),
      linear-gradient(0deg, rgba(8, 20, 22, 0.64) 0%, rgba(8, 20, 22, 0.38) 46%, rgba(8, 20, 22, 0.07) 76%, transparent 92%),
      rgba(8, 20, 22, 0.1);
  }
}

/* Keep photographic entry hero labels on the approved brand accent in every theme. */
:where(.jp-entry-hero, .jp-house-intro) .jp-eyebrow {
  color: #c8a26a !important;
}


/* src/styles/home-preview-light-header.css */
/* Home Preview hero/header contrast only. Scoped to the Home page in Instatic. */
html:has(.jp-home-hero) .jp-header:not([data-jp-scrolled="true"]) {
  background: linear-gradient(
    180deg,
    rgba(8, 20, 22, 0.72) 0%,
    rgba(8, 20, 22, 0.42) 62%,
    rgba(8, 20, 22, 0) 100%
  );
}
html:has(.jp-home-hero) .jp-header.jp-header:not([data-jp-scrolled="true"]) .jp-header__logo.jp-header__logo--light {
  display: none !important;
}
html:has(.jp-home-hero) .jp-header.jp-header:not([data-jp-scrolled="true"]) .jp-header__logo.jp-header__logo--dark {
  display: block !important;
  filter: drop-shadow(0 1px 2px rgba(8, 20, 22, 0.72));
}
html:has(.jp-home-hero) .jp-header:not([data-jp-scrolled="true"]) .jp-mega-nav__trigger,
html:has(.jp-home-hero) .jp-header:not([data-jp-scrolled="true"]) .jp-header__nav > a:not(.jp-header__cta) {
  color: #fffefd !important;
  text-shadow: 0 1px 2px rgba(8, 20, 22, 0.72);
}
html:has(.jp-home-hero) .jp-header:not([data-jp-scrolled="true"]) .jp-header__cta {
  color: #c8a26a !important;
  border-color: #c8a26a !important;
  background: rgba(8, 20, 22, 0.28);
  text-shadow: 0 1px 2px rgba(8, 20, 22, 0.72);
}
html:has(.jp-home-hero) .jp-header:not([data-jp-scrolled="true"]) .jp-header__toggle-bar {
  background: #fffefd !important;
  box-shadow: 0 1px 2px rgba(8, 20, 22, 0.72);
}
.jp-home-hero .jp-eyebrow {
  color: #c8a26a !important;
  text-shadow:
    0 1px 2px rgba(8, 20, 22, 0.9),
    0 0 10px rgba(8, 20, 22, 0.72);
}


/* src/styles/jp2-experience.css */
/* Joshua's Point 2.0 — unpublished draft visual system.
   Extends the approved site without changing content or routing. */

/* The entire enhancement layer is opt-in. The companion script never adds this
   attribute on `/`, so Coming Soon remains visually and functionally isolated. */
html[data-jp2-experience]{
  --jp2-radius-sm:.35rem;
  --jp2-radius-md:.65rem;
  --jp2-radius-lg:1rem;
  --jp2-line:color-mix(in srgb,currentColor 14%,transparent);
  --jp2-line-strong:color-mix(in srgb,currentColor 24%,transparent);
  --jp2-surface:color-mix(in srgb,currentColor 3%,transparent);
  --jp2-surface-strong:color-mix(in srgb,currentColor 6%,transparent);
  --jp2-shadow:0 1.2rem 3.2rem color-mix(in srgb,#0b2723 10%,transparent);
  --jp2-focus:#b4743f;
  --jp2-ease:cubic-bezier(.22,1,.36,1);
  --jp2-section:clamp(4rem,8vw,8rem);
  --jp2-section-compact:clamp(2.75rem,5vw,5rem);

&{scroll-behavior:smooth;scroll-padding-top:7rem;overflow-x:clip}
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:clip}
main{isolation:isolate}
main>section,main>article{scroll-margin-top:7rem}
main :where(h1,h2,h3){text-wrap:balance}
main :where(p,li,dd){text-wrap:pretty}
main :where(h2,h3){max-width:22ch}
main :where(p){max-width:70ch}

/* Calm, consistent editorial rhythm. */
main>section:not(.jp-home-hero):not(.jp-entry-hero):not(.jp-hero),
main>article{padding-block:var(--jp2-section)}
main>section+section{border-top:1px solid var(--jp2-line)}
.jp-container{width:min(100% - clamp(2rem,7vw,8rem),76rem);margin-inline:auto}
.jp-container--wide{width:min(100% - clamp(2rem,5vw,6rem),88rem)}
.jp-eyebrow{letter-spacing:.13em;line-height:1.25}

/* Media behaves like editorial photography, never like interface chrome. */
main :where(figure,.jp-media,.jp-image-wrap){position:relative;overflow:hidden;border-radius:var(--jp2-radius-sm)}
main :where(figure,.jp-media,.jp-image-wrap)>:where(img,video){display:block;width:100%;height:auto}
main figure figcaption,.jp-caption{margin-top:.7rem;font-size:.78rem;line-height:1.5;opacity:.68}
main img{background:var(--jp2-surface)}
.jp-home-hero,.jp-entry-hero,.jp-hero{overflow:hidden}
.jp-home-hero img,.jp-entry-hero img,.jp-hero img{border-radius:0}

/* Cards: quieter edges, clearer hierarchy, restrained interaction. */
:where(.jp-listing-card,.jp-related-link,.jp-route-card,.jp-destination-card,.jp-room-card){
  border-radius:var(--jp2-radius-md);
  border-color:var(--jp2-line)!important;
  box-shadow:none;
  overflow:hidden;
  transition:transform 260ms var(--jp2-ease),border-color 220ms ease,box-shadow 260ms var(--jp2-ease);
}
@media(hover:hover) and (pointer:fine){
  :where(.jp-listing-card,.jp-related-link,.jp-route-card,.jp-destination-card,.jp-room-card):hover{
    transform:translateY(-3px);
    border-color:var(--jp2-line-strong)!important;
    box-shadow:var(--jp2-shadow);
  }
}

/* Calls to action stay invitational but unmistakable. */
main :where(.jp-button,button[type="submit"],a[class*="button"],a[class*="cta"]){
  min-height:3rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  border-radius:999px;
  line-height:1.15;
  transition:transform 200ms var(--jp2-ease),background-color 200ms ease,color 200ms ease,border-color 200ms ease;
}
@media(hover:hover) and (pointer:fine){
  main :where(.jp-button,button[type="submit"],a[class*="button"],a[class*="cta"]):hover{transform:translateY(-1px)}
}

/* Forms and calendars remain functional first. */
main :where(input,select,textarea,button){font:inherit}
main :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  min-height:3rem;
  border-radius:var(--jp2-radius-sm);
  border-color:var(--jp2-line-strong);
}
main textarea{min-height:8rem;resize:vertical}
#jp-availability button{min-width:2.65rem;min-height:2.65rem;border-radius:999px}
#jp-availability :where(h2,h3){max-width:none}
.jp-guest-weather{border:1px solid var(--jp2-line);border-radius:var(--jp2-radius-md);padding:clamp(1rem,2vw,1.5rem);background:var(--jp2-surface)}
.jp-guest-weather dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}

/* Guide and Explorer form one connected, readable system. */
.jp2-breadcrumbs{margin-bottom:clamp(1rem,2vw,1.5rem)}
.jp2-ecosystem-nav{background:var(--jp2-surface)}
.jp2-ecosystem-links a{min-height:2.75rem;display:inline-flex;align-items:center}
.jp-related-section,.jp-route-related-list{scroll-margin-top:7rem}
.jp-map-container,.maplibregl-map{border-radius:var(--jp2-radius-md);overflow:hidden}
.maplibregl-ctrl button{min-width:2.75rem;min-height:2.75rem}

/* Custom icon language: line work remains subordinate to words. */
.jp-icon{width:1.35rem!important;height:1.35rem!important;flex:0 0 1.35rem!important;opacity:.78!important}
.jp-icon svg{stroke-width:1.45!important}
.jp-icon-label{gap:.55rem!important}
.jp-amenities{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.85rem 1.25rem!important;margin-top:1.5rem!important}
.jp-amenities li{min-height:2.75rem;padding:.7rem .8rem;border:1px solid var(--jp2-line);border-radius:var(--jp2-radius-sm);background:var(--jp2-surface)}
.jp-amenities .jp-icon{width:1.45rem!important;height:1.45rem!important;flex-basis:1.45rem!important}

/* Keyboard access is visible in both themes without changing pointer presentation. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid color-mix(in srgb,var(--jp2-focus) 78%,white);
  outline-offset:3px;
  box-shadow:0 0 0 1px color-mix(in srgb,#102e2a 45%,transparent);
}
.jp-skip-link:focus,.skip-link:focus,[href="#main-content"]:focus{z-index:9999}

/* Mobile 2.0: less density, larger targets, no clipped editorial content. */
@media(max-width:47.99rem){
  &{--jp2-section:clamp(3.25rem,13vw,5rem);--jp2-section-compact:clamp(2.4rem,9vw,3.5rem);scroll-padding-top:5.5rem}
  main>section,main>article{scroll-margin-top:5.5rem}
  .jp-container,.jp-container--wide{width:min(100% - 2rem,76rem)}
  main :where(h1){max-width:15ch}
  main :where(h2){max-width:19ch}
  :where(.jp-header button,.jp-header a,.jp-mobile-nav button,.jp-mobile-nav a){min-width:2.75rem;min-height:2.75rem}
  .jp-guest-weather dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}
  .jp2-ecosystem-links{display:grid!important;grid-template-columns:1fr 1fr!important;gap:.25rem 1rem!important}
  .jp2-ecosystem-links a{min-height:2.85rem}
  .jp-amenities{grid-template-columns:1fr 1fr!important;gap:.65rem!important}
  .jp-amenities li{font-size:.84rem;padding:.65rem}
  main :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea,button[type="submit"]){font-size:1rem}
  #jp-availability{overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  #jp-availability button{min-width:2.75rem;min-height:2.75rem}
  .maplibregl-ctrl button{min-width:3rem;min-height:3rem}
}
@media(max-width:24.4rem){
  .jp-container,.jp-container--wide{width:min(100% - 1.5rem,76rem)}
  .jp-amenities,.jp2-ecosystem-links{grid-template-columns:1fr!important}
}

/* Dark mode uses the same hierarchy, with quieter elevation. */
&:where([data-theme="dark"],.dark){
  --jp2-line:color-mix(in srgb,white 16%,transparent);
  --jp2-line-strong:color-mix(in srgb,white 28%,transparent);
  --jp2-surface:color-mix(in srgb,white 4%,transparent);
  --jp2-surface-strong:color-mix(in srgb,white 7%,transparent);
  --jp2-shadow:0 1.2rem 3.2rem rgba(0,0,0,.26);
  --jp2-focus:#e0ae7d;
}

/* Motion is never required to understand or operate the page. */
@media(prefers-reduced-motion:reduce){
  &{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
}


/* Keep Instatic Builder gallery loops layout-transparent so the approved responsive grid owns presentation. */
.jp-entry-gallery .jp-gallery-grid > [data-instatic-loop]{display:contents}

/* src/styles/performance-remediation.css */
:root:not([data-theme="dark"]) .jp-eyebrow{color:#76582d}.jp-footer__col-title{opacity:.65}.jp-coming-soon a[href="/privacy"],.jp-consent-text a[href="/privacy"]{text-decoration:underline;text-underline-offset:.18em}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid currentColor;outline-offset:3px}.jp-explorer__map{contain:layout paint;contain-intrinsic-size:720px 640px}.jp-explorer__marker{min-width:36px;min-height:36px}.maplibregl-ctrl-attrib a[target="_blank"]{text-decoration:underline}@media(max-width:20rem){.jp-col-5,.jp-col-7,.jp-media-placeholder,.jp-guide-preview{min-width:0!important;width:100%!important}.jp-avail-month,.jp-avail-grid,.jp-calendar-grid{min-width:0!important;width:100%!important}.jp-info-list>div,.jp-facts-row{grid-template-columns:minmax(0,1fr)!}}@media(max-width:20rem){.jp-info-list dd{min-width:0;overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}@media(max-width:48rem){.jp-container,.jp-col-5,.jp-col-7,.jp-media-placeholder,.jp-guide-preview{min-width:0!important;max-width:100%!important}.jp-container{width:calc(100% - 48px)!important}.jp-grid>.jp-col-5,.jp-grid>.jp-col-7{width:100%!important}.jp-footer__inner{width:calc(100% - 48px)!important;min-width:0!important}.jp-footer__grid,.jp-footer__col{min-width:0!important;max-width:100%!important}.jp-gate{width:calc(100% - 32px)!important;max-width:calc(100% - 32px)!important;min-width:0!important}.jp-gate__top,.jp-gate__hero,.jp-gate__title-block,.jp-gate__intro{width:100%!important;min-width:0!important}.jp-avail-month,.jp-avail-grid,.jp-calendar-grid{min-width:0!important;max-width:100%!important;width:100%!important}}html{-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}/* Mobile production regression pass: shared logo, contrast, long-title and edge-safe content fixes. */.jp-header__logo--light{display:block!important}.jp-header__logo--dark{display:none!important}:root[data-theme="light"] .jp-header__logo--light{display:block!important}:root[data-theme="light"] .jp-header__logo--dark{display:none!important}:root[data-theme="dark"] .jp-header__logo--light{display:none!important}:root[data-theme="dark"] .jp-header__logo--dark{display:block!important}@media(prefers-color-scheme:dark){:root:not([data-theme]) .jp-header__logo--light{display:none!important}:root:not([data-theme]) .jp-header__logo--dark{display:block!important}}.jp-arrival-editorial .jp-heading-h2{color:var(--linen)!important}.jp-arrival-editorial .jp-eyebrow{color:var(--timber)!important}@media(max-width:47.99rem){.jp-entry-hero .jp-heading-display.jp2-long-title{font-size:clamp(2.35rem,11.25vw,4.75rem)!important;line-height:.96;overflow-wrap:normal;word-break:normal;hyphens:none}.jp-prelaunch-related-section{box-sizing:border-box;width:100%;max-width:100%;padding-inline:1.5rem}.jp-prelaunch-related-section .jp-related-grid,.jp-prelaunch-related-section .jp-related-link,.jp-prelaunch-related-section .jp-related-link span{box-sizing:border-box;min-width:0;max-width:100%}.jp-prelaunch-related-section .jp-related-link span{padding-inline:.05rem}.jp-prelaunch-related-section strong,.jp-prelaunch-related-section small{min-width:0;overflow-wrap:anywhere}}@media(max-width:47.99rem){html body .jp-header .jp-header__inner{flex-wrap:nowrap!important;column-gap:1rem!important;align-items:center!important}html body .jp-header .jp-header__toggle{flex:0 0 auto!important;margin-left:auto!important}}The transparent logo asset is now correct, but the dark-mode/header variant has insufficient contrast.
Fix the shared header logo variants before publishing.
Requirements:
- Keep the exact original Joshua’s Point artwork.
- Preserve transparency.
- Light header/light theme: use the dark original logo.
- Dark header/dark theme: use a white/light version of the same logo artwork.
- Do not change geometry, crop, or composition.
- Do not add a background rectangle.
- Keep the full jp, mountain line, JOSHUA’S POINT, and tagline visible.
- Preserve current responsive sizing.
Verify in draft at:
- 375px
- 390px
- 1440px
- light mode
- dark mode
Check visually:
- logo clearly readable on both backgrounds
- tagline visible
- no clipping
- no background box
- hamburger aligned
- no overflow
Do not publish until both variants are visually confirmed.
Finish with:
LIGHT/DARK TRANSPARENT LOGO — READY FOR REVIEW

/* src/styles/photography-visibility.css */
/* Optional editorial photography: empty media and gallery regions collapse without placeholders. */
.jp-hero-placeholder:empty {
  display: none !important;
}
.jp-media-placeholder:empty {
  display: none !important;
}
.jp-listing-card__media:empty {
  display: none !important;
}
.jp-entry-gallery:not(:has(img[src])) {
  display: none !important;
}
/* Destination credits bind the editable value only; empty values collapse cleanly. */
.jp-photo-credit-value-only:empty {
  display: none !important;
}
/* Credits are meaningful only when this entry has real hero, section, or gallery media. */
body:not(:has(.jp-hero-placeholder img[src], .jp-media-placeholder img[src], .jp-entry-gallery img[src])) .jp-photo-credit {
  display: none !important;
}
/* Builder entries without featured media use a compact text-only hero. */
.jp-entry-hero:not(:has(.jp-hero__media img[src])) {
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
}
.jp-entry-hero:not(:has(.jp-hero__media img[src])) .jp-hero__media {
  display: none !important;
}
.jp-entry-hero:not(:has(.jp-hero__media img[src])) .jp-hero__content {
  min-height: 0 !important;
  position: relative !important;
}
/* Destination is a fixed content-type label; keep the existing card presentation. */
a.jp-related-link[href^="/destinations/"] .jp-related-link__context {
  font-size: 0 !important;
}
a.jp-related-link[href^="/destinations/"] .jp-related-link__context::after {
  content: "DESTINATION";
  font-size: 12px;
  line-height: 18px;
  letter-spacing: 1.44px;
}


/* src/styles/site-icons.css */
.jp-icon-label{display:inline-flex!important;align-items:center;gap:.45rem}.jp-icon{width:1rem;height:1rem;flex:0 0 auto;color:currentColor;opacity:.72}.jp-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.jp-amenities{display:flex;flex-wrap:wrap;gap:.65rem 1.1rem;margin:1.25rem 0 0;padding:0;list-style:none}.jp-amenities li{display:inline-flex;align-items:center;gap:.5rem;color:inherit;font-size:.88rem;line-height:1.35}.jp-amenities .jp-icon{width:1.05rem;height:1.05rem}@media(max-width:560px){.jp-amenities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.jp-amenities li{min-width:0}.jp-icon-label{gap:.4rem}}@media(prefers-reduced-motion:reduce){.jp-icon,.jp-icon-label{transition:none!important}}
/* Match the approved legacy header scale while preserving the 10:3 wordmark ratio. */
.jp-header__logo{height:3rem!important;width:auto!important;max-width:none!important}
@media(min-width:30rem){.jp-header__logo{height:2.85rem!important}}
@media(min-width:40rem){.jp-header__logo{height:3.75rem!important}}
@media(min-width:48rem){.jp-header__logo{height:4.05rem!important}}
@media(min-width:64rem){.jp-header__logo{height:4.425rem!important}}
@media(min-width:80rem){.jp-header__logo{height:4.8rem!important}}
.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:inherit!important}
@media(min-width:30rem){.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:2.85rem!important}}
@media(min-width:40rem){.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:3.75rem!important}}
@media(min-width:48rem){.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:4.05rem!important}}
@media(min-width:64rem){.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:4.425rem!important}}
@media(min-width:80rem){.jp-header[data-jp-scrolled="true"] .jp-header__logo{height:4.8rem!important}}

/* Site-wide icon scale refinement: keep icons supportive and compact. */
.jp-icon-label{display:inline-flex!important;align-items:center!important;gap:.55rem!important}
.jp-icon{display:inline-flex!important;align-items:center;justify-content:center;width:clamp(2.5rem,3vw,3rem)!important;height:clamp(2.5rem,3vw,3rem)!important;flex:0 0 clamp(2.5rem,3vw,3rem)!important;line-height:1}
.jp-icon svg{display:block;width:100%!important;height:100%!important}
.jp-amenities li{align-items:center;gap:.55rem}
.jp-amenities .jp-icon{width:2.5rem!important;height:2.5rem!important;flex-basis:2.5rem!important}
@media(max-width:47.99rem){.jp-icon-label{gap:.5rem!important}.jp-icon{width:2.5rem!important;height:2.5rem!important;flex-basis:2.5rem!important}.jp-amenities{gap:.65rem 1rem}.jp-amenities .jp-icon{width:2.5rem!important;height:2.5rem!important;flex-basis:2.5rem!important}}


/* src/styles/entry-mobile-fix.css */
@media (max-width:47.99rem){
  .jp-entry-editorial .jp-grid{grid-template-columns:minmax(0,1fr)!important}
  .jp-entry-editorial .jp-grid>.jp-col-7,.jp-entry-editorial .jp-grid>.jp-col-5{width:100%!important;max-width:100%!important;min-width:0!important;grid-column:1/-1!important}
  .jp-listing-hero .jp-heading-display{font-size:clamp(2.75rem,14vw,3.35rem);overflow-wrap:normal;word-break:normal;hyphens:none}
}
/* Shared header geometry: render the complete source artwork at its natural 10:3 ratio. */
.jp-header{overflow:visible}
.jp-header__inner{box-sizing:border-box;overflow:visible}
.jp-header__brand{display:flex;align-items:center;flex:0 0 16rem;width:16rem;height:auto;min-width:0;min-height:0;max-width:none;max-height:none;aspect-ratio:auto;line-height:0;overflow:visible}
.jp-header .jp-header__logo,.jp-header[data-jp-scrolled="true"] .jp-header__logo{display:block;width:100%!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:left center!important;clip-path:none!important;transform:none!important;overflow:visible!important}
.jp-header__toggle{flex:0 0 auto;min-width:44px;min-height:44px}
@media(max-width:47.99rem){
  .jp-header{min-height:5rem;height:auto!important;overflow:visible}
  .jp-header__inner,.jp-header[data-jp-scrolled="true"] .jp-header__inner{height:5rem!important;min-height:5rem!important;padding-top:0!important;padding-bottom:0!important;overflow:visible}
  .jp-header__brand{flex:0 0 12.5rem;width:12.5rem;height:auto;min-width:0;min-height:0;max-width:none;max-height:none;aspect-ratio:auto}
}
/* Mobile story media: remove inherited container gutters while keeping copy safely inset. */
@media(max-width:47.99rem){
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img){width:100%!important;max-width:none!important;margin-inline:0!important;padding-inline:0!important}
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img)>.jp-col-7{width:100%!important;max-width:none!important;min-width:0!important;margin-inline:0!important;padding-inline:0!important;grid-column:1/-1!important}
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img)>.jp-col-7 .jp-figure,
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img)>.jp-col-7 .jp-media-placeholder{width:100%!important;max-width:none!important;margin-inline:0!important}
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img)>.jp-col-7 img{display:block;width:100%!important;max-width:none!important;object-fit:cover}
  .jp-story>.jp-container.jp-grid:has(>.jp-col-7 img)>.jp-col-5{box-sizing:border-box;width:100%!important;max-width:none!important;min-width:0!important;padding-inline:1.5rem;grid-column:1/-1!important}
}

/* QA Priority 2: mobile stories and Getting Here must never retain desktop track widths. */
body:has(.jp-travel-modes) main [data-reveal][data-motion-state="pending"]{opacity:1!important;transform:none!important;visibility:visible!important}
@media(max-width:47.99rem){
  .jp-story>.jp-container.jp-grid,.jp-travel-modes>.jp-container.jp-grid{display:block!important;width:100%!important;max-width:none!important;margin-inline:0!important;padding-inline:0!important}
  .jp-story>.jp-container.jp-grid>.jp-col-5,.jp-story>.jp-container.jp-grid>.jp-col-7,.jp-travel-modes>.jp-container.jp-grid>.jp-col-5{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important;margin-inline:0!important;grid-column:auto!important}
  .jp-story>.jp-container.jp-grid>.jp-col-5,.jp-travel-modes>.jp-container.jp-grid>.jp-col-5{padding-inline:1.5rem!important}
  .jp-story>.jp-container.jp-grid>.jp-col-7{padding-inline:0!important}
  .jp-story>.jp-container.jp-grid>.jp-col-7 .jp-figure,.jp-story>.jp-container.jp-grid>.jp-col-7 .jp-media-placeholder,.jp-story>.jp-container.jp-grid>.jp-col-7 img,.jp-guide-preview{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important}
  .jp-story :is(h1,h2,h3,p,a),.jp-travel-modes :is(h1,h2,h3,p,a){max-width:100%!important;overflow-wrap:anywhere;word-break:normal}
}


/* QA Priority 3: narrow responsive polish. */
.jp-listing-section{padding-bottom:clamp(1.5rem,3vw,3rem)!important}
.jp-listing-section+.jp2-ecosystem-nav{margin-top:0!important}
.jp-support-closing[data-motion-state="pending"]{opacity:1!important;transform:none!important;visibility:visible!important}
@media(min-width:48rem) and (max-width:63.99rem){
  .jp-rooms-garden-heading{font-size:3.5rem!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
}
@media(max-width:47.99rem){
  .jp-contact-editorial a[href^="mailto:"]{font-size:clamp(1.75rem,8vw,2rem)!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;white-space:nowrap}
}


/* src/styles/global-contrast-footer-spacing.css */
/* Public-site-only draft: Guest Book has no jp-header and inherits none of these changes. */
body:has(.jp-header){--jp-readable-label:#4b5a52;--jp-action-gold:#76582d;--jp-action-hover:#65491f;--jp-action-on-fill:#fffefd}
:root[data-theme="dark"] body:has(.jp-header){--jp-readable-label:#b7b0a6;--jp-action-gold:#c8a26a;--jp-action-hover:#dbc39e;--jp-action-on-fill:#282828}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) body:has(.jp-header){--jp-readable-label:#b7b0a6;--jp-action-gold:#c8a26a;--jp-action-hover:#dbc39e;--jp-action-on-fill:#282828}}
body:has(.jp-header) :is(.jp-facts-panel dt,.jp-rooms-garden-facts dt,.jp-info-list dt,.jp-weather__stat dt,.jp-weather__attribution){color:var(--jp-readable-label)}
body:has(.jp-header) :is(.jp-link,.jp-btn--quiet,.jp-weather__attribution a,.jp-related-list a){color:var(--jp-action-gold)}
body:has(.jp-header) .jp-btn--quiet{border-color:var(--jp-action-gold)}
body:has(.jp-header) :is(.jp-link,.jp-weather__attribution a,.jp-related-list a):is(:hover,:focus-visible){color:var(--jp-action-hover);text-decoration-thickness:2px}
body:has(.jp-header) .jp-btn--quiet:is(:hover,:focus-visible){background:var(--jp-action-gold);color:var(--jp-action-on-fill);border-color:var(--jp-action-gold)}
body:has(.jp-header) :is(.jp-link,.jp-btn--quiet,.jp-related-list a):focus-visible{outline:2px solid var(--jp-action-gold);outline-offset:4px}
body:has(.jp-header) :is(.jp-step-num,.jp-explorer-kicker){color:var(--jp-action-gold)}
body:has(.jp-header) :is(.jp-hero,.jp-entry-gallery,.jp-arrival-editorial,.jp-home-closing){--jp-action-gold:#c8a26a;--jp-action-hover:#dbc39e;--jp-action-on-fill:#282828}
body:has(.jp-header) .jp-footer .jp-footer__logo{display:block;width:clamp(240px,22.23vw,320px);height:auto;max-width:100%;aspect-ratio:10/3;contain-intrinsic-size:none;object-fit:contain;object-position:left center;transform:none;clip-path:none}
body:has(.jp-header) .jp-footer__brand-block>a{display:block;width:fit-content;max-width:100%;line-height:0;overflow:visible}
body:has(.jp-header) .jp-footer__statement{margin-top:24px}
@media(max-width:47.99rem){
 body:has(.jp-header) .jp-container:not(.jp-header__inner){width:100%!important;box-sizing:border-box}
 body:has(.jp-header) .jp-footer__inner{width:100%!important;padding-inline:24px}
 body:has(.jp-header) .jp-facts-panel{padding:16px}
 body:has(.jp-header) .jp-facts-panel .maplibregl-ctrl-bottom-right{left:6px;right:6px;bottom:6px}
 body:has(.jp-header) .jp-facts-panel .maplibregl-ctrl-attrib{float:none;margin:0;max-width:100%;font-size:11px;line-height:1.35;box-sizing:border-box}
 body:has(.jp-header) .jp-facts-panel .maplibregl-ctrl-attrib-inner{white-space:normal;overflow-wrap:normal;padding-right:20px}
}
/* Non-image-led pauses only; all image-led section geometry is untouched. */
body:has(.jp-header) :is(.jp-rooms-collection,.jp-rooms-closing){padding-block:clamp(4rem,7vw,7rem)}
/* Standalone public Coming Soon shell. */
body:has(.jp-coming-soon) :is(.jp-header,.jp-footer,.jp-theme-fab,.jp-theme-toggle){display:none!important}


/* src/styles/plan-simplification.css */
/* Opt-in Plan Your Stay simplification. No public publication yet. */
body:has(.jp-plan-intro) :is(.jp-plan-intro,.jp-plan-availability,.jp-plan-form-section,.jp-plan-facts-section,.jp-plan-guide,.jp-plan-steps-section,.jp-plan-payment,.jp-plan-closing){min-height:0;padding-block:clamp(2.5rem,5vw,4rem)}
body:has(.jp-plan-intro) .jp-plan-intro{padding-top:clamp(3rem,6vw,5rem);display:block;overflow:visible}
body:has(.jp-plan-intro) .jp-plan-intro::after{display:none}
body:has(.jp-plan-intro) main .jp-container{max-width:64rem;margin-inline:auto}
body:has(.jp-plan-intro) .jp-plan-title{font-size:clamp(2.75rem,6vw,4.5rem);line-height:1.02;max-width:none;margin-bottom:1rem}
body:has(.jp-plan-intro) :is(.jp-plan-section-heading,.jp-plan-form-heading,.jp-plan-facts-heading,.jp-plan-guide-heading,.jp-plan-steps-heading,.jp-plan-payment-heading){font-size:clamp(1.85rem,3.5vw,2.75rem);line-height:1.12;max-width:26ch;margin-bottom:1.25rem}
body:has(.jp-plan-intro) .jp-plan-section-lead{font-size:1rem;line-height:1.6;margin-bottom:1.5rem;max-width:44rem}
body:has(.jp-plan-intro) .jp-plan-calendar{padding:1rem 0;box-shadow:none;background:transparent;max-width:48rem;margin-inline:auto}
body:has(.jp-plan-intro) .jp-plan-form-section{padding-top:0}
body:has(.jp-plan-intro) .jp-plan-form{max-width:48rem;margin-inline:0;padding:clamp(1rem,3vw,2rem);gap:.75rem}
body:has(.jp-plan-intro) .jp-plan-privacy-note{font-size:.875rem;line-height:1.5;color:var(--jp-readable-label);grid-column:1/-1;margin:0}
body:has(.jp-plan-intro) .jp-plan-facts-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem 2rem;margin:0;padding-top:1.25rem}
body:has(.jp-plan-intro) .jp-plan-facts-list>div{display:block;min-width:0;padding:0;border:0}
body:has(.jp-plan-intro) .jp-plan-facts-list dt{font-size:.875rem;margin:0 0 .35rem}
body:has(.jp-plan-intro) .jp-plan-facts-list dd{font-family:var(--font-body);font-size:1rem;line-height:1.5;margin:0;overflow-wrap:normal}
body:has(.jp-plan-intro) .jp-plan-before-list{max-width:50rem;margin:0 0 1.25rem;padding-left:1.2rem;font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--page-fg)}
body:has(.jp-plan-intro) .jp-plan-before-list li+li{margin-top:.6rem}
body:has(.jp-plan-intro) .jp-plan-guide-inner .jp-body-text{margin:0;max-width:50rem;line-height:1.6}
body:has(.jp-plan-intro) .jp-plan-steps-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:0}
body:has(.jp-plan-intro) .jp-plan-steps-list li{min-height:0;padding-top:1rem}
body:has(.jp-plan-intro) .jp-plan-steps-list h3{font-size:1.4rem;line-height:1.2;margin-bottom:.75rem}
body:has(.jp-plan-intro) .jp-plan-steps-list .jp-body-text{font-size:1rem;line-height:1.6;margin:0}
body:has(.jp-plan-intro) .jp-plan-payment .jp-body-text{max-width:48rem;line-height:1.6;margin-bottom:1rem}
body:has(.jp-plan-intro) .jp-plan-closing{background:var(--page-bg);padding-top:2rem}
.jp-plan-reference-links{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--divider)}
.jp-plan-reference-links a{display:inline-flex;align-items:center;gap:.6rem;min-height:44px}
/* Shared compact weather: opt-in through the title class, no extra integration. */
.jp-weather:has(>.jp-weather-compact__title){margin:0;padding:0;border:0;display:grid;grid-template-columns:minmax(10rem,1fr) auto;gap:.5rem 1.5rem;align-items:center;color:var(--page-fg)}
.jp-weather:has(>.jp-weather-compact__title)[hidden]{display:none}
.jp-weather-compact__title{font-family:var(--font-body);font-size:.9375rem;line-height:1.5;font-weight:500;margin:0}
.jp-weather:has(>.jp-weather-compact__title) .jp-weather__grid{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding:0}
.jp-weather:has(>.jp-weather-compact__title) .jp-weather__stat{gap:.1rem}
.jp-weather:has(>.jp-weather-compact__title) .jp-weather__stat dt{font-size:.8125rem;line-height:1.5;color:var(--jp-readable-label,var(--page-fg))}
.jp-weather:has(>.jp-weather-compact__title) .jp-weather__stat dd{font-size:.9375rem;line-height:1.5;font-weight:500}
.jp-weather:has(>.jp-weather-compact__title) .jp-weather__attribution{grid-column:1/-1;font-size:.75rem;line-height:1.5;margin:0;color:var(--jp-readable-label,var(--page-fg))}
@media(max-width:47.99rem){
 body:has(.jp-plan-intro) main .jp-container{padding-inline:24px}
 body:has(.jp-plan-intro) .jp-plan-facts-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
 body:has(.jp-plan-intro) .jp-plan-steps-list{grid-template-columns:1fr}
 body:has(.jp-plan-intro) .jp-avail-months{width:100%;grid-template-columns:minmax(0,1fr)}
 body:has(.jp-plan-intro) .jp-avail-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:0}
 body:has(.jp-plan-intro) .jp-avail-day{width:100%;min-width:0;height:44px}
 .jp-weather:has(>.jp-weather-compact__title){grid-template-columns:1fr;gap:.65rem}
 .jp-weather:has(>.jp-weather-compact__title) .jp-weather__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}
}
@media(prefers-reduced-motion:reduce){body:has(.jp-plan-intro) .jp-avail-day{transition:none}}

/* Availability owns weather; calendar remains primary. */
body:has(.jp-plan-intro) .jp-plan-availability-inner{display:grid;grid-template-columns:minmax(0,1fr);column-gap:2rem}
body:has(.jp-plan-intro) .jp-plan-availability-inner>.jp-plan-calendar{width:100%;min-width:0}
body:has(.jp-plan-intro) .jp-plan-availability-inner>.jp-weather{box-sizing:border-box;min-width:0;max-width:100%;grid-template-columns:1fr;align-self:start;gap:.75rem;padding:1rem;margin-top:1.5rem;background:var(--page-bg);border-radius:4px}
body:has(.jp-plan-intro) .jp-plan-availability-inner>.jp-weather .jp-weather__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem}
@media(min-width:75rem){
 body:has(.jp-plan-intro) .jp-plan-availability-inner{grid-template-columns:minmax(0,1fr) 15rem}
 body:has(.jp-plan-intro) .jp-plan-availability-inner>:is(.jp-eyebrow,.jp-plan-section-heading,.jp-plan-section-lead){grid-column:1/-1}
 body:has(.jp-plan-intro) .jp-plan-availability-inner>.jp-weather{margin-top:1rem}
}


/* src/styles/image-weather-overlay.css */
/* Shared weather overlay, opt-in only on existing image heroes. */
.jp-hero__content:has(>.jp-image-weather){position:relative}
.jp-image-weather{position:relative;z-index:2;box-sizing:border-box;width:fit-content;max-width:100%;margin:24px 0 0;padding:12px 16px;color:#fffefd;background:rgba(23,30,27,.68);border:1px solid rgba(255,254,253,.14);border-radius:6px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-family:var(--font-body);text-shadow:none}
.jp-image-weather[hidden]{display:none}
.jp-image-weather p{color:#fffefd;margin:0;font-family:var(--font-body);line-height:1.5}
.jp-image-weather .jp-image-weather__place{font-size:11px;letter-spacing:.04em}
.jp-image-weather__main{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;font-size:14px;line-height:1.5}
.jp-image-weather__main [data-weather=temp]{font-size:22px;font-weight:500}
.jp-image-weather .jp-image-weather__details{font-size:12px}
.jp-image-weather .jp-image-weather__credit{display:inline-flex;align-items:center;min-height:24px;color:#f4e5cf;font-size:11px;line-height:1.5;text-decoration:underline;text-underline-offset:3px}
.jp-image-weather__credit:focus-visible{outline:2px solid #fffefd;outline-offset:3px}
@media(max-width:47.99rem){.jp-image-weather{margin-top:20px;padding:10px 12px}.jp-image-weather__wind{display:none}}

/* Booking-relevant weather moments. One existing widget per document. */
.jp-image-weather__icon{display:block;width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;align-self:center}
.jp-media-placeholder:has(>.jp-image-weather--photo){position:relative}
.jp-image-weather.jp-image-weather--photo{position:absolute;left:24px;bottom:24px;margin:0;max-width:calc(100% - 48px)}
.jp-image-weather.jp-image-weather--inline{background:transparent;border:0;border-radius:0;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;color:var(--page-fg);margin-block:24px}
.jp-image-weather--inline p{color:var(--page-fg)}
.jp-image-weather--inline .jp-image-weather__credit{color:var(--jp-action-gold,#76582d)}
.jp-image-weather--inline .jp-image-weather__credit:focus-visible{outline-color:currentColor}
.jp-explorer-title+.jp-image-weather--inline{margin-inline:max(24px,calc((100% - 1200px)/2));margin-block:0 28px}
@media(max-width:47.99rem){.jp-image-weather.jp-image-weather--photo{left:24px;bottom:24px}.jp-image-weather__main{gap:6px 8px}}
/* Keep the suite title at the lower edge of its photograph unobstructed. */
.jp-rooms-ocean-media .jp-image-weather--photo{top:16px;bottom:auto}

/* Mobile Explorer text has one safe inset, including the generated breadcrumb. */
/* At the narrowest width avoid the container's doubled margin + padding inset. */
@media(max-width:340px){
 .jp-header .jp-header__inner{box-sizing:border-box;width:100%;margin-inline:0;padding-inline:24px;column-gap:12px}
}
@media(max-width:47.99rem){
 main#main-content:has(>.jp-explorer-title)>:is(.jp-explorer-kicker,.jp2-breadcrumbs,.jp-explorer-title){box-sizing:border-box;width:100%;max-width:none;margin-inline:0;padding-inline:24px}
 main#main-content:has(>.jp-explorer-title)>.jp2-breadcrumbs{flex-wrap:wrap}
 main#main-content:has(>.jp-explorer-title)>#jp-explorer{padding-bottom:16px!important}
 main#main-content:has(>.jp-explorer-title)>.jp2-ecosystem-nav,
 main#main-content:has(>.jp-entry-hero [data-weather])>.jp2-ecosystem-nav{margin-top:48px}
}


/* src/styles/map-credits.css */
/* Same scoped treatment for public and authorized Guest Book maps. */
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]{position:relative!important;box-sizing:border-box!important;max-width:calc(100vw - 72px)!important;min-width:0!important;padding:0!important;border:1px solid #b9b4ab;border-radius:6px!important;background:rgba(255,254,253,.94)!important;backdrop-filter:blur(3px);color:#263a34!important;font:11px/1.5 system-ui,sans-serif!important;box-shadow:0 2px 8px #0002}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>summary{display:flex!important;position:static!important;align-items:center;justify-content:center;box-sizing:border-box;width:auto!important;height:auto!important;min-width:76px;min-height:44px!important;padding:6px 8px!important;background:none!important;color:inherit!important;border-radius:5px;cursor:pointer;list-style:none;font:inherit!important}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>summary::before,.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>summary::after,.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>summary::-webkit-details-marker{display:none!important}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>.maplibregl-ctrl-attrib-inner{display:none!important;max-width:220px;white-space:normal!important;padding:0 12px}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits].jp-map-credits-open>.maplibregl-ctrl-attrib-inner{display:block!important}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits] a{display:inline-flex;align-items:center;min-height:44px;color:inherit!important;text-decoration:underline!important;text-underline-offset:3px}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]>.jp-map-credits-close{display:none;width:100%;min-height:44px;background:transparent;color:inherit;border:0;border-top:1px solid #b9b4ab;font:inherit;cursor:pointer}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits].jp-map-credits-open>.jp-map-credits-close{display:block}
.maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits] :focus-visible{outline:2px solid currentColor!important;outline-offset:-3px}
[data-theme="dark"] .maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits],[data-jpgb-theme="dark"] .maplibregl-map .maplibregl-ctrl-attrib[data-jp-credits]{background:rgba(36,43,40,.94)!important;color:#fffefd!important;border-color:#777d78}


/* src/styles/motion-startup-geometry.css */
/* Reserve the existing final divider geometry at first paint.
   These values match home-visual-fixes.js.ts exactly; no design change. */
.jp-entry-hero + .jp-horizon-divider,
.jp-home-hero + .jp-horizon-divider{padding:1.25rem 0 !important;display:flex;align-items:center;justify-content:flex-start}
.jp-entry-hero + .jp-horizon-divider .jp-horizon-line,
.jp-home-hero + .jp-horizon-divider .jp-horizon-line{width:14rem !important;max-width:40%;height:1rem !important;margin:0 !important;display:block}

/* Route heroes already use this final long-title treatment. Apply it before
   the foundation script adds jp2-long-title, not after the first paint. */
@media(max-width:47.99rem){
 body:has([data-route-slug="southern-explorer"],[data-route-slug="waterfall-explorer"]) .jp-entry-hero .jp-heading-display{font-size:clamp(2.35rem,11.25vw,4.75rem)!important;line-height:.96;overflow-wrap:normal;word-break:normal;hyphens:none}
}
/* Reserve the existing weather card's natural text-row geometry while its
   data loads. It stays invisible/unavailable rather than showing fake data. */
body:has([data-route-slug="southern-explorer"],[data-route-slug="waterfall-explorer"]) .jp-entry-hero .jp-image-weather[hidden]{display:block!important;visibility:hidden;pointer-events:none}

/* Match header-scroll's existing desktop geometry before its deferred style
   arrives. Reserve the approved 256px, 10:3 logo without cropping the image. */
@media(min-width:64rem){
 .jp-header__inner{height:6rem;padding-top:0;padding-bottom:0}
 .jp-header[data-jp-scrolled="true"] .jp-header__inner{height:5rem}
 .jp-header__brand{min-height:4.8rem}
}
