.calendar{padding-inline:var(--container-padding)}.calendar__container{max-width:var(--content-max-width);margin-inline:auto}.calendar__header{margin-bottom:var(--section-heading-gap)}.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:var(--card-shadow)}.calendar__toolbar{display:flex;flex-direction:column;gap:16px;margin-bottom:var(--section-heading-gap);position:relative;z-index:10}@media(min-width: 768px){.calendar__toolbar{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}}.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:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.05)}.calendar__legend-dot--offsite{background:#404040}.calendar__legend-dot--registration{background:#fcc419}.calendar__nav{position:relative;display:flex;justify-content:center;align-items:flex-start;padding:10px 20px 54px;background:#3a9494;color:#eff2ec}@media(max-width: 575.98px){.calendar__nav{flex-direction:column;align-items:center;gap:6px}}@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;--wave-back: #88C0BF;--wave-back-opacity: 1;--wave-mid: #ffffff;--wave-mid-opacity: 0.5;--wave-front: #ffffff;--wave-front-opacity: 1}.calendar__nav-wave svg{display:block;width:100%;height:100%}.calendar__nav-end{display:flex;align-items:center;gap:6px}@media(min-width: 768px){.calendar__nav-end{position:absolute;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:44px;height:44px;border-radius:50%;color:#eff2ec;font-size:1.125rem;cursor:pointer;transition:background-color .15s ease}.calendar__nav-btn:hover{background:hsla(0,0%,100%,.15)}.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:"Lilita One",sans-serif;font-size:clamp(16px,12.4788732394px + 0.9389671362vw,26px);font-weight:500;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:#eff2ec;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:#a3a3a3}.calendar__day--today{background:rgba(58,148,148,.04)}.calendar__day--has-events{cursor:pointer}.calendar__day--has-events:hover{background:rgba(58,148,148,.04)}.calendar__day--has-events:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar__day--active{background:rgba(58,148,148,.07);box-shadow:inset 0 0 0 2px #3a9494}.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:#3a9494;color:#eff2ec;font-weight:700}.calendar__dots{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:4px}@media(min-width: 768px){.calendar__dots{display:none}}.calendar__dot{display:block;width:6px;height:6px;border-radius:50%;background:#3a9494;box-shadow:0 0 0 1px rgba(26,26,26,.04)}.calendar__dot--closed{background:#a3a3a3}.calendar__dot--offsite{background:#404040}.calendar__dot--registration{background:rgba(0,0,0,0);box-shadow:inset 0 0 0 1.5px #fcc419}.calendar__dot-count{font-size:10px;font-weight:700;line-height:1;color:#525252;letter-spacing:-0.02em;margin-left:1px}.calendar__day-events{display:none}@media(min-width: 768px){.calendar__day-events{display:flex;flex-direction:column;gap:3px}}.calendar__event-pill{position:relative;display:block;padding:3px 6px;background:var(--pill-color, #3A9494);border-radius:4px;overflow:hidden}@media(min-width: 1024px){.calendar__event-pill{padding:4px 8px}}.calendar__event-pill-reg{position:absolute;top:4px;right:5px;width:7px;height:7px;border-radius:50%;background:#fcc419;box-shadow:0 0 0 1px rgba(26,26,26,.15)}.calendar__event-pill-title{display:block;font-size:12px;font-weight:700;line-height:1.3;color:#eff2ec}.calendar__event-pill:has(.calendar__event-pill-reg) .calendar__event-pill-title{padding-right:12px}.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:rgba(239,242,236,.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__event-pill--closed{background:#525252}.calendar__event-pill--closed .calendar__event-pill-title{color:#eff2ec;padding-right:0;text-align:center}.calendar__backdrop{position:fixed;inset:0;z-index:9998;background:rgba(26,26,26,.45)}.calendar__backdrop[hidden]{display:none}@media(max-width: 575.98px){.calendar__backdrop{background:rgba(26,26,26,.55)}}.calendar__popover{position:fixed;z-index:9999;width:640px;max-width:calc(100vw - 32px)}.calendar__popover[hidden]{display:none}.calendar__popover--fullscreen{width:auto;max-width:none}.calendar__popover--fullscreen .calendar__popover-inner{border-radius:0;max-height:none}.calendar__popover--fullscreen .calendar__popover-header{border-radius:0}.calendar__popover-inner{background:#fff;border-radius:16px;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{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:var(--popover-header-color, #3A9494);border-radius:16px 16px 0 0;transition:background .2s ease}.calendar__popover-heading{font-family:"Lilita One",sans-serif;font-weight:400;font-size:clamp(15px,13.2394366197px + 0.4694835681vw,20px);line-height:1.4;letter-spacing:.02em;margin:0;color:#eff2ec;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:36px;height:36px;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}@media(min-width: 768px){.calendar__event-item{display:flex;align-items:flex-start}}.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{display:none}@media(min-width: 768px){.calendar__event-image{display:block;flex-shrink:0;width:170px;height:140px;margin:14px 0 14px 16px;border-radius:8px;overflow:hidden;background:#f5f5f5}}.calendar__event-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.calendar__event-body{flex:1 1 auto;min-width:0;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, #3A9494);color:#eff2ec;margin-bottom:8px}.calendar__event-type-badge--closed{background:#525252}.calendar__event-title{font-family:"Lilita One",sans-serif;font-weight:400;font-size:clamp(14px,12.9436619718px + 0.2816901408vw,17px);line-height:1.4;letter-spacing:.02em;color:#262626;margin:0 0 4px}.calendar__event-subtitle{font-size:clamp(11px,10.2957746479px + 0.1877934272vw,13px);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--event-color, #404040);margin:0 0 8px}.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-meta-icon--registration::before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:#fcc419;box-shadow:0 0 0 1px rgba(26,26,26,.08)}.calendar__event-meta-row--registration{font-weight:700}.calendar__event-description{font-family:"Open Sans",sans-serif;font-weight:400;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}