.events-hero{padding:var(--space-12) 0 var(--space-8);background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 6%,var(--color-bg)),var(--color-bg) 60%,color-mix(in srgb,var(--color-primary) 4%,var(--color-bg)))}.events-breadcrumb{font-size:var(--font-size-sm);color:var(--color-muted);margin-bottom:var(--space-4)}.events-breadcrumb a{color:var(--color-muted);text-decoration:none}.events-breadcrumb a:hover{color:var(--color-primary)}.events-breadcrumb .sep{margin:0 var(--space-2);opacity:.5}.events-title{font-size:var(--font-size-4xl);font-weight:800;letter-spacing:-.03em;margin-bottom:var(--space-3)}@media(min-width:768px){.events-title{font-size:var(--font-size-5xl)}}.events-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.events-stats{display:flex;gap:var(--space-4);flex-wrap:wrap}.stat-pill{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.stat-value{font-size:var(--font-size-2xl);font-weight:800;color:var(--color-primary);font-variant-numeric:tabular-nums}.stat-label{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:500}.events-filters{position:sticky;top:var(--nav-height);z-index:50;padding:var(--space-4) 0;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.filter-tabs{display:flex;gap:var(--space-1);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:none;border:1px solid transparent;border-radius:999px;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.filter-tab.active{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-color:var(--color-primary);font-weight:600}.filter-range select{padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);cursor:pointer}.events-content{padding:var(--space-8) 0;min-height:200px}.events-featured{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-4)}@media(min-width:640px){.events-featured{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.events-featured{grid-template-columns:repeat(3,1fr)}}.events-list-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.events-list-header span{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.events-list-header:after{content:"";flex:1;height:1px;background:var(--color-border)}.events-list{display:flex;flex-direction:column;gap:var(--space-2)}.event-list-row{display:flex;align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden;text-decoration:none;color:inherit;transition:all var(--transition)}.event-list-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);text-decoration:none}.event-list-strip{width:4px;align-self:stretch;flex-shrink:0}.event-list-content{flex:1;padding:var(--space-3) var(--space-4);min-width:0}.event-list-meta{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:600;margin-bottom:2px;text-transform:capitalize}.event-list-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-list-venue{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-list-arrow{color:var(--color-muted);flex-shrink:0;margin-right:var(--space-3);transition:transform var(--transition-fast),color var(--transition-fast)}.event-list-row:hover .event-list-arrow{color:var(--color-primary);transform:translate(2px)}.show-more-btn{display:block;width:100%;margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.show-more-btn:hover{background:color-mix(in srgb,var(--color-primary) 8%,transparent);border-color:var(--color-primary)}.event-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-xl);overflow:hidden;transition:all var(--transition);text-decoration:none;color:inherit}.event-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-3px);text-decoration:none}.event-card-image{width:100%;height:140px;object-fit:cover;object-position:center top;background:var(--color-bg-alt)}.event-card-color-strip{width:100%;height:6px;flex-shrink:0}.event-card-body{padding:var(--space-4);flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.event-card-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.meta-dot{color:var(--color-muted);font-size:var(--font-size-xs);line-height:1}.event-date-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:600;color:var(--color-primary)}.event-category-badge{display:inline-block;padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:600;border-radius:999px;text-transform:capitalize}.badge-sports{background:color-mix(in srgb,#EF4444 12%,transparent);color:#ef4444}.badge-cultural{background:color-mix(in srgb,#F59E0B 12%,transparent);color:#b45309}.badge-nature{background:color-mix(in srgb,#22C55E 12%,transparent);color:#16a34a}.badge-holiday{background:color-mix(in srgb,#8B5CF6 12%,transparent);color:#8b5cf6}.badge-festivals{background:color-mix(in srgb,#F59E0B 12%,transparent);color:#b45309}.badge-music{background:color-mix(in srgb,#EC4899 12%,transparent);color:#db2777}.badge-food{background:color-mix(in srgb,#F97316 12%,transparent);color:#ea580c}.badge-business{background:color-mix(in srgb,#3B82F6 12%,transparent);color:#2563eb}.badge-community{background:color-mix(in srgb,#EC4899 12%,transparent);color:#db2777}.event-card-title{font-size:var(--font-size-base);font-weight:700;line-height:1.3;color:var(--color-text);margin:0}.event-card-venue{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-1)}.events-loading{text-align:center;padding:var(--space-12) 0;color:var(--color-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;margin:0 auto var(--space-3);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.events-empty{text-align:center;padding:var(--space-12) 0}.empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-3)}.events-empty h3{font-size:var(--font-size-lg);margin-bottom:var(--space-2)}.events-empty p{color:var(--color-muted)}.month-spotlight{padding:var(--space-12) 0;background:var(--color-bg-alt)}.month-header{margin-bottom:var(--space-6)}.month-header h2{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-2)}.month-theme{font-size:var(--font-size-lg);color:var(--color-primary);font-weight:600}.month-details{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media(min-width:768px){.month-details{grid-template-columns:2fr 1fr}}.month-highlights{display:flex;flex-direction:column;gap:var(--space-3)}.highlight-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.highlight-icon{font-size:1.25rem;flex-shrink:0;margin-top:2px}.highlight-text{font-size:var(--font-size-sm);color:var(--color-text);line-height:1.5}.month-meta{display:flex;flex-direction:column;gap:var(--space-4)}.meta-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.meta-icon{font-size:1.5rem}.meta-label{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:var(--font-size-sm);color:var(--color-text);line-height:1.5}.annual-calendar{padding:var(--space-12) 0}.annual-title{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-2)}.annual-subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-8)}.calendar-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:640px){.calendar-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.calendar-grid{grid-template-columns:repeat(3,1fr)}}.cal-month-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-xl);overflow:hidden;transition:all var(--transition)}.cal-month-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cal-month-card.is-current{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.cal-month-header{padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--color-primary) 6%,transparent);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.cal-month-name{font-weight:700;font-size:var(--font-size-base)}.cal-month-badge{font-size:var(--font-size-xs);padding:2px var(--space-2);background:var(--color-primary);color:#fff;border-radius:999px;font-weight:600}.cal-month-body{padding:var(--space-3) var(--space-4)}.cal-event-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--font-size-sm);border-bottom:1px solid color-mix(in srgb,var(--color-border) 50%,transparent)}.cal-event-item:last-child{border-bottom:none}.cal-event-date{flex-shrink:0;width:44px;font-size:var(--font-size-xs);color:var(--color-primary);font-weight:600;white-space:nowrap}.cal-event-name{color:var(--color-text);line-height:1.4}.cal-best-for{padding:var(--space-2) var(--space-4) var(--space-3);font-size:var(--font-size-xs);color:var(--color-muted)}.cal-best-for strong{color:var(--color-text-secondary)}.holidays-section{padding:var(--space-12) 0;background:var(--color-bg-alt)}.holidays-title{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-2)}.holidays-subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.holidays-list{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:640px){.holidays-list{grid-template-columns:repeat(2,1fr)}}.holiday-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.holiday-date-box{flex-shrink:0;width:56px;text-align:center}.holiday-day{font-size:var(--font-size-2xl);font-weight:800;color:var(--color-primary);line-height:1}.holiday-month{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:600;text-transform:uppercase}.holiday-info{flex:1}.holiday-name{font-weight:700;font-size:var(--font-size-sm);color:var(--color-text)}.holiday-name-bm{font-size:var(--font-size-xs);color:var(--color-muted);font-style:italic}.holiday-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.holiday-badge{font-size:var(--font-size-xs);padding:2px var(--space-2);border-radius:999px;font-weight:600;white-space:nowrap}.holiday-badge.sabah{background:color-mix(in srgb,#22C55E 12%,transparent);color:#16a34a}.holiday-badge.national{background:color-mix(in srgb,#3B82F6 12%,transparent);color:#2563eb}.events-sources{padding:var(--space-6) 0;border-top:1px solid var(--color-border)}.sources-text{font-size:var(--font-size-sm);color:var(--color-muted);text-align:center}.sources-text a{color:var(--color-primary);text-decoration:none}.sources-text a:hover{text-decoration:underline}
