/* Ringi.sk — vizuál v2 (makety), pieskovisko podľa design-preview/README.md.
   Zdieľané tokeny a komponenty pre všetky makety. */

:root{
  --bg:        #F1ECE2;
  --bg-panel:  #E9E2D2;
  --ink:       #18140F;
  --ink-soft:  #6b6154;
  --ink-faint: #9b9182;
  --line:      rgba(24,20,15,0.14);
  --line-strong: rgba(24,20,15,0.85);
  --red:       #D6401F;
  --red-soft:  #F4DECB;
  --blue:      #2A35B8;
  --card-fg:   #F1ECE2;

  --font-display: 'Archivo', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--bg);z-index:20;
}
.site-header .wrap{
  height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.logo{
  font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:-0.01em;
  display:inline-flex;align-items:baseline;gap:2px;
}
.logo .dot{color:var(--red);font-size:26px;line-height:0;}
.main-nav{display:flex;align-items:center;gap:28px;font-weight:600;font-size:15px;flex:1;margin-left:20px;}
.main-nav a{color:var(--ink-soft);}
.main-nav a:hover{color:var(--ink);}
.header-search{
  display:flex;align-items:center;gap:8px;
  border:1px solid var(--line);border-radius:999px;
  padding:9px 16px;color:var(--ink-faint);font-size:14px;min-width:220px;
  background:#fff;
}
.header-actions{display:flex;align-items:center;gap:14px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  border-radius:999px;font-weight:700;font-size:14px;
  padding:10px 20px;border:1px solid transparent;white-space:nowrap;
}
.btn-primary{background:var(--ink);color:var(--bg);}
.btn-primary:hover{background:#000;}
.btn-ghost{color:var(--ink-soft);font-weight:600;}
.btn-ghost:hover{color:var(--ink);}
.btn-outline{border-color:var(--line-strong);color:var(--ink);background:transparent;}
.btn-outline:hover{background:var(--ink);color:var(--bg);}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);margin-top:80px;padding:36px 0;}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.site-footer nav{display:flex;gap:22px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap;}
.site-footer .copy{font-size:13px;color:var(--ink-faint);}

/* ---------- eyebrow / headline ---------- */
.eyebrow{
  font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--ink-soft);
}
h1.display{
  font-family:var(--font-display);font-weight:800;font-size:64px;line-height:0.98;letter-spacing:-0.02em;
  margin:10px 0 0;
}
h1.display .red{color:var(--red);}

/* ---------- pill chips (filters) ---------- */
.chip-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.chip{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--line-strong);border-radius:999px;
  padding:9px 16px;font-weight:600;font-size:14px;background:transparent;color:var(--ink);
}
.chip.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.chip-day{
  flex-direction:column;gap:2px;padding:8px 14px;min-width:52px;text-align:center;
  font-family:var(--font-mono);
}
.chip-day .d{font-size:10px;letter-spacing:0.05em;color:var(--ink-soft);}
.chip-day.is-active .d{color:var(--bg);opacity:0.7;}
.chip-day .n{font-family:var(--font-display);font-weight:800;font-size:18px;}
.chip-sep{width:1px;height:30px;background:var(--line);margin:0 4px;}

/* ---------- numeral tip cards ---------- */
.tip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px;}
.tip-carousel{margin-top:28px;}
.tip-carousel .tip-grid{margin-top:0;}
.tip-card{
  border-radius:18px;padding:26px;min-height:300px;display:flex;flex-direction:column;
  color:var(--card-fg);position:relative;overflow:hidden;transition:background-color 0.25s ease;
}
.tip-dots{display:flex;gap:8px;justify-content:center;margin-top:20px;}
.tip-dot{
  width:8px;height:8px;border-radius:50%;border:none;padding:0;background:var(--line-strong);
  opacity:0.35;cursor:pointer;transition:opacity .2s,width .2s,border-radius .2s;
}
.tip-dot.is-active{opacity:1;width:22px;border-radius:4px;background:var(--red);}
.tip-card.c-red{background:var(--red);}
.tip-card.c-blue{background:var(--blue);}
.tip-card.c-ink{background:var(--ink);}
.tip-top{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.85;}
.tip-num{
  font-family:var(--font-display);font-weight:800;font-size:74px;line-height:0.9;letter-spacing:-0.02em;
  margin:22px 0 auto;
}
.tip-title{font-family:var(--font-display);font-weight:800;font-size:24px;line-height:1.12;margin-top:18px;}
.tip-desc{font-size:13.5px;opacity:0.82;margin-top:8px;line-height:1.5;}
.tip-meta{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.03em;text-transform:uppercase;
  margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.28);
  display:flex;justify-content:space-between;gap:8px;opacity:0.9;
}

