
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad);
}

.row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}
.col-12 { flex: 0 0 100%; max-width: 100%; }

@media (max-width: 768px) {
    .row { gap: var(--space-3); }
}

.page-bg {
    position: relative;
    max-width: var(--page-max, 1280px);
    margin-inline: auto;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--bg-page);

}

.content-layer {
    flex: 1 0 auto;
    margin-block: var(--layer-gap);
    border-radius: var(--glass-radius);
    background-color: var(--bg-content);
    padding: var(--layer-gap);
    box-shadow: var(--glass-shadow),
                inset 0 1px 0 rgba(255, 255, 255, .50);
}

.content-layer > * + * { margin-top: var(--layer-gap); }

.content-layer > style:first-child + * { margin-top: 0; }

.content-layer > section:not(.glass) > h2 { margin-top: var(--space-2); }

.site-header {
    position: absolute;
    top: 0; left: 0; right: 0;
    z-index: var(--z-header);
}
.site-header__inner {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding-block: var(--space-3);
}

.floating-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: var(--z-header);
    max-width: var(--page-max);
    margin-inline: auto;
    padding: var(--layer-gap) var(--layer-gap) 0;
    pointer-events: none;
    transform: translateY(-115%);

    visibility: hidden;
    transition: transform  var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.floating-header.is-visible {
    transform: translateY(0);
    visibility: visible;
    transition-delay: 0s, 0s;
}
.floating-header__bar {
    position: relative;
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}

.site-footer {
    margin-block: var(--layer-gap);
    border-radius: var(--radius-lg);
    background: var(--panel-dark);
    color: var(--text-on-dark);
    box-shadow: var(--glass-shadow), var(--glass-highlight-dark);
    overflow: hidden;
}
.site-footer__inner {
    padding-block: var(--space-6) var(--space-5);
}

.site-footer__main {
    display: grid;
    grid-template-columns: 1.4fr 3fr;
    gap: var(--space-6);
}

.site-footer__about {
    margin-top: var(--space-3);
    max-width: 34ch;
    font-size: .9rem;
    line-height: 1.6;
   color: var(--text-on-dark);
}

.site-footer__divider {
    position: relative;
    display: flex;
    justify-content: center;
    margin-block: var(--space-5) 0;
}
.site-footer__divider::before {
    content: "";
    position: absolute;
    inset: 50% 0 auto;
    height: 1px;
    background: var(--hairline-on-dark);
}
.site-footer__social {
    position: relative;
    display: flex;
    gap: var(--space-2);
    padding-inline: var(--space-4);
    background: var(--panel-dark);
}

.site-footer__nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}
.site-footer__heading {
    margin: 0 0 var(--space-3);
    font-family: var(--font-ui);
    font-size: .75rem;
    font-weight: var(--fw-bold);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--text-on-dark);
}
.site-footer__menu { list-style: none; margin: 0; padding: 0; }
.site-footer__menu li + li { margin-top: 10px; }
.site-footer__menu a {
    color: var(--text-on-dark);
    font-size: .95rem;
    transition: color var(--transition);
}
.site-footer__menu a:hover { color: #fff; }

.site-footer__bottom {
    display: flex;
    align-items: center;
    gap: var(--space-3) var(--space-5);
    flex-wrap: wrap;
    padding-top: var(--space-2);
}
.site-footer__copy {
    margin: 0;
    margin-right: auto;
    font-size: .85rem;
    letter-spacing: .02em;
    color: var(--text-on-dark);
}
.site-footer__legal {
    display: flex;
    gap: var(--space-1) var(--space-4);
    flex-wrap: wrap;
    font-family: var(--font-ui);
    margin-left: auto;
}
.site-footer__legal a {
    font-size: .85rem;
    color: var(--text-on-dark);
    transition: color var(--transition);
}
.site-footer__legal a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 1200px) {
    .site-footer__divider { margin-bottom: var(--space-3); }
}

@media (max-width: 1024px) {
    .site-footer__main { grid-template-columns: 1fr; gap: var(--space-5); }
    .site-footer__nav  { grid-template-columns: repeat(3, 1fr); }

    .site-footer__brand { display: grid; grid-template-columns: auto 1fr; gap: var(--space-6); align-items: center; }
    .site-footer__about { margin-top: 0; margin-bottom: 0; max-width: none; }
}

@media (max-width: 991px) {
    .site-footer__bottom { flex-direction: column; align-items: center; text-align: center; gap: var(--space-2); }
    .site-footer__legal { order: -1; margin-left: 0; justify-content: center; }
    .site-footer__copy { margin-right: 0; }
}
@media (max-width: 640px) {

    .site-footer__nav {
        grid-template-columns: repeat(3, max-content);
        justify-content: space-between;
        gap: var(--space-4) 0;
    }

    .site-footer__brand { grid-template-columns: 1fr; gap: var(--space-3); }
}

@media (max-width: 1480px) {
    .site-footer {
        margin-bottom: 0;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
}

@media (max-width: 768px) {
    .content-layer { margin-inline: 0; }
}

.page-main {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
}