:root {
    --public-shell-max-width: 1360px;
    --public-shell-gutter: 1.5rem;
}

.public-page main.container,
.public-footer-shell {
    width: min(var(--public-shell-max-width), calc(100% - var(--public-shell-gutter)));
    max-width: none;
    margin-inline: auto;
    box-sizing: border-box;
}

.public-footer-shell {
    box-sizing: border-box;
}

.public-info-main {
    display: grid;
    gap: 1.25rem;
    padding-top: 0.25rem;
    padding-bottom: 1.6rem;
}

.public-info-shell {
    display: grid;
    gap: 1.25rem;
}

.public-info-hero-grid,
.public-contact-grid {
    display: grid;
    gap: 1rem 1.25rem;
}

.public-info-hero-grid {
    grid-template-columns: minmax(0, 1.8fr) minmax(260px, 0.95fr);
    align-items: start;
}

.public-info-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.public-info-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.public-contact-grid {
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.35fr);
    align-items: start;
}

@media (max-width: 991.98px) {
    .public-page main.container,
    .public-footer-shell {
        width: min(100%, calc(100% - 1rem));
    }

    .public-info-main {
        gap: 1rem;
        padding-bottom: 1.2rem;
    }

    .public-info-shell {
        gap: 1rem;
    }

    .public-info-hero-grid,
    .public-contact-grid {
        grid-template-columns: 1fr;
    }
}
