:root {
    --layout-header-height: 72px;
    --layout-header-image-height: 60px;
    --layout-footer-padding: 64px;
    --layout-content-max-width: 1400px;
    --layout-content-padding: 32px;
    --layout-section-spacing: 96px;
    --layout-hero-min-height: 720px;
    --layout-proof-bar-min-height: 120px;
    --layout-cta-band-min-height: 320px;
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    height: var(--layout-header-height);
}

.site-header img {
    height: var(--layout-header-image-height);
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    max-width: var(--layout-content-max-width);
    height: 100%;
    margin: 0 auto;
    padding: 0 var(--layout-content-padding);
}

.site-logo,
.site-navigation,
.site-header-actions {
    display: flex;
    align-items: center;
}

.site-navigation {
    flex: 1;
    justify-content: center;
}

.site-header-actions {
    justify-content: flex-end;
}

.site-main {
    display: flex;
    flex-direction: column;
    flex: 1;
    width: 100%;
}

.home-hero {
    position: relative;
    display: flex;
    width: 100%;
    min-height: var(--layout-hero-min-height);
}

.home-hero-background,
.home-hero-overlay {
    position: absolute;
    inset: 0;
}

.home-hero-overlay {
    display: flex;
    align-items: center;
}

.home-hero-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: var(--layout-content-max-width);
    margin: 0 auto;
    padding: 120px var(--layout-content-padding);
}

.home-hero-title,
.home-hero-description {
    max-width: 720px;
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.home-proof-bar {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: var(--layout-proof-bar-min-height);
}

.home-featured-sections,
.page-content {
    display: flex;
    flex-direction: column;
    gap: var(--layout-section-spacing);
    width: 100%;
    padding: var(--layout-section-spacing) 0;
}

.home-cta-band {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: var(--layout-cta-band-min-height);
}

.section-inner,
.home-proof-bar-inner,
.home-cta-band-inner,
.page-hero-inner,
.site-footer-inner {
    width: 100%;
    max-width: var(--layout-content-max-width);
    margin: 0 auto;
    padding-left: var(--layout-content-padding);
    padding-right: var(--layout-content-padding);
}

.section-inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.section-row {
    display: flex;
    gap: 32px;
    width: 100%;
}

.section-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
    flex: 1;
}

.section-column-fixed {
    flex: 0 0 360px;
}

.site-footer {
    width: 100%;
}

.site-footer-inner {
    display: flex;
    gap: 48px;
    justify-content: space-between;
    padding-top: var(--layout-footer-padding);
    padding-bottom: var(--layout-footer-padding);
}

.site-footer-branding,
.site-footer-navigation,
.site-footer-contact {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

@media (max-width: 1100px) {
    .section-row,
    .site-footer-inner {
        flex-direction: column;
    }

    .section-column-fixed {
        flex: 1 1 auto;
    }
}

@media (max-width: 900px) {
    :root {
        --layout-content-padding: 24px;
        --layout-section-spacing: 72px;
        --layout-hero-min-height: 640px;
    }

    .site-header-inner {
        gap: 16px;
    }

    .home-hero-content {
        padding-top: 100px;
        padding-bottom: 100px;
    }
}

@media (max-width: 700px) {
    :root {
        --layout-content-padding: 20px;
        --layout-section-spacing: 56px;
        --layout-header-height: auto;
    }

    .site-header {
        position: relative;
        height: auto;
    }

    .site-header-inner {
        flex-wrap: wrap;
        justify-content: space-between;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .site-navigation {
        order: 3;
        flex: 1 0 100%;
        justify-content: flex-start;
    }

    .home-hero-content {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}