.mb-2, .my-2 {
    margin-bottom: .5rem !important;
}
.mr-2, .mx-2 {
    margin-right: .5rem !important;
}
.position-relative {
    position: relative !important;
}
   .font-weight-bold {
    font-weight: 700 !important;
}
.mb-2, .my-2 {
    margin-bottom: .5rem !important;
}
   .p-2 {
    padding: .5rem !important;
}
.align-items-center {
    -webkit-box-align: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
}
.d-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
}
.rounded {
    border-radius: .25rem !important;
}
.border {
    border: 1px solid #dee2e6 !important;
}
   .m-0 {
    margin: 0 !important;
}
.w-100 {
    width: 100% !important;
}
.position-absolute {
    position: absolute !important;
}
   .swatch .header {
    min-width: 100%
}

.swatch input {
    top: 0;
    left: 0;
    height: 100%;
    opacity: 0;
    cursor: pointer
}

.swatch label {
    min-width: 40px !important;
    height: 40px !important;
    background-color: #fff;
    font-size: 15px !important;
    line-height: 40px;
    white-space: nowrap;
    transition: all 0.4s ease
}

.color.swatch-element label {
    padding: 0;
    border: 1px solid #ccc;
    border-radius: 50%;
    min-width: 30px !important;
    height: 30px !important
}

.swatch input:checked+label {
    background: #fff;
    border-color: var(--mainColor) !important
}

.swatch input:checked ~ .product-variation__tick {
    display: block
}

.swatch .color input:checked+label {
    background: initial;
    border-color: initial;
    color: #000
}

.swatch .color input:checked+.dlabel {
    border-color: var(--mainColor) !important
}

.swatch .color input:checked+label {
    position: relative
}

.swatch .color input:checked+label:after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.swatch .swatch-element {
    -webkit-transform: translateZ(0);
    -webkit-font-smoothing: antialiased
}

@media (min-width: 992px) {
    .swatch .swatch-element.color {
        width:calc(100%/4 - 6px)
    }

    .swatch .swatch-element.color:nth-child(4n) {
        margin-right: 0 !important
    }
}

@media (min-width: 566px) and (max-width: 991px) {
    .swatch .swatch-element.color {
        width:calc(100%/3 - 5.8px)
    }

    .swatch .swatch-element.color:nth-child(3n) {
        margin-right: 0 !important
    }
}

@media (max-width: 565px) {
    .swatch .swatch-element.color {
        width:calc(100%/2 - 4px)
    }

    .swatch .swatch-element.color:nth-child(2n) {
        margin-right: 0 !important
    }
}

.swatch .swatch-element.soldout {
    pointer-events: none
}

.swatch .swatch-element.soldout .dlabel {
    cursor: not-allowed;
    background-color: #f7f7f7;
    opacity: .6
}

.swatch .swatch-element.soldout label {
    background-color: #f7f7f7;
    opacity: .6
}

.swatch.error code {
    font-family: monospace
}

label[for] {
    cursor: pointer
}

.product-variation__tick {
    width: 1rem;
    height: 1rem;
    overflow: hidden;
    right: 0;
    bottom: 0;
    display: none;
    pointer-events: none
}

.product-variation__tick::before {
    border: 1rem solid transparent;
    border-bottom-color: transparent;
    border-bottom-color: var(--mainColor);
    content: '';
    position: absolute;
    right: -1rem;
    bottom: 0
}

.product-variation__tick>.icon-tick-bold {
    position: absolute;
    right: 2px;
    bottom: 1px;
    fill: #fff;
    font-size: 0.5rem;
    display: inline-block;
    width: 1em;
    height: 1em
}
