.upcoming-page { --upcoming-deep: #292754; }
.upcoming-page .site-header { margin-bottom: 24px; }
.upcoming-page .nav-links { display: flex; gap: 18px; }
.upcoming-main { padding-bottom: 54px; }
.upcoming-breadcrumbs { padding: 8px 0 22px; color: var(--muted); font-size: .86rem; }
.upcoming-breadcrumbs a { text-decoration: none; color: var(--brand-dark); }
.upcoming-hero { border: 1px solid rgba(126,116,235,.18); border-radius: 32px; padding: clamp(28px,5vw,62px); background: radial-gradient(circle at 92% 12%,rgba(148,226,174,.63),transparent 33%),radial-gradient(circle at 72% 95%,rgba(180,173,255,.55),transparent 35%),#fff; box-shadow: var(--shadow); overflow: hidden; }
.upcoming-hero-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(265px,.65fr); gap: 36px; align-items: center; }
.upcoming-kicker { display: inline-flex; width: fit-content; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 999px; background: #eeeaff; color: #6157bd; font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.upcoming-hero h1 { max-width: 820px; margin: 18px 0 18px; font-size: clamp(2.3rem,5vw,4.45rem); line-height: 1.06; }
.upcoming-lead { max-width: 740px; margin: 0; color: #515677; font-size: clamp(1.04rem,1.5vw,1.24rem); line-height: 1.65; }
.upcoming-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.sale-hero-time { margin: 18px 0 0; color: var(--brand-dark); font-weight: 800; }
.sale-hero-art { width: min(calc(100% + 40px),560px); margin: -20px; justify-self: center; }
.sale-hero-art img { display: block; width: 100%; height: auto; filter: drop-shadow(0 18px 32px rgba(55,49,119,.17)); }
.sale-hero .sale-title { display: flex; flex-direction: column; align-items: flex-start; gap: .17em; width: fit-content; max-width: 100%; }
.sale-title-date { align-self: center; font: 800 1.16em/1.02 'Space Grotesk',sans-serif; letter-spacing: -.065em; }
.upcoming-hero-rail { display: grid; gap: 14px; min-width: 0; }
.upcoming-course-cover { width: 100%; max-width: 390px; margin: 0 auto; overflow: hidden; border: 1px solid rgba(126,116,235,.2); border-radius: 25px; background: #ece9ff; box-shadow: 0 16px 34px rgba(53,48,110,.13); }
.upcoming-course-cover img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.upcoming-hero-side { background: rgba(255,255,255,.72); border: 1px solid rgba(126,116,235,.2); border-radius: 25px; padding: 26px; }
.upcoming-hero-side p { margin: 0 0 16px; font-size: .78rem; color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.upcoming-hero-side dl { margin: 0; display: grid; gap: 14px; }
.upcoming-hero-side dl div { border-top: 1px solid var(--line); padding-top: 12px; }
.upcoming-hero-side dt { color: var(--muted); font-size: .83rem; }
.upcoming-hero-side dd { margin: 3px 0 0; font-weight: 800; font-size: 1.08rem; }
.upcoming-hero-side .upcoming-access-note { margin: 16px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: #515677; font-size: .85rem; font-weight: 600; line-height: 1.45; letter-spacing: 0; text-transform: none; }
.upcoming-section { padding-top: 58px; }
.upcoming-head { display: flex; justify-content: space-between; gap: 22px; align-items: end; margin-bottom: 19px; }
.upcoming-head h2 { margin: 0; font-size: clamp(1.8rem,3vw,2.55rem); line-height: 1.15; }
.upcoming-head p { max-width: 620px; margin: 9px 0 0; color: var(--muted); }
.upcoming-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.upcoming-card { background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 22px; padding: 23px; }
.upcoming-card h3 { margin: 0 0 9px; font-size: 1.15rem; }
.upcoming-card p { margin: 0; color: var(--muted); line-height: 1.58; }
.upcoming-list-panel { background: #fff; border: 1px solid var(--line); border-radius: 25px; padding: 28px; }
.upcoming-program { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 28px; }
.upcoming-program li { display: flex; gap: 15px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--line); }
.upcoming-program li span { color: #8b81e9; font-family: 'Space Grotesk',sans-serif; font-weight: 800; }
.upcoming-program li p { margin: 0; }
.upcoming-format { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.upcoming-format .upcoming-card { background: #fdfcff; }
.upcoming-format-points { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin: 0; padding: 22px 24px; list-style: none; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.upcoming-format-points li { min-width: 0; color: #515677; line-height: 1.5; }
.upcoming-format-points li + li { border-left: 1px solid var(--line); padding-left: 18px; }
.upcoming-format-points strong { color: var(--upcoming-deep); }
.upcoming-format-note { margin: 12px 0 0; color: #626680; font-size: .9rem; }
.upcoming-price { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 25px; align-items: center; padding: clamp(24px,4vw,38px); border-radius: 26px; color: white; background: linear-gradient(125deg,#3c377d,#6158ae); }
.upcoming-price h2 { margin: 0 0 10px; font-size: clamp(1.75rem,3vw,2.5rem); }
.upcoming-price p { margin: 0; color: #e7e5ff; }
.upcoming-price .upcoming-includes { max-width: 64ch; line-height: 1.6; }
.upcoming-price .upcoming-payment-help { max-width: 52ch; margin-top: 10px; line-height: 1.6; }
.upcoming-payment-help a { color: #fff; font-weight: 800; text-underline-offset: 3px; }
.upcoming-payment-help a:hover,.upcoming-payment-help a:focus-visible { color: #ccf2dd; }
.upcoming-price small { display: block; margin-top: 10px; color: #dcd9ff; }
.upcoming-price-value { min-width: 0; max-width: 100%; text-align: right; }
.upcoming-price-value strong { display: block; max-width: 100%; overflow-wrap: anywhere; white-space: nowrap; font-size: clamp(2rem,3vw,2.8rem); font-family: 'Space Grotesk',sans-serif; }
.upcoming-price-value .btn { margin-top: 14px; }
.upcoming-price-promo-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,310px); gap: 16px; align-items: stretch; }
.upcoming-price-promo-layout .upcoming-price { min-width: 0; }
.sale-price-promo[hidden] { display: none !important; }
.sale-price-promo { position: relative; isolation: isolate; display: flex; min-width: 0; overflow: hidden; flex-direction: column; justify-content: center; gap: 12px; padding: clamp(24px,3.2vw,34px); border: 1px solid rgba(114,102,216,.24); border-radius: 26px; color: #292754; background: radial-gradient(circle at 105% -5%,rgba(116,211,157,.72),transparent 42%),radial-gradient(circle at -8% 108%,rgba(139,126,232,.38),transparent 45%),#fff; box-shadow: 0 18px 42px rgba(53,48,110,.13); text-decoration: none; transition: transform .18s ease,box-shadow .18s ease; }
.sale-price-promo::after { content: '✦'; position: absolute; z-index: -1; top: 12px; right: 18px; color: rgba(255,255,255,.72); font-size: 4.6rem; line-height: 1; transform: rotate(10deg); }
.sale-price-promo:hover,.sale-price-promo:focus-visible { transform: translateY(-3px); box-shadow: 0 23px 48px rgba(53,48,110,.2); }
.sale-price-promo-kicker { width: fit-content; padding: 7px 10px; border-radius: 999px; color: #fff; background: #655bc0; font-size: .72rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.sale-price-promo strong { max-width: 12ch; font: 800 clamp(1.55rem,2.25vw,2rem)/1.08 'Space Grotesk',sans-serif; letter-spacing: -.035em; }
.sale-price-promo small { color: #575b79; font-size: .89rem; line-height: 1.5; }
.sale-price-promo-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 2px; color: #4e4697; font-weight: 850; }
.sale-price-promo-link::after { content: '→'; font-size: 1.15em; transition: transform .18s ease; }
.sale-price-promo:hover .sale-price-promo-link::after,.sale-price-promo:focus-visible .sale-price-promo-link::after { transform: translateX(3px); }
.upcoming-page button[disabled] { opacity: .72; cursor: not-allowed; box-shadow: none; }
.upcoming-note { color: var(--muted); font-size: .9rem; }
.upcoming-schedule-note { margin: 12px 0 0; color: #555979; font-size: .93rem; }
.upcoming-related { display: flex; flex-wrap: wrap; gap: 10px; }
.upcoming-related a { text-decoration: none; padding: 11px 15px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--brand-dark); font-weight: 750; }
.sale-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.sale-art { display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 23px; background: #5a56bd; }
.sale-art img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sale-art-calendar { aspect-ratio: 1; }
.sale-item,.sale-bundle { display: flex; flex-direction: column; gap: 13px; padding: 24px; border: 1px solid var(--line); border-radius: 23px; background: rgba(255,255,255,.94); }
.sale-item h3,.sale-bundle h3 { margin: 0; font-size: 1.26rem; line-height: 1.25; }
.sale-item p,.sale-bundle p { margin: 0; color: var(--muted); }
.sale-item .sale-tag,.sale-bundle .sale-tag { width: fit-content; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #6157bd; }
.sale-prices { display: flex; align-items: baseline; gap: 12px; margin-top: auto; }
.sale-prices strong { font-size: 1.8rem; font-family: 'Space Grotesk',sans-serif; }
.sale-prices s { color: var(--muted); }
.sale-end-timer {
  position: fixed;
  right: calc(clamp(12px, 2vw, 26px) + env(safe-area-inset-right));
  bottom: calc(clamp(12px, 2vw, 22px) + env(safe-area-inset-bottom));
  z-index: 24;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  padding: 10px 14px;
  border: 1px solid #dcd7f3;
  border-radius: 15px;
  background: #f7f5ff;
  box-shadow: 0 8px 22px rgba(53,48,110,.16);
  color: #4e438b;
  font-size: .79rem;
  font-weight: 750;
  pointer-events: none;
}
.sale-end-timer[hidden], .sale-end-timer [hidden], .sale-reference-price[hidden] { display: none; }
body.modal-open .sale-end-timer { visibility: hidden; }
.sale-end-timer strong {
  color: var(--upcoming-deep);
  font: 800 1.18rem/1.15 'Space Grotesk', sans-serif;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.sale-end-timer time { font-size: .71rem; font-weight: 600; }
.sale-timer-monster {
  position: absolute;
  right: 12px;
  bottom: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 46px;
  height: 24px;
  padding-top: 5px;
  border: 1px solid #6ebc92;
  border-bottom: 0;
  border-radius: 26px 26px 0 0;
  background: #99e0b5;
}
.sale-timer-eye {
  display: grid;
  place-items: center;
  width: 11px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
}
.sale-timer-pupil {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #292754;
  transition: transform .09s ease-out;
}
.sale-page .sale-prices { flex-direction: column; align-items: flex-start; gap: 4px; }
.sale-reference-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1px 8px; color: #555979; font-size: .82rem; line-height: 1.35; }
.sale-reference-price s { color: inherit; font-size: 1.15rem; font-weight: 750; white-space: nowrap; }
.sale-page .sale-bundle.featured .sale-prices { align-items: center; }
.sale-bundle.featured .sale-reference-price { justify-content: center; }
@media (max-width: 620px) {
  .sale-end-timer { flex-direction: row; padding: 8px 11px; }
  .sale-end-timer time { display: none; }
  .sale-end-timer strong { font-size: 1.02rem; }
  .sale-timer-monster { scale: .85; transform-origin: bottom right; }
}
@media (prefers-reduced-motion: reduce) {
  .sale-timer-pupil { transform: none !important; transition: none; }
}
.sale-item-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.sale-item-actions a { color: var(--brand-dark); font-weight: 800; text-decoration: none; }
.sale-item-actions a:not(.btn) { display: inline-flex; align-items: center; gap: 6px; }
.sale-item-actions a:not(.btn)::after,.sale-bundle li a::after { content: ''; display: inline-block; flex: 0 0 28px; width: 28px; height: 28px; background: url('/assets/economy/chevron-right.svg') center / contain no-repeat; transition: transform .15s ease; }
.sale-item-actions a:not(.btn):hover::after,.sale-item-actions a:not(.btn):focus-visible::after,.sale-bundle li a:hover::after,.sale-bundle li a:focus-visible::after { transform: translateX(2px); }
.sale-bundle-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.sale-bundle { position: relative; overflow: hidden; isolation: isolate; gap: 15px; padding: 28px; border-color: #e1dfee; border-radius: 25px; background: #fff; box-shadow: 0 8px 22px rgba(53,48,110,.05); transition: transform .18s ease,box-shadow .18s ease; }
.sale-bundle::before { content: ''; position: absolute; inset: 0 0 auto; height: 5px; background: linear-gradient(90deg,#8275de,#8bcfa7); }
.sale-bundle:nth-child(even of .sale-bundle:not(.featured))::before { background: linear-gradient(90deg,#80cda2,#8e83e3); }
.sale-bundle:hover { transform: translateY(-3px); box-shadow: 0 17px 34px rgba(53,48,110,.11); }
.sale-bundle .sale-tag { padding: 7px 11px; border-radius: 999px; background: #f0edff; color: #5e54b2; }
.sale-bundle:nth-child(even of .sale-bundle:not(.featured)) .sale-tag { background: #eaf7ef; color: #357b56; }
.sale-bundle h3 { color: #292754; font-size: clamp(1.45rem,2.1vw,1.7rem); font-weight: 800; line-height: 1.18; }
.sale-bundle ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 13px; margin: 0; padding: 0; list-style: none; }
.sale-bundle li { min-width: 0; margin: 0; color: #565476; font-size: .94rem; line-height: 1.4; }
.sale-bundle li a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 42px; padding: 8px 11px; border: 1px solid #e7e5f2; border-radius: 12px; background: #faf9ff; color: #373263; font-weight: 750; text-decoration: none; transition: border-color .15s ease,background .15s ease; }
.sale-bundle li a:hover,.sale-bundle li a:focus-visible { border-color: #a99fe5; background: #f0edff; }
.sale-bundle-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin: auto -28px -28px; padding: 18px 28px 20px; border-top: 1px solid #e8e5f1; background: #f7f6fc; }
.sale-bundle-footer .sale-prices { flex: 1 0 130px; margin: 0; }
.sale-bundle-footer .sale-prices strong { color: #302b6a; font-size: clamp(1.9rem,2.6vw,2.2rem); white-space: nowrap; }
.sale-bundle-footer .btn { flex: 1 0 145px; }
.sale-bundle.featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(245px,.7fr); grid-template-areas: 'title footer' 'components footer'; align-content: center; gap: 18px 32px; padding: 36px 38px; border-color: #464087; background: radial-gradient(circle at 93% 10%,rgba(132,217,163,.3),transparent 36%),linear-gradient(125deg,#302b68,#51499a); box-shadow: 0 18px 38px rgba(53,48,110,.18); }
.sale-bundle.featured::before { display: none; }
.sale-bundle.featured h3 { grid-area: title; color: #fff; font-size: clamp(2.1rem,3.4vw,3rem); }
.sale-bundle.featured .sale-components { grid-area: components; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; counter-reset: bundle-course; }
.sale-bundle.featured li { display: flex; counter-increment: bundle-course; align-items: center; min-height: 52px; padding: 5px 7px 5px 12px; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; background: rgba(255,255,255,.09); color: #f5f2ff; }
.sale-bundle.featured li::before { content: counter(bundle-course,decimal-leading-zero); display: block; flex: 0 0 auto; width: auto; height: auto; border-radius: 0; background: none; color: #bdeacb; transform: none; font: 800 .78rem/1 'Space Grotesk',sans-serif; }
.sale-bundle.featured li a { flex: 1; min-width: 0; padding: 7px 9px; border: 0; background: transparent; color: #fff; }
.sale-bundle.featured li a:hover,.sale-bundle.featured li a:focus-visible { background: rgba(255,255,255,.12); }
.sale-bundle.featured li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sale-bundle.featured .sale-bundle-footer { grid-area: footer; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 26px; margin: 0; padding: clamp(24px,3vw,36px); border: 1px solid #f0f1fa; border-radius: 20px; background: #f8f9ff; box-shadow: 0 12px 28px rgba(28,24,74,.12); }
.sale-bundle.featured .sale-prices { flex: none; justify-content: center; text-align: center; }
.sale-bundle.featured .sale-prices strong { color: #302b6a; font-size: clamp(2.5rem,3.5vw,3.2rem); line-height: 1.1; }
.sale-bundle.featured .btn { flex: none; width: 100%; background: #84d7a7; color: #203b35; box-shadow: none; }
[data-offer-price].offer-price-unavailable { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; width: min(100%,260px); max-width: 100%; padding: 11px 14px; border: 1px solid #ded9f4; border-radius: 14px; color: #403778; background: #f0edff; font: 800 clamp(1rem,1.4vw,1.18rem)/1.28 'Space Grotesk',sans-serif; overflow-wrap: anywhere; white-space: normal !important; text-align: center; }
.upcoming-price-value .offer-price-unavailable { border-color: rgba(255,255,255,.25); color: #fff; background: rgba(255,255,255,.12); }
.sale-bundle.featured .sale-prices .offer-price-unavailable { width: 100%; font-size: clamp(1.05rem,1.55vw,1.25rem); }
.offer-checkout-modal { width: min(820px,100%); scrollbar-width: thin; }
.offer-checkout-overlay [hidden] { display: none !important; }
.offer-checkout-selection { margin: 16px 0 20px; }
.offer-checkout-selection h4 { overflow-wrap: anywhere; }
.offer-checkout-modal .checkout-stage-next { margin-left: auto; }
.offer-checkout-modal .checkout-step-actions .btn { min-width: 160px; }
.offer-checkout-selection[hidden] { display: none; }
.sale-saving { color: #287c46 !important; font-weight: 800; }
@media(min-width:861px) { .sale-hero .upcoming-hero-grid { grid-template-columns: minmax(0,1.05fr) minmax(300px,.95fr); gap: 20px; } }
@media(max-width:1100px) { .sale-overview { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:860px) { .upcoming-hero-grid,.upcoming-price,.upcoming-price-promo-layout { grid-template-columns: 1fr; } .upcoming-price-value { text-align: left; } .upcoming-price-value strong { white-space: normal; } .upcoming-card-grid { grid-template-columns: 1fr 1fr; } .sale-price-promo { min-height: 0; } .sale-price-promo strong { max-width: none; } .sale-bundle.featured { grid-template-columns: 1fr; grid-template-areas: 'title' 'components' 'footer'; } .upcoming-page .nav-links { display: none; } }
@media(max-width:620px) { .upcoming-hero { padding: 26px 21px; border-radius: 24px; } .upcoming-card-grid,.upcoming-format,.upcoming-program,.sale-overview,.sale-bundle-grid { grid-template-columns: 1fr; } .upcoming-section { padding-top: 42px; } .upcoming-list-panel { padding: 19px; } .upcoming-page .nav-shell { border-radius: 24px; } .upcoming-page .nav-shell .btn-group { gap: 4px; } .upcoming-page .nav-shell .btn { padding: 8px 10px; font-size: .79rem; } }
@media(max-width:620px) { .upcoming-format-points { grid-template-columns: 1fr; gap: 11px; padding: 19px; } .upcoming-format-points li + li { border-left: 0; border-top: 1px solid var(--line); padding: 11px 0 0; } }
@media(max-width:620px) {
  .sale-hero .sale-title { display: block; }
  .sale-title-date { margin-left: .2em; }
  .sale-hero-art { width: calc(100% + 30px); margin: 0 -15px -12px; }
  .sale-bundle-grid { width: 100%; min-width: 0; gap: 15px; }
  .sale-bundle { width: 100%; min-width: 0; max-width: 100%; gap: 13px; padding: 22px 18px; border-radius: 21px; }
  .sale-bundle h3 { max-width: 100%; font-size: clamp(1.28rem,7vw,1.55rem); overflow-wrap: anywhere; }
  .sale-bundle ul,.sale-bundle.featured .sale-components { min-width: 0; grid-template-columns: 1fr; }
  .sale-bundle li,.sale-bundle li a { min-width: 0; max-width: 100%; }
  .sale-bundle li a { padding: 8px 9px; overflow-wrap: anywhere; }
  .sale-bundle-footer { display: grid; grid-template-columns: 1fr; width: auto; min-width: 0; margin: auto -18px -22px; padding: 16px 18px 18px; }
  .sale-bundle-footer .sale-prices,.sale-bundle-footer .btn { flex: none; width: 100%; min-width: 0; }
  .sale-bundle-footer .sale-prices strong { max-width: 100%; font-size: clamp(1.45rem,7.5vw,1.8rem); white-space: normal; overflow-wrap: break-word; }
  .sale-bundle-footer .btn { min-height: 48px; }
  .sale-bundle.featured .sale-components li:last-child:nth-child(odd) { grid-column: auto; }
  .sale-bundle.featured { margin-block: 22px; padding: 27px 18px 24px; }
  .sale-bundle.featured h3 { font-size: clamp(1.8rem,10vw,2.35rem); }
  .sale-bundle.featured .sale-bundle-footer { width: 100%; padding: 19px 16px; }
  .sale-bundle.featured .sale-prices strong { font-size: clamp(1.55rem,8vw,1.9rem); }
  .sale-page .sale-bundle.featured .sale-fire { --fire-inline: 9px; --fire-block: 28px; }
}
@media(prefers-reduced-motion:reduce) { .sale-bundle,.sale-price-promo,.sale-price-promo-link::after { transition: none; } .sale-bundle:hover,.sale-price-promo:hover { transform: none; } }
