/* Explain: Page layout and grid system styles (containers, sections, responsive grids). */
.container-nl {
    width: 100%;
    max-width: 1180px;
    margin-inline: auto;
    padding-inline: 1.25rem;
}

.section-nl {
    padding-block: 4.5rem;
}

@media (min-width: 768px) {
    .section-nl {
        padding-block: 6rem;
    }
}

.section-alt {
    background: var(--surface-alt);
}

.section-navy {
    background: var(--primary-color);
    color: #ffffff;
}

.split-nl {
    display: grid;
    gap: 2.5rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .split-nl {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
    }
}

.media-frame {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.hero-overlay {
    background: linear-gradient(105deg, rgba(41, 47, 61, 0.95) 0%, rgba(41, 47, 61, 0.82) 48%, rgba(41, 47, 61, 0.52) 100%);
}

.page-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(120deg, var(--primary-color) 0%, var(--primary-light) 100%);
    padding-block: 3.25rem;
}

.page-hero::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 45%;
    background: radial-gradient(circle at right center, rgba(200, 162, 74, 0.24), transparent 65%);
    pointer-events: none;
}

@media (min-width: 768px) {
    .page-hero {
        padding-block: 4.5rem;
    }
}

.mobile-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.45s ease;
}

.mobile-panel.is-open {
    max-height: 40rem;
}

.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}