.sws2-wrap {

    width: 100%;

    max-width: 1100px;

    margin: 25px auto;

    font-family: inherit;

}


.sws2-wrap * {

    box-sizing: border-box;

}


/* Search */

.sws2-search-box {

    display: flex;

    align-items: center;

    min-height: 62px;

    background: #fff;

    border: 1px solid #e4e4e4;

    border-radius: 16px;

    box-shadow:
        0 5px 25px
        rgba(0,0,0,.06);

    transition: .2s;

}


.sws2-search-box:focus-within {

    border-color: #999;

    box-shadow:
        0 8px 30px
        rgba(0,0,0,.09);

}


.sws2-search-icon {

    font-size: 21px;

    margin: 0 16px;

}


.sws2-input {

    flex: 1;

    width: 100%;

    min-height: 60px;

    padding: 0 5px !important;

    border: 0 !important;

    outline: none !important;

    box-shadow: none !important;

    background: transparent !important;

    font-size: 16px !important;

}


.sws2-clear {

    display: none;

    border: 0;

    background: transparent;

    cursor: pointer;

    font-size: 27px;

    color: #777;

    margin: 0 15px;

}


/* Status */

.sws2-status {

    min-height: 25px;

    padding-top: 7px;

    color: #777;

    font-size: 13px;

}


.sws2-loading {

    display: inline-block;

}


/* Correction */

.sws2-correction-box {

    margin:
        15px 0;

    padding:
        14px 17px;

    border-radius:
        12px;

    background:
        #f7f7f7;

    font-size:
        14px;

}


.sws2-correction {

    border: 0;

    background: transparent;

    cursor: pointer;

    font-weight: 800;

    text-decoration: underline;

}


/* Section */

.sws2-section-title {

    margin:
        24px 0 15px;

    font-size:
        20px;

    font-weight:
        800;

}


/* Main */

.sws2-main-grid {

    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap: 15px;

}


/* Similar */

.sws2-similar-section {

    margin-top: 35px;

}


.sws2-similar-grid {

    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0,1fr)
        );

    gap: 15px;

}


/* Card */

.sws2-product-card {

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 13px;

    border:
        1px solid #e7e7e7;

    border-radius:
        14px;

    background:
        #fff;

    text-decoration:
        none !important;

    color:
        inherit !important;

    transition:
        .2s;

}


.sws2-product-card:hover {

    transform:
        translateY(-2px);

    box-shadow:
        0 8px 25px
        rgba(0,0,0,.08);

}


/* Similar card */

.sws2-similar-card {

    display: block;

}


.sws2-image {

    width: 95px;

    min-width: 95px;

    height: 95px;

    overflow: hidden;

    border-radius: 10px;

    background: #f5f5f5;

}


.sws2-similar-card
.sws2-image {

    width: 100%;

    height: auto;

    aspect-ratio: 1 / 1;

}


.sws2-product-image {

    width: 100% !important;

    height: 100% !important;

    object-fit: cover;

    display: block;

}


.sws2-info {

    min-width: 0;

}


.sws2-title {

    font-size:
        15px;

    font-weight:
        700;

    line-height:
        1.8;

    margin-bottom:
        5px;

}


.sws2-price {

    font-size:
        14px;

    margin-bottom:
        7px;

}


.sws2-view {

    font-size:
        12px;

    color:
        #777;

}


/* Empty */

.sws2-empty {

    padding:
        30px;

    text-align:
        center;

    border:
        1px dashed #ddd;

    border-radius:
        14px;

    color:
        #777;

}


/* Tablet */

@media (
    max-width: 800px
) {

    .sws2-main-grid {

        grid-template-columns:
            1fr;

    }


    .sws2-similar-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );

    }

}


/* Mobile */

@media (
    max-width: 480px
) {

    .sws2-similar-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );

        gap: 10px;

    }


    .sws2-image {

        width: 75px;

        min-width: 75px;

        height: 75px;

    }


    .sws2-title {

        font-size:
            13px;

    }

}