/* =====================================================
   Panels: the text cards that slide in during the holds.
   On dark velvet scenes (data-card="paper"): cream handmade
   paper, a champagne gold hairline, wine ink. On cream scenes
   (data-card="velvet"): burgundy velvet with cream text.
   Desktop: about 40% of the width on the right (scrollfilm.js
   slides them in). Portrait: bottom sheets. No JS, a boot
   error or reduced motion: cards in the normal flow.
   ===================================================== */
:root {
  --card-pad: clamp(28px, 3vw, 52px);
  --card-radius: 6px;
  --hair: rgba(211, 193, 129, 0.75);
  --paper-ink: #3e0a0c;
  --paper-ink-soft: rgba(62, 10, 12, 0.78);
  --velvet-ink: #efece3;
  --velvet-ink-soft: rgba(239, 236, 227, 0.8);
}

.panel {
  position: relative;
  width: min(92vw, 680px);
  margin: 0 auto 18vh;
  padding: var(--card-pad);
  border-radius: var(--card-radius);
  font: 400 clamp(17px, 1.2vw, 20px) / 1.62 var(--ff-sans);
  box-shadow: 0 30px 70px rgba(10, 2, 3, 0.45), 0 3px 10px rgba(10, 2, 3, 0.3);
}

/* the gold hairline, inset from the edge like the scene cards */
.panel::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--hair);
  border-radius: calc(var(--card-radius) - 2px);
  pointer-events: none;
}

[data-card="paper"] .panel {
  color: var(--paper-ink);
  background: var(--tex-card-paper, linear-gradient(180deg, #efe8da, #e6dcc8));
  background-color: #efe8da;
}

[data-card="velvet"] .panel {
  color: var(--velvet-ink);
  background: var(--tex-card-velvet, radial-gradient(120% 90% at 50% 40%, #6b1418, #3e0a0c 70%, #2a0507));
  background-color: #3e0a0c;
}

/* the booking card brings its own paper (components/booking) */
.panel.panel--book {
  padding: 0;
  background: none;
  box-shadow: none;
  color: var(--velvet-ink);
}

.panel--book::before {
  display: none;
}

.panel--book > * {
  transition: opacity 0.45s ease;
}

/* book.js: the HTML card fades away while the film folds its own card */
.panel--book.is-away > * {
  opacity: 0;
  pointer-events: none;
}

/* list containers stay out of the way: their items are the panels */
.pins {
  list-style: none;
}

/* ---- film on, landscape: absolute cards on the right ----------------- */
.film-on:not(.reduced) .panel {
  position: absolute;
  right: 4vw;
  width: var(--panel-w);
  min-width: 400px;
  max-width: 700px;
  margin: 0;
  will-change: transform, opacity;
}

.film-on:not(.reduced) .panel--book {
  left: 0;
  right: 0;
  width: min(680px, 92vw);
  min-width: 0;
  margin: 0 auto;
}

/* ---- portrait: bottom sheets ---------------------------------------- */
.is-portrait.film-on:not(.reduced) .panel {
  left: 0;
  right: 0;
  width: 100%;
  min-width: 0;
  max-width: none;
  border-radius: 22px 22px 0 0;
  padding: 34px 22px 96px; /* clear of the fixed Book button */
  font-size: 17px;
  box-shadow: 0 -18px 50px rgba(10, 2, 3, 0.45);
}

.is-portrait .panel::before {
  inset: 8px 8px 0;
  border-bottom: 0;
  border-radius: 16px 16px 0 0;
}

.is-portrait.film-on:not(.reduced) .panel--book {
  padding: 0 0 96px;
  box-shadow: none;
}

/* ---- reduced motion / no film: a readable column over the pose ------ */
.reduced .track,
:root:not(.film-on) .track {
  padding: 30vh 0 12vh;
}

@media (max-width: 599px) {
  .panel {
    font-size: 17px;
  }
}

/* short cards (a number, a pin, the hero) take less of the scene */
.film-on:not(.reduced):not(.is-portrait) :is(.panel--hero, .panel--stat, .panel--pin, [data-panel="r6-head"], [data-panel="google"]) {
  width: 30vw;
  min-width: 360px;
  max-width: 520px;
}
