/*
 * Global public-page layout tokens.
 * Full-bleed surfaces (page heroes, footer, maps and lightboxes) are intentionally
 * excluded. Components that need the shared frame should use .site-layout-shell;
 * components that also need the shared vertical rhythm can use .site-layout-section.
 */
:root {
    --site-layout-max: 1800px;
    --site-layout-shell: min(95vw, var(--site-layout-max));
    --site-layout-gap: clamp(32px, 3.2vw, 52px);
    --site-layout-card-gap: clamp(14px, 1.25vw, 20px);
}

.site-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100000;
    padding: 12px 18px;
    border-radius: 999px;
    background: #df9666;
    color: #0b1714;
    font: 700 14px/1.2 'Raleway', Arial, sans-serif;
    text-decoration: none;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-140%);
    transition: opacity 160ms ease, transform 160ms ease;
}

.site-skip-link:focus {
    opacity: 1;
    outline: 3px solid #f4f0e8;
    outline-offset: 3px;
    pointer-events: auto;
    transform: translateY(0);
}

.site-content-start {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

.site-layout-shell,
:where(
    .home_full_cycle,
    .home_benefits_reference,
    #slider.home_portfolio_showcase,
    .home_process,
    .reviews.reviews_showcase,
    .faq_showcase,
    .contact-showcase,
    .team-showcase,
    .blog-showcase,
    .service_story.work_stages,
    .internal-links.internal-links_showcase,
    .price.price_showcase,
    .benefits,
    .furnitureSeoBlock,
    .rental-service,
    .contactsPage,
    .vacancies-showcase,
    .blogPage,
    .blogArticlePage,
    .portfolioShowcase,
    .projectDetail,
    .about_us.about_company_showcase,
    .site-map-blosk,
    body > .reviews:not(.reviews_showcase),
    body > .lim
) {
    width: var(--site-layout-shell) !important;
    max-width: var(--site-layout-max) !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

.site-layout-section,
:where(
    .home_full_cycle,
    .home_benefits_reference,
    #slider.home_portfolio_showcase,
    .home_process,
    .reviews.reviews_showcase,
    .faq_showcase,
    .contact-showcase,
    .team-showcase,
    .blog-showcase,
    .service_story.work_stages,
    .internal-links.internal-links_showcase,
    .price.price_showcase,
    .benefits,
    .furnitureSeoBlock,
    .rental-service:not(.rental-service--continued)
) {
    margin-top: var(--site-layout-gap) !important;
    margin-bottom: 0 !important;
}

/* Legacy house/furniture benefits: fill the newly unified shell on desktop. */
@media (min-width: 1001px) {
    .benefits_block {
        gap: var(--site-layout-card-gap);
    }

    .benefits_block > :where(
        .benefits_block_1_1,
        .benefits_block_1_2,
        .benefits_block_1_3,
        .benefits_block_1_4
    ) {
        width: auto !important;
        margin-right: 0 !important;
        flex: 1 1 0;
    }
}

@media (max-width: 600px) {
    :root {
        --site-layout-shell: calc(100% - 24px);
        --site-layout-gap: clamp(32px, 8.72vw, 34px);
        --site-layout-card-gap: 12px;
    }
}
