/* ==========================================================================
   Mozdulj Nyíregyháza! – téma
   A színek a beállításokból érkeznek (layout.php inline :root blokk).
   ========================================================================== */

:root {
    --mn-primary: #0690cf;
    --mn-secondary: #e80782;
    --mn-c1: #0376ba;
    --mn-c2: #acc90d;
    --mn-c3: #f0a03a;
    --mn-c4: #2e3057;
    --mn-dark: #333;
    --mn-muted: #6b7280;
    --mn-light: #f1f5f9;
    --mn-highlight: #c9e7f2;
    --mn-radius: 14px;
    --mn-shadow: 0 10px 30px rgba(16, 24, 40, .08);
    --mn-shadow-lg: 0 18px 45px rgba(16, 24, 40, .14);
}

* {
    scroll-behavior: smooth;
}

/* Reszponzív alapok: semmi ne legyen szélesebb a szülőjénél. Ez az X tengelyű
   túlcsordulás leggyakoribb forrása mobilon (nagy méretű logók, képek). */
img,
svg,
video,
iframe,
embed,
object {
    max-width: 100%;
}

img,
video {
    height: auto;
}

body {
    font-family: 'Work Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    color: var(--mn-dark);
    background: #fff;
    overflow-x: hidden;
}

a {
    color: var(--mn-primary);
    text-decoration: none;
}

a:hover {
    color: var(--mn-secondary);
}

.text-primary-mn { color: var(--mn-primary) !important; }
.bg-light-mn { background: var(--mn-light); }

.btn-mn {
    background: var(--mn-primary);
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: .7rem 1.6rem;
    font-weight: 600;
    letter-spacing: .3px;
    transition: background .2s ease, transform .2s ease;
}

.btn-mn:hover,
.btn-mn:focus {
    background: var(--mn-dark);
    color: #fff;
    transform: translateY(-2px);
}

.btn-mn-outline {
    background: transparent;
    border: 2px solid var(--mn-primary);
    color: var(--mn-primary);
    border-radius: 999px;
    padding: .6rem 1.5rem;
    font-weight: 600;
}

.btn-mn-outline:hover {
    background: var(--mn-primary);
    color: #fff;
}

.btn-mn-pink {
    background: var(--mn-secondary);
}

.btn-mn-pink:hover {
    background: var(--mn-dark);
}

/* --------------------------------------------------------------- szekciók */
.mn-section {
    padding: 70px 0;
}

.mn-heading {
    text-align: center;
    margin-bottom: 42px;
}

.mn-heading h2 {
    font-weight: 700;
    font-size: 2.1rem;
    margin-bottom: .35rem;
}

.mn-heading h2::after {
    content: '';
    display: block;
    width: 70px;
    height: 4px;
    border-radius: 4px;
    background: var(--mn-primary);
    margin: .8rem auto 0;
}

.mn-heading p {
    color: var(--mn-muted);
    margin: 0;
}

/* ---------------------------------------------------------------- navbar */
.mn-navbar {
    background: #fff;
    box-shadow: 0 2px 18px rgba(0, 0, 0, .07);
    position: sticky;
    top: 0;
    z-index: 1030;
}

.mn-navbar .navbar-brand img {
    max-height: 56px;
}

.mn-navbar .navbar-brand span {
    font-weight: 700;
    color: var(--mn-primary);
    font-size: 1.15rem;
    line-height: 1.1;
}

.mn-navbar .nav-link {
    text-transform: uppercase;
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .5px;
    color: var(--mn-dark);
    padding: 1.4rem .85rem !important;
    position: relative;
}

.mn-navbar .nav-link:hover,
.mn-navbar .nav-link.active {
    color: var(--mn-primary);
}

.mn-navbar .nav-link.active::after {
    content: '';
    position: absolute;
    left: .85rem;
    right: .85rem;
    bottom: 1rem;
    height: 3px;
    border-radius: 3px;
    background: var(--mn-primary);
}

/* ------------------------------------------------------------------ hero */
.mn-hero {
    position: relative;
    min-height: 560px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(135deg, #0b6fa4, #0690cf) center/cover no-repeat;
    color: #fff;
}

.mn-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .55));
}

.mn-hero .mn-hero-inner {
    position: relative;
    z-index: 2;
    padding: 90px 15px;
}

