/**
 * Корневой раздел сайта (страницы с dew/header.php, body.site-app-body):
 * компактные боковые отступы на мобильных, safe-area для «чёлки», без горизонтального скролла.
 * Подключается после site-header.css и public-core.css / contragents/styles.css.
 */

body.site-app-body {
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

/* Футер прижат к низу экрана на коротких страницах (хабы, info, services…) */
body.site-app-body:not(.page-home) {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

body.site-app-body:not(.page-home) > .header {
    flex-shrink: 0;
}

body.site-app-body:not(.page-home) > .main-container {
    flex: 1 0 auto;
    width: 100%;
}

body.site-app-body:not(.page-home) > .footer.site-footer {
    flex-shrink: 0;
    margin-top: auto;
    width: 100%;
}

/* Контейнеры шапки, контента и футера — уже, чем в общем styles.css */
@media (max-width: 992px) {
    body.site-app-body .container {
        padding-left: max(10px, env(safe-area-inset-left, 0px));
        padding-right: max(10px, env(safe-area-inset-right, 0px));
    }
}

@media (max-width: 768px) {
    body.site-app-body .container {
        padding-left: max(8px, env(safe-area-inset-left, 0px));
        padding-right: max(8px, env(safe-area-inset-right, 0px));
    }
}

@media (max-width: 480px) {
    body.site-app-body .container {
        padding-left: max(4px, env(safe-area-inset-left, 0px));
        padding-right: max(4px, env(safe-area-inset-right, 0px));
    }
}

/* Основная колонка — не раздувает flex-раскладку на узких экранах */
body.site-app-body .main-container .content {
    min-width: 0;
    flex: 1 1 auto;
    width: 100%;
}

/* Личный кабинет (cabinet.php) */
body.site-app-body .cabinet-wrap {
    padding-left: max(20px, env(safe-area-inset-left, 0px));
    padding-right: max(20px, env(safe-area-inset-right, 0px));
}

@media (max-width: 768px) {
    body.site-app-body .cabinet-wrap {
        padding: 20px max(12px, env(safe-area-inset-left, 0px)) 24px max(12px, env(safe-area-inset-right, 0px));
    }
}

@media (max-width: 480px) {
    body.site-app-body .cabinet-wrap {
        padding: 16px max(8px, env(safe-area-inset-left, 0px)) 20px max(8px, env(safe-area-inset-right, 0px));
    }
}

/* Главная: футер вне Tailwind-контента, не сжимается body.page-home */
body.page-home.site-app-body {
    overflow-x: hidden;
    overflow-y: auto;
}

body.page-home .site-footer {
    display: block;
    position: relative;
    z-index: 20;
    width: 100%;
    max-width: none;
    flex-shrink: 0;
}

/* Главная: mobile — компактный отступ; desktop — hero на высоту экрана, контент по центру */
body.page-home {
    --site-header-height: 80px;
    --site-scroll-offset: 100px;
    --home-hero-gap: 12px;
}

body.page-home .home-hero {
    display: flex;
    align-items: flex-start;
    min-height: auto;
    padding-top: var(--home-hero-gap);
    padding-bottom: 2.5rem;
    box-sizing: border-box;
}

body.page-home section[id] {
    scroll-margin-top: var(--site-scroll-offset);
}

body.page-home .home-feature-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

body.page-home .home-feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.08);
}

body.page-home .home-cta-btn {
    width: 100%;
}

@media (min-width: 640px) {
    body.page-home .home-cta-btn {
        width: auto;
    }
}

@media (max-width: 767px) {
    body.page-home {
        --site-header-height: 64px;
        --home-hero-gap: 10px;
    }

    body.page-home .home-hero {
        min-height: auto;
        align-items: flex-start;
        padding-top: var(--home-hero-gap);
        padding-bottom: 2rem;
    }
}

@media (min-width: 768px) {
    body.page-home .home-hero {
        /* Высота viewport минус sticky-шапка — следующий блок только после скролла */
        min-height: calc(100vh - var(--site-header-height));
        min-height: calc(100dvh - var(--site-header-height));
        align-items: center;
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
    }
}
