:root {
            --bg: #0C0C0C; --bg2: #111; --card: #181818; --card-h: #222;
            --text: #F5F5F5; --text2: #888; --muted: #444;
            --accent: #C9A96E; --accent2: #D4B87A; --accent3: #B89555;
            --border: #2A2A2A; --glass: rgba(12,12,12,0.92);
            --grad: linear-gradient(90deg, #C9A96E, #D4B87A, #C9A96E);
        }
        [data-theme="pub"] {
            --bg: #0A0A0A; --bg2: #0F0F0F; --card: #151515; --card-h: #1E1E1E;
            --text: #F0EDE6; --text2: #9A978E; --muted: #3A3A3A;
            --accent: #D4792F; --accent2: #E8943F; --accent3: #B8652A;
            --border: #282828; --glass: rgba(10,10,10,0.95);
            --grad: linear-gradient(90deg, #D4792F, #E8943F, #D4792F);
        }
        * { margin:0; padding:0; box-sizing:border-box; }
        html { scroll-behavior:smooth; overflow-y:scroll; scrollbar-gutter:stable; }
        body { font-family:'Inter',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; }
        html.loading { overflow:hidden; }

        /* LOADER - SPLIT SCREEN EXIT */
        .loader { position:fixed; inset:0; z-index:9999; display:flex; }
        .loader-left, .loader-right { width:50%; height:100%; background:#000; transition:transform 0.9s cubic-bezier(0.7,0,0.3,1); display:flex; align-items:center; justify-content:center; }
        .loader.done .loader-left { transform:translateX(-100%); }
        .loader.done .loader-right { transform:translateX(100%); }
        .loader.done { pointer-events:none; }
        .loader-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:1; text-align:center; display:flex; flex-direction:column; align-items:center; gap:0; transition:opacity 0.5s; }
        .loader.done .loader-center { opacity:0; }

        .loader-name { font-family:'Italiana',serif; font-size:clamp(3rem,8vw,5rem); color:#fff; letter-spacing:0.3em; text-transform:uppercase; opacity:0; transform:translateY(15px); transition:all 0.7s cubic-bezier(0.4,0,0.2,1); }
        .loader-name.show { opacity:1; transform:translateY(0); }
        .loader-name.hide { opacity:0; transform:translateY(-15px); }
        .loader-bar { width:min(140px,60vw); height:2px; background:#222; margin-top:1.5rem; overflow:hidden; opacity:0; transition:opacity 0.5s; }
        .loader-bar.show { opacity:1; }
        .loader-bar.hide { opacity:0; }
        .loader-bar-fill { width:0; height:100%; background:var(--accent); display:block; transition:width 1.2s ease-out; }
        .loader-sub { font-family:'Inter',sans-serif; font-size:0.65rem; font-weight:600; letter-spacing:0.4em; text-transform:uppercase; color:#666; margin-top:1.5rem; opacity:0; transform:translateY(10px); transition:all 0.6s cubic-bezier(0.4,0,0.2,1); }
        .loader-sub.show { opacity:1; transform:translateY(0); }
        .loader-sub.hide { opacity:0; transform:translateY(-10px); }

        /* NAV */
        .nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:1.5rem 2.5rem; transition:all 0.4s; display:flex; align-items:center; justify-content:space-between; }
        .nav.scrolled { background:var(--glass); backdrop-filter:blur(20px); padding:0.75rem 2.5rem; }
        .nav-logo { font-family:'Italiana',serif; font-size:1.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--text); text-decoration:none; }
        .nav-center { display:flex; gap:2.5rem; list-style:none; margin-left:auto; margin-right:1.5rem; }
        .nav-center a { color:var(--text2); text-decoration:none; font-size:0.72rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; transition:color 0.3s; }
        .nav-center a:hover { color:var(--accent); }
        .nav-right { display:flex; gap:1rem; align-items:center; }
        .theme-btn { width:32px; height:32px; border:1px solid var(--border); background:transparent; color:var(--text2); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.3s; font-size:0.9rem; }
        .theme-btn:hover { border-color:var(--accent); color:var(--accent); }
        .hamburger { display:none; flex-direction:column; gap:6px; cursor:pointer; background:none; border:none; padding:5px; }
        .hamburger span { width:24px; height:2px; background:var(--text); transition:all 0.3s; }
        .hamburger.active span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
        .hamburger.active span:nth-child(2) { opacity:0; }
        .hamburger.active span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
        .mob-menu { position:fixed; inset:0; display:flex; background:var(--bg); z-index:99; flex-direction:column; align-items:center; justify-content:center; gap:2rem; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 0.35s, visibility 0.35s; }
        .mob-menu.active { opacity:1; visibility:visible; pointer-events:auto; }
        .mob-menu.closing { opacity:0; visibility:hidden; pointer-events:none; }
        .mob-menu a { color:var(--text2); text-decoration:none; font-family:'Inter',sans-serif; font-size:0.85rem; font-weight:400; letter-spacing:0.25em; text-transform:uppercase; transform:translateY(25px); opacity:0; transition:all 0.35s cubic-bezier(0.4,0,0.2,1); }
        .mob-menu a:hover { color:var(--accent); }
        .mob-menu.active a { transform:translateY(0); opacity:1; }
        .mob-menu.active a:nth-child(1) { transition-delay:0.05s; }
        .mob-menu.active a:nth-child(2) { transition-delay:0.1s; }
        .mob-menu.active a:nth-child(3) { transition-delay:0.15s; }
        .mob-menu.active a:nth-child(4) { transition-delay:0.2s; }
        .mob-menu.active a:nth-child(5) { transition-delay:0.25s; }
        .mob-menu.active a:nth-child(6) { transition-delay:0.3s; }
        .mob-menu.closing a { transform:translateY(-25px); opacity:0; transition-delay:0s; }

        /* HERO */
        .hero { min-height:100vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; padding-bottom:6rem; }
        .hero-bg { position:absolute; inset:0; }
        .hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center top; opacity:0.8; filter:brightness(1.06); transition:transform 8s; }
        .hero:hover .hero-bg img { transform:scale(1.05); }
        .hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.15) 45%, var(--bg) 100%); }
        .scroll-hint { display:none; }
        .hero-content { position:relative; z-index:1; padding:0 2.5rem; max-width:900px; }
        .hero-tag { font-size:0.65rem; font-weight:700; letter-spacing:0.3em; text-transform:uppercase; color:var(--accent); margin-bottom:1.5rem; display:flex; align-items:center; gap:1rem; }
        .hero-tag::before { content:''; width:40px; height:1px; background:var(--accent); }
        .hero-title { font-family:'Italiana',serif; font-size:clamp(4rem,12vw,9rem); line-height:0.85; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.5rem; }
        .hero-subtitle { font-family:'Cormorant Garamond',serif; font-size:clamp(1.2rem,3vw,1.8rem); color:var(--text2); font-style:italic; margin-bottom:1.5rem; }
        .hero-desc { font-size:1rem; color:var(--text2); font-weight:300; max-width:450px; line-height:1.7; margin-bottom:2rem; }
        .hero-actions { display:flex; gap:1rem; align-items:center; }
        .btn-main { padding:1rem 2.5rem; background:var(--accent); color:#fff; text-decoration:none; font-size:0.75rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; border:none; cursor:pointer; transition:all 0.3s; }
        .btn-main:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(201,169,110,0.3); }
        [data-theme="pub"] .btn-main:hover { box-shadow:0 8px 30px rgba(212,121,47,0.3); }
        .btn-ghost { padding:1rem 2rem; background:transparent; color:var(--text); text-decoration:none; font-size:0.75rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; border:1px solid var(--border); cursor:pointer; transition:all 0.3s; }
        .btn-ghost:hover { border-color:var(--accent); color:var(--accent); }

        /* SECTIONS */
        section { padding:8rem 2.5rem; }
        .container { max-width:1200px; margin:0 auto; }
        .sec-head { margin-bottom:5rem; }
        .sec-tag { font-size:0.6rem; font-weight:700; letter-spacing:0.4em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:0.75rem; margin-bottom:1rem; }
        .sec-tag::before { content:''; width:30px; height:1px; background:var(--accent); }
        .sec-title { font-family:'Cormorant Garamond','Italiana',serif; font-size:clamp(2.5rem,5vw,4rem); letter-spacing:0.05em; text-transform:uppercase; font-weight:400; }

        /* ABOUT */
        .about { background:var(--bg2); }
        .about-split { display:grid; grid-template-columns:2fr 3fr; gap:0; align-items:start; }
        .about-img { position:relative; overflow:hidden; height:680px; }
        .about-img img { width:100%; height:100%; object-fit:cover; transition:transform 1s; }
        .about-img:hover img { transform:scale(1.03); }
        .about-content { display:flex; flex-direction:column; justify-content:center; padding:4rem; }
        .about-content p { color:var(--text2); font-size:0.9rem; line-height:1.9; margin-bottom:1rem; }
        .about-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--border); text-align:center; }
        .about-stats > div { display:flex; flex-direction:column; align-items:center; }
        .stat-num { font-family:'Bebas Neue',sans-serif; font-size:2.5rem; color:var(--accent); white-space:nowrap; line-height:1; }
        .stat-num .star { font-size:0.6em; vertical-align:middle; position:relative; top:-0.05em; }
        .stat-label { font-size:0.7rem; color:var(--text2); letter-spacing:0.1em; text-transform:uppercase; margin-top:0.25rem; }

        /* MENU — plansze foto */
        .menu-note { color:var(--text2); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.15rem; margin-top:-2.5rem; margin-bottom:2rem; }
        .menu-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:440px; gap:4px; }
        .menu-grid .g-item:nth-child(1) { grid-column:span 1; grid-row:span 1; }
        .menu-grid .g-item:nth-child(6) { grid-column:span 1; }
        .cennik { margin-top:4rem; border-top:1px solid var(--border); }
        .cen-row { display:grid; grid-template-columns:1fr auto; gap:0.5rem 2rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--border); }
        .cen-name { font-family:'Cormorant Garamond',serif; font-size:1.5rem; }
        .cen-name small { display:block; font-family:'Inter',sans-serif; font-size:0.78rem; color:var(--text2); margin-top:0.25rem; }
        .cen-price { font-weight:600; font-size:0.9rem; color:var(--accent); text-align:right; white-space:nowrap; }
        .cen-price small { display:block; font-weight:400; color:var(--muted); font-size:0.72rem; margin-top:0.2rem; }

        /* EVENTS — klimatyczne pasy */
        .events { background:var(--bg); padding-left:0; padding-right:0; }
        .events .container { padding-left:2.5rem; padding-right:2.5rem; }
        .evt-lead { color:var(--text2); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.25rem; max-width:640px; margin-top:-2.5rem; margin-bottom:4rem; }
        .band { display:grid; grid-template-columns:1.15fr 1fr; min-height:72vh; align-items:stretch; }
        .band-media { position:relative; overflow:hidden; min-height:420px; }
        .band-media img, .band-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
        .band-media::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, transparent 55%, var(--bg) 100%); }
        .band.flip .band-media { order:2; }
        .band.flip .band-media::after { background:linear-gradient(270deg, transparent 55%, var(--bg) 100%); }
        .band-text { display:flex; flex-direction:column; justify-content:center; gap:1.1rem; padding:4rem; max-width:620px; }
        .band.flip .band-text { justify-self:end; }
        .band-num { font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.35em; color:var(--accent); }
        .band-text h3 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.05; letter-spacing:0.02em; text-transform:uppercase; }
        .band-text p { color:var(--text2); font-size:0.95rem; line-height:1.85; font-weight:300; }
        .band-meta { font-size:0.68rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent); border-top:1px solid var(--border); padding-top:1.1rem; }
        .evt-link { font-size:0.72rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--text); text-decoration:none; border-bottom:1px solid var(--accent); padding-bottom:2px; align-self:flex-start; transition:color 0.3s; }
        .evt-link:hover { color:var(--accent); }

        /* AFISZ — nadchodzące */
        .afisz { margin-top:6rem; border-top:1px solid var(--border); }
        .af-head { font-size:0.65rem; font-weight:700; letter-spacing:0.35em; text-transform:uppercase; color:var(--text2); padding:2rem 0; display:flex; align-items:center; gap:1rem; }
        .af-head::after { content:''; flex:1; height:1px; background:var(--border); }
        .af-row { display:grid; grid-template-columns:150px 1fr auto; gap:2rem; align-items:center; padding:1.75rem 0; border-bottom:1px solid var(--border); transition:background 0.3s; }
        .af-row:hover { background:rgba(201,169,110,0.04); }
        [data-theme="pub"] .af-row:hover { background:rgba(212,121,47,0.04); }
        .af-thumb { width:150px; height:100px; object-fit:cover; }
        .af-body { display:flex; flex-direction:column; gap:0.4rem; }
        .af-badge { align-self:flex-start; font-size:0.6rem; font-weight:700; letter-spacing:0.25em; text-transform:uppercase; color:#fff; background:var(--accent); padding:0.3rem 0.8rem; }
        .af-title { font-family:'Cormorant Garamond',serif; font-size:1.7rem; font-weight:400; }
        .af-date { font-size:0.72rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--accent); }
        .af-desc { color:var(--text2); font-size:0.85rem; line-height:1.7; max-width:640px; }

        /* GALLERY FILTERS + LIGHTBOX */
        .gal-filters { display:flex; gap:0.75rem; flex-wrap:wrap; margin-bottom:2rem; }
        .gal-f { padding:0.55rem 1.4rem; background:transparent; color:var(--text2); border:1px solid var(--border); font-size:0.68rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; cursor:pointer; transition:all 0.3s; font-family:'Inter',sans-serif; }
        .gal-f:hover { border-color:var(--accent); color:var(--accent); }
        .gal-f.on { background:var(--accent); border-color:var(--accent); color:#fff; }
        .g-item.hide { display:none; }
        .lb { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.9); display:flex; align-items:center; justify-content:center; padding:2rem; opacity:0; visibility:hidden; transition:all 0.3s; cursor:zoom-out; }
        .lb.open { opacity:1; visibility:visible; }
        .lb img { max-width:min(900px,90vw); max-height:80vh; object-fit:contain; border:1px solid var(--border); }
        .lb-cap { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); font-family:'Cormorant Garamond',serif; font-size:1.1rem; letter-spacing:0.15em; text-transform:uppercase; color:#fff; }
        .lb-x { position:absolute; top:1.2rem; right:1.5rem; background:none; border:none; color:#fff; font-size:1.8rem; cursor:pointer; line-height:1; }
        .lb-x:hover { color:var(--accent); }

        /* REVIEWS */
        .reviews { background:var(--bg2); }
        .reviews-grid { display:flex; flex-wrap:nowrap; align-items:stretch; gap:1.5rem; overflow-x:auto; padding-bottom:1rem; scroll-snap-type:x proximity; scrollbar-width:none; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; }
        .reviews-grid::-webkit-scrollbar { display:none; }
        .review-card { flex:0 0 min(380px,85vw); scroll-snap-align:start; }
        .review-card { background:var(--card); border:1px solid var(--border); padding:2.5rem; display:flex; flex-direction:column; gap:1.5rem; transition:all 0.3s; }
        .review-card:hover { border-color:var(--accent); transform:translateY(-3px); box-shadow:0 12px 40px rgba(0,0,0,0.15); }
        .review-stars { color:var(--accent); font-size:0.85rem; letter-spacing:2px; }
        .review-text { color:var(--text2); font-size:0.9rem; line-height:1.8; font-style:italic; flex:1; }
        .review-author { display:flex; justify-content:space-between; align-items:center; padding-top:1.5rem; border-top:1px solid var(--border); }
        .review-name { font-weight:600; font-size:0.85rem; color:var(--text); }
        .review-source { font-size:0.7rem; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; }

        /* GALLERY */
        .gal-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:260px; grid-auto-flow:dense; gap:4px; }
        .g-item { position:relative; overflow:hidden; cursor:pointer; }
        .g-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s, filter 0.5s; }
        .g-item:hover img { transform:scale(1.06); filter:brightness(0.7); }
        .g-item:nth-child(1) { grid-column:span 2; grid-row:span 2; }
        .g-item:nth-child(6) { grid-column:span 2; }
        .g-overlay { position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.7)); display:flex; align-items:flex-end; padding:1.5rem; opacity:0; transition:opacity 0.4s; }
        .g-item:hover .g-overlay { opacity:1; }
        .g-overlay span { font-family:'Cormorant Garamond','Italiana',serif; font-size:1.1rem; letter-spacing:0.1em; text-transform:uppercase; }

        /* ========== CONTACT - ARTYSTYCZNY ========== */
        .contact { padding:0; overflow:hidden; }
        .contact-hero { position:relative; min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
        .contact-bg { position:absolute; inset:0; }
        .contact-bg img { width:100%; height:100%; object-fit:cover; opacity:0.15; filter:grayscale(0.3); }
        .contact-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg, var(--bg) 0%, transparent 50%, var(--bg) 100%); }

        /* Lewa strona - tło ze zdjęciem i info */
        .contact-visual { position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:4rem; z-index:1; }

        .contact-info-stack { display:flex; flex-direction:column; gap:2.5rem; max-width:380px; }
        .contact-info-block h3 { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:400; font-style:italic; color:var(--accent); margin-bottom:1rem; }
        .contact-info-block p { color:var(--text2); font-size:0.95rem; line-height:1.7; }
        .contact-info-block p a { color:var(--accent); text-decoration:none; transition:opacity 0.3s; }
        .contact-info-block p a:hover { opacity:0.7; }

        .contact-address-line { display:flex; align-items:flex-start; gap:0.5rem; margin-bottom:0.75rem; }
        .contact-address-line .icon { width:22px; height:22px; display:flex; align-items:center; justify-content:center; color:var(--accent); flex-shrink:0; margin-top:2px; }
        .contact-address-line .text { color:var(--text2); font-size:0.95rem; line-height:1.7; }
        .contact-address-line .text strong { display:block; color:var(--text); font-weight:500; font-size:1.05rem; }

        .contact-hours-flow { display:flex; flex-direction:column; gap:0.55rem; max-width:360px; }
        .ch-item { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; font-size:0.9rem; border-bottom:1px solid rgba(201,169,110,0.25); padding-bottom:0.55rem; }
        .ch-day { color:var(--muted); }
        .ch-time { color:var(--text); font-weight:500; }
        .ch-item.closed .ch-time { color:var(--accent); font-weight:600; }
        .ch-note { font-size:0.75rem; color:var(--muted); margin-top:0.75rem; }

        .contact-cta-row { display:flex; gap:1rem; margin-top:0.5rem; }
        .btn-gold { display:inline-block; padding:0.8rem 2rem; background:var(--accent); color:#fff !important; text-decoration:none; font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; border:none; cursor:pointer; transition:all 0.3s; text-align:center; }
        .btn-gold:hover { transform:translateY(-2px); box-shadow:0 8px 25px rgba(201,169,110,0.3); }
        [data-theme="pub"] .btn-gold:hover { box-shadow:0 8px 25px rgba(212,121,47,0.3); }
        .btn-outline-gold { display:inline-block; padding:0.8rem 2rem; background:transparent; color:var(--text); text-decoration:none; font-size:0.7rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; border:1px solid var(--border); cursor:pointer; transition:all 0.3s; text-align:center; }
        .btn-outline-gold:hover { border-color:var(--accent); color:var(--accent); }

        /* Prawa strona - mapa w ramce */
        .contact-map-side { position:relative; display:flex; align-items:center; justify-content:center; padding:4rem; z-index:1; }
        .contact-map-wrapper { position:relative; width:90%; max-width:500px; padding:4px; }
        .contact-map-frame { width:100%; aspect-ratio:1; overflow:hidden; position:relative; }
        .contact-map-frame::before { content:''; position:absolute; top:-2px; left:-2px; width:35px; height:35px; border-top:2px solid var(--accent); border-left:2px solid var(--accent); z-index:2; pointer-events:none; transition:all 0.4s; }
        .contact-map-frame::after { content:''; position:absolute; bottom:-2px; right:-2px; width:35px; height:35px; border-bottom:2px solid var(--accent); border-right:2px solid var(--accent); z-index:2; pointer-events:none; transition:all 0.4s; }
        .contact-map-frame:hover::before, .contact-map-frame:hover::after { width:50px; height:50px; }
        .contact-map-frame iframe { width:100%; height:100%; border:none; position:absolute; top:0; left:0; }

        .contact-map-label { position:relative; bottom:auto; left:auto; transform:none; text-align:center; margin-top:1rem; font-size:0.65rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }

        /* FOOTER */
        .footer { padding:2rem 2.5rem; border-top:1px solid var(--border); }
        .footer-inner { max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; }
        .footer-logo { font-family:'Italiana',serif; font-size:1rem; letter-spacing:0.3em; text-transform:uppercase; }
        .footer-text { font-size:0.7rem; color:var(--muted); }

        /* REVEAL */
        .reveal { opacity:0; transform:translateY(30px); transition:opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1); }
        .reveal.vis { opacity:1; transform:translateY(0); }
        .rd1 { transition-delay:0.1s; } .rd2 { transition-delay:0.2s; }

        /* FOCUS — widoczny fokus klawiaturowy (dostepnosc) */
        :focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
        .g-item:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
        .g-item:focus-visible .g-overlay { opacity:1; }
        .lb-x:focus-visible, .gal-f:focus-visible, .theme-btn:focus-visible, .hamburger:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

        .btt { position:fixed; bottom:1.5rem; right:1.5rem; width:42px; height:42px; display:flex; align-items:center; justify-content:center; background:var(--accent); color:#fff; border:none; cursor:pointer; opacity:0; visibility:hidden; transition:all 0.3s; z-index:90; }
        .btt.vis { opacity:1; visibility:visible; }
        .btt:hover { transform:translateY(-3px); box-shadow:0 8px 25px rgba(201,169,110,0.4); }
        [data-theme="pub"] .btt:hover { box-shadow:0 8px 25px rgba(212,121,47,0.4); }

        .social-row { display:flex; justify-content:flex-start; gap:2rem; margin-top:1rem; }
        .social-link { display:inline-flex; align-items:center; gap:0.5rem; color:var(--text2); text-decoration:none; font-size:0.85rem; font-weight:600; letter-spacing:0.1em; transition:color 0.3s; }
        .social-link:hover { color:var(--accent); }
        .social-link svg { color:var(--accent); flex-shrink:0; }

        @media(max-width:1024px) { .band { grid-template-columns:1fr; min-height:0; } .band.flip .band-media { order:0; } .band.flip .band-media::after { background:linear-gradient(180deg, transparent 55%, var(--bg) 100%); } .band-media { min-height:340px; } .band-media::after { background:linear-gradient(180deg, transparent 55%, var(--bg) 100%); } .band-text { padding:3rem 2.5rem; max-width:none; } .band.flip .band-text { justify-self:auto; } .gal-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:220px; } .g-item:nth-child(1) { grid-column:span 2; grid-row:span 1; } .g-item:nth-child(6) { grid-column:span 1; } .about-split { grid-template-columns:1fr; } .about-img { min-height:400px; } .contact-hero { grid-template-columns:1fr; min-height:auto; } .contact-map-wrapper { width:85%; max-width:450px; } }
        @media(max-width:768px) { .band-media { min-height:260px; } .band-text { padding:2.5rem 1.5rem; } .band-text h3 { font-size:2rem; } .events .container { padding-left:1.5rem; padding-right:1.5rem; } .af-row { grid-template-columns:1fr; gap:1rem; } .af-thumb { width:100%; height:180px; } .sec-title { font-size:2.2rem; letter-spacing:0.02em; font-family:'Cormorant Garamond',serif; } .sec-head { margin-bottom:2rem; } .about-content { padding:2rem 1.5rem; } .hero-bg img { object-position:50% 0; } .about-img { min-height:200px; max-height:240px; } .nav-center { display:none; } .hamburger { display:flex; } .contact-hero { grid-template-columns:1fr; } .contact-visual { padding:3rem 1.5rem; } .contact-info-stack { max-width:100%; gap:2rem; } .contact-info-block:nth-child(1) { text-align:left; } .contact-info-block:nth-child(1) .contact-address-line { justify-content:flex-start; } .contact-info-block:nth-child(2) { text-align:left; } .contact-info-block:nth-child(2) .contact-address-line { justify-content:flex-start; } .contact-info-block:nth-child(3) { text-align:center; } .contact-info-block:nth-child(3) .contact-hours-flow { margin:0 auto; }
        .contact-cta-row { justify-content:center; } .contact-map-side { padding:2rem 1.5rem 4rem; } .contact-map-wrapper { width:85%; max-width:none; } .gal-grid { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,160px); gap:4px; } .g-item:nth-child(1) { grid-column:span 2; grid-row:span 1; } .footer-inner { flex-direction:column; gap:1rem; text-align:center; } section { padding:4rem 1.5rem; } .hero { align-items:flex-end; justify-content:center; padding-bottom:6rem; } .scroll-hint { display:flex; position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); flex-direction:column; align-items:center; gap:0.5rem; font-size:0.58rem; font-weight:700; letter-spacing:0.35em; text-transform:uppercase; color:var(--text2); transition:opacity 0.4s; z-index:2; } .scroll-hint i { display:block; width:1px; height:34px; background:var(--accent); animation:hintdrop 1.8s ease-in-out infinite; } .scroll-hint.gone { opacity:0; } @keyframes hintdrop { 0% { transform:scaleY(0); transform-origin:top; } 45% { transform:scaleY(1); transform-origin:top; } 55% { transform:scaleY(1); transform-origin:bottom; } 100% { transform:scaleY(0); transform-origin:bottom; } } .review-card { flex-basis:78vw; } .hero-content { padding:0 1.5rem; text-align:center; margin:0 auto; display:flex; flex-direction:column; align-items:center; } .hero-tag { justify-content:center; } .hero-desc { margin-left:auto; margin-right:auto; } .hero-actions { flex-direction:column; align-items:center; } .menu-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:300px; } .cen-row { grid-template-columns:1fr; gap:0.5rem; } .cen-price { text-align:left; } .social-row { justify-content:center; } }