.mn-hero h1 {
    font-size: clamp(2.2rem, 6vw, 4.2rem);
    font-weight: 700;
    text-transform: uppercase;
    text-shadow: 2px 2px 12px rgba(0, 0, 0, .85);
    margin-bottom: .6rem;
}

.mn-hero h2 {
    font-size: clamp(1.05rem, 2.6vw, 1.6rem);
    font-weight: 600;
    color: #fff;
    text-shadow: 1px 1px 8px rgba(0, 0, 0, .7);
    margin-bottom: 2rem;
}

/* oldalsó alakok a hero-ban (mobilon rejtve) */
.mn-hero-figure {
    position: absolute;
    z-index: 2;
    pointer-events: none;
}

.mn-hero-figure.left {
    left: 0;
    bottom: 0;
    max-height: 78%;
}

.mn-hero-figure.right {
    right: 0;
    bottom: 0;
    max-height: 52%;
}

@media (max-width: 1199.98px) {
    .mn-hero-figure {
        max-height: 45% !important;
        opacity: .85;
    }
}

@media (max-width: 991.98px) {
    .mn-hero-figure {
        display: none;
    }
}

/* visszaszámláló */
.mn-countdown {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.mn-countdown .box {
    min-width: 96px;
    padding: 14px 10px;
    border-radius: var(--mn-radius);
    box-shadow: var(--mn-shadow-lg);
}

.mn-countdown .num {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.mn-countdown .name {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: .9;
}

.mn-countdown-label {
    margin-bottom: .8rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: .8rem;
    opacity: .9;
}

/* --------------------------------------------------------- feature kártyák */
.mn-features {
    margin-top: -60px;
    position: relative;
    z-index: 5;
}

/* Az eredeti oldal alakzata: aszimmetrikus lekerekítés + levágott alsó él. */
.mn-feature {
    display: block;
    padding: 30px 20px 46px;
    text-align: center;
    color: #fff;
    height: 100%;
    border-radius: 65px 65px 290px 95px;
    clip-path: polygon(100% 0%, 100% 85%, 0% 100%, 0% 100%, 0% 0%);
    transition: transform .4s ease, background .4s ease;
}

.mn-feature:hover {
    transform: scale(1.06);
    background: var(--mn-dark) !important;
    color: #fff;
}

.mn-feature i {
    font-size: 3rem;
    display: block;
    margin-bottom: .8rem;
}

.mn-feature img {
    width: 100px;
    height: 100px;
    object-fit: contain;
    padding: 10px;
    margin-bottom: .8rem;
}

.mn-feature h4 {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 1.35rem;
    letter-spacing: .6px;
    margin: 0;
}

/* -------------------------------------------------------------- köszöntő */
.mn-welcome-card {
    background: #fff;
    border-radius: var(--mn-radius);
    box-shadow: var(--mn-shadow);
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
}

.mn-welcome-card .left {
    flex: 1 1 480px;
    padding: 46px;
}

.mn-welcome-card .right {
    flex: 1 1 320px;
    min-height: 320px;
    background: var(--mn-light) center/cover no-repeat;
}

.mn-welcome-card h2 {
    font-weight: 700;
    margin-bottom: .3rem;
}

.mn-welcome-card h3 {
    font-size: 1.05rem;
    color: var(--mn-primary);
    font-weight: 600;
    margin-bottom: 1.2rem;
}

.mn-welcome-card .lead-text {
    color: #4b5563;
    line-height: 1.75;
}

.mn-welcome-card .lead-text.collapsed {
    max-height: 280px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent);
    mask-image: linear-gradient(180deg, #000 60%, transparent);
}

/* ------------------------------------------------------------ mozgásrend */
.mn-day-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 32px;
    padding: 0;
    list-style: none;
}

.mn-day-tabs .nav-link {
    border-radius: 999px;
    padding: .6rem 1.4rem;
    font-weight: 600;
    text-transform: uppercase;
    font-size: .8rem;
    letter-spacing: .6px;
    color: var(--mn-dark);
    background: #fff;
    border: 1px solid #dbe4ec;
    box-shadow: 0 2px 6px rgba(16, 24, 40, .06);
    transition: all .18s ease;
}

.mn-day-tabs .nav-link:hover {
    border-color: var(--mn-primary);
    color: var(--mn-primary);
    transform: translateY(-1px);
}

.mn-day-tabs .nav-link.active {
    background: var(--mn-primary);
    border-color: var(--mn-primary);
    color: #fff;
    box-shadow: 0 8px 18px rgba(6, 144, 207, .35);
}

.mn-day-tabs .nav-link.active .count {
    color: #fff;
}

.mn-day-tabs .nav-link .count {
    display: inline-block;
    margin-left: .4rem;
    font-size: .72rem;
    opacity: .75;
}

.mn-schedule-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    background: #fff;
    border: 1px solid #e8eef3;
    border-radius: var(--mn-radius);
    margin-bottom: 14px;
    overflow: hidden;
    transition: box-shadow .2s ease, transform .2s ease;
}

