/*
@font-face {
    font-family: "iranyekan";
    font-style: normal;
    font-weight: normal;
    //src: url(./../fonts/iranyekan/iranyekanwebregular.woff) format("woff"), url(./../fonts/iranyekan/iranyekanwebregular.ttf) format("truetype");
    src: url(./fonts/iranyekan/iranyekanwebregular.woff) format("woff"),
        url(./fonts/iranyekan/iranyekanwebregular.ttf) format("truetype");
    font-display: swap;
}
*/

//
@mixin textAlignStart() {
    .rtl & {
        text-align: right;
    }

    .ltr & {
        text-align: left;
    }

    .ltr .rtl & {
        text-align: right;
    }

    .rtl .ltr & {
        text-align: left;
    }
}

@mixin textAlignEnd() {
    .rtl & {
        text-align: left;
    }

    .ltr & {
        text-align: right;
    }

    .ltr .rtl & {
        text-align: left;
    }

    .rtl .ltr & {
        text-align: right;
    }
}

//
@mixin paddingX($start, $end) {
    .rtl & {
        padding-right: $start;
        padding-left: $end;
    }

    .ltr & {
        padding-left: $start;
        padding-right: $end;
    }

    .ltr .rtl & {
        padding-right: $start;
        padding-left: $end;
    }

    .rtl .ltr & {
        padding-left: $start;
        padding-right: $end;
    }
}

