.jw-page {
  overflow: hidden;
}

.jw-page .container {
  width: min(100% - (var(--gutter) * 2), var(--container-max));
}

.jw-hero {
  padding: 3rem 0 0;
  background: var(--color-ivory-white);
}

.jw-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-rows: auto minmax(31rem, auto);
  gap: 0;
  position: relative;
}

.jw-hero__inner > * { min-width: 0; }

.jw-hero__content {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  padding: 1.5rem 2rem 1.5rem 0;
}

.jw-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  color: var(--color-deep-olive);
  font-size: var(--text-small);
  line-height: var(--line-small);
}

.jw-breadcrumb a { text-decoration: none; }
.jw-breadcrumb a:hover { text-decoration: underline; }

.jw-hero__media {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: calc(100% + max(0px, (100vw - var(--container-max)) / 2));
  min-height: 42.5rem;
  margin: 0;
  border-radius: 0;
  border: var(--border);
  border-right: 0;
}

.jw-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: left center; }
.jw-hero__media figcaption { position: absolute; right: 1.5rem; bottom: 1.5rem; max-width: 18rem; margin: 0; padding: .75rem; border: 1px solid var(--color-satin-bronze); background: var(--color-warm-white); }

.jw-hero__panel {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  width: min(100%, 32.5rem);
  padding: 3rem 2rem 3rem 0;
  background: var(--color-ivory-white);
}

.jw-hero__panel > * { min-width: 0; margin: 0; }
.jw-hero__panel h1 { max-width: 32.5rem; font-size: clamp(2.75rem, 4.8vw, 4.25rem); }
.jw-hero__panel .intro { max-width: 29rem; }

.jw-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}
.jw-hero__actions > * { min-width: 0; }

.jw-text-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  border-bottom: 1px solid transparent;
  color: var(--color-deep-olive);
  font-size: var(--text-button);
  font-weight: 700;
  text-decoration: none;
  transition: border-color var(--transition-control), color var(--transition-control);
}
.jw-text-link:hover { border-color: var(--color-satin-bronze); color: var(--color-deep-olive); }

.jw-orientation { overflow-x: auto; border-block: 1px solid color-mix(in srgb, var(--color-satin-bronze) 55%, transparent); background: var(--color-sky-blue); }
.jw-orientation__scroll { display: flex; justify-content: center; min-width: max-content; padding: .9rem var(--gutter); }
.jw-orientation p { margin: 0; color: var(--color-deep-olive); font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; line-height: 1.4; white-space: nowrap; }
.jw-orientation span { padding-inline: .55rem; color: var(--color-olive-green); }

.jw-route { position: relative; padding: var(--space-9) 0; }
.jw-route::before { position: absolute; top: 0; bottom: 0; left: calc(50% - 32rem); width: 1px; background: linear-gradient(to bottom, transparent, var(--color-satin-bronze) 8%, var(--color-satin-bronze) 92%, transparent); content: ""; opacity: .75; }
.jw-route--late { padding-top: 0; }

.jw-scene { position: relative; padding-block: var(--space-8); }
.jw-scene__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 4fr) minmax(0, 6fr); column-gap: var(--space-5); row-gap: var(--space-5); position: relative; }
.jw-scene__grid > * { min-width: 0; }

.jw-time { grid-column: 1; align-self: start; display: flex; flex-direction: column; gap: var(--space-2); padding-top: .45rem; }
.jw-time span { color: var(--color-terracotta); font-family: var(--font-heading); font-size: clamp(2rem, 3vw, 3rem); line-height: 1; }
.jw-time b { color: var(--color-deep-olive); font-size: var(--text-meta); letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }

