@font-face {
    font-family: "asty-book";
    src:
        url("../fonts/asty-cf/AstyCFStd-Book.woff2") format("woff2"),
        url("../fonts/asty-cf/AstyCFStd-Book.woff") format("woff"),
        url("../fonts/asty-cf/AstyCFStd-Book.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "asty-light";
    src:
        url("../fonts/asty-cf/AstyCFStd-Light.woff2") format("woff2"),
        url("../fonts/asty-cf/AstyCFStd-Light.woff") format("woff"),
        url("../fonts/asty-cf/AstyCFStd-Light.otf") format("opentype"),
        url("../fonts/asty-cf/AstyCFStd-Light.ttf") format("truetype");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: "asty-bold";
    src: url("../fonts/asty-cf/AstyCFStd-Bold.otf") format("opentype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "asty-medium";
    src: url("../fonts/asty-cf/AstyCFStd-Medium.otf") format("opentype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

:root {
    --color-primary: #e39951;
    --color-primary-hover: rgba(227, 153, 81, 0.8);
    --color-secondary: #8abd52;
    --color-secondary-hover: #007b2f;
    --color-text: #000;
    --color-link-hover: var(--color-primary);
    --color-border: #e5e5e5;

    --fs-page-title: 32px;
    --fs-module-title: 26px;
    --fs-body: 15px;
    --fs-small: 14px;
    --fs-smaller: 13px;

    --border-radius-default: 30px;
    --border-radius-button: 50px;

    --ff-normal: "asty-book", sans-serif;
    --ff-medium: "asty-medium", sans-serif;

    --spacing-item: 0.5rem;
    --row-padding: 1.5rem;

    --shadow-dropdown: 0 0 30px rgba(0, 0, 0, 0.075);
}

body {
    font-family: var(--ff-normal);
}

@media only screen and (min-width: 1025px) {
    .btn:not(.btn-read-more),
    .post-thumb .name a,
    .nav-tabs li a {
        font-family: var(--ff-medium);
    }

    .module-products .nav-tabs li {
        min-width: 180px;
    }
}

b,
.page-title,
.panel-title,
.quick-checkout-wrapper .section-title,
.module-title,
.title-module h3,
.module-catalog .catalog-title,
.product-price,
.product-price-new,
#cart .cart-products .td-total,
#cart .cart-totals td:first-child,
#main-menu > .j-menu > li > a,
.module-filter .panel-title a,
.product-thumb .price-normal,
.product-thumb .price-new,
.cart-page .cart-total tr td:first-child {
    font-family: var(--ff-medium);
}

.btn.reset-filter {
    transform: none !important;
}

.btn.reset-filter,
.product_tabs li a {
    font-family: var(--ff-normal);
}

/* SOF General */
.refine-item a {
    justify-content: center;
}

.c--bg-primary {
    background-color: var(--color-primary);
}

.c--bg-secondary {
    background-color: var(--color-secondary);
}

.title-module {
    .subtitle {
        display: none !important;
    }

    h3:has(span) {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;

        .subtitle {
            display: none !important;
        }

        span {
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 99px;
            padding: 3px;
            height: 40px;
            width: 40px;

            svg {
                width: 26px;
                height: auto;
            }
        }
    }
}

#main-menu {
    span.c--bg-primary {
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 99px;
        padding: 3px;
        height: 40px;
        width: 40px;
    }

    span.c--bg-secondary {
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 99px;
        padding: 3px;
        height: 40px;
        width: 40px;
    }

    svg {
        width: 26px;
        height: auto;
    }
}

.post-thumb {
    .name a {
        text-align: center;
    }

    .button-group {
        .btn {
            min-height: 38px;
        }
    }
}

.btn:not(.popup-close) {
    transition: 0.35s ease all;

    &:hover {
        transform: scale(1.02) !important;
    }
}

.btn-cart::before,
.fa-shopping-cart::before {
    left: 0px !important;
}

.swiper-pagination {
    margin-top: 1rem;

    .swiper-pagination-bullet {
        transition: all 0.3s ease;

        &.swiper-pagination-bullet-active {
            width: 20px !important;
        }
    }
}

.module-filter {
    .panel-group {
        margin-top: 0px;
    }

    .module-title {
        padding: 20px 10px 0px 16px;
        font-family: var(--ff-medium);
    }
}

#column-left {
    .grid-col {
        border-radius: 20px;
    }
}

.breadcrumb {
    max-width: 100% !important;
}

.stepper {
    width: auto !important;

    input[name="quantity"] {
        width: 54px;
    }

    label {
        position: relative !important;
        margin-right: 1rem;
        margin-bottom: 0px;
        min-width: 72px;
    }

    span {
        inset: auto;
        right: -4.5rem;
        margin-left: 1rem;
        height: 120%;
        gap: 0.25rem;

        i {
            border-radius: 999px;
            width: 30px !important;
            height: 30px;
            border: 1px solid var(--color-border) !important;
        }
    }
}

.popup-options .product-details .stepper {
    margin-right: 5rem;
}

/* EOF General */

/* SOF Header */
.top-bar .top-menu {
    width: 100%;

    .j-menu {
        justify-content: space-between;
    }
}

.desktop-header-active {
    .desktop-search-wrapper {
        justify-content: center;
    }

    .search-categories-button {
        padding: 0px 2.5rem 0px 1.5rem;
        max-width: 200px;
    }
}

#cart {
    border: none !important;
}

#language {
    .language-select {
        justify-content: center;
    }

    img {
        width: 20px;
        height: auto;
    }
}

