lightspeeddevelopment/lsx-customizer

View on GitHub
assets/css/woocommerce/woocommerce.scss

Summary

Maintainability
Test Coverage
@import "../scss/global/variables";
@import "../scss/global/mixins";
@import "../scss/global/placeholders";

// Placeholders and Mixins

%bootstrap-form-control {
    display: block;
    width: 100%;
    height: 50px;
    color: #4a4a4a;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ddd;
    border-radius: 2px;
    // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    // transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;

    // lsx-form-control

    border-width: 2px;
    box-shadow: none;
    font-size: 18px;
    line-height: 1.33;
    padding: 10px 20px;
    transition: all 150ms ease;

    &:focus {
        border-color: nth($blue, 1);
        // outline: 0;
        // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(65, 138, 208, 0.6);
    }
}

%bootstrap-message {
    border-radius: 4px;
    border: 1px solid transparent;
    margin-bottom: 20px;
    padding: 15px !important;

    &:before {
        display: none;
    }
}

%bootstrap-message-success {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    color: #3c763d;
}

%bootstrap-message-error {
    background-color: #f2dede;
    border-color: #ebccd1;
    color: #a94442;
}

%bootstrap-message-info {
    background-color: #d9edf7;
    border-color: #bce8f1;
    color: #31708f;
}

%small-form-field {
    height: 42px;
    padding: 10px 12px;
}

%small-form-select {
    height: 42px;
    padding: 0 12px;
}

@mixin small-button() {
    &,
    &:active,
    &:visited {
        height: 40px;
        line-height: 20px;
        padding: 10px 18px;
    }
}


@import 'woocommerce-extensions/header';
@import 'woocommerce-extensions/single-product';
@import 'woocommerce-extensions/checkout';

// Structure

article.page {
    .page-template-default:not(.has-sidebar).woocommerce-page &,
    .page-template-default:not(.has-sidebar).lost-api-key & {
        width: 100% !important;
    }
}

.site-main {
    .archive:not(.has-sidebar).woocommerce-page & {
        width: 100%;
    }
}

.form-row {
    margin-bottom: 15px !important;
    padding: 0 !important;
}

.woocommerce-LostPassword {
    &:last-child {
        margin-bottom: 0;
    }
    a {
        color: nth($blue, 1);
    }
}

.wrap.container .woocommerce {
    .woocommerce-ResetPassword {
        .woocommerce-form-row {
            width: 100%;
        }
    }
    .cart-collaterals {
        max-width: 90rem;
        margin: auto;
    }
    @include media(">=desktop") {
        max-width: 75rem;
        width: 75rem;

        
        .gutenberg-compatible-template.using-gutenberg .entry-content & {
            max-width: 75rem;
            width: 75rem;
        }

        .cart-collaterals {
            max-width: 75rem;
            margin: auto;
        }
    }
}

