/* ============================================================
   app.min.css - ПОЛНЫЙ ОБЪЕДИНЁННЫЙ ФАЙЛ
   Версия: 1.0 - ВСЕ СТИЛИ В ОДНОМ
   ============================================================ */

/* ============================================================
   1. ПЕРЕМЕННЫЕ
   ============================================================ */
:root {
    --bg-deep: #0d0b09;
    --bg-card: #14110e;
    --bg-surface: #161310;
    --text-primary: #ede4d8;
    --text-secondary: #d4c8b8;
    --text-muted: #b8aa9a;
    --text-dim: #8a7a6a;
    --accent-gold: #d4a853;
    --accent-gold-light: #e8c878;
    --border-subtle: #2a241e;
    --border-glow: rgba(212,168,83,0.15);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-full: 9999px;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.2);
    --shadow-md: 0 4px 24px rgba(0,0,0,.3);
    --shadow-lg: 0 16px 48px rgba(0,0,0,.5);
    --shadow-gold: 0 4px 20px rgba(212,168,83,.35);
    --transition-fast: .15s ease;
    --transition-smooth: .3s cubic-bezier(.34,1.56,.64,1);
    --gradient-gold: linear-gradient(145deg,#d4a853,#e8c878);
    --font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --z-sticky: 100;
    --z-modal: 1000;
    --z-toast: 9999;
    --container-max: 1200px;
    --font-size-base: 15px;
    --spacing-base: 1rem;
}

/* ============================================================
   2. БАЗОВЫЙ СБРОС
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{background:var(--bg-deep);min-height:100vh;color:var(--text-primary);font-family:var(--font-family);line-height:1.6;-webkit-font-smoothing:antialiased;background-image:radial-gradient(ellipse at 20% 50%,rgba(30,60,180,.12)0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(20,40,120,.10)0%,transparent 50%),linear-gradient(180deg,#0a0e1a 0%,#0d1225 30%,#0f1a30 60%,#080c18 100%);background-attachment:fixed;font-size:var(--font-size-base)}
.wrapper{max-width:var(--container-max);width:100%;padding:1rem 1.5rem 2.5rem;margin:0 auto;min-height:100vh}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}
*:focus-visible{outline:3px solid var(--accent-gold);outline-offset:3px;border-radius:4px}
.skip-link{position:absolute;top:-100px;left:10px;background:var(--accent-gold);color:#1a1510;padding:10px 20px;border-radius:var(--radius-sm);z-index:9999;text-decoration:none;font-weight:600}
.skip-link:focus{top:10px}
img{max-width:100%;height:auto;display:block}

/* ============================================================
   3. ШАПКА И НАВИГАЦИЯ
   ============================================================ */
