.vv-portal{--vv-ink:#17383b;--vv-muted:#5d6d70;--vv-line:#dce5e5;--vv-accent:#db602e;--vv-soft:#f1f6f5;color:var(--vv-ink);font-family:inherit;max-width:1180px;margin:30px auto 55px;line-height:1.55}
.vv-portal *{box-sizing:border-box}.vv-intro{padding:28px 32px 32px;background:var(--vv-soft);border-top:4px solid var(--vv-accent);border-radius:4px 4px 16px 16px;margin-bottom:24px}.vv-eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--vv-muted)}.vv-intro h2{font-size:clamp(25px,4vw,39px);line-height:1.15;margin:12px 0 14px;color:var(--vv-ink);font-weight:750}.vv-intro p{max-width:700px;font-size:17px;margin-bottom:14px}.vv-portal a{color:var(--vv-ink)}.vv-switch{font-weight:650;text-decoration:underline;text-underline-offset:4px}
.vv-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:22px;border:1px solid var(--vv-line);border-radius:12px;background:#fff}.vv-filters label{font-size:13px;font-weight:600;display:flex;flex:1 1 130px;flex-direction:column;gap:6px;margin:0}.vv-filters .vv-search{flex:2 1 200px}.vv-filters input,.vv-filters select{width:100%;height:44px;padding:9px 11px;border:1px solid #b6c7c7;border-radius:6px;background:#fff;font:inherit;color:var(--vv-ink);margin:0}.vv-filters button,.vv-button{border:0;border-radius:6px;background:var(--vv-ink);color:#fff!important;font:inherit;font-weight:600;padding:12px 18px;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.vv-filters button:hover,.vv-button:hover{background:#27575b}.vv-filters :focus-visible,.vv-portal a:focus-visible{outline:3px solid var(--vv-accent);outline-offset:3px}.vv-reset{font-size:13px;margin:0 0 12px}.vv-count{font-size:14px;color:var(--vv-muted);margin:18px 0}
.vv-cards{display:grid;gap:18px}.vv-places{grid-template-columns:repeat(3,minmax(0,1fr))}.vv-events{grid-template-columns:repeat(2,minmax(0,1fr))}.vv-card{border:1px solid var(--vv-line);border-radius:12px;background:#fff;padding:24px;display:flex;gap:20px;align-items:flex-start}.vv-card:hover{border-color:#9eb9b6;box-shadow:0 6px 22px #17383b0a}.vv-card-body{min-width:0;flex:1}.vv-date{flex:0 0 74px;background:var(--vv-soft);border-radius:9px;text-align:center;padding:10px 5px}.vv-date strong{display:block;font-size:33px;line-height:1.2;color:var(--vv-ink)}.vv-date span{font-size:12px;text-transform:uppercase}.vv-card-tags{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#a43d18;font-weight:700}.vv-card h3{font-size:21px!important;line-height:1.28;margin:9px 0 8px!important;overflow-wrap:anywhere}.vv-card h3 a{text-decoration:none}.vv-locality{font-size:13px;color:var(--vv-muted);margin:0 0 14px}.vv-card-excerpt{font-size:14px;line-height:1.6}.vv-card-link{font-size:14px;font-weight:700;text-decoration:none}.vv-status{border-left:3px solid #b74324;padding:7px 12px;background:#fff1eb;font-weight:650}.vv-empty{grid-column:1/-1;padding:38px;text-align:center;border:1px dashed #b6c7c7;border-radius:12px;background:#f8faf9}.vv-empty h3{font-size:23px}.vv-empty p{max-width:580px;margin:10px auto}.vv-pagination{display:flex;justify-content:center;gap:24px;align-items:center;margin-top:28px}.vv-pagination a{font-weight:650}.vv-disclaimer{font-size:13px;color:var(--vv-muted);margin-top:26px}
.vv-practical{padding:25px 30px;border:1px solid var(--vv-line);border-radius:12px;background:var(--vv-soft);margin-bottom:30px}.vv-practical h2{font-size:25px}.vv-practical dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}.vv-practical dl div{min-width:0}.vv-practical dt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--vv-muted)}.vv-practical dd{margin:4px 0;font-size:16px;overflow-wrap:anywhere}.vv-practical .vv-button{margin:6px 10px 6px 0}.vv-practical .vv-secondary{background:white;border:1px solid #9db5b5;color:var(--vv-ink)!important}
@media(max-width:900px){.vv-places,.vv-events{grid-template-columns:repeat(2,minmax(0,1fr))}.vv-card{padding:19px;gap:12px}.vv-date{flex-basis:60px}}@media(max-width:640px){.vv-portal{margin:20px 0 35px}.vv-intro{padding:24px 20px}.vv-filters{padding:18px}.vv-filters label,.vv-filters .vv-search{flex-basis:100%}.vv-filters button{width:100%}.vv-places,.vv-events{grid-template-columns:1fr}.vv-practical{padding:22px}.vv-practical dl{grid-template-columns:1fr}.vv-pagination{gap:14px;font-size:13px}}
