:root{--acc:#e8442e;--acc2:#ff8a70;--ink:#17171a;--mut:#6c6c74;--bg:#f6f4f0;--card:#fff;--line:#e6e2db;--free:#177a4c;--soft:#fbf3ef;--radius:16px;--shadow:0 6px 24px rgba(20,20,30,.08)}
*{box-sizing:border-box}
.ico,.thumb-ico,.tag,.cat-tile .ico,.top-nav .mycity,.event-cat,.hero-links,.fav,.heart{font-family:Inter,system-ui,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand{font-family:Manrope,Inter,system-ui,sans-serif;letter-spacing:-.01em}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
button,.btn{font:inherit;font-weight:600;padding:11px 18px;border-radius:12px;border:0;background:var(--acc);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:8px;line-height:1.2}
.btn:hover{text-decoration:none;filter:brightness(.95)}
.btn.ghost,button.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.linkbtn{background:none;border:0;color:var(--acc);padding:0;font-weight:600;cursor:pointer}
select,input[type=email],input[type=text]{font:inherit;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:200px}
.hp{position:absolute;left:-9999px}
.muted{color:var(--mut)}.small{font-size:13px}
.alert{background:#fff2ee;border:1px solid #f3c9bd;padding:10px 14px;border-radius:12px}.alert.ok{background:#eaf7ef;border-color:#bfe3cc}
.lead{font-size:17px;color:#3b3b42;max-width:780px}

/* header */
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-row{display:flex;align-items:center;gap:16px;height:64px}
.brand{font-weight:800;color:var(--ink);display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:17px}
.brand .mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--acc);color:#fff;font-weight:800}
.brand.small{font-size:15px}
.top-nav{display:flex;gap:6px;align-items:center;margin-left:auto;font-size:14px;font-weight:500}
.top-nav a{color:var(--ink);padding:7px 11px;border-radius:999px}.top-nav a:hover{background:var(--soft);text-decoration:none}
.top-nav .mycity{background:var(--soft);color:var(--acc);font-weight:600}
.top-nav .acct{border:1px solid var(--line)}
.top-nav .fav-link{color:var(--acc)}

/* picker */
.picker{position:relative;display:flex;align-items:center;flex:1;max-width:420px}
.picker .picker-ico{position:absolute;left:12px;color:var(--mut);pointer-events:none}
.picker input{width:100%;min-width:0;padding-left:36px;border-radius:999px}
.picker button{margin-left:8px;border-radius:999px}
.picker-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);list-style:none;margin:0;padding:6px;max-height:340px;overflow:auto;z-index:30}
.picker-list li{padding:8px 12px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.picker-list li small{color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.picker-list li:hover,.picker-list li.on{background:var(--soft)}
.picker.big{max-width:640px;margin:22px 0 10px}
.picker.big input{padding:16px 16px 16px 44px;font-size:17px;box-shadow:var(--shadow)}
.picker.big .picker-ico{left:16px;font-size:18px}
.picker.big button{padding:15px 22px;font-size:16px}

/* hero */
.hero{background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);padding:44px 0 26px}
.hero h1{font-size:42px;line-height:1.05;margin:0 0 12px;font-weight:800}
.hero .accent{color:var(--acc)}
.hero-links{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:14px}
.hero-links .sep{color:var(--mut)}
.hero-links a{color:var(--ink);font-weight:500;padding:4px 10px;background:#fff;border:1px solid var(--line);border-radius:999px}

/* blocks */
.block{margin:30px auto}
.block-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.block-head h2,.block h2{margin:0;font-size:24px}
.block-head h2 a{color:var(--ink)}
.block-head .count{color:var(--mut);font-size:14px;font-weight:500;font-family:Inter}
.block-links{margin-left:auto;display:flex;gap:14px;font-weight:600}
.cats-block h2{margin-bottom:12px}
.cat-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cat-tile{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);color:var(--ink);transition:transform .12s}
.cat-tile:hover{transform:translateY(-2px);text-decoration:none;box-shadow:var(--shadow)}
.cat-tile .ico{font-size:22px}.cat-tile .lbl{font-weight:600;font-size:14px;flex:1}.cat-tile .cnt{color:var(--mut);font-size:12px}

/* grid + cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.grid.dim{opacity:.6}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card-link{color:inherit;display:block}.card-link:hover{text-decoration:none}
.thumb{position:relative;height:160px;background-size:cover;background-position:center;background-color:#eee}
.thumb-empty{display:grid;place-items:center;background:linear-gradient(135deg,#8a8f99,#5d6270)}
.thumb-ico{font-size:52px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}
.datebadge{position:absolute;left:10px;top:10px;background:#fff;border-radius:10px;padding:5px 9px;text-align:center;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.datebadge b{display:block;font-size:18px;font-family:Manrope}.datebadge small{display:block;font-size:11px;color:var(--mut);text-transform:uppercase;margin-top:2px}
.freebadge{position:absolute;right:10px;bottom:10px;background:var(--free);color:#fff;font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px}
.cat-koncert{background:linear-gradient(135deg,#e8442e,#ff8a70)}.cat-teatr{background:linear-gradient(135deg,#6a3fb5,#a07ce8)}.cat-dzieci{background:linear-gradient(135deg,#f2a91e,#ffd166)}
.cat-sport{background:linear-gradient(135deg,#177a4c,#5fc38f)}.cat-festyn{background:linear-gradient(135deg,#e0397d,#ff8ab5)}.cat-wystawa{background:linear-gradient(135deg,#2b6cb0,#63a4ff)}
.cat-film{background:linear-gradient(135deg,#1f2937,#4b5563)}.cat-spotkanie{background:linear-gradient(135deg,#0e7c86,#4fc3cf)}.cat-zwiedzanie{background:linear-gradient(135deg,#7c5b2e,#c9a066)}.cat-kabaret{background:linear-gradient(135deg,#b5179e,#f072b6)}.cat-inne{background:linear-gradient(135deg,#6b7280,#9ca3af)}
.cat-tile.cat-koncert,.cat-tile.cat-teatr,.cat-tile.cat-dzieci,.cat-tile.cat-sport,.cat-tile.cat-festyn,.cat-tile.cat-wystawa,.cat-tile.cat-film,.cat-tile.cat-spotkanie,.cat-tile.cat-zwiedzanie,.cat-tile.cat-kabaret{background:#fff}
.body{padding:12px 14px 14px}
.when{font-size:12.5px;font-weight:700;color:var(--acc);letter-spacing:.01em}.when::first-letter{text-transform:uppercase}
.card h3{margin:4px 0 4px;font-size:16px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.where{font-size:13px;color:var(--mut);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.dist{margin-left:6px;background:#f1eee9;border-radius:999px;padding:0 7px;font-size:12px;color:var(--ink)}
.tags{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:12px;background:#f1eee9;border-radius:999px;padding:3px 9px;color:#444}.tag.price{background:#eef3ff;color:#2b4fb0}
.fav{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:#b8b8c0;border:0;padding:0;display:grid;place-items:center;font-size:18px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:transform .1s}
.fav:hover{transform:scale(1.1);color:var(--acc)}.fav.on{color:var(--acc)}
.fav-btn .heart{color:#b8b8c0;font-size:18px}.fav-btn.on .heart{color:var(--acc)}
.card.free .when::after{content:"";}

/* city page */
.cityhead{background:#fff;border-bottom:1px solid var(--line);padding:22px 0 16px}
.cityhead h1{font-size:32px;margin:6px 0 8px}
.crumbs{font-size:13px;color:var(--mut)}.crumbs a{color:var(--mut)}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 10px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.seg a{padding:8px 15px;color:var(--ink);font-size:14px;font-weight:500}.seg a.on{background:var(--ink);color:#fff}.seg a:hover{text-decoration:none;background:var(--soft)}.seg a.on:hover{background:var(--ink)}
.cats{display:flex;gap:6px;flex-wrap:wrap}.cats a{font-size:13px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink)}.cats a.on{background:var(--acc);color:#fff;border-color:var(--acc)}.cats a small{color:inherit;opacity:.7}
.citybody{display:grid;grid-template-columns:1fr 340px;gap:28px;padding-top:22px;padding-bottom:40px;align-items:start}
.citymain{min-width:0}
.cityside{position:sticky;top:80px;display:grid;gap:14px}
.map{height:320px;border-radius:var(--radius);border:1px solid var(--line);background:#e9e6e0;z-index:1}
.map.small{height:220px}
.side-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.side-box h3{margin:0 0 10px;font-size:16px}
.stack{display:grid;gap:8px}.stack input{width:100%;min-width:0}
.nearby a{display:inline-block;margin:0 8px 6px 0;color:var(--ink)}.nearby a small{color:var(--mut)}
h2.day{font-size:18px;margin:26px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--line);display:flex;align-items:baseline;gap:10px}h2.day::first-letter{text-transform:uppercase}
h2.day:first-child{margin-top:0}h2.day small{color:var(--mut);font-weight:500;font-family:Inter;font-size:13px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:var(--radius);padding:24px}
.chip{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--soft);color:var(--acc);font-weight:600}

/* event page */
.event{padding:10px 20px 30px}
.event-grid{display:grid;grid-template-columns:1fr 360px;gap:30px;align-items:start}
.event-cat{color:var(--acc);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.04em}
.free-txt{color:var(--free)}
.event h1{font-size:34px;line-height:1.12;margin:6px 0 16px}
.event-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.event .poster{max-width:100%;max-height:560px;border-radius:var(--radius);margin:6px 0 16px;box-shadow:var(--shadow)}
.event .desc{max-width:760px;font-size:16.5px;line-height:1.65}
.event .source{margin-top:22px;color:var(--mut)}
.facts{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:grid;gap:12px;margin-bottom:14px}
.facts .k{display:block;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.facts b{font-weight:600}

/* promo / footer */
.promo{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:linear-gradient(135deg,#1f1f26,#3a2a2a);color:#fff;border-radius:22px;padding:30px 34px;margin:20px 0 14px}
.promo h2{margin:0 0 8px;font-size:24px}.promo p{margin:0;opacity:.85;max-width:620px}
.promo-actions{display:grid;gap:10px}.promo .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.stats{text-align:center;color:var(--mut);font-size:13px;margin:0 0 30px}
.foot{border-top:1px solid var(--line);padding:30px 0 20px;color:var(--mut);font-size:14px;background:#fff}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
.foot-grid b{display:block;color:var(--ink);margin-bottom:6px}.foot-grid a{display:block;color:var(--mut);margin:3px 0}
.foot-note{margin-top:20px;font-size:12px}
.form label{display:block;margin:14px 0 6px;font-weight:600}.form select,.form input[type=email],.form input[type=text]{display:block;width:100%;max-width:460px}
.form .check{display:flex;gap:10px;align-items:center;font-weight:500}.form button{margin-top:18px}
.months a{display:inline-block;margin:0 8px 8px 0;padding:4px 12px;background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--ink)}.months a.on{background:var(--ink);color:#fff}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:#fff}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}
code{background:#f1eee9;padding:1px 5px;border-radius:4px}
main>section.wrap:first-child{padding-top:24px}
@media (max-width:900px){.citybody,.event-grid{grid-template-columns:1fr}.cityside{position:static}.foot-grid{grid-template-columns:1fr}.promo{grid-template-columns:1fr}.top-nav a:not(.acct):not(.mycity){display:none}}
@media (max-width:640px){.hero h1{font-size:30px}.top-row{height:auto;padding:10px 16px;flex-wrap:wrap}.picker{order:3;flex-basis:100%;max-width:none}.brand span:last-child{display:none}.cityhead h1{font-size:24px}.event h1{font-size:26px}}