.top-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:rgba(13,18,37,.85);border:1px solid rgba(26,42,74,.6);border-radius:28px;flex-wrap:wrap;gap:8px;backdrop-filter:blur(8px);position:sticky;top:0;z-index:var(--z-sticky)}
.logo-area{display:flex;align-items:center;gap:8px;flex-shrink:0}
.logo-img{width:36px;height:45px;display:block;object-fit:contain}
.logo-brand{font-weight:700;font-size:1.3rem;letter-spacing:3px;text-transform:uppercase;line-height:1.2;background:linear-gradient(90deg,#fff 0%,#dbb85a 67%,#fff 100%);background-size:400% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:logoGlow 6s ease-in-out infinite}
@keyframes logoGlow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.logo-sub{font-size:.5rem;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase}
.nav-links{display:flex;gap:2px;background:rgba(30,26,22,.6);border-radius:var(--radius-full);padding:3px;flex-wrap:wrap;justify-content:center;min-height:30px}
.nav-link{background:none;border:none;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);cursor:pointer;padding:.3rem .6rem;border-radius:var(--radius-full);transition:all var(--transition-fast);font-family:inherit;text-decoration:none;display:inline-flex;align-items:center;white-space:nowrap;min-height:24px}
.nav-link:hover{color:var(--text-primary);background:rgba(255,255,255,.04)}
.nav-link.active{color:#1a1510;background:var(--accent-gold);font-weight:600;box-shadow:var(--shadow-gold)}
.header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.book-btn{display:inline-block;background:var(--accent-gold);color:#1a1510;padding:5px 12px;border-radius:30px;text-decoration:none;font-weight:600;font-size:.6rem;text-transform:uppercase;transition:all var(--transition-smooth);min-height:28px;display:inline-flex;align-items:center;gap:4px;font-family:inherit;border:none;cursor:pointer}
.book-btn:hover{background:var(--accent-gold-light);transform:translateY(-2px);box-shadow:0 4px 20px rgba(212,168,83,.35)}

/* ============================================================
   4. КОНТАКТНАЯ ПОЛОСА
   ============================================================ */
.contact-strip{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:6px 12px;background:rgba(13,18,37,.85);border:1px solid rgba(26,42,74,.4);border-radius:var(--radius-full);font-size:.65rem;color:var(--text-secondary);min-height:32px;gap:4px}
.contact-strip a{color:var(--text-primary);text-decoration:none;font-weight:500}
.contact-strip .phone-links a{color:var(--accent-gold);text-decoration:underline;text-underline-offset:2px}
.phone-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.divider{color:var(--text-dim);user-select:none}

/* ============================================================
   5. КНОПКА "НАВЕРХ"
   ============================================================ */
.back-to-top{position:fixed;bottom:28px;right:24px;background:var(--accent-gold);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:all var(--transition-smooth);z-index:var(--z-modal);border:none;color:#1a1510;font-size:1.4rem;box-shadow:var(--shadow-gold)}
.back-to-top.visible{opacity:1;visibility:visible}
.back-to-top:hover{background:var(--accent-gold-light);transform:translateY(-3px) scale(1.05);box-shadow:0 6px 24px rgba(212,168,83,.4)}
.back-to-top:active{transform:scale(.95)}

/* ============================================================
   6. АФИША
   ============================================================ */
.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;min-height:300px}
.poster-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-smooth);display:flex;flex-direction:column;min-height:280px;text-decoration:none;color:var(--text-primary)}
.poster-card:hover{transform:translateY(-4px);border-color:var(--accent-gold);box-shadow:var(--shadow-lg)}
.poster-card .poster-img{aspect-ratio:4/3;width:100%;flex-shrink:0;background:var(--bg-surface);overflow:hidden;position:relative;min-height:160px}
.poster-card .poster-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.poster-content{padding:.5rem .75rem .75rem;flex:1;display:flex;flex-direction:column}
.poster-date{font-size:.7rem;color:var(--accent-gold-light);font-weight:600;margin-bottom:2px}
.poster-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.poster-description-full{font-size:.75rem;color:var(--text-muted);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.poster-meta{padding:.3rem 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px solid var(--border-subtle);flex-shrink:0;min-height:36px;margin-top:auto}
.poster-meta .price-tag{background:var(--accent-gold);color:#1a1510;padding:2px 12px;border-radius:var(--radius-full);font-weight:700;font-size:.8rem}
.poster-meta .age-badge{background:rgba(180,140,80,.2);padding:2px 10px;border-radius:var(--radius-full);color:var(--text-secondary);border:1px solid rgba(180,140,80,.3);font-size:.6rem;font-weight:600}
.city-label{font-size:.6rem;color:var(--text-dim);margin-left:auto}

/* ============================================================
   7. МЕНЮ
   ============================================================ */
.page-title{font-size:1.8rem;font-weight:300;text-transform:uppercase;letter-spacing:6px;margin-bottom:2rem;padding-left:20px;border-left:4px solid var(--accent-gold);color:var(--text-primary);min-height:50px}
.section-title{font-size:1.4rem;font-weight:300;letter-spacing:3px;margin-bottom:1.5rem;color:var(--accent-gold);border-bottom:1px solid var(--border-subtle);padding-bottom:.5rem}
.menu-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;padding:6px;background:rgba(22,19,16,.5);backdrop-filter:blur(12px);border-radius:var(--radius-lg);border:1px solid rgba(42,36,30,.3);min-height:56px}
.menu-tab{padding:10px 24px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-smooth);font-size:.9rem;font-family:var(--font-family);font-weight:500;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative}
.menu-tab::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:0;height:2px;background:var(--accent-gold);border-radius:2px;transition:width var(--transition-smooth)}
.menu-tab:hover::after{width:60%}
.menu-tab:hover{color:var(--text-primary);background:rgba(255,255,255,.04)}
.menu-tab.active{color:#1a1510;background:var(--gradient-gold);font-weight:600;box-shadow:var(--shadow-gold);transform:translateY(-2px)}
.menu-tab.active::after{width:0;opacity:0}
.menu-tab .badge{background:rgba(212,168,83,.15);padding:1px 10px;border-radius:20px;font-size:.65rem;font-weight:600;color:var(--text-secondary);line-height:1.8}
.menu-tab.active .badge{background:rgba(26,21,16,.15);color:#1a1510}
.menu-tab-content{display:none;animation:menuFadeIn .4s cubic-bezier(.34,1.56,.64,1)}
.menu-tab-content.active{display:block}
@keyframes menuFadeIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.menu-category{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:28px 32px;min-height:200px;box-shadow:var(--shadow-md)}
.category-title{font-size:1.25rem;font-weight:500;color:var(--accent-gold);margin-bottom:18px;border-bottom:1px solid var(--border-glow);padding-bottom:12px;display:flex;align-items:center;gap:10px}
.category-title::before{content:'';display:inline-block;width:4px;height:24px;background:var(--gradient-gold);border-radius:4px}
.menu-item{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid rgba(42,36,30,.1)}
.menu-item:hover{background:rgba(255,255,255,.02);margin:0 -8px;padding:10px 8px;border-radius:var(--radius-sm)}
.menu-item:last-child{border-bottom:none}
.item-name{color:var(--text-primary);font-size:.95rem;font-weight:500}
.menu-item:hover .item-name{color:var(--accent-gold-light)}
.item-price{color:var(--accent-gold);font-weight:700;font-size:.95rem;white-space:nowrap;margin-left:16px;background:rgba(212,168,83,.06);padding:2px 12px;border-radius:20px}
.item-desc{font-size:.8rem;color:var(--text-muted);padding:4px 0 10px 4px;border-bottom:1px solid rgba(42,36,30,.05)}
.menu-note{margin-top:18px;padding-top:14px;border-top:1px solid var(--border-glow);color:var(--text-muted);font-size:.9rem}
.menu-note a{color:var(--accent-gold);text-decoration:underline;text-underline-offset:2px}

/* ============================================================
   8. QR БАННЕР
   ============================================================ */
.qr-banner{display:flex;align-items:center;gap:20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 24px;margin-bottom:2rem;flex-wrap:wrap;min-height:100px}
.qr-banner .qr-text{flex:1}
.qr-banner .qr-text span{display:block;font-weight:600;color:var(--text-primary);font-size:1rem}
.qr-banner .qr-text small{color:var(--text-muted);font-size:.85rem}
.qr-code-img{width:80px;height:80px;border-radius:var(--radius-sm);flex-shrink:0}

/* ============================================================
   9. ОТЗЫВЫ
   ============================================================ */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:1.5rem;min-height:200px}
.review-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 20px;transition:border-color var(--transition-smooth);min-height:120px}
.review-card:hover{border-color:var(--accent-gold)}
.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.reviewer-name{font-weight:600;color:var(--text-primary)}
.review-stars{color:var(--accent-gold);letter-spacing:2px;font-size:.9rem}
.review-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0 0 8px}
.review-source{font-size:.75rem;color:var(--text-muted)}
.reviews-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--border-subtle)}
.reviews-rating-summary{display:flex;align-items:center;gap:12px}
.rating-stars{color:var(--accent-gold);font-size:1.1rem;letter-spacing:2px}
.rating-text{color:var(--text-secondary);font-size:.9rem}
.reviews-link{display:inline-block;padding:10px 24px;border:1px solid var(--border-subtle);border-radius:30px;color:var(--text-secondary);text-decoration:none;transition:all var(--transition-smooth);font-size:.9rem}
.reviews-link:hover{border-color:var(--accent-gold);color:var(--text-primary);background:rgba(212,168,83,.05)}
.reviews-link-primary{background:var(--accent-gold);color:#1a1510;border-color:var(--accent-gold);font-weight:600}
.reviews-link-primary:hover{background:var(--accent-gold-light);color:#1a1510}

/* ============================================================
   10. СТРАНИЦА "О НАС"
   ============================================================ */
.about-text{max-width:800px;margin-bottom:2.5rem;color:var(--text-secondary);line-height:1.8;font-size:1.05rem}
.about-text p{margin-bottom:1rem}
.about-text strong{color:var(--text-primary)}
.history-timeline{margin-bottom:3rem}
.history-item{display:flex;gap:24px;padding:20px 0;border-bottom:1px solid rgba(42,36,30,.3)}
.history-year{flex-shrink:0;font-size:1.8rem;font-weight:700;color:var(--accent-gold);min-width:100px}
.history-content h3{font-size:1.1rem;font-weight:500;color:var(--text-primary);margin-bottom:.3rem}
.history-content p{color:var(--text-secondary);line-height:1.6;margin:0}
.history-content em{color:var(--accent-gold-light)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:2rem;min-height:200px}
.gallery-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;transition:transform var(--transition-smooth),border-color var(--transition-smooth);min-height:220px}
.gallery-card:hover{transform:translateY(-4px);border-color:var(--accent-gold)}
.gallery-img-wrapper{height:160px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;overflow:hidden}
.gallery-img-wrapper img{width:100%;height:100%;object-fit:cover}
.gallery-map-container{height:160px;background:var(--bg-surface);overflow:hidden}
.gallery-map-container iframe{width:100%;height:100%;border:0}
.gallery-content{padding:12px 16px}
.gallery-title{font-weight:600;color:var(--text-primary);font-size:.95rem}
.gallery-desc{font-size:.8rem;color:var(--text-muted);margin-top:2px}
.seo-about-block{max-width:800px;margin:40px auto 0;padding:24px 0;border-top:1px solid var(--border-subtle)}
.seo-about-block h2{font-size:1.3rem;font-weight:300;letter-spacing:2px;color:var(--accent-gold);margin-bottom:16px}
.seo-about-block .features-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:16px 0}
.seo-about-block .feature-item{color:var(--text-secondary);line-height:1.8;font-size:.95rem;display:flex;align-items:center;gap:10px}
.seo-about-block .feature-item .emoji{font-size:1.3rem;flex-shrink:0}
.seo-about-block .feature-item strong{color:var(--text-primary)}
.seo-about-block .seo-text-p{color:var(--text-secondary);line-height:1.8;font-size:.95rem;margin-bottom:.8rem}
.seo-about-block .seo-text-p strong{color:var(--text-primary)}
.seo-about-block .seo-link{color:var(--accent-gold);text-decoration:none}
.seo-about-block .seo-link:hover{text-decoration:underline}
.seo-about-block .contact-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.95rem}
.seo-about-block .contact-row a{color:var(--accent-gold);text-decoration:none}
.seo-about-block .contact-row a:hover{text-decoration:underline}

