/* The prices page follows the program page's dark cover and paper sections. */
.prices-page {
  --px-accent: #d52225;
  --px-paper: #eeece7;
  --px-paper-ink: #181818;
  --px-paper-soft: #595853;
  --px-paper-line: #cbc8c1;
  --px-paper-rule: #d9d6cf;
  color: #181818;
  background: #eeece7;
}
.px-field { display: none; }
.prices-page .band { scroll-margin-top: 68px; padding-block: clamp(72px, 8vw, 112px); }
.prices-page .band-inner { max-width: var(--wrap-max); }
.prices-page .band--hero {
  padding-block: 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #0b0b0c;
  color: #fff;
}
.prices-page .band--hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  transform: translate3d(0, var(--price-hero-scroll, 0px), 0);
  background: url("img/prices/prices-hero-2027.jpg") center 42% / cover no-repeat;
  pointer-events: none;
}
.prices-page .band--hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(7,7,9,.9) 0%, rgba(7,7,9,.67) 38%, rgba(7,7,9,.31) 100%), linear-gradient(0deg, rgba(7,7,9,.78), transparent 55%);
}
.prices-page .band--hero > .band-inner { position: relative; z-index: 2; padding-top: 72px; }
.px-eyebrow { color: #f24946; font-size: .78rem; margin-bottom: 22px; }
.px-title {
  margin: 0 0 28px;
  color: #fff;
  font-size: clamp(3.5rem, 7.6vw, 7rem);
  letter-spacing: -.07em;
  line-height: .92;
}
.px-title span { color: #d52225; }
.prices-page .px-ghost {
  display: none;
  position: absolute;
  top: 35px;
  right: 28px;
  flex-direction: column;
  align-items: flex-end;
  transform: rotate(-8deg);
  color: #29292b;
  font-size: clamp(5.6rem, 9.5vw, 9.8rem);
  font-weight: 900;
  line-height: .72;
  letter-spacing: -.09em;
  user-select: none;
  pointer-events: none;
}
.px-ghost span:nth-child(3) { color: #6e191d; }
.px-ghost small { margin-top: 27px; color: #c4c2c0; font-family: var(--font-mono); font-size: .8rem; line-height: 1; letter-spacing: .18em; }
.px-head-grid { position: relative; z-index: 1; grid-template-columns: minmax(0,1.3fr) minmax(260px,.7fr); border-top: 0; padding-top: 0; padding-bottom: 56px; }
.px-head-rules { max-width: 590px; }
.px-rule { padding-left: 0; max-width: 50ch; color: #d4d2d0; font-size: clamp(1.02rem, 1.5vw, 1.2rem); line-height: 1.55; }
.px-rule + .px-rule { margin-top: 12px; }
.px-rule b { color: #fff; }
.px-now { align-self: start; border: 1px solid #d2cec6; border-left: 3px solid #d52225; background: rgba(247,245,240,.97); padding: 20px 22px; }
.px-now-tag { color: #b52225; }
.px-now-name { color: #5d5a56; }
.px-now-price { color: #181818; }
.px-now-unit { color: #5d5a56; }
.px-now-until { color: #33312e; border-color: #c9c5bf; }
.px-pills { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 0; border-top: 1px solid #363638; }
.px-pill { display: flex; flex-direction: column; gap: 2px; min-height: 110px; padding: 17px 20px 20px; border: 0; border-left: 1px solid #363638; transition: background .18s ease; }
.px-pill:last-child { border-right: 1px solid #363638; }
.px-pill:hover, .px-pill:focus-visible { background: #252022; border-color: #363638; color: #fff; }
.px-pill span { color: #f24946; font-size: .67rem; font-weight: 700; }
.px-pill strong { color: #fff; font-size: 1.15rem; letter-spacing: -.03em; }
.px-pill small { color: #aaa8a7; font-size: .67rem; letter-spacing: 0; }

.prices-page #rates,
.prices-page #several,
.prices-page #tickets {
  background-color: #eeece7;
  background-image: linear-gradient(rgba(10,10,10,.037) 1px, transparent 1px);
  background-size: 100% 116px;
  background-attachment: fixed;
}
.prices-page #timeline,
.prices-page #offers,
.prices-page #payments { background: #f8f7f3; border-block: 1px solid #dad7cf; }
.prices-page #several { background-color: #e6e3dd; }
.prices-page #tickets { background-color: #eeece7; }

#rates > .band-inner,
#timeline > .band-inner,
#several > .band-inner,
#offers > .band-inner,
#tickets > .band-inner,
#payments > .band-inner {
  display: grid;
  grid-template-columns: minmax(135px,.28fr) minmax(0,1fr);
  column-gap: clamp(38px,7vw,110px);
}
#rates .sheet-head,
.prices-page .section-head {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(135px,.28fr) minmax(0,1fr);
  column-gap: clamp(38px,7vw,110px);
  align-items: start;
  padding: 0;
  margin: 0 0 35px;
  border: 0;
}
#rates .sheet-head-left { display: contents; }
.prices-page .sheet-num,
.prices-page .section-head-num {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  position: relative;
  display: block;
  padding-top: 18px;
  border-top: 3px solid #d52225;
  color: #181818;
  font-family: var(--font-sans);
  font-size: clamp(5.6rem, 10vw, 9rem);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -.09em;
}
.prices-page .sheet-num::before,
.prices-page .section-head-num::before {
  content: "РАЗДЕЛ";
  display: block;
  margin-bottom: 13px;
  color: #9d2123;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
}
.prices-page .sheet-title,
.prices-page .section-head-title {
  grid-column: 2;
  grid-row: 1;
  padding-top: 16px;
  margin: 0;
  border-top: 1px solid #aaa7a1;
  color: #181818;
  font-size: clamp(2.3rem, 4.8vw, 4.7rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.055em;
  text-transform: uppercase;
  text-wrap: balance;
}
.prices-page .sheet-tag,
.prices-page .section-head-tag { grid-column: 2; grid-row: 2; margin: 12px 0 0; color: #a22325; font-size: .73rem; }
#rates .sheet-scroll, #rates .sheet-foot, #rates .sheet-empty,
#timeline .rail, #timeline .rail-note,
#several .several-grid,
#offers .offers-grid,
#tickets .tickets-grid, #tickets .tickets-foot,
#payments .pay-grid, #payments .refund { grid-column: 2; min-width: 0; }

.prices-page .sheet-scroll { overflow: visible; }
.prices-page .sheet { border-top: 2px solid #181818; }
.prices-page .sheet thead th { background: transparent; border-bottom-color: #aaa7a1; }
.prices-page .sheet-period-btn,
.prices-page .sheet-choices button { background: transparent; color: #181818; border-color: #bbb7b0; }
.prices-page .sheet-period-btn.is-active,
.prices-page .sheet-choices button.is-active { background: #181818; border-color: #181818; color: #fff; }
.prices-page .sheet-period-btn:disabled { color: #99968f; border-color: #d4d0ca; }
.prices-page .sheet-period-meta { color: #595853; }
.prices-page .sheet-th-flag { background: #d52225; }
.prices-page .sheet-th-flag.is-future { background: #dedbd5; color: #595853; }
.prices-page .sheet tbody th,
.prices-page .sheet tbody td { border-bottom-color: #cbc8c1; }
.prices-page .sheet-name { color: #181818; }
.prices-page .sheet-unit,
.prices-page .sheet-choices-label,
.prices-page .sheet-foot { color: #64615d; }
.prices-page .sheet-cell-num { color: #181818; }

.prices-page .rail { background: #cbc8c1; border-color: #cbc8c1; }
.prices-page .rail-node { background: #f8f7f3; border-top: 3px solid #181818; }
.prices-page .rail-node--current { border-top-color: #d52225; }
.prices-page .rail-dot { border-color: #a6a29d; }
.prices-page .rail-node--current .rail-dot { background: #d52225; border-color: #d52225; box-shadow: none; }
.prices-page .rail-state { color: #817d77; }
.prices-page .rail-node--current .rail-state { color: #9d2123; }
.prices-page .rail-name, .prices-page .rail-price { color: #181818; }
.prices-page .rail-node--past .rail-name, .prices-page .rail-node--past .rail-price { color: #88857f; }
.prices-page .rail-until, .prices-page .rail-note { color: #595853; }
.prices-page .rail-price { border-top-color: #cbc8c1; }

.prices-page .several-grid { grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 20px; }
.prices-page .ladder-box { background: #f8f7f3; border: 0; border-top: 3px solid #181818; }
.prices-page .ladder-cap { color: #595853; }
.prices-page .ladder-step { border-bottom-color: #cbc8c1; }
.prices-page .ladder-n, .prices-page .ladder-total { color: #181818; }
.prices-page .ladder-bar { background: #ddd9d3; }
.prices-page .ladder-bar i { background: #8b8782; }
.prices-page .ladder-step.is-cap .ladder-bar i,
.prices-page .ladder-step.is-free .ladder-bar i { background: #d52225; }
.prices-page .ladder-step-val { color: #716d67; }
.prices-page .ladder-step.is-free .ladder-step-val { color: #a22325; }
.prices-page .ladder-punch { color: #45413f; border-left-color: #d52225; }
.prices-page .sur-box { background: rgba(255,255,255,.45); border-color: #cbc8c1; }
.prices-page .sur-cap { color: #9d2123; }
.prices-page .sur-table th { color: #45413f; border-bottom-color: #cbc8c1; }
.prices-page .sur-table td { color: #181818; border-bottom-color: #cbc8c1; }
.prices-page .rule-list li { color: #4f4b47; }
.prices-page .rule-list li::before { color: #a22325; }

.prices-page .offers-grid { background: #cbc8c1; border-color: #cbc8c1; }
.prices-page .offer { background: #f8f7f3; border-top: 3px solid #181818; }
.prices-page .offer--special { border-top-color: #d52225; }
.prices-page .offer-tag, .prices-page .offer--special .offer-tag { color: #9d2123; }
.prices-page .offer-name { color: #181818; font-size: 1.3rem; }
.prices-page .offer-price { color: #181818; }
.prices-page .offer-unit, .prices-page .offer-desc { color: #595853; }
.prices-page .gauge-val { color: #181818; }
.prices-page .gauge-total, .prices-page .gauge-label { color: #64615d; }
.prices-page .gauge-bar { background: #ddd9d3; }
.prices-page .gauge-bar i { background: #181818; }
.prices-page .gauge--accent .gauge-bar i { background: #d52225; }
.prices-page .offer-link { color: #181818; border-bottom-color: #181818; }
.prices-page .offer-link:hover { color: #9d2123; border-bottom-color: #9d2123; }
.prices-page .offer-btn { background: #d52225; color: #fff; }

.prices-page .tickets-grid { display: block; background: transparent; border: 0; border-top: 2px solid #181818; }
.prices-page .ticket, .prices-page .ticket--free {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  grid-template-rows: repeat(4,auto);
  gap: 2px 20px;
  background: transparent;
  padding: 20px 10px;
  border-bottom: 1px solid #bcb9b2;
}
.prices-page .ticket-day { grid-column: 1; color: #a22325; margin: 0 0 4px; }
.prices-page .ticket-name { grid-column: 1; min-height: 0; color: #181818; font-size: 1.14rem; }
.prices-page .ticket-price { grid-column: 2; grid-row: 1 / span 4; align-self: center; display: flex; flex-direction: column; gap: 2px; padding: 0; margin: 0; border: 0; text-align: right; }
.prices-page .ticket-price b { color: #181818; }
.prices-page .ticket-price span { color: #595853; }
.prices-page .ticket-place, .prices-page .ticket-note { grid-column: 1; color: #595853; padding: 0; margin: 0; }
.prices-page .ticket-note { font-size: .8rem; }
.prices-page .tickets-foot { color: #595853; }

.prices-page .pay-grid { display: block; background: transparent; border: 0; border-top: 2px solid #181818; margin-bottom: 42px; }
.prices-page .pay { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 4px 24px; background: transparent; padding: 20px 10px; border-bottom: 1px solid #cbc8c1; }
.prices-page .pay-tag { grid-column: 1; grid-row: 1 / span 2; color: #a22325; }
.prices-page .pay-name { grid-column: 2; color: #181818; font-size: 1.14rem; }
.prices-page .pay-desc { grid-column: 2; color: #595853; }
.prices-page .refund { border: 0; border-left: 3px solid #d52225; background: #eeece7; }
.prices-page .refund-tag, .prices-page .refund-when { color: #9d2123; }
.prices-page .refund-steps { background: #cbc8c1; border-color: #cbc8c1; }
.prices-page .refund-step { background: #f8f7f3; border-top-color: #181818; }
.prices-page .refund-step--ok { border-top-color: #d52225; }
.prices-page .refund-what, .prices-page .refund-step--ok .refund-what { color: #181818; }
.prices-page .refund-how, .prices-page .refund-foot { color: #595853; }

.prices-page .band--cta { background: #0c0c0d; border-top: 5px solid #d52225; }
.prices-page .band--cta .band-inner { max-width: var(--wrap-max); }
.prices-page .cta-box { display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 20px 55px; border: 0; background: transparent; padding: 0; }
.prices-page .cta-eyebrow { grid-column: 1; color: #f24946; }
.prices-page .cta-head { grid-column: 1; color: #fff; font-size: clamp(2.4rem,4.7vw,4.5rem); line-height: .98; }
.prices-page .cta-sub { grid-column: 1; color: #bcbab8; }
.prices-page .cta-actions { grid-column: 2; grid-row: 1 / span 3; align-self: center; display: grid; gap: 12px; }
.prices-page .cta-actions a { display: flex; justify-content: space-between; align-items: center; min-height: 58px; padding: 16px 18px; font-size: .85rem; }
.prices-page .cta-actions .btn-primary { background: #d52225; border-color: #d52225; color: #fff; }
.prices-page .cta-actions .btn-secondary { color: #fff; border-color: #6c6969; }

@media (max-width: 960px) {
  .prices-page .several-grid { grid-template-columns: 1fr; }
  .prices-page .several-side { grid-template-columns: 1fr 1fr; }
  .prices-page .cta-box { grid-template-columns: 1fr; }
  .prices-page .cta-actions { grid-column: 1; grid-row: auto; max-width: 420px; }
}
@media (max-width: 720px) {
  .top-inner { gap: 8px; height: 64px; }
  .brand { gap: 7px; min-width: 0; }
  .brand-emblem { width: 30px; height: 30px; flex: none; }
  .brand-text { font-size: .72rem; white-space: nowrap; gap: 5px; }
  .brand-tag { font-size: .63rem; padding: 2px 4px; }
  .top-actions { gap: 8px; }
  .btn-top { font-size: .7rem; white-space: nowrap; padding: 8px 9px; }
  .mobile-summary { font-size: .7rem; padding: 8px 9px; }
  .band--hero > .band-inner { padding-top: 65px; }
  .px-title { font-size: clamp(3rem,11vw,4.8rem); }
  .px-ghost { right: 10px; top: 55px; font-size: 6.5rem; opacity: .35; }
  .px-ghost small { display: none; }
  .px-head-grid { display: block; padding-bottom: 48px; }
  .px-head-rules { max-width: 440px; }
  .px-now { margin-top: 25px; max-width: 440px; }
  .px-pills { grid-template-columns: 1fr; }
  .px-pill { display: grid; grid-template-columns: 115px 1fr; gap: 2px 12px; min-height: 70px; padding: 11px 4px; border-left: 0; border-bottom: 1px solid #363638; }
  .px-pill:last-child { border-right: 0; }
  .px-pill strong { grid-column: 2; grid-row: 1; }
  .px-pill small { grid-column: 2; }
  .prices-page .band { padding-block: 66px; }
  .prices-page .band--hero { padding-block: 0; }
  .prices-page .band--hero::before { background-position: 53% center; }
  .prices-page #rates, .prices-page #several, .prices-page #tickets { background-attachment: scroll; }
  #rates > .band-inner, #timeline > .band-inner, #several > .band-inner, #offers > .band-inner, #tickets > .band-inner, #payments > .band-inner { display: block; }
  #rates .sheet-head, .prices-page .section-head { display: block; margin-bottom: 28px; }
  #rates .sheet-head-left { display: block; }
  .prices-page .sheet-num, .prices-page .section-head-num { border: 0; padding: 0; font-size: 4.4rem; line-height: .85; margin-bottom: 22px; }
  .prices-page .sheet-num::before, .prices-page .section-head-num::before { display: none; }
  .prices-page .sheet-title, .prices-page .section-head-title { display: block; font-size: clamp(2.25rem,9vw,3.7rem); }
  .prices-page .sheet-tag, .prices-page .section-head-tag { display: block; margin-top: 10px; }
  .prices-page .several-side { grid-template-columns: 1fr; }
  .prices-page .ticket, .prices-page .ticket--free { grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; }
  .prices-page .ticket-price b { font-size: 1.3rem; }
  .prices-page .pay { grid-template-columns: 1fr; }
  .prices-page .pay-tag, .prices-page .pay-name, .prices-page .pay-desc { grid-column: 1; grid-row: auto; }
}
@media (max-width: 470px) {
  .prices-page .band-inner { padding-inline: 16px; }
  .px-ghost { opacity: .22; }
  .px-now { padding: 18px; }
  .prices-page .ticket-price { grid-row: 1 / span 3; }
  .prices-page .ticket-place, .prices-page .ticket-note { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .px-pill, .sheet-period-btn, .sheet-choices button { transition: none; }
}