/* ---------- lists ---------- */
.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-top:52px;}
.section-title h2{font-family:var(--font-display);font-weight:800;font-size:30px;margin:0;}
.section-title .meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:0.04em;}
.section-title .link{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:0.04em;}

.event-row{
  display:flex;align-items:center;gap:20px;padding:18px 0;border-top:1px solid var(--line);
}
.event-row .time{font-family:var(--font-mono);font-weight:600;font-size:14px;width:56px;flex-shrink:0;color:var(--ink-soft);}
.event-row .info{flex:1;min-width:0;}
.event-row .title{font-family:var(--font-display);font-weight:700;font-size:18px;}
.event-row .place{font-size:13.5px;color:var(--ink-soft);margin-top:2px;}
.tag{
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.04em;text-transform:uppercase;
  border:1px solid var(--line-strong);border-radius:999px;padding:4px 10px;white-space:nowrap;
}
.event-row .price{font-family:var(--font-mono);font-size:13.5px;font-weight:600;width:110px;text-align:right;flex-shrink:0;}
.price.is-free{color:var(--red);}
.price.is-unknown{color:var(--ink-faint);}

/* Riadok podujatia so skutočnou fotkou (homepage) — rovnaký princíp odznaku ako na strane
   podujatia (.date-block/.mini-badge): fotka stmavená cez .photo-slot, číslo dňa navrchu. */
.event-row.has-badge{align-items:flex-start;gap:16px;}
.event-row .row-badge{
  width:72px;height:72px;flex-shrink:0;border-radius:12px;background:var(--ink);color:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.event-row .row-badge .mday{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1;position:relative;z-index:1;}
.event-row .row-badge .mmon{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.75;position:relative;z-index:1;}
.event-row.is-ended .row-badge{filter:grayscale(1);opacity:0.6;}
.event-row .erc-top{display:flex;gap:6px;align-items:center;margin-bottom:3px;flex-wrap:wrap;}
.event-row .erc-top .tag{padding:2px 8px;font-size:9.5px;}
.event-row .erc-excerpt{font-size:13px;color:var(--ink-soft);margin-top:4px;max-width:56ch;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.event-row .erc-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;}
.fav-btn{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:var(--ink-faint);
}
.fav-btn.is-fav{color:var(--red);border-color:var(--red);}
.btn-sm{padding:6px 12px;font-size:12.5px;}

/* ---------- filter panel (details/summary), rýchle chipy ---------- */
.filter-toggle{cursor:pointer;list-style:none;display:inline-flex;}
.filter-toggle::-webkit-details-marker{display:none;}
.filter-badge{background:var(--red);color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:2px;}
.filter-panel{margin-top:16px;padding:22px;border-radius:16px;background:var(--bg-panel);}
.filter-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
.filter-panel select{
  border:1px solid var(--line-strong);border-radius:999px;padding:8px 14px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink);
}
.filter-panel input[type=text],.filter-panel input[type=date]{
  border:1px solid var(--line-strong);border-radius:999px;padding:8px 14px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink);
}
.geo-banner{
  margin-top:14px;padding:12px 16px;border-radius:12px;background:var(--red-soft);font-size:13.5px;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;
}

/* ---------- layout: content + sidebar ---------- */
.layout-2col{display:grid;grid-template-columns:1fr 300px;gap:56px;margin-top:8px;}
.sidebar-box{border-radius:16px;padding:22px;margin-bottom:20px;}
.sidebar-box.dark{background:var(--ink);color:var(--bg);}
.sidebar-box .tag-onDark{border-color:rgba(255,255,255,0.4);color:var(--bg);}
.sidebar-box h3{font-family:var(--font-display);font-weight:800;font-size:22px;margin:10px 0 8px;}
.sidebar-box p{font-size:13.5px;line-height:1.55;opacity:0.88;margin:0 0 16px;}
.sidebar-box.dashed{border:1.5px dashed var(--line-strong);}
.city-list{list-style:none;margin:0;padding:0;}
.city-list li{border-top:1px solid var(--line);}
.city-list a{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;font-family:var(--font-display);font-weight:700;font-size:16px;}
.sidebar-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);margin:32px 0 4px;}

