////
///
/// Border Style Utility Classes
/// ===========================================================================
///
/// CSS classes for border styles, widths, and visual treatments.
///
/// @group Classes.SoulLine
/// @author Scape Agency
/// @link https://scape.style
/// @since 0.1.0 initial release
/// @access public
///
////

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

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

// ============================================================================
// Border Style Classes
// ============================================================================

/// No border
.border--none {
    border-style: none !important;
}

/// Solid border
.border--solid {
    border-style: solid !important;
}

/// Dashed border
.border--dashed {
    border-style: dashed !important;
}

/// Dotted border
.border--dotted {
    border-style: dotted !important;
}

/// Double border
.border--double {
    border-style: double !important;
}

/// Groove border (3D effect)
.border--groove {
    border-style: groove !important;
}

/// Ridge border (3D effect)
.border--ridge {
    border-style: ridge !important;
}

/// Inset border (3D effect)
.border--inset {
    border-style: inset !important;
}

/// Outset border (3D effect)
.border--outset {
    border-style: outset !important;
}

/// Hidden border
.border--hidden {
    border-style: hidden !important;
}

// ============================================================================
// Border Width Classes
// ============================================================================

/// No border width
.border--w--0 {
    border-width: 0 !important;
}

/// Border width scale 01
.border--w--01 {
    @include border_width_01;
}

/// Border width scale 02
.border--w--02 {
    @include border_width_02;
}

/// Border width scale 03
.border--w--03 {
    @include border_width_03;
}

/// Border width scale 04
.border--w--04 {
    @include border_width_04;
}

// ============================================================================
// Border Side Classes
// ============================================================================

/// Border top only
.border--top {
    border-top-style: solid;
    border-top-width: q(1);
}

/// Border right only
.border--right {
    border-right-style: solid;
    border-right-width: q(1);
}

/// Border bottom only
.border--bottom {
    border-bottom-style: solid;
    border-bottom-width: q(1);
}

/// Border left only
.border--left {
    border-left-style: solid;
    border-left-width: q(1);
}

/// Border horizontal (left + right)
.border--x {
    border-left-style: solid;
    border-left-width: q(1);
    border-right-style: solid;
    border-right-width: q(1);
}

/// Border vertical (top + bottom)
.border--y {
    border-top-style: solid;
    border-top-width: q(1);
    border-bottom-style: solid;
    border-bottom-width: q(1);
}

// ============================================================================
// Border Color Classes
// ============================================================================

/// Transparent border
.border--transparent {
    border-color: transparent !important;
}

/// Current color border
.border--current {
    border-color: currentColor !important;
}

/// Primary border color
.border--primary {
    border-color: var(--color_line_primary) !important;
}

/// Secondary border color
.border--secondary {
    border-color: var(--color_line_secondary) !important;
}

// ============================================================================
// Border Radius Classes
// ============================================================================

/// No border radius
.rounded--none {
    border-radius: 0 !important;
}

/// Small border radius
.rounded--sm {
    border-radius: var(--corner_radius_01) !important;
}

/// Default border radius
.rounded {
    border-radius: var(--corner_radius_02) !important;
}

/// Medium border radius
.rounded--md {
    border-radius: var(--corner_radius_03) !important;
}

/// Large border radius
.rounded--lg {
    border-radius: var(--corner_radius_04) !important;
}

/// Extra large border radius
.rounded--xl {
    border-radius: var(--corner_radius_05) !important;
}

/// Full/pill border radius
.rounded--full {
    border-radius: 9999px !important;
}

/// Circle border radius
.rounded--circle {
    border-radius: 50% !important;
}