.mn-schedule-row:hover {
    box-shadow: var(--mn-shadow);
    transform: translateY(-2px);
}

.mn-schedule-row .left {
    flex: 0 0 190px;
    padding: 20px;
    text-align: center;
    background: var(--mn-light);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .3rem;
}

.mn-schedule-row .left .time {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--mn-primary);
}

.mn-schedule-row .left .icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--mn-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.mn-schedule-row .right {
    flex: 1 1 300px;
    padding: 18px 22px;
}

.mn-schedule-row .right h5 {
    font-size: .84rem;
    color: var(--mn-muted);
    margin-bottom: .25rem;
}

.mn-schedule-row .right h4 {
    font-size: 1.08rem;
    font-weight: 700;
    margin-bottom: .4rem;
}

.mn-schedule-row .right p {
    color: #5b6472;
    font-size: .92rem;
    margin-bottom: .6rem;
}

.mn-schedule-row.is-highlighted .left {
    background: var(--mn-highlight);
}

.mn-badge-recipe {
    background: var(--mn-c2);
    color: #fff;
    border-radius: 999px;
    font-size: .68rem;
    padding: .2rem .7rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .4px;
}

/* foglalás jelzések */
.mn-seats {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .82rem;
    font-weight: 600;
    border-radius: 999px;
    padding: .25rem .8rem;
}

.mn-seats-free {
    background: #e7f7ed;
    color: #12784a;
}

.mn-seats-few {
    background: #fff4e5;
    color: #a35b00;
}

.mn-seats-full {
    background: #fdeaea;
    color: #b4232a;
}

/* -------------------------------------------------------------- CTA sáv */
.mn-cta {
    background: linear-gradient(120deg, var(--mn-primary), var(--mn-c1));
    color: #fff;
    text-align: center;
    padding: 60px 0;
}

.mn-cta h2 {
    font-weight: 700;
}

.mn-cta .btn-mn {
    background: #fff;
    color: var(--mn-primary);
}

.mn-cta .btn-mn:hover {
    background: var(--mn-dark);
    color: #fff;
}

/* ------------------------------------------------------------ hír kártyák */
.mn-card {
    background: #fff;
    border-radius: var(--mn-radius);
    box-shadow: var(--mn-shadow);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}

.mn-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--mn-shadow-lg);
}

.mn-card .thumb {
    height: 190px;
    background: var(--mn-light) center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b6c2cf;
    font-size: 2.4rem;
}

.mn-card .body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.mn-card .body h3 {
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: .5rem;
}

.mn-card .body p {
    color: #5b6472;
    font-size: .9rem;
    flex: 1;
}