.woocommerce,
.woocommerce-page {
    .entry-content {
        &:after {
            clear: both;
            content: "";
            display: table;
        }
        .woocommerce-cart-notice {
            .button {
                min-width: 140px;
                text-align: center;
            }
            @include media("<tablet") {
                display: flex;
                flex-direction: column;
                .button {
                    width: 100%;
                    margin: 2rem auto 0;
                }
            }
        }
    }

    &.page-has-banner.lsx .archive-header-wrapper {
        display: inherit;
    }

    &,
    &[class*="columns-"] {
        ul.products {
            li.product {
                @include media("<phone") {
                    width: 100%;
                }

                .woocommerce-loop-category__title,
                .woocommerce-loop-product__title,
                h3 {
                    font-size: 22px;
                }
                .price {
                    font-size: 20px;
                }
            }
        }
    }

    &.woocommerce-checkout {
        .col2-set {
            @include media(">=tablet") {
                float: left;
                margin-right: 4.347826087%;
                width: 47.8260869565%;
            }
        }
        h3 {
            font-size: 30px;
            span {
                font-size: 22px;
            }
        }
        .col2-set {
            .col-1,
            .col-2 {
                @include media(">=phone") {
                    float: none;
                    margin-bottom: 4.25rem;
                    width: 100%;
                }
            }
        }
    }

    &.woocommerce-account {
        @include media("<desktop") {
            #primary {
                margin-top: $lsx-large-gap + $lsx-medium-gap;
            }
        }
        @include media(">=custom") {
            &.logged-in {
                .entry-content {
                    > .woocommerce {
                        display: flex;
                    }
                }
            }
        }
        .col2-set {
            @include media("<phone") {
                .col-1,
                .col-2 {
                    float: none;
                    margin-bottom: 4.25rem;
                    width: 100%;
                }
            }

            @include media(">=phone") {
                .col-1,
                .col-2 {
                    float: left;
                    margin-right: 4.347826087%;
                    width: 47.8260869565%;
                }

                .col-2 {
                    margin-right: 0;
                }
            }
        }
    }

    #order_review,
    #order_review_heading,
    .woochimp_checkout_checkbox,
    #woochimp_checkout_groups {
        @include media(">=tablet") {
            float: right;
            margin-right: 0;
            width: 47.8260869565%;
        }
    }

    #customer_login {
        .col-1,
        .col-2 {
            width: 100%;
        }
        .woocommerce-form-register {
            .woocommerce-form-register__submit {
                background-color: nth($blue, 2);
                box-shadow: 2px 2px 0 0 black;
                &:hover {
                    background-color: black;
                }
            }
        }
    }

    .woochimp_checkout_checkbox {
        margin-bottom: 2.4rem;
        padding: 0 0 0 20px !important;

        input[type="checkbox"] {
            margin-left: -20px;
            position: absolute;
        }
    }

    #woochimp_checkout_groups {
        padding-left: 20px;
        margin-bottom: 2.4rem;
    }

    table.woocommerce-MyAccount-downloads,
    table.my_account_orders {
        font-size: 1em;

        td,
        th {
            padding: 9px 12px;
        }

        .button {
            margin-right: 5px;
            &:last-child {
                margin-right: 0;
            }
        }
    }
    @include media("<=tablet") {
        .cart-collaterals {
            display: flex;
            flex-direction: column-reverse;
        }
    }
    .checkout-cta-bottom {
        display: flex;
        flex-direction: column;
        background: white;
        padding-top: 60px;
        padding-bottom: 60px;
        .img-payments {
            filter: grayscale(100%);
            margin-top: 4rem;
            margin-bottom: 4rem;
        }
    }
}
.pp_content_container {
    .quick-view {
        .product {
            @include media(">tablet") {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                .woocommerce-product-gallery {
                    grid-column-start: 1;
                    grid-column-end: 2;
                    grid-row-start: 1;
                    grid-row-end: 3;
                    width: 90%;
                }
                .summary {
                    grid-column-start: 2;
                    width: 100%;
                    .cart {
                        .quantity,
                        .single_add_to_cart_button {
                            display: none;
                        }
                    }
                }
            }
            @include media("<tablet") {
                .woocommerce-product-gallery {
                    margin-bottom: 4.25rem !important;
                }
            }
        }
    }
}
.widget {
    .woocommerce {
        .products {
            li.product {
                a.button:not(.quick-view-button) {
                    @include lsx-button-scaffolding();
                    @include lsx-button-colour();
                }
            }
        }
    }
}

#add_payment_method,
.woocommerce-cart,
.woocommerce-checkout {
    #payment {
        background: transparent;

        ul.payment_methods {
            border-bottom: none;
            margin-bottom: 2.4rem;
            padding: 0;

            li.wc_payment_method {
                .wc-saved-payment-methods label:before,
                > label:before {
                    @include fa-icon();
                    content: "\f10c";
                    margin-right: 0.5407911001em;
                    transition: color ease 0.2s;
                }

                input[type="radio"]:first-child:checked + label:before {
                    content: "\f192";
                }
            }

            li:not(.woocommerce-notice) {
                line-height: 1.6;

                & > input[type="radio"] {
                    clip: rect(1px 1px 1px 1px);
                    clip: rect(1px, 1px, 1px, 1px);
                    position: absolute !important;
                }

                & > label {
                    cursor: pointer;
                    display: block;
                    margin-bottom: 0;
                    padding: 1.41575em;

                    & > img {
                        border: 0;
                        float: right;
                        margin: 0 0 0 0.5em;
                        max-height: 1.618em;
                        padding: 0;

                        & + a {
                            line-height: 2;
                        }
                    }
                }
            }
        }

        div.payment_box {
            margin: 0;

            &:before {
                display: none;
            }
        }

        #place_order {
            float: initial;
            background-color: nth($orange, 1);
            box-shadow: 2px 2px 0 0 nth($orange, 2);
            &:hover {
                background-color: nth($orange, 2);
            }
        }
    }
    #main .quantity .qty {
        @include media(">=desktop") {
            height: 55px;
        }
    }
}

.woocommerce-cart,
.woocommerce-checkout {
    .checkout-header-wrapper {
        margin-top: $lsx-gap;
        text-align: center;
    }
    #main {
        .lsx-wc-checkout-steps {
            margin-top: 0;
            + .wp-block-cover {
                order: 1;
            }
        }
        a.remove {
            background-color: #9b9b9b;
            color: white !important;
            font-weight: 200;
            &:hover {
                background-color: #d0021b;
            }
        }
    }
}

