////
///
/// Position Utility Classes
/// ===========================================================================
///
/// CSS classes for element positioning including static, relative,
/// absolute, fixed, and sticky positioning modes.
///
/// @group Classes.HeadPosition
/// @author Scape Agency
/// @link https://scape.style
/// @since 0.1.0 initial release
/// @access public
///
////

// ============================================================================
// Use
// ============================================================================

@use "../../mixins" as *;

// ============================================================================
// Position Type Classes
// ============================================================================

/// Static positioning (default)
.position--static {
    position: static;
}

/// Relative positioning
.position--relative {
    position: relative;
}

/// Absolute positioning
.position--absolute {
    position: absolute;
}

/// Fixed positioning
.position--fixed {
    position: fixed;
}

/// Sticky positioning
.position--sticky {
    position: -webkit-sticky;
    position: sticky;
}

/// Inherit positioning
.position--inherit {
    @include position--inherit;
}

// ============================================================================
// Fixed Position Classes
// ============================================================================

/// Fixed to top (full width)
.position--fixed--top {
    @include position--fixed(top, both);
}

/// Fixed to bottom (full width)
.position--fixed--bottom {
    @include position--fixed(bottom, both);
}

/// Fixed to top-left corner
.position--fixed--top--left {
    @include position--fixed(top, left);
}

/// Fixed to top-right corner
.position--fixed--top--right {
    @include position--fixed(top, right);
}

/// Fixed to bottom-left corner
.position--fixed--bottom--left {
    @include position--fixed(bottom, left);
}

/// Fixed to bottom-right corner
.position--fixed--bottom--right {
    @include position--fixed(bottom, right);
}

/// Fixed to left (full height)
.position--fixed--left {
    @include position--fixed(both, left);
}

/// Fixed to right (full height)
.position--fixed--right {
    @include position--fixed(both, right);
}

// ============================================================================
// Sticky Position Classes
// ============================================================================

/// Sticky to top
.position--sticky--top {
    @include position--sticky--top(0);
}

/// Sticky to bottom
.position--sticky--bottom {
    @include position--sticky--bottom(0);
}

/// Sticky to left
.position--sticky--left {
    @include position--sticky--left(0);
}

/// Sticky to right
.position--sticky--right {
    @include position--sticky--right(0);
}

// ============================================================================
// Inset Classes (for absolute/fixed positioning)
// ============================================================================

/// Full inset (covers entire parent)
.inset--0 {
    inset: 0;
}

/// Top inset
.inset--top--0 {
    top: 0;
}

/// Right inset
.inset--right--0 {
    right: 0;
}

/// Bottom inset
.inset--bottom--0 {
    bottom: 0;
}

/// Left inset
.inset--left--0 {
    left: 0;
}

/// Horizontal inset (left + right)
.inset--x--0 {
    left: 0;
    right: 0;
}

/// Vertical inset (top + bottom)
.inset--y--0 {
    top: 0;
    bottom: 0;
}

/// Auto inset (for centering)
.inset--auto {
    inset: auto;
}
