/* Homepage Christmas invitation. Kept separate from course and checkout styles. */
#christmas-registration.xmas-invite {
  --xm-red:#a7302e; --xm-green:#344e43; --xm-gold:#ad8652;
  position:relative; isolation:isolate; display:grid;
  grid-template-columns:minmax(220px,.9fr) minmax(340px,1.25fr) minmax(240px,.8fr);
  gap:36px; align-items:center; max-width:1280px; margin:48px auto 64px;
  padding:48px 48px 44px 26px; border:1px solid #e7ddd0; border-radius:24px;
  background:#faf7f0; color:#242b27; line-height:1.6;
  box-shadow:0 16px 48px -38px #70564160; overflow:hidden;
}
.xmas-invite::before {content:""; position:absolute; inset:10px; border:1px solid #bd9b6040; border-radius:16px; pointer-events:none; z-index:-1}
.xmas-art {position:relative; align-self:stretch; display:flex; align-items:center; justify-content:center; min-height:330px}
.xmas-art::before {content:""; position:absolute; inset:6% 10% 2%; border-radius:160px 160px 8px 8px; background:#e9ede2; opacity:.65; z-index:-1}
.xmas-art img {display:block; width:100%; max-width:316px; height:auto; transform-origin:50% 90%; transition:transform 1s cubic-bezier(.2,.65,.3,1); filter:drop-shadow(0 12px 12px #5c46320b)}
@media(hover:hover) {.xmas-art:hover img {transform:translateY(-5px) rotate(-1.5deg)}}
.xmas-star {position:absolute; font-size:22px; font-family:Georgia,serif; color:var(--xm-gold); line-height:1; pointer-events:none}
.xmas-star:nth-of-type(1){left:9%;top:19%;--xm-delay:.2s}
.xmas-star:nth-of-type(2){right:6%;top:37%;font-size:15px;--xm-delay:1s}
.xmas-star:nth-of-type(3){left:4%;bottom:25%;font-size:12px;--xm-delay:1.8s}
.xmas-kicker {display:flex; align-items:center; gap:10px; color:var(--xm-green); font-size:11px; letter-spacing:.15em; font-weight:600}
.xmas-kicker::before {content:"";width:27px;height:1px;background:var(--xm-gold)}
#christmas-registration h2 {font-family:'Noto Serif TC',serif; font-size:clamp(30px,2.8vw,40px); font-weight:500; line-height:1.5; letter-spacing:.025em; margin:20px 0 18px}
#christmas-registration h2 em {font-style:normal; color:var(--xm-red)}
#christmas-registration h2 .en {font-family:'Newsreader',Georgia,serif; letter-spacing:-.025em; line-height:1.12}
#christmas-registration .xmas-description {font-size:14px; color:#50594f; margin:0 0 23px; line-height:1.75}
.xmas-description .en,.xmas-label .en,.xmas-enrol .en,.xmas-detail .en,.xmas-offer .en {font-family:inherit}
.xmas-sessions {display:flex; gap:24px; margin:0 0 24px}
.xmas-session+.xmas-session {border-left:1px solid #d9d0c2;padding-left:24px}
.xmas-label {font-size:11px;letter-spacing:.05em;color:#60665c;display:block;margin-bottom:5px}
.xmas-date {font-family:'Newsreader',Georgia,serif;font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.2;white-space:nowrap}
.xmas-date small {font-family:'Plus Jakarta Sans','Noto Sans TC',sans-serif;font-size:12px;letter-spacing:0;margin-left:5px;font-weight:500}
.xmas-detail {display:inline-flex;gap:12px;align-items:center;font-size:12px;font-weight:500;color:var(--xm-green);text-decoration:none;border-bottom:1px solid #a5b0a0;padding-bottom:4px;transition:color .25s,border-color .25s}
.xmas-detail:hover {color:var(--xm-red);border-color:var(--xm-red)}
.xmas-detail>span:last-child {transition:transform .3s}
.xmas-detail:hover>span:last-child {transform:translateX(4px)}
.xmas-booking {border-left:1px dashed #d4c8b5;padding-left:32px;min-width:0;text-align:center}
.xmas-offer {position:relative;padding:0 0 26px}
.xmas-offer-label {display:inline-block;position:relative;padding:6px 17px;background:var(--xm-green);color:#fffaf0;font-size:10px;letter-spacing:.18em;clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%)}
.xmas-saving {display:block;color:var(--xm-red);line-height:1.2;margin:14px 0 4px;font-family:'Noto Serif TC',serif;font-size:24px}
.xmas-saving b {font-family:'Newsreader',Georgia,serif;font-size:66px;line-height:1;font-weight:400;letter-spacing:-.05em;margin-right:6px}
.xmas-saving .en {font-family:inherit;font-size:20px}
.xmas-saving .en b {font-size:52px}
#christmas-registration .xmas-deadline {margin:6px 0 0;font-size:17px;font-weight:500;line-height:1.7;color:#585d54}
.xmas-enrol {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 17px;border:1px solid var(--xm-red);border-radius:7px;color:#fff!important;background:var(--xm-red);font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;transition:transform .3s,box-shadow .3s,background .3s}
.xmas-enrol+.xmas-enrol {margin-top:11px;background:transparent;color:var(--xm-red)!important}
.xmas-enrol>span:last-child {font-size:20px;font-weight:400;transition:transform .3s}
.xmas-enrol:hover {transform:translateY(-2px);box-shadow:0 5px 12px #8c222019;background:#902926}
.xmas-enrol+.xmas-enrol:hover {background:#f3e8df}
.xmas-enrol:hover>span:last-child {transform:translateX(4px)}
.xmas-enrol:focus-visible,.xmas-detail:focus-visible {outline:2px solid var(--xm-green);outline-offset:5px}
.xmas-invite [hidden] {display:none!important}
.xmas-invite.is-arriving .xmas-art img {animation:xmas-unfold 1.3s cubic-bezier(.2,.65,.3,1) both}
.xmas-invite.is-arriving .xmas-copy {animation:xmas-arrive .9s .12s both}
.xmas-invite.is-arriving .xmas-booking {animation:xmas-arrive .9s .25s both}
.xmas-invite.is-arriving .xmas-star {animation:xmas-glimmer 2s var(--xm-delay) 2 both}
@keyframes xmas-unfold {from{opacity:.2;transform:translateY(24px) rotate(-3deg)}to{opacity:1;transform:none}}
@keyframes xmas-arrive {from{opacity:.25;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes xmas-glimmer {0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2) rotate(12deg)}}
@media(max-width:1340px){#christmas-registration.xmas-invite{margin-left:28px;margin-right:28px;gap:26px;padding:38px 36px 36px 20px}.xmas-booking{padding-left:26px}}
@media(min-width:901px) and (max-width:1100px){#christmas-registration.xmas-invite{grid-template-columns:minmax(170px,.7fr) minmax(280px,1.15fr) minmax(215px,.8fr);gap:20px;padding-right:26px}#christmas-registration h2{font-size:30px}.xmas-art{min-height:280px}.xmas-booking{padding-left:20px}.xmas-sessions{gap:18px}.xmas-session+.xmas-session{padding-left:18px}.xmas-date{font-size:27px}}
@media(max-width:900px){#christmas-registration.xmas-invite{grid-template-columns:.8fr 1.2fr;gap:26px;padding:34px}.xmas-art{min-height:260px}.xmas-art img{max-width:250px}.xmas-booking{grid-column:1/-1;border-left:0;border-top:1px dashed #d4c8b5;padding:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.xmas-offer{padding:0}.xmas-saving{margin-top:8px}.xmas-saving b{font-size:50px}.xmas-saving .en b{font-size:44px}.xmas-booking:has(.xmas-offer[hidden]){grid-template-columns:1fr}.xmas-booking:has(.xmas-offer[hidden]) .xmas-enrolments{display:flex;gap:14px}.xmas-booking:has(.xmas-offer[hidden]) .xmas-enrol{flex:1;margin-top:0}}
@media(max-width:560px){#christmas-registration.xmas-invite{grid-template-columns:minmax(0,1fr);margin:26px 16px 38px;padding:20px 26px 30px;gap:14px;border-radius:20px}.xmas-invite::before{inset:8px;border-radius:13px}.xmas-art{min-height:0;height:206px;width:190px;margin:0 auto}.xmas-art img{width:auto;height:100%;max-width:100%}.xmas-art::before{inset:8% 9% 0}.xmas-copy{text-align:center}.xmas-kicker{justify-content:center;font-size:9px;letter-spacing:.12em;gap:8px}.xmas-kicker::before{width:18px}#christmas-registration h2{font-size:29px;line-height:1.5;margin:16px 0 12px}#christmas-registration .xmas-description{font-size:13px;margin-bottom:20px}.xmas-sessions{justify-content:center;gap:24px}.xmas-date{font-size:29px}.xmas-detail{font-size:11px}.xmas-booking{grid-column:auto;grid-template-columns:1fr;margin-top:12px;padding-top:24px;gap:20px}.xmas-offer{display:grid;grid-template-columns:auto 1fr;column-gap:16px;text-align:left;align-items:center}.xmas-offer-label{grid-column:1/-1;justify-self:center;margin-bottom:10px}.xmas-saving{margin:0;white-space:nowrap;justify-self:end}.xmas-saving b{font-size:48px}.xmas-saving .en b{font-size:43px}#christmas-registration .xmas-deadline{margin:0;font-size:15px}.xmas-enrol{padding:13px 18px}.xmas-booking:has(.xmas-offer[hidden]) .xmas-enrolments{display:block}.xmas-booking:has(.xmas-offer[hidden]) .xmas-enrol+.xmas-enrol{margin-top:11px}}
@media(prefers-reduced-motion:reduce){#christmas-registration *,#christmas-registration *::before{animation:none!important;transition:none!important}.xmas-art:hover img,.xmas-enrol:hover{transform:none}}