.jw-scene__copy { grid-column: 2; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.jw-scene__copy > * { min-width: 0; margin: 0; }
.jw-scene__copy h2 { max-width: 26rem; }
.jw-scene__copy > p:not(.jw-stationary) { max-width: 26.5rem; }

.jw-rhythm-note { display: flex; flex-direction: column; gap: var(--space-2); width: min(100%, 19rem); padding-top: var(--space-4); border-top: 1px solid var(--color-satin-bronze); }
.jw-rhythm-note > * { margin: 0; }

.jw-scene__media { width: 100%; margin: 0; border: var(--border); border-radius: var(--radius-card); }
.jw-scene__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-image); }
.jw-scene__media:hover img { transform: scale(1.025); }
.jw-scene__media figcaption { margin: 0; padding: .75rem; border-top: 1px solid var(--color-satin-bronze); background: var(--color-warm-white); transition: transform var(--transition-control); }
.jw-scene__media:hover figcaption { transform: translateY(-.5rem); }

.jw-scene__media--arrival { grid-column: 3; height: 26.875rem; }
.jw-scene--dinner .jw-scene__media { grid-column: 2; grid-row: 1; height: 28rem; }
.jw-scene--dinner .jw-scene__copy { grid-column: 3; grid-row: 1; }
.jw-scene--bar .jw-scene__media { grid-column: 2 / span 2; grid-row: 1; height: 27rem; }
.jw-scene--bar .jw-scene__copy { grid-column: 3; grid-row: 1; align-self: center; width: min(100%, 26.5rem); justify-self: end; }
.jw-scene--entertainment { padding-block: var(--space-9); }
.jw-scene--entertainment .jw-scene__media { grid-column: 3; grid-row: 1; height: 28rem; }
.jw-scene--lounge .jw-scene__media { grid-column: 3; grid-row: 1; height: 25rem; }

.jw-table-note { grid-column: 2; grid-row: 2; width: min(100%, 19rem); margin-top: -8rem; margin-left: var(--space-4); position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--space-3); }
.jw-table-note > * { margin: 0; }
.jw-table-note p:not(.meta) { max-width: 18rem; }

.jw-pace-list { grid-column: 3; display: flex; flex-direction: column; gap: 0; width: min(100%, 22.5rem); justify-self: end; }
.jw-pace-list > div { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); column-gap: var(--space-3); align-items: center; min-height: 3.5rem; border-top: 1px solid var(--color-satin-bronze); }
.jw-pace-list > div:last-child { border-bottom: 1px solid var(--color-satin-bronze); }
.jw-pace-list span, .jw-formats > article > span { color: var(--color-satin-bronze); font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; }
.jw-pace-list p { margin: .5rem 0; line-height: 1.45; }

.jw-stationary { color: var(--color-deep-olive); font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.jw-stationary span { color: var(--color-satin-bronze); padding-inline: .25rem; }

.jw-formats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: var(--space-4); border-top: 1px solid var(--color-satin-bronze); }
.jw-formats > article { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); min-width: 0; padding: var(--space-5); border-right: 1px solid var(--color-satin-bronze); }
.jw-formats > article:first-child { padding-left: 0; }
.jw-formats > article:last-child { border-right: 0; }
.jw-formats > article > * { min-width: 0; margin: 0; }
.jw-formats h3 { font-size: clamp(1.6rem, 2vw, 2rem); }

.jw-tempo { padding-block: var(--space-9); }
.jw-tempo__head { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); column-gap: var(--space-5); }
.jw-tempo__head > * { min-width: 0; }
.jw-tempo__head > div { grid-column: 1; }
.jw-tempo__head > p { grid-column: 2; max-width: 35rem; margin: 0; font-size: var(--text-intro); line-height: 1.5; }
.jw-tempo__tabs { display: flex; flex-direction: column; gap: var(--space-5); margin-top: var(--space-7); }
.jw-tempo__tablist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--color-stone); }
.jw-tempo__tablist > button { min-width: 0; min-height: 3rem; padding: .75rem var(--space-3); border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--color-deep-olive); font-size: var(--text-button); }
.jw-tempo__tablist > button:hover, .jw-tempo__tablist > button[aria-selected="true"] { border-color: var(--color-terracotta); background: transparent; color: var(--color-deep-olive); }
.jw-tempo__panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.jw-tempo__panels > article { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); min-width: 0; min-height: 14rem; padding: var(--space-5); border: var(--border); background: var(--color-warm-white); }
.jw-tempo__panels > article > * { min-width: 0; margin: 0; }
.jw-tempo__panels > article p { max-width: 20rem; }
.jw-tempo__panels > article[hidden] { display: none; }