.gutenberg-compatible-template.woocommerce-cart,
.gutenberg-compatible-template.woocommerce-checkout {
    .entry-content {
        display: flex;
        flex-direction: column;
        .wp-block-cover,
        .lsx-block-banner {
            order: -1;
        }
    }
    .checkout-header-wrapper.cart-checkout-page {
        max-width: 100%;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        + .wp-block-cover {
            @include media("<phone") {
                margin-left: 0;
                margin-right: 0;
                width: 100%;
                max-width: 100%;
                .wp-block-cover__inner-container {
                    width: calc(100% - 20px);
                }
            }
        }
    }
    #main {
        .lsx-wc-checkout-steps {
            max-width: 100%;
            width: 100%;
            .lsx-wc-checkout-steps-items {
                max-width: 100%;
                width: 100%;
            }
        }
    }
}

body.woocommerce {
    div.product {
        .woocommerce-tabs {
            overflow: hidden;
            margin: 30px 0;
            .panel {
                width: 70%;
                float: right;
                padding: 15px;
                background: #ffffff;

                & > *:last-child {
                    margin-bottom: 0;
                    clear: both;
                }
            }
            .nav-tabs > li {
                float: none;
                margin-bottom: 0;

                &:hover {
                    background-color: #f5f5f5;
                    border: none;
                }
            }
            .nav-tabs > li > a {
                border-radius: 0;
                border-bottom: 1px solid #ddd;
                border-right: 1px solid #ddd;
                border-left: 0;
                color: #000;
                background-color: transparent;

                .nav-tabs > li > a.active {
                    border-right: 3px solid #000;
                }

                &:hover {
                    background-color: #f5f5f5;
                }
            }
            .nav-tabs {
                width: 28%;
                float: left;
                border-bottom: none;

                & li:first-child > a,
                & li.active:first-child > a {
                    border-top: 1px solid #ddd;
                }

                & > li.active > a {
                    background-color: transparent;
                    color: nth($blue, 1);
                    font-weight: bold;
                    border-top: 0px;
                    border-right: 3px solid nth($blue, 1);
                }
            }
            @media (max-width: 768px) {
                .panel {
                    width: 100%;
                    float: none;
                }
                .nav-tabs {
                    width: 100%;
                    float: none;
                    margin-bottom: 20px;
                }
            }

            #comments {
                margin-top: 0;
            }
        }
        .related {
            clear: both;
        }
        form.cart {
            .variations {
                td.label {
                    display: inline-block;
                    font-weight: 400;
                    font-size: 100%;
                    padding: 11px 0;

                    label {
                        font-weight: 400;
                    }
                }
            }
        }
    }
    .woocommerce-button.button.woocommerce-form-login__submit {
        @include lsx-button-scaffolding();
        @include lsx-button-colour();
    }

    form.checkout_coupon,
    form.login,
    form.register {
        border: none;
        padding: 0;
        margin: 2.4rem 0 4.25rem 0;
        border-radius: 0;
    }

    /*#billing_country_field, #shipping_country_field, #billing_state_field, #shipping_state_field {
        .select2.select2-container {
            display:none;
        }
    }*/
    .woocommerce-form-login {
        p.form-row:not(.woocommerce-form-row) {
            display: flex;
            align-items: center;
            flex-direction: row-reverse;
            justify-content: flex-end;
            .woocommerce-form-login__rememberme {
                margin-bottom: 0;
            }
        }
    }
    .woocommerce-LostPassword.lost_password {
        a {
            color: nth($blue, 1);
            &:hover {
                color: nth($blue, 2);
            }
        }
    }
    .wc-memberships-restriction-message {
        margin: 0 0 1em !important;
    }
}

body:not(.logged-in).woocommerce-account.my-account .woocommerce {
    > * {
        max-width: 75rem;
        margin-left: auto;
        margin-right: auto;
    }

    .u-columns.col2-set {
        @include media(">desktop") {
            display: flex;
            .col-1,
            .col-2 {
                width: 50%;
            }
        }
    }
}

.product_meta {
    .product & {
        & > span {
            display: block;
            padding: 5px 0;

            &.api-documentation {
                margin-bottom: 15px;
            }
        }
    }
}

#respond {
    .product & {
        text-align: left;

        & > .comment-form {
            & > p {
                label,
                span {
                    display: inline-block;
                }
            }

            input[type="submit"] {
                width: auto;
            }
        }
    }
}

