:root {
  color-scheme: light;
  --text-1-eyebrow: 0.71875rem;
  --page-bg: var(--linen);
  --page-fg: var(--charcoal);
  --panel-bg: var(--surface-deep);
  --btn-fg: var(--charcoal);
  --input-bg: var(--linen);
  --input-fg: var(--charcoal);
  --input-border: var(--stone);
  --divider: var(--surface-deep);
}

body {
  font-family: var(--font-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  color: var(--page-fg);
  transition-behavior: normal, normal;
  transition-duration: 0.2s, 0.2s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
  transition-property: background-color, color;
  margin: 0px;
  background-color: var(--page-bg);
}

@media (prefers-reduced-motion: reduce) {
  body {
  transition-behavior: normal;
  transition-duration: 0s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: none;
  }
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.jp-eyebrow {
  font-family: var(--font-body);
  font-size: var(--text-1-eyebrow);
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--timber);
  margin: 0 0 var(--space-1-xs);
}

.jp-heading-display {
  font-family: var(--font-display);
  font-size: var(--text-1-display);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-1-m);
  overflow-wrap: normal;
  word-break: keep-all;
  color: var(--page-fg);
}

.jp-lead {
  font-family: var(--font-body);
  font-size: var(--text-1-lead);
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 var(--space-1-m);
  color: var(--page-fg);
}

.jp-body-text {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  line-height: 1.6;
  margin: 0 0 var(--space-1-l);
  color: var(--page-fg);
}

.jp-link {
  margin: 0 0 var(--space-1-xl);
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  color: var(--timber);
  text-decoration-line: underline;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  text-underline-offset: 0.2em;
}

.jp-media-placeholder {
  width: 100%;
  aspect-ratio: 3 / 2;
  background-color: var(--panel-bg);
}

.jp-container {
  width: 100%;
  margin: 0px auto;
  padding-left: var(--space-1-m);
  padding-right: var(--space-1-m);
  max-width: 90rem;
}

.jp-container--reading {
  max-width: 44rem;
}

.jp-container--standard {
  max-width: 72rem;
}

.jp-container--wide {
  max-width: 90rem;
}

.jp-heading-h1 {
  font-family: var(--font-display);
  font-size: var(--text-1-h1);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-1-m);
  color: var(--page-fg);
}

.jp-heading-h2 {
  font-family: var(--font-display);
  font-size: var(--text-1-h2);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-1-m);
  color: var(--page-fg);
}

.jp-heading-h3 {
  font-family: var(--font-display);
  font-size: var(--text-1-h3);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-1-s);
  color: var(--page-fg);
}

.jp-caption {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--stone);
  margin-top: var(--space-1-xs);
}

.jp-link:hover {
  color: var(--forest);
}

.jp-btn {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  border: 1px solid var(--charcoal);
  padding: var(--space-1-xs) var(--space-1-s);
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  line-height: 1;
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
  border-color: var(--page-fg);
  color: var(--btn-fg);
}

.jp-btn:hover {
  background: var(--page-fg);
  color: var(--page-bg);
}

.jp-btn--quiet {
  border-color: var(--timber);
  color: var(--timber);
}

.jp-btn--quiet:hover {
  background: var(--timber);
  color: var(--linen);
}

.jp-figure {
  margin: 0px;
}

.jp-media-placeholder--wide {
  aspect-ratio: 16 / 9;
}

.jp-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--space-1-m);
}

.jp-col-5 {
  grid-column-start: span 12;
  grid-column-end: auto;
}

@media (min-width: 64rem) {
  .jp-col-5 {
  grid-column-start: span 5;
  grid-column-end: auto;
  }
}

.jp-col-7 {
  grid-column-start: span 12;
  grid-column-end: auto;
}

@media (min-width: 64rem) {
  .jp-col-7 {
  grid-column-start: span 7;
  grid-column-end: auto;
  }
}

.jp-section {
  padding-top: var(--space-1-xl);
  padding-bottom: var(--space-1-xl);
}

.jp-section--compact {
  padding-top: var(--space-1-l);
  padding-bottom: var(--space-1-l);
}

.jp-section--immersive {
  padding-top: var(--space-1-2xl);
  padding-bottom: var(--space-1-2xl);
}

.jp-todo {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--forest);
  background: var(--surface-soft);
  padding: 0.2em 0.6em;
  border: 1px dashed var(--stone);
}

[data-reveal] {
  transition-behavior: normal, normal;
  transition-duration: 0.76s, 0.76s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1), cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s, 0s;
  transition-property: opacity, transform;
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

[data-reveal="left"] {
  transform: translateX(-0.625rem);
}

[data-reveal="right"] {
  transform: translateX(0.625rem);
}

[data-reveal][data-motion-state="visible"] {
  opacity: 1;
  transform: none;
  transition-behavior: normal, normal;
  transition-duration: 0.76s, 0.76s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1), cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s, 0s;
  transition-property: opacity, transform;
}

[data-reveal-delay="short"] {
  transition-delay: 90ms;
}

[data-reveal-delay="medium"] {
  transition-delay: 180ms;
}

[data-reveal-delay="long"] {
  transition-delay: 270ms;
}

.jp-horizon-line {
  display: block;
  width: 100%;
  height: auto;
  margin: var(--space-1-l) 0;
  overflow-x: visible;
  overflow-y: visible;
}

.jp-horizon-line path {
  fill: none;
  stroke: var(--timber);
  stroke-width: 1;
  stroke-dasharray: 1;
  transition-behavior: normal;
  transition-duration: 1.4s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s;
  transition-property: stroke-dashoffset;
  stroke-dashoffset: 0;
}

@media (prefers-reduced-motion: reduce) {
  .jp-horizon-line path {
  stroke-dashoffset: 0 !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-horizon-line[data-motion-state="visible"] path {
  stroke-dashoffset: 0;
  transition-behavior: normal;
  transition-duration: 1.4s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s;
  transition-property: stroke-dashoffset;
}

.jp-header {
  position: sticky;
  top: 0px;
  z-index: 40;
  border-bottom: 1px solid var(--surface-deep);
  background: var(--page-bg);
  border-bottom-color: var(--divider);
}

.jp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1-m);
  padding-top: var(--space-1-s);
  padding-bottom: var(--space-1-s);
  flex-wrap: wrap;
}

.jp-header__brand {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
  color: var(--page-fg);
}

.jp-header__nav {
  align-items: center;
  gap: var(--space-1-m);
  flex-wrap: wrap;
  display: none;
}

@media (min-width: 64rem) {
  .jp-header__nav {
  display: flex;
  }
}

.jp-header__link {
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration-line: none;
  color: var(--page-fg);
  opacity: 0.72;
  position: relative;
  padding-bottom: 0.35em;
  transition: opacity var(--jp-motion-duration-hover, 180ms) ease;
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
}

.jp-header__link:hover {
  color: var(--timber);
}

.jp-header__cta {
  font-size: var(--text-1-caption);
  padding: 0.4em 0.9em;
  border-top-left-radius: 9999px;
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
  border-bottom-left-radius: 9999px;
}

.jp-footer {
  background: var(--evening);
  color: var(--linen);
  border-top: 1px solid var(--charcoal);
}

.jp-footer__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-s);
  padding-top: var(--space-1-xl);
  padding-bottom: var(--space-1-xl);
}

.jp-footer__link {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  color: var(--linen);
  opacity: 0.8;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
}

.jp-footer__link:hover {
  opacity: 1;
  color: var(--timber);
}

.jp-footer__copyright {
  margin: 0px;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--linen);
  opacity: 0.6;
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
}

.jp-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow-x: hidden;
  overflow-y: hidden;
  background: var(--evening);
  color: var(--linen);
}

.jp-hero__media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 0;
}

.jp-hero__media .jp-media-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  background-color: var(--ocean);
}

.jp-hero__content {
  position: relative;
  z-index: 1;
  padding-top: var(--space-1-2xl);
  padding-bottom: var(--space-1-xl);
}

.jp-hero .jp-eyebrow {
  color: var(--timber);
}

.jp-hero .jp-heading-display {
  color: var(--linen);
}

.jp-hero .jp-lead {
  color: var(--linen);
  margin-bottom: 0px;
}

.jp-horizon-divider {
  padding: var(--space-1-l) 0;
}

.jp-horizon-line[data-reveal] {
  opacity: 1;
  transform: none;
  transition-behavior: normal;
  transition-duration: 0s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: none;
}

.jp-section__media {
  width: 100%;
}

.jp-section__text {
  margin-top: var(--space-1-l);
}

[data-reveal][data-motion-state="pending"] {
  opacity: 0.08;
  transform: translateY(0.625rem);
  transition-behavior: normal, normal;
  transition-duration: 0.76s, 0.76s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1), cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s, 0s;
  transition-property: opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal][data-motion-state="pending"] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

[data-reveal="left"][data-motion-state="pending"] {
  transform: translateX(-0.625rem);
}

[data-reveal="right"][data-motion-state="pending"] {
  transform: translateX(0.625rem);
}

.jp-horizon-line[data-motion-state="pending"] {
  opacity: 1;
  transform: none;
}

.jp-horizon-line[data-motion-state="pending"] path {
  stroke-dashoffset: 1;
  transition-behavior: normal;
  transition-duration: 1.4s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s;
  transition-property: stroke-dashoffset;
}

@media (prefers-reduced-motion: reduce) {
  .jp-horizon-line[data-motion-state="pending"] path {
  stroke-dashoffset: 0 !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-hero-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  background-color: var(--ocean);
}

.jp-hero-text-light {
  color: var(--linen);
}

.jp-faq-list {
  border-bottom: 1px solid var(--surface-deep);
  border-bottom-color: var(--divider);
}

.jp-faq-item {
  padding: var(--space-1-m) 0;
  border-top: 1px solid var(--surface-deep);
  border-top-color: var(--divider);
}

.jp-faq-item__q {
  margin: 0 0 var(--space-1-xs);
}

.jp-faq-item__a {
  margin: 0px;
}

.jp-link:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-btn:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-footer__link:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-coming-soon {
  min-height: 100svh;
  display: grid;
  align-items: center;
  justify-items: center;
  padding: var(--space-1-l) var(--space-1-m);
}

.jp-form {
  display: grid;
  max-width: 25rem;
  gap: var(--space-1-s);
  margin-top: var(--space-1-m);
  grid-template-columns: minmax(0px, 1fr);
}

.jp-form label {
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--page-fg);
}

.jp-form input {
  width: 100%;
  border: 1px solid var(--stone);
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  padding: var(--space-1-xs) var(--space-1-s);
  background: var(--input-bg);
  color: var(--input-fg);
  border-color: var(--input-border);
}

.jp-header__logo {
  width: auto;
  display: block;
}

@media (min-width: 64rem) {
  .jp-header__logo {
  height: 2.5rem;
  }
}

@media (min-width: 48rem) {
  .jp-header__logo {
  height: 2.25rem;
  }
}

.jp-header__actions {
  display: flex;
  align-items: center;
}

.jp-header__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--stone);
  border-top-left-radius: 9999px;
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
  border-bottom-left-radius: 9999px;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  cursor: pointer;
  padding: 0px;
}

@media (min-width: 64rem) {
  .jp-header__toggle {
  display: none;
  }
}

.jp-header__toggle-icon {
  display: block;
  width: 1.125rem;
  height: 0.625rem;
  position: relative;
}

.jp-header__toggle-bar {
  position: absolute;
  left: 0px;
  right: 0px;
  height: 1px;
  background: var(--page-fg);
}

.jp-header__toggle-bar--top {
  top: 0px;
}

.jp-header__toggle-bar--bottom {
  bottom: 0px;
}

.jp-mobile-panel {
  position: absolute;
  top: 100%;
  left: 0px;
  right: 0px;
  border-top: 1px solid var(--surface-deep);
  border-bottom: 1px solid var(--surface-deep);
  padding: var(--space-1-m);
  background: var(--page-bg);
  border-top-color: var(--divider);
  border-bottom-color: var(--divider);
}

@media (min-width: 64rem) {
  .jp-mobile-panel {
  display: none !important;
  }
}

.jp-mobile-panel[data-open="false"] {
  display: none;
}

.jp-mobile-panel__list {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: 0px;
  padding: 0px;
  border-top: 1px solid var(--charcoal-10);
  border-top-color: var(--divider);
}

.jp-mobile-panel__item {
  border-bottom: 1px solid var(--charcoal-10);
  border-bottom-color: var(--divider);
}

.jp-mobile-panel__link {
  display: flex;
  align-items: center;
  min-height: 3rem;
  font-family: var(--font-display);
  font-size: 1.375rem;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  color: var(--page-fg);
}

.jp-mobile-panel__cta {
  display: inline-block;
  margin-top: var(--space-1-m);
}

.jp-footer__brand-block {
  margin-bottom: var(--space-1-xl);
}

.jp-footer__logo {
  height: 2.25rem;
  width: auto;
  aspect-ratio: 10 / 3;
  display: block;
}

