.event-promotion {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(540px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  padding: 48px 36px 30px;
  border: 1px solid #dce6f0;
  border-radius: 26px;
  background: radial-gradient(circle at top left, #ffe4db, transparent 65%), #fff8ef;
  color: #0c5ba6;
  box-shadow: 0 24px 90px #001c4266;
  text-align: center;
}
.event-promotion::backdrop { background: #001a38b3; backdrop-filter: blur(5px); }
html:has(.event-promotion[open]) { overflow: hidden; }
.event-promotion-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 28px;
  cursor: pointer;
}
.event-promotion-eyebrow { display: block; margin-bottom: 14px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.event-promotion h2 { margin: 0 0 20px; font-size: clamp(32px, 7vw, 46px); line-height: 1.08; letter-spacing: -.04em; }
.event-promotion h2 span { color: #c91d28; }
.event-promotion p { line-height: 1.6; }
.event-promotion-fee { margin: 24px 0; padding: 16px; border: 1px solid #0c5ba62b; border-radius: 16px; background: #ffffff80; }
.event-promotion-accept, .event-promotion-skip { display: block; width: 100%; min-height: 48px; padding: 12px 16px; border-radius: 12px; font-weight: 750; cursor: pointer; }
.event-promotion-accept { border: 0; background: #c91d28; color: #fff; }
.event-promotion-accept:hover { background: #9f1520; }
.event-promotion-skip { margin-top: 8px; border: 0; background: transparent; color: #0c5ba6; }
.event-promotion-skip:hover, .event-promotion-close:hover { background: #0c5ba60d; }
.event-promotion .event-promotion-note { margin-top: 14px; font-size: 12px; color: #495c70; }
.event-promotion-option { margin: 24px 0; padding: 18px; border: 1px solid var(--line); border-radius: 16px; }
.event-promotion-option label { display: flex; align-items: baseline; gap: 10px; font-weight: 700; cursor: pointer; }
.event-promotion-option input { flex: 0 0 auto; width: 18px; height: 18px; accent-color: #c91d28; }
.event-promotion-details { margin: 10px 0; padding: 4px 0; border: 0; background: transparent; text-decoration: underline; cursor: pointer; }
@media (max-width: 480px) { .event-promotion { padding: 48px 22px 24px; } }
