/* Explain: Layout utilities for section spacing and responsive design. */
.section-pad {
    padding-top: clamp(4rem, 10vw, 9rem);
    padding-bottom: clamp(4rem, 10vw, 9rem);
}

.hero-split {
    background:
        linear-gradient(115deg, rgba(250, 249, 246, 0.96) 0%, rgba(250, 249, 246, 0.78) 52%, rgba(88, 129, 87, 0.12) 100%);
}

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

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

.orb-terracotta {
    width: 18rem;
    height: 18rem;
    left: 4%;
    bottom: 10%;
    background: rgba(163, 177, 138, 0.25);
}

.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));
}

@media (max-width: 767px) {
    .hero-split {
        min-height: auto;
        padding-top: 7rem;
        padding-bottom: 3.5rem;
    }

    .hero-split .orb-sage {
        width: 15rem;
        height: 15rem;
        right: -2.5rem;
        top: 3%;
    }

    .hero-split .orb-terracotta {
        width: 12rem;
        height: 12rem;
        left: -2.5rem;
        bottom: 8%;
    }

    .arch-frame-large,
    .arch-frame-medium {
        height: 380px;
    }

    .amenity-image-wrap {
        height: 320px;
    }

    .arch-frame::after {
        inset: 0.7rem;
    }

    .class-card {
        min-height: 0;
        border-radius: 1.7rem;
        padding: 1.35rem;
    }

    .process-card {
        border-radius: 1.5rem;
        padding: 1.35rem;
    }

    .quote-card {
        border-radius: 1.6rem;
        padding: 1.45rem;
    }

    .faq-item {
        border-radius: 1.3rem;
        padding: 1rem 1.15rem;
    }

    .quiet-detail,
    .amenity-row {
        border-radius: 1.3rem;
        padding: 1.1rem;
    }

    .booking-overlay {
        padding: 0;
    }

    .booking-overlay-panel {
        min-height: 100dvh;
        border-radius: 0;
        padding: 1.4rem 1.15rem calc(1.4rem + env(safe-area-inset-bottom));
    }

    .booking-overlay-panel .input,
    .booking-overlay-panel .select,
    .booking-overlay-panel .textarea {
        border-radius: 1rem;
    }

    .booking-overlay-panel .booking-form,
    .booking-overlay-panel .booking-overlay-panel {
        border-radius: 0;
    }
}

@media (max-width: 1023px) {
    #navOverlay nav > a {
        min-height: 3.1rem;
        border-radius: 0.9rem;
        font-size: 1.05rem;
    }

    #navOverlay nav > a > i {
        font-size: 0.8rem;
    }
}
