.so-widget-calendar { display:flex; justify-content:space-between; flex-wrap:wrap-reverse; }

.so-widget-calendar .output { width:calc(60% - 45px); }
.so-widget-calendar .output.loading { position:relative; }
.so-widget-calendar .output.loading .loader { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); }

.so-widget-calendar .columns { display:flex; align-items:center; }

.so-widget-calendar .date { align-self:flex-start; background-color:#441818; color:#fff; font-family:'Libre Baskerville', serif; line-height:1; margin-right:60px; padding:15px 0; text-align:center; text-transform:uppercase; width:90px; }
.so-widget-calendar .date .month { margin-bottom:6px; }
.so-widget-calendar .date .day { font-size:48px; }

.so-widget-calendar .meals, .so-widget-calendar .activities { flex-grow:1; }

.so-widget-calendar .notice { margin-bottom:0; }

.so-widget-calendar .notes { border-bottom:1px solid #f2f2f2; font-size:18px; padding-bottom:30px; margin-bottom:30px; }
.so-widget-calendar .notes::before { content:'\f06a'; color:#441818; font-family:'Font Awesome 6 Pro'; font-weight:900; margin-right:6px; }

.so-widget-calendar .meal, .so-widget-calendar .activity { border-bottom:1px solid #f2f2f2; margin-bottom:30px; padding-bottom:30px; }
.so-widget-calendar .meal:first-child, .so-widget-calendar .activity:first-child { padding-top:15px; }
.so-widget-calendar .meal:last-child, .so-widget-calendar .activity:last-child { border-bottom-width:0; margin-bottom:0; padding-bottom:0; }

.so-widget-calendar .header { font-family:'Libre Baskerville', serif; margin-bottom:15px; padding-left:60px; position:relative; }
.so-widget-calendar .header .icon { color:#ea952b; font-size:36px; position:absolute; top:50%; left:0; transform:translateY(-50%); }
.so-widget-calendar .header .title { font-size:24px; font-weight:700; line-height:1; }
.so-widget-calendar .header .description { color:#999; font-style:italic; }

.so-widget-calendar .meal > *:last-child, .so-widget-calendar .activity > *:last-child { margin-bottom:0; }

.so-widget-calendar .calendars { width:calc(40% - 45px); }

.so-widget-calendar .calendars .slick { display:none; }
.so-widget-calendar .calendars .slick.slick-initialized { display:block; }

.so-widget-calendar .calendars .slick-slide { outline-width:0; }

.so-widget-calendar .calendar { border-collapse:collapse; margin-bottom:0; table-layout:fixed; width:100%; }
.so-widget-calendar .calendar caption { color:#441818; font-family:'Libre Baskerville', serif; font-size:30px; margin-bottom:15px; }
.so-widget-calendar .calendar thead th { background-color:#441818; color:#fff; font-size:14px; line-height:1; padding:6px; }
.so-widget-calendar .calendar tbody td { font-size:12px; font-weight:500; line-height:1; padding:3px; text-align:right; }
.so-widget-calendar .calendar tbody td a { border:1px solid #ddd; color:#333; display:block; outline-width:0; padding:30px 6px 6px 6px; transition:background-color 0.6s, border-color 0.6s, color 0.6s; }
.so-widget-calendar .calendar tbody td a:hover { background-color:#f2f2f2; text-decoration:none; }
.so-widget-calendar .calendar tbody td a.active { background-color:#ea952b; border-color:#ea952b; color:#fff; }
.so-widget-calendar .calendar tbody td span { border:1px solid #f2f2f2; color:#ddd; display:block; padding:30px 6px 6px 6px; }

.so-widget-calendar .calendars .arrows { margin-top:30px; text-align:center; }
.so-widget-calendar .calendars .arrows .slick-arrow { background-color:#ea952b; border-radius:50%; color:#fff; display:inline-block; font-size:21px; width:54px; height:54px; transition:background 0.6s; }
.so-widget-calendar .calendars .arrows .slick-arrow.slick-disabled { background-color:#f2f2f2; cursor:not-allowed; }
.so-widget-calendar .calendars .arrows .slick-prev { margin-right:3px; }
.so-widget-calendar .calendars .arrows .slick-next { margin-left:3px; }
.so-widget-calendar .calendars .arrows .slick-arrow i { line-height:54px; }

@media (max-width:991px) {
	.so-widget-calendar { justify-content:center; }

	.so-widget-calendar .output { text-align:center; width:100%; }

	.so-widget-calendar .output.loading { text-align:center; }
	.so-widget-calendar .output.loading .loader { position:static; transform:none; }

	.so-widget-calendar .columns { display:block; }

	.so-widget-calendar .date { display:block; margin:0 auto 30px; }

	.so-widget-calendar .header { padding-left:0; }
	.so-widget-calendar .header .icon { position:static; transform:none; }

	.so-widget-calendar .meal .styled-list { display:inline-block; }
	.so-widget-calendar .meal .styled-list li { text-align:left; }

	.so-widget-calendar .calendars { margin-bottom:60px; width:600px; max-width:100%; }
}