/* A complete desktop program within the viewport, with natural overflow
   retained for small windows and enlarged text. Mobile uses mobile.css. */
.weekend-story-page main {
  box-sizing: border-box;
  /* The sticky header is already in normal flow. */
  margin: 0;
  padding: 0 0 10px;
  height: calc(100svh - 112px);
  min-height: 550px;
  display: grid;
  grid-template-rows: 110px minmax(0, 1fr);
}
.weekend-story-page .ws-intro {
  padding: 6px 4vw;
  margin: 0;
  gap: 2px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.weekend-story-page .ws-intro h1 { font-size: 42px; line-height: 1; }
.weekend-story-page .ws-intro em { font-size: 17px; line-height: 1.2; }
.weekend-story-page .ws-stage,
.weekend-story-page.ws-saturday .ws-stage,
.weekend-story-page.ws-sunday .ws-stage {
  box-sizing: border-box;
  width: min(1440px, 94vw);
  margin: 0 auto;
  padding: 0 14px 12px;
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: 72px minmax(0, 1fr);
  gap: 10px;
}
.weekend-story-page .ws-days {
  position: static;
  height: 72px;
  min-height: 0;
  margin: 0;
}
.weekend-story-page .ws-day { padding: 5px 8px; grid-template-rows: 22px 30px; }
.weekend-story-page .ws-panel {
  min-height: 0;
  height: 100%;
  grid-template-columns: minmax(0, 40%) minmax(0, 60%);
}
.weekend-story-page .ws-panel[hidden] { display: none; }
.weekend-story-page .ws-panel figure { min-height: 0; height: 100%; }
.weekend-story-page .ws-copy {
  padding: clamp(14px, 2.2vh, 24px) clamp(24px, 3.2vw, 52px);
  justify-content: center;
  gap: 0;
  min-height: min-content;
}
.weekend-story-page .ws-copy > * { flex-shrink: 0; }
.weekend-story-page .ws-theme { margin: 0 0 clamp(12px, 1.7vh, 18px); }
.weekend-story-page .ws-date { display: flex; gap: 10px; align-items: baseline; }
.weekend-story-page .ws-date strong { font-size: 26px; line-height: 1; }
.weekend-story-page .ws-copy h2 {
  font-size: clamp(32px, 4.8vh, 50px);
  line-height: 1;
  margin: clamp(10px, 1.6vh, 16px) 0 clamp(8px, 1.2vh, 12px);
}
.weekend-story-page .ws-standfirst {
  max-width: none;
  font-size: 18px;
  line-height: 1.32;
  margin: 0 0 clamp(14px, 2vh, 20px);
}
.weekend-story-page .ws-copy li {
  padding: clamp(9px, 1.35vh, 13px) 0;
  line-height: 1.25;
}
.weekend-story-page .ws-dress-closing {
  display: block;
  margin-top: clamp(16px, 2vh, 22px);
  padding-top: 0;
}
.weekend-story-page .ws-dress,
.weekend-story-page .ws-sunday-note { margin: 0; }
.weekend-story-page .ws-guide { margin-top: 9px; min-height: 32px; }
.weekend-story-page .ws-checkout-note {
  margin: 7px 0 0;
  color: #506452;
  font: 400 14px/1.25 'Cormorant Garamond', Georgia, serif;
}
.weekend-story-page > footer {
  box-sizing: border-box;
  height: 34px;
  min-height: 0;
  margin: 0;
  padding: 8px 4vw;
  font-size: 10px;
}
@media (max-width: 1050px), (max-height: 680px) {
  .weekend-story-page main { height: auto; }
  .weekend-story-page .ws-stage { height: auto; }
  .weekend-story-page .ws-panel { height: auto; }
  .weekend-story-page .ws-panel figure { height: auto; }
}
@media (min-width: 1051px) and (not ((max-width: 1000px) and (max-height: 500px) and (pointer: coarse) and (hover: none))) and (max-height: 760px) {
  .weekend-story-page .ws-copy {
    padding-block: 12px;
  }
  .weekend-story-page .ws-theme { margin-bottom: 9px; }
  .weekend-story-page .ws-copy h2 { margin: 8px 0; }
  .weekend-story-page .ws-standfirst { margin-bottom: 10px; line-height: 1.25; }
  .weekend-story-page .ws-copy li { padding-block: 7px; }
  .weekend-story-page .ws-dress-closing { margin-top: 10px; padding-top: 0; }
  .weekend-story-page .ws-guide { margin-top: 6px; }
  .weekend-story-page .ws-checkout-note { margin-top: 5px; }
}
