/* Shared outer gutters and control spacing. Keep control sizes and text padding intact. */
:root { --aditi-layout-gap: 5px; }

/* Important rules in this layer take precedence over legacy page-specific overrides. */
@layer aditi-spacing {
    html:has(.wp-site-blocks) { scrollbar-gutter: auto !important; }
    body .wp-site-blocks {
        padding: var(--aditi-layout-gap) !important;
        display: flow-root;
    }
    body .wp-site-blocks > :is(header, main, footer) {
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
    }
    body .wp-site-blocks > :is(header, main, footer) + :is(header, main, footer) {
        margin-top: var(--aditi-layout-gap) !important;
    }
    body .wp-site-blocks > header > p:has(.skip-link) {
        margin: 0 !important;
        padding: 0 !important;
    }
    body .wp-site-blocks > main {
        padding: 0 !important;
        display: flow-root;
    }
    body .wp-site-blocks > footer .site-footer {
        margin: 0 !important;
    }

    /* Header page links use half their original responsive spacing. */
    body .wp-site-blocks :is(header, main, footer),
    body .wp-site-blocks :is(header, main, footer) *:not(.primary-nav > ul) {
        gap: var(--aditi-layout-gap) !important;
    }

    body .wp-site-blocks .primary-nav > ul { gap: 23.5px !important; }
    @media (max-width: 1200px) {
        body .wp-site-blocks .primary-nav > ul { gap: 12.5px !important; }
    }

    /* Sections share one vertical gap, rather than accumulating opposing margins. */
    body .wp-site-blocks main > section,
    body .wp-site-blocks main > .wp-block-shortcode > section {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
    body .wp-site-blocks main > section + section,
    body .wp-site-blocks main > .wp-block-shortcode > section + section {
        margin-top: var(--aditi-layout-gap) !important;
    }

    /* Existing account shells already had outer gutters; use the shared gutter once. */
    body .aditisoft-account--management,
    body .aditisoft-account--management .aditisoft-password__shell,
    body .aditisoft-account--management .aditisoft-account-home__shell {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
    body .aditisoft-account--management {
        --account-layout-gap: var(--aditi-layout-gap);
    }
    body .aditisoft-password__sidebar nav a,
    body .aditisoft-account-home__sidebar nav a {
        margin: 0 !important;
    }

    /* Form fields and action rows use the same spacing in both directions. */
    body .wp-site-blocks :is(
        .contact-field, .school-field, .aditisoft-register__field,
        .aditisoft-account__field, .aditisoft-password__field,
        .aditisoft-delete__field, .form-row
    ) {
        margin-top: 0 !important;
        margin-bottom: var(--aditi-layout-gap) !important;
    }
    body .wp-site-blocks :is(
        .contact-form, .school-location-grid, .school-details-grid,
        .aditisoft-register__grid, .aditisoft-account__grid,
        .aditisoft-profile__grid, .aditisoft-password__form
    ) > :is(label, .school-field, .aditisoft-register__field,
        .aditisoft-account__field, .aditisoft-password__field, .form-row) {
        margin: 0 !important;
    }
    body .wp-site-blocks :is(
        .school-field, .aditisoft-register__field,
        .aditisoft-account__field, .aditisoft-password__field, .aditisoft-delete__field
    ) > label {
        margin-top: 0 !important;
        margin-bottom: var(--aditi-layout-gap) !important;
    }
    body .wp-site-blocks :is(
        .school-form__actions, .aditisoft-password__actions, .aditisoft-delete__actions,
        .aditisoft-account__login-options, .aditisoft-account__signup,
        .products-card__action, .schoolmate-coupon, .schoolmate-add
    ) {
        margin-top: var(--aditi-layout-gap) !important;
        margin-bottom: 0 !important;
    }
    body .wp-site-blocks :is(.button-row, .school-form__actions,
        .aditisoft-password__actions, .aditisoft-delete__actions,
        .schoolmate-coupon__controls, .school-modal__dialog > footer
    ) > :is(a, button, input, select) {
        margin: 0 !important;
    }
    body .wp-site-blocks :is(.button-row, .school-form__actions,
        .aditisoft-password__actions, .aditisoft-delete__actions,
        .aditisoft-account__login-options, .aditisoft-orders__tools,
        .aditisoft-downloads__tools, .social-links, .header-actions) {
        justify-content: flex-start !important;
    }

    /* WooCommerce's block and classic forms also participate in the shared rhythm. */
    body .wp-site-blocks :is(.wc-block-components-text-input,
        .wc-block-components-combobox, .wc-block-components-checkbox,
        .wc-block-components-radio-control, .wc-block-components-checkout-step) {
        margin-top: var(--aditi-layout-gap) !important;
        margin-bottom: 0 !important;
    }
    body .wp-site-blocks :is(.woocommerce form .form-row-first,
        .woocommerce form .form-row-last) {
        width: calc(50% - var(--aditi-layout-gap) / 2) !important;
    }
    @media (max-width: 600px) {
        body .wp-site-blocks :is(.woocommerce form .form-row-first,
            .woocommerce form .form-row-last) { width: 100% !important; }
    }
}