.mn-card .date {
    font-size: .78rem;
    color: var(--mn-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: .4rem;
}

/* ---------------------------------------------------------- esemény doboz */
.mn-event {
    border-radius: var(--mn-radius);
    border: 1px solid #e3ecf2;
    background: #fff;
    padding: 24px;
    height: 100%;
    box-shadow: var(--mn-shadow);
}

.mn-event .dates {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: .8rem 0;
}

.mn-event .date-chip {
    border: 1px solid var(--mn-primary);
    color: var(--mn-primary);
    border-radius: 999px;
    padding: .25rem .8rem;
    font-size: .82rem;
    font-weight: 600;
}

.mn-event .date-chip.full {
    border-color: #d9534f;
    color: #b4232a;
    background: #fdeaea;
}

/* -------------------------------------------------------------- hírlevél */
.mn-newsletter {
    background: linear-gradient(120deg, var(--mn-c4), var(--mn-c1));
    color: #fff;
    padding: 64px 0;
    text-align: center;
}

.mn-newsletter form {
    display: flex;
    max-width: 520px;
    margin: 1.5rem auto 0;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
}

.mn-newsletter input[type="email"] {
    flex: 1 1 260px;
    border: 0;
    border-radius: 999px;
    padding: .75rem 1.3rem;
}

/* Adatkezelési elfogadás: teljes szélességben, a mező és a gomb alatt. */
.mn-newsletter-privacy {
    flex: 1 0 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    margin: .35rem 0 0;
    padding: 0;
    font-size: .85rem;
    text-align: left;
}

.mn-newsletter-privacy .form-check-input {
    flex: 0 0 auto;
    margin: .2rem 0 0;
    border-color: rgba(255, 255, 255, .7);
    background-color: rgba(255, 255, 255, .2);
}

.mn-newsletter-privacy .form-check-input:checked {
    background-color: var(--mn-c2);
    border-color: var(--mn-c2);
}

.mn-newsletter-privacy .form-check-input:focus {
    box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .35);
}

.mn-newsletter-privacy label {
    color: rgba(255, 255, 255, .92);
}

.mn-newsletter-privacy a {
    color: #fff;
    text-decoration: underline;
}

.mn-newsletter-privacy a:hover {
    color: var(--mn-c2);
}

/* ------------------------------------------------------------ támogatók */
/* ------------------------------------ tétel tudnivaló (pl. belépőjegy ára) */
.mn-item-note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
    padding: 6px 13px;
    border-radius: 999px;
    background: var(--mn-light);
    color: var(--mn-muted);
    font-size: .86rem;
    line-height: 1.35;
    text-align: left;
}

.mn-item-note i {
    flex: 0 0 auto;
    font-size: 1rem;
}

/* Belépőjegyes tudnivaló: hangsúlyosabb, hogy fizetős alkalomnál feltűnjön. */
.mn-item-note.is-price {
    background: rgba(240, 160, 58, .16);
    color: #8a5410;
    font-weight: 600;
}

.mn-item-note.is-price i {
    color: var(--mn-c3);
}

.mn-partner {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
    padding: 18px;
    background: #fff;
    border-radius: var(--mn-radius);
    box-shadow: var(--mn-shadow);
    text-align: center;
    font-weight: 600;
    color: var(--mn-muted);
}

.mn-partner img {
    max-height: 70px;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .8;
    transition: all .25s ease;
}

.mn-partner:hover img {
    filter: none;
    opacity: 1;
}

/* ------------------------------------------------------------ oldal fejléc */
.mn-page-banner {
    background: linear-gradient(120deg, var(--mn-c1), var(--mn-primary)) center/cover no-repeat;
    color: #fff;
    padding: 80px 0 60px;
    text-align: center;
    position: relative;
}

.mn-page-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .35);
}

.mn-page-banner .container {
    position: relative;
    z-index: 2;
}

.mn-page-banner h1 {
    font-weight: 700;
    text-shadow: 1px 2px 10px rgba(0, 0, 0, .5);
}

.mn-page-banner .breadcrumb {
    justify-content: center;
    margin: 0;
}

.mn-page-banner .breadcrumb a,
.mn-page-banner .breadcrumb-item.active {
    color: #fff;
    opacity: .9;
}

.mn-page-banner .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .6);
}

/* ---------------------------------------------------------------- footer */
.mn-footer {
    background: var(--mn-c4);
    color: #cdd3e1;
    padding: 54px 0 26px;
    text-align: center;
}

.mn-footer a {
    color: #fff;
}

.mn-footer a:hover {
    color: var(--mn-c3);
}

.mn-footer .social {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-bottom: 26px;
}

.mn-footer .social a {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .3);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s ease;
}

.mn-footer .social a:hover {
    background: var(--mn-primary);
    border-color: var(--mn-primary);
}

.mn-footer .footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin-bottom: 22px;
    text-transform: uppercase;
    font-size: .8rem;
    letter-spacing: .5px;
}

.mn-footer .copyright {
    font-size: .82rem;
    opacity: .75;
}

/* ------------------------------------------------------------- foglalás */
.mn-booking-box {
    background: #fff;
    border-radius: var(--mn-radius);
    box-shadow: var(--mn-shadow);
    padding: 30px;
}

