/* RCUK Calendar */
.rcuk-cal-wrap { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1rem; }
.rcuk-cal-wrap h1 { margin: 0 0 .25rem; font-size: 1.8rem; }
.rcuk-cal-intro { color: #555; margin: 0 0 1.25rem; max-width: 65ch; }
.rcuk-cal-when { color: #333; font-weight: 600; margin: .25rem 0 1rem; }

.rcuk-cal-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; align-items: center; }
.rcuk-cal-toolbar select { padding: .45rem .6rem; border: 1px solid #ccc; border-radius: 4px; font-size: .9rem; }
.rcuk-cal-toolbar .rcuk-cal-count { margin-left: auto; color: #666; font-size: .9rem; }

#rcuk-cal-map { width: 100%; height: 420px; border-radius: 6px; border: 1px solid #ddd; margin-bottom: 1.25rem; }
#rcuk-cal-map.rcuk-cal-single-map { height: 100%; min-height: 320px; margin-bottom: 0; }

.rcuk-cal-month { font-size: 1.15rem; margin: 1.5rem 0 .5rem; padding-bottom: .35rem; border-bottom: 1px solid #e5e5e5; color: #0a1f44; }
.rcuk-cal-month-events { display: flex; flex-direction: column; gap: .5rem; }

.rcuk-cal-event { display: grid; grid-template-columns: 64px 1fr; gap: .85rem; padding: .85rem; border: 1px solid #e3e3e3; border-radius: 6px; background: #fff; transition: box-shadow .15s ease, transform .15s ease; position: relative; }
.rcuk-cal-event:hover { box-shadow: 0 4px 14px rgba(0,0,0,.07); transform: translateY(-1px); }
.rcuk-cal-event__date { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #0a1f44; color: #fff; border-radius: 6px; padding: .5rem .25rem; }
.rcuk-cal-event__day { font-size: 1.7rem; line-height: 1; font-weight: 700; }
.rcuk-cal-event__dow { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; margin-top: .15rem; opacity: .85; }
.rcuk-cal-event__body h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.rcuk-cal-event__body h3 a { color: #0a1f44; text-decoration: none; }
.rcuk-cal-event__body h3 a::before { content: ''; position: absolute; inset: 0; z-index: 1; }
.rcuk-cal-event__meta { margin: 0 0 .4rem; color: #666; font-size: .85rem; }

.rcuk-cal-chips, .rcuk-cal-event__chips { display: flex; flex-wrap: wrap; gap: .25rem; margin: .25rem 0; position: relative; z-index: 2; }
.rcuk-cal-chip { display: inline-block; padding: .15rem .5rem; background: #f1f3f6; border-radius: 999px; font-size: .75rem; color: #333; text-decoration: none; }
.rcuk-cal-chip--country { background: #e0f2f1; color: #00504a; font-weight: 600; }
.rcuk-cal-chip--series  { background: #fef3c7; color: #92400e; font-weight: 600; }
.rcuk-cal-chip--fee     { background: #fde8e8; color: #b91c1c; font-weight: 700; }

.rcuk-cal-toprow { display: grid; gap: 1.5rem; grid-template-columns: 1fr; margin-bottom: 1.5rem; }
@media (min-width: 900px) { .rcuk-cal-toprow { grid-template-columns: 2fr 1fr; align-items: stretch; } }
.rcuk-cal-sidebar { padding: 1rem; background: #fafafa; border: 1px solid #e3e3e3; border-radius: 6px; display: flex; flex-direction: column; justify-content: center; }
.rcuk-cal-sidebar h3 { margin: 0 0 .5rem; font-size: 1rem; }
.rcuk-cal-cta { display: block; margin-top: .5rem; padding: .65rem 1rem; background: #cc0000; color: #fff; text-decoration: none; border-radius: 4px; text-align: center; font-weight: 600; }
.rcuk-cal-cta:hover { background: #a30000; }
.rcuk-cal-fee, .rcuk-cal-slots { margin: .5rem 0 0; font-size: .9rem; }
.rcuk-cal-fd-banner { background: #fff7e6; border: 1px solid #ffd591; color: #8a4b00; padding: .55rem .75rem; border-radius: 4px; font-size: .85rem; text-align: center; margin-top: .75rem; }

.rcuk-cal-body { margin: 1rem 0; }
.rcuk-cal-details dt { font-weight: 600; color: #333; margin-top: .6rem; }
.rcuk-cal-details dd { margin: 0 0 .25rem; }
