.ec-event-calendar-widget{position:relative;width:100%;max-width:900px;margin:0 auto;background-color:var(---card);border:1px solid var(---border);overflow:hidden;font-family:var(---font-sans)}.ec-calendar-section{display:grid;grid-template-columns:1fr 280px;grid-template-rows:auto 1fr;min-height:500px}.ec-calendar-widget-header{grid-column:1 / -1;padding:var(---spacing-6) var(---spacing-8);border-bottom:1px solid var(---border);background:linear-gradient(135deg,var(---card) 0%,var(---secondary) 100%)}.ec-calendar-eyebrow{display:block;font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-eyebrow);color:var(---primary);margin-bottom:var(---spacing-2)}.ec-calendar-title{font-family:var(---font-display);font-size:var(---text-3xl);font-weight:600;color:var(---foreground);letter-spacing:var(---tracking-tight);margin:0}.ec-calendar-container{padding:var(--spacing-6);border-right:1px solid var(--border)}.ec-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(---spacing-6)}.ec-calendar-month-year{font-family:var(---font-display);font-size:var(---text-xl);font-weight:600;color:var(---foreground);letter-spacing:var(---tracking-tight);margin:0}.ec-calendar-nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:transparent;border:1px solid var(---border);color:var(---foreground);cursor:pointer;transition:all var(---transition-duration-200) var(---transition-timing)}.ec-calendar-nav-btn:hover{background-color:var(---primary);border-color:var(---primary);color:var(---primary-foreground)}.ec-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.ec-calendar-day-name{display:flex;align-items:center;justify-content:center;height:36px;font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-wider);color:var(---muted-foreground)}.ec-calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:48px;font-family:var(---font-sans);font-size:var(---text-sm);font-weight:500;color:var(---foreground);background-color:transparent;border:1px solid transparent;cursor:default;transition:all var(---transition-duration-150) var(---transition-timing)}.ec-calendar-day.ec-day-disabled{color:var(---muted-foreground);opacity:0.3}.ec-calendar-day.ec-day-has-event{cursor:pointer}.ec-calendar-day.ec-day-has-event:hover{background-color:var(---secondary);border-color:var(---border)}.ec-calendar-day.ec-day-has-event::after{content:'';position:absolute;bottom:6px;width:6px;height:6px;background-color:var(---primary)}.ec-calendar-day.ec-day-today{font-weight:700;color:var(---primary)}.ec-calendar-day.ec-day-today::before{content:'';position:absolute;inset:4px;border:1px solid var(---primary);pointer-events:none}.ec-calendar-day.ec-day-selected{background-color:var(---primary);color:var(---primary-foreground)}.ec-calendar-day.ec-day-selected::after{background-color:var(---primary-foreground)}.ec-calendar-day.ec-day-multiple::after{width:14px}.ec-upcoming-events{padding:var(---spacing-6);background-color:var(---secondary);max-height:350px;overflow:auto}.ec-upcoming-title{font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-wider);color:var(---muted-foreground);margin:0 0 var(---spacing-4) 0}.ec-upcoming-list{display:flex;flex-direction:column;gap:var(---spacing-3)}.ec-upcoming-event-item{display:flex;align-items:flex-start;gap:var(---spacing-3);padding:var(---spacing-3);background-color:var(---card);border:1px solid var(---border);cursor:pointer;transition:all var(---transition-duration-200) var(---transition-timing)}.ec-upcoming-event-item:hover{border-color:var(---primary);transform:translateX(4px)}.ec-upcoming-event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;padding:var(---spacing-2);background-color:var(---primary);color:var(---primary-foreground)}.ec-upcoming-event-day{font-family:var(---font-display);font-size:var(---text-xl);font-weight:700;line-height:1}.ec-upcoming-event-month{font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-wide)}.ec-upcoming-event-info{flex:1;min-width:0}.ec-upcoming-event-info:hover{transition:all var(---transition-duration-200) var(---transition-timing)}.ec-upcoming-event-title{font-family:var(---font-sans);font-size:var(---text-sm);font-weight:600;color:var(---foreground);margin:0 0 var(---spacing-1) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-upcoming-event-time{font-family:var(---font-sans);font-size:var(---text-xs);color:var(---muted-foreground)}.ec-event-details-panel{position:absolute;inset:0;background-color:var(---card);transform:translateX(100%);transition:transform var(---transition-duration-300) var(---transition-timing);overflow-y:auto;z-index:10}.ec-event-details-panel.ec-panel-active{transform:translateX(0)}.ec-event-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(---spacing-4) var(---spacing-6);border-bottom:1px solid var(---border);background-color:var(---secondary);position:sticky;top:0;z-index:5}.ec-event-panel-back{display:flex;align-items:center;gap:var(---spacing-2);background-color:transparent;border:none;font-family:var(---font-sans);font-size:var(---text-sm);font-weight:500;color:var(---foreground);cursor:pointer;transition:color var(---transition-duration-150) var(---transition-timing)}.ec-event-panel-back:hover{color:var(---primary)}.ec-event-panel-date{font-family:var(---font-display);font-size:var(---text-lg);font-weight:600;color:var(---foreground)}.ec-event-list{padding:var(---spacing-6);display:flex;flex-direction:column;gap:var(---spacing-4)}.ec-event-card{display:flex;align-items:stretch;gap:var(---spacing-4);padding:var(---spacing-4);background-color:var(---secondary);border:1px solid var(---border);cursor:pointer;transition:all var(---transition-duration-200) var(---transition-timing);animation:ec-fade-in-up var(---transition-duration-300) var(---transition-timing)}.ec-event-card:hover{border-color:var(---primary);background-color:var(---card)}.ec-event-card-image-wrapper{width:100px;height:100px;flex-shrink:0;overflow:hidden}.ec-event-card-image{width:100%;height:100%;object-fit:cover;transition:transform var(---transition-duration-300) var(---transition-timing)}.ec-event-card:hover .ec-event-card-image{transform:scale(1.05)}.ec-event-card-content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.ec-event-card-time{font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-wider);color:var(---primary);margin-bottom:var(---spacing-1)}.ec-event-card-title{font-family:var(---font-display);font-size:var(---text-base);font-weight:600;color:var(---foreground);margin:0 0 var(---spacing-2) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-event-card-excerpt{font-family:var(---font-sans);font-size:var(---text-sm);color:var(---muted-foreground);line-height:var(---leading-relaxed);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-event-card-arrow{display:flex;align-items:center;color:var(---muted-foreground);transition:all var(---transition-duration-200) var(---transition-timing)}.ec-event-card:hover .ec-event-card-arrow{color:var(---primary);transform:translateX(4px)}.ec-event-single-view{position:absolute;inset:0;background-color:var(---card);transform:translateX(100%);transition:transform var(---transition-duration-300) var(---transition-timing);overflow-y:auto;z-index:20}.ec-event-single-view.ec-view-active{transform:translateX(0)}.ec-event-single-image-wrapper{position:relative;width:100%;height:280px;overflow:hidden}.ec-event-single-image{width:100%;height:100%;object-fit:cover}.ec-event-single-close{position:absolute;top:var(---spacing-4);right:var(---spacing-4);display:flex;align-items:center;justify-content:center;width:44px;height:44px;background-color:var(---background);border:1px solid var(---border);color:var(---foreground);cursor:pointer;transition:all var(---transition-duration-200) var(---transition-timing)}.ec-event-single-close:hover{background-color:var(---primary);border-color:var(--primary);color:var(---primary-foreground)}.ec-event-single-content{padding:var(---spacing-8)}.ec-event-single-meta{display:flex;align-items:center;gap:var(---spacing-4);margin-bottom:var(---spacing-4)}.ec-event-single-date,.ec-event-single-time{font-family:var(---font-sans);font-size:var(---text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(---tracking-wider);color:var(---primary)}.ec-event-single-title{font-family:var(---font-display);font-size:var(---text-2xl);font-weight:600;color:var(---foreground);letter-spacing:var(---tracking-tight);margin:0 0 var(---spacing-4) 0}.ec-event-single-description{font-family:var(---font-sans);font-size:var(---text-base);color:var(---muted-foreground);line-height:var(---leading-relaxed);margin:0 0 var(---spacing-6) 0}.ec-event-single-cta{display:inline-flex;align-items:center;gap:var(---spacing-2);padding:var(---spacing-3) var(---spacing-6);background-color:var(---primary);color:var(---primary-foreground);font-family:var(---font-sans);font-size:var(---text-sm);font-weight:600;text-decoration:none;text-transform:uppercase;letter-spacing:var(---tracking-wide);transition:all var(---transition-duration-200) var(---transition-timing)}.ec-event-single-cta:hover{background-color:var(---foreground);color:var(---background)}.ec-calendar-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(---spacing-12);text-align:center}.ec-calendar-empty-text{font-family:var(---font-sans);font-size:var(---text-base);color:var(---muted-foreground);margin:0}.ec-calendar-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:rgba(255,255,255,0.9);z-index:100}.ec-calendar-spinner{width:40px;height:40px;border:2px solid var(---border);border-top-color:var(---primary);animation:ec-spin 0.8s linear infinite}.ec-upcoming-view-more{padding:0.75rem 1.5rem;font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.35em;color:var(---foreground);background-color:transparent;border:1px solid var(---foreground);border-radius:0;cursor:pointer;transition:all 150ms ease;text-decoration:none;display:flex;margin-top:1.5em}.ec-upcoming-view-more svg{height:auto}@keyframes ec-spin{to{transform:rotate(360deg)}}@keyframes ec-fade-in-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.ec-calendar-section{grid-template-columns:1fr;grid-template-rows:auto auto auto}.ec-calendar-container{border-right:none;border-bottom:1px solid var(---border)}.ec-upcoming-events{max-height:250px;overflow-y:auto}.ec-upcoming-list{flex-direction:row;overflow-x:auto;padding-bottom:var(---spacing-2)}.ec-upcoming-event-item{flex:0 0 200px}.ec-event-card{flex-direction:column}.ec-event-card-image-wrapper{width:100%;height:150px}.ec-event-single-image-wrapper{height:200px}.ec-event-single-content{padding:var(---spacing-6)}.ec-event-single-title{font-size:var(---text-xl)}}@media (max-width:480px){.ec-calendar-widget-header{padding:var(---spacing-4)}.ec-calendar-title{font-size:var(---text-2xl)}.ec-calendar-container{padding:var(---spacing-4)}.ec-calendar-day{height:40px;font-size:var(---text-xs)}.ec-calendar-day.ec-day-has-event::after{width:4px;height:4px;bottom:4px}.ec-calendar-nav-btn{width:36px;height:36px}.ec-event-list{padding:var(---spacing-4)}}