/* Ipic Play. Supporting pages (loads after styles.css). Quiet, static chrome,
   simple reveals only. No engine. */
.page-head { padding: calc(var(--chrome) + var(--sc-8)) 0 var(--sc-7); }
.page-head h1 { max-width: 14ch; }
.page-head .lede { margin-top: var(--sc-5); }
.page-head .actions { margin-top: var(--sc-6); }
.actions { display: flex; flex-wrap: wrap; gap: var(--sc-3); align-items: center; }
.page-section { padding-block: var(--sc-section); }
.page-section--tight { padding-block: var(--sc-8); }
.section-head { max-width: 22ch; margin-bottom: var(--sc-6); }
.note { color: var(--sc-ink-soft); font-size: var(--sc-t-sm); max-width: var(--sc-measure); }
.stack > .btn, .stack > .actions { margin-top: var(--sc-5); }

/* feature rows: text beside a photograph, media width by its shape */
.feature { display: grid; grid-template-columns: 7fr 5fr; gap: var(--sc-7); align-items: center; }
.feature--portrait { grid-template-columns: 5fr 7fr; }
.feature--portrait .feature__copy { order: 2; }
.feature--flip .feature__media { order: 2; }
.feature--flip.feature--portrait .feature__copy { order: 0; }
.feature + .feature { margin-top: var(--sc-9); }
.feature__media { margin: 0; }
.feature__media img, .duo img, .visit__photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 4px; box-shadow: var(--sc-e2); }
.feature__media--land { aspect-ratio: 3 / 2; }
/* the trampoline frame already has her head at the very top edge of the source,
   so a centred cover crop decapitates her: keep the top, trim the floor */
.feature__top { object-position: 50% 0 !important; }
/* the same band the landing page writes, so the same control pays the same way */
.cost__you {
  margin-top: var(--sc-4); padding: var(--sc-3) var(--sc-4);
  background: var(--navy); color: #fff; border-radius: 4px;
  font-family: var(--sc-font-display); font-weight: 700; font-variation-settings: "opsz" 40;
  font-size: var(--sc-t-lg); line-height: 1.25; letter-spacing: -0.01em; max-width: 34ch;
}
.cost__you:empty { display: none; }
.feature__media--port { aspect-ratio: 4 / 5; max-height: 76vh; }
.feature__copy h2 { max-width: 14ch; }
.feature__fact { font-family: var(--sc-font-display); font-weight: 700; font-variation-settings: "opsz" 40; color: var(--sc-accent); font-size: var(--sc-t-lg); letter-spacing: -0.01em; }
.feature__copy > * + * { margin-top: var(--sc-4); }
@media (max-width: 860px) {
  .feature, .feature--portrait { grid-template-columns: 1fr; gap: var(--sc-5); }
  .feature--portrait .feature__copy, .feature--flip.feature--portrait .feature__copy { order: 2; }
  .feature--flip .feature__media { order: 0; }
  .feature__media--port { max-height: 60vh; }
  .feature + .feature { margin-top: var(--sc-8); }
}

/* two photographs side by side */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sc-4); margin: 0; }
.duo figure { margin: 0; }
.duo figcaption { margin-top: var(--sc-2); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }
.duo img { aspect-ratio: 4 / 3; }
@media (max-width: 700px) { .duo { grid-template-columns: 1fr; } }

/* plain definition lists (add-ons, contact) */
.facts { display: grid; grid-template-columns: 1fr auto; gap: var(--sc-3) var(--sc-5); margin: 0; align-items: baseline; }
.facts dt { font-weight: 700; }
.facts dd { margin: 0; text-align: right; font-family: var(--sc-font-display); font-weight: 800; font-size: var(--sc-t-lg); font-variant-numeric: tabular-nums; }
.facts--stack { grid-template-columns: auto 1fr; }
.facts--stack dd { text-align: left; font-family: var(--sc-font-text); font-weight: 400; font-size: var(--sc-t-base); }
.facts--stack a { color: inherit; font-weight: 700; }
.facts + .note { margin-top: var(--sc-5); }