/* ============================================================
   11. ПОДВАЛ
   ============================================================ */
.site-footer{margin-top:40px;padding:24px 24px 20px;background:rgba(13,18,37,.92);border-top:1px solid rgba(212,168,83,.08);backdrop-filter:blur(8px)}
.footer-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.footer-left{display:flex;flex-direction:column;gap:2px}
.footer-copy{font-size:.8rem;color:var(--text-muted);margin:0;line-height:1.4;letter-spacing:.3px}
.footer-address{font-size:.75rem;color:var(--text-dim);margin:0;line-height:1.4}
.footer-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vk-button{display:inline-flex;align-items:center;gap:6px;background:#4a76a8;color:#fff!important;padding:8px 24px;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:.85rem;transition:all var(--transition-smooth);box-shadow:0 2px 8px rgba(74,118,168,.3)}
.vk-button:hover{background:#5b88bd;transform:translateY(-2px);box-shadow:0 4px 16px rgba(74,118,168,.4)}
.footer-pwa-btn{display:flex;align-items:center;gap:6px;padding:6px 16px;background:var(--gradient-gold);border:none;border-radius:30px;color:#1a1510;font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-smooth);font-family:var(--font-family);box-shadow:0 2px 12px rgba(212,168,83,.15);min-height:36px}
.footer-pwa-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(212,168,83,.25)}
.footer-pwa-btn:active{transform:scale(.95)}

/* ============================================================
   12. PWA И УСТАНОВКА
   ============================================================ */
.pwa-install-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;z-index:1000;transition:all .4s cubic-bezier(.34,1.56,.64,1);display:none;width:calc(100% - 40px);max-width:400px}
.pwa-install-container.show{display:block;opacity:1;transform:translateX(-50%) translateY(0)}
.pwa-install-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;background:linear-gradient(135deg,#d4a853,#e8c878);border:none;border-radius:16px;color:#1a1510;font-family:var(--font-family);font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 8px 32px rgba(212,168,83,.35);transition:all .3s ease;position:relative;overflow:hidden}
.pwa-install-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s ease}
.pwa-install-btn:hover::before{left:100%}
.pwa-install-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 40px rgba(212,168,83,.45)}
.pwa-install-btn:active{transform:scale(.97)}
.pwa-install-close{position:absolute;top:-10px;right:-8px;width:28px;height:28px;border-radius:50%;background:rgba(20,17,14,.9);border:1px solid rgba(42,36,30,.3);color:var(--text-muted);font-size:.7rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-family:inherit;backdrop-filter:blur(4px);box-shadow:0 2px 12px rgba(0,0,0,.3)}
.pwa-install-close:hover{background:rgba(255,107,107,.2);border-color:#ff6b6b;color:#ff6b6b;transform:scale(1.1)}
.pwa-toast{position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);background:rgba(0,200,100,.12);border:1px solid #00c864;color:#00c864;padding:14px 24px;border-radius:12px;font-family:var(--font-family);font-size:.95rem;z-index:9999;opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(10px);box-shadow:0 8px 32px rgba(0,0,0,.3);pointer-events:none;max-width:90%}
.pwa-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.ios-instructions-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);backdrop-filter:blur(12px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:pwaFadeIn .3s ease}
.ios-instructions-box{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:24px;padding:32px 28px 28px;max-width:380px;width:100%;text-align:center;color:var(--text-primary);box-shadow:0 20px 60px rgba(0,0,0,.8);animation:pwaScaleIn .4s cubic-bezier(.34,1.56,.64,1);position:relative}
@keyframes pwaFadeIn{from{opacity:0}to{opacity:1}}
@keyframes pwaScaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