#main-menu,
.mobile-main-menu-wrapper {
    .links-text {
        display: flex;
        align-items: center;
        gap: 1rem;

        svg,
        image {
            width: 28px;
            height: auto;
        }
    }
}

.mobile-top-bar {
    .language-currency {
        position: absolute;
        right: 10px;
    }
}

.mobile-search-wrapper {
    .dropdown-menu {
        background-color: #fff;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
        height: 50px !important;

        .header-search {
            max-width: 80%;
            margin: 0 auto;
            box-shadow: none;

            .search-button {
                display: flex;
                align-items: center;
                justify-content: center;
            }

            .tt-menu {
                max-width: 80%;
                left: 50% !important;
                transform: translateX(-50%);
            }
        }
    }
}

.module-catalog {
    .subitem {
        a:hover {
            font-family: var(--ff-medium);
        }
    }
}

.mega-menu-content {
    border-radius: var(--border-radius-default);
}

.main-menu-item-1 {
    .module-catalog {
        .catalog-title {
            color: var(--color-primary);

            &:hover {
                color: var(--color-primary-hover);
            }
        }
    }
}

.main-menu-item-3 {
    .module-catalog {
        .catalog-title {
            color: #245376;

            &:hover {
                color: #193a53;
            }
        }
    }
}

.main-menu-item-5 {
    .module-catalog {
        .catalog-title {
            color: var(--color-secondary);

            &:hover {
                color: var(--color-secondary-hover);
            }
        }
    }
}

#main-menu {
    .module-manufacturers .module-title {
        display: none;
    }
}

.tt-dataset {
    padding: 10px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;

    .search-result {
        padding: 10px;
        border: 1px solid var(--color-border);
        border-radius: 10px;
        transition: 0.25s ease all;

        &:hover {
            background-color: #f0f0f0;
        }

        .product-name {
            margin-bottom: 7px;
        }

        > a {
            align-items: center;
            font-family: var(--ff-medium);
        }
    }

    .view-more {
        grid-column: span 2;
    }
}
/* EOF Header */

/* SOF Slider */
.master-slider .ms-bullet {
    transition: all 0.3s ease;

    &.ms-bullet-selected {
        width: 20px;
    }
}

/* EOF Slider */

/* SOF Product Page */
.product-info {
    .product-manufacturer.brand-image {
        justify-content: flex-start;
    }

    .product-details {
        .page-title {
            margin-bottom: 0.5rem;
        }

        .btn-wishlist {
            font-family: var(--ff-normal);

            .btn-text {
                text-decoration: underline;

                &:hover {
                    text-decoration: none;
                }
            }
        }
    }

    .button-group-page {
        border-bottom: 1px dashed var(--color-border);
        padding-bottom: 1.5rem;
    }
}

#tab-specification-custom-design {
    ul {
        padding-left: 3rem;
    }

    li {
        position: relative;
        display: flex;
        align-items: center;

        &:not(:last-child) {
            margin-bottom: 0.75rem;
        }

        &::before {
            content: "✔"; /* Unicode checkmark */
            position: absolute;
            left: -3rem;
            color: var(--color-primary); /* Customize the checkmark color */
            font-size: 2rem;
        }

        span:first-child {
            font-family: var(--ff-medium);
            margin-right: 0.5rem;
        }
    }

    p {
        margin: 0px !important;
    }
}