.woocommerce-variation-price {
    margin-bottom: 1.618em;
}

.lsx-wc-sorting {
    margin-bottom: 2.617924em;
    overflow: hidden;

    .woocommerce-ordering {
        float: none;

        @include media(">=phone") {
            float: left;
            margin-bottom: 0;
            margin-right: 1em;
        }
    }

    .woocommerce-result-count {
        float: none;

        @include media(">=phone") {
            float: left;
            line-height: 50px;
            margin-bottom: 0;
            position: relative;
        }
    }

    .lsx-pagination-wrapper {
        margin-top: 0;
        text-align: left;
        @include media(">=phone") {
            margin-top: 0;
            float: right;
        }
    }
}

// Buttons and fields

.woocommerce-product-search {
    .search-field {
        @extend %bootstrap-form-control;
        @extend %lsx-form-field;
        border-radius: 2px 0 0 2px;
        position: relative;
        z-index: 1;
    }

    input[type="submit"] {
        @include lsx-button-scaffolding();
        @include lsx-button-colour();
        box-shadow: none;
        margin-left: -2px;
        position: relative;
        z-index: 2;
    }
}

#wc_am_lost_api_key_form {
    input[type="text"] {
        @extend %bootstrap-form-control;
        @extend %lsx-form-field;
        @extend %small-form-field;
    }

    input[type="submit"] {
        @include lsx-button-scaffolding();
        @include lsx-button-colour();
        @include small-button();
    }
}

#add_payment_method,
.woocommerce-cart,
.woocommerce-checkout {
    table.cart {
        td.actions {
            .coupon {
                .input-text {
                    @extend %bootstrap-form-control;
                    @extend %lsx-form-field;
                    @extend %small-form-field;
                    width: 160px;

                    @include media("<phone") {
                        width: 100%;
                    }
                }
            }
        }
    }
}

.woocommerce-account {
    .cart_totals {
        table.shop_table {
            tbody {
                tr:first-child {
                    th {
                        border-radius: 5px 0 0 0;
                    }
                    td {
                        border-radius: 0 5px 0 0;
                    }
                }

                tr:last-child {
                    th {
                        border-radius: 0 0 0 5px;
                    }
                    td {
                        border-radius: 0 0 5px 0;
                    }
                }
            }
        }
    }

    .woocommerce-checkout-review-order,
    .woocommerce-order-details,
    .woocommerce-order-downloads,
    .woocommerce-MyAccount-content {
        table.shop_table {
            thead {
                tr:first-child {
                    & > *:first-child {
                        border-radius: 5px 0 0 0;
                    }
                    & > *:last-child {
                        border-radius: 0 5px 0 0;
                    }
                }
            }

            tbody:last-child,
            tfoot {
                tr:last-child {
                    & > *:first-child {
                        border-radius: 0 0 0 5px;
                    }
                    & > *:last-child {
                        border-radius: 0 0 5px 0;
                    }
                }
            }
        }
    }
}

#add_payment_method,
.woocommerce-cart,
.woocommerce-checkout {
    .cart_totals {
        table.shop_table {
            border: 1px solid #e6e6e6;
            border-bottom: 8px solid #e6e6e6;
            tbody {
                th {
                    background-color: white !important;
                }
                tr:first-child {
                    th {
                        border-radius: 5px 0 0 0;
                        background-color: #e6e6e6 !important;
                    }
                    td {
                        border-radius: 0 5px 0 0;
                        background-color: #e6e6e6;
                    }
                }

                tr:last-child {
                    th {
                        border-radius: 0 0 0 5px;
                    }
                    td {
                        border-radius: 0 0 5px 0;
                    }
                }
            }
        }
    }

    .woocommerce-checkout-review-order,
    .woocommerce-order-details,
    .woocommerce-order-downloads,
    .woocommerce-MyAccount-content {
        table.shop_table {
            thead {
                tr:first-child {
                    & > *:first-child {
                        border-radius: 5px 0 0 0;
                    }
                    & > *:last-child {
                        border-radius: 0 5px 0 0;
                    }
                }
            }

            tbody:last-child,
            tfoot {
                th {
                    background-color: white !important;
                }
                tr:last-child {
                    td,
                    th {
                        border-top: none;
                    }
                    & > *:first-child {
                        border-radius: 0 0 0 5px;
                        background-color: #e6e6e6 !important;
                    }
                    & > *:last-child {
                        border-radius: 0 0 5px 0;
                        background-color: #e6e6e6;
                    }
                }
            }
        }
    }
}

.woocommerce {
    table.shop_table {
        td {
            &:not(:first-child) {
                @include media("<phone") {
                    border-top: 0;
                }
            }
        }
    }
}

