:root {
    --event-font: "Hiragino Sans", "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --event-bg: linear-gradient(180deg, #f7fbff 0%, #eef4ff 52%, #fff8ed 100%);
    --event-surface: rgba(255, 255, 255, .92);
    --event-text: #172033;
    --event-muted: #5b667a;
    --event-primary: #185fa5;
    --event-primary-strong: #0c447c;
    --event-accent: #f4a51c;
    --event-danger: #c43b4d;
    --event-border: rgba(24, 95, 165, .16);
    --event-shadow: 0 18px 50px rgba(38, 70, 110, .16);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

.event-card {
    background: var(--event-surface);
    border: 1px solid var(--event-border);
    border-radius: 24px;
    box-shadow: var(--event-shadow);
    padding: clamp(18px, 4vw, 28px);
}

.event-card h2 {
    margin: 0 0 10px;
    color: var(--event-text);
    font-size: clamp(1.25rem, 3vw, 1.6rem);
}

.event-card p {
    margin: 0;
    color: var(--event-muted);
    line-height: 1.8;
}

.event-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px !important;
    color: var(--event-primary) !important;
    font-weight: 800;
    letter-spacing: .08em;
    font-size: .82rem;
    text-transform: uppercase;
}

.event-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 48px;
    padding: 13px 18px;
    border: 0;
    border-radius: 16px;
    background: var(--event-primary);
    color: #fff;
    text-decoration: none;
    font-weight: 800;
    letter-spacing: .02em;
    box-shadow: 0 10px 22px rgba(24, 95, 165, .22);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
    cursor: pointer;
}

.event-btn:hover {
    transform: translateY(-2px);
    background: var(--event-primary-strong);
    box-shadow: 0 14px 28px rgba(24, 95, 165, .28);
}

.event-btn-secondary {
    background: #fff;
    color: var(--event-primary);
    border: 1px solid var(--event-border);
    box-shadow: none;
}

.event-btn-secondary:hover {
    color: #fff;
}

.event-btn-danger {
    background: var(--event-danger);
    box-shadow: 0 10px 22px rgba(196, 59, 77, .22);
}

.event-point-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(244, 165, 28, .16);
    color: #7a4c00;
    font-weight: 900;
}

.event-message {
    min-height: 1.5em;
    margin-top: 14px;
    line-height: 1.7;
    color: var(--event-muted);
}

.event-message.success {
    color: #16784a;
}

.event-message.error {
    color: var(--event-danger);
}

@media (max-width: 640px) {
    .event-card {
        border-radius: 20px;
    }

    .event-btn {
        width: 100%;
        min-height: 52px;
    }
}