/* ============================================================
   13. СКЕЛЕТОНЫ
   ============================================================ */
.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-surface) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:skeletonLoading 1.5s ease-in-out infinite;border-radius:var(--radius-sm);min-height:20px}
@keyframes skeletonLoading{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-poster{min-height:340px;border-radius:var(--radius-lg)}
.skeleton-poster .skeleton-img{height:200px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.skeleton-poster .skeleton-title{height:20px;margin:12px 16px 8px;width:80%}
.skeleton-poster .skeleton-date{height:16px;margin:0 16px 8px;width:60%}
.skeleton-poster .skeleton-desc{height:40px;margin:0 16px}
.skeleton-poster .skeleton-meta{height:30px;margin:12px 16px 16px}
.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;min-height:400px}

/* ============================================================
   14. ИНСТРУМЕНТЫ (ТЮНЕР + МЕТРОНОМ)
   ============================================================ */
.tool-container{max-width:540px;margin:0 auto;padding:12px 16px 24px;background-color:var(--bg-deep);color:var(--text-primary);min-height:85vh;display:flex;flex-direction:column;justify-content:space-between}
.tool-header h1{font-size:1.6rem;font-weight:300;letter-spacing:3px;color:var(--accent-gold);margin-bottom:2px;text-align:center}
.tool-header p{color:var(--text-muted);font-size:.85rem;opacity:.7;text-align:center}
.tool-btn{width:100%;border:none;border-radius:14px;padding:18px;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:all .3s ease;font-family:var(--font-family);touch-action:manipulation}
.tool-btn:active{transform:scale(.97)}
.tool-btn-primary{background:var(--accent-gold);color:#1a1510;box-shadow:0 4px 20px rgba(212,168,83,.25)}
.tool-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(212,168,83,.35)}
.tool-btn-danger{background:#ff4757;color:#fff;box-shadow:0 4px 20px rgba(255,71,87,.25)}
.tool-tip{text-align:center;font-size:.7rem;color:var(--text-dim);margin-top:12px;line-height:1.6;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,.02)}
.tool-tip strong{color:var(--accent-gold)}
.tool-tip kbd{background:var(--border-subtle);padding:1px 6px;border-radius:4px;color:var(--text-muted);font-size:.65rem;font-family:inherit}

/* ============================================================
   15. АДАПТИВ
   ============================================================ */
@media (max-width:768px){
.contact-strip{flex-direction:column;align-items:center;text-align:center;padding:8px 12px;font-size:.75rem;gap:4px}
.site-footer{padding:20px 16px 16px;margin-top:24px}
.footer-container{flex-direction:column;align-items:center;text-align:center;gap:12px}
.footer-left{align-items:center}
.footer-right{justify-content:center}
.page-title{font-size:1.3rem;letter-spacing:3px;padding-left:14px;min-height:40px}
.menu-category{padding:20px}
.reviews-grid{grid-template-columns:1fr}
.history-item{flex-direction:column;gap:4px;padding:16px 0}
.history-year{font-size:1.3rem;min-width:auto}
.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));min-height:160px}
.seo-about-block .features-grid{grid-template-columns:1fr;gap:8px}
.poster-grid{grid-template-columns:1fr 1fr;gap:12px;min-height:250px}
.poster-card{min-height:220px}
.poster-card .poster-img{min-height:120px}
.poster-title{font-size:.85rem}
}

