////
///
/// Align / Justify / Place Utilities
/// ===========================================================================
///
/// Self + content alignment helpers for flex and grid containers.
/// Mirrors legacy `.align_self--*`, `.align_content--*`, `.justify_*`.
///
/// Note: `align-items` and `justify-content` for flex are already in
/// `layout/_flex.scss` (`ss-u-items-*`, `ss-u-justify-*`).
///
/// @group Utilities.Layout
/// @author Scape Press
/// @link https://scape.style
/// @since 0.4.0 ported from legacy
/// @access public
///
////

@layer ss.utilities {
    // ========================================================================
    // align-self
    // ========================================================================

    .ss-u-self-auto {
        align-self: auto;
    }
    .ss-u-self-start {
        align-self: flex-start;
    }
    .ss-u-self-end {
        align-self: flex-end;
    }
    .ss-u-self-center {
        align-self: center;
    }
    .ss-u-self-stretch {
        align-self: stretch;
    }
    .ss-u-self-baseline {
        align-self: baseline;
    }

    // ========================================================================
    // justify-self
    // ========================================================================

    .ss-u-justify-self-auto {
        justify-self: auto;
    }
    .ss-u-justify-self-start {
        justify-self: start;
    }
    .ss-u-justify-self-end {
        justify-self: end;
    }
    .ss-u-justify-self-center {
        justify-self: center;
    }
    .ss-u-justify-self-stretch {
        justify-self: stretch;
    }

    // ========================================================================
    // align-content
    // ========================================================================

    .ss-u-content-start {
        align-content: flex-start;
    }
    .ss-u-content-end {
        align-content: flex-end;
    }
    .ss-u-content-center {
        align-content: center;
    }
    .ss-u-content-between {
        align-content: space-between;
    }
    .ss-u-content-around {
        align-content: space-around;
    }
    .ss-u-content-evenly {
        align-content: space-evenly;
    }
    .ss-u-content-stretch {
        align-content: stretch;
    }
    .ss-u-content-baseline {
        align-content: baseline;
    }

    // ========================================================================
    // justify-items
    // ========================================================================

    .ss-u-justify-items-start {
        justify-items: start;
    }
    .ss-u-justify-items-end {
        justify-items: end;
    }
    .ss-u-justify-items-center {
        justify-items: center;
    }
    .ss-u-justify-items-stretch {
        justify-items: stretch;
    }

    // ========================================================================
    // place-content / place-items / place-self (shorthands)
    // ========================================================================

    .ss-u-place-content-center {
        place-content: center;
    }
    .ss-u-place-content-start {
        place-content: start;
    }
    .ss-u-place-content-end {
        place-content: end;
    }
    .ss-u-place-content-between {
        place-content: space-between;
    }
    .ss-u-place-content-around {
        place-content: space-around;
    }
    .ss-u-place-content-evenly {
        place-content: space-evenly;
    }
    .ss-u-place-content-stretch {
        place-content: stretch;
    }

    .ss-u-place-items-start {
        place-items: start;
    }
    .ss-u-place-items-end {
        place-items: end;
    }
    .ss-u-place-items-center {
        place-items: center;
    }
    .ss-u-place-items-stretch {
        place-items: stretch;
    }

    .ss-u-place-self-auto {
        place-self: auto;
    }
    .ss-u-place-self-start {
        place-self: start;
    }
    .ss-u-place-self-end {
        place-self: end;
    }
    .ss-u-place-self-center {
        place-self: center;
    }
    .ss-u-place-self-stretch {
        place-self: stretch;
    }
}
