.prices-page { color: #362e2f; background: var(--surface); color-scheme: light; }
.prices-page .man-header { color: #fff; background: #362e2f; border-bottom-color: rgb(255 255 255 / 16%); }
.prices-page a:focus-visible { outline-color: #362e2f; }
.prices-page .man-header :is(a,button,summary):focus-visible,
.prices-footer a:focus-visible { outline-color: white; }
.prices-skip:focus { position: fixed; z-index: 30; top: 8px; left: 8px; width: auto; height: auto; padding: 10px 14px; clip: auto; background: var(--surface); }
.prices-main { max-width: 1450px; margin: auto; padding: calc(var(--header-height) + 24px) var(--inset) 72px; }
.prices-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.prices-back { display: inline-block; font-size: 13px; margin-bottom: 20px; }
.prices-back:hover,.prices-inline-link:hover,.prices-footer-back:hover { text-decoration: underline; text-underline-offset: 5px; }
.prices-intro h1 { margin: 0; font: 500 64px/1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; text-transform: uppercase; }
.prices-note { margin: 12px 0 0; font-size: 12px; color: rgb(54 46 47 / 65%); }
.prices-hours { min-width: 205px; padding-left: 24px; border-left: 1px solid rgb(54 46 47 / 25%); font-size: 13px; }
.prices-hours > span { display: block; margin-bottom: 12px; color: rgb(54 46 47 / 65%); }
.prices-hours p { display: flex; gap: 24px; justify-content: space-between; margin: 6px 0 0; }
.prices-hours b { font-weight: 400; white-space: nowrap; }
.prices-nav { position: sticky; z-index: 5; top: var(--header-height); display: flex; gap: 32px; align-items: center; overflow-x: auto; min-height: 48px; margin: 0 calc(-1 * var(--inset)) 32px; padding: 8px var(--inset); border-bottom: 1px solid rgb(54 46 47 / 20%); background: var(--surface); }
.prices-nav a { flex: 0 0 auto; font-size: 13px; white-space: nowrap; }
.prices-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.price-section { scroll-margin-top: calc(var(--header-height) + 64px); margin-bottom: 72px; }
.price-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 28px; }
.price-heading h2 { margin: 0; font: 500 clamp(32px,3vw,42px)/1.1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; text-transform: uppercase; }
.session-label { padding: 8px 12px; border: 1px solid rgb(54 46 47 / 30%); font-size: 13px; white-space: nowrap; }
.admission-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid #362e2f; }
.admission-rate { min-width: 0; padding: 28px; }
.admission-rate + .admission-rate { border-left: 1px solid rgb(54 46 47 / 35%); }
.rate-kicker { font-size: 12px; color: rgb(54 46 47 / 65%); }
.admission-rate h3 { margin: 14px 0 30px; font: 500 29px/1.1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; }
.admission-price { margin: 0; font: 500 clamp(42px,4vw,60px)/1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; white-space: nowrap; }
.admission-price span { font-size: .65em; }
.extension-rate { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgb(54 46 47 / 22%); font-size: 15px; }
.extension-rate small { margin-left: 12px; color: rgb(54 46 47 / 65%); font-size: 12px; }
.extension-rate > span:last-child { white-space: nowrap; }
.prices-inline-link { font-size: 13px; }
.vip-rate-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.vip-rate-grid article { border-top: 1px solid #362e2f; padding-top: 22px; }
.vip-rate-grid h3 { margin: 0; font: 500 32px/1.1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; }
.vip-rate-grid p { font-size: 14px; margin: 14px 0 24px; }
.rate-pending { font-size: 13px; color: rgb(54 46 47 / 65%); }
.service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 48px; margin: 0; padding: 0; list-style: none; }
.service-rate { display: flex; justify-content: space-between; align-items: start; gap: 18px; min-width: 0; padding: 22px 0; border-top: 1px solid rgb(54 46 47 / 25%); }
.service-rate h3 { margin: 0 0 10px; font: 500 27px/1.15 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; }
.service-price { flex-shrink: 0; white-space: nowrap; font-size: 18px; font-variant-numeric: tabular-nums; padding-top: 4px; }
.rate-duration { font-size: 12px; color: rgb(54 46 47 / 65%); }
.rate-extra { margin: 10px 0 0; font-size: 12px; }
.simple-rates { display: grid; gap: 0 48px; padding: 0; margin: 0; list-style: none; }
.simple-rates li { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 16px 0; border-bottom: 1px solid rgb(54 46 47 / 20%); font-size: 15px; }
.rate-value { flex-shrink: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rental-rates { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.accessory-rates { grid-template-columns: repeat(2,minmax(0,1fr)); }
.prices-contact { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 24px; border-top: 1px solid #362e2f; }
.prices-contact p { margin: 0; font-size: 15px; }
.prices-contact a { white-space: nowrap; font: 500 36px/1.1 'Fira Sans Extra Condensed','Arial Narrow',sans-serif; }
.prices-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 32px var(--inset); color: white; background: #362e2f; }
.prices-footer-back { display: inline-flex; gap: 12px; align-items: center; font-size: 13px; }
.prices-footer-back svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.prices-footer-phone { font-size: 18px; white-space: nowrap; }
@media(max-width:900px) {
  .admission-rate { padding: 22px 18px; }
  .service-grid,.simple-rates { column-gap: 28px; }
  .rental-rates { grid-template-columns: minmax(0,1fr); gap: 0; }
}
@media(max-width:640px) {
  .prices-main { padding-top: calc(var(--header-height) + 20px); padding-bottom: 48px; }
  .prices-intro { align-items: start; }
  .prices-back { margin-bottom: 18px; }
  .prices-intro h1 { font-size: 48px; }
  .prices-hours { min-width: 0; padding-left: 14px; margin-top: 38px; font-size: 11px; }
  .prices-hours > span { margin-bottom: 8px; }
  .prices-hours p { gap: 12px; }
  .prices-note { font-size: 11px; max-width: 130px; }
  .prices-nav { gap: 24px; margin-bottom: 24px; min-height: 44px; }
  .prices-nav a { font-size: 12px; }
  .price-section { margin-bottom: 48px; }
  .price-heading { align-items: start; flex-wrap: wrap; gap: 14px; margin-bottom: 22px; }
  .price-heading h2 { font-size: 34px; }
  .session-label { font-size: 12px; padding: 6px 10px; }
  .admission-grid { grid-template-columns: minmax(0,1fr); }
  .admission-rate { position: relative; padding: 22px; padding-right: 130px; }
  .admission-rate + .admission-rate { border-left: 0; border-top: 1px solid rgb(54 46 47 / 35%); }
  .admission-rate h3 { margin: 10px 0 0; font-size: 26px; }
  .admission-price { position: absolute; top: 28px; right: 22px; font-size: 40px; }
  .extension-rate { font-size: 14px; }
  .extension-rate small { display: block; margin: 6px 0 0; }
  .vip-rate-grid { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .vip-rate-grid article { display: grid; grid-template-columns: 1fr auto; gap: 8px 18px; padding-top: 18px; }
  .vip-rate-grid h3 { font-size: 28px; }
  .vip-rate-grid p { margin: 0; align-self: center; }
  .rate-pending { grid-column: 1 / -1; }
  .service-grid,.accessory-rates { grid-template-columns: minmax(0,1fr); }
  .service-rate h3 { font-size: 26px; }
  .service-price { font-size: 16px; }
  .simple-rates li { font-size: 14px; }
  .prices-contact { flex-direction: column; align-items: start; gap: 18px; }
  .prices-contact a { font-size: 32px; }
  .prices-footer { flex-direction: column; align-items: start; }
}


.section-note { font-size: 13px; line-height: 1.6; margin: -8px 0 24px; color: rgb(54 46 47 / 75%); }
.extension-rate + .section-note { margin-top: 16px; }
.benefits { border-bottom: 1px solid rgb(54 46 47 / 22%); padding: 20px 0; font-size: 14px; line-height: 1.7; }
.benefits summary { cursor: pointer; }
.benefits > div { max-width: 900px; }
@media(max-width:640px) {
 .admission-rate .rate-extra { margin-top: 18px; margin-right: -108px; line-height: 1.6; }
 .vip-rate-grid .service-price { grid-column: 1 / -1; }
 .prices-hours p { gap: 8px; }
}

/* Alternating full-width backgrounds keep the price sections distinct. */
.prices-nav { margin-bottom: 0; }
.price-section { margin-bottom: 0; padding: 40px 0; }
.price-section:nth-of-type(even) {
  background: var(--surface-alt);
  box-shadow: 0 0 0 100vmax var(--surface-alt);
  clip-path: inset(0 -100vmax);
}
.price-section:last-of-type { margin-bottom: 32px; }
@media(max-width:640px) {
  .price-section { padding: 32px 0; }
}

.curtain-rate-name { font-size: 22px; line-height: 1.4; }
@media(max-width:640px) { .curtain-rate-name { font-size: 20px; } }

.vip-rate-grid .vip-extension { margin: 16px 0 28px; font-size: 13px; line-height: 1.6; }
@media(max-width:640px) { .vip-rate-grid .vip-extension { grid-column: 1 / -1; margin: 4px 0 0; } }

/* Keep each admission price immediately beside its own duration and entry time. */
.admission-rate { display: flex; flex-direction: column; }
.admission-rate h3 { margin: 0 0 24px; min-height: 2.2em; }
.admission-offer { margin-bottom: 24px; }
.admission-rate .admission-price { position: static; }
.admission-condition { margin: 10px 0 0; font-size: 14px; line-height: 1.5; }
.admission-option { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; border-top: 1px solid rgb(54 46 47 / 20%); font-size: 13px; line-height: 1.5; }
.admission-option-price { font-size: 22px; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
.admission-option:last-child { padding-bottom: 0; }
.admission-benefit-condition { margin: 0; padding-top: 18px; border-top: 1px solid rgb(54 46 47 / 20%); font-size: 13px; line-height: 1.5; }
@media(max-width:640px) {
 .admission-rate { padding: 22px; }
 .admission-rate h3 { min-height: 0; margin: 0 0 20px; }
 .admission-rate .admission-price { font-size: 44px; }
 .admission-offer { margin-bottom: 20px; }
}

.admission-extension { display: block; margin: 0 0 18px; color: rgb(54 46 47 / 75%); font-size: 13px; line-height: 1.5; }
.admission-extension > span { font-size: 13px; line-height: 1.5; }
.admission-extension > small { font-size: 12px; line-height: 1.5; }

/* The weekday card has room for two equally prominent offers. */
.admission-grid { grid-template-columns: minmax(0,1.5fr) repeat(2,minmax(0,1fr)); }
.admission-session { margin: -16px 0 20px; font-size: 14px; line-height: 1.5; }
.weekday-offers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
@media(max-width:900px) and (min-width:641px) {
 .admission-grid { grid-template-columns: minmax(0,1.8fr) repeat(2,minmax(0,1fr)); }
 .weekday-offers { gap: 12px; }
 .weekday-offers .admission-condition { font-size: 12px; }
}
@media(max-width:640px) {
 .admission-grid { grid-template-columns: minmax(0,1fr); }
 .admission-session { margin-top: -10px; }
 .weekday-offers { gap: 12px; }
 .weekday-offers .admission-condition { font-size: 12px; }
}

.admission-extension { margin: 0 0 18px; padding-top: 0; }
@media(max-width:360px) {
 .weekday-offers .admission-price { font-size: 38px; }
}

.benefits-link { align-self: flex-start; margin-top: 18px; font-size: 13px; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.benefits { scroll-margin-top: calc(var(--header-height) + 80px); }

#curtain-prices .extension-rate > span:last-child { font-size: 26px; }
.vip-rate-grid .service-price { font-size: 22px; }
@media(max-width:640px) {
 #curtain-prices .extension-rate > span:last-child { font-size: 24px; }
 .vip-rate-grid .service-price { font-size: 20px; }
}

@media(min-width:641px) {
 .admission-rate > .admission-option { margin-top: auto; min-height: 94px; box-sizing: border-box; }
}