@mixin paddingStart($value) {
    .rtl & {
        padding-right: $value;
    }

    .ltr & {
        padding-left: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

@mixin paddingEnd($value) {
    .rtl & {
        padding-left: $value;
    }

    .ltr & {
        padding-right: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

//
@mixin marginX($start, $end) {
    .rtl & {
        margin-right: $start;
        margin-left: $end;
    }

    .ltr & {
        margin-left: $start;
        margin-right: $end;
    }

    .ltr .rtl & {
        margin-right: $start;
        margin-left: $end;
    }

    .rtl .ltr & {
        margin-left: $start;
        margin-right: $end;
    }
}

@mixin marginStart($value) {
    .rtl & {
        margin-right: $value;
    }

    .ltr & {
        margin-left: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

@mixin marginEnd($value) {
    .rtl & {
        margin-left: $value;
    }

    .ltr & {
        margin-right: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

//
@mixin positionStart($value) {
    .rtl & {
        right: $value;
    }

    .ltr & {
        left: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

@mixin positionEnd($value) {
    .rtl & {
        left: $value;
    }

    .ltr & {
        right: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

//
@mixin borderStart($value) {
    .rtl & {
        border-right: $value;
    }

    .ltr & {
        border-left: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

@mixin borderEnd($value) {
    .rtl & {
        border-left: $value;
    }

    .ltr & {
        border-right: $value;
    }

    .rtl .ltr &,
    .ltr .rtl & {
        background-color: #f00 !important;
    }
}

//
@mixin create-classes($selectors, $property) {
    #{$selectors}-0 {
        #{$property}: 0 !important;
    }

    #{$selectors}-1 {
        #{$property}: 0.25rem !important;
    }

    #{$selectors}-2 {
        #{$property}: 0.5rem !important;
    }

    #{$selectors}-3 {
        #{$property}: 1rem !important;
    }

    #{$selectors}-4 {
        #{$property}: 1.5rem !important;
    }

    #{$selectors}-5 {
        #{$property}: 3rem !important;
    }
}

@mixin create-n-classes($selectors, $property) {
    #{$selectors}-n1 {
        #{$property}: -0.25rem !important;
    }

    #{$selectors}-n2 {
        #{$property}: -0.5rem !important;
    }

    #{$selectors}-n3 {
        #{$property}: -1rem !important;
    }

    #{$selectors}-n4 {
        #{$property}: -1.5rem !important;
    }

    #{$selectors}-n5 {
        #{$property}: -3rem !important;
    }
}

@mixin start-end-classes($start-prop, $end-prop) {
    @include create-classes(".p-s", "padding-" + $start-prop);
    @include create-classes(".p-e", "padding-" + $end-prop);
    @include create-classes(".m-s", "margin-" + $start-prop);
    @include create-classes(".m-e", "margin-" + $end-prop);
    @include create-n-classes(".m-s", "margin-" + $start-prop);
    @include create-n-classes(".m-e", "margin-" + $end-prop);

    .m-s-auto {
        margin-#{$start-prop}: auto;
    }

    .m-e-auto {
        margin-#{$end-prop}: auto;
    }
}

@mixin rtl-support() {
    .text-start {
        .rtl & {
            text-align: right !important;
        }

        .ltr & {
            text-align: left !important;
        }

        .ltr .rtl & {
            text-align: right !important;
        }

        .rtl .ltr & {
            text-align: left !important;
        }
    }

    .text-end {
        .rtl & {
            text-align: left !important;
        }

        .ltr & {
            text-align: right !important;
        }

        .ltr .rtl & {
            text-align: left !important;
        }

        .rtl .ltr & {
            text-align: right !important;
        }
    }

    // --------
    //   L T R
    // --------
    .ltr {
        direction: ltr;
        text-align: left;
        @include start-end-classes("left", "right");

        .rtl {
            direction: rtl;
            text-align: right;
        }
    }

    // --------
    //   R T L
    // --------
    .rtl {
        direction: rtl;
        text-align: right;
        @include start-end-classes("right", "left");

        .ltr {
            direction: ltr;
            text-align: left;
        }

        .form-select {
            background-position: left 0.75rem center;
            padding: 0.375rem 0.75rem 0.375rem 2.25rem;
        }

        .form-check .form-check-input {
            float: right;
            margin-left: 0.5em;
        }

        /* floating label */
        .form-floating > label {
            transform-origin: top right;
            left: auto;
        }

        .form-floating > .form-control:focus ~ label,
        .form-floating > .form-control:not(:placeholder-shown) ~ label,
        .form-floating > .form-select:focus ~ label,
        .form-floating > .form-select:not(:placeholder-shown) ~ label {
            transform: scale(0.85) translateY(-0.45rem) translateX(-0.15rem);
        }

        /* MODAL */
        .modal-header .btn-close {
            margin: -0.5rem auto -0.5rem -0.5rem;
        }

        /* input-group */
        .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
        .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3) {
            border-top-right-radius: 0.25rem;
            border-bottom-right-radius: 0.25rem;
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

        .input-group
            > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
            margin-left: 0;
            margin-right: -1px;
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
            border-top-left-radius: 0.25rem;
            border-bottom-left-radius: 0.25rem;
        }

        /* offcanvas */
        .offcanvas-header .btn-close {
            margin: -0.5rem auto -0.5rem -0.5rem;
        }
    }

    ////// sm
    @media (min-width: $breakpoint-sm) {
        .ltr,
        [dir="ltr"] {
            .text-sm-start {
                text-align: left !important;
            }

            .textt-sm-end {
                text-align: right !important;
            }
        }

        .rtl,
        [dir="rtl"] {
            .text-sm-start {
                text-align: right !important;
            }

            .textt-sm-end {
                text-align: left !important;
            }
        }
    }

    ////// md
    @media (min-width: $breakpoint-md) {
        .ltr,
        [dir="ltr"] {
            .text-md-start {
                text-align: left !important;
            }

            .text-md-end {
                text-align: right !important;
            }
        }

        .rtl,
        [dir="rtl"] {
            .text-md-start {
                text-align: right !important;
            }

            .text-md-end {
                text-align: left !important;
            }
        }
    }

    ////// lg
    @media (min-width: $breakpoint-lg) {
        .ltr,
        [dir="ltr"] {
            .text-lg-start {
                text-align: left !important;
            }

            .text-lg-end {
                text-align: right !important;
            }
        }

        .rtl,
        [dir="rtl"] {
            .text-lg-start {
                text-align: right !important;
            }

            .text-lg-end {
                text-align: left !important;
            }
        }
    }

    ////// xl
    @media (min-width: $breakpoint-xl) {
        .ltr,
        [dir="ltr"] {
            .text-xl-start {
                text-align: left !important;
            }

            .text-xl-end {
                text-align: right !important;
            }
        }

        .rtl,
        [dir="rtl"] {
            .text-xl-start {
                text-align: right !important;
            }

            .text-xl-end {
                text-align: left !important;
            }
        }
    }
}
