/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ (ПОЛНОСТЬЮ ИСПРАВЛЕННАЯ ВЕРСЯ)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Планшеты и малые десктопы (до 1200px)
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
    .grid-main, .grid-2-col, .bottom-price-section { grid-template-columns: 1fr; }
    .horizontal-flex-container, .horizontal-blocks-wrapper { flex-direction: column; gap: var(--spacing-unit); }
}

/* --------------------------------------------------------------------------
   2. Малые планшеты и большие телефоны (до 992px)
   -------------------------------------------------------------------------- */
@media (max-width: 992px) {
    .grid-sub, .hero-split-container, .about-main-subgrid { grid-template-columns: 1fr; }
    .modal-portfolio { max-width: 95vw; }
    .portfolio-modal-layout { grid-template-columns: 1fr; max-height: 90vh; }
    .portfolio-slider-column { min-height: 40vh; max-height: 50vh; border-right: none; border-bottom: 1px solid var(--color-border); }
    .portfolio-details-column { padding: calc(var(--spacing-unit) * 1.5); }
    .portfolio-details-column .btn { width: 100%; }
    .price-table-wrapper { overflow-x: auto; }
}

/* --------------------------------------------------------------------------
   3. Мобильные телефоны (до 768px)
   ========================================================================== */
@media (max-width: 768px) {
    :root { --sidebar-width: 0px; --chat-panel-width: 100vw; }
    html.mobile-lock-scroll { height: 100vh; overflow-y: hidden; }
    body { padding-left: 0; }
    body.mobile-menu-active::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1005; backdrop-filter: blur(2px); }
    
    .page-container { padding: 1.5rem 1rem 1rem 1rem; }
    
    #footer-placeholder { padding-left: 1rem; padding-right: 1rem; }
    h1 { font-size: 1.8rem; } h2 { font-size: 1.5rem; } h3 { font-size: 1.25rem; } h4 { font-size: 1.1rem; }
    p { font-size: 0.95rem; line-height: 1.6; }
    .card { padding: 1.2rem; }

    #mobile-menu-toggle {
        display: flex; position: fixed; top: 0; left: 0; z-index: 1020;
        width: 60px; height: 60px; border: none; background-color: transparent;
        cursor: pointer; padding: 0;
    }
    #mobile-menu-toggle::before {
        content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
        background: linear-gradient(135deg, var(--color-primary) 49.5%, #E0E0E0 50%, var(--color-background) 51%);
        clip-path: polygon(0 0, 100% 0, 0 100%); transition: filter 0.3s ease;
        filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.15));
    }
    #mobile-menu-toggle:hover::before { filter: brightness(1.1) drop-shadow(2px 2px 5px rgba(0,0,0,0.2)); }
    #mobile-menu-toggle i { position: absolute; top: 12px; left: 12px; font-size: 1.2rem; color: white; }

    .ai-chat-fab { display: none !important; }

    #main-sidebar {
        width: 85vw; max-width: 320px;
        transform: translateX(-100%);
        transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1);
        box-shadow: 5px 0 25px rgba(0,0,0,0.15); z-index: 1010;
        top: 0; bottom: 0; border-radius: 0; left: 0;
    }
    #main-sidebar.mobile-menu-open { transform: translateX(0%); }
    
    .sidebar-top {
        display: flex; justify-content: space-between; align-items: center;
        padding: 0.5rem 1rem; position: relative;
    }
    .mobile-logo { 
        display: block !important;
        flex-grow: 1; 
        text-align: center; 
        padding-right: 2rem; 
    }
    .mobile-logo .logo-initials { font-size: 1.8rem; }
    .mobile-menu-close { display: block; font-size: 2rem; color: var(--color-text-secondary); background: none; border: none; cursor: pointer; padding: 0.5rem; }
    .desktop-logo { display: none; }

    #main-sidebar .link-text, #main-sidebar .contact-label { display: inline-block; margin-left: 1rem; }
    #main-sidebar .sidebar-link, #main-sidebar #sidebar-contacts a { justify-content: flex-start; padding: 0.9rem 1.5rem; border: none; }
    #main-sidebar .sidebar-link i, #main-sidebar #sidebar-contacts i { font-size: 1.4rem; width: 25px; text-align: center; }
    .sidebar-bottom { padding-bottom: 1rem; }

    #chat-panel-placeholder {
        position: fixed; display: flex; z-index: 1015;
        top: 0; left: 0; width: 100vw; height: 100vh;
        min-width: 0; min-height: 0; max-width: none; max-height: none;
        padding: 0; resize: none;
        background-color: var(--color-card-bg);
        transform: translateX(100%);
        visibility: hidden;
        transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1), visibility 0s 0.4s;
    }
    
    #chat-panel-placeholder.is-open {
        transform: translateX(0);
        visibility: visible;
        transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1), visibility 0s 0s;
    }

    #ai-chat-widget {
        width: 100%; height: 100%; border-radius: 0;
        box-shadow: none; border: none; transform: none; transition: none;
    }

    .chat-header {
        background: var(--color-card-bg);
        border-bottom: 1px solid var(--color-border);
        border-radius: 0;
    }
    .chat-header h4 {
        color: var(--color-text);
        flex-grow: 1;
        text-align: center;
    }
    #chat-close-btn {
        color: var(--color-text-secondary);
    }

    .chat-resize-handle { display: none; }
    
    .grid-sub, .hero-split-container, .program-layout, .about-main-subgrid, .portfolio-grid { display: flex; flex-direction: column; gap: var(--spacing-unit); }
    #hero-canvas-card { height: 75vw; max-height: 350px; padding: 0; }
    .program-gif { order: -1; text-align: center; }
    .program-gif img { max-width: 120px; }
    .process-row { flex-direction: column; gap: 0.5rem; }
    code, .contact-value { word-break: break-all; }

    .price-table { border: none; }
    .price-table thead { display: none; }
    .price-table tr { display: block; border: 1px solid var(--color-border); border-radius: var(--border-radius-medium); margin-bottom: 1rem; padding: 0.8rem 1rem; background-color: var(--color-card-bg); }
    .price-table td { display: block; padding: 0.5rem 0; border-bottom: 1px dotted var(--color-border); text-align: right; }
    .price-table td:last-child { border-bottom: none; }
    .price-table td::before { content: attr(data-label); float: left; font-weight: 600; padding-right: 1rem; }
    .price-table-wrapper { overflow-x: visible; border: none; margin: 1rem 0; }
    
    .bottom-price-section {
        grid-template-columns: 1fr;
    }
    .horizontal-blocks-wrapper {
        grid-template-columns: 1fr;
    }

    /* === НОВОЕ ПРАВИЛО: Отключаем подсказки в меню на мобильных === */
    [data-tooltip]::after {
        display: none !important;
    }
}