.ast-container {
    padding: 0 7vw;
    max-width: none !important;
}
#primary {
    max-width: 75rem;
    margin: auto;
}

.product-left .image {
    position: relative;
    max-width: 32rem;
    margin: auto;
}
.product-left .image .swatch {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40%;
}
.product-right p {
    margin: 0;
}
.product-right {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
}
.product-right .category {
    order: 1;
    font-size: .78rem;
}
.product-right h1 {
    order: 2;
    margin-bottom: .5rem;
    font-size: 2.1875rem;
}
.product-price {
    order: 3;
    font-size: 1.125rem;
}
.product-sku {
    order: 4;
    color: #757575;
    font-size: .78rem;
}
.product-features {
    order: 5;
    font-size: .875rem;
    color: #888;
}
.product-sku:empty {margin: 0;}
.product-options {
    order: 6;
    --cream: #F6F3E3;
    --brown: #4A3A32;
    --natural: #B59A56;
    margin-top: 1rem;
}

.product-options h2,
.woocommerce div.product form.cart .variations label {
    font-size: 1rem;
    font-weight: normal;
    margin: 0 0 .5rem 0;
}
.product-options .color-filter,
.product-options .product-button {
    box-sizing: content-box;
    border-radius: 0;
    font-size: 0;
    padding: 0;
    margin: 0 .5rem .5rem 0;
    width: min(17.5vw, 4rem);
    aspect-ratio: 1/1;
    border: 1px solid transparent;
    background: transparent;
    position: relative;
}
.product-options .color-filter[data-color-name="White"],
.product-options .product-button[data-color-name="White"] {
    border-color: #CCC;
}
.product-options button.selected::before {
    content: "";
    position: absolute;
    top: -5px;
    left: -5px;
    width: calc(100% + 6px);
    aspect-ratio: 1 / 1;
    border: 2px solid black;
}
.option-selection {
    font-size: .875rem;
}

.product-fabrics {
    margin-top: 2rem;
}

.product-add-to-cart-loading {
    display: none;
    opacity: .6;
    margin-top: 1.75rem;
    --qty_width: 36px;
    --qty_width_borders: calc( var(--qty_width) + 3px);
    --qty_width_n: calc( var(--qty_width) * -1 );
    --qty_width_borders_n: calc( var(--qty_width_n) - 3px);
}
.product-add-to-cart-loading .loading-label {
    margin: 0 0 .5em 0;
    font-size: 1rem;
}
.product-add-to-cart-loading .loading-bar {
    height: 46px;
    background-color: var(--ast-border-color);
    border-radius: 3px;
    position: relative;
    overflow: hidden;
    color: transparent;
    margin-bottom: 1.5rem;
}
.product-add-to-cart-loading .loading-bar::before {
    content: "";
    --inner_bar_width: min(35%, 150px);
    --inner_bar_width_negative: calc(var(--inner_bar_width) * -1);
    width: var(--inner_bar_width);
    height: 100%;
    position: absolute;
    top: 0;
    left: var(--inner_bar_width_negative);
    background: linear-gradient(to left, transparent, rgba(0, 0, 0, .15), transparent);
    animation: forwardloop 1.5s infinite;
}
@keyframes forwardloop {
    0% {
        left: var(--inner_bar_width_negative);
    }
    100% {
        left: calc(100% + var(--inner_bar_width));
    }
}
.product-add-to-cart-loading hr {
    background-color: var(--ast-border-color);
    margin: 2rem 0 1rem 0;
}
.product-add-to-cart-loading .loading-qty::before {
    content: "-";
    font-size: 18px;
    width: var(--qty_width);
    height: calc(100% + 2px);
    border: 1px solid var(--ast-border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -1px;
    left: var(--qty_width_borders_n);
}
.product-add-to-cart-loading .loading-qty {
    width: var(--qty_width);
    height: auto;
    border-top: 1px solid var(--ast-border-color);
    border-bottom: 1px solid var(--ast-border-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin: 0 var(--qty_width_borders);
    vertical-align: top;
}
.product-add-to-cart-loading .loading-qty::after {
    content: "+";
    font-size: 18px;
    width: var(--qty_width);
    height: calc(100% + 2px);
    border: 1px solid var(--ast-border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -1px;
    left: var(--qty_width_borders);
}
.product-add-to-cart-loading .loading-add-to-cart {
    vertical-align: top;
}



.product-add-to-cart {
    margin-top: 1.75rem;
}
.woocommerce div.product form.cart .single_variation_wrap .single_variation {
    margin: 0 0 1rem 0;
}
.woocommerce div.product form.cart .single_variation_wrap .single_variation:empty {
    margin: 0;
}

.woocommerce-variation-add-to-cart, .qty-button {
    display: flex;
    gap: 5vw;
}
.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .button.single_add_to_cart_button {
    float: none;
    margin: 0;
}
.woocommerce .quantity .plus {
    margin: 0;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button, .loading-add-to-cart {
    flex-grow: 1;
    background-color: #d03d30;
}
.woocommerce div.product form.cart .reset_variations {
    display: none;
}
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tr {
    border: 0;
    margin: 0;
}
.woocommerce div.product form.cart .variations select {
    height: 50px;
    margin-bottom: 1.5rem;
}

@media (min-width: 32em) {
    .single_variation_wrap {
        position: relative;
    }
    .woocommerce-variation-add-to-cart, .qty-button {
        gap: 1rem;
    }
    .woocommerce div.product form.cart .button.single_add_to_cart_button, .loading-add-to-cart {
        flex-grow: 0;
    }
    .single_variation {
        position: absolute;
        bottom: 0;
        right: 0;
        margin: 0 !important;
    }
}
@media (min-width: 545px) { .product-add-to-cart-loading .loading-bar { height: 47px; } }
@media (min-width: 1351px) { .product-add-to-cart-loading .loading-bar { height: 49px; } } /* kinda dumb */


.product-bottom {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #E0E0E0;
    font-size: 1rem;
}

.category-description {
    display: flex;
    flex-direction: column;
}
.category-description .lampshade-sizing-image {
    order: 2;
}
.category-description .text-description {
    order: 1;
}
.category-description .size-chart {
    order: 3;
    margin: auto;
    max-width: 56rem;
}
.category-description .size-chart tr:nth-child(even) td {
    background-color: #F2F2F2;
}

@media (min-width: 35em) {
    .category-description {
        display: block;
    }
    .category-description .lampshade-sizing-image {
        float: right;
        margin: 0 0 2.8vw 2.8vw;
    }
}

@media (min-width: 48em) {
    .ast-container {
        padding: 0 4vw;
    }
    #lampshade-product {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        --left_col_width: 47%;
    }
    .product-left {
        width: var(--left_col_width);
        padding-right: 2rem;
    }
    .product-left .image {
        max-width: none;
    }
    .product-right {
        width: calc(100% - var(--left_col_width));
        margin-top: 0;
    }
    .product-bottom {
        width: 100%;
        margin-top: 3rem;
        padding-top: 3rem;
    }
}

@media (min-width: 64em) {
    #lampshade-product {
        --left_col_width: 50%;
    }
    .product-left {
        padding-right: 3rem;
    }
}

@media (min-width: 75em) {
    #lampshade-product {
        --left_col_width: 54%;
    }
    .product-left {
        padding-right: 4rem;
    }
}