.mn-occurrence-list .list-group-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.mn-scroll-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--mn-primary);
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: var(--mn-shadow-lg);
    z-index: 1040;
}

.mn-scroll-top.show {
    display: flex;
}

/* ------------------------------------------------------------- reszponzív */
@media (max-width: 991.98px) {
    .mn-features {
        margin-top: 30px;
    }

    .mn-welcome-card .left {
        padding: 30px;
    }

    .mn-schedule-row .left {
        flex: 1 1 100%;
        flex-direction: row;
        justify-content: flex-start;
        gap: .8rem;
        padding: 14px 18px;
    }
}

@media (max-width: 575.98px) {
    .mn-section {
        padding: 46px 0;
    }

    .mn-countdown .box {
        min-width: 74px;
    }

    .mn-countdown .num {
        font-size: 1.5rem;
    }
}

/* -------------------------------------------------- süti-hozzájárulás (GDPR) */
.mn-cookie-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    background: #fff;
    box-shadow: 0 -6px 30px rgba(16, 24, 40, .18);
    border-top: 4px solid var(--mn-primary);
    padding: 20px 0;
}

.mn-cookie-inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 18px;
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
}

.mn-cookie-text {
    flex: 1 1 420px;
}

.mn-cookie-text h2 {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: .4rem;
}

.mn-cookie-text p {
    font-size: .86rem;
    color: #5b6472;
    margin: 0;
}

.mn-cookie-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.mn-cookie-actions .btn-link {
    color: var(--mn-muted);
    text-decoration: underline;
}

.mn-cookie-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .6);
    z-index: 1085;
}

.mn-cookie-modal {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.mn-cookie-modal[hidden] {
    display: none;
}

.mn-cookie-modal-inner {
    background: #fff;
    border-radius: var(--mn-radius);
    max-width: 620px;
    width: 100%;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    box-shadow: var(--mn-shadow-lg);
}

.mn-cookie-modal-head,
.mn-cookie-modal-foot {
    padding: 18px 22px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mn-cookie-modal-head {
    border-bottom: 1px solid #e8eef3;
    justify-content: space-between;
}

.mn-cookie-modal-head h2 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

.mn-cookie-modal-body {
    padding: 18px 22px;
    overflow-y: auto;
}

.mn-cookie-modal-foot {
    border-top: 1px solid #e8eef3;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.mn-cookie-cat {
    border: 1px solid #e8eef3;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 12px;
}

.mn-cookie-cat-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: .3rem;
}

.mn-cookie-cat-head h3 {
    font-size: .95rem;
    font-weight: 700;
    margin: 0;
}

.mn-cookie-cat p {
    font-size: .84rem;
    color: #5b6472;
    margin: 0;
}

.mn-cookie-always {
    font-size: .75rem;
    font-weight: 700;
    color: var(--mn-c2);
    text-transform: uppercase;
}

.mn-switch {
    position: relative;
    display: inline-block;
    width: 46px;
    height: 25px;
    flex: 0 0 auto;
}

.mn-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.mn-switch-slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background: #cbd5e1;
    border-radius: 999px;
    transition: background .2s ease;
}

.mn-switch-slider::before {
    content: '';
    position: absolute;
    height: 19px;
    width: 19px;
    left: 3px;
    top: 3px;
    background: #fff;
    border-radius: 50%;
    transition: transform .2s ease;
}

.mn-switch input:checked + .mn-switch-slider {
    background: var(--mn-primary);
}

.mn-switch input:checked + .mn-switch-slider::before {
    transform: translateX(21px);
}

@media (max-width: 767.98px) {
    .mn-cookie-actions {
        width: 100%;
    }

    .mn-cookie-actions .btn {
        flex: 1 1 auto;
    }
}

/* -------------------------------------- kapcsolódó mozgásforma / esemény doboz */
.mn-related {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--mn-light);
    border-left: 4px solid var(--mn-primary);
    border-radius: 10px;
    padding: 18px 20px;
}

.mn-related > i {
    font-size: 1.9rem;
    color: var(--mn-primary);
    line-height: 1;
}

.mn-related img {
    max-width: 54px;
    flex: 0 0 auto;
}

.mn-related .label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--mn-muted);
    margin-bottom: .3rem;
}

