body {
    min-height: 100vh;
}

main section[id] {
    scroll-margin-top: 140px;
}

.site-header-inner {
    min-height: 120px;
}

.site-logo {
    width: auto;
    height: 100%;
    max-height: 120px;
    object-fit: contain;
}

.hero-section {
    background:
        radial-gradient(circle at top right, rgba(105, 165, 103, 0.18), transparent 30%),
        linear-gradient(180deg, rgba(0, 15, 28, 0.03), rgba(0, 15, 28, 0));
}

.py-lg-6 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.hero-copy {
    max-width: 42rem;
}

.visual-placeholder {
    position: relative;
    min-height: 20rem;
    border-style: dashed;
    border-radius: 1.25rem;
    background:
        linear-gradient(135deg, rgba(105, 165, 103, 0.12), rgba(255, 255, 255, 0.92)),
        radial-gradient(circle at 20% 20%, rgba(0, 15, 28, 0.08), transparent 35%);
    overflow: hidden;
}

.visual-placeholder::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 20%, rgba(255, 255, 255, 0.45) 50%, transparent 80%);
    opacity: 0.65;
}

.visual-placeholder-overlay {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 20rem;
    gap: 0.75rem;
    text-align: center;
}

.visual-placeholder-overlay i {
    font-size: 2.5rem;
}

.visual-placeholder-overlay span {
    font-weight: 700;
}

.visual-spec-list {
    padding-left: 1.25rem;
}

.visual-spec-list li + li {
    margin-top: 0.55rem;
}

@media (max-width: 991.98px) {
    .site-header-inner {
        min-height: 96px;
        padding-top: 0.75rem;
        padding-bottom: 0.75rem;
    }

    .site-logo {
        max-height: 80px;
    }

    .site-brand {
        font-size: 1.9rem;
    }

    main section[id] {
        scroll-margin-top: 112px;
    }
}

@media (max-width: 575.98px) {
    .visual-placeholder,
    .visual-placeholder-overlay {
        min-height: 15rem;
    }
}