/* ---------- card grid (related events) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.ev-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;}
.ev-card .thumb{height:120px;background:var(--bg-panel);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);letter-spacing:0.04em;text-transform:uppercase;}
.ev-card .body{padding:16px;}
.ev-card .cat{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-soft);letter-spacing:0.05em;text-transform:uppercase;}
.ev-card .title{font-family:var(--font-display);font-weight:700;font-size:16px;margin-top:6px;}
.ev-card .meta{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}

/* Kompaktná varianta — fotka nie je samostatný veľký blok, len malý štvorec zdieľaný s dátumom
   (rovnaký princíp ako .date-block/.photo-slot na strane podujatia). */
.ev-card-mini{display:flex;align-items:center;gap:16px;padding:16px 4px;border-top:1px solid var(--line);}
.ev-card-mini:first-child{border-top:none;}
.mini-badge{
  width:64px;height:64px;flex-shrink:0;border-radius:12px;background:var(--ink);color:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.mini-badge .mday{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1;position:relative;z-index:1;}
.mini-badge .mmon{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.75;position:relative;z-index:1;}
.ev-card-mini .cat{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-soft);letter-spacing:0.05em;text-transform:uppercase;}
.ev-card-mini .title{font-family:var(--font-display);font-weight:700;font-size:16.5px;margin-top:3px;}
.ev-card-mini .meta{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}

/* ---------- forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:40px;}
.field{margin-bottom:22px;}
.field label{display:block;font-weight:700;font-size:14px;margin-bottom:8px;}
.field .hint{font-size:12.5px;color:var(--ink-soft);margin-top:6px;}
.field input[type=text],
.field input[type=email],
.field input[type=password],
.field input[type=date],
.field input[type=time],
.field input[type=datetime-local],
.field input[type=number],
.field input[type=url],
.field textarea,
.field select{
  width:100%;border:1px solid var(--line-strong);border-radius:10px;
  padding:12px 14px;font:inherit;font-size:15px;background:#fff;color:var(--ink);
}
.field textarea{resize:vertical;min-height:110px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field-row-3{display:grid;grid-template-columns:2fr 2fr 1fr;gap:12px;}
.field-sub-label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:4px;}
.radio-row{display:flex;gap:10px;flex-wrap:wrap;}
.radio-pill{border:1px solid var(--line-strong);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;background:#fff;cursor:pointer;}
.radio-pill.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.upload-box{
  border:1.5px dashed var(--line-strong);border-radius:14px;padding:32px;text-align:center;
  color:var(--ink-soft);font-size:14px;
}
.form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:16px;flex-wrap:wrap;}
.form-note{font-size:12.5px;color:var(--ink-soft);max-width:340px;}

/* ---------- pridanie podujatia: multi-riadky (vstupenky/zdroje), miesto (mapa + návrhy) ---------- */
.field input[type=file]{font-size:13.5px;color:var(--ink-soft);}
.field input[type=file]::file-selector-button{
  margin-right:12px;padding:9px 16px;border-radius:999px;border:none;background:var(--ink);color:var(--bg);
  font-weight:700;font-size:13px;cursor:pointer;
}
.multi-row{display:flex;gap:8px;}
.multi-row input{flex:1;border:1px solid var(--line-strong);border-radius:10px;padding:10px 14px;font:inherit;font-size:14px;}
.multi-remove{width:40px;border-radius:10px;border:1px solid var(--red);color:var(--red);background:#fff;flex-shrink:0;}
.multi-add{margin-top:8px;font-size:13.5px;color:var(--red);font-weight:700;background:none;border:none;padding:0;cursor:pointer;}
#venue-suggest{
  margin-top:8px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;overflow:hidden;max-height:280px;overflow-y:auto;
}
#venue-suggest button{display:block;width:100%;text-align:left;padding:10px 14px;border:none;background:none;border-top:1px solid var(--line);font:inherit;cursor:pointer;}
#venue-suggest button:first-child{border-top:none;}
#venue-suggest .db-tag,#venue-suggest .osm-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-right:6px;}
#venue-suggest .db-tag{background:#DCEFE1;color:#1d5c34;}
#venue-suggest .osm-tag{background:#dbe7fb;color:#1e40af;}
#venue-mini-map{border-radius:12px;overflow:hidden;border:1px solid var(--line);margin-top:10px;height:256px;}
#venue-selected{margin-top:8px;padding:10px 12px;border-radius:10px;background:#DCEFE1;color:#1d5c34;font-size:12.5px;}