.mn-related .date-chip {
    border: 1px solid var(--mn-primary);
    color: var(--mn-primary);
    background: #fff;
    border-radius: 999px;
    padding: .2rem .7rem;
    font-size: .8rem;
    font-weight: 600;
}

.mn-related .date-chip.full {
    border-color: #d9534f;
    color: #b4232a;
    background: #fdeaea;
}

@media (max-width: 575.98px) {
    .mn-related {
        flex-direction: column;
    }
}

/* ------------------------------- foglalási modal: napokra bontott időpontok */
.mn-occurrence-group {
    border: 1px solid #e3ecf2;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 14px;
}

.mn-occurrence-day {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: var(--mn-light);
    border-bottom: 1px solid #e3ecf2;
    padding: .6rem 1rem;
    font-weight: 700;
    font-size: .92rem;
    color: var(--mn-c4);
}

.mn-occurrence-day.is-full {
    background: #fdeaea;
    color: #b4232a;
}

.mn-occurrence-count {
    font-weight: 600;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .5px;
    background: var(--mn-primary);
    color: #fff;
    border-radius: 999px;
    padding: .15rem .6rem;
}

.mn-occurrence-day.is-full .mn-occurrence-count {
    background: #b4232a;
}

.mn-occurrence-group .list-group-item {
    border: 0;
    border-top: 1px solid #eef3f7;
}

.mn-occurrence-group .list-group-item:first-of-type {
    border-top: 0;
}

.mn-occurrence-time {
    font-weight: 600;
    color: var(--mn-dark);
}