.jp-footer__statement {
  margin: var(--space-1-m) 0 0;
  max-width: 32rem;
  font-family: var(--font-body);
  font-size: var(--text-1-lead);
  font-weight: 500;
  color: var(--linen);
  opacity: 0.85;
}

.jp-footer__grid {
  display: grid;
  gap: var(--space-1-l);
  grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
  .jp-footer__grid {
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-1-m);
  }
}

.jp-footer__col-title {
  margin: 0 0 var(--space-1-s);
  font-family: var(--font-body);
  font-size: var(--text-1-eyebrow);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--linen);
  opacity: 0.5;
}

.jp-footer__col-list {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: 0px;
  padding: 0px;
  display: flex;
  flex-direction: column;
  gap: var(--space-1-xs);
}

.jp-footer__address {
  margin: var(--space-1-s) 0 0;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--linen);
  opacity: 0.6;
}

.jp-footer__bottom {
  margin-top: var(--space-1-xl);
  padding-top: var(--space-1-s);
  border-top: 1px solid var(--charcoal-l-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-1-m);
}

@media (min-width: 40rem) {
  .jp-footer__bottom {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  }
}

.jp-header__toggle:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-room-facts {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: var(--space-1-s) 0 0;
  padding: 0px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-1-xs) var(--space-1-m);
}

.jp-room-facts dt {
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--stone);
}

.jp-room-facts dd {
  margin: 0px;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  color: var(--page-fg);
}

.jp-arrival-list {
  border-top: 1px solid var(--surface-deep);
  border-top-color: var(--divider);
}

.jp-arrival-item {
  padding: var(--space-1-m) 0;
  border-bottom: 1px solid var(--surface-deep);
  border-bottom-color: var(--divider);
}

.jp-arrival-item h3 {
  margin: 0 0 var(--space-1-xs);
}

.jp-arrival-item p {
  margin: 0px;
}

.jp-info-list {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: var(--space-1-m) 0 0;
  padding: 0px;
  border-top: 1px solid var(--surface-deep);
  border-top-color: var(--divider);
}

.jp-info-list li {
  display: flex;
  justify-content: space-between;
  gap: var(--space-1-m);
  padding: var(--space-1-s) 0;
  border-bottom: 1px solid var(--surface-deep);
  border-bottom-color: var(--divider);
}

.jp-info-list dt, .jp-info-list dd {
  margin: 0px;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
}

.jp-info-list dt {
  color: var(--stone);
}

.jp-info-list dd {
  font-weight: 500;
  text-align: right;
  color: var(--page-fg);
}

.jp-legal-list {
  margin: 0 0 var(--space-1-l);
  padding-left: 1.25em;
}

.jp-legal-list li {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  line-height: 1.6;
  margin: 0 0 var(--space-1-s);
  color: var(--page-fg);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  color-scheme: dark;
  --page-bg: var(--evening-d-3);
  --page-fg: var(--linen);
  --panel-bg: var(--evening-d-1);
  --btn-fg: var(--linen);
  --input-bg: var(--evening-d-1);
  --input-fg: var(--linen);
  --input-border: var(--charcoal-l-2);
  --divider: var(--charcoal-l-1);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --page-bg: var(--evening-d-3);
  --page-fg: var(--linen);
  --panel-bg: var(--evening-d-1);
  --btn-fg: var(--linen);
  --input-bg: var(--evening-d-1);
  --input-fg: var(--linen);
  --input-border: var(--charcoal-l-2);
  --divider: var(--charcoal-l-1);
}

:root[data-theme="light"] {
  color-scheme: light;
}

.jp-theme-toggle {
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--stone);
  border-top-left-radius: 9999px;
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
  border-bottom-left-radius: 9999px;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  color: var(--page-fg);
  cursor: pointer;
  padding: 0px;
  margin-left: var(--space-1-s);
  display: flex;
}

.jp-theme-toggle:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-theme-toggle svg {
  width: 1.1rem;
  height: 1.1rem;
}

.jp-theme-toggle .jp-theme-icon--dark {
  display: none;
}

:root[data-theme="dark"] .jp-theme-toggle .jp-theme-icon--light {
  display: none;
}

:root[data-theme="dark"] .jp-theme-toggle .jp-theme-icon--dark {
  display: block;
}

.jp-footer__social {
  display: flex;
  gap: var(--space-1-m);
  margin-top: var(--space-1-s);
}

.jp-weather__stat {
  display: flex;
  flex-direction: column;
  row-gap: 0.2em;
  column-gap: 0.2em;
}

.jp-weather__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1-m) var(--space-1-l);
  margin: var(--space-1-s) 0 0;
  padding: 0px;
}

.jp-weather__attribution {
  margin: var(--space-1-m) 0 0;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--stone);
}

.jp-weather {
  margin-top: var(--space-1-l);
  padding: var(--space-1-m);
  border: 1px solid var(--divider);
}

.jp-weather[hidden] {
  display: none;
}

.jp-weather__stat dt {
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--stone);
}

.jp-weather__stat dd {
  margin: 0px;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  color: var(--page-fg);
}

.jp-weather__attribution a {
  color: var(--timber);
}

.jp-skip-link {
  position: absolute;
  top: -3rem;
  left: var(--space-1-s);
  z-index: 100;
  background: var(--page-fg);
  color: var(--page-bg);
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  padding: 0.6em 1em;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  transition-behavior: normal;
  transition-duration: 0.15s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: top;
}

@media (prefers-reduced-motion: reduce) {
  .jp-skip-link {
  transition-behavior: normal;
  transition-duration: 0s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: none;
  }
}

.jp-skip-link:focus {
  top: var(--space-1-s);
}

.jp-form--wide {
  max-width: 32rem;
}

.jp-form input:focus-visible, .jp-form textarea:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-form-dates {
  display: grid;
  gap: var(--space-1-s);
  grid-template-columns: 1fr;
}

@media (min-width: 26rem) {
  .jp-form-dates {
  grid-template-columns: minmax(0px, 1fr) minmax(0px, 1fr);
  }
}

.jp-form input, .jp-form textarea {
  min-width: 0px;
  box-sizing: border-box;
}

.jp-header__logo--dark {
  display: none;
}

:root[data-theme="dark"] .jp-header__logo--light {
  display: none;
}

:root[data-theme="dark"] .jp-header__logo--dark {
  display: block;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .jp-header__logo--light {
  display: none;
  }
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .jp-header__logo--dark {
  display: block;
  }
}

.jp-header__link::after {
  content: "";
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 0px;
  height: 1px;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: currentcolor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--jp-motion-duration-hover, 180ms) ease;
}

.jp-header__link:hover, .jp-header__link:focus-visible {
  opacity: 1;
}

.jp-header__link:hover::after, .jp-header__link:focus-visible::after {
  transform: scaleX(1);
}

.jp-header__link[aria-current="page"] {
  opacity: 1;
}

.jp-footer__bottom .jp-theme-toggle {
  color: var(--linen);
  border-top-color: rgba(255, 255, 255, 0.3);
  border-right-color: rgba(255, 255, 255, 0.3);
  border-bottom-color: rgba(255, 255, 255, 0.3);
  border-left-color: rgba(255, 255, 255, 0.3);
  margin-left: 0px;
}

.jp-footer__bottom .jp-theme-toggle:focus-visible {
  outline-color: var(--timber);
}

.jp-facts-row {
  display: flex;
  flex-direction: column;
  row-gap: 0.2em;
  column-gap: 0.2em;
  padding: var(--space-1-s) 0;
  border-bottom: 1px solid var(--divider);
}

.jp-facts-list {
  margin: 0 0 var(--space-1-m);
}

.jp-map-label {
  margin: 0 0 var(--space-1-xs);
}

.jp-directions-link {
  margin: 0px;
}

.jp-map-fallback {
  margin-top: var(--space-1-m);
  padding-top: var(--space-1-m);
  border-top: 1px solid var(--divider);
}

.jp-photo-credit {
  margin-top: var(--space-1-m);
}

.jp-facts-panel {
  background: var(--panel-bg);
  padding: var(--space-1-m);
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
  align-self: start;
}

.jp-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-1-m);
}

@media (min-width: 48rem) {
  .jp-gallery-grid {
  grid-template-columns: repeat(3, 1fr);
  }
}

.jp-entry-body p {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  line-height: 1.6;
  margin: 0 0 var(--space-1-m);
  color: var(--page-fg);
}

.jp-entry-body ul {
  margin: 0 0 var(--space-1-m);
  padding-left: 1.2em;
}

.jp-entry-body li {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  line-height: 1.6;
  margin-bottom: 0.4em;
  color: var(--page-fg);
}

.jp-facts-row:last-child {
  border-bottom-width: medium;
  border-bottom-style: none;
  border-bottom-color: currentcolor;
}

.jp-facts-row dt {
  font-family: var(--font-body);
  font-size: var(--text-1-eyebrow);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--stone);
  margin: 0px;
}

.jp-facts-row dd {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  margin: 0px;
  color: var(--page-fg);
}

.jp-gallery-item .jp-media-placeholder {
  aspect-ratio: 4 / 3;
}

.jp-facts-row dd:empty, .jp-facts-row dd:has(> :empty) {
  display: none;
}

.jp-transport-list {
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.4em;
  column-gap: 0.4em;
}

.jp-safety-note {
  margin-top: var(--space-1-m);
  padding-top: var(--space-1-m);
  border-top: 1px solid var(--divider);
}

.jp-safety-note .jp-body-text {
  margin: 0px;
}

.jp-map-container {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--panel-bg);
  margin-bottom: var(--space-1-s);
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
  overflow-x: hidden;
  overflow-y: hidden;
}

.jp-related-list {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: var(--space-1-m) 0 0;
  padding: 0px;
  display: flex;
  flex-direction: column;
  gap: var(--space-1-xs);
}

.jp-related-list a {
  color: var(--timber);
  text-decoration-line: underline;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  text-underline-offset: 0.2em;
}

.jp-map-marker {
  width: 1.6rem;
  height: 1.6rem;
  border-top-left-radius: 9999px;
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
  border-bottom-left-radius: 9999px;
  background: var(--timber);
  border: 2px solid var(--linen);
  box-shadow: rgba(0, 0, 0, 0.35) 0px 1px 4px;
  cursor: pointer;
  padding: 0px;
}

.jp-map-marker:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-map-marker--stop {
  background: var(--forest);
  width: 1.2rem;
  height: 1.2rem;
}

.maplibregl-ctrl-attrib {
  font-size: 10px;
}

.jp-listing-hero {
  padding-top: var(--space-1-2xl);
  min-height: 58svh;
  display: flex;
  align-items: flex-end;
  padding-block-start: clamp(8rem, 14vw, 13rem);
  padding-block-end: clamp(4.5rem, 8vw, 8rem);
  border-bottom: 1px solid color-mix(in srgb,var(--page-fg) 16%,transparent);
}

@media (max-width: 768px) {
  .jp-listing-hero {
  min-height: 62svh;
  padding-block-start: 7rem;
  padding-block-end: 4rem;
  }
}

.jp-listing-card__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--panel-bg);
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}

.jp-listing-card__title {
  font-family: var(--font-display);
  font-size: var(--text-1-h3);
  font-weight: 500;
  margin: 0 0 var(--space-1-xs);
  color: var(--page-fg);
}

.jp-listing-card__excerpt {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  line-height: 1.5;
  margin: 0px;
  color: var(--page-fg);
  opacity: 0.85;
}

.jp-listing-card__body {
  padding-top: var(--space-1-s);
}

.jp-listing-card {
  display: block;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  color: var(--page-fg);
}

.jp-listing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1-l);
}

@media (min-width: 64rem) {
  .jp-listing-grid {
  grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 48rem) {
  .jp-listing-grid {
  grid-template-columns: repeat(2, 1fr);
  }
}

.jp-listing-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.jp-listing-card:hover .jp-listing-card__title {
  color: var(--timber);
}

.jp-listing-card:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-guide-preview__link {
  display: block;
  padding: var(--space-1-xs) 0;
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  font-weight: 500;
  color: var(--page-fg);
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  border-bottom: 1px solid var(--divider);
}

.jp-guide-preview__list {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: 0 0 var(--space-1-m);
  padding: 0px;
  display: flex;
  flex-direction: column;
  gap: var(--space-1-xs);
  border-top: 1px solid var(--divider);
}

.jp-guide-preview {
  margin: var(--space-1-m) 0;
}

.jp-guide-preview__link:hover {
  color: var(--timber);
}

.jp-guide-preview__link:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-header__submenu-link {
  display: block;
  padding: var(--space-1-xs) var(--space-1-s);
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration-line: none;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  color: var(--page-fg);
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
}

.jp-header__submenu {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  margin: 0px;
  padding: var(--space-1-xs) 0;
  position: absolute;
  top: 100%;
  left: 0px;
  min-width: 11rem;
  background: var(--page-bg);
  border: 1px solid var(--divider);
  display: none;
  flex-direction: column;
  z-index: 50;
}

.jp-header__nav-item {
  position: relative;
}

.jp-mobile-panel__link--sub {
  padding-left: var(--space-1-m);
  font-size: 1.1rem;
  min-height: 2.5rem;
  opacity: 0.85;
}

.jp-header__nav-item--dropdown:hover .jp-header__submenu, .jp-header__nav-item--dropdown:focus-within .jp-header__submenu {
  display: flex;
}

.jp-header__submenu-link:hover, .jp-header__submenu-link:focus-visible {
  color: var(--timber);
  background: var(--panel-bg);
}

.jp-header__submenu-link:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: -2px;
}