.woocommerce {
    .woocommerce-customer-details {
        address {
            border-bottom-width: 1px;
            border-right-width: 1px;
            padding: 9px 12px;
        }
    }
}

.woocommerce {
    select {
        @extend %small-form-select;
    }

    form {
        .form-row {
            input.input-text,
            textarea {
                @extend %bootstrap-form-control;
                @extend %lsx-form-field;
            }

            input.input-text {
                @extend %small-form-field;
            }

            textarea {
                height: 80px;
            }

            select {
                @extend %bootstrap-form-control;
                @extend %lsx-form-field;
                @extend %small-form-select;
            }

            input[type="file"] {
                font-size: 12px;
                font-weight: normal;
                height: auto;
                line-height: normal;
            }

            input[type="radio"],
            input[type="checkbox"] {
                margin-right: 10px;
            }
        }

        &.comment-form {
            input[type="text"],
            input[type="email"],
            textarea {
                @extend %bootstrap-form-control;
                @extend %lsx-form-field;
            }

            input[type="text"],
            input[type="email"] {
                @extend %small-form-field;
            }

            textarea {
                height: 80px;
            }
        }
    }

    div.product {
        form.cart {
            .variations {
                select {
                    @extend %bootstrap-form-control;
                    @extend %lsx-form-field;
                    @extend %small-form-select;
                }
            }
        }
    }
}

.lsx-wc-cart-menu-item {
    .widget_shopping_cart {
        .buttons {
            .button {
                @include lsx-button-scaffolding();

                &,
                &:active,
                &:visited {
                    font-size: 12px;
                    height: auto;
                    padding: 10px 20px;
                }

                @include lsx-button-colour();

                border-radius: 0 !important;
                box-shadow: none !important;
                display: block !important;

                &:active {
                    left: 0 !important;
                    top: 0 !important;
                }
            }
        }
    }
}

.woocommerce-MyAccount-downloads-file {
    &:after {
        @include fa-icon();
        content: "\f019";
        margin-left: 10px;
    }
}

// LSX Sharing

.lsx-sharing-content {
    .product & {
        margin-top: 2em;
    }
}

// WooCommerce wraper

.woocommerce-page #main {
    // Lists

    .products {
        padding-left: 0;
    }

    // Labels

    form {
        .form-row {
            label.inline {
                &:not(:first-child) {
                    margin-left: 15px;
                }
            }
        }
    }

    #woochimp_checkout_groups {
        .label {
            // color: $text-color;
            // display: inline-block;
            // margin-bottom: 15px;
            display: none;
        }

        br {
            display: none;
        }

        label.checkbox {
            margin-top: 0;
        }
    }

    // Fields

    .quantity .qty {
        @extend %bootstrap-form-control;
        @extend %small-form-field;
    }

    .woocommerce-ordering select {
        @extend %bootstrap-form-control;
        @extend %small-form-select;
        height: 40px;
    }

    .woocommerce-Input,
    .quantity .qty {
        @extend %lsx-form-field;
        @extend %small-form-field;
    }

    .woocommerce-ordering select {
        @extend %lsx-form-field;
        @extend %small-form-select;
    }

    .quantity .qty {
        display: inline-block;
        width: 65px;
    }

    // Button

    #respond input#submit,
    a.button:not(.quick-view-button),
    button.button,
    input.button {
        @include lsx-button-scaffolding();
        @include lsx-button-colour();
        @include small-button();
    }

    .coupon input.button {
        @include media("<phone") {
            float: left;
            margin-top: 7px;
            width: 100%;
        }
    }

    // Edit address link

    .woocommerce-Address-title {
        a {
            display: block;
            width: 1em;
            height: 1em;
            text-indent: -9999px;
            position: relative;
            padding: 10px;

            &:before {
                @include fa-icon();
                content: "\f044";
                line-height: 1.618;
                position: absolute;
                top: 2px;
                left: 0;
                height: 100%;
                width: 100%;
                text-align: center;
                text-indent: 0;
            }
        }
    }
}

// Messages

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce_message,
.woocommerce_info,
.woocommerce_error,
.woocommerce_noreviews,
p.no-comments,
.stock,
.woocommerce-password-strength {
    @extend %bootstrap-message;

    &.lsx-woocommerce-message-wrap {
        .button {
            float: none;
            margin-top: 15px;
        }

        @include media(">=phone") {
            display: flex;
            align-items: center;

            .lsx-woocommerce-message-text {
                flex: 1 1 auto;
            }

            .button {
                margin-left: 15px;
                margin-top: 0;
            }
        }
    }
}