/* ---------- landing.php: rozcestník / kraj / stránkovanie ---------- */
.search-dropdown{
  position:relative;
}
.search-dropdown input{
  width:100%;border:1px solid var(--line-strong);border-radius:999px;padding:13px 20px;font:inherit;font-size:15px;background:#fff;
}
.search-dropdown ul{
  position:absolute;z-index:30;left:0;right:0;margin-top:8px;max-height:320px;overflow-y:auto;
  border-radius:14px;background:#fff;border:1px solid var(--line-strong);box-shadow:0 12px 32px rgba(24,20,15,0.14);padding:4px 0;list-style:none;
}
.search-dropdown li a{display:flex;justify-content:space-between;gap:12px;padding:10px 18px;font-size:14.5px;}
.search-dropdown li a:hover{background:var(--bg-panel);}

.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.region-card{
  display:block;padding:20px;border-radius:16px;background:#fff;border:1px solid var(--line);
}
.region-card:hover{border-color:var(--red);}
.region-card .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.region-card h3{font-family:var(--font-display);font-weight:800;font-size:18px;margin:0;}
.region-card .n{font-family:var(--font-display);font-weight:800;font-size:24px;color:var(--red);}
.region-card .meta{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
.region-card .places{font-size:13px;color:var(--ink);margin-top:10px;}

.place-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;margin:0;padding:0;}
.place-tile{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:#fff;border:1px solid var(--line);}
.place-tile:hover{border-color:var(--red);}
.place-tile .n{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--red);flex-shrink:0;}
.place-tile .name{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.sort-toggle{display:inline-flex;border-radius:999px;border:1px solid var(--line-strong);overflow:hidden;}
.sort-toggle button{padding:9px 16px;font-size:13.5px;font-weight:600;border:none;background:#fff;color:var(--ink);cursor:pointer;}
.sort-toggle button.is-active{background:var(--ink);color:var(--bg);}

.pager{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;}
.pager a,.pager span{padding:9px 15px;border-radius:10px;font-size:14px;font-weight:600;}
.pager a{border:1px solid var(--line-strong);}
.pager span[aria-current]{background:var(--ink);color:var(--bg);}
.pager .dots{color:var(--ink-faint);padding:0 4px;}

@media (max-width:900px){
  .region-grid{grid-template-columns:1fr;}
  .place-grid{grid-template-columns:repeat(2,1fr);}
}

/* ---------- dlhý statický text (podmienky, ochrana údajov) ---------- */
.prose{font-size:15.5px;line-height:1.7;color:var(--ink);max-width:720px;}
.prose h2{font-family:var(--font-display);font-weight:800;font-size:21px;margin:36px 0 12px;}
.prose section:first-child h2{margin-top:0;}
.prose h3{font-weight:700;font-size:15.5px;margin:18px 0 6px;}
.prose p{margin:0 0 14px;}
.prose ul{margin:0 0 14px;padding-left:22px;}
.prose li{margin-bottom:6px;}
.prose a{color:var(--red);text-decoration:underline;}
.prose strong{color:var(--ink);}
.prose table{width:100%;border-collapse:collapse;font-size:13.5px;margin:10px 0 16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.prose th,.prose td{text-align:left;padding:8px 12px;border-top:1px solid var(--line);}
.prose tr:first-child th{border-top:none;}
.prose thead{background:var(--bg-panel);}
.prose code{background:var(--bg-panel);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:0.9em;}
.prose .muted{font-size:13px;color:var(--ink-soft);}

/* ---------- auth card ---------- */
.auth-wrap{min-height:680px;display:flex;align-items:center;justify-content:center;padding:60px 20px;position:relative;overflow:hidden;}
.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:40px;position:relative;z-index:1;}
.auth-card h1{font-family:var(--font-display);font-weight:800;font-size:32px;margin:0 0 6px;}
.auth-card .sub{font-size:14px;color:var(--ink-soft);margin-bottom:28px;}
.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--ink-faint);font-size:12.5px;font-family:var(--font-mono);}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line);}
.auth-foot{text-align:center;font-size:13.5px;color:var(--ink-soft);margin-top:4px;}
.deco-ring{position:absolute;border-radius:50%;border:22px solid var(--red-soft);z-index:0;}

