:root { --calendar-forest: #173f2d; --calendar-gold: #d3ad43; --calendar-cream: #faf7f2; --calendar-muted: #8a94a4; }
.fc .fc-daygrid-day-frame { position: relative; }.fc .fc-daygrid-day.calendar-day-has-event .fc-daygrid-day-frame::after { position: absolute; right: 9px; bottom: 8px; width: 8px; height: 8px; border: 2px solid #fff; border-radius: 50%; background: var(--calendar-gold); box-shadow: 0 1px 4px rgba(23, 63, 45, .2); content: ''; }
.calendar-page-body .main-content { padding-top: 92px; }.calendar-page { min-height: 72vh; padding: clamp(48px, 6vw, 82px) 0; background: var(--calendar-cream); }.calendar-page-heading { margin-bottom: 28px; text-align: center; }.calendar-page-heading p, .calendar-events-panel-eyebrow { margin: 0 0 8px; color: var(--calendar-gold); font-family: 'Outfit', sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.calendar-page-heading h1, .calendar-events-panel h2, .calendar-event-card h3 { margin: 0; color: var(--calendar-forest); font-family: 'Playfair Display', Georgia, serif; font-weight: 700; }.calendar-page-heading h1 { font-size: clamp(2.2rem, 3vw, 3rem); }.calendar-page-heading h1 em { color: var(--calendar-gold); font-weight: 600; }.calendar-page-actions { display: flex; justify-content: center; margin-bottom: 26px; }.btn-calendar-download { display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border: 1px solid rgba(23, 63, 45, .18); border-radius: 999px; color: var(--calendar-forest); font-family: 'Outfit', sans-serif; font-size: .92rem; font-weight: 700; text-decoration: none; }.btn-calendar-download:hover { border-color: var(--calendar-gold); color: var(--calendar-forest); }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; align-items: start; }.calendar-layout--with-events { grid-template-columns: minmax(0, 1.75fr) minmax(290px, .75fr); }.calendar-card { padding: clamp(20px, 2.5vw, 32px); border: 1px solid rgba(23, 63, 45, .1); border-radius: 20px; background: #fff; box-shadow: 0 8px 24px rgba(20, 46, 33, .06); }.calendar-events-panel { padding: 4px 0; }.calendar-events-panel h2 { margin-bottom: 20px; font-size: 1.5rem; text-transform: capitalize; }.calendar-events-list { display: grid; gap: 14px; }.calendar-event-card { position: relative; padding: 20px 20px 18px 28px; border-radius: 14px; background: #fff; box-shadow: 0 6px 16px rgba(20, 46, 33, .05); }.calendar-event-card::before { position: absolute; top: 27px; left: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--calendar-gold); content: ''; }.calendar-event-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.calendar-event-card h3 { font-size: 1.05rem; line-height: 1.2; }.calendar-event-status { flex: 0 0 auto; padding: 4px 9px; border-radius: 999px; font-family: 'Outfit', sans-serif; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.calendar-event-status-upcoming { background: rgba(23, 63, 45, .1); color: var(--calendar-forest); }.calendar-event-status-past { background: #eef0f2; color: #7d8794; }.calendar-event-card p { margin: 8px 0 0; font-family: 'Outfit', sans-serif; font-size: .88rem; line-height: 1.5; }.calendar-event-time { color: var(--calendar-gold); font-weight: 700; }.calendar-event-description { color: #667085; }
.fc { --fc-border-color: rgba(23, 63, 45, .08); --fc-page-bg-color: transparent; --fc-neutral-bg-color: #faf8f4; --fc-today-bg-color: rgba(211, 173, 67, .1); font-family: 'Outfit', sans-serif; }.fc .fc-toolbar { margin-bottom: 26px; }.fc .fc-toolbar-title { color: var(--calendar-forest); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 700; }.fc .fc-button { padding: 8px 12px; border: 1px solid rgba(23, 63, 45, .16) !important; border-radius: 999px !important; background: #fff !important; color: var(--calendar-forest) !important; box-shadow: none !important; font-family: 'Outfit', sans-serif; font-size: .82rem; font-weight: 700; text-transform: capitalize; }.fc .fc-button:hover, .fc .fc-button:focus, .fc .fc-button-active { border-color: var(--calendar-forest) !important; background: var(--calendar-forest) !important; color: #fff !important; }.fc .fc-button-group { gap: 6px; }.fc .fc-button-group > .fc-button { margin: 0 !important; }.fc .fc-col-header-cell { border: 0; }.fc .fc-col-header-cell-cushion { padding: 10px 0 15px; color: var(--calendar-muted); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }.fc .fc-daygrid-day { border: 0; }.fc .fc-daygrid-day-frame { min-height: 78px; padding: 7px; border-radius: 10px; }.fc .fc-daygrid-day:hover .fc-daygrid-day-frame { background: #faf8f4; }.fc .fc-daygrid-day-number { padding: 4px 5px; color: var(--calendar-forest); font-size: .9rem; font-weight: 600; text-decoration: none; }.fc .fc-day-today .fc-daygrid-day-frame { background: rgba(211, 173, 67, .1); }.fc .fc-day-today .fc-daygrid-day-number { display: inline-grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--calendar-gold); color: #fff; }.fc .fc-daygrid-event-harness { margin-top: 3px; }.fc .fc-daygrid-event { display: inline-flex; width: auto; padding: 2px 4px; border: 0 !important; border-radius: 50%; background: transparent !important; }.calendar-event-dot { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--calendar-gold); }.fc .fc-event-title, .fc .fc-event-time { display: none; }.fc .fc-timegrid-event { border: 0 !important; border-radius: 8px; background: rgba(211, 173, 67, .18) !important; }.fc .fc-timegrid-event .calendar-event-dot { margin: 7px; }.fc .fc-timegrid-axis-cushion, .fc .fc-timegrid-slot-label-cushion { color: var(--calendar-muted); font-size: .78rem; }.fc .fc-scrollgrid { border: 0; }.fc .fc-scrollgrid-section > * { border: 0; }
@media (max-width: 991px) { .calendar-layout--with-events { grid-template-columns: minmax(0, 1fr); }.calendar-events-panel { max-width: 680px; width: 100%; margin: 0 auto; }.calendar-events-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .calendar-page-body .main-content { padding-top: 80px; }.calendar-page { padding: 40px 0; }.calendar-card { padding: 16px 10px; border-radius: 14px; }.fc .fc-header-toolbar { display: grid; grid-template-columns: 1fr; gap: 14px; }.fc .fc-toolbar-chunk { display: flex; justify-content: center; }.fc .fc-toolbar-chunk:nth-child(2) { order: -1; }.fc .fc-button { padding: 7px 9px; font-size: .74rem; }.fc .fc-daygrid-day-frame { min-height: 55px; padding: 3px; }.fc .fc-daygrid-day-number { font-size: .78rem; }.fc .fc-col-header-cell-cushion { padding: 5px 0 9px; font-size: .64rem; }.calendar-events-list { grid-template-columns: 1fr; }.btn-calendar-download { justify-content: center; text-align: center; }.fc .fc-timegrid-slot { height: 2.8em; } }

/* The date selection remains visible after the details panel opens. */
.fc .fc-daygrid-day.calendar-day-is-selected .fc-daygrid-day-frame { outline: 1px solid var(--calendar-gold); outline-offset: -1px; background: rgba(211, 173, 67, .12); }
.fc .fc-daygrid-day.calendar-day-is-selected .fc-daygrid-day-number { display: inline-grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--calendar-gold); color: #fff; }

/* FullCalendar highlights the complete table cell for today; keep only the date circle. */
.fc { --fc-today-bg-color: transparent; }

/* Once a date is selected, it becomes the only highlighted day. */
.calendar-has-date-selection .fc .fc-day-today:not(.calendar-day-is-selected) .fc-daygrid-day-number { display: block; width: auto; height: auto; padding: 4px 5px; border-radius: 0; background: transparent; color: var(--calendar-forest); }

/* Rich-text descriptions can contain long unbroken strings. Keep cards within the viewport. */
.calendar-event-card { min-width: 0; overflow: hidden; }
.calendar-event-card h3, .calendar-event-card p { max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.calendar-page { scroll-margin-top: 92px; }
/* Managed by Symfony AssetMapper. */