.woocommerce-message,
.woocommerce_message,
.stock.in-stock,
.woocommerce-password-strength.strong {
    @extend %bootstrap-message-success;
}

.woocommerce-message-added-to-cart {
    @include media(">=tablet") {
        font-size: 17px;
        line-height: 50px;
    }
}

.woocommerce-error,
.woocommerce_error,
.stock.out-of-stock,
.woocommerce-password-strength.short,
.woocommerce-password-strength.bad {
    @extend %bootstrap-message-error;
}

.woocommerce-info,
.woocommerce_info,
.woocommerce-password-strength.info {
    @extend %bootstrap-message-info;
}

// My account

.woocommerce-page #main {
    // My account - Content

    .woocommerce-MyAccount-content {
        legend {
            border-bottom: none;
        }

        .woocommerce-form-row {
            margin-bottom: 1.41575em;
        }

        @include media(">=custom") {
            width: 77.4705882353%;

            .form-row-first {
                float: left;
                margin-right: 7.6923076923%;
                width: 38.4615384615%;
            }

            .form-row-last {
                float: right;
                width: 53.8461538462%;
            }
        }
    }

    // My account - Menu

    .woocommerce-MyAccount-navigation {
        padding: 0 15px;

        @include media(">=custom") {
            margin-right: 25px;
            width: 25%;
        }
        @include media(">=desktop") {
            width: 17.6470588235%;
        }

        ul {
            margin-left: 0;
            padding: 0;

            li {
                list-style: none;
                position: relative;

                a {
                    display: block;
                    padding: 0.875em 0;
                }

                &.is-active {
                    a {
                        margin: 0 -15px;
                        padding-left: 15px;
                        padding-right: 15px;

                        &:before {
                            opacity: 1;
                        }
                    }
                }

                a {
                    &:before {
                        @include fa-icon();
                        content: "\f0f6";
                        line-height: 1.618;
                        margin-left: 0.5407911001em;
                        width: 1.41575em;
                        text-align: right;
                        float: right;
                        opacity: 0.25;
                    }

                    &:hover {
                        &:before {
                            opacity: 1;
                        }
                    }
                }

                &.woocommerce-MyAccount-navigation-link--dashboard a:before {
                    content: "\f0e4";
                }
                &.woocommerce-MyAccount-navigation-link--orders a:before {
                    content: "\f291";
                }
                &.woocommerce-MyAccount-navigation-link--downloads a:before {
                    content: "\f1c6";
                }
                &.woocommerce-MyAccount-navigation-link--edit-address a:before {
                    content: "\f015";
                }
                &.woocommerce-MyAccount-navigation-link--payment-methods
                    a:before {
                    content: "\f09d";
                }
                &.woocommerce-MyAccount-navigation-link--edit-account a:before {
                    content: "\f007";
                }
                &.woocommerce-MyAccount-navigation-link--customer-logout
                    a:before {
                    content: "\f08b";
                }
                &.woocommerce-MyAccount-navigation-link--subscriptions
                    a:before {
                    content: "\f021";
                }
            }
        }
    }
}

// Main menu

.lsx-wc-cart-menu-item {
    & > a {
        &:after {
            @include fa-icon();
            content: "\f291";
            float: right;
            font-size: 20px;
            margin-left: 2rem;

            #top-menu & {
                margin-left: 1.2rem;
            }
        }
    }

    &.lsx-wc-cart-menu-item-simple {
        & > a {
            &:before {
                @include fa-icon();
                content: "\f07a";
                float: right;
                font-size: 20px;
                margin-right: 0.5rem;

                #top-menu & {
                    float: none;
                    margin-right: 0;
                }
            }

            &:after {
                display: none;
            }
        }
    }

    .lsx-wc-cart-amount {
        margin-right: 2rem;

        #top-menu & {
            margin-right: 0.5rem;
        }
    }

    &.lsx-wc-cart-menu-item-simple {
        .lsx-wc-cart-amount {
            @include media(">=desktop-wide") {
                display: none;
            }
        }
    }

    .lsx-wc-cart-count,
    .lsx-wc-cart-count-badge {
        font-size: 0.875em;
        font-weight: 300;
        opacity: 0.75;
    }
    .lsx-wc-cart-count-badge {
        @include media("<desktop-wide") {
            display: none;
        }
    }

    &.lsx-wc-cart-menu-item-simple {
        .lsx-wc-cart-count {
            @include media(">=desktop-wide") {
                display: none;
            }
        }
    }

    &:not(.lsx-wc-cart-menu-item-simple) {
        .lsx-wc-cart-count-badge {
            display: none;
        }
    }

    &.lsx-wc-cart-menu-item-right-aligned {
        @include media(">=desktop") {
            margin-left: auto;
        }
    }

    .widget_shopping_cart {
        font-size: 0.875em;

        .woocommerce-mini-cart__empty-message {
            margin: 1.41575em;
        }

        .product_list_widget {
            li {
                padding: 1em 1.41575em;

                &:nth-of-type(1n + 4) {
                    display: none;
                }

                a {
                    font-size: 1em !important;
                    font-weight: normal !important;
                    padding: 0 !important;
                }

                .remove {
                    display: none;
                }
            }
        }

        .total {
            border-top: none;
            margin-bottom: 0;
            padding: 1em 1.41575em;
            text-align: center;
        }

        .buttons {
            margin-bottom: 0;
            padding: 0 1.41575em 1.41575em;
            text-align: center;

            .button {
                margin-bottom: 1em;

                &:last-child {
                    margin-bottom: 0;
                }
            }
        }
    }
}