/* ---------- breadcrumb / event detail ---------- */
.crumbs{font-family:var(--font-mono);font-size:12.5px;color:var(--ink-soft);letter-spacing:0.02em;}
.crumbs a:hover{color:var(--ink);}
.event-hero{display:grid;grid-template-columns:190px 1fr;gap:32px;margin-top:18px;align-items:start;}
.date-block{
  background:var(--ink);color:var(--bg);border-radius:18px;padding:22px;text-align:center;
  position:relative;overflow:hidden;
}
.date-block .mon{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;opacity:0.75;}
.date-block .day{font-family:var(--font-display);font-weight:800;font-size:58px;line-height:1;margin:6px 0;}
.date-block .time{font-family:var(--font-mono);font-size:15px;opacity:0.9;}

/* Miesto pre fotku podujatia — keď existuje, ide sem ako stmavený podklad (photo-tinted),
   dátum/čas ostávajú čitateľné navrchu. Bez fotky zostáva čistá plná farba (has-photo sa nepridá). */
.photo-slot{position:absolute;inset:0;z-index:0;}
.photo-slot::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 9px);
}
.photo-slot::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(24,20,15,0.15), rgba(24,20,15,0.75));}
.photo-tag{
  position:absolute;top:10px;right:12px;z-index:1;font-family:var(--font-mono);font-size:9px;
  letter-spacing:0.06em;color:rgba(255,255,255,0.4);
}
.date-block > *:not(.photo-slot){position:relative;z-index:1;}
.event-title{font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1.04;letter-spacing:-0.01em;margin:0 0 14px;}
.event-facts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;}
.fact{
  display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-soft);
  border:1px solid var(--line);border-radius:999px;padding:8px 14px;
}
.price-block{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:var(--bg-panel);border-radius:16px;padding:20px 24px;margin:22px 0;
}
.price-block .amount{font-family:var(--font-display);font-weight:800;font-size:28px;}
.event-desc{font-size:16px;line-height:1.7;color:var(--ink);max-width:640px;}
.event-desc p{margin:0 0 16px;}

/* ---------- bočný panel na strane podujatia (Kedy/Kde/Vstupné/Zdroje) ---------- */
.aside-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;}
.aside-panel .blk{margin-bottom:18px;}
.aside-panel .blk:last-child{margin-bottom:0;}
.aside-panel .blk-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px;}
.aside-panel .blk-value{font-size:15px;font-weight:600;}
.icon-btn{
  display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;
  border:1px solid var(--line-strong);border-radius:999px;padding:7px 13px;background:#fff;color:var(--ink);
}
.icon-btn.is-fav{color:var(--red);border-color:var(--red);}
#venue-map-v2{border-radius:12px;overflow:hidden;height:220px;border:1px solid var(--line);margin-top:10px;}
dialog.v2-dialog{border:none;border-radius:18px;padding:0;max-width:440px;width:100%;margin:auto;background:transparent;}
dialog.v2-dialog::backdrop{background:rgba(24,20,15,0.55);}
.dialog-card{background:#fff;border-radius:18px;padding:26px;}
.dialog-card textarea{
  width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:12px;font:inherit;font-size:14px;min-height:110px;
}

/* ---------- pomocné ---------- */
.hidden{display:none !important;}
/* platform_icon_html() (includes/platforms.php) je zdieľaná so starými Tailwind stránkami a posiela
   tieto triedy priamo — namiesto úpravy zdieľanej funkcie len doplníme, čo z Tailwindu potrebuje. */
.inline-flex{display:inline-flex;}
.items-center{align-items:center;}
.justify-center{justify-content:center;}
.rounded-full{border-radius:999px;}
.shrink-0{flex-shrink:0;}
/* Seo::footerLinksHtml() (zdieľaná so starými Tailwind stránkami) posiela tieto triedy priamo. */
.flex{display:flex;}
.flex-wrap{flex-wrap:wrap;}
.gap-x-3{column-gap:12px;}
.gap-y-1{row-gap:4px;}
.text-neutral-400{color:var(--ink-soft);}
.font-semibold{font-weight:600;}
.hover\:text-neutral-300:hover{color:var(--ink);}
.max-w-5xl{max-width:64rem;}
.mx-auto{margin-left:auto;margin-right:auto;}
.px-4{padding-left:16px;padding-right:16px;}
.space-y-2 > * + *{margin-top:8px;}
#m-search-btn{display:none;}

@media (min-width:901px){
  .header-search-form{display:flex !important;}
}
@media (max-width:900px){
  .tip-grid,.card-grid{grid-template-columns:1fr;}
  .layout-2col{grid-template-columns:1fr;}
  .event-hero{grid-template-columns:1fr;}
  h1.display{font-size:44px;}
  .main-nav{display:none;}
  #m-search-btn{display:inline-flex;}
}