/* packages */
.packs { display: grid; grid-template-columns: 7fr 5fr; gap: var(--sc-6); align-items: start; }
.pack { padding: var(--sc-6); border-radius: 4px; background: var(--sc-surface); color: var(--navy); box-shadow: var(--sc-e2); position: relative; }
.pack--popular { background: var(--yellow); }
.pack__tag { position: absolute; top: var(--sc-4); right: var(--sc-4); background: var(--navy); color: #fff; font-family: var(--sc-font-text); font-weight: 700; font-size: var(--sc-t-xs); letter-spacing: 0.06em; text-transform: uppercase; padding: var(--sc-1) var(--sc-3); border-radius: 4px; }
.pack__price { margin-top: var(--sc-4); font-family: var(--sc-font-display); font-weight: 800; font-size: var(--sc-t-2xl); letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.pack__price small { display: block; font-family: var(--sc-font-text); font-weight: 700; font-size: var(--sc-t-sm); letter-spacing: 0; margin-top: var(--sc-2); }
.pack ul { margin: var(--sc-5) 0 0; padding: 0; list-style: none; display: grid; gap: var(--sc-2); }
.pack li { padding-left: 1.6em; position: relative; }
.pack li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.9em; height: 0.45em; border-left: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: rotate(-45deg); }
.pack__not { margin-top: var(--sc-5); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }
.pack--popular .pack__not { color: #3A3D4C; }
.pack .btn { margin-top: var(--sc-5); }
@media (max-width: 860px) { .packs { grid-template-columns: 1fr; } }

/* menu-ish tables (platters, extras, slots) */
.list-table { width: 100%; border-collapse: collapse; }
.list-table th, .list-table td { text-align: left; padding: var(--sc-3) 0; border-bottom: 1px solid var(--sc-hairline-strong); }
.list-table td:last-child, .list-table th:last-child { text-align: right; font-family: var(--sc-font-display); font-weight: 800; font-variant-numeric: tabular-nums; font-size: var(--sc-t-lg); }
.list-table th { font-family: var(--sc-font-text); font-weight: 700; font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }
.list-table caption { text-align: left; font-family: var(--sc-font-display); font-weight: 800; font-size: var(--sc-t-xl); letter-spacing: -0.02em; padding-bottom: var(--sc-4); }
.slots { display: flex; flex-wrap: wrap; gap: var(--sc-3); list-style: none; margin: 0; padding: 0; }
.slots li { font-family: var(--sc-font-display); font-weight: 800; font-size: var(--sc-t-xl); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; padding: var(--sc-3) var(--sc-4); border: 2px solid currentColor; border-radius: 4px; }
.themes-list { list-style: none; margin: var(--sc-6) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sc-3); }

/* prices page */
.cost__table { margin-top: var(--sc-5); }
.price-table th[scope="row"] { font-family: var(--sc-font-text); font-weight: 700; font-size: var(--sc-t-base); color: var(--sc-ink); }
.ground-detail { position: relative; overflow: clip; }
.ground-detail picture { display: contents; }
.ground-detail__img { position: absolute; right: -6%; top: 0; width: min(38vw, 26rem); height: 100%; object-fit: cover; opacity: 0.12; pointer-events: none; mask-image: linear-gradient(to left, #000 40%, transparent); -webkit-mask-image: linear-gradient(to left, #000 40%, transparent); }
.ground-detail > .wrap { position: relative; }

/* faq */
.faq { max-width: 46rem; }
.faq details { border-top: 1px solid var(--sc-hairline-strong); }
.faq details:last-child { border-bottom: 1px solid var(--sc-hairline-strong); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--sc-4); align-items: center; padding: var(--sc-4) 0; font-family: var(--sc-font-display); font-weight: 800; font-variation-settings: "opsz" 40; font-size: var(--sc-t-lg); letter-spacing: -0.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 0.7em; height: 0.7em; border-right: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: rotate(45deg); transition: transform 160ms var(--sc-ease-out); margin-right: 0.2em; }
.faq details[open] summary::after { transform: rotate(-135deg); }
.faq summary:hover { color: var(--sc-accent); }
.faq details > p { padding: 0 0 var(--sc-5); max-width: var(--sc-measure); }

/* visit */
.visit__photo { margin: 0; }
.visit__photo img { aspect-ratio: 16 / 9; }
.visit__photo figcaption { margin-top: var(--sc-2); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }

/* close: sign-off, the button, contact strip, footer. Same blue as the landing. */
.close { padding: var(--sc-9) 0 var(--sc-6); }
.close__signoff { max-width: 14ch; }
.close__btn {
  display: block; width: 100%; margin-top: var(--sc-6); background: #fff; color: var(--navy); text-decoration: none; text-align: center;
  font-family: var(--sc-font-display); font-weight: 800; font-variation-settings: "opsz" 96; letter-spacing: -0.03em; line-height: 1;
  font-size: clamp(1.8rem, 1rem + 3.4vw, 4.2rem); padding: clamp(1.1rem, 2.6vw, 2rem) var(--sc-5);
  border-radius: 4px; box-shadow: var(--sc-e3);
  transition: transform 140ms var(--sc-ease-out), background-color 140ms var(--sc-ease-out);
}
.close__btn:hover { background: #FFF8DB; }
.close__btn:active { transform: scale(0.985); }
.close__btn:focus-visible { outline: 4px solid #fff; outline-offset: 6px; }
.close__strip { display: flex; flex-wrap: wrap; gap: var(--sc-2) var(--sc-4); font-size: var(--sc-t-sm); font-weight: 700; margin-top: var(--sc-6); }
.close__strip a { color: #fff; }
.site-foot { padding: var(--sc-7) 0 calc(max(var(--sc-2), env(safe-area-inset-bottom)) + var(--actbar-h)); }
@media (max-width: 700px) {
  .close__strip span[aria-hidden], .site-foot__row span[aria-hidden] { display: none; }
  .site-foot__row { gap: var(--sc-1) var(--sc-4); }
}

/* reveals: opacity and a small rise, once, on entry. Reduced motion keeps the opacity only. */
[data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity 480ms var(--sc-ease-out), transform 480ms var(--sc-ease-out); }
[data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { transform: none; transition: opacity 240ms var(--sc-ease-out); }
  .faq summary::after, .close__btn { transition: none; }
}
