
.events-page { padding-block: 32px 72px; }
.events-head { margin-bottom: 24px; }
.events-head .eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; color: var(--amber); font-weight: 700; margin: 0 0 4px; }
.events-title { font-family: var(--font-display); font-size: clamp(1.9rem, 4vw, 2.4rem); font-weight: 600; margin: 0; color: var(--text); }

.events-flash { padding: .8rem 1.1rem; border-radius: var(--r); margin-bottom: 18px; font-size: .95rem; font-weight: 600; border: 1px solid transparent; }
.events-flash.is-ok  { background: var(--felt-soft); color: var(--felt-bright); border-color: var(--felt-line); }
.events-flash.is-err { background: var(--danger-soft); color: var(--danger-text); border-color: var(--danger-line); }

.ev-cal-nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 18px; }
.ev-cal-month { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; margin: 0; min-width: 12ch; text-align: center; color: var(--text); }
.ev-cal-prev, .ev-cal-next {
    border: 1px solid var(--line-strong); background: var(--panel); color: var(--text-dim);
    width: 38px; height: 38px; border-radius: 9px; cursor: pointer; font-size: 20px; line-height: 1;
    display: flex; align-items: center; justify-content: center; transition: background .12s, border-color .12s, color .12s;
}
.ev-cal-prev:hover, .ev-cal-next:hover { background: var(--panel-2); border-color: var(--amber); color: var(--text); }

.ev-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-left: 1px solid var(--line); border-top: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ev-cal-dow { background: var(--panel-2); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 9px 0; text-align: center; font-size: 12px; font-weight: 700; color: var(--text-dim); letter-spacing: .04em; text-transform: uppercase; }
.ev-cal-cell { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 104px; padding: 6px; background: var(--panel); display: flex; flex-direction: column; gap: 3px; }
.ev-cal-cell.is-blank { background: var(--panel-2); }
.ev-cal-cell.is-today { background: var(--amber-soft); }
.ev-cal-cell.is-today .ev-cal-day { background: var(--amber); color: var(--on-amber); }
.ev-cal-day { font-size: 13px; font-weight: 700; color: var(--text-dim); width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 999px; flex: none; }

.ev-chip { display: flex; flex-direction: column; background: var(--amber-soft); border-left: 3px solid var(--amber); border-radius: 5px; text-decoration: none; overflow: hidden; transition: background .12s; }
.ev-chip:hover { background: var(--amber-line); }
.ev-chip-img { display: block; width: 100%; aspect-ratio: 16 / 9; background-size: cover; background-position: center; }
.ev-chip-text { display: flex; flex-direction: column; gap: 1px; padding: 3px 6px; min-width: 0; }
.ev-chip-time { font-size: 10px; font-weight: 700; color: var(--amber); white-space: nowrap; line-height: 1.2; }
.ev-chip-title { font-size: 11px; font-weight: 600; color: var(--amber-bright); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }

.ev-cal-mark, .ev-cal-hint, .ev-cal-daypanel { display: none; }

.event-detail { padding-block: 24px 72px; max-width: 880px; }
.event-back { display: inline-block; margin-bottom: 18px; font-size: 14px; font-weight: 600; color: var(--text-dim); text-decoration: none; }
.event-back:hover { color: var(--text); }

.event-card { display: flex; flex-direction: column; }
.event-hero { width: 100%; aspect-ratio: 16 / 9; max-height: 400px; background-size: cover; background-position: center; border-radius: var(--r-lg); margin-bottom: 28px; }
.event-title { font-family: var(--font-display); font-size: clamp(1.9rem, 5vw, 2.5rem); font-weight: 600; margin: 0 0 12px; line-height: 1.15; color: var(--text); }
.event-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
.event-price { font-size: 15px; font-weight: 700; color: var(--text); background: var(--panel-2); padding: 4px 12px; border-radius: 8px; }
.event-schedule { font-size: 15px; font-weight: 600; color: var(--text-dim); }
.event-body { font-size: 16px; color: var(--text-dim); line-height: 1.75; margin-bottom: 32px; }