.jw-lounge-quote { grid-column: 3; width: min(100%, 27rem); margin: 0; justify-self: end; }

.jw-late { position: relative; background: var(--color-ivory-white); }
.jw-late__media { width: 100%; height: 35rem; margin: 0; }
.jw-late__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.jw-late__panel { position: relative; margin-top: -16rem; padding-bottom: var(--space-8); }
.jw-late__panel > div { display: flex; flex-direction: column; gap: var(--space-4); width: min(41.666%, 35rem); padding: var(--space-6); border: 1px solid var(--color-satin-bronze); background: var(--color-ivory-white); }
.jw-late__panel > div > * { min-width: 0; margin: 0; }
.jw-late__panel > div > p:not(.eyebrow):not(.jw-late__statement):not(.jw-late__place) { max-width: 29rem; }
.jw-late__statement { color: var(--color-deep-olive); font-size: .95rem; font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.jw-late__place { color: var(--color-deep-olive); font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.jw-contact { background: var(--color-olive-plaster); }
.jw-contact__inner { display: grid; grid-template-columns: minmax(0, 1fr); }
.jw-contact__inner > div { grid-column: 1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); width: min(50%, 40rem); margin-left: 8.333%; }
.jw-contact__inner > div > * { min-width: 0; margin: 0; }
.jw-contact__inner p:not(.eyebrow):not(.jw-contact__groups) { max-width: 32.5rem; }
.jw-contact__groups { display: flex; flex-wrap: wrap; gap: var(--space-2); max-width: 34rem; padding-top: var(--space-4); border-top: 1px solid color-mix(in srgb, var(--color-deep-olive) 35%, transparent); }
.jw-contact__groups a { min-height: auto; }

.jw-scene.is-current .jw-time span { color: var(--color-terracotta); }

@media (max-width: 64.9375rem) {
  .jw-hero { padding-top: var(--space-5); }
  .jw-hero__inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; gap: 0; }
  .jw-hero__content { grid-column: 1; grid-row: auto; padding: 0 0 var(--space-4); }
  .jw-hero__media { grid-column: 1; grid-row: auto; width: 100%; min-height: 25rem; border-right: var(--border); }
  .jw-hero__panel { grid-column: 1; grid-row: auto; width: min(100%, 39rem); padding: var(--space-6) 0 0; }
  .jw-hero__panel .intro { max-width: 34rem; }

  .jw-route::before { left: calc(var(--gutter) + 1rem); }
  .jw-scene { padding-block: var(--space-7); }
  .jw-scene__grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-5); padding-left: 3rem; }
  .jw-time, .jw-scene__copy, .jw-scene__media, .jw-scene--dinner .jw-scene__media, .jw-scene--dinner .jw-scene__copy, .jw-scene--bar .jw-scene__media, .jw-scene--bar .jw-scene__copy, .jw-scene--entertainment .jw-scene__media, .jw-scene--lounge .jw-scene__media, .jw-table-note, .jw-pace-list, .jw-lounge-quote { grid-column: 1; grid-row: auto; width: 100%; justify-self: stretch; }
  .jw-time { padding-top: 0; }
  .jw-scene__copy > p:not(.jw-stationary) { max-width: 34rem; }
  .jw-scene__media--arrival, .jw-scene--dinner .jw-scene__media, .jw-scene--bar .jw-scene__media, .jw-scene--entertainment .jw-scene__media, .jw-scene--lounge .jw-scene__media { height: 22rem; }
  .jw-scene--bar .jw-scene__copy { width: 100%; }
  .jw-table-note { width: min(100%, 21rem); margin: 0; }
  .jw-pace-list { width: min(100%, 28rem); justify-self: start; }
  .jw-formats { grid-template-columns: minmax(0, 1fr); margin-top: 0; }
  .jw-formats > article, .jw-formats > article:first-child { padding: var(--space-5) 0; border-right: 0; border-bottom: 1px solid var(--color-satin-bronze); }
  .jw-formats > article:last-child { border-bottom: 0; }
  .jw-lounge-quote { justify-self: start; }

  .jw-tempo__head { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .jw-tempo__head > div, .jw-tempo__head > p { grid-column: 1; }
  .jw-tempo__panels { grid-template-columns: minmax(0, 1fr); }
  .jw-tempo__panels > article { min-height: 0; }
  .jw-tempo__panels > article[hidden] { display: flex; }
  .jw-tempo__tablist { display: none; }

  .jw-late__media { height: 27.5rem; }
  .jw-late__panel { margin-top: 0; padding-inline: 0; padding-bottom: var(--space-7); }
  .jw-late__panel > div { width: min(100%, 42rem); margin: 0; padding: var(--space-6) var(--gutter); border-inline: 0; }
  .jw-contact__inner > div { width: min(100%, 40rem); margin-left: 0; }
}

