:root {
    --px-surface: #ffffff;
    --px-text: #212529;
    --px-muted: #6c757d;
    --px-border: rgba(0, 0, 0, 0.08);
    --px-shadow: 0 14px 40px rgba(33, 37, 41, 0.08);
}

html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh;
    background: #f8f9fa;
    color: var(--px-text);
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.hero-panel,
.microsite-card {
    background: var(--px-surface);
    border: 1px solid var(--px-border);
    box-shadow: var(--px-shadow);
}

.microsite-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.microsite-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 56px rgba(16, 30, 28, 0.12);
}

.microsite-thumb {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #e9ecef;
}

.micro-hover {
    min-height: 2.5rem;
}

.site-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.homepage-shell,
.site-main,
body > .container,
body > .container-fluid,
body > main,
body > section,
body > div:not(.site-header):not(.site-footer) {
    min-height: 0;
}

.site-footer {
    width: 100%;
}

.newsletter-section {
    background: #f8f9fa;
}

.newsletter-shell {
    max-width: 100%;
}