@media (max-width:480px){
.back-to-top{bottom:20px;right:16px;width:38px;height:38px;font-size:1.2rem}
.contact-strip{font-size:.5rem;padding:3px 8px;min-height:24px;border-radius:16px}
.contact-strip .phone-links{flex-direction:column;gap:2px}
.contact-strip .divider{display:none}
.page-title{font-size:1.1rem;letter-spacing:2px;padding-left:10px;min-height:34px}
.section-title{font-size:1.1rem}
.site-footer{padding:16px 12px 12px;margin-top:16px}
.footer-copy{font-size:.6rem}
.footer-address{font-size:.55rem}
.footer-pwa-btn{font-size:.6rem;padding:4px 12px;min-height:28px}
.footer-right{gap:8px}
.vk-button{font-size:.75rem;padding:6px 16px}
.menu-tab{padding:8px 16px;font-size:.8rem;min-height:36px}
.menu-category{padding:16px}
.menu-item{flex-wrap:wrap;gap:4px}
.reviews-grid{grid-template-columns:1fr}
.reviews-footer{flex-direction:column;align-items:stretch}
.reviews-link{text-align:center}
.about-text{font-size:.95rem}
.gallery-grid{grid-template-columns:1fr 1fr;min-height:140px}
.gallery-img-wrapper{height:120px}
.seo-about-block h2{font-size:1.1rem}
.seo-about-block .feature-item{font-size:.85rem}
.seo-about-block .seo-text-p{font-size:.85rem}
.qr-banner{padding:12px 16px}
.qr-code-img{width:60px;height:60px}
.poster-grid{grid-template-columns:1fr!important;gap:12px!important;min-height:200px!important}
.poster-card{min-height:200px!important;flex-direction:row!important;flex-wrap:wrap!important}
.poster-card .poster-img{min-height:100px!important;max-height:120px!important;flex:0 0 100%!important}
.poster-card .poster-img img{height:auto!important;max-height:120px!important;object-fit:contain!important}
.poster-content{padding:.4rem .6rem .6rem!important}
.poster-title{font-size:.8rem!important;white-space:normal!important;overflow:visible!important;text-overflow:unset!important}
.poster-description-full{display:none!important}
.poster-date{font-size:.55rem!important}
.poster-meta{min-height:28px!important;padding-top:.2rem!important;gap:4px!important}
.poster-meta .price-tag{font-size:.7rem!important;padding:2px 8px!important}
.poster-meta .age-badge{font-size:.5rem!important;padding:1px 6px!important}
.city-label{font-size:.5rem!important}
.tool-container{padding:8px 10px 16px}
.tool-header h1{font-size:1.3rem}
.tool-btn{padding:14px;font-size:1rem}
}

