/* Explain: Layout and positioning utilities for site sections and elements. */
.section-pad {
    padding-top: clamp(4.5rem, 8vw, 7.5rem);
    padding-bottom: clamp(4.5rem, 8vw, 7.5rem);
}

.hero-shell {
    background:
        linear-gradient(120deg, rgba(250, 249, 246, 0.97) 0%, rgba(250, 249, 246, 0.82) 52%, rgba(88, 129, 87, 0.14) 100%);
}

.page-hero {
    background: linear-gradient(165deg, var(--surface-color) 0%, var(--background-color) 72%);
}

.orb {
    position: absolute;
    border-radius: 999px;
    filter: blur(8px);
    opacity: 0.5;
    pointer-events: none;
    z-index: -1;
}

.orb-sage {
    width: 24rem;
    height: 24rem;
    right: 6%;
    top: 8%;
    background: rgba(88, 129, 87, 0.2);
}

.orb-terracotta {
    width: 18rem;
    height: 18rem;
    left: 3%;
    bottom: 8%;
    background: rgba(163, 177, 138, 0.28);
}

.contact-section {
    background:
        radial-gradient(circle at 8% 16%, rgba(163, 177, 138, 0.2), transparent 24rem),
        linear-gradient(180deg, var(--background-color), var(--surface-color));
}

.grid-cards {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.sidebar-sticky {
    position: sticky;
    top: 7rem;
}

@media (max-width: 1023px) {
    .sidebar-sticky {
        position: static;
    }
}