#events .festival-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
#events .festival-heading .sec-title{margin-bottom:.6rem}
#events .festival-controls{display:flex;gap:.5rem;flex-shrink:0}
#events .festival-controls button{width:34px;height:34px;border:1px solid var(--blue);border-radius:50%;background:transparent;color:var(--blue);font-size:20px;cursor:pointer;transition:background .2s,color .2s}
#events .festival-controls button:hover{background:var(--blue);color:white}
#events .festival-window{overflow:hidden}
#events #eventsTrackFeatured{display:flex;gap:16px;padding:8px 0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;animation:none}
#events #eventsTrackFeatured::-webkit-scrollbar{display:none}
#events .festival-ticket{display:flex;position:relative;flex:0 0 300px;height:85px;box-sizing:border-box;border:1px solid #204b6b;border-radius:12px;background:#123653;color:#fff;overflow:hidden;text-decoration:none;scroll-snap-align:start;transition:border-color .2s,box-shadow .2s}
#events .festival-ticket:hover{border-color:#cf6638;box-shadow:0 3px 10px #12365325}
#events .festival-ticket:focus-visible,#events .festival-controls button:focus-visible{outline:3px solid #ce6233;outline-offset:3px}
#events .festival-art{width:84px;flex:0 0 84px;height:100%;background:#fff;display:flex;align-items:center;justify-content:center;border-right:1px dashed #678195;overflow:hidden}
#events .festival-art img{width:100%;height:100%;object-fit:cover}
#events .festival-art.is-logo img{object-fit:contain;padding:8px;box-sizing:border-box}
#events .festival-art.art-sintra{background:#662947}
#events .festival-art.art-porto{background:#ed642b}
#events .festival-art.art-nos img{padding:3px;transform:translateY(-14px) scale(1.05)}
#events .festival-art .festival-initial{font-size:24px;font-weight:800;color:var(--blue)}
#events .festival-copy{padding:10px 12px;min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}
#events .festival-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:9px;font-weight:700;color:#ffd694;letter-spacing:.035em;text-transform:uppercase;line-height:1.2}
#events .festival-name{font-size:13px;line-height:1.2;font-weight:750;margin:5px 0 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:white}
#events .festival-place{font-size:10px;line-height:1.2;color:#c5d8e4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:600px){#events .festival-ticket{flex-basis:285px}#events .festival-controls button{width:30px;height:30px}#events .festival-heading .sec-title{font-size:1.65rem}}
@media(prefers-reduced-motion:reduce){#events .festival-ticket{transition:none}}
#events .upcoming-events>.sec-title{font-size:1.55rem;line-height:1.2}
#events .upcoming-events>.sec-sub{font-size:.88rem;margin-bottom:.65rem!important}
#events #evFilter{background:transparent;border:0;border-radius:0;padding:0;margin-bottom:.7rem;gap:.45rem .75rem}
#events .evf-controls{flex-wrap:nowrap;gap:.45rem}
#events #evFilter input[type=date]{width:145px;min-width:0;min-height:34px;height:34px;box-sizing:border-box;padding:.3rem .5rem;flex:0 0 145px}
#events .evf-count{margin-left:0;width:auto;font-size:.73rem}
@media(max-width:600px){#events .evf-label{width:100%}#events .evf-controls{width:100%;flex-wrap:wrap}#events #evFilter input[type=date]{width:calc((100% - 28px)/2);flex:1 1 120px}#events .evf-count{width:auto}#events .upcoming-events>.sec-title{font-size:1.4rem}}