@media (max-width:380px){
.poster-content{padding:.3rem .4rem .5rem!important}
.poster-title{font-size:.7rem!important}
.poster-date{font-size:.5rem!important}
.poster-meta .price-tag{font-size:.6rem!important;padding:1px 6px!important}
.poster-meta .age-badge{font-size:.4rem!important;padding:1px 4px!important}
.city-label{font-size:.4rem!important}
.menu-tab{font-size:.6rem!important;padding:4px 8px!important;min-height:28px!important}
.menu-category{padding:10px!important}
}

@media (max-width:896px) and (orientation:landscape){
.poster-grid{grid-template-columns:repeat(3,1fr)!important;gap:12px!important}
.poster-card .poster-img{max-height:160px!important}
.poster-card .poster-img img{max-height:160px!important;object-fit:contain!important}
.poster-title{font-size:.75rem!important;-webkit-line-clamp:1!important}
.poster-description-full{display:none!important}
.poster-content{padding:6px 8px 10px!important}
.poster-date{font-size:.55rem!important}
.poster-meta{min-height:24px!important;padding-top:4px!important;margin-top:2px!important;gap:4px!important}
.poster-meta .price-tag{font-size:.55rem!important;padding:1px 6px!important}
.poster-meta .age-badge{font-size:.4rem!important;padding:1px 4px!important}
.city-label{font-size:.4rem!important}
}

