/* ÜresÓra CSS split: Header, desktop/mobile navigation, drawer, mobile booking CTA. Source: app.css lines 8768-10071. */
/* ═════════════════════════════════════════════════════════════════════════
   HEADER v2.0 — Modern prémium, sötét, kompakt search dropdown
   ═════════════════════════════════════════════════════════════════════════ */

/* Felülírja a régi .header-t */
.uo-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(12, 14, 19, 0.78);
    backdrop-filter: blur(18px) saturate(180%);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    color: #fff;
}
.uo-header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 14px 0;
    min-height: 68px;
}

/* ─── BAL: logo + hamburger ──────────────────────────────────────── */
.uo-header-left {
    display: flex;
    align-items: center;
    gap: 14px;
}
.uo-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 36px; height: 36px;
    padding: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
}
.uo-hamburger span {
    display: block;
    width: 100%; height: 2px;
    background: #fff;
    border-radius: 1px;
    transition: all 240ms ease;
}
.uo-logo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    transition: opacity 200ms ease;
}
.uo-logo:hover { opacity: 0.85; }
.uo-logo-word {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
}
.uo-logo-w1 { color: #fff; }
.uo-logo-w2 { color: #ff6a00; }


/* ─── KÖZÉP: kompakt search ──────────────────────────────────────── */
.uo-header-search {
    position: relative;
    max-width: 540px;
    width: 100%;
    justify-self: center;
}

.uo-search-trigger {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 10px 18px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    color: #aab1bb;
    font-family: inherit;
    cursor: pointer;
    transition: all 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.uo-search-trigger:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
}
.uo-search-trigger svg { color: var(--accent, #ff6a00); flex-shrink: 0; }

.uo-search-placeholder {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
    text-align: left;
}
.uo-search-ph-main {
    font-size: 13.5px;
    font-weight: 700;
    color: #fff;
}
.uo-search-ph-sub {
    font-size: 11.5px;
    color: #6a7180;
}

/* Search dropdown */
.uo-search-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%) translateY(-10px);
    width: min(680px, calc(100vw - 32px));
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease, transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 101;
}
.uo-header-search.uo-search-open .uo-search-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.uo-search-form { margin: 0; }
.uo-search-row {
    display: grid;
    grid-template-columns: 1.4fr 1px 1fr 1px 1fr auto;
    gap: 0;
    align-items: stretch;
    background: #f8f9fb;
    border-radius: 14px;
    padding: 6px;
}
.uo-search-field {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 14px;
    cursor: text;
    border-radius: 10px;
    transition: background 200ms ease;
    min-width: 0;
}
.uo-search-field:hover { background: #ffffff; }
.uo-search-label {
    font-size: 10.5px;
    font-weight: 700;
    color: #6a7180;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.uo-search-input,
.uo-search-select {
    width: 100%;
    padding: 0;
    background: transparent;
    border: none;
    color: #14171f;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
.uo-search-input::placeholder { color: #aab1bb; font-weight: 400; }
.uo-search-select { cursor: pointer; }
.uo-search-divider {
    width: 1px;
    background: #e8eaee;
    margin: 8px 0;
}

.uo-search-submit {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    background: var(--accent, #ff6a00);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: all 220ms ease;
    box-shadow: 0 4px 14px rgba(255, 106, 0, 0.35);
    align-self: center;
    margin-left: 6px;
}
.uo-search-submit:hover {
    background: #ff7e1f;
    transform: translateY(-1px);
}
.uo-search-submit span { display: inline; }

/* Search kategória chips */
.uo-search-cats {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #f0f1f4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.uo-search-cats-label {
    font-size: 12px;
    color: #6a7180;
    font-weight: 600;
    margin-right: 4px;
}
.uo-search-cat-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #f5f6f8;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
    color: #14171f;
    text-decoration: none;
    transition: all 200ms ease;
}
.uo-search-cat-chip:hover {
    background: rgba(255, 106, 0, 0.10);
    color: var(--accent, #ff6a00);
}
.uo-search-cat-icon {
    display: grid;
    place-items: center;
    color: var(--accent, #ff6a00);
}

/* Search backdrop */
.uo-search-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(4px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease;
    z-index: 99;
}
.uo-search-backdrop-open {
    opacity: 1;
    pointer-events: auto;
}


/* ─── JOBB: nav + actions ────────────────────────────────────────── */
.uo-header-right {
    display: flex;
    align-items: center;
    gap: 24px;
}

.uo-nav-desktop {
    display: flex;
    gap: 4px;
}
.uo-nav-link {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #aab1bb;
    text-decoration: none;
    transition: all 200ms ease;
}
.uo-nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.05);
}
.uo-nav-link-active {
    color: var(--accent, #ff6a00);
}

.uo-header-actions {
    display: flex;
    align-items: center;
    gap: 4px;
}
.uo-header-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    border: none;
    color: #fff;
    cursor: pointer;
    transition: all 220ms cubic-bezier(0.16, 1, 0.3, 1);
    text-decoration: none;
    padding: 0;
}
.uo-header-icon-btn:hover {
    background: rgba(255, 255, 255, 0.10);
    transform: translateY(-1px);
}

/* User menu (asztal) */
.uo-user-menu {
    position: relative;
}
.uo-user-trigger {
    background: transparent;
    padding: 2px;
}
.uo-user-avatar {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff8a3d, #ff6a00);
    color: #fff;
    display: grid; place-items: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}
.uo-user-avatar-lg {
    width: 52px; height: 52px;
    font-size: 18px;
}

.uo-user-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 280px;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
    padding: 16px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: all 220ms cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 101;
}
.uo-user-menu.uo-user-menu-open .uo-user-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.uo-user-dropdown-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
}
.uo-user-dropdown-name {
    font-size: 14px;
    font-weight: 800;
    color: #14171f;
    margin-bottom: 2px;
}
.uo-user-dropdown-email {
    font-size: 12px;
    color: #6a7180;
}
.uo-user-dropdown-divider {
    height: 1px;
    background: #f0f1f4;
    margin: 8px 0;
}
.uo-user-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin: 0 -4px;
    border-radius: 8px;
    font-size: 13.5px;
    color: #14171f;
    font-weight: 600;
    text-decoration: none;
    transition: background 180ms ease;
}
.uo-user-dropdown-item:hover { background: #f5f6f8; }
.uo-user-dropdown-item svg { color: #6a7180; }


/* ═════════════════════════════════════════════════════════════════════════
   MOBILE DRAWER (balról csúszik) — referencia: mobil_menu.png
   ═════════════════════════════════════════════════════════════════════════ */
.uo-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 320ms ease;
    z-index: 998;
}
.uo-drawer-backdrop-open {
    opacity: 1;
    pointer-events: auto;
}

.uo-drawer {
    position: fixed;
    top: 0;
    left: -380px;
    width: min(360px, 88vw);
    height: 100vh;
    height: 100dvh; /* Modern: dynamic viewport — Chrome URL bar safe */
    background: #0c0e13;
    color: #fff;
    box-shadow: 12px 0 60px rgba(0, 0, 0, 0.35);
    z-index: 999;
    display: flex;
    flex-direction: column;
    transition: left 380ms cubic-bezier(0.16, 1, 0.3, 1);
}
.uo-drawer-open {
    left: 0;
}

.uo-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.uo-drawer-close {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    border: none;
    color: #fff;
    display: grid; place-items: center;
    cursor: pointer;
    transition: all 200ms ease;
}
.uo-drawer-close:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: rotate(90deg);
}

.uo-drawer-scroll {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px 20px 40px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    /* iOS smooth scroll */
    -webkit-overflow-scrolling: touch;
}
/* Biztos láthatóság — gyerek blokkok nem zsugorodnak */
.uo-drawer-scroll > .uo-drawer-user,
.uo-drawer-scroll > .uo-drawer-auth,
.uo-drawer-scroll > .uo-drawer-referral,
.uo-drawer-scroll > .uo-drawer-bottom,
.uo-drawer-scroll > .uo-drawer-nav {
    flex-shrink: 0;
}
.uo-drawer-scroll::-webkit-scrollbar { width: 0; }

/* User blokk */
.uo-drawer-user {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 0;
}
.uo-drawer-user-avatar {
    position: relative;
    width: 76px; height: 76px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff8a3d, #ff6a00);
    box-shadow: 0 0 0 3px rgba(255, 106, 0, 0.20),
                0 8px 24px rgba(255, 106, 0, 0.25);
    display: grid; place-items: center;
    overflow: hidden;
    flex-shrink: 0;
}
.uo-drawer-user-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.uo-drawer-user-initials {
    color: #fff;
    font-size: 28px;
    font-weight: 800;
}
.uo-drawer-user-info { min-width: 0; flex: 1; }
.uo-drawer-user-name {
    font-size: 17px;
    font-weight: 800;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}
.uo-drawer-user-wave {
    font-size: 16px;
    animation: uo-wave 1.6s ease-in-out infinite;
}
@keyframes uo-wave {
    0%, 80%, 100% { transform: rotate(0deg); }
    10% { transform: rotate(15deg); }
    20% { transform: rotate(-12deg); }
    30% { transform: rotate(15deg); }
    40% { transform: rotate(-8deg); }
    50% { transform: rotate(10deg); }
    60% { transform: rotate(0deg); }
}
.uo-drawer-user-email {
    font-size: 12.5px;
    color: #8a909b;
    margin-bottom: 10px;
}
.uo-drawer-user-loyalty {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.uo-drawer-user-tier {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    background: linear-gradient(135deg, rgba(255, 106, 0, 0.16), rgba(255, 138, 61, 0.10));
    border: 1px solid rgba(255, 106, 0, 0.35);
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--accent, #ff6a00);
}
.uo-drawer-user-points {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--accent, #ff6a00);
}

/* Auth gombok (ha nincs bejelentkezve) */
.uo-drawer-auth {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.uo-drawer-auth-btn {
    width: 100%;
    padding: 14px;
    border-radius: 12px;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    transition: all 220ms ease;
    border: none;
}
.uo-drawer-auth-btn-primary {
    background: var(--accent, #ff6a00);
    color: #fff;
    box-shadow: 0 8px 24px rgba(255, 106, 0, 0.30);
}
.uo-drawer-auth-btn-primary:hover {
    background: #ff7e1f;
    transform: translateY(-1px);
}
.uo-drawer-auth-btn-ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.uo-drawer-auth-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.06);
}

/* Nav lista */
.uo-drawer-nav {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 8px 0;
}
.uo-drawer-nav-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 4px;
    color: #fff;
    text-decoration: none;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    transition: color 200ms ease;
    position: relative;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.uo-drawer-nav-item:last-child {
    border-bottom: none;
}
.uo-drawer-nav-item:hover { color: var(--accent, #ff6a00); }
.uo-drawer-nav-item:hover .uo-drawer-nav-icon { color: var(--accent, #ff6a00); }

.uo-drawer-nav-item-active {
    color: var(--accent, #ff6a00);
}
.uo-drawer-nav-item-active::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 14px;
    bottom: 14px;
    width: 3px;
    background: var(--accent, #ff6a00);
    border-radius: 0 3px 3px 0;
}
.uo-drawer-nav-item-active .uo-drawer-nav-icon {
    color: var(--accent, #ff6a00);
}

.uo-drawer-nav-icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    display: grid; place-items: center;
    flex-shrink: 0;
    transition: all 220ms cubic-bezier(0.16, 1, 0.3, 1);
}
.uo-drawer-nav-item:hover .uo-drawer-nav-icon {
    background: rgba(255, 106, 0, 0.14);
}
.uo-drawer-nav-item-active .uo-drawer-nav-icon {
    background: rgba(255, 106, 0, 0.16);
}

.uo-drawer-nav-label {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
}
.uo-drawer-nav-chevron {
    color: #4a5160;
    flex-shrink: 0;
    transition: transform 200ms ease;
}
.uo-drawer-nav-item:hover .uo-drawer-nav-chevron {
    color: var(--accent, #ff6a00);
    transform: translateX(2px);
}

/* Referral kártya */
.uo-drawer-referral {
    background: linear-gradient(135deg, rgba(255, 106, 0, 0.10), rgba(255, 138, 61, 0.04));
    border: 1px solid rgba(255, 106, 0, 0.20);
    border-radius: 16px;
    padding: 16px;
    display: flex;
    gap: 14px;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.uo-drawer-referral::before {
    content: "";
    position: absolute;
    top: -50%; right: -20%;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(255, 106, 0, 0.10) 0%, transparent 60%);
    pointer-events: none;
}
.uo-drawer-referral-icon {
    width: 64px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 4px 12px rgba(255, 106, 0, 0.3));
}
.uo-drawer-referral-body {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}
.uo-drawer-referral-title {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 800;
    color: #fff;
}
.uo-drawer-referral-text {
    margin: 0 0 10px;
    font-size: 12px;
    color: #aab1bb;
    line-height: 1.4;
}
.uo-drawer-referral-text b { color: #fff; font-weight: 700; }

.uo-drawer-referral-code {
    display: inline-flex;
    align-items: center;
    gap: 0;
    background: transparent;
    border: 1px dashed rgba(255, 106, 0, 0.45);
    border-radius: 10px;
    padding: 6px 4px 6px 12px;
}
.uo-drawer-referral-code-value {
    color: var(--accent, #ff6a00);
    font-weight: 800;
    font-size: 13.5px;
    letter-spacing: 0.05em;
    margin-right: 10px;
}
.uo-drawer-referral-code-copy {
    width: 28px; height: 28px;
    border-radius: 6px;
    background: rgba(255, 106, 0, 0.10);
    border: none;
    color: var(--accent, #ff6a00);
    cursor: pointer;
    display: grid; place-items: center;
    transition: all 200ms ease;
}
.uo-drawer-referral-code-copy:hover {
    background: rgba(255, 106, 0, 0.22);
}
.uo-drawer-referral-code-copy.uo-copied svg {
    /* visual feedback after copy */
    color: #2bd4a4;
}

/* Bottom: nyelv + profilom + kijelentkezés */
.uo-drawer-bottom {
    display: flex;
    flex-direction: column;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.uo-drawer-bottom-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 4px;
    background: transparent;
    border: none;
    color: #fff;
    width: 100%;
    text-align: left;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    transition: color 200ms ease;
}
.uo-drawer-bottom-item:hover { color: var(--accent, #ff6a00); }
.uo-drawer-bottom-item:hover .uo-drawer-nav-icon { color: var(--accent, #ff6a00); }
.uo-drawer-bottom-item .uo-drawer-nav-icon {
    width: 36px; height: 36px;
    background: transparent;
}
.uo-drawer-bottom-label {
    flex: 1;
    font-size: 14.5px;
    font-weight: 600;
}
.uo-drawer-bottom-value {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--accent, #ff6a00);
    font-weight: 700;
}

/* Body scroll lock */
body.uo-drawer-active { overflow: hidden; }


/* ═════════════════════════════════════════════════════════════════════════
   HEADER RESPONSIVE — javítva
   ═════════════════════════════════════════════════════════════════════════ */

/* 1100px ALATT: hamburger ON, asztali nav OFF */
@media (max-width: 1100px) {
    .uo-nav-desktop { display: none; }
    .uo-hamburger   { display: flex; }
    .uo-header-inner {
        grid-template-columns: auto 1fr auto;
        gap: 12px;
        padding: 12px 0;
        min-height: 60px;
    }
    .uo-header-right { gap: 0; }
    .uo-header-search {
        max-width: 100%;
        justify-self: stretch;
    }
    .uo-search-trigger {
        padding: 9px 16px;
    }
    .uo-search-ph-main { font-size: 13px; }
    .uo-search-ph-sub  { display: none; }
}

/* 640px ALATT: search csak ikon a header-en + full-screen dropdown */
@media (max-width: 640px) {
    .uo-header-inner {
        grid-template-columns: auto 1fr auto;
        gap: 8px;
        padding: 10px 0;
    }
    .uo-header-left { gap: 8px; }

    /* Search: kicsi kerek ikon-gomb a középen, nem stretch-elt */
    .uo-header-search {
        max-width: none;
        justify-self: end;
    }
    .uo-search-trigger {
        width: 40px; height: 40px;
        padding: 0;
        border-radius: 50%;
        justify-content: center;
        gap: 0;
    }
    .uo-search-trigger svg { color: #fff; }
    .uo-search-placeholder { display: none; }

    /* Header-right: marad jobb szélen, gap kompakt */
    .uo-header-right { gap: 0; }
    .uo-header-actions { gap: 4px; }
    .uo-header-icon-btn {
        width: 38px; height: 38px;
    }

    /* Mobile search dropdown: full-screen overlay */
    .uo-search-dropdown {
        position: fixed;
        top: 12px;
        left: 12px; right: 12px;
        width: auto;
        transform: none;
        max-height: calc(100vh - 24px);
        overflow-y: auto;
    }
    .uo-header-search.uo-search-open .uo-search-dropdown {
        transform: none;
    }
    .uo-search-row {
        grid-template-columns: 1fr;
        padding: 8px;
    }
    .uo-search-divider { display: none; }
    .uo-search-field {
        padding: 12px 16px;
        border-bottom: 1px solid #e8eaee;
    }
    .uo-search-field:last-of-type { border-bottom: none; }
    .uo-search-submit {
        width: 100%;
        justify-content: center;
        margin: 8px 0 0;
    }
}

/* 480px ALATT: logo szöveg KISEBB de látható */
@media (max-width: 480px) {
    .uo-header-inner {
        gap: 6px;
    }
    .uo-header-icon-btn,
    .uo-search-trigger {
        width: 36px; height: 36px;
    }
    .uo-hamburger {
        width: 32px; height: 32px;
        padding: 6px;
    }
}


/* ═════════════════════════════════════════════════════════════════════════
   STICKY CTA BAR JAVÍTÁS — mobil Chrome bug fix
   ═════════════════════════════════════════════════════════════════════════ */
.aj-sticky-mobile-cta {
    /* GPU layer — sub-pixel tolódás megakadályozása */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    will-change: transform;
    /* iOS safe-area + Android Chrome URL bar:
       több padding-bottom alap esetén, env() iOS-en, fallback nincs */
    padding-bottom: max(14px, env(safe-area-inset-bottom, 14px)) !important;
}

/* A footer NEM lehet sticky context-ben — biztosítjuk, hogy a sticky CTA
   ne ragadjon hozzá. A fixed elem mindig a viewport-aljához tapad,
   függetlenül a szülő layoutjától. */


/* ═════════════════════════════════════════════════════════════════════════
   HEADER NAV DROPDOWN (Ajánlatok hover)
   ═════════════════════════════════════════════════════════════════════════ */
.uo-nav-dropdown {
    position: relative;
}
.uo-nav-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}
.uo-nav-dropdown-caret {
    transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0.7;
}
.uo-nav-dropdown:hover .uo-nav-dropdown-caret,
.uo-nav-dropdown:focus-within .uo-nav-dropdown-caret {
    transform: rotate(180deg);
    opacity: 1;
}

.uo-nav-dropdown-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    width: 320px;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25),
                0 0 0 1px rgba(0, 0, 0, 0.04);
    padding: 8px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease, transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 102;
}
/* "Hover bridge" — hézag a trigger és panel között, hogy a hover ne szakadjon meg */
.uo-nav-dropdown-panel::before {
    content: "";
    position: absolute;
    top: -10px; left: 0; right: 0;
    height: 12px;
}
.uo-nav-dropdown:hover .uo-nav-dropdown-panel,
.uo-nav-dropdown:focus-within .uo-nav-dropdown-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.uo-nav-dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    color: #14171f;
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 600;
    transition: background 180ms ease;
}
.uo-nav-dropdown-item:hover {
    background: #f5f6f8;
    color: var(--accent, #ff6a00);
}

.uo-nav-dropdown-icon {
    width: 36px; height: 36px;
    border-radius: 10px;
    background: #f5f6f8;
    color: #14171f;
    display: grid; place-items: center;
    flex-shrink: 0;
    transition: all 200ms ease;
}
.uo-nav-dropdown-item:hover .uo-nav-dropdown-icon {
    background: rgba(255, 106, 0, 0.12);
    color: var(--accent, #ff6a00);
}

.uo-nav-dropdown-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.25;
    min-width: 0;
}
.uo-nav-dropdown-text b {
    font-weight: 700;
    color: #14171f;
}
.uo-nav-dropdown-item:hover .uo-nav-dropdown-text b {
    color: var(--accent, #ff6a00);
}
.uo-nav-dropdown-text small {
    font-size: 11.5px;
    font-weight: 500;
    color: #6a7180;
}

.uo-nav-dropdown-divider {
    height: 1px;
    background: #f0f1f4;
    margin: 6px 4px;
}

/* Special items: All offers + More with subtitle */
.uo-nav-dropdown-item-all .uo-nav-dropdown-icon,
.uo-nav-dropdown-item-more .uo-nav-dropdown-icon {
    background: rgba(255, 106, 0, 0.10);
    color: var(--accent, #ff6a00);
}


/* ═════════════════════════════════════════════════════════════════════════
   MOBIL BOOKING CARD (a hero alatt, csak mobilon látható)
   Aslo: STICKY BOTTOM CTA BAR mobilra
   ═════════════════════════════════════════════════════════════════════════ */

/* Mobil booking — desktop on hidden */
.aj-mobile-booking {
    display: none;
    background: #0c0e13;
    padding: 0 0 28px;
}
.aj-mobile-booking-card {
    background: linear-gradient(135deg, #14171f 0%, #1a1d24 100%);
    border: 1px solid rgba(255, 106, 0, 0.20);
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3),
                0 0 0 1px rgba(255, 106, 0, 0.06);
}
.aj-mobile-booking-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}
.aj-mobile-booking-price {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.aj-mobile-booking-price-old {
    font-size: 13px;
    color: #6a7180;
    text-decoration: line-through;
}
.aj-mobile-booking-price-now {
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.025em;
    line-height: 1;
}
.aj-mobile-booking-badge {
    background: var(--accent, #ff6a00);
    color: #fff;
    padding: 6px 12px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 4px 14px rgba(255, 106, 0, 0.35);
}
.aj-mobile-booking-saving {
    margin: 0 0 16px;
    font-size: 13px;
    color: #2bd4a4;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}
.aj-mobile-booking-saving b { color: #2bd4a4; font-weight: 800; }
.aj-mobile-booking-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 16px;
    background: var(--accent, #ff6a00);
    color: #fff;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: all 240ms ease;
    box-shadow: 0 8px 22px rgba(255, 106, 0, 0.35);
    box-sizing: border-box;
}
.aj-mobile-booking-cta:hover {
    background: #ff7e1f;
    transform: translateY(-1px);
}
.aj-mobile-booking-quick-info {
    display: flex;
    gap: 18px;
    margin-top: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
.aj-mobile-booking-quick-info span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #8a909b;
    font-weight: 500;
}
.aj-mobile-booking-quick-info svg { color: var(--accent, #ff6a00); }


/* ─── STICKY MOBILE CTA BAR (fix alul) ─────────────────────────────── */
.aj-sticky-mobile-cta {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    background: rgba(12, 14, 19, 0.92);
    backdrop-filter: blur(18px) saturate(180%);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.aj-sticky-mobile-cta-info {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.aj-sticky-mobile-cta-old {
    font-size: 12px;
    color: #6a7180;
    text-decoration: line-through;
}
.aj-sticky-mobile-cta-now {
    font-size: 20px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
}
.aj-sticky-mobile-cta-badge {
    background: var(--accent, #ff6a00);
    color: #fff;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
}
.aj-sticky-mobile-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 22px;
    background: var(--accent, #ff6a00);
    color: #fff;
    border-radius: 12px;
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none;
    transition: all 200ms ease;
    box-shadow: 0 6px 18px rgba(255, 106, 0, 0.4);
    flex-shrink: 0;
}
.aj-sticky-mobile-cta-btn:hover {
    background: #ff7e1f;
    transform: translateY(-1px);
}
.aj-sticky-mobile-cta-btn svg {
    transition: transform 220ms ease;
}
.aj-sticky-mobile-cta-btn:hover svg {
    transform: translateX(3px);
}


/* ═════════════════════════════════════════════════════════════════════════
   RESPONSIVE — Ajánlat detail új layout
   ═════════════════════════════════════════════════════════════════════════ */

/* 1100px ALATT: mobil booking card + sticky CTA bekapcsolva,
   sticky widget asztali sidebar nem kell */
@media (max-width: 1100px) {
    .aj-mobile-booking { display: block; }
    .aj-sticky-mobile-cta { display: flex; }
    /* A sticky CTA helye — az utolsó section padding-jét bővítjük,
       NEM a body-t (ami konfliktusba kerülne a footer-ral) */
    .aj-detail-trust-bar {
        padding-bottom: calc(36px + 80px) !important;
    }

    /* Asztali sticky sidebar normál pozícióban a tartalom alatt */
    .aj-detail-grid {
        grid-template-columns: 1fr;
    }
    .aj-detail-booking {
        position: relative;
        top: 0;
    }
    .aj-detail-hero-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .aj-detail-hero-right {
        order: -1;
    }
    .aj-info-row {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px 18px;
    }
    .aj-reviews-summary {
        grid-template-columns: 1fr;
        gap: 18px;
        text-align: left;
    }
    .aj-reviews-score {
        display: flex;
        align-items: center;
        gap: 16px;
    }
    .aj-reviews-score-num {
        font-size: 32px;
    }
    .aj-reviews-list {
        grid-template-columns: repeat(2, 1fr);
    }
    .aj-location-grid {
        grid-template-columns: 1fr;
    }
    .aj-trust-bar-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .aj-detail-top { padding: 16px 0 12px; }
    .aj-detail-back { margin-bottom: 10px; font-size: 13px; }
    .aj-detail-breadcrumb { font-size: 11.5px; }

    .aj-detail-hero { padding: 16px 0 32px; }
    .aj-detail-title { font-size: clamp(22px, 7vw, 30px); }
    .aj-detail-meta { gap: 12px; font-size: 12.5px; }
    .aj-detail-desc { font-size: 14px; }
    .aj-detail-trust-row { gap: 6px; }
    .aj-detail-trust { padding: 8px 12px; font-size: 11.5px; }

    .aj-detail-thumbs {
        grid-template-columns: repeat(5, 1fr);
        gap: 6px;
    }

    .aj-detail-body { padding: 24px 0 48px; }
    .aj-block { padding: 22px 20px; }
    .aj-block-title { font-size: 18px; margin-bottom: 18px; }
    .aj-divider { margin: 18px -20px; }

    .aj-info-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .aj-reviews-list {
        grid-template-columns: 1fr;
    }
    .aj-trust-bar-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    /* Asztali sticky widget rejtve mobilon (a mobil card és sticky CTA bar miatt) */
    .aj-detail-booking {
        display: none;
    }
}
