/* The homepage program preview only; detail pages and pricing stay unchanged. */
.premium-programs { position: relative; isolation: isolate; padding: 58px 0 46px; background: var(--forest-edge), linear-gradient(180deg, #03142238, #04132224 65%, #071a2710), url('forest-lanterns.webp') center bottom / cover; }
.premium-programs > .container { width: min(1280px, calc(100% - 80px)); }
.premium-programs .section-heading { margin-bottom: 38px; }
.premium-programs .section-heading > div { max-width: 100%; }
.programs-ornament { display: flex; align-items: center; justify-content: center; gap: 17px; color: #e9bd73; margin-bottom: 13px; }
.programs-ornament svg { width: 25px; height: 25px; }
.programs-ornament > span { width: 135px; height: 1px; background: linear-gradient(90deg, transparent, #e9bd73bb); }
.programs-ornament > span:last-child { transform: rotate(180deg); }
.premium-programs h2 { font-size: clamp(48px, 4.4vw, 68px); color: #faf3e6; font-weight: 500; letter-spacing: -.025em; text-shadow: 0 0 28px #e9bd732a; }
.premium-programs .section-heading p { font-size: 19px; line-height: 1.5; color: #c9d4df; margin-top: 17px; }
.premium-programs .program-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.premium-programs .program-card { position: relative; border: 1px solid #cdeaff6e; border-radius: 17px; background: #041725; box-shadow: 0 12px 32px #020b1670, 0 0 18px #9cd9ff12; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.premium-programs .program-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: url('program-frost.svg') center / 100% 100%; z-index: 2; pointer-events: none; opacity: .7; }
.premium-programs .program-photo { border: 0; border-radius: 0; flex-shrink: 0; background: #071a27; }
.premium-programs .program-photo img { height: 260px; object-fit: cover; object-position: center 38%; transition: transform .5s ease; }
.premium-programs .program-photo.solo img { object-position: center 26%; }
.premium-programs .program-photo.vip img { object-position: center 38%; }
.premium-programs .program-photo.exclusive img { object-position: center 32%; }
.premium-programs .program-photo::after { content: ''; position: absolute; inset: auto 0 0; height: 36px; background: linear-gradient(transparent, #041725c9); pointer-events: none; }
.premium-programs .program-photo::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 12px; z-index: 1; pointer-events: none; opacity: .65; background: radial-gradient(ellipse 4px 1px at 5px 9px, #d7f1ffbb, transparent), radial-gradient(ellipse 2px 3px at 15px 11px, #eaf7ffb3, transparent), radial-gradient(circle 1px at 22px 8px, #fff, transparent); background-size: 29px 12px; mask-image: linear-gradient(transparent, #000); }
.premium-programs .program-copy { position: relative; padding: 18px 24px 26px; min-height: 290px; background: linear-gradient(135deg, #061c2b, #031522); }
.premium-programs .program-copy h3 { font-size: 32px; font-weight: 500; line-height: 1.1; color: #fff; }
.premium-programs .program-copy > p { font-size: 15px; line-height: 1.55; color: #e1e9ee; margin: 11px 0 18px; }
.premium-programs .program-meta { display: grid; gap: 12px; padding: 0 0 16px; font-size: 15px; margin-top: auto; }
.premium-programs .program-meta > * { gap: 16px; line-height: 1.3; }
.premium-programs .program-meta strong { font-size: 15px; font-weight: 400; }
.premium-programs .line-icon { width: 25px; height: 25px; flex-shrink: 0; color: #e9bd73; }
.premium-programs .program-copy .button-link { position: relative; width: 100%; align-self: stretch; min-height: 46px; border: 1px solid #e9bd73d9; border-radius: 8px; background: #031522; color: #efc781; font-size: 14px; font-weight: 500; padding: 10px 36px 10px 17px; margin-top: 0; gap: 9px; transition: background-color .35s, box-shadow .35s, border-color .35s; }
.premium-programs .button-link > span { position: absolute; right: 17px; margin-left: 0; font-size: 23px; line-height: 1; transition: transform .35s; }
.premium-programs .program-copy .button-link:hover { background: #102c3e; border-color: #ffe2a0; box-shadow: 0 0 18px #e9bd7324; }
.premium-programs .button-link:hover > span { transform: translateX(5px); }
.premium-programs .fine-print { font-size: 12px; color: #d1dce4; margin-top: 26px; max-width: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .premium-programs .program-card:hover { transform: translateY(-7px); border-color: #d4f1ffd9; box-shadow: 0 18px 38px #020b1680, 0 0 24px #9cd9ff33; }
  .premium-programs .program-card:hover .program-photo img { transform: scale(1.035); }
}
/* Content is visible by default, including when JavaScript is unavailable. */
@media (prefers-reduced-motion: no-preference) {
  .premium-programs .program-reveal-pending { opacity: 0; transform: translateY(35px); }
  .premium-programs .program-reveal-pending.program-revealed { animation: program-arrive .8s var(--program-delay, 0ms) both cubic-bezier(.2,.65,.25,1); }
  .premium-programs .program-reveal-pending:focus-within { opacity: 1; transform: none; animation: none; }
}
@keyframes program-arrive { from { opacity: 0; transform: translateY(35px); } to { opacity: 1; transform: none; } }
@media (min-width: 768px) and (max-width: 1199px) {
  .premium-programs > .container { width: calc(100% - 64px); }
  .premium-programs .program-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
  .premium-programs .program-card { grid-column: span 2; }
  .premium-programs .program-card:last-child { grid-column: 2 / span 2; }
  .premium-programs .program-copy { min-height: 315px; }
}
@media (max-width: 767px) {
  .premium-programs { padding: 44px 0 35px; background-position: 50% bottom; }
  .premium-programs > .container { width: calc(100% - 40px); }
  .premium-programs .section-heading { margin-bottom: 30px; }
  .programs-ornament { gap: 13px; margin-bottom: 16px; }
  .programs-ornament > span { width: 72px; }
  .programs-ornament svg { width: 22px; height: 22px; }
  .premium-programs h2 { font-size: clamp(36px, 10.6vw, 44px); line-height: 1.05; }
  .premium-programs .section-heading p { font-size: 15px; margin-top: 17px; }
  .premium-programs .program-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .premium-programs .program-card { border-radius: 15px; }
  .premium-programs .program-card::after { opacity: .5; }
  .premium-programs .program-photo img { height: 250px; }
  .premium-programs .program-copy { min-height: 310px; padding: 20px 20px 24px; }
  .premium-programs .program-copy h3 { font-size: 31px; }
  .premium-programs .program-copy > p { font-size: 15px; margin-bottom: 21px; }
  .premium-programs .program-meta { gap: 12px; font-size: 15px; }
  .premium-programs .program-meta strong { font-size: 15px; }
  .premium-programs .program-copy .button-link { font-size: 13px; padding-inline: 13px 35px; }
  .premium-programs .fine-print { font-size: 12px; margin-top: 23px; }
}
@media (max-width: 360px) {
  .premium-programs > .container { width: calc(100% - 32px); }
  .premium-programs .program-photo img { height: 235px; }
  .premium-programs .program-copy { padding-inline: 17px; min-height: 340px; }
  .premium-programs .program-copy h3 { font-size: 30px; }
  .premium-programs .program-copy .button-link { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .premium-programs .program-card, .premium-programs .program-photo img, .premium-programs .button-link, .premium-programs .button-link > span { transition: none; }
  .premium-programs .program-reveal-pending { opacity: 1; transform: none; animation: none; }
}
