/* =====================================================================
   MojaVstupenka.sk – nový vzhľad (3. 10. 2026)
   Načíta sa po style.css (Bootstrap šablóna) a prepíše farby, písmo,
   tlačidlá, formuláre a karty. Nové časti majú triedy s predponou mv-.
   ===================================================================== */
:root {
  /* farby podľa značky (web manuál 5. 10.): Noc, Vstupenková modrá a červená, Hmla */
  --mv-ink: #0b1530;
  --mv-ink-soft: #344155;
  --mv-muted: #637083;
  --mv-paper: #f3f5fa;
  --mv-surface: #ffffff;
  --mv-line: #e6e7e9;
  --mv-blue: #0054fd;
  --mv-blue-dark: #0043ca;
  --mv-lime: #d8ff48;
  --mv-coral: #f62128;
  --mv-chip: #eceff3;
  --mv-soft: #f3f5fa;
  --mv-shadow: 0 18px 50px rgba(11, 21, 48, .10);
  --mv-radius: 22px;
  --mv-font: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;   /* písmo značky (5. 10.) */

  /* Bootstrap premenné šablóny */
  --bs-primary: #0054fd;
  --bs-primary-rgb: 0, 84, 253;
  --bs-body-bg: #f3f5fa;
  --bs-body-bg-rgb: 243, 245, 250;
  --bs-body-color: #0b1530;
  --bs-body-color-rgb: 11, 21, 48;
  --bs-heading-color: #0b1530;
  --bs-body-font-family: var(--mv-font);
  --bs-font-sans-serif: var(--mv-font);
  --bs-link-color: #0054fd;
  --bs-link-color-rgb: 0, 84, 253;
  --bs-link-hover-color: #0043ca;
  --bs-border-color: #e6e7e9;
  --bs-secondary-color: #637083;
  --bs-border-radius: 12px;
  --bs-border-radius-lg: 16px;
}

