/* Events portal: shared header, compact surfaces and a photographic hero. */
.ev-hero { color:#fff; background:linear-gradient(90deg,rgba(4,25,49,.86),rgba(4,25,49,.32)),url('../travel/img/hero.jpg') center 55%/cover; padding:36px 0 22px; }
.ev-eyebrow { font-size:11px; letter-spacing:2px; font-weight:700; color:#b9d8f3; }
.ev-hero h1 { font-size:clamp(26px,3.3vw,42px); line-height:1.22; font-weight:800; margin:12px 0; }
.ev-hero p { font-size:14px; line-height:1.7; color:#edf4ff; }
.ev-search { display:flex; align-items:center; gap:12px; max-width:780px; background:#fff; color:#606b80; padding:7px 8px 7px 18px; border-radius:6px; margin:24px 0 20px; }
.ev-search input { flex:1; width:100%; min-width:0; border:0; background:transparent; padding:8px 0; font-size:13px; }
.ev-search input:focus-visible { outline-offset:0; }
.ev-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid #0756f9; background:#0756f9; color:#fff; padding:10px 18px; border-radius:4px; font-size:12px; font-weight:600; text-align:center; }
.ev-button:hover { background:#0044d7; color:#fff; }
.ev-categories { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; }
.ev-categories a { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:9px; min-height:86px; padding:10px 6px; background:#fff; color:#303038; border:1px solid #e3e5e8; border-radius:6px; font-size:12px; text-align:center; }
.ev-categories i { font-size:24px; color:#315bf5; }
.ev-categories a:nth-child(2n) i { color:#e24d6b; }
.ev-categories a:nth-child(5) i { color:#b77825; }
.ev-categories a:hover,.ev-categories a.active { background:#eef4ff; border-color:#0756f9; color:#0756f9; }
.ev-page { padding-top:24px; padding-bottom:14px; }
.ev-section { margin-bottom:28px; scroll-margin-top:16px; }
.ev-section-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.ev-section-head h2 { display:flex; align-items:center; gap:9px; font-weight:750; font-size:20px; margin:0; }
.ev-section-head>a,.ev-section-head>span { font-size:12px; }
.ev-featured { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ev-card { background:#fff; border:1px solid #e3e5e8; border-radius:6px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.ev-cover { display:block; position:relative; aspect-ratio:1.8; background:#e3e5e8; overflow:hidden; }
.ev-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.ev-card:hover .ev-cover img { transform:scale(1.05); }
.ev-date { position:absolute; bottom:9px; left:10px; background:#fff; border-radius:4px; padding:6px 9px; display:grid; text-align:center; color:#101010; line-height:1.1; }
.ev-date strong { font-size:24px; font-weight:800; }.ev-date small { font-size:10px; color:#606060; margin-top:3px; }
.ev-badge { position:absolute; left:64px; bottom:10px; color:#fff; background:#52607b; border-radius:3px; padding:4px 7px; font-size:10px; }
.ev-concert { background:#c52e33; }.ev-festival { background:#2464dd; }.ev-sport { background:#008c51; }.ev-culture { background:#a66b00; }.ev-theatre { background:#783baf; }.ev-travel { background:#77681e; }
.ev-card-body { padding:12px; display:flex; flex-direction:column; flex:1; }
.ev-card h3 { font-size:14px; line-height:1.45; margin:0 0 10px; font-weight:750; }.ev-card h3 a { color:#101010; }.ev-card h3 a:hover { color:#0756f9; }
.ev-card p { display:flex; align-items:baseline; gap:5px; font-size:11px; color:#767678; margin:0 0 5px; overflow-wrap:anywhere; }
.ev-card-bottom { display:grid; gap:10px; margin-top:auto; padding-top:7px; }.ev-card-bottom strong { font-size:13px; }
.ev-button-soft { background:#edf3ff; border-color:transparent; color:#0756f9; padding:8px; }
.ev-featured .ev-cover { aspect-ratio:1.7; }.ev-featured .ev-card h3 { font-size:17px; }
.ev-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:20px; align-items:start; }
.ev-tabs { display:flex; gap:6px; overflow-x:auto; padding-bottom:12px; white-space:nowrap; }
.ev-tabs a { padding:7px 11px; background:#fff; border:1px solid #e3e5e8; border-radius:4px; font-size:11px; color:#606060; }.ev-tabs a.active { color:#fff; background:#0756f9; border-color:#0756f9; }
.ev-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ev-sidebar { display:grid; gap:16px; }.ev-panel { background:#fff; border:1px solid #e3e5e8; border-radius:6px; padding:18px; }.ev-panel h3 { font-size:15px; font-weight:750; margin:0 0 14px; }
.ev-calendar-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:10px; font-size:13px; }.ev-calendar-head a { padding:0 8px; font-size:24px; color:#303038; }
.ev-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; gap:3px; font-size:11px; }.ev-calendar>span { padding:6px 0; color:#767678; }.ev-calendar a { display:flex; position:relative; justify-content:center; align-items:center; aspect-ratio:1; color:#303038; border:1px solid transparent; border-radius:4px; }.ev-calendar a:hover { background:#eef4ff; }.ev-calendar .muted { color:#b6b8bc; }.ev-calendar .today { border-color:#0756f9; }.ev-calendar .selected { background:#0756f9; color:#fff; }.ev-calendar .has-events::after { content:''; position:absolute; bottom:2px; width:4px; height:4px; border-radius:50%; background:#03a94d; }.ev-calendar-key { display:flex; align-items:center; gap:6px; color:#767678; font-size:10px; margin:12px 0 0; }.ev-calendar-key span { width:5px; height:5px; border-radius:50%; background:#03a94d; }
.ev-locations a { display:flex; align-items:baseline; gap:9px; padding:10px 0; border-top:1px solid #f1f3f5; color:#606060; font-size:12px; }.ev-locations span { flex:1; }.ev-locations small { color:#767678; }.ev-all-locations { display:block; text-align:center; padding-top:12px; font-size:12px; }
.ev-empty { grid-column:1/-1; border:1px dashed #d3d5d7; padding:36px 18px; background:#fff; text-align:center; color:#767678; border-radius:6px; }.ev-empty h3 { font-size:17px; margin:12px 0; }.ev-empty>i { font-size:28px; }.ev-empty p { font-size:13px; }
.ev-filter-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:12px; margin-bottom:12px; color:#606060; }
.ev-pagination { display:flex; justify-content:center; gap:20px; margin-top:20px; font-size:13px; }
.ev-banner { background:linear-gradient(90deg,rgba(4,44,77,.86),rgba(4,44,77,.1)),url('../travel/img/hero.jpg') center 65%/cover; padding:30px; border-radius:6px; color:#fff; }.ev-banner h2 { font-size:23px; line-height:1.5; font-weight:750; margin-bottom:16px; }.ev-banner .ev-button { background:#fff; color:#0756f9; border-color:#fff; }
.ev-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:20px; margin-bottom:28px; align-items:start; }.ev-detail-image { width:100%; max-height:460px; object-fit:cover; border-radius:4px; margin-bottom:20px; }.ev-detail-category { color:#0756f9; font-size:12px; font-weight:700; }.ev-detail h1 { font-size:28px; line-height:1.4; margin:8px 0 20px; font-weight:800; }.ev-detail h2,.ev-booking h2 { font-size:18px; margin-bottom:18px; font-weight:700; }.ev-description { line-height:1.8; overflow-wrap:anywhere; }.ev-artist { color:#767678; }.ev-booking dt { color:#767678; font-size:12px; font-weight:400; }.ev-booking dd { margin:6px 0 18px; }.ev-price { font-size:22px; font-weight:750; }.ev-booking>.ev-button { width:100%; }.ev-note { color:#767678; font-size:11px; margin-top:10px; }.ev-notice { font-size:13px; background:#f5f7f8; padding:12px; border-radius:4px; }.ev-map-link { display:block; margin-top:16px; font-size:13px; }
@media(min-width:1200px) { .ev-featured .ev-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; } }
@media(max-width:1199.98px) { .ev-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.ev-layout { grid-template-columns:minmax(0,1fr) 260px; }.ev-categories a { font-size:11px; } }
@media(max-width:767.98px) { .ev-hero { padding-top:26px; }.ev-categories { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }.ev-categories a { min-height:72px; }.ev-categories i { font-size:21px; }.ev-layout,.ev-detail-layout { grid-template-columns:minmax(0,1fr); }.ev-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); }.ev-featured { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.ev-section-head h2 { font-size:17px; }.ev-featured .ev-card h3 { font-size:14px; }.ev-banner { padding:22px; }.ev-banner h2 { font-size:20px; } }
@media(max-width:479.98px) { .ev-sidebar,.ev-featured { grid-template-columns:minmax(0,1fr); }.ev-grid { gap:9px; }.ev-card-body { padding:9px; }.ev-card h3 { font-size:12px; }.ev-card p { font-size:10px; }.ev-card-bottom strong { font-size:12px; }.ev-button { padding:9px 12px; }.ev-card-bottom .ev-button { font-size:10px; padding:8px 4px; }.ev-hero p { font-size:12px; }.ev-search { gap:8px; padding-left:10px; }.ev-search input { font-size:11px; }.ev-section-head { flex-wrap:wrap; }.ev-detail h1 { font-size:23px; } }