@media (min-width:1024px){
:root{--container-max:1200px;--font-size-base:16px;--spacing-base:1.25rem}
.wrapper{padding:1.5rem 2rem 3rem}
.top-bar{padding:14px 24px;border-radius:32px}
.logo-brand{font-size:1.6rem;letter-spacing:4px}
.logo-img{width:44px;height:55px}
.nav-link{font-size:.8rem;padding:.4rem 1rem;min-height:32px;letter-spacing:.8px}
.book-btn{font-size:.7rem;padding:6px 18px;min-height:32px}
.contact-strip{padding:10px 24px;font-size:.85rem;min-height:44px}
.back-to-top{width:52px;height:52px;font-size:1.6rem;bottom:32px;right:32px}
.poster-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto}
.poster-card{max-width:380px;margin:0 auto;min-height:320px}
.poster-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 48px rgba(0,0,0,.4)}
.poster-card .poster-img{height:220px;max-height:240px;min-height:200px}
.poster-card .poster-img img{object-fit:cover;height:100%}
.poster-title{font-size:1.1rem;-webkit-line-clamp:2;min-height:2.8rem;white-space:normal}
.poster-description-full{font-size:.9rem;-webkit-line-clamp:2;min-height:2.6rem}
.poster-content{padding:16px 20px 20px}
.poster-meta{min-height:40px;padding-top:12px;margin-top:8px}
.poster-meta .price-tag{font-size:.9rem;padding:4px 16px}
.poster-meta .age-badge{font-size:.7rem;padding:3px 12px}
.qr-banner{padding:20px 32px;gap:28px;border-radius:20px;min-height:120px}
.qr-code-img{width:100px;height:100px}
.qr-banner .qr-text span{font-size:1.1rem}
.qr-banner .qr-text small{font-size:.9rem}
.about-text{font-size:1.1rem;max-width:900px}
.history-year{font-size:2rem;min-width:140px}
.history-content h3{font-size:1.2rem}
.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.gallery-img-wrapper{height:200px}
.gallery-title{font-size:1rem}
.seo-about-block h2{font-size:1.6rem;letter-spacing:3px}
.seo-about-block .feature-item{font-size:1rem}
.seo-about-block .seo-text-p{font-size:1rem}
.menu-category{padding:28px 32px}
.menu-tab{padding:10px 24px;font-size:.9rem;min-height:44px}
.reviews-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
}