.jp-avail {
  border: 1px solid var(--divider);
  background: var(--panel-bg);
  padding: var(--space-1-m);
}

.jp-avail-loading {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  color: var(--page-fg);
  margin: 0px;
}

.jp-avail-fallback {
  font-family: var(--font-body);
  font-size: var(--text-1-body);
  margin: 0px;
  color: var(--stone);
}

.jp-avail-toolbar {
  display: flex;
  justify-content: space-between;
  gap: var(--space-1-s);
  margin-bottom: var(--space-1-m);
}

.jp-avail-nav {
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  border: 1px solid var(--stone);
  color: var(--page-fg);
  padding: 0.6em 1em;
  cursor: pointer;
  min-height: 2.75rem;
}

.jp-avail-nav:hover:not(:disabled) {
  border-color: var(--timber);
  color: var(--timber);
}

.jp-avail-nav:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-avail-nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.jp-avail-months {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1-l);
}

@media (min-width: 56rem) {
  .jp-avail-months {
  grid-template-columns: 1fr 1fr;
  }
}

.jp-avail-month:nth-child(2) {
  display: none;
}

@media (min-width: 56rem) {
  .jp-avail-month:nth-child(2) {
  display: block;
  }
}

.jp-avail-month__label {
  font-family: var(--font-display);
  font-size: var(--text-1-h3);
  font-weight: 500;
  margin: 0 0 var(--space-1-s);
  color: var(--page-fg);
  text-align: center;
}

.jp-avail-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  row-gap: 0.2rem;
  column-gap: 0.2rem;
}

.jp-avail-grid--head {
  margin-bottom: 0.3rem;
}

.jp-avail-weekday {
  font-family: var(--font-body);
  font-size: var(--text-1-eyebrow);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--stone);
  text-align: center;
}

.jp-avail-day {
  aspect-ratio: 1 / 1;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  color: var(--page-fg);
  cursor: pointer;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}

.jp-avail-day--pad {
  visibility: hidden;
  cursor: default;
}

.jp-avail-day:disabled {
  cursor: not-allowed;
}

.jp-avail-day--past {
  color: var(--stone);
  opacity: 0.45;
}

.jp-avail-day--beyond-horizon {
  color: var(--stone);
  opacity: 0.45;
}

.jp-avail-day--unavailable {
  color: var(--stone);
  text-decoration-line: line-through;
  text-decoration-thickness: initial;
  text-decoration-style: initial;
  text-decoration-color: initial;
  background: var(--surface-deep);
}

.jp-avail-day--available:hover {
  border-color: var(--timber);
}

.jp-avail-day--today:hover {
  border-color: var(--timber);
}

.jp-avail-day--today {
  font-weight: 700;
  border-color: var(--stone);
}

.jp-avail-day--selected-arrival {
  background: var(--timber);
  color: var(--evening);
  font-weight: 700;
}

.jp-avail-day--selected-departure {
  background: var(--timber);
  color: var(--evening);
  font-weight: 700;
}

.jp-avail-day--in-range {
  background: var(--timber-20);
}

.jp-avail-day:focus-visible {
  outline: 2px solid var(--timber);
  outline-offset: 2px;
}

.jp-avail-legend {
  list-style-position: initial;
  list-style-image: initial;
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1-m);
  margin: var(--space-1-m) 0 0;
  padding: 0px;
}

.jp-avail-legend li {
  display: flex;
  align-items: center;
  row-gap: 0.4em;
  column-gap: 0.4em;
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--stone);
}

.jp-avail-swatch {
  display: inline-block;
  width: 0.85em;
  height: 0.85em;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
  border: 1px solid var(--stone);
}

.jp-avail-swatch--unavailable {
  background: var(--surface-deep);
}

.jp-avail-swatch--selected-arrival {
  background: var(--timber);
  border-color: var(--timber);
}

.jp-avail-swatch--selected-departure {
  background: var(--timber);
  border-color: var(--timber);
}

.jp-avail-message {
  font-family: var(--font-body);
  font-size: var(--text-1-caption);
  color: var(--timber-d-2);
  background: var(--timber-10);
  padding: var(--space-1-s);
  margin: var(--space-1-m) 0 0;
  border: 1px solid var(--timber-30);
}

.jp-avail-summary {
  margin-top: var(--space-1-m);
  padding-top: var(--space-1-m);
  border-top: 1px solid var(--divider);
}

.jp-avail-summary .jp-body-text {
  margin: 0 0 var(--space-1-xs);
}

.jp-avail-summary .jp-caption {
  color: var(--stone);
  margin: 0 0 var(--space-1-s);
}

.jp-home-hero {
  min-height: 100svh;
  isolation: isolate;
}

@media (max-width: 47.999rem) {
  .jp-home-hero {
  min-height: 92svh;
  }
}

