.calendar-module{color:#022220;font-family:Manrope,sans-serif;font-size:16px;font-weight:300;margin:0 auto}.calendar-header{align-items:center;border-radius:6px;color:#fff;display:flex;font-size:16px;font-weight:300;justify-content:space-between;margin-bottom:12px;padding:8px 0}.calendar-header h3{flex:1;font-size:20px;font-weight:400;margin:0;text-align:center}.calendar-header button{background:#512f57;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Manrope,sans-serif;font-size:14px;font-weight:300;padding:4px 8px;transition:background .2s ease}.calendar-header button:hover{background:#5f3868}.calendar-grid{display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.calendar-day-name{background:#512f57;border-radius:6px;color:#fff;font-size:16px;font-weight:300;padding:6px;text-align:center}.calendar-day,.calendar-empty{background:#fff;border:1px solid #ddd;border-radius:6px;color:#022220;font-size:14px;font-weight:300;min-height:100px;overflow-wrap:break-word;padding:3px;position:relative}.calendar-day .day-number{color:#022220;font-size:16px;font-weight:400}.calendar-day.has-event{background:#f8f6fb;border:2px solid #5f3868}.calendar-day .event{background:#512f57;border-radius:6px;color:#fff;font-size:15px;font-weight:300;margin-top:3px;padding:6px;word-break:break-word}.calendar-day .event a{color:#fff;font-size:13px;font-weight:600;text-decoration:underline}.upcoming-events{border-top:2px solid #512f57;font-size:16px;font-weight:300;margin-top:32px;padding:16px 0 0}.upcoming-events .upcoming-events-list{list-style:none;margin:0;padding:0}.upcoming-events .upcoming-event-item{background:#f8f6fb;border-left:4px solid #5f3868;border-radius:6px;color:#022220;font-size:14px;font-weight:300;margin-bottom:12px;padding:12px;word-break:break-word}.upcoming-events .upcoming-event-item .event-title-date{color:#512f57;font-size:20px;font-weight:600}.upcoming-events .upcoming-event-item a{color:#5f3868;display:block;margin-top:8px;text-decoration:underline;width:fit-content}.upcoming-events .upcoming-event-item .event-link a{color:#fff;font-size:16px;text-decoration:none}.event-description{color:#333;font-size:18px;font-weight:300;line-height:1.4;margin-top:18px}.event-description p{margin-bottom:16px}.event-description p strong{font-weight:600}.upcoming-events .upcoming-event-item .event-title-date-wrapper{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.upcoming-events .event-date{font-size:16px;font-style:italic}.upcoming-events .event-date span{font-style:normal}.event-location{font-weight:600;margin-top:4px}.event-description ul{padding-inline-start:30px}@media (max-width:767px){.calendar-grid{gap:2px;grid-template-columns:repeat(7,1fr)}.calendar-day-name{font-size:12px;padding:4px 2px}.calendar-day,.calendar-empty{display:flex;flex-direction:column;font-size:12px;justify-content:space-between;min-height:60px;padding:0}.calendar-day .event{border:none;border-radius:0;font-size:11px;line-height:1;margin-top:2px;padding:6px 3px}.calendar-day .event a{font-size:10px}.upcoming-events{padding:12px 0 0}.upcoming-events .upcoming-event-item{font-size:14px;padding:6px}.event-description,.upcoming-events .upcoming-event-item strong{font-size:16px}.event-description p{margin-bottom:10px}.upcoming-events .event-date{font-size:14px}}@media (max-width:568px){calendar-day .day-number{padding:0 3px}.calendar-day,.calendar-day .day-number,.calendar-day .event,.calendar-empty{font-size:10px}.calendar-day .event small{display:none}.calendar-day .event a{font-size:8px}.calendar-grid{gap:1px}}