ul.lsx-wc-cart-sub-menu {
    @include media(">=desktop") {
        left: auto;
        right: 0;
        width: 235px;
    }

    .lsx-wc-cart-menu-item-simple & {
        display: none !important;
    }
}

// Homepage widgets

.lsx-woocommerce-slot,
.lsx-woocommerce-review-slot {
    margin: 4rem auto 0;
    overflow: hidden;

    .lsx-woocommerce-avatar {
        & > img {
            width: 100%;
        }
    }

    .lsx-woocommerce-rating {
        .star-rating {
            display: inline-block;
            float: none;
        }
    }

    .lsx-woocommerce-content {
        margin-top: 2rem;

        p {
            margin-bottom: 0;

            & + p {
                margin-top: 1rem !important;
            }
        }

        .moretag {
            &:after {
                color: inherit;
                content: "\f178";
                display: inline-block;
                font-family: "FontAwesome";
                font-size: inherit;
                margin-left: 5px;
                text-rendering: auto;

                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }
        }
    }
}

.lsx-woocommerce-slot {
    text-align: center;

    .lsx-woocommerce-title {
        margin: 2.4rem 0 1rem;
        padding: 0 2rem;
    }

    .lsx-woocommerce-rating {
        padding: 0 2rem;
    }

    .lsx-woocommerce-price {
        font-weight: bold;
        padding: 0 2rem;
    }

    .lsx-woocommerce-content {
        padding: 0 2rem;

        p {
            & + p {
                margin-top: 2.4rem !important;
            }
        }

        .moretag {
            display: block;
            margin: 0 -2rem;
            padding: 1rem 0;
            text-align: center;
            transition: background 300ms ease;
        }
    }
}

.lsx-woocommerce-review-slot {
    .lsx-woocommerce-review-flex {
        @include media(">=phone") {
            display: flex;
        }

        #secondary & > a {
            display: none;
        }
    }

    .lsx-woocommerce-review-box {
        padding: 2rem;

        @include media(">=phone") {
            flex: 1 1 auto;
        }
    }

    .lsx-woocommerce-avatar {
        @include media(">=phone") {
            margin-right: 30px;
            width: 140px;
        }
    }

    .lsx-woocommerce-title {
        margin: 1rem 0 0;
    }

    .lsx-woocommerce-content {
        padding-top: 2rem;
    }
}

