.calendar{padding-inline:24px}@media(min-width: 768px){.calendar{padding-inline:32px}}@media(min-width: 1024px){.calendar{padding-inline:48px}}.calendar__container{max-width:960px;margin-inline:auto}.calendar__header{margin-bottom:28px}@media(min-width: 768px){.calendar__header{margin-bottom:40px}}.calendar__header .eyebrow{font-size:clamp(11px,10.2957746479px + 0.1877934272vw,13px);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}.calendar__calendar{background:#fff;border:1px solid #e5e5e5;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04),0 8px 32px rgba(0,0,0,.08)}.calendar__toolbar{display:flex;flex-direction:column;gap:16px;margin-bottom:24px;position:relative;z-index:10}@media(min-width: 768px){.calendar__toolbar{flex-direction:row;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}}.calendar__filter-bar{position:relative;z-index:10}.calendar__legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:20px}.calendar__toolbar .calendar__legend{margin-bottom:0;justify-content:flex-start;flex-shrink:0}@media(min-width: 768px){.calendar__toolbar .calendar__legend{justify-content:flex-end}}.calendar__legend-item{display:flex;align-items:center;gap:7px;font-size:clamp(12px,11.6478873239px + 0.0938967136vw,13px);font-weight:600;color:#737373;text-transform:uppercase;letter-spacing:.04em}.calendar__legend-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%}.calendar__nav{position:relative;display:flex;justify-content:center;align-items:flex-start;padding:10px 20px 54px;background:#2e8b7a;color:#fff}@media(min-width: 768px){.calendar__nav{padding:12px 28px 54px}}.calendar__nav-month{display:flex;align-items:center;gap:12px}@media(min-width: 768px){.calendar__nav-month{gap:24px}}.calendar__nav-wave{position:absolute;bottom:0;left:0;right:0;height:60px;pointer-events:none}.calendar__nav-wave svg{display:block;width:100%;height:100%}.calendar__nav-end{position:absolute;right:20px;top:10px;display:flex;align-items:center;gap:6px}@media(min-width: 768px){.calendar__nav-end{right:28px;top:12px}}.calendar__nav-btn{border:0;background:none;padding:0;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:#fff;font-size:1.125rem;cursor:pointer}.calendar__nav-btn svg{width:1em;height:1em}.calendar__nav-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar__nav-btn:focus-visible{outline-color:#fff}.calendar__month-label{font-family:"Nunito",sans-serif;font-size:clamp(16px,12.4788732394px + 0.9389671362vw,26px);font-weight:700;letter-spacing:-0.01em;text-align:center}.calendar__today-btn{border:0;background:none;padding:0;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;padding:6px 14px;border-radius:20px;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.3);color:#fff;font-size:clamp(11px,10.2957746479px + 0.1877934272vw,13px);font-weight:600;letter-spacing:.03em;cursor:pointer;transition:background .15s ease;white-space:nowrap}.calendar__today-btn:hover{background:hsla(0,0%,100%,.25)}.calendar__today-btn[hidden]{display:none}.calendar__today-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar__today-btn:focus-visible{outline-color:#fff}.calendar__weekdays[hidden],.calendar__grid[hidden]{display:none !important}.calendar__weekdays{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));background:#fafafa;border-bottom:1px solid #e5e5e5}.calendar__weekday{padding:10px 4px;text-align:center;font-size:clamp(10px,9.2957746479px + 0.1877934272vw,12px);font-weight:700;color:#525252;text-transform:uppercase;letter-spacing:.1em}@media(min-width: 768px){.calendar__weekday{padding:12px 4px}}.calendar__grid{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));transition:opacity .15s ease}.calendar__grid.is-fading{opacity:0;pointer-events:none}.calendar__day{position:relative;min-height:40px;padding:5px 4px 4px;border-bottom:1px solid #e5e5e5;border-right:1px solid #e5e5e5;transition:background-color .12s ease}@media(min-width: 768px){.calendar__day{min-height:100px;padding:7px 6px 5px}}@media(min-width: 1024px){.calendar__day{min-height:120px;padding:8px 8px 5px}}.calendar__day:nth-child(7n){border-right:none}.calendar__day--empty{background:#fafafa}.calendar__day--past .calendar__day-number{color:#d4d4d4}.calendar__day--today{background:rgba(46,139,122,.04)}.calendar__day--has-events{cursor:pointer}.calendar__day--has-events:hover{background:rgba(46,139,122,.04)}.calendar__day--has-events:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar__day--active{background:rgba(46,139,122,.07);box-shadow:inset 0 0 0 2px #2e8b7a}.calendar__day-number{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:clamp(11px,10.2957746479px + 0.1877934272vw,13px);font-weight:500;line-height:1;color:#404040;margin:0 auto 2px}@media(min-width: 768px){.calendar__day-number{margin:0 0 3px}}.calendar__day--today .calendar__day-number{background:#2e8b7a;color:#fff;font-weight:700}.calendar__dot{display:block;width:5px;height:5px;border-radius:50%;background:#2e8b7a;margin:3px auto 0}@media(min-width: 768px){.calendar__dot{display:none}}.calendar__space-dot{display:none}@media(min-width: 768px){.calendar__space-dot{display:block;position:absolute;bottom:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#16a34a;z-index:1}}.calendar__day-events{display:none}@media(min-width: 768px){.calendar__day-events{display:flex;flex-direction:column;gap:3px}}.calendar__event-pill{display:block;padding:3px 6px;background:var(--pill-color, #2E8B7A);border-radius:4px;overflow:hidden}@media(min-width: 1024px){.calendar__event-pill{padding:4px 8px}}.calendar__event-pill-title{display:block;font-size:12px;font-weight:700;line-height:1.3;color:#fff}.calendar__event-pill-time{display:none}@media(min-width: 1024px){.calendar__event-pill-time{display:block;font-size:11px;font-weight:600;line-height:1.3;color:hsla(0,0%,100%,.8);margin-top:2px}}.calendar__event-more{display:block;padding:2px 6px;font-size:11px;font-weight:600;color:#a3a3a3;line-height:1.3}.calendar__backdrop{position:fixed;inset:0;z-index:299;background:rgba(0,0,0,0)}.calendar__backdrop[hidden]{display:none}@media(max-width: 575.98px){.calendar__backdrop{background:rgba(26,26,26,.45)}}.calendar__popover{position:fixed;z-index:300;width:320px;max-width:calc(100vw - 32px)}.calendar__popover[hidden]{display:none}.calendar__popover-inner{background:#fff;border-radius:12px;max-height:70vh;overflow:hidden auto;box-shadow:0 4px 24px rgba(0,0,0,.15),0 1px 4px rgba(0,0,0,.08);animation:cal-popover-in .18s ease forwards}@keyframes cal-day-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.calendar__day--animate{animation:cal-day-in .5s ease both;animation-delay:var(--cal-cell-delay, 0ms)}@keyframes cal-popover-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}.calendar__popover-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;background:var(--popover-header-color, #2E8B7A);border-radius:12px 12px 0 0;transition:background .2s ease}.calendar__popover-heading{font-family:"Nunito",sans-serif;font-weight:700;font-size:clamp(15px,13.2394366197px + 0.4694835681vw,20px);line-height:1.4;letter-spacing:.02em;margin:0;color:#fff;letter-spacing:-0.02em}.calendar__popover-close{border:0;background:none;padding:0;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;color:#525252;cursor:pointer;background:#fff;flex-shrink:0;transition:background .15s ease,color .15s ease}.calendar__popover-close:hover{background:#f5f5f5;color:#171717}.calendar__popover-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar__popover-list{list-style:none;margin:0;padding:0}.calendar__event-item{border-bottom:1px solid #f5f5f5;overflow:hidden}.calendar__event-item:last-child{border-bottom:none}.calendar__event-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.calendar__event-image{width:100%;aspect-ratio:16/9;overflow:hidden}.calendar__event-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.calendar__event-body{padding:12px 16px}.calendar__event-item:last-child .calendar__event-body{padding-bottom:16px}.calendar__event-type-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:clamp(11px,10.2957746479px + 0.1877934272vw,13px);font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--badge-color, #2E8B7A);color:#fff;margin-bottom:8px}.calendar__event-title{font-family:"Nunito",sans-serif;font-weight:700;font-size:clamp(14px,12.9436619718px + 0.2816901408vw,17px);line-height:1.4;letter-spacing:.02em;color:#262626;margin:0 0 7px}.calendar__event-meta{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.calendar__event-meta-row{display:flex;align-items:center;gap:6px;font-size:clamp(12px,11.2957746479px + 0.1877934272vw,14px);color:#262626;line-height:1.3}.calendar__event-meta-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:#737373}.calendar__event-meta-icon svg{width:100%;height:100%}.calendar__event-description{font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:clamp(13px,11.9436619718px + 0.2816901408vw,16px);line-height:1.5;font-size:clamp(12px,11.2957746479px + 0.1877934272vw,14px);color:#262626;margin:0}