@media (min-width:1400px){
:root{--container-max:1400px;--font-size-base:17px;--spacing-base:1.5rem}
.wrapper{padding:2rem 3rem 4rem}
.top-bar{padding:16px 32px;border-radius:36px}
.logo-brand{font-size:1.8rem;letter-spacing:5px}
.logo-img{width:48px;height:60px}
.nav-link{font-size:.9rem;padding:.5rem 1.2rem;min-height:36px}
.book-btn{font-size:.8rem;padding:8px 24px;min-height:36px}
.contact-strip{padding:12px 28px;font-size:.95rem;min-height:48px}
.back-to-top{width:56px;height:56px;font-size:1.8rem;bottom:36px;right:36px}
.poster-grid{grid-template-columns:repeat(4,1fr);gap:28px;max-width:1400px}
.poster-card{max-width:320px;min-height:360px}
.poster-card .poster-img{height:240px}
.poster-title{font-size:1.2rem}
.qr-banner{padding:24px 40px;gap:32px;border-radius:24px;min-height:140px}
.qr-code-img{width:120px;height:120px}
.qr-banner .qr-text span{font-size:1.2rem}
.qr-banner .qr-text small{font-size:.95rem}
.about-text{font-size:1.15rem;max-width:1000px}
.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.gallery-img-wrapper{height:220px}
.seo-about-block h2{font-size:1.8rem;letter-spacing:4px}
}

@media (min-width:2000px){
:root{--container-max:1800px;--font-size-base:18px;--spacing-base:1.75rem}
.wrapper{padding:2.5rem 4rem 5rem}
.top-bar{padding:20px 40px;border-radius:40px}
.logo-brand{font-size:2rem;letter-spacing:6px}
.logo-img{width:56px;height:70px}
.nav-link{font-size:1rem;padding:.6rem 1.4rem;min-height:40px}
.book-btn{font-size:.9rem;padding:10px 28px;min-height:40px}
.contact-strip{padding:14px 32px;font-size:1rem;min-height:52px}
.back-to-top{width:60px;height:60px;font-size:2rem;bottom:40px;right:40px}
.poster-grid{grid-template-columns:repeat(5,1fr);gap:32px;max-width:1800px}
.poster-card{max-width:340px;min-height:400px}
.poster-card .poster-img{height:260px}
.qr-banner{padding:28px 48px;gap:36px;border-radius:28px;min-height:160px}
.qr-code-img{width:140px;height:140px}
.qr-banner .qr-text span{font-size:1.3rem}
.qr-banner .qr-text small{font-size:1rem}
.about-text{font-size:1.2rem;max-width:1100px}
.history-year{font-size:2.2rem;min-width:160px}
.history-content h3{font-size:1.3rem}
.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}
.gallery-img-wrapper{height:240px}
.gallery-title{font-size:1.1rem}
.seo-about-block h2{font-size:2rem;letter-spacing:5px}
.seo-about-block .feature-item{font-size:1.05rem}
.seo-about-block .seo-text-p{font-size:1.05rem}
}

/* ============================================================
   16. REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
*{animation-duration:.01ms!important;transition-duration:.01ms!important}
.logo-brand{animation:none!important}
.poster-card:hover{transform:none!important}
.gallery-card{transition:none!important}
.gallery-card:hover{transform:none!important}
.back-to-top{transition:none!important}
.back-to-top:hover{transform:none!important}
.vk-button{transition:none!important}
.vk-button:hover{transform:none!important}
.footer-pwa-btn{transition:none!important}
.footer-pwa-btn:hover{transform:none!important}
.tool-btn{transition:none!important}
.tool-btn:hover{transform:none!important}
.pwa-install-btn{transition:none!important}
.pwa-install-btn:hover{transform:none!important}
.skeleton{animation:none!important}
}