@media (max-width: 44.9375rem) {
  .jw-hero { padding-top: var(--space-4); }
  .jw-hero__content { padding-bottom: var(--space-3); }
  .jw-hero__content .eyebrow { margin-top: var(--space-3); }
  .jw-hero__media { min-height: 19rem; }
  .jw-hero__media figcaption { display: none; }
  .jw-hero__panel { gap: var(--space-4); padding-top: var(--space-5); }
  .jw-hero__panel h1 { font-size: clamp(2.6rem, 12vw, 3.2rem); }
  .jw-hero__panel .intro { font-size: 1.125rem; }
  .jw-hero__actions { align-items: flex-start; flex-direction: column; }
  .jw-hero__actions .button { width: 100%; }

  .jw-orientation__scroll { justify-content: flex-start; min-height: 3rem; }
  .jw-route { padding-block: var(--space-7); }
  .jw-route::before { left: calc(var(--gutter) + .25rem); }
  .jw-scene { padding-block: var(--space-6); }
  .jw-scene__grid { padding-left: 1.75rem; row-gap: var(--space-4); }
  .jw-time { gap: .125rem; }
  .jw-time span { font-size: 2rem; }
  .jw-scene__copy { gap: var(--space-3); }
  .jw-scene__copy h2 { font-size: clamp(2.1rem, 10vw, 2.45rem); }
  .jw-scene__copy > p:not(.jw-stationary), .jw-rhythm-note { max-width: none; }
  .jw-scene__media--arrival, .jw-scene--dinner .jw-scene__media, .jw-scene--bar .jw-scene__media, .jw-scene--entertainment .jw-scene__media, .jw-scene--lounge .jw-scene__media { height: 18.75rem; }
  .jw-scene__media figcaption { padding: .625rem; }
  .jw-table-note { width: 100%; }
  .jw-pace-list { width: 100%; }
  .jw-pace-list > div { min-height: 3.25rem; }
  .jw-formats > article { gap: var(--space-2); padding-block: var(--space-4); }
  .jw-formats .jw-text-link { min-height: 2.75rem; }
  .jw-lounge-quote { padding-left: var(--space-4); font-size: 1.35rem; }

  .jw-tempo { padding-block: var(--space-7); }
  .jw-tempo__tabs { margin-top: var(--space-5); }
  .jw-tempo__panels { gap: var(--space-4); }
  .jw-tempo__panels > article { padding: var(--space-4); }
  .jw-tempo__panels > article p { max-width: none; }

  .jw-late__media { height: 20rem; }
  .jw-late__panel > div { padding: var(--space-5) var(--gutter); }
  .jw-late__statement { font-size: .84rem; line-height: 1.8; }
  .jw-contact__inner > div { gap: var(--space-3); }
  .jw-contact .button { width: 100%; min-height: 3rem; }
  .jw-contact__groups { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
}

@media (prefers-reduced-motion: reduce) {
  .jw-scene__media:hover img, .jw-scene__media:hover figcaption { transform: none; }
}