html { scroll-behavior: smooth; }
body { background: var(--mv-paper); color: var(--mv-ink); font-family: var(--mv-font); line-height: 1.5; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--mv-font); color: var(--mv-ink); font-weight: 800; letter-spacing: -.02em; }
h1, .h1 { letter-spacing: -.02em; }
a { color: var(--mv-blue); }
a:hover { color: var(--mv-blue-dark); }
.text-muted, .text-secondary { color: var(--mv-muted) !important; }
.bg-light { background-color: var(--mv-soft) !important; }
:focus-visible { outline: 3px solid rgba(0, 84, 253, .42); outline-offset: 3px; }
main { min-height: 50vh; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ---------- tlačidlá ---------- */
.btn { border-radius: 12px; font-weight: 800; letter-spacing: -.01em; transition: transform .18s ease, background-color .18s ease, border-color .18s ease; }
.btn:not(:disabled):hover { transform: translateY(-1px); }
.btn-primary, .btn-success {
  --bs-btn-bg: var(--mv-blue); --bs-btn-border-color: var(--mv-blue); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--mv-blue-dark); --bs-btn-hover-border-color: var(--mv-blue-dark); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--mv-blue-dark); --bs-btn-active-border-color: var(--mv-blue-dark);
  --bs-btn-disabled-bg: var(--mv-blue); --bs-btn-disabled-border-color: var(--mv-blue);
  background-color: var(--mv-blue); border-color: var(--mv-blue); color: #fff;
}
.btn-primary:hover, .btn-success:hover { background-color: var(--mv-blue-dark); border-color: var(--mv-blue-dark); color: #fff; }
.btn-outline-primary, .btn-outline-info, .btn-outline-secondary {
  --bs-btn-color: var(--mv-ink); --bs-btn-border-color: var(--mv-line); --bs-btn-bg: var(--mv-surface);
  --bs-btn-hover-bg: var(--mv-ink); --bs-btn-hover-border-color: var(--mv-ink); --bs-btn-hover-color: #fff;
  color: var(--mv-ink); border-color: var(--mv-line); background-color: var(--mv-surface);
}
.btn-outline-primary:hover, .btn-outline-info:hover, .btn-outline-secondary:hover { background-color: var(--mv-ink); border-color: var(--mv-ink); color: #fff; }
.btn-light { background: #fff; border-color: #fff; color: var(--mv-ink); }
.btn-lg { min-height: 54px; border-radius: 14px; }

/* ---------- formuláre ---------- */
.form-control, .form-select { border-radius: 12px; border-color: #dce0e6; background-color: var(--mv-surface); color: var(--mv-ink); min-height: 46px; }
.form-control:focus, .form-select:focus { border-color: var(--mv-blue); box-shadow: 0 0 0 3px rgba(0, 84, 253, .18); }
.form-control-lg { border-radius: 12px; font-size: 1rem; }
.form-label { color: var(--mv-ink-soft); font-weight: 700; font-size: .875rem; }
.form-check-input:checked { background-color: var(--mv-blue); border-color: var(--mv-blue); }
.input-group-text { border-radius: 12px; border-color: #dce0e6; background: var(--mv-soft); }

/* ---------- karty a panely ---------- */
.card { border: 0; border-radius: var(--mv-radius); background: var(--mv-surface); box-shadow: 0 1px 0 rgba(11, 21, 48, .05); }
.card.shadow, .card.shadow-sm { box-shadow: 0 1px 0 rgba(11, 21, 48, .05) !important; }
.modal-content { border: 0; border-radius: var(--mv-radius); box-shadow: 0 24px 80px rgba(0, 0, 0, .25); }
.dropdown-menu { border: 1px solid var(--mv-line); border-radius: 16px; box-shadow: var(--mv-shadow); }
.alert { border: 0; border-radius: 14px; }
.badge { border-radius: 999px; font-weight: 750; }
.list-group-item { background: transparent; }

/* ---------- hlavička ---------- */
.mv-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 1030; border-bottom: 1px solid rgba(230, 231, 233, .9); background: rgba(243, 245, 250, .92); backdrop-filter: blur(16px); }
.mv-nav { position: relative; display: flex; align-items: center; gap: 24px; min-height: 76px; }
.mv-brand img { display: block; height: 36px; width: auto; }
.mv-nav-links { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 700; }
.mv-nav-links a { color: var(--mv-ink-soft); text-decoration: none; }
.mv-nav-links a:hover { color: var(--mv-blue); }
.mv-header-search { position: relative; flex: 1 1 290px; min-width: 200px; max-width: 340px; margin: 0 0 0 auto; }
.mv-header-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--mv-muted); }
.mv-header-search input { width: 100%; height: 44px; border: 1px solid var(--mv-line); border-radius: 13px; background: var(--mv-surface); color: var(--mv-ink); padding: 0 12px 0 40px; font-size: 14px; }
.mv-header-search input:focus { outline: 3px solid rgba(0, 84, 253, .25); border-color: var(--mv-blue); }
.mv-nav-actions { display: flex; align-items: center; gap: 6px; }
.mv-icon-button { position: relative; display: inline-grid; place-items: center; min-width: 42px; height: 42px; border-radius: 12px; color: var(--mv-ink); font-size: 20px; text-decoration: none; }
.mv-icon-button:hover { background: rgba(11, 21, 48, .06); color: var(--mv-ink); }
.mv-avatar { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--mv-blue); color: #fff; font-size: 14px; font-weight: 800; }
.mv-cart-dot { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 4px; border: 2px solid var(--mv-paper); border-radius: 999px; background: #d6111a; color: #fff; font-size: 11px; font-weight: 800; line-height: 14px; text-align: center; }  /* audit BUG-0505: 5,3:1 (predtým #f62128 4,06:1) */
.mv-admin-link { min-height: 36px; font-size: 13px; }
.mv-dropdown { min-width: 240px; padding: 8px; }
.mv-dropdown-head { display: grid; padding: 8px 12px 10px; }
.mv-dropdown-head small { color: var(--mv-muted); }
.mv-dropdown .dropdown-item { border-radius: 10px; padding: 8px 12px; font-weight: 600; }
.mv-mobile-menu { display: none; }
.mv-basket-preview { position: absolute; right: 0; top: 70px; z-index: 1200; width: 100%; max-width: 420px; border-radius: 18px; box-shadow: var(--mv-shadow); }
@media (max-width: 960px) {
  .mv-nav { gap: 12px; }
  .mv-nav-links { display: none; }
}
@media (max-width: 680px) {
  .mv-header { position: relative; }   /* nie static: inak z-index nepl. a menu sa schová pod obsah stránky (5. 10.) */
  .mv-nav { min-height: 64px; }
  .mv-brand img { height: 30px; }
  .mv-header-search { display: none; }
  .mv-nav-actions { margin-left: auto; }
  .mv-admin-link { display: none; }
  .mv-mobile-menu { display: block; }
}

/* ---------- spoločné prvky ---------- */
.mv-tag { color: var(--mv-blue); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.mv-section { padding-block: 44px; }
.mv-section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.mv-section-head h2 { margin: 0; font-size: clamp(27px, 3vw, 39px); letter-spacing: -.02em; line-height: 1; }
.mv-section-head p { margin: 0; color: var(--mv-muted); font-size: 14px; }
.mv-crumbs { display: flex; flex-wrap: wrap; gap: 6px; padding-block: 22px 0; color: var(--mv-muted); font-size: 13px; }
.mv-crumbs a { font-weight: 700; text-decoration: none; }
.mv-empty { grid-column: 1 / -1; padding: 38px; border: 1px dashed #cdd3da; border-radius: 18px; color: var(--mv-muted); text-align: center; }

/* ---------- hlavná stránka ---------- */
.mv-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr); align-items: center; gap: clamp(28px, 6vw, 80px); padding-block: 44px 20px; }
.mv-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--mv-blue); font-size: 13px; font-weight: 780; letter-spacing: .05em; text-transform: uppercase; }
.mv-eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: var(--mv-blue); box-shadow: 0 0 0 4px rgba(0, 84, 253, .18); }
.mv-hero h1 { max-width: 620px; margin: 0; font-size: clamp(40px, 5.2vw, 70px); font-weight: 900; letter-spacing: -.02em; line-height: .98; text-wrap: balance; }
.mv-hero h1 em { font-style: normal; color: var(--mv-blue); }
.mv-hero-copy { max-width: 500px; margin: 20px 0 0; color: #526075; font-size: 18px; }
.mv-feature { overflow: hidden; border-radius: 27px; background: var(--mv-ink); color: #fff; box-shadow: var(--mv-shadow); }
.mv-feature-image { position: relative; display: block; aspect-ratio: 16 / 9; max-width: 100%; background: #111d34 center / cover no-repeat; }
.mv-feature-top { position: absolute; inset: 0 0 auto 0; display: flex; justify-content: space-between; padding: 16px 18px; font-size: 12px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.mv-feature-top span { padding: 5px 8px; border-radius: 7px; background: rgba(11, 21, 48, .72); color: #fff; }
.mv-sticker { position: absolute; z-index: 2; right: 18px; bottom: -44px; display: grid; place-items: center; width: 100px; height: 100px; border: 2px solid var(--mv-ink); border-radius: 50%; background: var(--mv-coral); color: var(--mv-ink); font-size: 12px; font-weight: 900; line-height: 1.05; text-align: center; transform: rotate(13deg); }
.mv-feature-body { padding: 22px 24px 24px; }
.mv-feature-body h2 { max-width: calc(100% - 110px); margin: 0; color: #fff; font-size: clamp(28px, 3.4vw, 42px); letter-spacing: -.02em; line-height: 1; overflow-wrap: anywhere; }
.mv-feature-meta { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .3); font-size: 13px; }
.mv-feature-meta strong { font-size: 15px; }

.mv-slider { position: relative; min-width: 0; }
.mv-slide[hidden] { display: none !important; }
.mv-slide.is-active { animation: mv-fade .5s ease; }
@keyframes mv-fade { from { opacity: .35; } to { opacity: 1; } }
.mv-slider-nav { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 12px; }
.mv-slider-arrow { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--mv-line); border-radius: 50%; background: var(--mv-surface); color: var(--mv-ink); }
.mv-slider-arrow:hover { background: var(--mv-ink); color: #fff; }
.mv-slider-dots { display: flex; gap: 6px; }
.mv-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 999px; background: #c8ced8; transition: width .2s ease; }
.mv-dot.is-active { width: 24px; background: var(--mv-blue); }

.mv-chips { display: flex; gap: 8px; margin-bottom: 20px; padding: 8px 10px; overflow-x: auto; border: 1px solid var(--mv-line); border-radius: 17px; background: var(--mv-surface); scrollbar-width: none; }
.mv-chips::-webkit-scrollbar { display: none; }
.mv-chip { flex: 0 0 auto; border: 1px solid #e4e7eb; border-radius: 999px; padding: 9px 13px; background: var(--mv-surface); color: #4a576b; font-size: 13px; font-weight: 700; }
.mv-chip:hover, .mv-chip.is-active { border-color: var(--mv-ink); background: var(--mv-ink); color: #fff; }

.mv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }   /* 3 vedľa seba (3. 10.) */
.mv-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: 18px; background: var(--mv-surface); box-shadow: 0 1px 0 rgba(11, 21, 48, .05); transition: transform .2s ease, box-shadow .2s ease; }
.mv-card.d-none { display: none !important; }
.mv-card:hover { transform: translateY(-4px); box-shadow: 0 15px 35px rgba(11, 21, 48, .12); }
.mv-card-art { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #1e3159; }
.mv-card-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mv-card-badge { position: absolute; top: 12px; right: 12px; padding: 5px 8px; border-radius: 7px; background: #d6111a; /* audit BUG-0505 */ color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.mv-card-body { display: flex; flex-direction: column; flex: 1; padding: 15px 15px 16px; }
.mv-card-title { margin: 5px 0 10px; font-size: 18px; font-weight: 800; letter-spacing: -.025em; line-height: 1.25; overflow-wrap: anywhere; }
.mv-card-title a { color: var(--mv-ink); text-decoration: none; }
.mv-card-title a:hover { color: var(--mv-blue); }
.mv-card-details { display: grid; gap: 5px; color: #667286; font-size: 13px; }
.mv-card-details span { display: flex; align-items: center; gap: 7px; }
.mv-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px solid #edf0f2; color: #667286; font-size: 12px; }
.mv-card-details + .mv-card-foot { margin-top: 14px; }
.mv-card-foot strong { color: var(--mv-ink); font-size: 15px; font-variant-numeric: tabular-nums; }
.mv-card-buy { border-radius: 10px; padding: 7px 11px; background: var(--mv-chip); color: var(--mv-ink); font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.mv-card-buy:hover { background: var(--mv-ink); color: #fff; }

.mv-counters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.mv-counter { display: flex; align-items: center; gap: 14px; padding: 20px; border-radius: 18px; background: var(--mv-surface); }
.mv-counter i { font-size: 26px; color: var(--mv-blue); }
.mv-counter strong { display: block; font-size: 24px; letter-spacing: -.02em; }
.mv-counter span { color: var(--mv-muted); font-size: 13px; }
.mv-newsletter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 460px); gap: 24px; align-items: center; padding: 28px; border-radius: var(--mv-radius); background: var(--mv-blue); color: #fff; }
.mv-newsletter h2 { color: #fff; font-size: 28px; margin: 0 0 6px; }
.mv-newsletter p { margin: 0; color: #d9e5ff; }
.mv-newsletter-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.mv-newsletter-form small { grid-column: 1 / -1; color: #d9e5ff; }
.mv-newsletter-form .btn { background: var(--mv-ink); border-color: var(--mv-ink); }

@media (max-width: 960px) {
  .mv-hero { grid-template-columns: 1fr .9fr; }
  .mv-grid, .mv-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mv-newsletter { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .mv-hero { grid-template-columns: 1fr; padding-top: 18px; }
  /* slogan iba na PC (rozhodnutie 3. 10.); 16. 10. (audit BUG-0516): na mobile vizuálne skrytý, ale H1 ostáva
     pre čítačky a vyhľadávače (predtým display: none – stránka na mobile nemala žiadny H1) */
  .mv-hero-text { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
    margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
  .mv-sticker { bottom: -36px; width: 80px; height: 80px; font-size: 10px; }
  .mv-feature-body h2 { max-width: calc(100% - 86px); }
  .mv-section { padding-block: 32px; }
  .mv-grid { gap: 12px; }
  .mv-card-body { padding: 12px; }
  .mv-card-title { font-size: 14px; }
  .mv-card-details, .mv-card-foot { font-size: 11px; }
  .mv-card-buy { display: none; }
}
@media (max-width: 370px) {
  .mv-grid, .mv-counters { grid-template-columns: 1fr; }
  .mv-card-buy { display: inline-block; }
}

/* ---------- stránka podujatia ---------- */
.mv-ev-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: 28px; align-items: start; padding-block: 20px 50px; }
.mv-ev-main { display: grid; gap: 22px; min-width: 0; }
.mv-ev-poster { aspect-ratio: 16 / 9; max-width: 100%; border-radius: 27px; background: #111d34 center / cover no-repeat; box-shadow: var(--mv-shadow); }
/* 16. 10. (audit BUG-0806/0815): plagát a úvodný obrázok ako <img> s orezom ako predtým pozadie */
.mv-ev-poster { position: relative; overflow: hidden; }
.mv-cover-img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mv-ev-info { display: grid; gap: 16px; padding: 24px; border-radius: var(--mv-radius); background: var(--mv-surface); }
.mv-ev-info h1 { margin: 0; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.02; overflow-wrap: anywhere; }
.mv-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 0; }
/* 16. 10. (audit BUG-0506): ikona je v <dt>, dvojica dt/dd priamo v div – platný zoznam dl */
.mv-fact { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 38px; padding-left: 50px; }
.mv-fact dt > i { position: absolute; left: 0; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--mv-soft); color: var(--mv-blue); font-size: 17px; letter-spacing: 0; }
.mv-fact dt { color: var(--mv-muted); font-size: 11px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.mv-fact dd { margin: 1px 0 0; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.mv-ev-price { display: none; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid var(--mv-line); }
.mv-ev-price span { display: block; color: var(--mv-muted); font-size: 12px; }
.mv-ev-price strong { font-size: 24px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.mv-ev-about h2, .mv-ev-place h2, .mv-ev-tickets > h2 { font-size: 26px; margin: 0 0 14px; }
.mv-ev-description { max-width: 70ch; color: #3b4759; font-size: 15px; overflow-wrap: anywhere; }
.mv-ev-description img, .mv-ev-description iframe { max-width: 100%; border-radius: 14px; }
.mv-ev-description table, .mv-ev-description pre { display: block; max-width: 100%; overflow-x: auto; }
.mv-ev-description video, .mv-ev-description embed, .mv-ev-description object { max-width: 100%; }
.mv-ev-contact a { overflow-wrap: anywhere; }
.mv-follow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 18px; padding: 14px 16px; border-radius: 16px; background: var(--mv-surface); }
.mv-follow > span { font-weight: 750; font-size: 14px; }
.mv-icon-link { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--mv-soft); color: var(--mv-ink); text-decoration: none; }
.mv-icon-link:hover { background: var(--mv-ink); color: #fff; }
.mv-subhead { margin: 24px 0 12px; font-size: 20px; }
.mv-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.mv-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; display: block; }
.mv-ev-place { padding: 22px; border-radius: var(--mv-radius); background: var(--mv-surface); }
.mv-map { height: 220px; overflow: hidden; border-radius: 16px; border: 1px solid var(--mv-line); }
.mv-ev-tickets { position: sticky; top: calc(96px + env(safe-area-inset-top, 0px)); padding: 22px; border-radius: var(--mv-radius); background: var(--mv-surface); box-shadow: var(--mv-shadow); }
.mv-ev-tickets .ticket-card { border: 1px solid #e1e5e9 !important; border-radius: 15px; box-shadow: none !important; margin-bottom: 10px !important; overflow: hidden; }
.mv-ev-tickets .ticket-card + .ticket-card { margin-top: 0; }
.mv-ev-tickets .ticket-card-header { background: var(--mv-surface) !important; color: var(--mv-ink) !important; padding: 12px 14px 0 !important; font-size: 15px; }
.mv-ev-tickets .ticket-card-header .bi-ticket-perforated, .mv-ev-tickets .ticket-card-header .d-md-inline { display: none !important; }
.mv-ev-tickets .ticket-card-header .ms-md-5 { margin-left: 0 !important; font-weight: 800; }
.mv-ev-tickets .ticket-card-header { gap: 8px; }
.mv-ev-tickets .ticket-card-header > div { min-width: 0; }
.mv-ev-tickets .ticket-card-header > div span { overflow-wrap: anywhere; }
.mv-ev-tickets .ticket-card-header .text-success { color: var(--mv-ink) !important; }
.mv-ev-tickets .ticket-card-body { padding: 8px 14px 14px !important; }
.mv-ev-tickets .basket-preview-image { display: none; }
.mv-ev-tickets .qty-btn { width: 34px; height: 34px; padding: 0; border-radius: 10px; }
.mv-ev-tickets .ticket-price { color: var(--mv-ink); }
.mv-ev-tickets .text-success { color: var(--mv-ink) !important; }
.mv-ev-tickets .add-to-basket-modal-btn.d-md-inline-block { display: none !important; }
.mv-ev-tickets .d-md-none { display: block !important; }
.mv-ev-tickets .add-to-basket-modal-btn { min-height: 44px; }
.mv-hint { margin: 6px 0 0; color: var(--mv-muted); font-size: 12px; }
@media (max-width: 960px) {
  /* minmax(0,1fr) a min-width:0 (audit 12. 10.): široký obsah popisu nesmie roztiahnuť stránku pri 320 px */
  .mv-ev-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .mv-ev-layout > *, .mv-ev-main > * { min-width: 0; }
  /* na mobile a tablete: plagát, údaje, vstupenky, až potom popis a miesto (3. 10.) */
  .mv-ev-main { display: contents; }
  .mv-ev-poster { order: 1; } .mv-ev-info { order: 2; } .mv-ev-tickets { order: 3; position: static; } .mv-ev-about { order: 4; } .mv-ev-place { order: 5; }
  .mv-ev-price { display: flex; }
}
@media (max-width: 680px) {
  .mv-ev-info, .mv-ev-tickets, .mv-ev-place { padding: 18px; }
  .mv-ev-poster { border-radius: 20px; }
  .mv-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- košík ---------- */
.mv-account-box { padding: 14px 16px; border: 1px solid #cfdcff; border-radius: 14px; background: #eef3ff; }
/* nákup na firmu (5. 10.): nenápadná voľba pod adresou v pokladni */
.mv-company-box { margin-top: 4px; padding: 12px 16px; border: 1px dashed var(--mv-line, #d6d3cc); border-radius: 14px; }
.mv-company-box .form-label { font-size: .9rem; }
.mv-company-box.mv-company-plain { border: 0; padding: 0; }      /* 14. 10.: nenápadný riadok v pokladni */
.mv-cart-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; padding-block: 14px 6px; }
.mv-cart-head h1 { font-size: clamp(34px, 4vw, 52px); }
.mv-more-link { font-weight: 800; text-decoration: none; }
/* audit BUG-0512 (17. 10.): samostatné textové odkazy aspoň 24 px vysoké (WCAG 2.5.8) */
.mv-more-link, .mv-tap { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; padding-block: 2px; }
.basket-layout .card, #basket-main > .card, #pokladna { border-radius: var(--mv-radius) !important; box-shadow: 0 1px 0 rgba(11, 21, 48, .05) !important; }
.basket-summary-card { box-shadow: var(--mv-shadow) !important; }
.basket-table td { border-color: #edf0f2; }
.basket-table img { border-radius: 12px; }
.basket-minus, .basket-plus { border-radius: 10px !important; }
#pokladna h2 { color: var(--mv-ink) !important; }
#checkoutSubmitBtn { min-height: 54px; font-size: 16px; }
.basket-grand { font-size: 26px !important; letter-spacing: -.02em; }

/* ---------- dôvera a pätička ---------- */
.mv-trust { padding-block: 40px 52px; }
.mv-trust-inner { display: grid; grid-template-columns: .9fr repeat(3, 1fr); overflow: hidden; border-radius: var(--mv-radius); background: var(--mv-ink); color: #fff; }
.mv-trust-intro, .mv-trust-item { padding: 26px; }
.mv-trust-intro { background: var(--mv-blue); }
.mv-trust-intro h2 { color: #fff; font-size: 26px; margin: 0; }
.mv-trust-intro p { margin: 9px 0 0; color: #d9e5ff; font-size: 13px; }
.mv-trust-item { border-left: 1px solid rgba(255, 255, 255, .14); }
.mv-trust-item i { color: var(--mv-lime); font-size: 24px; }
.mv-trust-item h3 { color: #fff; margin: 12px 0 4px; font-size: 14px; letter-spacing: -.01em; }
.mv-trust-item p { margin: 0; color: #b7c0cf; font-size: 12px; }
.mv-trust-item a { color: var(--mv-lime); }
.mv-footer { padding-block: 36px 30px; border-top: 1px solid var(--mv-line); color: var(--mv-muted); font-size: 14px; }
.mv-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.mv-footer h3 { margin: 4px 0 12px; font-size: 15px; letter-spacing: -.01em; }
.mv-footer ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.mv-footer h3 + ul { margin-top: 0; }
.mv-footer a, .mv-link-button { color: var(--mv-ink-soft); text-decoration: none; }
.mv-footer a:hover, .mv-link-button:hover { color: var(--mv-blue); }
.mv-link-button { border: 0; padding: 0; background: none; font: inherit; }
.mv-footer img { height: 36px; width: auto; }
.mv-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--mv-line); font-size: 13px; }
@media (max-width: 960px) {
  .mv-trust-inner { grid-template-columns: repeat(2, 1fr); }
  .mv-trust-intro { grid-column: span 2; }
  .mv-trust-item:nth-child(2) { border-left: 0; }
  .mv-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .mv-trust-inner { grid-template-columns: 1fr; }
  .mv-trust-intro { grid-column: auto; }
  .mv-trust-item { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
  .mv-footer-grid { grid-template-columns: 1fr; }
}

/* ---------- lišta rezervácie a staré prvky šablóny ---------- */
#reservation-timer-bar { border-radius: 0; font-weight: 600; }
.back-top { border-radius: 12px; }
/* 20. 10. (kontrola N6): na mobile šípka nahor nesmie byť pri tlačidle „Kúpiť a zaplatiť“ – v košíku sa skryje,
   nad prilepenou lištou (podujatie, košík; trieda mv-sticky-on) sa posunie vyššie */
@media (max-width: 991.98px) {
  body.mv-has-sticky-pay .back-top { display: none !important; }
  body.mv-sticky-on .back-top { bottom: calc(160px + env(safe-area-inset-bottom, 0px)) !important; }
}
.breadcrumb { font-size: 13px; }
.mv-fact-sub { display: block; font-weight: 400; color: var(--mv-muted); font-size: .9em; }

/* ---------- podstránky: kontakt a profil (3. 10.) ---------- */
.mv-page { padding-block: 28px 64px; }   /* 14. 10.: bez omrviniek – odstup od hlavičky */
.mv-page-head { max-width: 680px; padding-block: 28px 22px; }
.mv-page > .mv-page-head:first-child { padding-top: 8px; }   /* 14. 10.: odstup už dáva .mv-page */
.mv-page-head h1 { font-size: clamp(30px, 4vw, 44px); margin-bottom: 8px; }
.mv-page-head p { color: var(--mv-muted); margin: 0; }
.mv-panel { background: var(--mv-surface); border: 1px solid var(--mv-line); border-radius: var(--mv-radius); padding: clamp(20px, 3vw, 32px); min-width: 0; }
.mv-panel h2 { font-size: 20px; margin-bottom: 12px; }
.mv-panel-ink { background: var(--mv-ink); border-color: var(--mv-ink); color: #dfe5ee; }
.mv-panel-ink h2 { color: #fff; }
.mv-panel-ink a { color: var(--mv-lime); }
.mv-contact, .mv-profile-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.mv-contact-side { display: grid; gap: 20px; min-width: 0; }
.mv-form { display: grid; gap: 18px; }
.mv-form h3 { font-size: 16px; margin: 8px 0 -4px; }
.mv-form .form-label { font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.mv-form .form-control, .mv-form .form-select { border-radius: 12px; padding: 11px 14px; border-color: #d5d9e0; background: var(--mv-surface); }
.mv-form .form-control:focus { border-color: var(--mv-blue); box-shadow: 0 0 0 4px rgba(0, 84, 253, .12); }
.mv-form .form-control[readonly] { background: var(--mv-soft); color: var(--mv-muted); }
.mv-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mv-form-row-3 { grid-template-columns: 1.4fr .8fr 1fr; }
.mv-form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding-top: 4px; }
.mv-optional { font-weight: 400; color: var(--mv-muted); font-size: 12px; margin-left: 4px; }
.mv-help { display: grid; gap: 14px; margin: 0; }
.mv-help dt { font-size: 15px; }
.mv-help dd { margin: 2px 0 0; color: var(--mv-muted); font-size: 14px; }

.mv-profile-head { display: flex; align-items: center; gap: 16px; padding-block: 22px 18px; }
.mv-profile-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; background: var(--mv-blue); color: #fff; font-size: 26px; font-weight: 800; }
.mv-profile-who { min-width: 0; flex: 1; }
.mv-profile-who h1 { font-size: clamp(24px, 3vw, 32px); margin: 0; overflow-wrap: anywhere; }
.mv-profile-who p { margin: 2px 0 0; color: var(--mv-muted); overflow-wrap: anywhere; }
.mv-tabs { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--mv-line); margin-bottom: 22px; }
.mv-tabs a { display: inline-flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 3px solid transparent; margin-bottom: -1px; color: var(--mv-ink-soft); font-weight: 700; text-decoration: none; white-space: nowrap; }
.mv-tabs a:hover { color: var(--mv-ink); }
.mv-tabs a.is-active { color: var(--mv-blue); border-bottom-color: var(--mv-blue); }

.mv-orders { display: grid; gap: 12px; }
.mv-order { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; background: var(--mv-surface); border: 1px solid var(--mv-line); border-radius: 18px; }
.mv-order { flex-wrap: wrap; }   /* 21. 10.: tlačidlá sa zalomia pod údaje, názov sa nestláča */
.mv-order-main { min-width: min(100%, 300px); flex: 1 1 300px; }
.mv-order-wallet { flex: 1 0 100%; border-top: 1px solid var(--mv-line); padding-top: 10px; }
.mv-order-top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.mv-order-title { font-size: 18px; margin: 0; overflow-wrap: anywhere; }
.mv-order-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 6px 0 0; color: var(--mv-muted); font-size: 14px; }
.mv-order-price { color: var(--mv-ink); font-weight: 800; }
.mv-order-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.mv-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.mv-empty { text-align: center; padding-block: 48px; }
.mv-empty > i { font-size: 40px; color: var(--mv-blue); }
.mv-empty p { color: var(--mv-muted); max-width: 420px; margin: 0 auto 18px; }

@media (max-width: 960px) {
  .mv-contact, .mv-profile-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .mv-form-row, .mv-form-row-3 { grid-template-columns: 1fr; }
  .mv-order { flex-direction: column; align-items: stretch; }
  .mv-order-actions { justify-content: stretch; }
  .mv-order-actions .btn { flex: 1; }
  .mv-profile-head { flex-wrap: wrap; }
  .mv-profile-avatar { width: 52px; height: 52px; font-size: 22px; }
  .mv-profile-logout { width: 100%; }
}

/* čas rezervácie na košíku (5. 10.): červený štítok nad ikonou, počet vstupeniek vpravo hore */
.mv-basket { font-size: 23px; margin-left: 20px; }
.mv-resv { position: absolute; top: 2px; right: 27px; padding: 0 5px; border: 2px solid var(--mv-paper); border-radius: 999px; background: #f62128; color: #fff; line-height: 15px; white-space: nowrap; }
.mv-resv[hidden] { display: none !important; }
.mv-resv strong { font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; color: #fff; }
.mv-resv.is-ending { animation: mv-resv-pulse 1s ease-in-out infinite; }
@keyframes mv-resv-pulse { 50% { opacity: .55; } }

/* právne texty (5. 10. 2026): tabuľky v ochrane údajov s okrajmi, na mobile sa posúvajú vo vnútri */
.static-content h3 { margin-top: 1.6rem; font-size: 1.3rem; }
.static-content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: .5rem 0 1.2rem; font-size: .92rem; }
.static-content th, .static-content td { padding: 8px 10px; border: 1px solid var(--mv-line); vertical-align: top; min-width: 120px; }
.static-content th { background: var(--mv-surface, #f6f6f4); text-align: left; }

/* logo značky (web manuál 5. 10.): 36 px, na mobile 30 px, pod 360 px 28 px */
img.mv-logo { height: 36px; width: auto; }
@media (max-width: 680px) { img.mv-logo { height: 30px; } }
@media (max-width: 360px) { img.mv-logo { height: 28px; } }
/* YouTube video vložené tlačidlom v editore (Quill, 5. 10.) – na celú šírku 16:9 */
iframe.ql-video { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 14px; margin: 1rem 0; }
/* Turné (5. 10.): zoznam miest a návrat na výber */
.mv-tour-list { display: grid; gap: 10px; }
.mv-tour-date { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--mv-line); border-radius: 14px; background: #fff; color: var(--mv-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.mv-tour-date:hover { border-color: var(--mv-blue); box-shadow: 0 6px 18px rgba(0, 84, 253, .12); color: var(--mv-ink); }
.mv-tour-date.is-off { opacity: .7; }
.mv-tour-when { display: grid; text-align: center; line-height: 1.1; padding: 6px 0; border-radius: 10px; background: var(--mv-paper, #f3f5fa); }
.mv-tour-when strong { font-size: 18px; } .mv-tour-when small { color: var(--mv-muted); font-size: 11px; }
.mv-tour-where { display: grid; min-width: 0; } .mv-tour-where strong { font-size: 16px; }
.mv-tour-where small { color: var(--mv-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mv-tour-state { white-space: nowrap; text-align: right; }
.mv-tour-back { display: inline-flex; align-items: center; margin-bottom: 10px; font-weight: 700; text-decoration: none; }
.mv-tour-picked { display: grid; margin-bottom: 14px; padding: 10px 14px; border-radius: 12px; background: var(--mv-paper, #f3f5fa); }
.mv-tour-picked span { color: var(--mv-muted); font-size: 14px; }
/* Usporiadateľ na konci stránky podujatia ako na vstupenke (5. 10.) */
.mv-ev-organizer { margin: 28px 0 8px; padding-top: 14px; border-top: 1px solid var(--mv-line); color: var(--mv-muted); font-size: 12px; line-height: 1.5; }


/* =====================================================================
   16. 10. 2026 – opravy po audite (oblasť web: prístupnosť a UX)
   ===================================================================== */
/* BUG-0510: odkaz „Preskočiť na obsah“ – viditeľný iba pri fokuse klávesnicou */
.mv-skip-link { position: absolute; left: 12px; top: -60px; z-index: 2147483647; padding: 10px 16px; border-radius: 10px;
  background: var(--mv-ink); color: #fff; font-weight: 800; text-decoration: none; }
.mv-skip-link:focus, .mv-skip-link:focus-visible { top: 12px; width: auto; height: auto; clip: auto; margin: 0; overflow: visible; color: #fff; outline: 3px solid var(--mv-lime); }
main#obsah:focus { outline: none; }

/* BUG-0505: kontrast textu aspoň 4,5:1 */
:root { --bs-warning-text-emphasis: #664d03; --bs-secondary-text-emphasis: #495057; }
.alert-warning { --bs-alert-color: #664d03; --bs-alert-link-color: #0040c0; }
.alert-warning .text-muted { color: #5c4a12 !important; }
.alert-danger { --bs-alert-link-color: #0040c0; }
.alert-warning a:not(.btn), .alert-danger a:not(.btn) { color: #0040c0; text-decoration: underline; }
.alert-secondary { --bs-alert-color: #41464b; }
.form-text { color: #5c636a; }
.text-warning-emphasis { color: #664d03 !important; }
.mv-card-badge { background: #d6111a; font-size: 12px; }
.mv-resv { background: #d6111a; }
.mv-resv strong { font-size: 11px; }
.badge.text-success { color: #0a6b4d !important; }
.badge.text-warning { color: #6b4f00 !important; }
.badge.text-danger { color: #a51d2d !important; }
.mv-card-badges span { font-size: 11px; }

/* BUG-0509: odkazy v texte sa nelíšia iba farbou */
p a:not(.btn):not(.mv-card-buy), .small a:not(.btn), .form-text a, .mv-ev-description a, .static-content a { text-decoration: underline; text-underline-offset: 2px; }

/* BUG-0512: ťukacie plochy aspoň 24 × 24 px */
.mv-cat-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 0; }
a.mv-cat-tag { padding: 4px 8px 4px 0; }
.form-check-input:not(.mv-cc-switch) { width: 24px; height: 24px; margin-top: 0; flex-shrink: 0; }
.form-check:not(.form-switch) { padding-left: 2rem; } .form-check:not(.form-switch) .form-check-input { margin-left: -2rem; }
.form-check-input[type="checkbox"] + .form-check-label, .form-check-input[type="radio"] + .form-check-label { padding-left: .2rem; }
.mv-card-title a { display: inline-block; min-height: 24px; }
#sm-toggle { min-height: 32px; padding: 4px 8px !important; }
.mv-footer li a, .mv-footer .mv-link-button { display: inline-block; min-height: 24px; padding-block: 2px; }
.mv-footer-grid > div > a:first-child { display: inline-block; }
.mv-nav-links a { display: inline-block; padding-block: 4px; }
.mv-sm a.small, a.small { display: inline-block; min-height: 24px; padding-block: 3px; }

/* BUG-0505: farba kategórie (z adminu) iba na ikone – text štítka má vždy dostatočný kontrast */
.mv-cat-tag { color: var(--mv-ink-soft) !important; }
.mv-cat-tag > i { color: var(--mv-cat-color, var(--mv-blue)); }

/* BUG-0500: vypredané podujatie */
.mv-ev-soldout strong { color: #a51d2d; }
.mv-card-soldout { color: #a51d2d; font-weight: 800; }
@media (max-width: 991.98px) { .mv-ev-price.mv-ev-soldout { display: flex; } }

/* BUG-0513: lupa v hlavičke na mobile otvorí pole na hľadanie */
.mv-search-btn, .mv-mobile-search { display: none; }
@media (max-width: 680px) {
  .mv-search-btn { display: inline-grid; }
  .mv-mobile-search.collapse.show, .mv-mobile-search.collapsing { display: block; }
  /* pole pod hlavičkou mimo riadku s logom a ikonami (hlavička ostáva v jednom riadku) */
  .mv-mobile-search { position: absolute; left: 0; right: 0; top: 100%; z-index: 1031; padding: 8px 12px 12px;
    background: var(--mv-paper); border-bottom: 1px solid var(--mv-line); }
  .mv-mobile-search i { position: absolute; left: 26px; top: 30px; transform: translateY(-50%); color: var(--mv-muted); }
  .mv-mobile-search input { height: 44px; padding-left: 40px; border-radius: 13px; font-size: 16px; }
}

/* BUG-0803: nadpisy z popisu podujatia sú o úroveň nižšie (H1 je iba názov podujatia) */
.mv-ev-description h2 { font-size: 1.5rem; } .mv-ev-description h3 { font-size: 1.3rem; }
.mv-ev-description h4 { font-size: 1.15rem; } .mv-ev-description h5, .mv-ev-description h6 { font-size: 1rem; }

/* BUG-0519: odstránenie položky z košíka na mobile – nenápadný odkaz, nie veľké červené tlačidlo */
.mv-basket-del-row td { border-top: 0; }
.mv-basket-del { min-height: 44px; padding: 8px 4px; text-decoration: underline; }

/* BUG-0515: číslo objednávky po platbe */
.mv-order-no { font-size: 1.1rem; letter-spacing: .02em; }
.basket-delete-item.btn-link { min-width: 32px; min-height: 32px; }   /* BUG-0512: kôš v košíku na PC */
/* BUG-0513: lupa navyše v hlavičke – na úzkom mobile užšie ikony, aby logo a ikony ostali v jednom riadku */
@media (max-width: 420px) {
  .mv-nav-actions { gap: 0; }
  .mv-nav-actions .mv-icon-button { min-width: 36px; }
}