/* EOF Product Page */

/* SOF Cart/Checkout Page */
.cart-page {
    .buttons .pull-left {
        display: none;
    }

    .td-qty {
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;

        .stepper {
            overflow: visible;
            margin-right: 1rem;

            input {
                width: 50px;
                height: 50px;
            }

            span {
                position: relative;
                right: 0px;
            }
        }
    }
}

.td-qty {
    .input-group-btn {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
}

.quick-checkout-wrapper {
    .stepper {
        overflow: visible;
        margin-right: 2rem;

        span {
            position: relative;
            right: 0px;
        }
    }
}

/* EOF Cart/Checkout Page */

/* SOF Category Page */
.category-description .category-text * {
    font-family: var(--ff-normal) !important;
}

.products-filter .input-group-addon,
.products-filter .form-control {
    height: 44px;
}

/* EOF Category Page */

/* SOF Footer */
.module-banners-395 img {
    max-width: 300px;
}

#collapse-coupon,
#collapse-voucher {
    .form-group .control-label + div {
        flex-direction: column;
        row-gap: 0.75rem;

        .input-group-btn {
            width: 100%;

            input {
                width: 100%;
                font-size: var(--fs-small);
                padding: 12px;
                font-family: var(--ff-normal);
            }
        }
    }
}

/* EOF Footer */

@media only screen and (max-width: 1024px) {
    .product-info .product-details {
        .button-group-page {
            .stepper {
                margin-bottom: 0.5rem;

                span {
                    flex-direction: row;
                    height: 100%;
                    align-items: center;

                    i {
                        min-width: 30px;
                    }
                }
            }
        }
    }

    .product-thumb {
        .name a {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
        }
    }
}

@media only screen and (max-width: 470px) {
    .tt-dataset {
        padding: 8px;
        grid-template-columns: 1fr;

        .search-result {
            padding: 4px;
        }
    }
}

/* SOF Checkboxes/Radio */
input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    -o-appearance: none;
    appearance: none;
    right: 0;
    bottom: 0;
    left: 0px;
    height: 16px;
    width: 16px;
    min-width: 16px;
    transition: all 0.15s ease-out 0s;
    background: #fff;
    border: 1px solid var(--color-border);
    color: #fff;
    cursor: pointer;
    display: inline-block;
    position: relative;
    outline: none !important;
    margin-left: 0px !important;
    margin-top: 0px !important;
}
input[type="checkbox"]:hover {
    background: #9faab7;
    outline: none !important;
}
input[type="checkbox"]:checked {
    background: var(--color-primary);
    outline: none !important;
    border: none;
}
input[type="checkbox"]:checked::before {
    height: 16px;
    width: 16px;
    min-width: 16px;
    position: absolute;
    content: "\2714";
    display: inline-block;
    font-size: 11px;
    text-align: center;
    line-height: 16px;
    outline: none !important;
}
input[type="checkbox"]:checked::after {
    background: var(--color-primary);
    content: "";
    display: block;
    position: relative;
    outline: none !important;
}

input[type="radio"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    -o-appearance: none;
    appearance: none;
    inset: 0px;
    top: 2px;
    height: 16px;
    width: 16px;
    min-width: 16px;
    transition: all 0.15s ease-out 0s;
    background: #fff;
    border: 1px solid var(--color-border);
    color: #fff;
    cursor: pointer;
    display: inline-block;
    position: relative;
    border-radius: 50%;
    outline: none !important;
    margin-left: 0px !important;
    margin-top: 0px !important;
}
input[type="radio"]:hover {
    background: #9faab7;
    outline: none !important;
}
input[type="radio"]:checked {
    background: var(--color-primary);
    outline: none !important;
    border: none;
}
input[type="radio"]:checked::before {
    height: 16px;
    width: 16px;
    min-width: 16px;
    position: absolute;
    content: "\2714";
    display: inline-block;
    font-size: 10px;
    text-align: center;
    line-height: 16px;
    outline: none !important;
}
input[type="radio"]:checked::after {
    background: var(--color-primary);
    content: "";
    display: block;
    position: relative;
    outline: none !important;
}

/* EOF Checkboxes/Radio */