.event-booking h2 { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; margin: 0 0 16px; color: var(--text); }
.event-occurrences { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.event-occ { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; border: 1px solid var(--line); border-radius: var(--r); padding: 16px 20px; background: var(--panel); }
.event-occ-main { display: flex; flex-direction: column; gap: 3px; }
.event-occ-date { font-size: 15px; font-weight: 700; color: var(--text); }
.event-occ-places { font-size: 13px; font-weight: 600; color: var(--text-dim); }
.event-occ-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.event-add-form { display: flex; align-items: center; gap: 8px; }
.event-qty { width: 4rem; padding: 9px 10px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--panel); color: var(--text); font: inherit; }

.event-occ .btn-primary { background: var(--amber); color: var(--on-amber); border: none; padding: 10px 22px; border-radius: 10px; font-weight: 700; cursor: pointer; transition: background .15s; }
.event-occ .btn-primary:hover { background: var(--amber-bright); }
.event-occ .btn-outline { background: transparent; color: var(--amber); border: 1px solid var(--amber); padding: 10px 22px; border-radius: 10px; font-weight: 700; cursor: pointer; transition: background .15s, color .15s; }
.event-occ .btn-outline:hover { background: var(--amber); color: var(--on-amber); }
.event-occ-closed { font-size: 14px; font-weight: 600; color: var(--danger); }

.event-cal summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--text-mute); list-style: none; }
.event-cal summary::-webkit-details-marker { display: none; }
.event-cal summary::before { content: '🗓 '; }
.event-cal-links { display: flex; gap: 14px; padding-top: 8px; font-size: 13px; }
.event-cal-links a { color: var(--amber); text-decoration: none; font-weight: 600; }
.event-cal-links a:hover { text-decoration: underline; }

.event-claim { padding-block: 56px; }
.event-claim-card { max-width: 480px; margin: 0 auto; text-align: center; padding: 32px; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--panel); }
.event-claim-card.is-ok  { border-color: var(--felt-line); background: var(--felt-soft); }
.event-claim-card.is-err { border-color: var(--danger-line); background: var(--danger-soft); }

@media (max-width: 640px) {
    .events-page { padding-block: 24px 56px; }
    .ev-cal-cell { min-height: 54px; padding: 4px 2px; align-items: center; gap: 3px; }
    .ev-cal-day { font-size: 12px; width: 22px; height: 22px; }
    .ev-chip { display: none; } 
    .ev-cal-cell.has-events { cursor: pointer; }

    .ev-cal-mark { display: flex; align-items: center; gap: 2px; color: var(--amber); }
    .ev-cal-ribbon { display: block; width: 13px; height: 13px; }
    .ev-cal-mark-n { font-size: 10px; font-weight: 700; line-height: 1; }
    .ev-cal-cell.is-sel { background: var(--amber-soft); box-shadow: inset 0 0 0 2px var(--amber); }
    .ev-cal-cell.is-sel .ev-cal-mark { color: var(--amber-bright); }

    .ev-cal-hint { display: block; margin: 14px 0 0; font-size: 13px; color: var(--text-mute); text-align: center; }
    .ev-cal-daypanel { display: block; margin-top: 18px; }
    .ev-cal-hint[hidden], .ev-cal-daypanel[hidden] { display: none; }
    .ev-cal-day-title { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--text); margin: 0 0 12px; }
    .ev-cal-day-list { display: flex; flex-direction: column; gap: 12px; }
    .ev-cd { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--panel); text-decoration: none; }
    .ev-cd-img { width: 100%; aspect-ratio: 16 / 9; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
    .ev-cd-img.is-empty { background: linear-gradient(150deg, var(--amber-soft) 0%, var(--panel-2) 100%); }
    .ev-cd-glyph { font-size: 2rem; opacity: .7; }
    .ev-cd-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 13px 15px; }
    .ev-cd-time { font-size: 12px; font-weight: 700; color: var(--amber); }
    .ev-cd-name { font-size: 15px; font-weight: 700; color: var(--text); }
    .ev-cd-desc { font-size: 13px; color: var(--text-dim); line-height: 1.5; }
    .ev-cd-price { align-self: flex-start; font-size: 12px; font-weight: 700; color: var(--amber); background: var(--amber-soft); border: 1px solid var(--amber-line); padding: 2px 9px; border-radius: 999px; margin-top: 2px; }
}
