.pass-ticket {
  display: block;
  width: fit-content;
  margin: 0 auto 20px;
  font-size: 42px;
  line-height: 1;
  transform: rotate(-12deg);
}
.membership-section h2 { font-size: clamp(32px, 3.8vw, 54px); line-height: 1.35; }
.price-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(145deg, #252415, #121212 65%);
}
:is(.price-card, .program-card):before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(ellipse 230px 230px at var(--spot-x, 50%) var(--spot-y, 40%), #ffe00040 0%, #ffe0001a 38%, #ffe00000 76%);
  opacity: 0;
  transition: opacity .24s ease;
}
:is(.price-card, .program-card).is-lit:before { opacity: 1; }
:is(.price-card, .program-card):focus-within:before { opacity: .65; }
.price-card>* { position: relative; z-index: 1; }
.price-card h3,
.price-card h3 b,
.price-card h3 span {
  font-family: var(--title);
  font-size: 44px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.price-card h3 span { margin-left: 2px; }
.price-card .pass-consult {
  display: inline-flex;
  flex-direction: column;
  gap: 3px;
  width: 82px;
  height: 82px;
  min-height: 82px;
  padding: 10px;
  margin: 25px auto 0;
  border-radius: 50%;
  border-color: #86856c;
  line-height: 1.35;
  text-align: center;
  flex-shrink: 0;
}
.price-card .consult-label { font-size: 11px; line-height: 1.35; }
.price-card .consult-arrow { font-size: 15px; line-height: 1; }
@media(hover:hover) {
  .price-card .pass-consult:hover { background: var(--yellow); color: #080808; border-color: var(--yellow); }
}
@media(max-width:1000px) {
  .price-card h3, .price-card h3 b, .price-card h3 span { font-size: 38px; }
}
@media(max-width:640px) {
  .pass-ticket { font-size: 36px; margin-bottom: 18px; }
  .membership-section h2 { font-size: clamp(26px, 6.8vw, 38px); }
  .price-card h3, .price-card h3 b, .price-card h3 span { font-size: 32px; }
  .price-card .pass-consult {
    width: 72px;
    height: 72px;
    min-height: 72px;
    margin: 20px auto 0;
    justify-self: center;
    grid-column: 1 / -1;
    padding: 8px;
    gap: 2px;
  }
  .price-card .consult-label { font-size: 10px; }
  .price-card .consult-arrow { font-size: 14px; }
}
@media(prefers-reduced-motion:reduce) {
  :is(.price-card, .program-card):before { transition: none; }
}

/* Program cards share the pointer light used by membership cards. */
.program-card { isolation: isolate; overflow: hidden; }
.program-card>svg,
.program-card>p,
.program-card>h3,
.program-card>a { position: relative; z-index: 1; }
.program-card .program-number { z-index: 1; }
.program-card>p:not(.mini-label) { min-height: 3.8em; word-break: keep-all; }