.jp-home-hero::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(13, 15, 13, 0.72) 0%, rgba(13, 15, 13, 0.36) 46%, rgba(13, 15, 13, 0.08) 76%), linear-gradient(0deg, rgba(13, 15, 13, 0.58) 0%, rgba(13, 15, 13, 0) 48%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

@media (max-width: 47.999rem) {
  .jp-home-hero::after {
  background-image: linear-gradient(0deg, rgba(13, 15, 13, 0.72) 0%, rgba(13, 15, 13, 0.16) 64%, rgba(13, 15, 13, 0.36) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  }
}

.jp-home-hero .jp-heading-display {
  max-width: 10ch;
  margin-bottom: clamp(1.25rem, 2.5vw, 2.25rem);
  font-size: clamp(4.5rem, 9vw, 8.75rem);
  line-height: 0.86;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-home-hero .jp-heading-display {
  max-width: 8ch;
  font-size: clamp(3.5rem, 17vw, 5.25rem);
  line-height: 0.88;
  }
}

.jp-home-hero .jp-lead {
  max-width: 38rem;
  margin-bottom: 0px;
  font-size: clamp(1.05rem, 1.35vw, 1.3rem);
  line-height: 1.6;
}

@media (max-width: 47.999rem) {
  .jp-home-hero .jp-lead {
  max-width: 27rem;
  font-size: 1rem;
  line-height: 1.6;
  }
}

.jp-home-hero .jp-eyebrow {
  margin-bottom: clamp(1rem, 2vw, 1.75rem);
  color: var(--timber-l-2);
}

.jp-home-horizon {
  padding-top: clamp(2.25rem, 4vw, 4.5rem);
  padding-bottom: clamp(2.25rem, 4vw, 4.5rem);
  justify-content: center;
}

@media (max-width: 47.999rem) {
  .jp-home-horizon {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
  }
}

.jp-home-horizon .jp-horizon-line {
  width: clamp(14rem, 38vw, 34rem) !important;
  max-width: 72% !important;
  height: 1.25rem !important;
}

@media (max-width: 47.999rem) {
  .jp-home-horizon .jp-horizon-line {
  width: 13rem !important;
  max-width: 64% !important;
  }
}

.jp-home-place {
  padding-top: clamp(6rem, 11vw, 10rem);
  padding-bottom: clamp(6rem, 11vw, 10rem);
}

@media (max-width: 47.999rem) {
  .jp-home-place {
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
  }
}

.jp-home-shared {
  padding-top: clamp(6rem, 11vw, 10rem);
  padding-bottom: clamp(6rem, 11vw, 10rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-home-shared {
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
  }
}

.jp-home-place .jp-grid, .jp-home-shared .jp-grid {
  align-items: center;
  column-gap: clamp(3rem, 7vw, 7rem);
  row-gap: clamp(3.5rem, 7vw, 6rem);
}

.jp-home-place .jp-body-text, .jp-home-shared .jp-body-text {
  max-width: 34rem;
  line-height: 1.75;
}

.jp-home-place .jp-link {
  margin-bottom: 0px;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

.jp-home-place .jp-media-placeholder {
  aspect-ratio: 4 / 3;
}

.jp-home-shared .jp-media-placeholder {
  aspect-ratio: 16 / 11;
}

.jp-home-place .jp-caption, .jp-home-shared .jp-caption, .jp-home-morning > .jp-caption, .jp-home-closing > .jp-caption {
  color: var(--page-fg);
  opacity: 0.58;
  letter-spacing: 0.015em;
}

.jp-home-morning {
  padding-top: 0px;
  padding-bottom: clamp(7rem, 12vw, 12rem);
}

@media (max-width: 47.999rem) {
  .jp-home-morning {
  padding-bottom: 7rem;
  }
}

.jp-home-morning .jp-section__media img {
  object-position: center 52%;
}

.jp-home-morning > .jp-caption {
  width: min(100% - 3rem, 90rem);
  margin: 0.9rem auto 0px;
}

@media (max-width: 47.999rem) {
  .jp-home-morning > .jp-caption {
  width: calc(100% - 3rem);
  }
}

.jp-home-morning .jp-eyebrow {
  padding-top: 0.75rem;
}

.jp-home-morning .jp-heading-h2 {
  margin: 0px;
  font-size: clamp(4rem, 7vw, 7rem);
  line-height: 0.88;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-home-morning .jp-heading-h2 {
  margin-top: 1rem;
  font-size: clamp(3.75rem, 17vw, 5rem);
  }
}

.jp-home-morning .jp-body-text {
  max-width: 30rem;
  margin: 0px;
  padding-top: 0.75rem;
  line-height: 1.8;
}

@media (max-width: 47.999rem) {
  .jp-home-morning .jp-body-text {
  max-width: 28rem;
  margin-top: 2rem;
  padding-top: 0px;
  }
}

.jp-home-closing {
  position: relative;
  min-height: min(82svh, 58rem);
  padding: 0px;
  display: flex;
  align-items: flex-end;
  overflow-x: hidden;
  overflow-y: hidden;
  isolation: isolate;
}

@media (max-width: 47.999rem) {
  .jp-home-closing {
  min-height: 74svh;
  }
}

.jp-home-closing::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(12, 14, 12, 0.76) 0%, rgba(12, 14, 12, 0.3) 58%, rgba(12, 14, 12, 0.08) 100%), linear-gradient(0deg, rgba(12, 14, 12, 0.58) 0%, rgba(12, 14, 12, 0) 58%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

.jp-home-closing .jp-section__media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-home-closing .jp-section__media img {
  object-position: center 58%;
}

@media (max-width: 47.999rem) {
  .jp-home-closing .jp-section__media img {
  object-position: 56% center;
  }
}

.jp-home-closing > .jp-caption {
  position: absolute;
  right: clamp(1.5rem, 4vw, 4rem);
  bottom: 1.5rem;
  z-index: 2;
  max-width: 24rem;
  color: var(--linen);
  text-align: right;
}

@media (max-width: 47.999rem) {
  .jp-home-closing > .jp-caption {
  display: none;
  }
}

.jp-home-closing .jp-section__text {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 90rem;
  margin: 0px auto;
  padding-top: clamp(10rem, 20vh, 16rem);
  padding-bottom: clamp(5rem, 10vh, 8rem);
}

@media (max-width: 47.999rem) {
  .jp-home-closing .jp-section__text {
  padding-top: 10rem;
  padding-bottom: 4rem;
  }
}

.jp-home-closing .jp-lead {
  max-width: 13ch;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  color: var(--linen);
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 6vw, 6.5rem);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-home-closing .jp-lead {
  max-width: 9ch;
  font-size: clamp(3.25rem, 14vw, 4.6rem);
  }
}

.jp-home-closing .jp-btn--quiet {
  border-color: var(--timber-l-2);
  color: var(--linen);
  padding: 0.9rem 1.25rem;
}

.jp-home-closing .jp-btn--quiet:hover, .jp-home-closing .jp-btn--quiet:focus-visible {
  background: var(--timber-l-2);
  color: var(--evening-d-3);
}

body:has(.jp-home-hero) [data-reveal][data-motion-state="pending"] {
  opacity: 0.72;
  transform: translateY(0.35rem);
}

body:has(.jp-home-hero) .jp-header__logo {
  width: clamp(8.5rem, 12vw, 11rem);
}

@media (min-width: 64rem) {
  .jp-home-place .jp-col-5 {
  grid-column-start: 2;
  grid-column-end: span 4;
  }
}

@media (min-width: 64rem) {
  .jp-home-shared .jp-col-7 {
  grid-column-start: 1;
  grid-column-end: span 7;
  }
}

@media (min-width: 64rem) {
  .jp-home-shared .jp-col-5 {
  grid-column-start: 9;
  grid-column-end: span 4;
  }
}

@media (max-width: 47.999rem) {
  .jp-home-hero .jp-hero-placeholder img {
  object-position: 58% center !important;
  }
}

@media (max-width: 47.999rem) {
  .jp-home-place .jp-media-placeholder, .jp-home-shared .jp-media-placeholder {
  aspect-ratio: 4 / 5;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.jp-home-hero) [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-home-display {
  max-width: 10ch;
  margin-bottom: clamp(1.25rem, 2.5vw, 2.25rem);
  font-size: clamp(4.5rem, 9vw, 8.75rem);
  line-height: 0.86;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-home-display {
  max-width: 8ch;
  font-size: clamp(3.5rem, 17vw, 5.25rem);
  line-height: 0.88;
  }
}

.jp-home-intro {
  max-width: 38rem;
  margin-bottom: 0px;
  font-size: clamp(1.05rem, 1.35vw, 1.3rem);
  line-height: 1.6;
}

@media (max-width: 47.999rem) {
  .jp-home-intro {
  max-width: 27rem;
  font-size: 1rem;
  }
}

.jp-home-horizon-line {
  width: clamp(14rem, 38vw, 34rem) !important;
  max-width: 72% !important;
  height: 1.25rem !important;
  margin: 0px !important;
}

@media (max-width: 47.999rem) {
  .jp-home-horizon-line {
  width: 13rem !important;
  max-width: 64% !important;
  }
}

.jp-home-story-display {
  max-width: 10ch;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  font-size: clamp(3.2rem, 5.5vw, 5.8rem);
  line-height: 0.93;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-home-story-display {
  max-width: 11ch;
  font-size: clamp(3rem, 14vw, 4.35rem);
  }
}

.jp-home-story-copy {
  max-width: 34rem;
  line-height: 1.75;
}

.jp-home-morning-media {
  width: 100%;
  height: min(78svh, 56rem);
  min-height: 40rem;
  aspect-ratio: auto;
}

@media (max-width: 47.999rem) {
  .jp-home-morning-media {
  height: 68svh;
  min-height: 30rem;
  }
}

.jp-home-morning-layout {
  display: grid;
  grid-template-columns: minmax(7rem, 0.55fr) minmax(0px, 1.65fr) minmax(18rem, 1fr);
  align-items: start;
  row-gap: clamp(2rem, 5vw, 5rem);
  column-gap: clamp(2rem, 5vw, 5rem);
  max-width: 90rem;
  margin-top: clamp(5rem, 9vw, 9rem);
}

@media (max-width: 47.999rem) {
  .jp-home-morning-layout {
  display: block;
  margin-top: 4.5rem;
  }
}

.jp-home-morning-display {
  margin: 0px;
  font-size: clamp(4rem, 7vw, 7rem);
  line-height: 0.88;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-home-morning-display {
  margin-top: 1rem;
  font-size: clamp(3.75rem, 17vw, 5rem);
  }
}

.jp-home-morning-copy {
  max-width: 30rem;
  margin: 0px;
  padding-top: 0.75rem;
  line-height: 1.8;
}

@media (max-width: 47.999rem) {
  .jp-home-morning-copy {
  max-width: 28rem;
  margin-top: 2rem;
  padding-top: 0px;
  }
}

.jp-home-closing-media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-home-closing-copy {
  max-width: 13ch;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  color: var(--linen);
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 6vw, 6.5rem);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-home-closing-copy {
  max-width: 9ch;
  font-size: clamp(3.25rem, 14vw, 4.6rem);
  }
}

.jp-home-closing-cta {
  border-color: var(--timber-l-2);
  color: var(--linen);
  padding: 0.9rem 1.25rem;
}

.jp-house-intro {
  position: relative;
  min-height: min(72svh, 52rem);
  display: flex;
  align-items: flex-end;
  padding-top: clamp(8rem, 15vw, 13rem);
  padding-bottom: clamp(6rem, 10vw, 9rem);
  overflow-x: hidden;
  overflow-y: hidden;
}

@media (max-width: 47.999rem) {
  .jp-house-intro {
  min-height: 68svh;
  padding-top: 8rem;
  padding-bottom: 6.5rem;
  }
}

.jp-house-intro::after {
  content: "";
  position: absolute;
  left: max(var(--space-1-m), calc((100vw - 90rem) / 2 + var(--space-1-m)));
  bottom: clamp(2.5rem, 4vw, 4.25rem);
  width: clamp(12rem, 34vw, 30rem);
  height: 1px;
  background: var(--timber);
  opacity: 0.9;
}

@media (max-width: 47.999rem) {
  .jp-house-intro::after {
  left: 1.5rem;
  bottom: 2.5rem;
  width: 13rem;
  }
}

.jp-house-intro-inner {
  max-width: 90rem;
}

.jp-house-title {
  max-width: 8ch;
  margin: 0px 0px clamp(2rem, 4vw, 3.5rem);
  font-size: clamp(5rem, 10vw, 9.5rem);
  line-height: 0.84;
  letter-spacing: -0.05em;
}

@media (max-width: 47.999rem) {
  .jp-house-title {
  font-size: clamp(4.5rem, 22vw, 6rem);
  line-height: 0.84;
  }
}

.jp-house-intro-copy {
  max-width: 39rem;
  margin: 0px;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.55;
}

@media (max-width: 47.999rem) {
  .jp-house-intro-copy {
  max-width: 30rem;
  font-size: 1.1rem;
  }
}

.jp-house-opening {
  position: relative;
  min-height: min(88svh, 58rem);
  padding: 0px;
  display: flex;
  align-items: flex-end;
  isolation: isolate;
  overflow-x: visible;
  overflow-y: visible;
}

@media (max-width: 47.999rem) {
  .jp-house-opening {
  min-height: 76svh;
  }
}

.jp-house-view {
  position: relative;
  min-height: min(88svh, 58rem);
  padding: 0px;
  display: flex;
  align-items: flex-end;
  overflow-x: hidden;
  overflow-y: hidden;
  isolation: isolate;
}

@media (max-width: 47.999rem) {
  .jp-house-view {
  min-height: 76svh;
  }
}

.jp-house-day {
  position: relative;
  min-height: min(88svh, 58rem);
  padding: 0px;
  display: flex;
  align-items: flex-end;
  overflow-x: hidden;
  overflow-y: hidden;
  isolation: isolate;
}

@media (max-width: 47.999rem) {
  .jp-house-day {
  min-height: 76svh;
  }
}

.jp-house-opening::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(12, 14, 12, 0.78) 0%, rgba(12, 14, 12, 0.36) 52%, rgba(12, 14, 12, 0.08) 82%), linear-gradient(0deg, rgba(12, 14, 12, 0.58) 0%, rgba(12, 14, 12, 0) 58%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

@media (max-width: 47.999rem) {
  .jp-house-opening::after {
  background-image: linear-gradient(0deg, rgba(12, 14, 12, 0.8) 0%, rgba(12, 14, 12, 0.18) 68%, rgba(12, 14, 12, 0.34) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  }
}

.jp-house-view::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(12, 14, 12, 0.78) 0%, rgba(12, 14, 12, 0.36) 52%, rgba(12, 14, 12, 0.08) 82%), linear-gradient(0deg, rgba(12, 14, 12, 0.58) 0%, rgba(12, 14, 12, 0) 58%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

@media (max-width: 47.999rem) {
  .jp-house-view::after {
  background-image: linear-gradient(0deg, rgba(12, 14, 12, 0.8) 0%, rgba(12, 14, 12, 0.18) 68%, rgba(12, 14, 12, 0.34) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  }
}

.jp-house-day::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(12, 14, 12, 0.78) 0%, rgba(12, 14, 12, 0.36) 52%, rgba(12, 14, 12, 0.08) 82%), linear-gradient(0deg, rgba(12, 14, 12, 0.58) 0%, rgba(12, 14, 12, 0) 58%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

@media (max-width: 47.999rem) {
  .jp-house-day::after {
  background-image: linear-gradient(0deg, rgba(12, 14, 12, 0.8) 0%, rgba(12, 14, 12, 0.18) 68%, rgba(12, 14, 12, 0.34) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  }
}

.jp-house-opening-grid {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: inherit;
  padding: 0px;
  display: block;
}

.jp-house-view-grid {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: inherit;
  padding: 0px;
  display: block;
}

.jp-house-day-grid {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: inherit;
  padding: 0px;
  display: block;
}

.jp-house-opening-media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.jp-house-view-media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.jp-house-day-media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.jp-house-view-media .jp-figure {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  position: relative;
}

.jp-house-day-media .jp-figure {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  position: relative;
}

.jp-house-opening-media .jp-media-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}

.jp-house-view-media .jp-media-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-house-day-media .jp-media-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-house-opening-media img {
  object-position: center 52% !important;
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}

@media (max-width: 47.999rem) {
  .jp-house-opening-media img {
  object-position: 56% center !important;
  }
}

.jp-house-view-media img {
  object-position: center 56% !important;
}

@media (max-width: 47.999rem) {
  .jp-house-view-media img {
  object-position: 58% center !important;
  }
}

.jp-house-day-media img {
  object-position: center 60% !important;
}

@media (max-width: 47.999rem) {
  .jp-house-day-media img {
  object-position: 62% center !important;
  }
}

.jp-house-opening-media .jp-caption, .jp-house-view-media .jp-caption, .jp-house-day-media .jp-caption {
  position: absolute;
  right: clamp(1.5rem, 4vw, 4rem);
  bottom: 1.5rem;
  z-index: 3;
  max-width: 25rem;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.72;
}

@media (max-width: 47.999rem) {
  .jp-house-opening-media .jp-caption, .jp-house-view-media .jp-caption, .jp-house-day-media .jp-caption {
  display: block;
  position: absolute;
  z-index: 3;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.76;
  top: 1rem;
  right: 1.5rem;
  bottom: auto;
  max-width: 13rem;
  font-size: 0.65rem;
  line-height: 1.35;
  }
}

.jp-house-overlay-copy {
  position: relative;
  z-index: 2;
  width: min(100% - 3.5rem, 90rem);
  margin: 0px auto;
  padding-top: clamp(11rem, 22vh, 18rem);
  padding-bottom: clamp(5rem, 10vh, 8rem);
  color: var(--linen);
}

@media (max-width: 47.999rem) {
  .jp-house-overlay-copy {
  width: calc(100% - 3rem);
  padding-top: 10rem;
  padding-bottom: 4.5rem;
  }
}

.jp-house-overlay-copy .jp-eyebrow {
  color: var(--timber-l-2);
}

.jp-house-overlay-heading {
  max-width: 12ch;
  margin-bottom: clamp(1.75rem, 3vw, 3rem);
  color: var(--linen);
  font-size: clamp(4rem, 7vw, 7rem);
  line-height: 0.9;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-house-overlay-heading {
  max-width: 10ch;
  font-size: clamp(3.25rem, 15vw, 4.6rem);
  }
}

.jp-house-overlay-body {
  max-width: 36rem;
  margin: 0px;
  color: var(--linen);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.75;
}

.jp-house-shared {
  padding-top: clamp(7rem, 12vw, 11rem);
  padding-bottom: clamp(7rem, 12vw, 11rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-house-shared {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-house-threshold {
  padding-top: clamp(7rem, 12vw, 11rem);
  padding-bottom: clamp(7rem, 12vw, 11rem);
}

@media (max-width: 47.999rem) {
  .jp-house-threshold {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-house-shared-grid {
  align-items: center;
  column-gap: clamp(3rem, 7vw, 7rem);
  row-gap: clamp(3.5rem, 7vw, 6rem);
}

@media (max-width: 47.999rem) {
  .jp-house-shared-grid {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: 100%;
  margin-left: 0px;
  margin-right: 0px;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-sizing: border-box;
  }
}

.jp-house-threshold-grid {
  align-items: center;
  column-gap: clamp(3rem, 7vw, 7rem);
  row-gap: clamp(3.5rem, 7vw, 6rem);
}

@media (max-width: 47.999rem) {
  .jp-house-threshold-grid {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: 100%;
  margin-left: 0px;
  margin-right: 0px;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-sizing: border-box;
  }
}

.jp-house-story-heading {
  max-width: 11ch;
  margin-bottom: clamp(1.75rem, 3vw, 2.75rem);
  font-size: clamp(3.4rem, 5.8vw, 6rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-house-story-heading {
  max-width: 10ch;
  font-size: clamp(3.25rem, 14vw, 4.5rem);
  }
}

.jp-house-story-body {
  max-width: 35rem;
  margin: 0px;
  line-height: 1.8;
}

.jp-house-shared-media .jp-media-placeholder {
  aspect-ratio: 4 / 5;
}

.jp-house-threshold-media .jp-media-placeholder {
  aspect-ratio: 5 / 6;
}

.jp-house-shared-media .jp-caption, .jp-house-threshold-media .jp-caption {
  color: var(--page-fg);
  opacity: 0.58;
  letter-spacing: 0.015em;
  margin-top: 0.85rem;
}

.jp-house-closing {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-house-closing {
  padding-top: 7rem;
  padding-bottom: 7rem;
  }
}

.jp-house-closing-inner {
  max-width: 90rem;
}

.jp-house-closing-copy {
  margin: 0px 0px clamp(3rem, 6vw, 5rem);
  max-width: 28ch;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5.2vw, 5.4rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.035em;
}

@media (max-width: 47.999rem) {
  .jp-house-closing-copy {
  max-width: 11ch;
  font-size: clamp(2.75rem, 13vw, 4rem);
  }
}

.jp-house-closing-cta {
  margin: 0px;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.4em;
}

body:has(.jp-house-intro) [data-reveal][data-motion-state="pending"] {
  opacity: 0.72;
  transform: translateY(0.35rem);
}

@media (min-width: 64rem) {
  .jp-house-shared-grid .jp-col-5 {
  grid-column-start: 9;
  grid-column-end: span 4;
  }
}

@media (min-width: 64rem) {
  .jp-house-threshold-grid .jp-col-5 {
  grid-column-start: 2;
  grid-column-end: span 4;
  }
}

@media (min-width: 64rem) {
  .jp-house-threshold-grid .jp-col-7 {
  grid-column-start: 7;
  grid-column-end: span 6;
  }
}

@media (max-width: 47.999rem) {
  .jp-house-shared-media .jp-media-placeholder, .jp-house-threshold-media .jp-media-placeholder {
  aspect-ratio: 4 / 5;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.jp-house-intro) [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-house-shared-media {
  align-self: stretch;
}

.jp-house-threshold-media {
  align-self: stretch;
}

.jp-house-opening-media .jp-caption {
  position: absolute;
  right: 1.75rem;
  bottom: 1.5rem;
  z-index: 3;
  max-width: 22rem;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.76;
}

.jp-house-view-media .jp-caption {
  position: absolute;
  right: 1.75rem;
  bottom: 1.5rem;
  z-index: 3;
  max-width: 22rem;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.76;
}

.jp-house-day-media .jp-caption {
  position: absolute;
  right: 1.75rem;
  bottom: 1.5rem;
  z-index: 3;
  max-width: 22rem;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.76;
}

@media (max-width: 47.999rem) {
  .jp-house-shared-grid > * {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  }
}

@media (max-width: 47.999rem) {
  .jp-house-threshold-grid > * {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  }
}

.jp-rooms-intro {
  position: relative;
  min-height: min(72svh, 52rem);
  display: flex;
  align-items: flex-end;
  padding-top: clamp(8rem, 15vw, 13rem);
  padding-bottom: clamp(6rem, 10vw, 9rem);
  overflow-x: hidden;
  overflow-y: hidden;
}

@media (max-width: 47.999rem) {
  .jp-rooms-intro {
  min-height: 68svh;
  padding-top: 8rem;
  padding-bottom: 6.5rem;
  }
}

.jp-rooms-intro::after {
  content: "";
  position: absolute;
  left: max(var(--space-1-m), calc((100vw - 90rem) / 2 + var(--space-1-m)));
  bottom: clamp(2.5rem, 4vw, 4.25rem);
  width: clamp(12rem, 34vw, 30rem);
  height: 1px;
  background: var(--timber);
  opacity: 0.9;
}

@media (max-width: 47.999rem) {
  .jp-rooms-intro::after {
  left: 1.5rem;
  bottom: 2.5rem;
  width: 13rem;
  }
}

.jp-rooms-intro-inner {
  max-width: 90rem;
}

.jp-rooms-title {
  max-width: 8ch;
  margin: 0px 0px clamp(2rem, 4vw, 3.5rem);
  font-size: clamp(5rem, 10vw, 9.5rem);
  line-height: 0.84;
  letter-spacing: -0.05em;
}

@media (max-width: 47.999rem) {
  .jp-rooms-title {
  font-size: clamp(4.5rem, 22vw, 6rem);
  line-height: 0.84;
  }
}

.jp-rooms-intro-copy {
  max-width: 46rem;
  margin: 0px;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.55;
}

@media (max-width: 47.999rem) {
  .jp-rooms-intro-copy {
  max-width: 30rem;
  font-size: 1.1rem;
  }
}

.jp-rooms-collection {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-rooms-collection {
  padding-top: 7rem;
  padding-bottom: 7rem;
  }
}

.jp-rooms-collection-inner {
  max-width: 90rem;
}

.jp-rooms-collection-heading {
  max-width: 13ch;
  margin: 0px;
  font-size: clamp(4rem, 7vw, 7rem);
  line-height: 0.9;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-rooms-collection-heading {
  max-width: 10ch;
  font-size: clamp(3.25rem, 15vw, 4.6rem);
  }
}

.jp-rooms-ocean {
  position: relative;
  min-height: min(94svh, 62rem);
  padding: 0px;
  display: flex;
  align-items: flex-end;
  overflow-x: visible;
  overflow-y: visible;
  isolation: isolate;
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean {
  min-height: 86svh;
  }
}

.jp-rooms-ocean::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1;
  pointer-events: none;
  background-image: linear-gradient(90deg, rgba(12, 14, 12, 0.84) 0%, rgba(12, 14, 12, 0.5) 48%, rgba(12, 14, 12, 0.08) 82%), linear-gradient(0deg, rgba(12, 14, 12, 0.62) 0%, rgba(12, 14, 12, 0) 62%);
  background-position-x: initial, initial;
  background-position-y: initial, initial;
  background-size: initial, initial;
  background-repeat: initial, initial;
  background-attachment: initial, initial;
  background-origin: initial, initial;
  background-clip: initial, initial;
  background-color: initial;
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean::after {
  background-image: linear-gradient(0deg, rgba(12, 14, 12, 0.9) 0%, rgba(12, 14, 12, 0.38) 68%, rgba(12, 14, 12, 0.28) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  }
}

.jp-rooms-ocean-grid {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: inherit;
  padding: 0px;
  display: block;
}

.jp-rooms-ocean-media {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.jp-rooms-ocean-media .jp-media-placeholder {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-rooms-ocean-media img {
  object-position: center 48% !important;
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean-media img {
  object-position: 58% center !important;
  }
}

.jp-rooms-ocean-caption {
  position: absolute;
  right: 1.75rem;
  bottom: 1.5rem;
  z-index: 3;
  max-width: 22rem;
  margin: 0px;
  color: var(--linen);
  text-align: right;
  opacity: 0.76;
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean-caption {
  top: 1rem;
  right: 1.5rem;
  bottom: auto;
  max-width: 13rem;
  font-size: 0.65rem;
  line-height: 1.35;
  }
}

.jp-rooms-ocean-copy {
  position: relative;
  z-index: 2;
  width: min(100% - 3.5rem, 90rem);
  margin: 0px auto;
  padding-top: clamp(12rem, 24vh, 20rem);
  padding-bottom: clamp(5rem, 10vh, 8rem);
  color: var(--linen);
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean-copy {
  width: calc(100% - 3rem);
  padding-top: 12rem;
  padding-bottom: 4.5rem;
  }
}

.jp-rooms-suite-heading {
  max-width: 10ch;
  margin: 0px 0px clamp(1.75rem, 3vw, 2.75rem);
  color: inherit;
  font-size: clamp(4rem, 7vw, 7rem);
  line-height: 0.9;
  letter-spacing: -0.045em;
}

@media (max-width: 47.999rem) {
  .jp-rooms-suite-heading {
  font-size: clamp(3.25rem, 15vw, 4.6rem);
  }
}

.jp-rooms-suite-copy {
  max-width: 34rem;
  margin: 0px 0px clamp(2.5rem, 5vw, 4rem);
  color: inherit;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.75;
}

.jp-rooms-ocean-facts {
  max-width: 52rem;
  margin: 0px;
  padding-top: 1.5rem;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: rgba(243, 237, 230, 0.38);
  display: grid;
  grid-template-columns: repeat(4, minmax(0px, 1fr));
  grid-template-rows: auto auto;
  grid-auto-flow: column;
  column-gap: 2rem;
  row-gap: 0.45rem;
}

@media (max-width: 47.999rem) {
  .jp-rooms-ocean-facts {
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  grid-template-rows: repeat(4, auto);
  column-gap: 1.25rem;
  }
}

.jp-rooms-ocean-facts dt {
  color: rgba(243, 237, 230, 0.68);
}

.jp-rooms-ocean-facts dd {
  color: var(--linen);
  font-size: 0.95rem;
}

.jp-rooms-garden {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-rooms-garden-grid {
  align-items: center;
  column-gap: clamp(3rem, 7vw, 7rem);
  row-gap: clamp(3.5rem, 7vw, 6rem);
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-grid {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: 100%;
  margin: 0px;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-sizing: border-box;
  }
}

.jp-rooms-garden-media {
  grid-column-start: 7;
  grid-column-end: span 6;
  grid-row-start: 1;
  grid-row-end: auto;
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-media {
  order: 0;
  }
}

.jp-rooms-garden-media .jp-media-placeholder {
  aspect-ratio: 4 / 5;
}

.jp-rooms-garden-copy {
  grid-column-start: 2;
  grid-column-end: span 4;
  grid-row-start: 1;
  grid-row-end: auto;
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-copy {
  order: 1;
  }
}

.jp-rooms-garden-heading {
  max-width: 10ch;
  margin: 0px 0px clamp(1.75rem, 3vw, 2.75rem);
  font-size: clamp(4rem, 6.2vw, 6.4rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-heading {
  font-size: clamp(3.25rem, 14vw, 4.5rem);
  }
}

.jp-rooms-garden-description {
  max-width: 32rem;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.8;
}

.jp-rooms-garden-facts {
  max-width: 34rem;
  margin: 0px;
  padding-top: 1.5rem;
  border-top: 1px solid var(--divider);
  display: grid;
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  column-gap: 2rem;
  row-gap: 0.45rem;
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-facts {
  column-gap: 1.25rem;
  }
}

.jp-rooms-closing {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
}

@media (max-width: 47.999rem) {
  .jp-rooms-closing {
  padding-top: 7rem;
  padding-bottom: 7rem;
  }
}

.jp-rooms-closing-inner {
  max-width: 90rem;
}

.jp-rooms-closing-copy {
  max-width: 24ch;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-rooms-closing-copy {
  font-size: clamp(2.9rem, 13vw, 4.2rem);
  }
}

.jp-rooms-closing-cta {
  padding: 0.8rem 1.1rem;
}

body:has(.jp-rooms-intro) [data-reveal][data-motion-state="pending"] {
  opacity: 0.72;
  transform: translateY(0.35rem);
}

@media (max-width: 47.999rem) {
  .jp-rooms-garden-grid > * {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.jp-rooms-intro) [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-plan-intro {
  position: relative;
  min-height: min(72svh, 52rem);
  display: flex;
  align-items: flex-end;
  padding-top: clamp(8rem, 15vw, 13rem);
  padding-bottom: clamp(6rem, 10vw, 9rem);
  overflow-x: hidden;
  overflow-y: hidden;
}

@media (max-width: 47.999rem) {
  .jp-plan-intro {
  min-height: 68svh;
  padding-top: 8rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-intro::after {
  content: "";
  position: absolute;
  left: max(var(--space-1-m),calc((100vw - 90rem)/2 + var(--space-1-m)));
  bottom: clamp(2.5rem, 4vw, 4.25rem);
  width: clamp(12rem, 34vw, 30rem);
  height: 1px;
  background: var(--timber);
  opacity: 0.9;
}

@media (max-width: 47.999rem) {
  .jp-plan-intro::after {
  left: 1.5rem;
  bottom: 2.5rem;
  width: 13rem;
  }
}

.jp-plan-intro-inner {
  max-width: 90rem;
}

.jp-plan-title {
  max-width: 12ch;
  margin: 0px 0px clamp(2rem, 4vw, 3.5rem);
  font-size: clamp(4.6rem, 9vw, 8.8rem);
  line-height: 0.86;
  letter-spacing: -0.05em;
}

@media (max-width: 47.999rem) {
  .jp-plan-title {
  font-size: clamp(4rem, 19vw, 5.4rem);
  line-height: 0.86;
  }
}

.jp-plan-intro-copy {
  max-width: 43rem;
  margin: 0px;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.55;
}

@media (max-width: 47.999rem) {
  .jp-plan-intro-copy {
  font-size: 1.1rem;
  }
}

.jp-plan-availability {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-plan-availability {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-availability-inner {
  max-width: 90rem;
}

.jp-plan-section-heading {
  max-width: 12ch;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  font-size: clamp(3.8rem, 6.5vw, 6.7rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-plan-section-heading {
  font-size: clamp(3.15rem, 14vw, 4.35rem);
  }
}

.jp-plan-section-lead {
  max-width: 45rem;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  line-height: 1.65;
}

.jp-plan-calendar {
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  padding: clamp(1.25rem, 4vw, 3.5rem);
  background: var(--page-bg);
  box-shadow: rgba(0, 0, 0, 0.08) 0px 1.5rem 5rem;
}

@media (max-width: 47.999rem) {
  .jp-plan-calendar {
  padding: 1rem;
  }
}

.jp-plan-form-section {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-plan-form-section {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-form-inner {
  max-width: 90rem;
}

.jp-plan-form-heading {
  max-width: 13ch;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  font-size: clamp(3.7rem, 6vw, 6.2rem);
  line-height: 0.94;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-plan-form-heading {
  font-size: clamp(3.15rem, 14vw, 4.35rem);
  }
}

.jp-plan-form {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  row-gap: 1rem;
  column-gap: 1rem;
  background: var(--page-bg);
}

@media (max-width: 47.999rem) {
  .jp-plan-form {
  padding: 1.25rem;
  }
}

.jp-plan-form input, .jp-plan-form textarea {
  min-height: 3.25rem;
  padding: 0.85rem 1rem;
}

.jp-plan-form textarea {
  min-height: 10rem;
}

.jp-plan-form button {
  justify-self: start;
  margin-top: 1rem;
  padding: 0.9rem 1.2rem;
}

.jp-plan-facts-section {
  padding-top: clamp(8rem, 14vw, 12rem);
  padding-bottom: clamp(8rem, 14vw, 12rem);
}

@media (max-width: 47.999rem) {
  .jp-plan-facts-section {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-facts-inner {
  max-width: 90rem;
}

.jp-plan-facts-heading {
  max-width: 13ch;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  font-size: clamp(3.6rem, 6vw, 6.2rem);
  line-height: 0.94;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-plan-facts-heading {
  font-size: clamp(3.15rem, 14vw, 4.35rem);
  }
}

.jp-plan-facts-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0px, 1fr));
  border-top: 1px solid var(--divider);
}

@media (max-width: 47.999rem) {
  .jp-plan-facts-list {
  grid-template-columns: 1fr;
  }
}

@media (max-width: 63.999rem) {
  .jp-plan-facts-list {
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  }
}

.jp-plan-facts-list li {
  min-height: 9rem;
  padding: 1.5rem 1rem 1.5rem 0px;
  border-right: 1px solid var(--divider);
  border-bottom-width: 0px;
  border-bottom-style: none;
  border-bottom-color: currentcolor;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

@media (max-width: 63.999rem) {
  .jp-plan-facts-list li {
  border-bottom: 1px solid var(--divider);
  }
}

.jp-plan-facts-list li + li {
  padding-left: 1rem;
}

.jp-plan-facts-list li:last-child {
  border-right-width: 0px;
  border-right-style: none;
  border-right-color: currentcolor;
}

.jp-plan-facts-list dt, .jp-plan-facts-list dd {
  white-space-collapse: collapse;
  text-wrap-mode: wrap;
  text-align: left;
}

.jp-plan-facts-list dd {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2vw, 2.1rem);
  line-height: 1.05;
}

.jp-plan-payment {
  padding-top: clamp(7rem, 11vw, 10rem);
  padding-bottom: clamp(7rem, 11vw, 10rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-plan-payment {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-payment-inner {
  max-width: 72rem;
}

.jp-plan-payment-heading {
  max-width: 16ch;
  margin-bottom: 2rem;
  font-size: clamp(3rem, 5vw, 5rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
}

@media (max-width: 47.999rem) {
  .jp-plan-payment-heading {
  font-size: clamp(2.8rem, 12vw, 4rem);
  }
}

.jp-plan-guide {
  padding-top: clamp(9rem, 15vw, 14rem);
  padding-bottom: clamp(9rem, 15vw, 14rem);
}

@media (max-width: 47.999rem) {
  .jp-plan-guide {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-guide-inner {
  max-width: 90rem;
}

.jp-plan-guide-heading {
  max-width: 13ch;
  margin-bottom: clamp(4rem, 8vw, 7rem);
  font-size: clamp(3.8rem, 6.5vw, 6.7rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
}

@media (max-width: 47.999rem) {
  .jp-plan-guide-heading {
  font-size: clamp(3.15rem, 14vw, 4.35rem);
  }
}

.jp-plan-guide-inner .jp-body-text {
  max-width: 44rem;
  margin-left: 8.333%;
  margin-bottom: 2.25rem;
  line-height: 1.9;
}

.jp-plan-guide-inner .jp-body-text:nth-of-type(2n) {
  margin-left: 41.666%;
}

.jp-plan-closing {
  padding-top: clamp(8rem, 14vw, 13rem);
  padding-bottom: clamp(8rem, 14vw, 13rem);
  background: var(--panel-bg);
}

@media (max-width: 47.999rem) {
  .jp-plan-closing {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  }
}

.jp-plan-closing-inner {
  max-width: 90rem;
}

body:has(.jp-plan-intro) [data-reveal][data-motion-state="pending"] {
  opacity: 0.72;
  transform: translateY(0.35rem);
}

@media (max-width: 47.999rem) {
  .jp-plan-facts-list li, .jp-plan-facts-list li + li {
  min-height: 7rem;
  padding: 1.25rem 0px;
  border-right-width: 0px;
  border-right-style: none;
  border-right-color: currentcolor;
  }
}

@media (max-width: 47.999rem) {
  .jp-plan-guide-inner .jp-body-text, .jp-plan-guide-inner .jp-body-text:nth-of-type(2n) {
  margin-left: 0px;
  max-width: none;
  line-height: 1.8;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.jp-plan-intro) [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

.jp-support-hero {
  min-height: 58svh;
  display: flex;
  align-items: flex-end;
  padding-block-start: clamp(8rem, 15vw, 14rem);
  padding-block-end: clamp(4.5rem, 8vw, 8rem);
  border-bottom: 1px solid color-mix(in srgb, var(--page-fg) 16%, transparent);
}

@media (max-width: 768px) {
  .jp-support-hero {
  min-height: 64svh;
  padding-block-start: 7rem;
  padding-block-end: 4rem;
  }
}

.jp-support-hero > .jp-container {
  margin: 0px auto;
}

.jp-support-hero .jp-eyebrow {
  margin-bottom: clamp(1rem, 2vw, 1.75rem);
}

.jp-support-hero .jp-heading-h1 {
  font-size: clamp(4.25rem, 8.5vw, 8.75rem);
  line-height: 0.86;
  max-width: 10ch;
  margin-bottom: clamp(1.75rem, 3vw, 3rem);
}

@media (max-width: 768px) {
  .jp-support-hero .jp-heading-h1 {
  font-size: clamp(3.75rem, 17vw, 5.25rem);
  }
}

.jp-support-hero .jp-lead {
  max-width: 39rem;
  font-size: clamp(1.1rem, 1.6vw, 1.45rem);
  line-height: 1.55;
}

.jp-support-intro {
  padding-block-start: clamp(5rem, 10vw, 9rem);
  padding-block-end: clamp(5rem, 10vw, 9rem);
}

.jp-support-intro .jp-container {
  margin-left: clamp(0rem, 11vw, 11rem);
}

@media (max-width: 768px) {
  .jp-support-intro .jp-container {
  margin-left: auto;
  }
}

.jp-support-intro .jp-heading-h3 {
  font-size: clamp(2.5rem, 5vw, 5rem);
  max-width: 12ch;
  line-height: 0.98;
  margin-bottom: 2rem;
}

.jp-support-intro .jp-body-text {
  max-width: 40rem;
}

.jp-travel-modes {
  padding-block-start: clamp(5rem, 9vw, 8rem);
  padding-block-end: clamp(5rem, 9vw, 8rem);
  background: var(--panel-bg);
}

.jp-travel-modes .jp-grid {
  row-gap: clamp(3rem, 9vw, 10rem);
  column-gap: clamp(3rem, 9vw, 10rem);
}

.jp-travel-modes .jp-col-5 {
  padding-top: 1.5rem;
  border-top: 1px solid color-mix(in srgb, var(--page-fg) 24%, transparent);
}

.jp-travel-modes .jp-heading-h3 {
  font-size: clamp(2.5rem, 4.2vw, 4.75rem);
  line-height: 0.95;
  margin-bottom: 1.75rem;
}

.jp-travel-modes .jp-todo, .jp-contact-editorial .jp-todo, .jp-faq-editorial .jp-todo {
  display: inline;
  padding: 0px;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  color: color-mix(in srgb, var(--page-fg) 68%, transparent);
  font-style: inherit;
  font-variant-ligatures: inherit;
  font-variant-caps: inherit;
  font-variant-numeric: inherit;
  font-variant-east-asian: inherit;
  font-variant-alternates: inherit;
  font-variant-position: inherit;
  font-variant-emoji: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
}

.jp-arrival-editorial {
  background: var(--evening-d-3);
  color: var(--linen);
  padding-block-start: clamp(6rem, 12vw, 12rem);
  padding-block-end: clamp(6rem, 12vw, 12rem);
}

.jp-arrival-editorial .jp-heading-h3 {
  color: inherit;
}

.jp-arrival-editorial .jp-body-text {
  margin-bottom: 0px;
  color: color-mix(in srgb, var(--linen) 76%, transparent);
}

.jp-faq-editorial {
  padding-block-start: clamp(5rem, 10vw, 10rem);
  padding-block-end: clamp(5rem, 10vw, 10rem);
}

.jp-faq-editorial .jp-container {
  max-width: 76rem;
}

.jp-faq-editorial .jp-link {
  margin-bottom: 0px;
}

.jp-contact-editorial {
  padding-block-start: clamp(5rem, 10vw, 10rem);
  padding-block-end: clamp(5rem, 10vw, 10rem);
  background: var(--panel-bg);
}

.jp-contact-editorial .jp-container {
  max-width: 64rem;
}

.jp-contact-editorial .jp-link[href^="mailto:"] {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 5rem);
  line-height: 1;
  margin-bottom: 2rem;
  overflow-wrap: anywhere;
}

.jp-contact-editorial .jp-form label {
  margin-top: 1rem;
}

.jp-contact-editorial .jp-form textarea, .jp-contact-editorial .jp-form button {
  grid-column-start: 1;
  grid-column-end: -1;
}

@media (max-width: 768px) {
  .jp-contact-editorial .jp-form textarea, .jp-contact-editorial .jp-form button {
  grid-column-start: auto;
  grid-column-end: auto;
  }
}

.jp-contact-editorial .jp-form input, .jp-contact-editorial .jp-form textarea {
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: transparent;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-bottom: 1px solid color-mix(in srgb, var(--page-fg) 32%, transparent);
  padding: 0.9rem 0px;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
}

.jp-contact-editorial .jp-form textarea {
  border: 1px solid color-mix(in srgb, var(--page-fg) 32%, transparent);
  padding: 1rem;
}

.jp-contact-editorial .jp-form button {
  justify-self: start;
  margin-top: 1.5rem;
}

.jp-contact-editorial > .jp-container > .jp-caption:last-child {
  margin-top: 1rem;
}

.jp-support-closing {
  padding-block-start: clamp(5rem, 9vw, 8rem);
  padding-block-end: clamp(5rem, 9vw, 8rem);
  border-top: 1px solid color-mix(in srgb, var(--page-fg) 16%, transparent);
}

.jp-support-closing .jp-lead {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 5rem);
  line-height: 0.98;
  max-width: 15ch;
}

.jp-travel-modes .jp-todo, .jp-travel-map .jp-todo, .jp-faq-editorial .jp-todo, .jp-contact-editorial .jp-todo {
  display: inline !important;
  padding: 0px !important;
  border-top-width: 0px !important;
  border-right-width: 0px !important;
  border-bottom-width: 0px !important;
  border-left-width: 0px !important;
  border-top-style: none !important;
  border-right-style: none !important;
  border-bottom-style: none !important;
  border-left-style: none !important;
  border-top-color: currentcolor !important;
  border-right-color: currentcolor !important;
  border-bottom-color: currentcolor !important;
  border-left-color: currentcolor !important;
  border-image-source: none !important;
  border-image-slice: 100% !important;
  border-image-width: 1 !important;
  border-image-outset: 0 !important;
  border-image-repeat: stretch !important;
  background-image: initial !important;
  background-position-x: initial !important;
  background-position-y: initial !important;
  background-size: initial !important;
  background-repeat: initial !important;
  background-attachment: initial !important;
  background-origin: initial !important;
  background-clip: initial !important;
  background-color: transparent !important;
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
}

.jp-faq-editorial-list {
  max-width: 76rem;
  column-gap: clamp(3rem, 8vw, 9rem);
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0px, 1fr)) !important;
}

@media (max-width: 768px) {
  .jp-faq-editorial-list {
  grid-template-columns: minmax(0px, 1fr) !important;
  }
}

.jp-guide-hero {
  min-height: 88svh;
}

@media (max-width: 768px) {
  .jp-guide-hero {
  min-height: 72svh;
  }
}

.jp-guide-hero .jp-hero__media::after, .jp-entry-hero .jp-hero__media::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  background-image: linear-gradient(rgba(9, 12, 11, 0.08) 15%, rgba(9, 12, 11, 0.72) 100%);
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
  pointer-events: none;
}

.jp-guide-hero .jp-heading-display, .jp-entry-hero .jp-heading-display {
  font-size: clamp(4.5rem, 10vw, 10.5rem);
  line-height: 0.84;
  max-width: 10ch;
}

.jp-guide-story {
  padding-block-start: clamp(6rem, 12vw, 12rem);
  padding-block-end: clamp(6rem, 12vw, 12rem);
}

@media (max-width: 768px) {
  .jp-guide-story {
  padding-block-start: 5rem;
  padding-block-end: 5rem;
  }
}

.jp-guide-story .jp-grid {
  align-items: center;
  row-gap: clamp(3rem, 7vw, 8rem);
  column-gap: clamp(3rem, 7vw, 8rem);
}

.jp-guide-story .jp-body-text {
  max-width: 38rem;
  color: color-mix(in srgb,var(--page-fg) 78%,transparent);
}

.jp-guide-story .jp-media-placeholder {
  aspect-ratio: 4 / 5;
  overflow-x: hidden;
  overflow-y: hidden;
}

@media (max-width: 768px) {
  .jp-guide-story .jp-media-placeholder {
  aspect-ratio: 3 / 4;
  }
}

.jp-guide-story .jp-media-placeholder img {
  transition-behavior: normal;
  transition-duration: 0s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: none;
}

.jp-guide-story .jp-btn {
  margin-top: 1.5rem;
}

.jp-guide-map {
  padding-block-start: clamp(5rem, 10vw, 9rem);
  padding-block-end: clamp(5rem, 10vw, 9rem);
  background: var(--panel-bg);
}

.jp-guide-map .jp-heading-h2 {
  font-size: clamp(3rem, 5vw, 5.5rem);
  line-height: 0.92;
}

.jp-guide-closing {
  padding-block-start: clamp(6rem, 12vw, 11rem);
  padding-block-end: clamp(6rem, 12vw, 11rem);
  border-top: 1px solid color-mix(in srgb,var(--page-fg) 16%,transparent);
}

.jp-guide-closing .jp-lead {
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.9;
  max-width: 12ch;
}

.jp-listing-hero .jp-heading-display {
  font-size: clamp(4.5rem, 10vw, 10rem);
  line-height: 0.82;
  margin-bottom: 2rem;
}

.jp-listing-hero .jp-lead {
  max-width: 44rem;
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  line-height: 1.55;
}

.jp-listing-section {
  padding-block-start: clamp(5rem, 10vw, 10rem);
  padding-block-end: clamp(5rem, 10vw, 10rem);
}

.jp-listing-section > .jp-listing-grid {
  width: min(100% - 3rem, 90rem);
  margin-inline-start: auto;
  margin-inline-end: auto;
}

@media (max-width: 768px) {
  .jp-listing-section > .jp-listing-grid {
  width: calc(100% - 3rem);
  }
}

.jp-listing-section .jp-listing-grid {
  row-gap: clamp(2rem, 4vw, 4rem);
  column-gap: clamp(1.25rem, 3vw, 3rem);
}

.jp-listing-section .jp-listing-card {
  border-top: 1px solid color-mix(in srgb,var(--page-fg) 18%,transparent);
  padding-top: 1rem;
}

.jp-listing-section .jp-listing-card__media {
  aspect-ratio: 4 / 5;
  overflow-x: hidden;
  overflow-y: hidden;
}

.jp-listing-section .jp-media-placeholder {
  aspect-ratio: 4 / 5;
  overflow-x: hidden;
  overflow-y: hidden;
}

.jp-entry-hero {
  min-height: 82svh;
}

@media (max-width: 768px) {
  .jp-entry-hero {
  min-height: 72svh;
  }
}

.jp-entry-hero .jp-lead {
  max-width: 42rem;
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
}

.jp-entry-editorial {
  padding-block-start: clamp(5rem, 10vw, 10rem);
  padding-block-end: clamp(5rem, 10vw, 10rem);
}

.jp-entry-editorial .jp-grid {
  row-gap: clamp(3rem, 7vw, 8rem);
  column-gap: clamp(3rem, 7vw, 8rem);
  align-items: start;
}

@media (max-width: 47.99rem) {
  .jp-entry-editorial .jp-grid {
  grid-template-columns: minmax(0px, 1fr) !important;
  }
}

.jp-entry-editorial .jp-entry-body h2 {
  font-size: clamp(2.75rem, 5vw, 5.5rem);
  line-height: 0.94;
  margin: 0px 0px 2rem;
}

.jp-entry-editorial .jp-entry-body h3 {
  font-size: clamp(2rem, 3vw, 3.25rem);
  line-height: 1;
}

.jp-entry-editorial .jp-entry-body p {
  max-width: 44rem;
}

.jp-entry-editorial .jp-facts-row {
  padding-block-start: 1rem;
  padding-block-end: 1rem;
  border-bottom: 1px solid color-mix(in srgb,var(--page-fg) 16%,transparent);
}

.jp-entry-editorial .jp-map-container {
  min-height: 22rem;
  margin-block-start: 2rem;
  margin-block-end: 1rem;
}

.jp-entry-gallery {
  padding-block-start: clamp(5rem, 10vw, 10rem);
  padding-block-end: clamp(5rem, 10vw, 10rem);
  background: var(--evening-d-3);
  color: var(--linen);
}

.jp-entry-gallery .jp-gallery-grid {
  row-gap: clamp(0.75rem, 2vw, 2rem);
  column-gap: clamp(0.75rem, 2vw, 2rem);
}

@media (max-width: 768px) {
  .jp-guide-hero .jp-heading-display, .jp-entry-hero .jp-heading-display, .jp-listing-hero .jp-heading-display {
  font-size: clamp(4rem, 18vw, 5.5rem);
  }
}

body:has(.jp-houseguide-kicker) main {
  width: min(100% - 3rem, 76rem);
  margin-inline-start: auto;
  margin-inline-end: auto;
  padding-block-start: clamp(9rem, 16vw, 15rem);
  padding-block-end: clamp(6rem, 12vw, 12rem);
}

@media (max-width: 768px) {
  body:has(.jp-houseguide-kicker) main {
  width: calc(100% - 3rem);
  padding-block-start: 7rem;
  padding-block-end: 5rem;
  }
}

.jp-houseguide-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--timber);
  margin: 0px 0px 1.5rem;
}

.jp-explorer-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--timber);
  margin: 0px 0px 1.5rem;
  width: min(100% - 3rem, 90rem);
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.jp-houseguide-title {
  font-family: var(--font-display);
  font-size: clamp(4.25rem, 9vw, 9rem);
  font-weight: 500;
  line-height: 0.86;
  letter-spacing: -0.035em;
  max-width: 9ch;
  margin: 0px 0px clamp(2rem, 4vw, 4rem);
}

@media (max-width: 768px) {
  .jp-houseguide-title {
  font-size: clamp(4rem, 17vw, 5.25rem);
  }
}

.jp-houseguide-lead {
  font-size: clamp(1.15rem, 1.7vw, 1.5rem);
  line-height: 1.55;
  max-width: 40rem;
  margin: 0px 0px clamp(6rem, 12vw, 11rem);
  color: color-mix(in srgb,var(--page-fg) 76%,transparent);
}

.jp-houseguide-heading {
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 5vw, 5.5rem);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.025em;
  max-width: 12ch;
  padding-top: 2rem;
  margin: 0px 0px 1.75rem;
  border-top: 1px solid color-mix(in srgb,var(--page-fg) 20%,transparent);
}

@media (max-width: 768px) {
  .jp-houseguide-heading {
  margin-left: 0px !important;
  }
}

.jp-houseguide-copy {
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.75;
  max-width: 44rem;
  margin: 0px 0px clamp(5rem, 10vw, 9rem);
  color: color-mix(in srgb,var(--page-fg) 78%,transparent);
}

@media (max-width: 768px) {
  .jp-houseguide-copy {
  margin-left: 0px !important;
  }
}

.jp-houseguide-heading:nth-of-type(2n) {
  margin-left: auto;
}

.jp-houseguide-copy:nth-of-type(2n) {
  margin-left: auto;
}

body:has(.jp-explorer-title) main {
  padding-bottom: clamp(4rem, 8vw, 7rem);
  padding-top: 32px;
}

@media (max-width: 768px) {
  body:has(.jp-explorer-title) main {
  padding-top: 24px;
  }
}

.jp-explorer-title {
  width: min(100% - 3rem, 90rem);
  margin-inline-start: auto;
  margin-inline-end: auto;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.035em;
  margin-top: 0px;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 1.05;
  margin-bottom: 24px;
}

@media (max-width: 768px) {
  .jp-explorer-title {
  font-size: clamp(2.5rem, 8vw, 3.5rem);
  }
}

.jp-explorer-map {
  width: min(100% - 3rem, 90rem);
  margin-inline-start: auto;
  margin-inline-end: auto;
  overflow-x: hidden;
  overflow-y: hidden;
  border: 1px solid color-mix(in srgb,var(--page-fg) 18%,transparent);
  background: var(--panel-bg);
  min-height: 80svh;
}

@media (max-width: 768px) {
  .jp-explorer-map {
  width: 100%;
  border-inline-start-width: 0px;
  border-inline-end-width: 0px;
  border-inline-start-style: none;
  border-inline-end-style: none;
  border-inline-start-color: currentcolor;
  border-inline-end-color: currentcolor;
  min-height: 72svh;
  }
}

.jp-legal-editorial {
  max-width: 68rem;
  padding-top: clamp(9rem, 15vw, 14rem);
  padding-bottom: clamp(6rem, 12vw, 11rem);
}

@media (max-width: 768px) {
  .jp-legal-editorial {
  padding-top: 7rem;
  padding-bottom: 5rem;
  }
}

.jp-legal-editorial > .jp-eyebrow:first-child {
  margin-bottom: 1.5rem;
}

.jp-legal-editorial > .jp-heading-h1 {
  font-size: clamp(4.25rem, 8vw, 8rem);
  line-height: 0.86;
  max-width: 10ch;
  margin-bottom: clamp(2rem, 4vw, 4rem);
}

@media (max-width: 768px) {
  .jp-legal-editorial > .jp-heading-h1 {
  font-size: clamp(3.75rem, 16vw, 5rem);
  }
}

.jp-legal-editorial > .jp-lead {
  max-width: 42rem;
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  line-height: 1.55;
  margin-bottom: clamp(5rem, 9vw, 9rem);
}

.jp-legal-editorial > .jp-body-text {
  max-width: 48rem;
  color: color-mix(in srgb,var(--page-fg) 80%,transparent);
  line-height: 1.75;
}

.jp-legal-editorial > .jp-legal-list li {
  padding-block-start: 0.65rem;
  padding-block-end: 0.65rem;
  line-height: 1.65;
}

.jp-legal-editorial .jp-link {
  margin-bottom: 0px;
}

body:has(.jp-coming-soon) {
  margin: 0px;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgb(17, 19, 18);
  color: rgb(243, 237, 230);
}

body:has(.jp-coming-soon) #main-content {
  min-height: 100svh;
}

.jp-gate {
  width: min(100%, 90rem);
  min-height: 100svh;
  margin: 0px auto;
  padding: clamp(1.5rem, 3vw, 3rem) clamp(1.25rem, 5vw, 5rem) 1.5rem;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto 1fr auto auto;
}

@media (max-width: 47.99rem) {
  .jp-gate {
  min-height: 100svh;
  padding: 1.4rem 1.25rem 1.2rem;
  grid-template-rows: auto auto auto auto;
  }
}

.jp-gate__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  row-gap: 2rem;
  column-gap: 2rem;
  padding-bottom: clamp(2rem, 5vw, 5rem);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: rgba(243, 237, 230, 0.16);
}

@media (max-width: 47.99rem) {
  .jp-gate__top {
  padding-bottom: 2rem;
  }
}

.jp-gate__place {
  margin: 0px;
  font-family: var(--font-body);
  font-size: 0.68rem;
  line-height: 1.5;
  letter-spacing: 0.19em;
  text-transform: uppercase;
  color: rgba(243, 237, 230, 0.48);
  text-align: right;
  padding-top: 0.25rem;
}

@media (max-width: 47.99rem) {
  .jp-gate__place {
  max-width: 11rem;
  font-size: 0.58rem;
  }
}

.jp-gate__foot {
  margin: 0px;
  font-family: var(--font-body);
  font-size: 0.68rem;
  line-height: 1.5;
  letter-spacing: 0.19em;
  text-transform: uppercase;
  color: rgba(243, 237, 230, 0.48);
  padding-top: 1.4rem;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: rgba(243, 237, 230, 0.16);
}

.jp-gate__hero {
  display: grid;
  grid-template-columns: minmax(0px, 1.55fr) minmax(17rem, 0.45fr);
  row-gap: clamp(2rem, 8vw, 9rem);
  column-gap: clamp(2rem, 8vw, 9rem);
  align-items: end;
  padding: clamp(4rem, 8vw, 8rem) 0px clamp(4rem, 8vw, 7rem);
}

@media (max-width: 47.99rem) {
  .jp-gate__hero {
  grid-template-columns: 1fr;
  row-gap: 2rem;
  column-gap: 2rem;
  padding: 3.5rem 0px 3rem;
  }
}

.jp-gate__eyebrow {
  margin: 0px 0px 1.1rem;
  font-family: var(--font-body);
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgb(200, 162, 106);
}

.jp-gate__title {
  margin: 0px;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
  color: rgb(243, 237, 230);
  max-width: 14ch;
  font-size: clamp(3.3rem, 6.2vw, 6.8rem);
  line-height: 0.91;
}

@media (max-width: 47.99rem) {
  .jp-gate__title {
  font-size: clamp(3rem, 15.5vw, 4.4rem);
  line-height: 0.92;
  }
}

.jp-gate__subtitle {
  margin: 0px;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
  color: rgb(243, 237, 230);
  font-size: clamp(2.25rem, 3.7vw, 4.15rem);
  line-height: 0.98;
}

@media (max-width: 47.99rem) {
  .jp-gate__subtitle {
  font-size: 2.55rem;
  }
}

.jp-gate__intro {
  max-width: 25rem;
  padding-bottom: 0.45rem;
  font-family: var(--font-body);
}

@media (max-width: 47.99rem) {
  .jp-gate__intro {
  max-width: 22rem;
  }
}

.jp-gate__intro p {
  margin: 0px 0px 1.6rem;
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  line-height: 1.75;
  color: rgba(243, 237, 230, 0.72);
}

.jp-gate__mail {
  color: rgb(200, 162, 106);
  text-underline-offset: 0.35em;
  text-decoration-thickness: 1px;
}

.jp-gate__subscribe {
  display: grid;
  grid-template-columns: minmax(0px, 1fr) minmax(22rem, 0.72fr);
  row-gap: clamp(2rem, 8vw, 9rem);
  column-gap: clamp(2rem, 8vw, 9rem);
  padding: clamp(2.5rem, 4vw, 4.5rem) 0px;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: rgba(243, 237, 230, 0.16);
}

@media (max-width: 47.99rem) {
  .jp-gate__subscribe {
  grid-template-columns: 1fr;
  row-gap: 2.2rem;
  column-gap: 2.2rem;
  padding: 2.8rem 0px;
  }
}

.jp-gate__note {
  max-width: 31rem;
  margin: 1.4rem 0px 0px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.75;
  color: rgba(243, 237, 230, 0.5);
}

.jp-gate__form-wrap {
  align-self: end;
}

.jp-gate__form {
  display: grid;
  row-gap: 0.7rem;
  column-gap: 0.7rem;
}

.jp-gate__form label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(243, 237, 230, 0.72);
}

.jp-gate__field {
  display: grid;
  grid-template-columns: minmax(0px, 1fr) auto;
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: rgba(200, 162, 106, 0.64);
  border-right-color: rgba(200, 162, 106, 0.64);
  border-bottom-color: rgba(200, 162, 106, 0.64);
  border-left-color: rgba(200, 162, 106, 0.64);
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
}

@media (max-width: 47.99rem) {
  .jp-gate__field {
  grid-template-columns: 1fr;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  row-gap: 0.65rem;
  column-gap: 0.65rem;
  }
}

.jp-gate__field input {
  min-width: 0px;
  height: 3.35rem;
  box-sizing: border-box;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  padding: 0px 1rem;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgba(255, 255, 255, 0.035);
  color: rgb(243, 237, 230);
  font-style: inherit;
  font-variant-ligatures: inherit;
  font-variant-caps: inherit;
  font-variant-numeric: inherit;
  font-variant-east-asian: inherit;
  font-variant-alternates: inherit;
  font-variant-position: inherit;
  font-variant-emoji: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  outline-color: initial;
  outline-style: none;
  outline-width: initial;
}

.jp-gate__field input::placeholder {
  color: rgba(243, 237, 230, 0.32);
}

.jp-gate__field input:focus-visible {
  box-shadow: rgb(200, 162, 106) 0px 0px 0px 2px inset;
}

.jp-gate__field button {
  min-height: 3.35rem;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: rgba(200, 162, 106, 0.64);
  padding: 0px 1.25rem;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgb(200, 162, 106);
  color: rgb(21, 22, 21);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
}

.jp-gate__field button:hover {
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgb(220, 192, 143);
}

.jp-gate__field button:focus-visible {
  outline-color: rgb(243, 237, 230);
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 3px;
}

.jp-gate a:focus-visible {
  outline-color: rgb(243, 237, 230);
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 3px;
}

.jp-gate__consent {
  max-width: 34rem;
  margin: 1rem 0px 0px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  line-height: 1.65;
  color: rgba(243, 237, 230, 0.43);
}

.jp-gate__consent a {
  color: rgba(243, 237, 230, 0.74);
}

@media (max-width: 47.99rem) {
  .jp-gate__field input, .jp-gate__field button {
  width: 100%;
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: rgba(200, 162, 106, 0.64);
  border-right-color: rgba(200, 162, 106, 0.64);
  border-bottom-color: rgba(200, 162, 106, 0.64);
  border-left-color: rgba(200, 162, 106, 0.64);
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jp-gate * {
  scroll-behavior: auto !important;
  transition-behavior: normal !important;
  transition-duration: 0s !important;
  transition-timing-function: ease !important;
  transition-delay: 0s !important;
  transition-property: none !important;
  }
}

#main-content {
  min-height: 100svh;
}

.jp-gate__logo-mark {
  width: clamp(8.5rem, 13vw, 12rem);
  height: 4.5rem;
  background-image: url("/uploads/fX0PayF2_wETtasOpuXhp-logo-light.png");
  background-position-x: left;
  background-position-y: top;
  background-size: contain;
  background-repeat: no-repeat;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: initial;
}

@media (max-width: 47.99rem) {
  .jp-gate__logo-mark {
  width: 8.5rem;
  height: 3.75rem;
  }
}

[data-instatic-honeypot] {
  display: none !important;
}

.jp-theme-fab {
  display: none !important;
}

body:has(.jp-coming-soon) .jp-theme-fab {
  display: none !important;
}

@media (max-width: 47.99rem) {
  .jp-entry-editorial .jp-grid > .jp-col-5 {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0px !important;
  grid-column-start: 1 !important;
  grid-column-end: -1 !important;
  }
}

body:has(.jp-header) {
  --jp-readable-label: #4b5a52;
  --jp-action-gold: #76582d;
  --jp-action-hover: #65491f;
  --jp-action-on-fill: #fffefd;
}

@media (min-width: 0px) {
  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 (min-width: 0px) {
  :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);
}

@media (min-width: 0px) {
  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) {
  color: var(--jp-action-gold);
}

body:has(.jp-header) .jp-btn--quiet {
  border-color: var(--jp-action-gold);
}

@media (min-width: 0px) {
  body:has(.jp-header) .jp-btn--quiet {
  border-color: var(--jp-action-gold);
  }
}

body:has(.jp-header) :is(.jp-link, .jp-weather__attribution 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);
}

@media (min-width: 0px) {
  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):focus-visible {
  outline: 2px solid var(--jp-action-gold);
  outline-offset: 4px;
}

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;
}

@media (min-width: 0px) {
  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;
  }
}

@media (max-width: 47.99rem) {
  body:has(.jp-header) .jp-container:not(.jp-header__inner) {
  width: 100% !important;
  box-sizing: border-box;
  }
}

@media (max-width: 47.99rem) {
  body:has(.jp-header) .jp-facts-panel .maplibregl-ctrl-attrib {
  float: none;
  margin: 0px;
  max-width: 100%;
  font-size: 11px;
  line-height: 1.35;
  box-sizing: border-box;
  }
}

@media (max-width: 47.99rem) {
  body:has(.jp-header) .jp-facts-panel .maplibregl-ctrl-attrib-inner {
  white-space-collapse: collapse;
  text-wrap-mode: wrap;
  overflow-wrap: normal;
  padding-right: 20px;
  }
}

body:has(.jp-header) :is(.jp-rooms-collection, .jp-rooms-closing) {
  padding-block-start: clamp(4rem, 7vw, 7rem);
  padding-block-end: clamp(4rem, 7vw, 7rem);
}

@media (min-width: 0px) {
  body:has(.jp-header) :is(.jp-rooms-collection, .jp-rooms-closing) {
  padding-block-start: clamp(4rem, 7vw, 7rem);
  padding-block-end: clamp(4rem, 7vw, 7rem);
  }
}

@media (min-width: 0px) {
  body:has(.jp-header) :is(.jp-link, .jp-btn--quiet, .jp-weather__attribution a, .jp-related-list a) {
  color: var(--jp-action-gold);
  }
}

@media (min-width: 0px) {
  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;
  }
}

@media (min-width: 0px) {
  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;
  }
}

.jp-weather-compact__title {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 500;
  margin: 0px;
}

.jp-plan-reference-links {
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.5rem;
  column-gap: 2rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--divider);
}

body:has(.jp-plan-intro) .jp-plan-intro::after {
  display: none;
}

body:has(.jp-plan-intro) main .jp-container {
  max-width: 64rem;
  margin-inline-start: auto;
  margin-inline-end: auto;
}

@media (max-width: 47.99rem) {
  body:has(.jp-plan-intro) main .jp-container {
  padding-inline-start: 24px;
  padding-inline-end: 24px;
  }
}

body:has(.jp-plan-intro) .jp-plan-facts-list > div {
  display: block;
  min-width: 0px;
  padding: 0px;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
}

body:has(.jp-plan-intro) .jp-plan-facts-list dt {
  font-size: 0.875rem;
  margin: 0px 0px 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: 0px;
  overflow-wrap: normal;
}

body:has(.jp-plan-intro) .jp-plan-before-list li + li {
  margin-top: 0.6rem;
}

body:has(.jp-plan-intro) .jp-plan-guide-inner .jp-body-text {
  margin: 0px;
  max-width: 50rem;
  line-height: 1.6;
}

body:has(.jp-plan-intro) .jp-plan-payment .jp-body-text {
  max-width: 48rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.jp-plan-reference-links a {
  display: inline-flex;
  align-items: center;
  row-gap: 0.6rem;
  column-gap: 0.6rem;
  min-height: 44px;
}

.jp-weather:has(> .jp-weather-compact__title)[hidden] {
  display: none;
}

.jp-weather:has(> .jp-weather-compact__title) .jp-weather__stat dt {
  font-size: 0.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: 0.9375rem;
  line-height: 1.5;
  font-weight: 500;
}

@media (max-width: 47.99rem) {
  body:has(.jp-plan-intro) .jp-avail-months {
  width: 100%;
  grid-template-columns: minmax(0px, 1fr);
  }
}

@media (max-width: 47.99rem) {
  body:has(.jp-plan-intro) .jp-avail-grid {
  grid-template-columns: repeat(7, minmax(0px, 1fr));
  row-gap: 0px;
  column-gap: 0px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.jp-plan-intro) .jp-avail-day {
  transition-behavior: normal;
  transition-duration: 0s;
  transition-timing-function: ease;
  transition-delay: 0s;
  transition-property: none;
  }
}

@media (max-width: 47.99rem) {
  body:has(.jp-plan-intro) .jp-avail-day {
  width: 100%;
  min-width: 0px;
  height: 44px;
  }
}

body:has(.jp-plan-intro) .jp-plan-availability-inner > .jp-plan-calendar {
  width: 100%;
  min-width: 0px;
}

body:has(.jp-plan-intro) .jp-plan-availability-inner > .jp-weather {
  box-sizing: border-box;
  min-width: 0px;
  max-width: 100%;
  grid-template-columns: 1fr;
  align-self: start;
  row-gap: 0.75rem;
  column-gap: 0.75rem;
  padding: 1rem;
  margin-top: 1.5rem;
  background: var(--page-bg);
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}

@media (min-width: 75rem) {
  body:has(.jp-plan-intro) .jp-plan-availability-inner > .jp-weather {
  margin-top: 1rem;
  }
}

body:has(.jp-plan-intro) .jp-plan-availability-inner > .jp-weather .jp-weather__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  row-gap: 0.65rem;
  column-gap: 1rem;
}

@media (min-width: 75rem) {
  body:has(.jp-plan-intro) .jp-plan-availability-inner > :is(.jp-eyebrow, .jp-plan-section-heading, .jp-plan-section-lead) {
  grid-column-start: 1;
  grid-column-end: -1;
  }
}

body:has(.jp-coming-soon) .jp-header {
  display: none;
}

body:has(.jp-coming-soon) .jp-footer {
  display: none;
}

.jp-house-opening-media > .jp-figure > .jp-media-placeholder, .jp-rooms-ocean-media > .jp-figure > .jp-media-placeholder {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.jp-rooms-ocean-grid .jp-rooms-ocean-media .jp-figure {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  min-height: 100%;
  aspect-ratio: auto;
  position: absolute !important;
  height: 100% !important;
}

.jp-builder-immersive-figure {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  min-height: 100%;
  aspect-ratio: auto;
  position: absolute !important;
  height: 100% !important;
}