.ast-advent { --advent-navy:#142e3c; --advent-cyan:#9cdee1; --advent-pink:#bc3668; box-sizing:border-box; width:min(1100px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:0; border:0; border-radius:22px; color:var(--advent-navy); background:#f2f8fa; font:16px/1.55 system-ui,sans-serif; box-shadow:0 20px 80px #0005; }
.ast-advent *, .ast-advent *::before, .ast-advent *::after { box-sizing:border-box; }
.ast-advent::backdrop { background:#0b2231cc; }
.ast-advent [hidden] { display:none!important; }
.ast-advent button, .ast-advent a { font:inherit; }
.ast-advent button { cursor:pointer; }
.ast-advent button:disabled { cursor:default; }
.ast-advent button:focus-visible, .ast-advent a:focus-visible, .ast-advent summary:focus-visible { outline:3px solid #c6296a; outline-offset:4px; }
.ast-advent-top { padding:24px 32px 18px; display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.ast-advent-top p { margin:0; }
.ast-advent-kicker { text-transform:uppercase; letter-spacing:.17em; font-size:12px; font-weight:750; }
.ast-advent h2 { margin:4px 0 8px; font-size:clamp(25px,4vw,40px); line-height:1.15; letter-spacing:-.035em; }
.ast-advent h3 { margin:0 0 12px; }
.ast-advent-close { min-width:44px; min-height:44px; border:1px solid #c7d8df; border-radius:50%; color:var(--advent-navy); background:white; flex-shrink:0; }
.ast-advent-board { position:relative; padding:35px; isolation:isolate; background:#455257 url('images/advent-clinic.jpg') center/cover no-repeat; }
.ast-advent-board::before { content:''; position:absolute; inset:0; background:linear-gradient(120deg,#102c3c59,#102c3c0d); z-index:-1; }
.ast-advent-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; max-width:900px; margin:auto; }
.ast-advent-door { min-width:0; min-height:92px; aspect-ratio:1.1; border:1px solid #f1ffffb3; border-radius:9px; background:#142e3ce8; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; box-shadow:0 4px 16px #102c3c45; }
.ast-advent-door strong { font-size:clamp(26px,4vw,44px); line-height:1.1; font-weight:650; }
.ast-advent-door small { font-size:12px; }
.ast-advent-door[data-today] { background:#a3e3e9f5; color:#102e3f; border:3px solid white; box-shadow:0 0 0 3px #286774; }
.ast-advent-door[data-opened] { background:#ecf8f3e8; color:#214638; }
.ast-advent-door:disabled { opacity:1; color:#fff; background:#142e3cc4; }
.ast-advent-door:disabled small { color:#edf3f7; }
.ast-advent-door[data-finale] { border-color:#ffd6e5; }
.ast-advent-bottom { padding:22px 32px 30px; }
.ast-advent-note { margin:0 0 16px; }
.ast-advent-status { padding:12px 16px; border-radius:9px; background:#deeff2; }
.ast-advent-error { color:#8d234b; }
.ast-advent-reveal { background:white; border-left:5px solid var(--advent-pink); padding:24px; border-radius:10px; margin-bottom:20px; }
.ast-advent-copy { white-space:pre-wrap; overflow-wrap:anywhere; }
.ast-advent-reveal a { color:#135e76; text-decoration:underline; }
.ast-advent-primary { min-height:44px; padding:10px 20px; background:var(--advent-navy); border:0; border-radius:8px; color:white; }
.ast-advent-rewards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:12px; margin:16px 0; }
.ast-advent-reward { padding:18px; background:white; border:1px solid #cee0e7; border-radius:10px; }
.ast-advent-reward h4 { margin:0 0 8px; }
.ast-advent-reward p { margin:5px 0; }
.ast-advent details { border-top:1px solid #cfdee4; padding:14px 0; }
.ast-advent summary { cursor:pointer; font-weight:650; }
@media(max-width:600px) {
  .ast-advent { width:calc(100% - 12px); max-height:calc(100dvh - 12px); border-radius:14px; }
  .ast-advent-top, .ast-advent-bottom { padding:18px 16px; }
  .ast-advent-board { padding:18px 12px; background-position:65% center; }
  .ast-advent-grid { gap:8px; }
  .ast-advent-door { min-height:76px; aspect-ratio:auto; border-radius:6px; }
  .ast-advent-door strong { font-size:26px; }
  .ast-advent-door small { font-size:10px; }
  .ast-advent-reveal { padding:18px; }
}
