/* Fonty hostované přímo na webu (ne z Google CDN) – žádné externí spojení
       při načtení stránky, žádný přenos IP adresy cizí straně bez souhlasu. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-500-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-500-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-600-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-600-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-700-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:700;font-display:swap;src:url('fonts/cormorant-garamond-latin-ext-700-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/outfit-latin-300-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/outfit-latin-ext-300-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/outfit-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/outfit-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/outfit-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/outfit-latin-ext-500-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/outfit-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/outfit-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/outfit-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/outfit-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
:root {
            --logo-box: 102px;
            --gold: #db9738;
            --gold-light: #fbad43;
            --gold-dark: #af782c;
            --black: #0a0a0a;
            --black-soft: #141414;
            --black-card: #1c1c1c;
            --grey: #b8b8b8;
            --grey-dark: #7a7a7a;
            --red: #c0392b;
            --white: #f5f5f0;
        }
        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        /* jemné prolnutí při přepnutí jazyka, ať text neproblikne skokem */
        body { transition: opacity .18s ease; }
        body.prepinam-jazyk { opacity: .45; }
        @media (prefers-reduced-motion: reduce){ body{ transition:none; } body.prepinam-jazyk{ opacity:1; } }
        /* na mobilu nechceme samovolné přibližování při scrollování ani dvojkliku */
        html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; touch-action: manipulation; }
        body { touch-action: manipulation; overscroll-behavior-y: contain; }

        /* ===== PLOVOUCÍ WHATSAPP TLAČÍTKO (jen mobil a tablet) ===== */
        .wa-obal{ position:fixed; right:calc(16px + env(safe-area-inset-right));
            bottom:calc(16px + env(safe-area-inset-bottom)); z-index:2500;
            display:none; align-items:center; gap:10px;
            transition:opacity .3s ease, transform .3s ease; }
        .wa-obal.pryc{ opacity:0; pointer-events:none; transform:translateY(16px) scale(.92); }
        .wa-popis{ background:rgba(20,17,13,.95); color:#e8e4de;
            border:1px solid rgba(219,151,56,.35); border-radius:999px; padding:9px 15px;
            font-family:'Outfit',sans-serif; font-size:13.5px; font-weight:500; white-space:nowrap;
            box-shadow:0 6px 18px rgba(0,0,0,.45); opacity:0; transform:translateX(10px);
            transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
        .wa-obal.napis .wa-popis{ opacity:1; transform:none; }
        .wa-tl{ width:58px; height:58px; border-radius:15px; display:block; flex:0 0 58px;
            box-shadow:0 6px 20px rgba(0,0,0,.5); -webkit-tap-highlight-color:transparent;
            transition:transform .18s ease; animation:waPrichod .45s ease .5s both; }
        .wa-tl img{ width:100%; height:100%; display:block; border-radius:15px; }
        .wa-tl:active{ transform:scale(.92); }
        @keyframes waPrichod{ from{opacity:0;transform:translateY(22px) scale(.8)} to{opacity:1;transform:none} }
        @media (prefers-reduced-motion:reduce){ .wa-tl{animation:none} .wa-popis{transition:none} }
        @media (max-width:900px){ .wa-obal{ display:flex; } }


        /* Sekce mimo obrazovku prohlizec nevykresluje, dokud se k nim uzivatel
           nedoscrolluje. Vyrazne zkracuje dobu do prvniho vykresleni na telefonu.
           contain-intrinsic-size drzi vysku, aby scrollbar neposkakoval. */
        #program, #akce, #koktejly, #galerie, #recenze, #onas, #rezervace, #kontakt, footer {
            content-visibility: auto;
            contain-intrinsic-size: auto 900px;
        }
        body {
            font-family: 'Outfit', sans-serif;
            background: var(--black);
            color: var(--white);
            line-height: 1.6;
            overflow-x: hidden;
        }
        h1, h2, h3, .serif { font-family: 'Cormorant Garamond', serif; }

        /* ADMIN */
        /* Stejná světlá paleta jako panel Správy rezervací (#zra-app),
           ať admin panel na hlavním webu působí jako součást stejného nástroje. */
        #adminBar {
            display: none;
            position: fixed;
            top: 0; left: 0; bottom: 0;
            width: 25%; max-width: 340px; min-width: 240px;
            background: #eef0f3;
            color: #17150f;
            border-right: 1px solid #e6e7ea;
            padding: 20px 16px 24px;
            z-index: 9999;
            box-shadow: 4px 0 24px rgba(20,20,30,0.14);
            overflow-y: auto;
            transition: transform 0.3s ease;
        }
        #adminBar.active { display: flex; flex-direction: column; gap: 9px; }
        #adminBar.sbaleno { transform: translateX(-110%); }
        #adminBar .admin-title { font-weight: 700; font-size: 14px; line-height: 1.35; margin-bottom: 8px; padding-right: 34px; color: #17150f; }
        #adminBar .admin-title small { display:block; font-weight: 400; font-size: 11.5px; margin-top: 4px; color: #6c6a63; opacity: 1; }
        #adminBar .admin-sep { border-top: 1px solid #e6e7ea; margin: 6px 0 2px; }
        #adminBar button {
            background: #ffffff; color: #17150f;
            border: 1px solid #e6e7ea; padding: 11px 14px; border-radius: 10px;
            cursor: pointer; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13px;
            width: 100%; text-align: left; transition: border-color .15s, color .15s, background .15s;
        }
        #adminBar button:hover { background: #fbf4e7; border-color: #db9738; color: #a5741d; }

        /* křížek pro sbalení lišty */
        #adminHide {
            position: absolute; right: 12px; top: 16px;
            width: 32px; height: 32px; padding: 0 !important;
            border-radius: 50% !important; font-size: 15px !important;
            display: flex; align-items: center; justify-content: center;
            width: 32px !important; text-align: center !important;
            background: #f7f8fa !important; color: #6c6a63 !important; border: 1px solid #e6e7ea !important;
        }

        /* zlaté kolečko v LEVÉM HORNÍM rohu, když je panel sbalený */
        #adminPuk {
            display: none;
            position: fixed; top: 16px; left: 16px;
            width: 50px; height: 50px; border-radius: 50%;
            background: var(--gold); color: var(--black);
            border: none; cursor: pointer; z-index: 9998;
            font-size: 22px; line-height: 1;
            align-items: center; justify-content: center;
            box-shadow: 0 4px 18px rgba(0,0,0,0.55);
            transition: transform 0.25s, box-shadow 0.25s;
        }
        #adminPuk.show { display: flex; }
        #adminPuk:hover { transform: scale(1.08); box-shadow: 0 6px 24px rgba(219,151,56,0.6); }

        @media (max-width: 700px) {
            #adminBar { width: 78%; max-width: none; }
            #adminPuk { width: 46px; height: 46px; top: 12px; left: 12px; font-size: 19px; }
        }
        body.admin-mode [data-edit] {
            outline: 2px dashed rgba(219, 151, 56, 0.5);
            outline-offset: 3px; cursor: text; transition: outline 0.2s;
        }
        body.admin-mode [data-edit]:hover {
            outline: 2px dashed var(--gold);
            background: rgba(219, 151, 56, 0.08);
        }

        /* HEADER */
        header {
            position: sticky; top: 0; z-index: 1000;
            background: rgba(10, 10, 10, 0.85);
            backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(219, 151, 56, 0.2);
            transition: all 0.3s;
            overflow: visible;
        }
        .nav-container {
            max-width: 1300px; margin: 0 auto; padding: 8px 30px;
            display: flex; justify-content: flex-end; align-items: center;
            position: relative; min-height: 56px;
        }
        .logo {
            font-family: 'Cormorant Garamond', serif; font-size: 30px; font-weight: 700;
            color: var(--gold); letter-spacing: 3px; text-decoration: none;
            display: flex; align-items: center; gap: 8px;
        }
        .logo span {
            font-size: 13px; letter-spacing: 1px; color: var(--grey);
            font-family: 'Outfit', sans-serif; font-weight: 300;
        }
        /* ==========================================================
           LOGO
           Velikost se řídí jedinou proměnnou --logo-box níže.
           Obrázek se do čtverce VŽDY vejde (object-fit: contain),
           takže se nikdy nezdeformuje ani nepřeteče, ať má
           jakýkoli poměr stran.
           Když soubor chybí nebo je poškozený, naskočí místo něj
           textové logo – nikdy se neukáže rozbitý obrázek.
           ========================================================== */
        .logo-link {
            display: block; text-decoration: none;
            position: absolute; left: 30px; top: 0; z-index: 5;
            line-height: 0;
        }
        .logo-nook {
            width: var(--logo-box, 102px);
            height: var(--logo-box, 102px);
            background: var(--gold);
            display: flex; align-items: center; justify-content: center;
            padding: 10px; box-sizing: border-box;
            overflow: hidden;
        }
        .logo-img {
            max-width: 100%; max-height: 100%;
            width: auto; height: auto;
            object-fit: contain;
            display: block;
        }
        .logo-fallback {
            display: none;
            font-family: 'Cormorant Garamond', serif;
            font-weight: 700; color: var(--black);
            font-size: calc(var(--logo-box, 102px) * 0.21);
            letter-spacing: 1px; line-height: 1.05; text-align: center;
        }
        .logo-fallback span {
            display: block;
            font-family: 'Outfit', sans-serif; font-weight: 400;
            font-size: calc(var(--logo-box, 102px) * 0.11);
            letter-spacing: 3px;
        }
        .logo-nook.no-image .logo-img { display: none; }
        .logo-nook.no-image .logo-fallback { display: block; }
        .nav-links { display: flex; gap: 32px; align-items: center; list-style: none; }
        .nav-links a {
            color: var(--white); text-decoration: none; font-size: 15px;
            font-weight: 400; letter-spacing: 0.5px; transition: color 0.3s; position: relative;
        }
        .nav-links a::after {
            content: ''; position: absolute; bottom: -4px; left: 0;
            width: 0; height: 1px; background: var(--gold); transition: width 0.3s;
        }
        .nav-links a:hover { color: var(--gold); }
        .nav-links a:hover::after { width: 100%; }

        /* DROPDOWN VÍCE */
        .nav-dropdown { position: relative; }
        .nav-dropdown-toggle { display: flex; align-items: center; gap: 6px; cursor: pointer; }
        .nav-dropdown-toggle .arrow { font-size: 9px; transition: transform 0.3s; }
        .nav-dropdown.open .nav-dropdown-toggle .arrow { transform: rotate(180deg); }
        .nav-dropdown-menu {
            position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(-8px);
            background: var(--black-card); border: 1px solid rgba(219,151,56,0.3); border-radius: 8px;
            overflow: hidden; min-width: 240px; opacity: 0; visibility: hidden; transition: all 0.3s; z-index: 200;
        }
        .nav-dropdown.open .nav-dropdown-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
        .nav-dropdown-menu a {
            display: block; padding: 14px 20px; color: var(--white); font-size: 14px;
            border-bottom: 1px solid rgba(255,255,255,0.05); transition: all 0.2s;
        }
        .nav-dropdown-menu a::after { display: none; }
        .nav-dropdown-menu a:hover { background: rgba(219,151,56,0.12); color: var(--gold); padding-left: 26px; }
        .nav-dropdown-menu a:last-child { border-bottom: none; }
        .btn-reserve {
            background: var(--gold); color: var(--black) !important;
            height: 42px; padding: 0 34px; border-radius: 6px; font-weight: 700 !important;
            letter-spacing: 1.2px; transition: all 0.3s !important;
            text-transform: uppercase; font-size: 14px !important;
            box-shadow: 0 0 18px rgba(219, 151, 56, 0.35);
            display: inline-flex; align-items: center; justify-content: center;
        }
        .btn-reserve:hover { background: var(--gold-light); transform: translateY(-2px); box-shadow: 0 0 32px rgba(219, 151, 56, 0.65); }
        .btn-reserve::after { display: none; }
        .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 5px; }
        .hamburger span { width: 26px; height: 2px; background: var(--gold); transition: all 0.3s; }

        /* NAV RIGHT + JAZYK */
        .nav-right { display: flex; align-items: center; gap: 22px; }
        .lang-switch { position: relative; }
        .lang-current { background: transparent; border: 1px solid rgba(219,151,56,0.4); color: var(--gold); height: 42px; padding: 0 14px; border-radius: 6px; cursor: pointer; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 14px; display: flex; align-items: center; gap: 8px; transition: all 0.3s; }
        .lang-current:hover { border-color: var(--gold); background: rgba(219,151,56,0.1); }
        .lang-flag { display: inline-flex; align-items: center; flex-shrink: 0; }
        .lang-flag svg { display: block; border-radius: 2px; }
        .lang-current .lang-flag svg { width: 22px; height: 15px; box-shadow: 0 0 0 1px rgba(255,255,255,0.18); }
        .lang-current .arrow { font-size: 9px; transition: transform 0.3s; }
        .lang-switch.open .arrow { transform: rotate(180deg); }
        .lang-dropdown { position: absolute; top: calc(100% + 8px); right: 0; background: var(--black-card); border: 1px solid rgba(219,151,56,0.3); border-radius: 6px; overflow: hidden; min-width: 155px; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: all 0.3s; z-index: 100; }
        .lang-switch.open .lang-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
        .lang-option { padding: 12px 16px; color: var(--white); cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 10px; transition: all 0.2s; border: none; background: none; width: 100%; text-align: left; font-family: 'Outfit', sans-serif; }
        .lang-option:hover { background: rgba(219,151,56,0.15); color: var(--gold); }
        .lang-option.active { color: var(--gold); font-weight: 600; }
        .lang-option .lang-flag svg { width: 24px; height: 16px; box-shadow: 0 0 0 1px rgba(255,255,255,0.18); }

        /* SLEVOVÁ NÁLEPKA */
        .promo-sticker { position: fixed; bottom: 30px; right: 30px; width: 168px; height: 168px; z-index: 900; cursor: pointer; display: none; transition: transform 0.3s; }
        .promo-sticker.show { display: block; }
        .promo-sticker.anim { animation: stickerIn 0.6s cubic-bezier(0.34,1.56,0.64,1), wobble 3s ease-in-out 0.6s infinite; }
        .promo-sticker:hover { transform: scale(1.08) rotate(-3deg); animation-play-state: paused; }
        @keyframes stickerIn { from { transform: scale(0) rotate(-180deg); opacity: 0; } to { transform: scale(1) rotate(0); opacity: 1; } }
        @keyframes wobble { 0%,100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
        @keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
        .promo-sticker.anim.pulse-anim { animation: stickerIn 0.6s cubic-bezier(0.34,1.56,0.64,1), pulse 2s ease-in-out 0.6s infinite; }
        .promo-sticker svg { width: 100%; height: 100%; filter: drop-shadow(0 6px 20px rgba(219,151,56,0.5)); display: block; }
        .promo-sticker-close { position: absolute; top: 2px; right: 2px; width: 26px; height: 26px; background: var(--black); color: var(--gold); border: 1px solid var(--gold); border-radius: 50%; cursor: pointer; font-size: 14px; display: none; align-items: center; justify-content: center; z-index: 10; }
        .promo-sticker:hover .promo-sticker-close { display: flex; }
        .promo-text { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; pointer-events: none; overflow: hidden; }
        .promo-text .promo-top { font-family: 'Outfit', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--black); line-height: 1.2; }
        .promo-text .promo-main { font-family: 'Cormorant Garamond', serif; font-weight: 700; color: var(--black); line-height: 1.05; margin: 3px 0; white-space: nowrap; }
        .promo-text .promo-bottom { font-family: 'Outfit', sans-serif; font-size: 10px; font-weight: 500; letter-spacing: 0.5px; color: var(--black); line-height: 1.2; }

        /* HERO */
        .hero {
            position: relative; height: 70vh; min-height: 520px;
            display: flex; align-items: center; justify-content: center;
            text-align: center; overflow: hidden; padding: 40px 20px;
        }
        .hero-slides { position: absolute; inset: 0; z-index: 0; background: var(--black); overflow: hidden; }
        .hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 2s ease-in-out; }
        .hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
        .hero-slide.active { opacity: 1; }
        .hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(rgba(10,10,10,0.68), rgba(10,10,10,0.48) 45%, rgba(10,10,10,0.9)); }
        .hero-overlay::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 25%, rgba(10,10,10,0.6)); }
        .hero-content { position: relative; z-index: 2; max-width: 860px; }
        .hero h1 { font-size: clamp(56px, 11vw, 120px); font-weight: 700; line-height: 0.9; letter-spacing: 4px; color: var(--gold); text-shadow: 0 2px 34px rgba(0,0,0,0.9), 0 0 60px rgba(219,151,56,0.25); margin-bottom: 8px; }
        /* Tagline pod názvem – čitelný na jakékoli fotce: světlejší odstín + tmavý rozostřený podklad */
        .hero-tagline-main {
            display: inline-block;
            font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600;
            font-size: clamp(25px, 4.25vw, 43px);
            color: var(--gold);
            letter-spacing: 2px; margin-bottom: 26px;
            padding: 4px 26px; border-radius: 40px;
            background: rgba(10, 10, 10, 0.55);
            backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
            text-shadow: 0 2px 6px rgba(0,0,0,0.95), 0 0 20px rgba(0,0,0,0.7);
        }
        .hero-subtitle { font-size: clamp(15px, 2.2vw, 19px); color: var(--grey); max-width: 640px; margin: 0 auto 34px; font-weight: 300; line-height: 1.6; text-shadow: 0 1px 14px rgba(0,0,0,0.9); }
        .hero-cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
        .hero-dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 8px; }
        .hero-dot { width: 22px; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.3); cursor: pointer; transition: all 0.4s; border: none; padding: 0; }
        .hero-dot.active { background: var(--gold); width: 38px; box-shadow: 0 0 8px rgba(219,151,56,0.6); }

        /* PROUŽEK OTEVÍRACÍ DOBY */
        .hours-bar { background: var(--black-soft); border-top: 1px solid rgba(219,151,56,0.25); border-bottom: 1px solid rgba(219,151,56,0.15); }
        .hours-inner { max-width: 1340px; margin: 0 auto; padding: 14px 24px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; position: relative; }
        .hours-social { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 16px; }
        .hours-social a { color: var(--grey); display: flex; align-items: center; transition: color .25s; }
        .hours-social a:hover { color: var(--gold); }
        /* TikTok je teď stejný typ vektoru jako Instagram (SVG cesta) – ostrý v jakékoli
           velikosti, barva se řídí přes currentColor stejně jako u ostatních ikon. */
        @media (max-width: 900px) { .hours-social { display: none; } }
        .hours-item { display: flex; align-items: center; gap: 8px; padding: 4px 18px; position: relative; }
        .hours-item:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); height: 26px; width: 1px; background: rgba(219,151,56,0.25); }
        .hours-item .day { color: var(--gold); font-size: 12.5px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; white-space: nowrap; }
        .hours-item .time { color: var(--grey); font-size: 13.5px; white-space: nowrap; }
        .hours-item.closed .time { color: #6a6a6a; }
        .hours-item.address .time { color: var(--grey); text-decoration: none; transition: color 0.3s; }
        .hours-item.address .time:hover { color: var(--gold); }
        .hours-item.address .day { font-size: 15px; }

        .btn-primary {
            background: var(--gold); color: var(--black); padding: 16px 40px; border-radius: 4px;
            text-decoration: none; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase;
            font-size: 14px; transition: all 0.3s; border: none; cursor: pointer; display: inline-block;
        }
        .btn-primary:hover { background: var(--gold-light); transform: translateY(-3px); box-shadow: 0 10px 30px rgba(219, 151, 56, 0.4); }
        .btn-outline {
            background: transparent; color: var(--white); padding: 16px 40px; border-radius: 4px;
            text-decoration: none; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase;
            font-size: 14px; border: 1px solid rgba(255,255,255,0.3); transition: all 0.3s; display: inline-block;
        }
        .btn-outline:hover { border-color: var(--gold); color: var(--gold); }

        /* SECTIONS */
        section { padding: 100px 30px; max-width: 1300px; margin: 0 auto; }
        /* mobilní zrychlení: sekce mimo obrazovku se nevykreslují, dokud nejsou potřeba */
        #program, #akce, #koktejly, #galerie, #recenze, #onas, #rezervace, #kontakt { content-visibility: auto; contain-intrinsic-size: 1px 900px; }
        .section-header { text-align: center; margin-bottom: 70px; }
        .section-label { color: var(--gold); font-size: 13px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 14px; font-weight: 500; }
        .section-title { font-size: clamp(36px, 6vw, 60px); font-weight: 700; line-height: 1.1; }
        .section-title .gold { color: var(--gold); font-style: italic; }

        /* PROGRAM */
        .program-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 30px; max-width: 760px; margin: 0 auto; }
        .program-card {
            background: var(--black-card); border-radius: 8px; overflow: hidden;
            border: 1px solid rgba(219, 151, 56, 0.15); transition: all 0.4s;
            display: flex; flex-direction: column;
        }
        .program-card:hover { transform: translateY(-8px); border-color: var(--gold); box-shadow: 0 20px 50px rgba(0,0,0,0.6); }
        .program-card-img { height: 240px; position: relative; overflow: hidden; }
        .program-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
        .program-card-tag {
            position: absolute; top: 16px; left: 16px; background: var(--gold); color: var(--black);
            padding: 6px 14px; border-radius: 3px; font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
        }
        .program-card-body { padding: 28px; flex: 1; display: flex; flex-direction: column; }
        .program-card-body h3 { font-size: 30px; margin-bottom: 16px; color: var(--gold); }
        .program-card-body ul { list-style: none; margin-bottom: 24px; flex: 1; }
        .program-card-body ul li { padding: 6px 0; color: var(--grey); font-size: 15px; padding-left: 24px; position: relative; }
        .program-card-body ul li::before { content: '✦'; position: absolute; left: 0; color: var(--gold); }
        .card-link {
            color: var(--gold); text-decoration: none; font-size: 14px; font-weight: 600;
            letter-spacing: 1px; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; transition: gap 0.3s; cursor: pointer;
        }
        .card-link:hover { gap: 14px; }

        /* GALLERY */
        .gallery-section { background: var(--black-soft); max-width: 100%; margin: 0; }
        .gallery-inner { max-width: 1300px; margin: 0 auto; }
        .gallery-desktop { display: block; position: relative; max-width: 1500px; margin: 0 auto; }
        /* Posouvající se sloupce fotek – stejný princip jako u recenzí (auto-scroll), akorát
           v podobě sloupců fotek, ne karet. Fotky nikdy neořezáváme ani nedeformujeme – mají
           height:auto, takže si drží svůj přirozený poměr stran. Ježdění se zastaví přesně
           ve chvíli, kdy je myš nad konkrétní fotkou (a ukáže se její popisek) – čistě v CSS. */
        .pg-viewport { overflow: hidden; padding: 10px 0; min-height: 540px;
            -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
        .pg-track { display: flex; gap: 14px; width: max-content; }
        .pg-track.auto { animation: pgPosun 70s linear infinite; }
        @media (hover: hover) { .pg-viewport:has(.pg-tile:hover) .pg-track.auto { animation-play-state: paused; } }
        @keyframes pgPosun { from { transform: translateX(0); } to { transform: translateX(-50%); } }
        .pg-col { display: flex; flex-direction: column; gap: 14px; flex: 0 0 auto; }
        .pg-tile { position: relative; border-radius: 5px; overflow: hidden; cursor: pointer; }
        .pg-tile img { width: 100%; height: auto; display: block; -webkit-user-drag: none; user-select: none;
            transition: transform 0.5s cubic-bezier(.2,.7,.2,1); }
        .pg-tile:hover img { transform: scale(1.03); }
        .pg-tile .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 16px 14px 11px;
            background: linear-gradient(0deg, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0) 65%);
            font-size: 13.5px; font-weight: 500; color: var(--white); letter-spacing: 0.2px;
            transform: translateY(8px); opacity: 0; transition: opacity 0.3s, transform 0.3s; pointer-events: none; }
        @media (hover: hover) { .pg-tile:hover .cap { transform: translateY(0); opacity: 1; } }
        @media (hover: none) { .pg-tile .cap { display: none; } }

        /* posuvník galerie (počítač) */
        .gallery-slider { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
        .gs-track { display: flex; gap: 10px; overflow-x: auto; scroll-behavior: smooth; flex: 1; padding: 4px 2px; scrollbar-width: thin; scrollbar-color: rgba(219,151,56,0.4) transparent; }
        .gs-track::-webkit-scrollbar { height: 6px; }
        .gs-track::-webkit-scrollbar-thumb { background: rgba(219,151,56,0.4); border-radius: 3px; }
        .gs-thumb { flex: 0 0 auto; width: 150px; height: 100px; background-size: cover; background-position: center; border-radius: 6px; cursor: pointer; border: 1px solid rgba(219,151,56,0.2); transition: transform .25s, border-color .25s; }
        .gs-thumb:hover { border-color: var(--gold); transform: translateY(-2px); }
        .gs-arrow { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; background: var(--black-card); border: 1px solid rgba(219,151,56,0.3); color: var(--gold); font-size: 20px; cursor: pointer; transition: background .2s, color .2s; }
        .gs-arrow:hover { background: var(--gold); color: var(--black); }
        @media (hover: none), (max-width: 768px) { .gallery-slider { display: none; } }

        /* GALERIE NA MOBILU – coverflow (na počítači skrytá) */
        .gallery-flow { display: none; }
        .gallery-flow-track {
            display: flex; align-items: center; gap: 14px;
            overflow-x: auto; scroll-snap-type: x proximity;
            scrollbar-width: none; -webkit-overflow-scrolling: touch;
            padding: 26px 0 30px;
        }
        .gallery-flow-track::-webkit-scrollbar { display: none; }
        .gallery-flow-item {
            flex: 0 0 auto; scroll-snap-align: center;
            height: 220px;                 /* pevná výška – šířka se dopočítá podle fotky */
            border-radius: 10px;           /* mírně zaoblené rohy */
            overflow: hidden;
            transition: transform .28s ease-out, box-shadow .28s ease-out, filter .28s ease-out;
            will-change: transform, filter;
            box-shadow: 0 8px 20px rgba(0,0,0,.55);
            cursor: pointer;
        }
        .gallery-flow-item img { height: 100%; width: auto; display: block; }
        .gallery-flow-cap {
            text-align: center; color: var(--gold-light);
            font-size: 13px; min-height: 20px; letter-spacing: .3px;
        }
        /* ===== TLAČÍTKO A MODAL 3D PROHLÍDKY ===== */
        .tour-cta{ text-align:center; margin-top:34px; }
        /* stejné zaoblení a styl jako tlačítko "Celé menu" pod koktejly (.btn-menu) */
        .tour-cta .btn-secondary{
            display:inline-flex; align-items:center; gap:10px;
            background:transparent; color:var(--gold);
            border:1px solid var(--gold); border-radius:6px; padding:15px 32px;
            font-family:'Outfit',sans-serif; font-weight:600; letter-spacing:1.5px;
            text-transform:uppercase; font-size:14px; cursor:pointer; transition:all .35s ease;
        }
        .tour-cta .btn-secondary:hover{
            background:var(--gold); color:var(--black);
            box-shadow:0 0 26px rgba(219,151,56,0.5); transform:translateY(-2px);
        }
        .tour-ico{ font-size:16px; line-height:1; display:inline-block; transition:transform .4s; }
        .tour-cta .btn-secondary:hover .tour-ico{ transform:rotate(180deg); }
        .tour-hint{ margin:10px 0 0; font-size:13px; color:var(--grey-dark); }
        @media (max-width:900px){ .tour-cta .btn-secondary{ padding:14px 28px; font-size:13px; } }

        .tour-modal{ position:fixed; inset:0; z-index:3200; background:#000; display:none;
                     flex-direction:column; }
        .tour-modal.open{ display:flex; }
        .tour-modal-head{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
                     padding:14px 20px; background:var(--black-soft,#141414);
                     border-bottom:1px solid rgba(219,151,56,.2);
                     font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--gold); }
        .tour-modal-head button{ background:none; border:1px solid rgba(219,151,56,.35); color:var(--gold);
                     width:34px; height:34px; border-radius:50%; font-size:15px; cursor:pointer;
                     display:flex; align-items:center; justify-content:center; transition:.2s; }
        .tour-modal-head button:hover{ background:var(--gold); color:var(--black); }
        .tour-frame-wrap{ flex:1 1 auto; position:relative; }
        .tour-frame-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
        .tour-loading{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
                     color:var(--grey); font-family:'Outfit',sans-serif; font-size:14px; }
        @media (max-width:640px){ .tour-modal-head{ font-size:16px; padding:12px 16px; } }

        .gallery-flow-hint { text-align: center; color: var(--grey-dark); font-size: 11px; margin-top: 8px; }

        /* zvětšená fotka po klepnutí */
        .gallery-lightbox { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.96); z-index: 4500; align-items: center; justify-content: center; padding: 20px; }
        .gallery-lightbox.open { display: flex; }
        .gallery-lightbox img { max-width: 100%; max-height: 86vh; border-radius: 10px; }
        .gallery-lightbox button { position: absolute; top: 18px; right: 18px; width: 42px; height: 42px; border-radius: 50%; background: rgba(0,0,0,.6); border: 1px solid var(--gold); color: var(--gold); font-size: 20px; cursor: pointer; }

        /* RECENZE */
        .reviews-section { background: var(--black); max-width: 100%; margin: 0; }
        .rating-summary { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; }
        .rating-summary .score { font-size: 32px; font-weight: 700; color: var(--gold); font-family: 'Cormorant Garamond', serif; }
        .rating-summary .stars { color: var(--gold); font-size: 20px; letter-spacing: 2px; }
        .rating-summary .count { color: var(--grey-dark); font-size: 14px; }
        .reviews-wrap { position: relative; max-width: 1300px; margin: 0 auto; }
        .reviews-viewport { overflow: hidden; padding: 16px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
        .reviews-track { display: flex; gap: 24px; width: max-content; }
        .reviews-track.auto { animation: scrollLeft 45s linear infinite; }
        .reviews-track.auto.paused { animation-play-state: paused; }
        @keyframes scrollLeft { from { transform: translateX(0); } to { transform: translateX(-50%); } }
        .review-card { background: var(--black-card); border: 1px solid rgba(219,151,56,0.35); border-radius: 12px; padding: 28px; width: 360px; flex-shrink: 0; display: flex; flex-direction: column; box-shadow: 0 0 22px rgba(219,151,56,0.12), inset 0 0 30px rgba(219,151,56,0.04); transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
        .review-card:hover { border-color: var(--gold); box-shadow: 0 0 32px rgba(219,151,56,0.28), inset 0 0 30px rgba(219,151,56,0.06); transform: translateY(-4px); }
        .review-stars { color: var(--gold); font-size: 16px; letter-spacing: 2px; margin-bottom: 14px; }
        .review-text { color: var(--white); font-size: 15px; line-height: 1.7; flex: 1; margin-bottom: 20px; }
        .review-author { display: flex; align-items: center; gap: 12px; }
        .review-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), var(--gold-light)); display: flex; align-items: center; justify-content: center; color: var(--black); font-weight: 700; font-size: 18px; font-family: 'Cormorant Garamond', serif; }
        .review-meta .name { font-weight: 600; color: var(--white); font-size: 15px; }
        .review-meta .source { color: var(--grey-dark); font-size: 12px; }
        .rev-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 50px; height: 50px; border-radius: 50%; background: rgba(20,20,20,0.9); border: 1px solid var(--gold); color: var(--gold); font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 10; transition: all 0.3s; }
        .rev-arrow:hover { background: var(--gold); color: var(--black); box-shadow: 0 0 20px rgba(219,151,56,0.5); }
        .rev-arrow.prev { left: -6px; }
        .rev-arrow.next { right: -6px; }
        .rev-hint { text-align: center; color: var(--grey-dark); font-size: 12px; letter-spacing: 0.5px; margin-top: 28px; }
        @media (max-width: 600px) {
            .review-card { width: 300px; padding: 22px; }
            .rev-arrow { width: 42px; height: 42px; font-size: 17px; }
            .rev-arrow.prev { left: 2px; }
            .rev-arrow.next { right: 2px; }
        }

        /* COCKTAILS */
        .cocktail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
        .cocktail-card { text-align: center; transition: all 0.3s; }
        .cocktail-card:hover { transform: translateY(-6px); }
        .cocktail-img { aspect-ratio: 3/4; background-size: cover; background-position: center; border-radius: 8px; margin-bottom: 16px; border: 1px solid rgba(219,151,56,0.2); }
        .cocktail-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: var(--white); font-weight: 600; }

        /* OFFERS */
        .offers-section { background: linear-gradient(135deg, var(--black-soft), var(--black)); max-width: 100%; margin: 0; }
        .offers-inner { max-width: 1300px; margin: 0 auto; }
        .actions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 26px; }
        .action-card { background: var(--black-card); border-radius: 8px; overflow: hidden; border: 1px solid rgba(219,151,56,0.12); transition: all 0.4s; display: flex; flex-direction: column; height: 100%; }
        .action-card:hover { border-color: var(--gold); transform: translateY(-5px); }
        .action-card-img { height: 180px; flex: 0 0 180px; position: relative; overflow: hidden; }
        .action-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
        .action-perk { position: absolute; top: 14px; right: 14px; background: var(--red); color: #fff; padding: 6px 14px; border-radius: 3px; font-size: 12px; font-weight: 600; }
        .action-card-body { padding: 24px; display: flex; flex-direction: column; flex: 1 1 auto; }
        .action-card-body h3 { font-size: 25px; color: var(--gold); margin-bottom: 12px; }
        .action-card-body p { color: var(--grey); font-size: 14px; }


        /* AKCE – tlačítko "zobrazit více" */
        .action-card-body .card-link { margin-top: auto; padding-top: 16px; align-self: flex-start; }
        .action-card-body p { margin-bottom: 0; }

        /* ===== MENU v2 (namespace zm-) ===== */
        .zm-active-reset{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--black);border:1px solid var(--gold);padding:12px 22px;border-radius:8px;cursor:pointer;font-family:'Outfit',sans-serif;font-weight:700;font-size:14px;transition:all .25s;box-shadow:0 0 0 rgba(219,151,56,0.5);animation:zmPulse 2s ease-in-out infinite;}
        .zm-active-reset:hover{background:var(--gold-light);border-color:var(--gold-light);}
        .zm-active-reset .zm-ar-dot{width:9px;height:9px;border-radius:50%;background:var(--black);flex-shrink:0;}
        @keyframes zmPulse{0%,100%{box-shadow:0 0 0 0 rgba(219,151,56,0.45);}50%{box-shadow:0 0 0 6px rgba(219,151,56,0);}}

        /* drawer vpravo */
        .zm-fgroup{margin-bottom:32px;}
        .zm-flabel{color:var(--gold);font-size:12px;font-weight:600;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase;}

        /* posuvník dva jezdce */

        /* řazení */
        .zm-buttons{display:flex;gap:8px;flex-wrap:wrap;}
        .zm-btn{background:var(--black-card);color:var(--gold);border:1px solid rgba(219,151,56,0.3);padding:9px 16px;border-radius:6px;cursor:pointer;font-family:'Outfit',sans-serif;font-weight:600;font-size:13.5px;transition:all .25s;}
        .zm-btn:hover{border-color:var(--gold);background:rgba(219,151,56,0.12);}
        .zm-btn.active{background:var(--gold);color:var(--black);border-color:var(--gold);}

        /* happy hours checkbox */
        .zm-check{display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none;padding:14px 16px;background:var(--black-card);border:1px solid rgba(219,151,56,0.3);border-radius:8px;transition:all .25s;}
        .zm-check:hover{border-color:var(--gold);}
        .zm-check input{width:20px;height:20px;accent-color:var(--gold);cursor:pointer;}
        .zm-check span{font-size:14px;font-weight:600;color:var(--white);}

        .zm-reset:hover{border-color:var(--gold);color:var(--gold);}


        /* ===== FILTR MENU ===== */
        /* Filtr zůstává nahoře, ale POD hlavičkou podstránky – jinak by na mobilu
           překryl rozbalené menu s odkazy (hlavička má z-index 10). */
        .zm-filtry{position:sticky;top:0;z-index:5;background:rgba(10,10,10,.97);backdrop-filter:blur(12px);
                   -webkit-backdrop-filter:blur(12px);padding:14px 0 12px;margin:0 0 6px;
                   border-bottom:1px solid rgba(219,151,56,.15);}
        /* když je otevřené menu s odkazy, filtr ustoupí úplně */
        body:has(.nav-links.open) .zm-filtry{ opacity:0; pointer-events:none; }
        .zm-skupiny{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;}
        .zm-sk{background:transparent;border:1px solid rgba(219,151,56,.3);color:var(--grey);
               border-radius:999px;padding:9px 20px;font-family:'Outfit',sans-serif;font-size:13.5px;
               font-weight:500;cursor:pointer;transition:.18s;}
        .zm-sk:hover{border-color:var(--gold);color:var(--white);}
        .zm-sk.on{background:var(--gold);border-color:var(--gold);color:#0a0a0a;font-weight:600;}
        .zm-sk span{opacity:.6;font-size:12px;margin-left:3px;}

        /* posuvník kategorií */
        .zm-kat-obal{position:relative;padding:0 34px;}
        .zm-kat-pas{display:flex;gap:7px;overflow-x:auto;scroll-behavior:smooth;padding:3px 2px 8px;
                    scrollbar-width:thin;scrollbar-color:rgba(219,151,56,.45) transparent;}
        .zm-kat-pas::-webkit-scrollbar{height:5px;}
        .zm-kat-pas::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:99px;}
        .zm-kat-pas::-webkit-scrollbar-thumb{background:linear-gradient(90deg,var(--gold),var(--gold-light));
                    border-radius:99px;}
        .zm-kat-obal::before,.zm-kat-obal::after{content:'';position:absolute;top:0;bottom:8px;width:44px;
                    pointer-events:none;opacity:0;transition:opacity .2s;z-index:2;}
        .zm-kat-obal::before{left:30px;background:linear-gradient(90deg,#0a0a0a,rgba(10,10,10,0));}
        .zm-kat-obal::after{right:30px;background:linear-gradient(270deg,#0a0a0a,rgba(10,10,10,0));}
        .zm-kat-obal.lze-vlevo::before{opacity:1;}
        .zm-kat-obal.lze-vpravo::after{opacity:1;}
        .zm-sip{position:absolute;top:50%;transform:translateY(-60%);width:30px;height:30px;z-index:3;
                background:rgba(20,17,13,.92);border:1px solid rgba(219,151,56,.35);color:var(--gold);
                border-radius:50%;font-size:17px;line-height:1;cursor:pointer;display:flex;
                align-items:center;justify-content:center;transition:.18s;opacity:0;pointer-events:none;}
        .zm-sip.vlevo{left:0;} .zm-sip.vpravo{right:0;}
        .zm-kat-obal.lze-vlevo .zm-sip.vlevo,
        .zm-kat-obal.lze-vpravo .zm-sip.vpravo{opacity:1;pointer-events:auto;}
        .zm-sip:hover{background:var(--gold);color:#0a0a0a;}
        .zm-kb{flex:0 0 auto;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
               color:#cfc7bd;border-radius:8px;padding:7px 13px;font-family:'Outfit',sans-serif;
               font-size:12.5px;cursor:pointer;white-space:nowrap;transition:.18s;}
        .zm-kb:hover{border-color:rgba(219,151,56,.55);color:#fff;}
        .zm-kb.on{background:rgba(219,151,56,.16);border-color:var(--gold);color:var(--gold-light);font-weight:600;}

        .zm-active-reset{display:none;align-items:center;gap:9px;margin:10px auto 0;
               background:rgba(219,151,56,.12);border:1px solid rgba(219,151,56,.45);color:var(--gold-light);
               border-radius:999px;padding:8px 18px;font-family:'Outfit',sans-serif;font-size:13px;
               font-weight:500;cursor:pointer;transition:.18s;}
        .zm-active-reset:hover{background:rgba(219,151,56,.22);border-color:var(--gold);}
        .zm-ar-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);
               box-shadow:0 0 0 0 rgba(219,151,56,.6);animation:zmDot 2s ease-out infinite;}
        @keyframes zmDot{0%{box-shadow:0 0 0 0 rgba(219,151,56,.55)}70%{box-shadow:0 0 0 8px rgba(219,151,56,0)}100%{box-shadow:0 0 0 0 rgba(219,151,56,0)}}

        /* ===== VÝPIS ===== */
        .zm-grid-in{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:6px;}
        .zm-pozn{color:var(--gold);font-size:13px;margin:5px 0 0;font-weight:500;}
        /* název −15 %, cena −20 % oproti původnímu; zalomení místo useknutí */
        .zm-nazev{text-transform:uppercase;letter-spacing:.2px;font-size:17.8px;line-height:1.2;
                  overflow-wrap:anywhere;word-break:break-word;hyphens:auto;min-width:0;}
        .zm-card.s-foto .zm-nazev{font-size:19.6px;}
        .zm-price{font-size:15.2px;white-space:nowrap;}
        /* položky bez fotky mají na počítači užší kartu – cena o 15 % menší */
        @media (min-width:821px){ .zm-card:not(.s-foto) .zm-price{font-size:16.4px;} }
        .zm-card.s-foto .zm-price{font-size:19.2px;}
        .zm-price-wrap{flex-shrink:0;min-width:0;}
        .zm-card-top{gap:12px;align-items:flex-start;}
        .zm-card-top > h3{flex:1 1 auto;min-width:0;}
        .zm-vol{font-size:11.5px;}
        .zm-ing{color:var(--grey);font-size:13.5px;line-height:1.55;margin:7px 0 0;}
        /* položky bez fotky jsou kompaktnější – na jedno scrollnutí jich je vidět víc */
        .zm-card:not(.s-foto) .zm-content{padding:9px 15px;justify-content:center;width:100%;}
        .zm-card:not(.s-foto) .zm-nazev{font-size:15.1px;line-height:1.15;}
        .zm-card:not(.s-foto) .zm-ing{font-size:12.3px;line-height:1.4;margin-top:3px;}
        .zm-card:not(.s-foto) .zm-vol{font-size:10.5px;margin-top:1px;}
        .zm-card:not(.s-foto) .zm-card-top{gap:10px;}
        .zm-card:not(.s-foto){min-height:0;}
        .zm-empty{grid-column:1/-1;text-align:center;color:var(--grey-dark);padding:56px 20px;}


        /* jeden společný rámeček pro sekce bez fotek */
        .zm-block{background:var(--black-card);border:1px solid rgba(219,151,56,.15);border-radius:10px;
                  overflow:hidden;margin-bottom:6px;}
        .zm-block .zm-card{background:transparent;border:0;border-radius:0;transform:none !important;
                  box-shadow:none !important;border-bottom:1px solid rgba(219,151,56,.09);}
        .zm-block .zm-card:last-child{border-bottom:0;}
        .zm-block .zm-card:hover{background:rgba(219,151,56,.05);}
        @media (min-width:821px){
            .zm-block{display:grid;grid-template-columns:1fr 1fr;}
            .zm-block .zm-card:nth-child(odd){border-right:1px solid rgba(219,151,56,.09);}
            /* poslední řádek nemá spodní linku */
            .zm-block .zm-card:nth-last-child(-n+2):nth-child(odd){border-bottom:0;}
        }

        /* objem společný pro celou sekci – vedle nadpisu */
        .zm-obj{font-family:'Outfit',sans-serif;font-size:12.7px;font-weight:500;color:var(--grey-dark);
                margin-left:11px;letter-spacing:.3px;vertical-align:middle;}

        /* ===== ADMIN ===== */
        .zm-content{position:relative;}
        .zm-del{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;
                background:rgba(200,60,50,.16);border:1px solid rgba(200,60,50,.5);color:#ff8579;
                font-size:15px;line-height:1;cursor:pointer;z-index:3;display:none;}
        .zm-card-edit .zm-del{display:block;}
        .zm-del:hover{background:rgba(200,60,50,.4);color:#fff;}
        .zm-card-edit [contenteditable="true"]{outline:1px dashed rgba(219,151,56,.55);outline-offset:3px;
                border-radius:3px;cursor:text;}
        .zm-card-edit [contenteditable="true"]:focus{outline:2px solid var(--gold);
                background:rgba(219,151,56,.08);}
        .zm-add-wrap{margin:2px 0 8px;}
        .zm-add{background:rgba(219,151,56,.1);border:1px dashed rgba(219,151,56,.5);color:var(--gold);
                border-radius:9px;padding:11px 20px;font-family:'Outfit',sans-serif;font-size:13.5px;
                font-weight:600;cursor:pointer;transition:.18s;width:100%;}
        .zm-add:hover{background:rgba(219,151,56,.2);border-style:solid;}

        @media (max-width:820px){
          .zm-grid-in{grid-template-columns:1fr;gap:12px;}
          .zm-kat-obal{padding:0;}
          .zm-sip{display:none;}
          .zm-kat-obal::before,.zm-kat-obal::after{width:26px;}
          .zm-kat-obal::before{left:0;} .zm-kat-obal::after{right:0;}
        }

        /* výpis + karty */
        .zm-count{color:var(--grey-dark);font-size:13px;margin-bottom:18px;}
        .zm-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
        /* výpis je obyčejný blok – mřížky jsou až uvnitř jednotlivých sekcí */
        .zm-vypis{display:block;}
        .zm-section-head{grid-column:1/-1;margin:14px 0 4px;}
        .zm-section-head:first-child{margin-top:0;}
        .zm-section-head h2{font-family:'Cormorant Garamond',serif;color:var(--white);font-size:30px;font-weight:600;}
        .zm-section-head .zm-cnt{color:var(--grey-dark);font-size:13px;font-weight:400;margin-left:10px;}
        .zm-section-head .zm-line{height:2px;background:linear-gradient(90deg,var(--gold),rgba(219,151,56,0.05));margin-top:8px;border-radius:2px;}
        .zm-card{background:var(--black-card);border:1px solid rgba(219,151,56,0.15);border-radius:10px;overflow:hidden;transition:all .3s;display:flex;min-height:150px;}
        .zm-card:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,0.5);}
        .zm-foto{width:150px;flex-shrink:0;background-size:cover;background-position:center;border-right:1px solid rgba(219,151,56,0.12);}
        .zm-foto-empty{background:linear-gradient(135deg,#191919,#141414);border-right:1px solid rgba(219,151,56,0.08);}
        .zm-content{padding:20px 22px;flex:1;display:flex;flex-direction:column;}
        .zm-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;}
        .zm-card h3{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:23px;font-weight:600;line-height:1.15;margin:0;}
        .zm-price-wrap{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;}
        .zm-price{color:var(--white);font-size:26px;font-weight:700;white-space:nowrap;line-height:1.1;}
        .zm-vol{color:var(--grey-dark);font-size:13px;font-weight:500;white-space:nowrap;line-height:1.1;margin-top:2px;}
        /* editace menu */
        .zm-card-edit h3, .zm-card-edit .zm-price { outline:1px dashed rgba(219,151,56,0.6); outline-offset:2px; border-radius:3px; cursor:text; }
        .zm-card-edit h3:focus, .zm-card-edit .zm-price:focus { outline:2px solid var(--gold); background:rgba(219,151,56,0.08); }
        .zm-foto-edit { position:relative; cursor:pointer; }
        .zm-foto-edit .zm-foto-badge { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; background:rgba(0,0,0,0.55); color:var(--gold); font-size:11px; font-weight:600; opacity:0; transition:opacity .2s; padding:6px; }
        .zm-foto-edit:hover .zm-foto-badge, .zm-foto-edit.zm-foto-empty .zm-foto-badge { opacity:1; }
        /* modal foto – náhledy PC/mobil */
        .mfoto-box { max-width:560px; }
        .mfoto-upload { display:inline-block; background:var(--black-card); border:1px solid rgba(219,151,56,0.3); color:var(--gold); padding:12px 20px; border-radius:8px; cursor:pointer; font-weight:600; font-size:14px; }
        .mfoto-upload:hover { border-color:var(--gold); }
        .mfoto-frames { display:flex; gap:22px; justify-content:center; margin:18px 0 22px; }
        .mfoto-col { text-align:center; }
        .mfoto-label { color:var(--grey); font-size:12px; margin-bottom:8px; text-transform:uppercase; letter-spacing:0.5px; }
        .mfoto-frame { background-size:cover; background-position:50% 50%; background-repeat:no-repeat; border:2px solid rgba(219,151,56,0.4); border-radius:8px; cursor:grab; touch-action:none; }
        .mfoto-frame.grab { cursor:grabbing; }
        .mfoto-frame.empty { background:linear-gradient(135deg,#191919,#141414); }
        .mfoto-frame.empty::after { content:'bez fotky'; display:flex; align-items:center; justify-content:center; height:100%; color:var(--grey-dark); font-size:12px; }
        .mfoto-desk { width:150px; height:150px; }   /* poměr fotky na počítači */
        .mfoto-mob { width:100px; height:150px; }     /* užší sloupec na mobilu */
        .mfoto-actions { display:flex; justify-content:space-between; gap:12px; }
        .zm-card p{color:var(--grey);font-size:13.5px;line-height:1.55;margin-bottom:12px;flex:1;}
        .zm-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;}
        .zm-tag{font-size:11px;color:var(--grey);background:rgba(219,151,56,0.1);padding:3px 9px;border-radius:4px;letter-spacing:.3px;}
        .zm-tag.base{color:var(--gold);}
        .zm-tag.hh{color:var(--black);background:var(--gold);font-weight:700;}
        .zm-empty{grid-column:1/-1;text-align:center;color:var(--grey-dark);padding:50px 20px;font-size:15px;}
        .zm-more:hover{background:var(--gold);color:var(--black);}

        @media (max-width:900px){
          .zm-grid{grid-template-columns:1fr;}
          .page-hero h1, .page-hero h2{font-size:40px;}
          .zm-foto{width:110px;}
        }
        @media (max-width:520px){
          .zm-foto{width:92px; background-position: var(--m-pos, 50% 50%);}
          .zm-content{padding:16px;}
          .zm-price{font-size:22px;} .zm-vol{font-size:11px;}
        }


        /* ==========================================================
           AKTUALITY
           Sekce je záměrně nižší než ostatní, ať nezabírá půl stránky.
           Fotky si drží tvar, ve kterém byly nahrané – nikdy se
           neořezávají. Šířku bloku s fotkami řídí admin (--news-w).
           ========================================================== */
        .news-section {
            background: var(--black-soft); max-width: 100%; margin: 0;
            display: none; padding: 26px 30px;
        }
        .news-section.show { display: block; }
        .news-inner { max-width: 1300px; margin: 0 auto; }
        .news-head { text-align: center; margin-bottom: 14px; }
        .news-head h2 {
            font-size: clamp(20px, 2.6vw, 28px); font-weight: 700;
            line-height: 1.12; color: var(--white);
        }
        /* rámeček jen tehdy, když sekce obsahuje fotky (třída .has-photos) */
        .news-card { padding: 4px 8px; border-radius: 10px; }
        .news-card.has-photos {
            background: var(--black-card);
            border: 1px solid rgba(219,151,56,0.2);
            padding: 18px 20px;
        }
        .news-card h3 { font-size: clamp(17px, 2.1vw, 21px); color: var(--gold); margin-bottom: 6px; line-height: 1.15; }
        .news-card p { color: var(--grey); font-size: 14px; line-height: 1.65; }
        /* zarovnání textu – nastavuje admin */
        .news-card.align-center { text-align: center; }
        .news-card.align-center .news-photos-wrap { justify-content: center; }
        .news-card.align-left { text-align: left; }

        .news-photos-wrap { display: flex; justify-content: center; margin-top: 20px; }
        .news-photos {
            display: grid; gap: 12px;
            width: var(--news-w, 70%);
        }
        .news-photos.n1 { grid-template-columns: 1fr; }
        .news-photos.n2 { grid-template-columns: 1fr 1fr; }
        .news-photos.n3 { grid-template-columns: repeat(3, 1fr); }
        .news-photos img {
            width: 100%; height: auto; display: block;
            border-radius: 6px; border: 1px solid rgba(219,151,56,0.15);
            cursor: pointer; transition: transform 0.3s;
        }
        .news-photos img:hover { transform: scale(1.02); }

        @media (max-width: 700px) {
            .news-section { padding: 20px 16px; }
            .news-head { margin-bottom: 12px; }
            .news-card.has-photos { padding: 15px 14px; }
            .news-card p { font-size: 13.5px; }
            /* na mobilu jde blok vždy přes celou šířku */
            .news-photos { width: 100% !important; gap: 8px; }
            /* pod sebou (výchozí) */
            .news-photos.mob-stack { grid-template-columns: 1fr; }
            /* vedle sebe – ať se dlouho neroluje */
            .news-photos.mob-row.n2 { grid-template-columns: 1fr 1fr; }
            .news-photos.mob-row.n3 { grid-template-columns: repeat(3, 1fr); }
        }

        /* ADMIN OKNA (aktuality, pořadí sekcí) */
        .adm-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.92); z-index: 5000; overflow-y: auto; padding: 40px 20px; }
        .adm-modal.open { display: block; }
        .adm-box { max-width: 620px; margin: 0 auto; background: var(--black-card); border-radius: 12px; border: 1px solid var(--gold); padding: 32px; }
        .adm-box h3 { color: var(--gold); font-size: 26px; margin-bottom: 6px; }
        .adm-box .adm-hint { color: var(--grey-dark); font-size: 13px; margin-bottom: 24px; }
        .adm-field { margin-bottom: 18px; }
        .adm-field label { display: block; color: var(--gold); font-size: 13px; font-weight: 500; letter-spacing: 0.5px; margin-bottom: 8px; }
        .adm-field input[type=text], .adm-field textarea, .adm-field select {
            width: 100%; padding: 13px; background: var(--black); border: 1px solid rgba(219,151,56,0.3);
            color: var(--white); border-radius: 6px; font-size: 15px; font-family: 'Outfit', sans-serif;
        }
        .adm-field textarea { resize: vertical; min-height: 90px; }
        .adm-field input:focus, .adm-field textarea:focus, .adm-field select:focus { outline: none; border-color: var(--gold); }
        .adm-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
        .adm-photo { position: relative; aspect-ratio: 4/3; border-radius: 6px; overflow: hidden; border: 1px solid rgba(219,151,56,0.25); background: var(--black); }
        .adm-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .adm-photo-del { position: absolute; top: 5px; right: 5px; width: 26px; height: 26px; background: rgba(0,0,0,0.75); border: 1px solid var(--gold); color: var(--gold); border-radius: 50%; cursor: pointer; font-size: 13px; line-height: 1; }
        .adm-photo-add { aspect-ratio: 4/3; border: 1px dashed rgba(219,151,56,0.45); border-radius: 6px; background: transparent; color: var(--gold); cursor: pointer; font-family: 'Outfit', sans-serif; font-size: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
        .adm-photo-add:hover { border-color: var(--gold); background: rgba(219,151,56,0.08); }
        .adm-photo-add .plus { font-size: 22px; }
        .adm-buttons { display: flex; gap: 12px; margin-top: 26px; }
        .adm-buttons button { flex: 1; padding: 14px; border-radius: 6px; cursor: pointer; font-family: 'Outfit', sans-serif; font-weight: 600; letter-spacing: 0.5px; font-size: 14px; border: none; }
        .adm-save { background: var(--gold); color: var(--black); }
        .adm-save:hover { background: var(--gold-light); }
        .adm-cancel { background: transparent; color: var(--grey); border: 1px solid rgba(255,255,255,0.2) !important; }
        .adm-cancel:hover { border-color: var(--gold) !important; color: var(--gold); }
        .adm-toggle { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: var(--black); border: 1px solid rgba(219,151,56,0.25); border-radius: 6px; margin-bottom: 18px; cursor: pointer; }
        .adm-toggle input { width: 18px; height: 18px; accent-color: var(--gold); cursor: pointer; }
        .adm-toggle label { color: var(--white); font-size: 14px; cursor: pointer; margin: 0; }

        /* SEZNAM SEKCÍ */
        .ord-item { display: flex; align-items: center; gap: 12px; padding: 13px 16px; background: var(--black); border: 1px solid rgba(219,151,56,0.2); border-radius: 6px; margin-bottom: 8px; }
        .ord-num { color: var(--grey-dark); font-size: 13px; min-width: 18px; }
        .ord-name { flex: 1; color: var(--white); font-size: 15px; }
        .ord-btn { width: 34px; height: 34px; background: transparent; border: 1px solid rgba(219,151,56,0.3); color: var(--gold); border-radius: 5px; cursor: pointer; font-size: 15px; line-height: 1; }
        .ord-btn:hover:not(:disabled) { background: rgba(219,151,56,0.15); border-color: var(--gold); }
        .ord-btn:disabled { opacity: 0.25; cursor: not-allowed; }


        /* SIGNATURE KOKTEJLY */
        .cocktails-section { background: var(--black); padding: 70px 30px; }
        .cocktails-inner { max-width: 1300px; margin: 0 auto; }
        .cocktails-grid {
            display: grid; grid-template-columns: repeat(5, 1fr);
            gap: 18px; margin-top: 44px;
        }
        .cocktail-card {
            position: relative; border-radius: 10px; overflow: hidden;
            cursor: pointer; aspect-ratio: 293 / 440; background: #161616;
            border: 1px solid rgba(219,151,56,0.15);
        }
        .cocktail-card img {
            width: 100%; height: 100%; object-fit: cover; display: block;
            transition: transform 0.45s ease, filter 0.45s ease, opacity 0.45s ease;
            filter: brightness(0.72);
        }
        .cocktail-card:hover img,
        .cocktail-card:focus img,
        .cocktail-card.lit img {
            filter: brightness(1.08);
            transform: scale(1.05);
        }
        .cocktail-name {
            position: absolute; left: 0; right: 0; bottom: 0;
            padding: 26px 14px 14px;
            background: linear-gradient(to top, rgba(0,0,0,0.85), transparent);
            color: var(--white); font-family: 'Cormorant Garamond', serif;
            font-size: 19px; font-weight: 600; text-align: center;
            line-height: 1.2; pointer-events: none;
        }
        .cocktail-card::after {
            content: ''; position: absolute; inset: 0; border-radius: 10px;
            box-shadow: inset 0 0 0 1px transparent, 0 0 0 0 rgba(219,151,56,0);
            transition: box-shadow 0.45s ease; pointer-events: none;
        }
        .cocktail-card:hover::after,
        .cocktail-card:focus::after,
        .cocktail-card.lit::after {
            box-shadow: inset 0 0 0 1px rgba(219,151,56,0.6), 0 0 26px rgba(219,151,56,0.35);
        }
        .cocktails-cta { text-align: center; margin-top: 40px; }
        .cocktails-cta .btn-menu {
            display: inline-block; background: transparent; color: var(--gold);
            border: 1px solid var(--gold); padding: 15px 42px; border-radius: 6px;
            font-family: 'Outfit', sans-serif; font-weight: 600; letter-spacing: 1.5px;
            text-transform: uppercase; font-size: 14px; cursor: pointer;
            transition: all 0.35s ease;
        }
        .cocktails-cta .btn-menu:hover {
            background: var(--gold); color: var(--black);
            box-shadow: 0 0 26px rgba(219,151,56,0.5); transform: translateY(-2px);
        }
        @media (max-width: 900px) {
            .cocktails-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
            .cc-jen-pocitac { display: none; }   /* Espresso Martini – jen na počítači, na mobilu/tabletu lichý počet nevadí, protoze se skryje */
        }
        @media (max-width: 560px) {
            .cocktails-section { padding: 44px 16px; }
            .cocktails-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
            .cocktail-name { font-size: 16px; padding: 20px 8px 11px; }
            .cocktails-cta .btn-menu { padding: 14px 32px; font-size: 13px; }
        }

        /* ABOUT */
        .about-section { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
        .about-img { aspect-ratio: 4/5; border-radius: 10px; border: 1px solid rgba(219,151,56,0.2); overflow: hidden; position: relative; }
        .about-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
        .about-text h2 { font-size: clamp(34px, 5vw, 52px); margin-bottom: 26px; line-height: 1.1; }
        .about-text h2 .gold { color: var(--gold); font-style: italic; }
        .about-text p { color: var(--grey); font-size: 16px; margin-bottom: 20px; line-height: 1.8; }

        /* RESERVATION */
        .reservation-section { background: var(--black-soft); max-width: 100%; margin: 0; }
        .reservation-inner { max-width: 800px; margin: 0 auto; }
        .steps-indicator { display: flex; justify-content: space-between; margin-bottom: 28px; gap: 8px; }
        .step-dot { flex: 1; padding: 8px 8px; background: var(--black-card); border-radius: 6px; border: 1px solid rgba(255,255,255,0.08); transition: all 0.3s; display: flex; align-items: center; justify-content: center; gap: 8px; }
        .step-dot.active { background: rgba(219,151,56,0.15); border-color: var(--gold); }
        .step-dot .num { font-size: 14px; font-weight: 700; color: var(--grey-dark); line-height: 1; }
        .step-dot.active .num { color: var(--gold); }
        .step-dot .lbl { font-size: 12px; color: var(--grey-dark); letter-spacing: 0.3px; }
        .step-dot.active .lbl { color: var(--white); }
        .step-panel { display: none; }
        .step-panel.active { display: block; animation: fadeIn 0.4s; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
        .step-panel h3 { font-size: 30px; margin-bottom: 26px; text-align: center; color: var(--white); }
        .rez-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 30px; }
        .rez-option { background: var(--black-card); border: 1px solid rgba(219,151,56,0.2); padding: 22px; border-radius: 8px; cursor: pointer; transition: all 0.3s; display: flex; flex-direction: column; min-height: 150px; }
        .rez-option:hover { background: rgba(219,151,56,0.1); transform: translateY(-3px); }
        .rez-option.selected { border-color: var(--gold); background: rgba(219,151,56,0.15); }
        .rez-option-choice { position: relative; }
        .rez-option-choice > input { position: absolute; opacity: 0; pointer-events: none; }
        .rez-option-choice:has(input:checked) { border-color: var(--gold); background: rgba(219,151,56,0.15); }
        .rez-option-choice:focus-within { outline: 2px solid var(--gold); outline-offset: 2px; }
        .rez-option-link { color: inherit; text-decoration: none; }
        .rez-option-info h4 { font-family: 'Cormorant Garamond', serif; font-size: 25px; color: var(--gold); margin-bottom: 8px; line-height: 1.1; }
        .rez-option-info p { font-size: 14px; color: var(--grey); line-height: 1.5; }
        .rez-option-meta { margin-top: auto; text-align: right; padding-top: 16px; }
        .rez-cap { display: block; color: var(--white); font-size: 16px; font-weight: 700; line-height: 1.3; }
        .rez-cena { display: block; color: var(--gold); font-size: 13px; font-weight: 600; margin-top: 3px; white-space: nowrap; }
        @media (max-width: 720px) { .rez-options { grid-template-columns: 1fr; } .rez-option { min-height: 0; } .karaoke-grid { grid-template-columns: 1fr; } }
        .rez-options { margin-bottom: 14px; }
        .rez-options-wide { margin-bottom: 30px; }
        .rez-option-wide { background: var(--black-card); border: 1px solid rgba(219,151,56,0.2); padding: 22px 24px; border-radius: 8px; cursor: pointer; transition: all 0.3s; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
        .rez-option-wide:hover { background: rgba(219,151,56,0.1); transform: translateY(-3px); }
        .rez-option-wide.selected { border-color: var(--gold); background: rgba(219,151,56,0.15); }
        .rez-option-wide .rez-option-info h4 { font-family: 'Cormorant Garamond', serif; font-size: 25px; color: var(--gold); margin-bottom: 8px; line-height: 1.1; }
        .rez-option-wide .rez-option-info p { font-size: 14px; color: var(--grey); line-height: 1.5; }
        .rez-wide-meta { text-align: right; flex-shrink: 0; }
        .rez-cena-hl { font-size: 14px !important; }
        .karaoke-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
        .rez-badged { display: flex; flex-direction: column; }
        .rez-badge-top { text-align: center; background: rgba(219,151,56,0.15); border: 1px solid rgba(219,151,56,0.4); color: var(--gold); font-size: 12.5px; font-weight: 600; padding: 8px 10px; border-radius: 8px 8px 0 0; }
        .rez-badged .rez-option { border-radius: 0 0 8px 8px; border-top: none; height: 100%; }
        .cap-note { margin-top: 12px; font-size: 12.5px; color: var(--gold); line-height: 1.5; }
        .cap-note strong { color: var(--gold-light, #fbad43); }
        .cap-note.cap-full { color: #e58278; }
        .contact-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
        .call-btn-alt { background: transparent; color: var(--gold); border: 1px solid var(--gold); }
        .call-btn-alt:hover { background: rgba(219,151,56,0.12); }
        #rezervace { scroll-margin-top: 76px; }
        @media (max-width: 720px) {
            .rez-option-wide { flex-direction: column; align-items: flex-start; gap: 12px; }
            .rez-wide-meta { text-align: left; }
        }
        /* --- mobil: lepší ovládání rezervací --- */
        @media (max-width: 600px) {
            .rez-option-info h4, .rez-option-wide .rez-option-info h4 { font-size: 22px; }
            .step-panel h3 { font-size: 25px; }
            .cal { padding: 14px; }
            .cal-day { height: 36px; font-size: 13px; border-radius: 6px; }
            .cal-mini .cal-title { font-size: 17px; }
            .cal-mini .cal-weekdays span { font-size: 10px; }
            .form-group input, .form-group textarea, .form-group select,
            .time-row .form-group select, .ud-fields .form-group input { font-size: 16px; }
            .rez-buttons button { padding: 15px 10px; font-size: 14px; }
            .call-btn { width: 100%; justify-content: center; }
            .ud-check span { font-size: 13.5px; }
            .sum-box { flex-direction: column; align-items: flex-start; gap: 4px; }
            .sum-val { text-align: left; }
        }
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; color: var(--gold); font-size: 13px; font-weight: 500; letter-spacing: 0.5px; margin-bottom: 8px; }
        .form-group input, .form-group textarea, .form-group select {
            width: 100%; padding: 14px; background: var(--black); border: 1px solid rgba(219,151,56,0.3);
            color: var(--white); border-radius: 6px; font-size: 15px; font-family: 'Outfit', sans-serif; transition: all 0.3s;
        }
        .form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 12px rgba(219,151,56,0.25); }
        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
        .radio-list { display: grid; gap: 10px; }
        .radio-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--black-card); border-radius: 6px; cursor: pointer; border: 1px solid transparent; transition: all 0.3s; }
        .radio-item:hover { border-color: rgba(219,151,56,0.4); }
        .radio-item input { width: auto; accent-color: var(--gold); }
        .radio-item label { margin: 0; color: var(--grey); cursor: pointer; }
        .rez-buttons { display: flex; gap: 14px; margin-top: 30px; }
        .rez-buttons button { flex: 1; }
        .btn-back { background: transparent; color: var(--grey); border: 1px solid rgba(255,255,255,0.2); padding: 15px; border-radius: 6px; cursor: pointer; font-family: 'Outfit', sans-serif; font-weight: 500; letter-spacing: 1px; transition: all 0.3s; }
        .btn-back:hover { border-color: var(--gold); color: var(--gold); }
        .btn-next { background: var(--gold); color: var(--black); border: none; padding: 15px; border-radius: 6px; cursor: pointer; font-family: 'Outfit', sans-serif; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; transition: all 0.3s; }
        .btn-next:hover:not(:disabled) { background: var(--gold-light); }
        .btn-next:disabled { background: #333; color: #666; cursor: not-allowed; }
        .summary-box { background: var(--black-card); border: 1px solid var(--gold); border-radius: 8px; padding: 26px; margin-bottom: 20px; }
        .summary-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid rgba(219,151,56,0.15); }
        .summary-row:last-child { border-bottom: none; }
        .summary-row .lbl { color: var(--gold); font-size: 14px; }
        .summary-row .val { color: var(--white); font-size: 14px; text-align: right; }
        .summary-note { text-align: center; color: var(--grey); font-size: 15px; line-height: 1.7; margin: 24px 0; }

        /* CONTACT */
        .contact-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 50px; align-items: start; }
        .contact-info-block { margin-bottom: 34px; }
        .contact-info-block h4 { font-family: 'Outfit', sans-serif; color: var(--gold); font-size: 14px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; }
        .contact-info-block p { color: var(--grey); font-size: 16px; line-height: 1.8; }
        .contact-info-block a { color: var(--white); text-decoration: none; transition: color 0.3s; }
        .contact-info-block a:hover { color: var(--gold); }
        .map-wrap { border-radius: 10px; overflow: hidden; border: 1px solid rgba(219,151,56,0.3); min-height: 420px; }
        .map-wrap iframe { width: 100%; height: 100%; min-height: 420px; border: 0; filter: grayscale(0.3) invert(0.9) hue-rotate(180deg); }
        .map-placeholder { height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center;
            gap: 16px; text-align: center; padding: 30px; background: rgba(219,151,56,0.04); }
        .map-placeholder p { color: var(--grey); max-width: 340px; font-size: 14px; line-height: 1.6; margin: 0; }
        .map-placeholder .btn-back { position: static; width: auto; padding: 11px 26px; }

        /* SOUHLAS S COOKIES – okamžité vyskakovací okno + trvalá ikonka vlevo dole */
        .cookie-scrim { position: fixed; inset: 0; z-index: 6000; background: rgba(0,0,0,0.55);
            display: flex; align-items: flex-end; justify-content: center; padding: 20px;
            opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
        .cookie-scrim.show { opacity: 1; pointer-events: auto; }
        .cookie-modal { max-width: 480px; width: 100%; background: var(--black-card, #141414);
            border: 1px solid rgba(219,151,56,0.35); border-radius: 14px; padding: 26px 26px 22px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.5); transform: translateY(20px); transition: transform 0.3s ease; }
        .cookie-scrim.show .cookie-modal { transform: translateY(0); }
        .cookie-modal-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
        .cookie-modal-head svg { flex: 0 0 auto; color: var(--gold); }
        .cookie-modal-head h3 { font-family: 'Cormorant Garamond', serif; font-size: 21px; color: var(--white); margin: 0; flex: 1 1 auto; min-width: 140px; }
        .cookie-modal p { color: var(--grey); font-size: 13.5px; line-height: 1.65; margin: 0 0 18px; }
        .cookie-btns { display: flex; gap: 10px; flex-wrap: wrap; }
        .cookie-btn { flex: 1; min-width: 120px; padding: 12px 18px; border-radius: 7px; font-family: 'Outfit', sans-serif;
            font-weight: 600; font-size: 13.5px; cursor: pointer; transition: all 0.25s; }
        .cookie-btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,0.25); color: var(--grey); }
        .cookie-btn-ghost:hover { border-color: var(--grey); color: var(--white); }
        .cookie-btn-primary { background: var(--gold); border: 1px solid var(--gold); color: var(--black); }
        .cookie-btn-primary:hover { background: var(--gold-light); }

        /* přepínač jazyka přímo v okně cookies – ta překryje celou obrazovku (z-index 6000,
           víc než header), takže než ji návštěvník potvrdí, na tu v hlavičce vůbec nedosáhne */
        .cookie-lang { display: flex; gap: 6px; margin-left: auto; flex: 0 0 auto; }
        .cookie-lang-btn { width: 28px; height: 28px; padding: 0; border-radius: 50%; border: 1.5px solid transparent;
            background: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
            opacity: 0.55; transition: all 0.2s; }
        .cookie-lang-btn .lang-flag svg { width: 22px; height: 15px; border-radius: 2px; display: block; }
        .cookie-lang-btn:hover { opacity: 0.85; }
        .cookie-lang-btn.active { opacity: 1; border-color: var(--gold); }

        /* plovoucí ikonka vlevo dole – trvale, i po rozhodnutí, pro pozdější změnu volby */
        .cookie-reopen { position: fixed; left: 18px; bottom: 18px; z-index: 4000; width: 46px; height: 46px;
            border-radius: 50%; background: var(--black-card, #141414); border: 1px solid rgba(219,151,56,0.4);
            display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--gold);
            box-shadow: 0 4px 16px rgba(0,0,0,0.4); opacity: 0; transform: scale(0.7); pointer-events: none;
            transition: all 0.25s ease; }
        .cookie-reopen.show { opacity: 1; transform: scale(1); pointer-events: auto; }
        .cookie-reopen:hover { border-color: var(--gold); transform: scale(1.08); }
        @media (max-width: 600px) {
            .cookie-modal { padding: 22px 20px 18px; }
            .cookie-btns { flex-direction: column; }
            .cookie-btn { width: 100%; }
            .cookie-reopen { left: 14px; bottom: 14px; width: 42px; height: 42px; }
        }

        /* FOOTER */
        footer { background: var(--black-soft); padding: 60px 30px 30px; border-top: 1px solid rgba(219,151,56,0.2); }
        .footer-inner { max-width: 1300px; margin: 0 auto; }
        .footer-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 30px; margin-bottom: 40px; }
        .footer-brand .logo { margin-bottom: 14px; }
        /* text sedí do středu mezi logem a ikonami sítí */
        .footer-brand p { color: var(--grey-dark); max-width: 300px; font-size: 14px; margin: 6px 0 4px; }
        .footer-links { display: flex; gap: 50px; flex-wrap: wrap; }
        .footer-col h5 { color: var(--gold); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 16px; }
        .footer-col a { display: block; color: var(--grey); text-decoration: none; font-size: 14px; margin-bottom: 10px; transition: color 0.3s; cursor: pointer; }
        .footer-col a:hover { color: var(--gold); }
        .footer-social { display: flex; gap: 14px; margin-top: 18px; }
        .footer-social a { width: 40px; height: 40px; border: 1px solid rgba(219,151,56,0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--gold); text-decoration: none; transition: all 0.3s; font-size: 15px; }
        .footer-social a:hover { background: var(--gold); color: var(--black); }
        .footer-social a svg { display: block; }

        .nav-social-mobile { display: none; }
        @media (max-width: 900px) {
            .nav-social-mobile { display: flex; justify-content: center; gap: 20px; margin-top: 6px; }
            .nav-social-mobile a { width: 38px; height: 38px; border: 1px solid rgba(219,151,56,.3); border-radius: 50%;
                display: flex; align-items: center; justify-content: center; color: var(--gold); transition: all .25s; }
            .nav-social-mobile a:hover, .nav-social-mobile a:active { background: var(--gold); color: var(--black); }
        }
        /* TikTok je teď vektor (SVG cesta), takže barvu přebírá stejně jako Instagram
           přes currentColor – žádné filtry na obrázek už nejsou potřeba. */
        /* TikTok je vektor stejně jako ostatní ikony – barva jde přes currentColor,
           kroužek dědí stejný styl jako Facebook, Instagram a Tripadvisor. */

        /* Admin a Správa – tiché odkazy úplně dole, ne mezi obsahem pro hosty */
        .footer-admin { margin: 8px 0 0; font-size: 12.5px; color: var(--grey-dark); }
        .footer-admin a { color: var(--grey-dark); text-decoration: none; cursor: pointer;
                          border-bottom: 1px solid transparent; transition: color .25s, border-color .25s; }
        .footer-admin a:hover { color: var(--gold); border-bottom-color: rgba(219,151,56,.5); }
        .footer-admin span { margin: 0 8px; opacity: .5; }
        .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 24px; text-align: center; color: var(--grey-dark); font-size: 13px; }

        /* MODALS */
        .detail-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.92); z-index: 2000; overflow-y: auto; padding: 40px 20px; }
        .detail-modal.open { display: block; }
        .detail-content { max-width: 800px; margin: 0 auto; background: var(--black-card); border-radius: 12px; border: 1px solid rgba(219,151,56,0.3); overflow: hidden; position: relative; }
        .detail-hero { display: none; }  /* fotka v detailu se nezobrazuje – bývala často useknutá */
        .detail-close { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; background: rgba(0,0,0,0.6); border: 1px solid var(--gold); color: var(--gold); border-radius: 50%; cursor: pointer; font-size: 20px; }
        .detail-body { padding: 64px 40px 40px; }  /* nahoře je rezerva pod křížkem, protože fotka nad textem je pryč */
        .detail-body h2 { font-size: 38px; color: var(--gold); margin-bottom: 20px; }
        .detail-body p { color: var(--grey); margin-bottom: 18px; line-height: 1.8; }
        .detail-body ul { list-style: none; margin: 20px 0; }
        .detail-body ul li { padding: 8px 0 8px 26px; position: relative; color: var(--white); }
        .detail-body ul li::before { content: '✦'; position: absolute; left: 0; color: var(--gold); }

        /* detail akce s party balíčky – fotka vpravo, balíčky vlevo (počítač) */
        .detail-packages { display: grid; grid-template-columns: 1fr 300px; gap: 30px; align-items: start; margin: 26px 0 6px; padding: 24px; border: 1px solid rgba(219,151,56,0.35); border-radius: 14px; background: linear-gradient(180deg, rgba(219,151,56,0.10), rgba(219,151,56,0.02)); box-shadow: 0 8px 30px rgba(0,0,0,0.35); }
        .dp-title { color: var(--gold); font-family: 'Cormorant Garamond', serif; font-size: 30px; margin-bottom: 18px; display:flex; align-items:center; gap:10px; }
        .dp-title::before { content:'★'; font-size:20px; }
        .dp-list { display: grid; gap: 12px; }
        .dp-item { background: var(--black-card); border: 1px solid rgba(219,151,56,0.3); border-radius: 8px; padding: 16px 18px; display: flex; justify-content: space-between; align-items: center; gap: 14px; transition: all .2s; }
        .dp-item:hover { border-color: var(--gold); background: rgba(219,151,56,0.08); }
        .dp-item .dp-obsah { color: var(--white); font-size: 14px; line-height: 1.55; }
        .dp-item .dp-cena { color: var(--gold); font-weight: 700; font-size: 22px; white-space: nowrap; }
        .modal-contact { margin-top: 20px; padding: 14px 18px; background: rgba(219,151,56,0.06); border-left: 3px solid var(--gold); border-radius: 6px; color: var(--grey); font-size: 14px; }
        .modal-contact strong { color: var(--gold); }
        .dp-foto { border-radius: 10px; overflow: hidden; border: 1px solid rgba(219,151,56,0.25); position: sticky; top: 10px; }
        .dp-foto img { width: 100%; height: auto; display: block; }
        @media (max-width: 760px) {
            .detail-packages { grid-template-columns: 1fr; gap: 22px; }
            .dp-foto { order: -1; max-width: 320px; margin: 0 auto; position: static; }
        }

        /* PAGE MODAL (podstránky) */
        .page-modal { display: none; position: fixed; inset: 0; background: var(--black); z-index: 4000; overflow-y: auto; }
        .page-modal.open { display: block; }
        .page-modal-header { position: sticky; top: 0; background: rgba(10, 10, 10, 0.85); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(219,151,56,0.2); z-index: 10; overflow: visible; }
        .page-modal-header .nav-container { max-width: 1300px; margin: 0 auto; padding: 8px 30px; display: flex; justify-content: flex-end; align-items: center; position: relative; min-height: 56px; }
        .page-modal-header .logo-nook { width: var(--logo-box, 102px); height: var(--logo-box, 102px); padding: 10px; }
        @media (max-width: 600px) { .page-modal-header .nav-container { padding: 6px 18px; min-height: 48px; } }

        @media (max-width: 900px) {
            .page-modal-header .nav-links { position: fixed; top: 0; right: 0; width: 75%; max-width: 320px; height: 100vh; background: var(--black-soft); flex-direction: column; justify-content: center; gap: 28px; border-left: 1px solid rgba(219,151,56,0.3); z-index: 1002; opacity: 0; visibility: hidden; pointer-events: none; transform: none; transition: opacity 0.35s, transform 0.35s, visibility 0.35s; }
            .page-modal-header .nav-links.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); }
            .page-modal-header .nav-links:not(.open) * { pointer-events: none !important; }
            .page-modal-header .hamburger { display: flex; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 5px; z-index: 1003; }
            .page-modal-header .hamburger span { width: 26px; height: 2px; background: var(--gold); transition: all 0.3s; }
            .page-modal-header .nav-dropdown-menu { position: static; transform: none; opacity: 1; visibility: visible; min-width: auto; background: transparent; border: none; margin-top: 10px; }
            .page-modal-header .nav-dropdown.open .nav-dropdown-menu { transform: none; }
            .page-modal-header .nav-dropdown-menu a { text-align: center; border-bottom: none; padding: 10px; font-size: 14px; color: var(--grey); }
            .page-modal-header .nav-dropdown-toggle { display: none; }
        }

        .page-back { background: transparent; border: 1px solid rgba(219,151,56,0.4); color: var(--gold); padding: 10px 20px; border-radius: 6px; cursor: pointer; font-family: 'Outfit',sans-serif; font-weight: 600; font-size: 14px; transition: all 0.3s; }
        .page-back:hover { background: rgba(219,151,56,0.1); border-color: var(--gold); }
        .page-content { max-width: 1100px; margin: 0 auto; padding: 60px 30px 100px; }
        .page-hero { text-align: center; margin-bottom: 60px; }
        .page-hero .section-label { color: var(--gold); font-size: 13px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 14px; font-weight: 500; }
        .page-hero h1, .page-hero h2 { font-size: clamp(38px, 6vw, 64px); font-weight: 700; line-height: 1.1; }
        .page-hero h1 .gold, .page-hero h2 .gold { color: var(--gold); font-style: italic; }
        .page-hero p { color: var(--grey); max-width: 620px; margin: 18px auto 0; font-size: 17px; }

        .menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 26px; }
        .menu-card { background: var(--black-card); border: 1px solid rgba(219,151,56,0.15); border-radius: 10px; overflow: hidden; transition: all 0.4s; }
        .menu-card:hover { border-color: var(--gold); transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,0.5); }
        .menu-card-img { height: 220px; background-size: cover; background-position: center; background-color: #222; position: relative; display: flex; align-items: center; justify-content: center; }
        .menu-card-img .placeholder-icon { font-size: 60px; opacity: 0.25; }
        .menu-card-body { padding: 22px 24px 8px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
        .menu-card-body h3 { font-family: 'Cormorant Garamond', serif; font-size: 26px; color: var(--white); font-weight: 600; }
        .menu-card-body .price { color: var(--gold); font-weight: 700; font-size: 20px; white-space: nowrap; }
        .menu-card-desc { padding: 0 24px 22px; color: var(--grey); font-size: 14px; }

        .career-badge { display: inline-block; background: var(--red); color: #fff; padding: 6px 16px; border-radius: 20px; font-size: 13px; font-weight: 700; letter-spacing: 1px; margin-bottom: 20px; }
        .career-block { background: var(--black-card); border: 1px solid rgba(219,151,56,0.15); border-radius: 10px; padding: 34px; margin-bottom: 24px; }
        .career-block h3 { color: var(--gold); font-size: 26px; margin-bottom: 18px; }
        .career-list { list-style: none; }
        .career-list li { padding: 10px 0 10px 30px; position: relative; color: var(--white); font-size: 16px; line-height: 1.5; }
        .career-list li::before { content: '✦'; position: absolute; left: 0; color: var(--gold); }
        .career-cta { text-align: center; margin-top: 30px; }

        .blog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 26px; }
        .blog-card { background: var(--black-card); border: 1px solid rgba(219,151,56,0.15); border-radius: 10px; overflow: hidden; transition: all 0.4s; }
        .blog-card:hover { border-color: var(--gold); transform: translateY(-5px); }
        .blog-card-img { height: 180px; background-size: cover; background-position: center; background-color: #222; }
        .blog-card-body { padding: 24px; }
        .blog-card-body .date { color: var(--gold); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
        .blog-card-body h3 { font-size: 22px; margin: 10px 0; color: var(--white); }
                .blog-card-body p { color: var(--grey); font-size: 14px; }
        .blog-card.blog-hidden { opacity: 0.5; }
        .blog-hidden-tag { background: var(--red); color: #fff; font-size: 10px; padding: 2px 7px; border-radius: 3px; margin-left: 6px; text-transform: uppercase; }
        .blog-admin-bar { text-align: center; margin-bottom: 28px; }
        .blog-edit-field { margin-bottom: 16px; }
        .blog-edit-field label { display: block; color: var(--gold); font-size: 13px; margin-bottom: 6px; }
        .blog-edit-field input[type=text], .blog-edit-field textarea { width: 100%; padding: 10px; background: var(--black); border: 1px solid rgba(219,151,56,0.25); border-radius: 6px; color: var(--white); font-size: 14px; font-family: inherit; resize: vertical; }
        .blog-img-preview { width: 100%; height: 160px; background: var(--black) center/cover no-repeat; border: 1px dashed rgba(219,151,56,0.3); border-radius: 8px; margin-bottom: 8px; }
        .blog-upload-btn { display: inline-block; padding: 8px 14px; background: var(--black); border: 1px solid var(--gold); color: var(--gold); border-radius: 6px; cursor: pointer; font-size: 13px; }
        .blog-upload-btn:hover { background: var(--gold); color: var(--black); }
        .blog-edit-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
        .blog-edit-actions button { padding: 10px 16px; border-radius: 6px; border: none; cursor: pointer; font-size: 13px; font-weight: 600; }
        .blog-btn-save { background: var(--gold); color: var(--black); }
        .blog-btn-hide { background: var(--black); color: var(--gold); border: 1px solid var(--gold) !important; }
        .blog-btn-del { background: var(--black); color: var(--red); border: 1px solid var(--red) !important; }
        .blog-edit-status { margin-top: 12px; font-size: 13px; color: var(--gold); min-height: 16px; }

        .events-intro { text-align: center; max-width: 700px; margin: 0 auto 50px; color: var(--grey); font-size: 17px; line-height: 1.8; }
        .events-types { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
        .event-type-card { background: var(--black-card); border: 1px solid rgba(219,151,56,0.15); border-radius: 10px; padding: 30px; transition: all 0.3s; }
        .event-type-card:hover { border-color: var(--gold); transform: translateY(-5px); }
        .event-type-card .icon { font-size: 38px; margin-bottom: 16px; }
        .event-type-card h3 { color: var(--gold); font-size: 24px; margin-bottom: 12px; }
        .event-type-card p { color: var(--grey); font-size: 14px; line-height: 1.6; }

        .login-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.9); z-index: 5000; justify-content: center; align-items: center; }
        .login-modal.open { display: flex; }
        .login-box { background: var(--black-card); padding: 40px; border-radius: 12px; border: 1px solid var(--gold); width: 90%; max-width: 380px; text-align: center; }
        .login-box { position: relative; }
        .login-box h3 { color: var(--gold); font-size: 26px; margin-bottom: 20px; }
        .login-close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; background: transparent; border: 1px solid rgba(219,151,56,0.35); color: var(--gold); border-radius: 50%; cursor: pointer; font-size: 15px; line-height: 1; }
        .login-close:hover { background: var(--gold); color: var(--black); }
        .login-box input { width: 100%; padding: 14px; background: var(--black); border: 1px solid rgba(219,151,56,0.3); color: var(--white); border-radius: 6px; margin-bottom: 16px; font-size: 15px; }

        .rezlist-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 5000; overflow-y: auto; -webkit-overflow-scrolling: touch; }
        .rezlist-modal.open { display: block; }
        /* Panel "Kalendář & rezervace" – světlé téma stejné jako Správa rezervací (#zra-app).
           Kalendář samotný (barvy dnů) je sdílený s veřejnou stránkou, proto zůstává
           jako tmavá "kartička" uvnitř – barvy dnů jsou navržené na tmavé pozadí. */
        .rezlist-content { max-width: 700px; margin: 40px auto; background: #eef0f3; color: #17150f; border-radius: 16px; border: 1px solid #e6e7ea; padding: 34px; box-shadow: 0 20px 60px rgba(20,20,30,.25); }
        .rezlist-content .rezlist-add { background: #ffffff; border: 1px solid #e6e7ea; border-radius: 14px; padding: 20px; }
        .rezlist-content .ar-h4 { color: #17150f; font-family: 'Cormorant Garamond', serif; font-size: 19px; font-weight: 700; margin-bottom: 12px; }
        .rezlist-content .ar-hr { border: none; border-top: 1px solid #e6e7ea; margin: 22px 0; }
        .rezlist-content .ar-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
        .rezlist-content input, .rezlist-content select, .rezlist-content textarea {
            padding: 11px 12px; background: #f7f8fa; border: 1.5px solid #e6e7ea; border-radius: 10px;
            color: #17150f; font-family: 'Outfit', sans-serif; font-size: 15px; width: 100%;
        }
        .rezlist-content input:focus, .rezlist-content select:focus, .rezlist-content textarea:focus { outline: none; border-color: #db9738; box-shadow: 0 0 0 3px rgba(219,151,56,.15); }
        .rezlist-content .ar-full { margin-bottom: 12px; }
        .rezlist-content .btn-next { width: 100%; padding: 13px; border-radius: 10px; }
        .rezlist-content .time-row .form-group label { color: #a5741d; }
        .rezlist-content .time-row .form-group select { background: #f7f8fa; border: 1.5px solid #e6e7ea; color: #17150f; border-radius: 10px; padding: 11px 12px; }
        /* kalendář zůstává jako tmavá kartička – jeho barvy dnů počítají s tmavým pozadím */
        .rezlist-content #arCalBox { background: #0f0f10; border-radius: 14px; padding: 16px 14px; margin-top: 4px; }
        .adm-cal-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
        .adm-cal-title { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-size: 17px; color: #17150f; text-transform: capitalize; }
        .adm-cal-arrow { width: 32px; height: 32px; border-radius: 9px; border: 1px solid #e6e7ea; background: #f7f8fa; color: #6c6a63; font-size: 16px; cursor: pointer; transition: all .15s; }
        .adm-cal-arrow:hover:not(:disabled) { border-color: #db9738; color: #a5741d; }
        .adm-cal-arrow:disabled { opacity: .35; cursor: default; }
        .rezlist-content .ar-cal-label { color: #a5741d; font-size: 13px; margin-bottom: 8px; font-weight: 600; }
        .rezlist-content .ar-sel-note { color: #6c6a63; font-size: 13px; margin: 10px 0 0; min-height: 16px; }
        .rezlist-content .adm-day-btns { margin-top: 12px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
        .rezlist-content .adm-day-btns span { font-size: 12px; color: #6c6a63; margin-right: 2px; }
        .rezlist-content .adm-day-btns button { padding: 8px 12px; font-size: 13px; font-weight: 600; border-radius: 8px; border: 1.5px solid #e6e7ea; background: #f7f8fa; color: #6c6a63; cursor: pointer; transition: all .15s; font-family: 'Outfit', sans-serif; }
        .rezlist-content .adm-day-btns button.st-open:hover, .rezlist-content .adm-day-btns button.st-open.active { background: #e9f6ee; border-color: #2f8a4e; color: #227a41; }
        .rezlist-content .adm-day-btns button.st-full:hover, .rezlist-content .adm-day-btns button.st-full.active { background: #fbeae8; border-color: #c0392b; color: #a5301f; }
        .rezlist-content .adm-day-btns button.st-closed:hover, .rezlist-content .adm-day-btns button.st-closed.active { background: #eef0f2; border-color: #9a988f; color: #6c6a63; }
        .adm-close-light { background: #f7f8fa !important; border: 1px solid #e6e7ea !important; color: #6c6a63 !important; }
        .adm-close-light:hover { border-color: #db9738 !important; color: #a5741d !important; }
        /* Správa editorů + foto menu: panel na pravé polovině obrazovky, snadné zavírání */
        .rezlist-box { position: fixed; top: 0; right: 0; height: 100vh; width: min(560px, 50vw); background: var(--black-card); border-left: 1px solid var(--gold); padding: 30px; overflow-y: auto; box-shadow: -10px 0 40px rgba(0,0,0,0.6); animation: rezlistSlideIn 0.28s ease; }
        @keyframes rezlistSlideIn { from { transform: translateX(40px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
        .rezlist-box h3 { color: var(--gold); font-size: 24px; margin-bottom: 18px; padding-right: 44px; }
        .rezlist-close { position: fixed; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; background: var(--black); color: var(--gold); border: 1px solid var(--gold); font-size: 18px; line-height: 1; cursor: pointer; z-index: 2; }
        .rezlist-close:hover { background: var(--gold); color: var(--black); }
        @media (max-width: 820px) { .rezlist-box { width: 100vw; border-left: none; } }
                .rezlist-item { background: var(--black); padding: 18px; border-radius: 8px; margin-bottom: 14px; border-left: 3px solid var(--gold); }
        .ar-cal-wrap { margin-bottom: 10px; }
        .zm-slozeni-edit:empty::before { content: attr(data-ph); color: var(--grey-dark); font-style: italic; }
        .zm-slozeni-edit { outline: 1px dashed rgba(219,151,56,0.3); border-radius: 4px; padding: 2px 4px; min-height: 1em; }
        .rezlist-item h4 { color: var(--gold); font-family: 'Outfit', sans-serif; margin-bottom: 8px; }
        .rezlist-item p { color: var(--grey); font-size: 14px; margin: 3px 0; }

        /* SAVE INDICATOR */
        #saveToast {
            position: fixed; top: 20px; right: 20px; background: var(--gold); color: var(--black);
            padding: 12px 20px; border-radius: 6px; font-weight: 600; z-index: 9999;
            opacity: 0; transform: translateY(-20px); transition: all 0.3s; pointer-events: none;
        }
        #saveToast.show { opacity: 1; transform: translateY(0); }

        /* MOBILE */
        @media (max-width: 900px) {
            .about-section, .contact-grid { grid-template-columns: 1fr; gap: 40px; }
            .nav-links { position: fixed; top: 0; right: 0; width: 75%; max-width: 320px; height: 100vh; background: var(--black-soft); flex-direction: column; justify-content: center; gap: 28px; border-left: 1px solid rgba(219,151,56,0.3); z-index: 1002; opacity: 0; visibility: hidden; pointer-events: none; transform: none; transition: opacity 0.35s, transform 0.35s, visibility 0.35s; }
            .nav-links.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); }
            .nav-links:not(.open) * { pointer-events: none !important; }
            .hamburger { display: flex; z-index: 1003; }
            .btn-reserve { padding: 11px 24px; font-size: 13px !important; }
            .nav-dropdown-menu { position: static; transform: none; opacity: 1; visibility: visible; min-width: auto; background: transparent; border: none; margin-top: 10px; }
            .nav-dropdown.open .nav-dropdown-menu { transform: none; }
            .nav-dropdown-menu a { text-align: center; border-bottom: none; padding: 10px; font-size: 14px; color: var(--grey); }
            .nav-dropdown-toggle { display: none; }
        }
        @media (max-width: 900px) { :root { --logo-box: 86px; } }
        @media (max-width: 600px) { :root { --logo-box: 74px; } }
        @media (max-width: 380px) { :root { --logo-box: 62px; } }
        @media (max-width: 600px) {
            section { padding: 60px 20px; }
            .form-row { grid-template-columns: 1fr; }
            .steps-indicator { flex-wrap: wrap; }
            .step-dot { flex: 1 1 40%; }
            .hero-hours { gap: 20px; }
            .hero { height: 64vh; min-height: 460px; }
            .hours-inner { gap: 4px; }
            .hours-item { padding: 6px 14px; flex-direction: column; gap: 2px; text-align: center; }
            .hours-item::after { display: none !important; }
            .gallery-desktop { display: none; }
            .gallery-flow { display: block; margin: 0 -20px; }
            .gallery-flow-track { padding-left: 50%; padding-right: 50%; }
            /* −10 % oproti dřívějšku a posazená nad WhatsApp tlačítko, ať se nepřekrývají */
            .promo-sticker { width: 135px; height: 135px;
                             right: calc(16px + env(safe-area-inset-right));
                             bottom: calc(88px + env(safe-area-inset-bottom)); }
            .promo-text .promo-top { font-size: 10px; letter-spacing: 1px; }
            .promo-text .promo-bottom { font-size: 9px; }
            .logo-link { left: 18px; }
            .logo-tagline { display: none; }
            .nav-container { padding: 6px 18px; min-height: 48px; }
            .hero-tagline-main { padding: 3px 18px; }
            .lang-current { padding: 9px 11px; font-size: 13px; }
            .nav-right { gap: 12px; }
        }
        /* ===== REZERVACE v6 (kalendář, čas, údaje, souhrn, modal) ===== */
        .rez-info-box { background: rgba(219,151,56,0.08); border: 1px solid rgba(219,151,56,0.25); border-radius: 8px; padding: 18px 20px; margin-bottom: 24px; font-size: 13.5px; color: var(--grey); line-height: 1.7; }
        .rez-info-box strong { color: var(--gold); }
        .cal { background: var(--black-card); border: 1px solid rgba(219,151,56,0.2); border-radius: 10px; padding: 18px; margin-bottom: 20px; }
        .cal-dual { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
        .cal-mini .cal-title { font-family:'Cormorant Garamond',serif; font-size:16px; color:var(--white); font-weight:600; text-align:center; margin-bottom:8px; text-transform:capitalize; }
        .cal-mini .cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:3px; }
        .cal-mini .cal-weekdays span { text-align:center; font-size:9px; color:var(--grey-dark); }
        .cal-mini .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
        .cal-day { display:flex; align-items:center; justify-content:center; height:26px; font-size:11px; font-weight:600; border-radius:4px; position:relative; }
        .cal-day.empty { background:transparent; }
        .cal-day.closed { background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.18); color:#b8b8b8; cursor:help; }
        .cal-day.past { background:rgba(255,255,255,0.02); color:#444; }
        .cal-day.open { background:rgba(63,163,77,0.18); color:#cfeecf; border:1px solid rgba(63,163,77,0.5); cursor:pointer; transition:all .2s; }
        .cal-day.open:hover { background:#3fa34d; color:#fff; }
        .cal-day.open.selected { background:var(--gold); color:var(--black); border-color:var(--gold); }
        .cal-day.booked-full { background:rgba(192,57,43,0.24); border:1px solid rgba(192,57,43,0.65); color:#f3c0ba; cursor:not-allowed; }
        .cal-day.booked-half { background:linear-gradient(135deg, rgba(192,57,43,0.22) 0 50%, rgba(63,163,77,0.18) 50% 100%); border:1px solid rgba(192,57,43,0.5); color:#eee; cursor:pointer; }
        .cal-day.closed:hover::after, .cal-day.booked-full:hover::after { content:attr(data-tip); position:absolute; bottom:120%; left:50%; transform:translateX(-50%); background:#000; color:var(--white); font-size:10px; font-weight:500; padding:5px 9px; border-radius:5px; white-space:nowrap; border:1px solid rgba(219,151,56,0.4); z-index:5; pointer-events:none; }
        .cal-legend { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; font-size:12px; color:var(--grey); }
        .cal-legend span { display:flex; align-items:center; gap:6px; }
        .leg-box { width:13px; height:13px; border-radius:3px; display:inline-block; }
        .leg-open { background:rgba(63,163,77,0.18); border:1px solid rgba(63,163,77,0.5); }
        .leg-closed { background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.18); }
        .leg-full { background:rgba(192,57,43,0.24); border:1px solid rgba(192,57,43,0.65); }
        .leg-half { background:linear-gradient(135deg, rgba(192,57,43,0.22) 0 50%, rgba(63,163,77,0.18) 50% 100%); }
        .sel-day-note { text-align:center; color:var(--gold); font-size:14px; margin-bottom:16px; min-height:20px; }
        .gap-note { text-align:center; color:#e58278; font-size:12.5px; margin-bottom:14px; }
        .time-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
        .time-row.single { grid-template-columns:1fr; }
        .time-row .form-group select { width:100%; padding:12px 14px; background:var(--black-card); border:1px solid rgba(219,151,56,0.2); border-radius:6px; color:var(--white); font-family:'Outfit',sans-serif; font-size:15px; }
        .time-row .form-group select:focus { outline:none; border-color:var(--gold); }
        .time-row .form-group select:disabled { opacity:.4; }
        .phone-box { background:var(--black-card); border:1px solid rgba(219,151,56,0.25); border-radius:10px; padding:28px 24px; text-align:center; margin-bottom:20px; }
        .phone-box h4 { font-family:'Cormorant Garamond',serif; color:var(--gold); font-size:24px; margin-bottom:10px; }
        .phone-box p { color:var(--grey); font-size:14px; margin-bottom:20px; }
        .call-btn { display:inline-flex; align-items:center; gap:10px; background:var(--gold); color:var(--black); font-weight:700; font-size:17px; padding:15px 30px; border-radius:8px; text-decoration:none; transition:all .25s; }
        .call-btn:hover { background:var(--gold-light,#fbad43); }
        .podminky { text-align:left; background:rgba(219,151,56,0.06); border:1px solid rgba(219,151,56,0.2); border-radius:8px; padding:16px 20px; margin-top:22px; }
        .podminky h5 { color:var(--gold); font-size:13px; text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
        .podminky ul { list-style:none; }
        .podminky li { color:var(--grey); font-size:13.5px; padding:5px 0 5px 20px; position:relative; line-height:1.6; }
        .podminky li::before { content:'•'; color:var(--gold); position:absolute; left:4px; }
        .ud-group { margin-bottom:22px; }
        .ud-label { display:block; font-size:14px; color:var(--white); margin-bottom:12px; font-weight:600; }
        .req { color:var(--gold); }
        .ud-hint { color:var(--grey-dark); font-size:12px; font-weight:400; }
        .slider-wrap { display:flex; align-items:center; gap:18px; }
        .slider-wrap input[type=range]{ flex:1; accent-color:var(--gold); height:6px; }
        .slider-val { color:var(--gold); font-weight:700; font-size:18px; white-space:nowrap; min-width:96px; text-align:right; }
        .ud-expand { width:100%; text-align:left; background:var(--black-card); border:1px solid rgba(219,151,56,0.25); color:var(--gold); padding:14px 18px; border-radius:8px; cursor:pointer; font-family:'Outfit',sans-serif; font-weight:600; font-size:14px; transition:all .2s; }
        .ud-expand:hover { border-color:var(--gold); }
        .ud-expand.open { border-bottom-left-radius:0; border-bottom-right-radius:0; }
        .ud-expand-body { max-height:0; overflow:hidden; transition:max-height .3s; }
        .ud-expand-body.open { max-height:220px; }
        .ud-expand-body textarea { width:100%; min-height:110px; background:var(--black-card); border:1px solid var(--gold); border-top:none; border-radius:0 0 8px 8px; color:var(--white); padding:14px; font-family:'Outfit',sans-serif; font-size:14px; resize:vertical; }
        .ud-check { display:flex; align-items:center; gap:12px; cursor:pointer; padding:14px 16px; background:var(--black-card); border:1px solid rgba(219,151,56,0.25); border-radius:8px; margin-bottom:22px; }
        .ud-check:hover { border-color:var(--gold); }
        .ud-check input { width:20px; height:20px; accent-color:var(--gold); flex-shrink:0; }
        .ud-check span { font-size:14px; color:var(--white); }
        .ud-consent { align-items:flex-start; }
        .ud-consent span { font-size:12px; color:var(--grey); line-height:1.5; }
        .ud-fields .form-group { margin-bottom:16px; }
        .ud-fields .form-group label { display:block; font-size:13px; color:var(--grey); margin-bottom:6px; }
        .ud-fields .form-group input { width:100%; padding:12px 14px; background:var(--black-card); border:1px solid rgba(219,151,56,0.2); border-radius:6px; color:var(--white); font-family:'Outfit',sans-serif; font-size:15px; }
        .ud-fields .form-group input:focus { outline:none; border-color:var(--gold); }
        .summary-boxes { margin-bottom:24px; }
        .sum-box { display:flex; justify-content:space-between; align-items:center; gap:16px; background:var(--black-card); border:1px solid rgba(219,151,56,0.18); border-radius:8px; padding:14px 18px; margin-bottom:10px; }
        .sum-label { color:var(--grey-dark); font-size:13px; text-transform:uppercase; letter-spacing:0.5px; flex-shrink:0; }
        .sum-val { color:var(--white); font-size:15px; font-weight:600; text-align:right; }
        /* třesení neplatných polí */
        @keyframes zshake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-6px)} 40%,80%{transform:translateX(6px)} }
        .rez-invalid { border-color:#c0392b !important; box-shadow:0 0 0 2px rgba(192,57,43,0.3); }
        .rez-shake { animation:zshake .4s; }
        /* děkovací modal */
        .done-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.75); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; visibility:hidden; transition:all .3s; z-index:5000; }
        .done-overlay.open { opacity:1; visibility:visible; }
        .done-box { background:var(--black-soft); border:1px solid rgba(219,151,56,0.3); border-radius:14px; padding:40px 34px 30px; max-width:520px; width:100%; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,0.6); }
        .done-icon { width:60px; height:60px; border-radius:50%; background:rgba(63,163,77,0.15); border:2px solid #3fa34d; color:#3fa34d; font-size:32px; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
        .done-box h4 { font-family:'Cormorant Garamond',serif; color:var(--gold); font-size:26px; margin-bottom:14px; }
        .done-box p { color:var(--grey); font-size:14.5px; line-height:1.7; margin-bottom:26px; }
        .done-box p a { color:var(--gold); font-weight:600; text-decoration:none; }
        .done-buttons { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
        .done-buttons .btn-next, .done-buttons .btn-back { text-decoration:none; display:inline-block; }
        @media (max-width:640px){ .cal-dual { grid-template-columns:1fr; } .time-row { grid-template-columns:1fr; } }
        @media (max-width:520px){ .done-buttons { flex-direction:column; } }

        /* Reservation wizard. Steps are panels only when JavaScript runs; otherwise
           the whole form stays visible and submits in one go. */
        html:not(.js) .step-panel { display: block; }
        html:not(.js) .rez-buttons button[type="button"] { display: none; }
        html:not(.js) #summaryBoxes { display: none; }
        html:not(.js) .ud-expand { display: none; }
        html:not(.js) .ud-expand-body { max-height: none; overflow: visible; }
        html:not(.js) .ud-expand-body textarea { border-top: 1px solid var(--gold); border-radius: 8px; }
        .cal-day.open { position: relative; }
        .cal-day.open input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
        .cal-day.open:has(input:checked) { background: var(--gold); color: var(--black); border-color: var(--gold); }
        .cal-day.open:focus-within { outline: 2px solid var(--gold); outline-offset: 1px; }
        .reservation-trap { position: absolute; left: -9999px; }