/* --------------- kompakt időpont-lista (esemény oldalsáv, illetve mobil) */
.mn-occurrence-head {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.mn-occurrence-list.is-compact .mn-occurrence-group {
    margin-bottom: 12px;
}

.mn-occurrence-list.is-compact .mn-occurrence-day {
    padding: .5rem .8rem;
    font-size: .84rem;
    flex-wrap: wrap;
    row-gap: 4px;
}

.mn-occurrence-list.is-compact .list-group-item {
    display: block;
    padding: .65rem .8rem;
}

/* Idő balra, szabad helyek ugyanabban a sorban jobbra igazítva. */
.mn-occurrence-list.is-compact .mn-occurrence-head {
    justify-content: space-between;
    gap: .4rem;
}

.mn-occurrence-list.is-compact .mn-occurrence-time {
    font-size: .95rem;
}

.mn-occurrence-list.is-compact .mn-seats {
    font-size: .76rem;
    padding: .2rem .6rem;
}

/* A gomb a sor alatt, teljes szélességben. */
.mn-occurrence-list.is-compact .mn-occurrence-action:not(:empty) {
    margin-top: .5rem;
}

.mn-occurrence-list.is-compact .mn-occurrence-action .btn {
    width: 100%;
}

/* Keskeny kijelzőn minden időpont-lista ugyanígy rendeződik. */
@media (max-width: 575.98px) {
    .mn-occurrence-list .list-group-item {
        display: block;
        padding: .65rem .8rem;
    }

    .mn-occurrence-list .mn-occurrence-head {
        justify-content: space-between;
        gap: .4rem;
    }

    .mn-occurrence-list .list-group-item > div:first-child:not(.mn-occurrence-head) {
        margin-bottom: .45rem;
    }

    .mn-occurrence-list .mn-occurrence-action:not(:empty) {
        margin-top: .5rem;
    }

    .mn-occurrence-list .mn-occurrence-action .btn,
    .mn-occurrence-list .list-group-item > div:last-child:not(.mn-occurrence-action) .btn {
        width: 100%;
    }

    .mn-occurrence-list .list-group-item > div:last-child:not(.mn-occurrence-action) {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: .45rem;
    }

    .mn-occurrence-day {
        font-size: .84rem;
        flex-wrap: wrap;
        row-gap: 4px;
    }
}

/* -------------------------------------------------------- videó lightbox */
.mn-video-modal .modal-content {
    border: 0;
    border-radius: var(--mn-radius);
    overflow: hidden;
}

.mn-video-modal .modal-header {
    background: var(--mn-c4);
    color: #fff;
    border-bottom: 0;
}

.mn-video-modal .modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.mn-video-modal .modal-body {
    background: #000;
}

/* ------------------------------------- kereső gomb a mobil fejlécben */
.mn-mobile-search {
    border: 0;
    background: transparent;
    color: var(--mn-dark);
    font-size: 1.25rem;
    line-height: 1;
    padding: .5rem .65rem;
    border-radius: 10px;
}

.mn-mobile-search:hover,
.mn-mobile-search:focus {
    color: var(--mn-primary);
    background: var(--mn-light);
}

/* --------------------------- mobil menügomb (három színes csík) */
.mn-toggler {
    width: 40px;
    height: 34px;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
}

.mn-toggler:focus {
    box-shadow: none;
}

.mn-toggler span {
    display: block;
    height: 3px;
    width: 100%;
    border-radius: 3px;
    transition: transform .2s ease, opacity .2s ease;
}

.mn-toggler span:nth-child(1) { background: var(--mn-c1); }
.mn-toggler span:nth-child(2) { background: var(--mn-c2); }
.mn-toggler span:nth-child(3) { background: var(--mn-c3); }

/* Nyitott menünél a felső és alsó csík X-be fordul. */
.mn-toggler[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.mn-toggler[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.mn-toggler[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* ---------------------------------------- keresési javaslatok (autocomplete) */
.mn-suggestions {
    margin-top: .75rem;
    max-height: 46vh;
    overflow-y: auto;
    border: 1px solid #e8eef3;
    border-radius: 12px;
}

.mn-suggestions[hidden] {
    display: none;
}

.mn-suggestion-group {
    padding: .5rem .9rem;
    background: var(--mn-light);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--mn-muted);
    position: sticky;
    top: 0;
    z-index: 1;
}

.mn-suggestion {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .6rem .9rem;
    border-top: 1px solid #eef3f7;
    color: var(--mn-dark);
    text-decoration: none;
}

.mn-suggestion:first-of-type {
    border-top: 0;
}

.mn-suggestion > i {
    color: var(--mn-primary);
    font-size: 1.05rem;
    line-height: 1.4;
}

.mn-suggestion-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.mn-suggestion .title {
    font-weight: 600;
    font-size: .94rem;
}

.mn-suggestion .subtitle {
    font-size: .8rem;
    color: var(--mn-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mn-suggestion:hover,
.mn-suggestion.is-active {
    background: var(--mn-light);
    color: var(--mn-primary);
}

.mn-suggestion-empty {
    padding: 1rem .9rem;
    color: var(--mn-muted);
    font-size: .9rem;
    text-align: center;
}

/* --------------------------------------- elmosott háttér a modálok mögött */
.modal-backdrop.show {
    background-color: rgba(15, 23, 42, .45);
    opacity: 1;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.mn-cookie-overlay {
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    background: rgba(15, 23, 42, .45);
}

/* --------------------------------- kerek bezáró gomb a modal sarkában */
.mn-modal-close {
    position: absolute;
    top: -16px;
    right: -16px;
    z-index: 5;
    width: 42px;
    height: 42px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--mn-secondary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
    line-height: 1;
    box-shadow: 0 8px 20px rgba(16, 24, 40, .25);
    transition: background .2s ease, transform .25s ease;
}

.mn-modal-close:hover,
.mn-modal-close:focus {
    background: var(--mn-dark);
    color: #fff;
    transform: rotate(90deg);
    outline: none;
}

/* Keskeny kijelzőn ne lógjon ki a képernyőről. */
@media (max-width: 575.98px) {
    .mn-modal-close {
        top: -12px;
        right: -6px;
        width: 38px;
        height: 38px;
    }
}

/* A görgethető modálok tartalma alapból levágná a kilógó bezáró gombot. */
.modal-dialog-scrollable .modal-content.mn-modal {
    overflow: visible;
}

.modal-dialog-scrollable .modal-content.mn-modal .modal-body {
    border-bottom-left-radius: var(--bs-modal-inner-border-radius, .5rem);
    border-bottom-right-radius: var(--bs-modal-inner-border-radius, .5rem);
}

.mn-cookie-modal-inner {
    position: relative;
}

/* -------------------------------------------- "Mozduljka program" jelölés */
.mn-badge-mozduljka {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: var(--mn-c4);
    color: #fff;
    border-radius: 999px;
    font-size: .68rem;
    padding: .2rem .7rem .2rem .3rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .4px;
    white-space: nowrap;
}

.mn-badge-mozduljka img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    padding: 1px;
}