.lsx-woocommerce-slider {
    margin-top: -4rem;

    @include media(">=tablet") {
        margin-left: auto;
        margin-right: auto;
        width: 100%;

        &.slick-has-arrows {
            width: calc(100% - 8rem);
        }
    }

    @include media(">=1280px") {
        margin-left: -15px;
        margin-right: -15px;
        width: calc(100% + 30px);

        &.slick-has-arrows {
            width: calc(100% + 30px);
        }
    }

    .wc-tab &,
    #secondary & {
        margin-left: -15px;
        margin-right: -15px;

        @include media(">=phone") {
            margin-left: auto;
            margin-right: auto;
            width: 100%;

            &.slick-has-arrows {
                width: calc(100% - 8rem);
            }
        }
    }

    .lsx-woocommerce-slot.slick-slide,
    .lsx-woocommerce-review-slot.slick-slide {
        margin-left: 15px;
        margin-right: 15px;
    }

    .slick-dots {
        align-items: center;
        display: flex;
        flex-flow: row wrap;
        height: auto;
        justify-content: center;
        list-style: none;
        margin: 2rem 0 0;
        padding: 0;

        .wc-tab & {
            margin-bottom: 0;
            padding-left: 0 !important;
        }

        & > li {
            line-height: 1;
            padding: 5px;

            @include media(">=tablet") {
                padding: 0 7.5px;
            }

            & > button {
                background: transparent;
                border-style: solid;
                border-width: 1px;
                font: 0/0 a;
                height: 12px;
                transition: all 300ms ease-in-out;
                width: 4rem;

                @include media(">=tablet") {
                    height: 6px;
                }
            }
        }
    }

    .slick-arrow {
        background: transparent;
        border-radius: 50%;
        border-style: solid;
        border-width: 2px;
        font: 0/0 a;
        height: 4rem;
        margin-top: calc((2rem - 17px) / 2);
        opacity: 1;
        padding: 0;
        position: absolute;
        text-shadow: none;
        top: 50%;
        transform: translateY(-50%);
        transition: border 300ms ease;
        width: 4rem;
        z-index: 3;

        &:before {
            display: block;
            font-family: "FontAwesome";
            font-size: 3rem;
            line-height: 1;
            position: absolute;
            text-rendering: auto;
            top: 47%;
            transform: translateY(-50%);
            transition: color 300ms ease;

            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        &.slick-disabled {
            cursor: not-allowed;
        }

        &.slick-prev {
            left: -4rem;

            &:before {
                content: "\f104";
                left: 1.1rem;
            }
        }

        &.slick-next {
            right: -4rem;

            &:before {
                content: "\f105";
                left: 1.5rem;
            }
        }
    }
}

// Footer bar

.lsx-wc-has-footer-bar {
    @include media("<custom") {
        margin-bottom: 72px;
    }
}

.lsx-wc-footer-bar {
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    bottom: 0;
    left: 0;
    position: fixed;
    right: 0;
    z-index: 10;

    @include media(">=custom") {
        display: none;
    }
}

.lsx-wc-footer-bar-items {
    display: flex;
    list-style: none;
    margin-bottom: 0;
    padding-left: 0;
}

.lsx-wc-footer-bar-item {
    border-right-width: 2px;
    border-right-style: solid;
    width: 25%;

    &:last-child {
        border-right: 0;
    }
}

.lsx-wc-footer-bar-link {
    display: flex;
    flex-direction: column;
    padding: 10px;
    position: relative;
    text-align: center;

    .fa {
        font-size: 24px;
        margin-bottom: 4px;
    }
}

.lsx-wc-footer-bar-form {
    display: none;
    padding: 10px;
}

.lsx-wc-footer-bar-count {
    border-style: solid;
    border-width: 1px;
    border-radius: 50%;
    box-sizing: content-box;
    display: block;
    font-size: 11px;
    height: 20px;
    left: 50%;
    line-height: 20px;
    position: absolute;
    text-align: center;
    top: 5px;
    width: 20px;

    &:empty {
        display: none;
    }
}

// Image slider

.woocommerce-product-gallery__wrapper {
    max-width: none;
}

.woocommerce {
    div.product {
        div.images {
            .flex-control-thumbs {
                margin: 0 -5px;

                li {
                    padding: 10px 5px 0;
                }
            }

            .woocommerce-product-gallery__wrapper {
                overflow: hidden;
            }
        }
    }
}

// Onsale badge

.woocommerce {
    span.onsale {
        font-size: 1em;
        height: 3.706325903em;
        left: -13px;
        line-height: 3.206325903em;
        text-transform: uppercase;
        top: -13px;
        width: 3.706325903em;
    }
}

.page-template-template-wc-thank-you {
    .wc-bacs-bank-details-heading {
        display: none;
    }
}

#loginform,
.loginform,
.woocommerce form.login,
.woocommerce form.register,
.logged-out .woocommerce {
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
    border: none;
    padding: 0;
    .woocommerce-LostPassword {
        a {
            color: nth($blue, 1);
        }
    }
}

// WooCommerce Extensions

@import "woocommerce-extensions/advanced-product-labels";
@import "woocommerce-extensions/bookings";
@import "woocommerce-extensions/bundle-products";
@import "woocommerce-extensions/quick-view";
@import "woocommerce-extensions/product-vendors";
@import "woocommerce-extensions/product-addons";
@import "woocommerce-extensions/product-retailers";
@import "woocommerce-extensions/product-reviews-pro";
@import "woocommerce-extensions/points_rewards";
@import "woocommerce-extensions/ship-multiple-addresses";
@import "woocommerce-extensions/smart-coupons";
@import "woocommerce-extensions/social-login";
@import "woocommerce-extensions/subscriptions";
@import "woocommerce-extensions/variation-swatches";
@import "woocommerce-extensions/wishlists";
@import "woocommerce-extensions/woocommerce-blocks";