/******************************************************************
 * 1. GLOBAL DESIGN TOKENS & ROOT STYLES
 ******************************************************************/
:root {
    --table_padding: 10px 12px;
    --table_border: solid 1px #ebebeb;
    --table_background: #fff;
    --form_padding: 25px 20px;
    --button_bg: var(--c8, #000);
    --button_color: var(--bg1, #fff);
}

/******************************************************************
 * 2. STRUCTURAL FORMS & BASIC INPUTS
 ******************************************************************/

/* Core Element Background Overrides */
.woocommerce table.shop_table,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment,
#customer_details,
h3#order_review_heading,
form.woocommerce-EditAccountForm.edit-account {
    background: var(--table_background, #fff);
    border: none;
}

/* Wrapper and Header Padding Defaults */
#customer_details,
form.woocommerce-EditAccountForm.edit-account,
h3#order_review_heading {
    padding: var(--form_padding);
}

@media screen and (max-width: 769px) {
    #customer_details,
    form.woocommerce-EditAccountForm.edit-account,
    h3#order_review_heading {
        padding: 0;
    }
}

/* Input Fields, Textareas, and Select2 Selectors */
.select2-container--default .select2-selection--single,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
    border: solid 1px var(--tc, #000);
    font-size: 1rem;
    line-height: 1.2em !important;
    padding: 10px;
    height: auto;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--tc, #000);
    line-height: 1.2em;
}

.select2-dropdown {
    border-color: var(--tc, #000);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 50%;
    transform: translateY(-50%);
    height: 100%;
}

/* Base Form Buttons & Global Inputs */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input {
    line-height: 1em !important;
    /* font-size: 1rem !important; */
}

.woocommerce input {
    padding: 10px 15px !important;
}

.form-row,
.woocommerce-form-row {
    margin: 0 !important;
}

.form-row input,
.woocommerce-form-row input {
    margin-top: 5px;
}


/******************************************************************
 * 3. NOTIFICATIONS & ALERTS
 ******************************************************************/
.woocommerce-message { --color: var(--message, #000); }
.woocommerce-info    { --color: var(--c1, blue); }
.woocommerce-error   { 
    --color: var(--error, red); 
    grid-column: 1/-1;
    margin: 0;
}

/* Shared Notification Container Properties */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    background: var(--message_bg, #fff) !important;
    border: solid 2px var(--color, #000) !important;
    border-radius: var(--radius_sm);
    margin: 0;
    padding: 15px 15px 15px 45px !important;
}

/* Icon / Vector Settings for Notifications */
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-message::before {
    color: var(--color, #000);
    top: 1em;
    left: 20px !important;
}

.woocommerce-info::after,
.woocommerce-error::after,
.woocommerce-message::after {
    display: none;
}

/* Internal Actions/Buttons inside Alerts */
:where(.woocommerce-info, .woocommerce-error, .woocommerce-message) .button {
    --_color: var(--tc, #000) !important;
    --_bg: transparent !important;
    --_hover_color: var(--tc, #000) !important;
    --_hover_bg: transparent !important;
    padding: 0 !important;
    border: none !important;
    font-size: 1rem !important;
    transform: none !important;
    text-decoration: underline !important;
    text-transform: none !important;
    box-shadow: none !important;
}

:where(.woocommerce-message, .woocommerce-error, .woocommerce-info) > * {
    margin: 0 !important;
    padding: 0 !important;
}

/* Global Notices Containers */
.woocommerce-notices-wrapper,
.woocommerce-form-coupon-toggle {
    margin-bottom: var(--gap_min);
}

.woocommerce-notices-wrapper:empty {
    margin: 0 !important;
}

.woocommerce-notices-wrapper svg {
    width: auto;
}

.woocommerce-notices-wrapper a.button {
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
}

.woocommerce-notices-wrapper a.button:hover {
    text-decoration: underline;
    text-decoration-color: var(--c1);
}

.woocommerce-NoticeGroup {
    grid-column: 1/-1;
}


/******************************************************************
 * 4. QUANTITY INPUTS & ITEM CONTROLS
 ******************************************************************/

/* Quantity Container Setup */
.quantity {
    position: relative !important;
    padding: 0 !important;
    line-height: 1em !important;
    font-size: 1em !important;
    width: fit-content !important;
    margin-right: 10px !important;
}

.quantity input {
    height: 100% !important;
    width: 4em !important;
    text-align: left !important;
    padding: 10px 15px !important;
}

.quantity input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Custom Step Buttons Wrapper */
.quantity .qtt-btns {
    position: absolute;
    pointer-events: none;
    top: 0;
    right: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    transition: all 0.2s;
}

/* Individual Step Buttons */
.quantity .qtt-btn {
    position: relative;
    height: 22px;
    pointer-events: auto;
    cursor: pointer;
    user-select: none;
    border-left: solid 1px var(--border_c, #000);
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.1em;
    aspect-ratio: 1;
    padding-right: 1px;
}

.quantity .qtt-btn:first-child::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: -0.5px;
    left: 0;
    background-color: var(--border_c, #000);
}


/******************************************************************
 * 5. WOOCOMMERCE CART PAGE
 ******************************************************************/

/* Layout Architecture */
.woocommerce-cart .entry-content .woocommerce {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px clamp(20px, 5vw, 60px);
}

.woocommerce-cart .woocommerce-message {
    margin: 0;
}

@media only screen and (max-width: 1000px) {
    .woocommerce-cart .entry-content .woocommerce {
        grid-template-columns: 1fr;
    }
}

.woocommerce-cart .entry-content .woocommerce .woocommerce-notices-wrapper {
    grid-column: 1 /-1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Empty Cart / Action Buttons */
.woocommerce .return-to-shop {
    grid-column: 1/-1;
    display: flex;
}

.woocommerce .return-to-shop a {
    text-align: center;
    padding: 17px !important;
}

/* Mobile-First Responsive Cart Table Content */
.woocommerce table.woocommerce-cart-form__contents {
    background-color: transparent;
    padding-top: 1px;
}

table.woocommerce-cart-form__contents thead {
    display: none;
}

table.woocommerce-cart-form__contents tbody {
    display: flex;
    flex-direction: column;
    gap: var(--gap_min);
}

/* Individual Products Rows as Responsive Cards */
table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
    display: grid;
    grid-template-columns: 81px 1fr max-content;
    justify-items: start;
    position: relative;
    --table_padding: 0;
    align-items: start;
    gap: 5px 0;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item + tr {
    border-top: solid 1px #ebebeb;
    padding-top: var(--gap_min);
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td {
    border: none !important;
    text-align: left !important;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td:empty::before {
    content: "none" !important;
}

.woocommerce table.woocommerce-cart-form__contents tr:nth-child(2n) td,
.woocommerce-page table.woocommerce-cart-form__contents tr:nth-child(2n) td {
    background: transparent;
}

/* Cart Item Sub-Elements styling */
tr.woocommerce-cart-form__cart-item .product-remove {
    position: absolute;
    right: 0;
    bottom: 0;
}

tr.woocommerce-cart-form__cart-item .product-thumbnail {
    grid-column: 1/2;
    grid-row: 1/3;
    padding: 0 15px 0 0 !important;
    display: block;
}

tr.woocommerce-cart-form__cart-item .product-thumbnail img {
    width: 100% !important;
    padding-top: 0.3em;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td::before {
    display: none;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-name {
    grid-column: 2/3;
    width: 100%;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-name a {
    font-weight: 600;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-price {
    display: none;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-quantity {
    grid-column: 2/3;
    grid-row: 2/3;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-quantity:not(:has(.quantity)) {
    align-self: end;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-quantity:not(:has(.quantity))::before {
    display: inline;
    content: "Quantity: " !important;
}

table.woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td.product-subtotal {
    grid-column: 3/4;
    grid-row: 1/2;
}

/* Cart Action Fieldsets (Coupon codes etc.) */
table.woocommerce-cart-form__contents tr td.actions {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between;
}

#coupon_code {
    min-width: 140px;
}

/* Global Table & Data Layout Padding Controls */
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
#add_payment_method .cart-collaterals .cart_totals tr td,
#add_payment_method .cart-collaterals .cart_totals tr th,
.woocommerce-cart .cart-collaterals .cart_totals tr td,
.woocommerce-cart .cart-collaterals .cart_totals tr th,
.woocommerce-checkout .cart-collaterals .cart_totals tr td,
.woocommerce-checkout .cart-collaterals .cart_totals tr th,
.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th,
.woocommerce-checkout #main-content .cart-subtotal td {
    padding: var(--table_padding);
}

.woocommerce table.shop_table td,
#add_payment_method .cart-collaterals .cart_totals tr td,
#add_payment_method .cart-collaterals .cart_totals tr th,
.woocommerce-cart .cart-collaterals .cart_totals tr td,
.woocommerce-cart .cart-collaterals .cart_totals tr th,
.woocommerce-checkout .cart-collaterals .cart_totals tr td,
.woocommerce-checkout .cart-collaterals .cart_totals tr th,
.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th,
.woocommerce-checkout #main-content .cart-subtotal td {
    border-top: var(--table_border);
}

.woocommerce-checkout #content-area table th,
.woocommerce-checkout #content-area table td {
    padding-left: 20px;
}

/* Custom Item Row Removal Buttons Setup */
.cart_item a.remove {
    color: transparent !important;
    background-color: transparent !important;
}

.cart_item a.remove::before {
    font-family: pd_icons !important;
    font-style: normal;
    font-weight: normal !important;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "\e92c";
    color: #000 !important;
    font-size: 1rem;
    position: absolute;
    bottom: 0;
    right: 0;
}

.mini_cart_item .edit-item,
.cart_item .edit-item {
    font-weight: 400 !important;
}

.mini_cart_item .edit-item {
    font-size: 0.9em;
}

/* Cart Totals Module Display block configuration */
.woocommerce-cart .entry-content .woocommerce .cart_totals {
    width: 100%;
    background-color: var(--bg1, #fff);
    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.05);
    border-radius: 15px;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals h2 {
    font-size: var(--h5, 18px);
    padding: var(--gap_min);
}

.woocommerce-cart .entry-content .woocommerce .cart_totals table {
    padding: 0 var(--gap_min);
    width: 100% !important;
    --table_border: none;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals tbody {
    --table_padding: 0;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals tr {
    display: flex;
    flex-direction: column;
    margin: 0 0 var(--gap_min) 0;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals .order-total {
    border-top: solid 1px #ebebeb;
    padding-top: var(--gap_min);
    margin: 0 0 -0.6em 0;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals .order-total .amount {
    font-size: 1.6em;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals th {
    color: #000;
    font-size: 0.9em;
    opacity: 0.5;
    display: block;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals #shipping_method li {
    margin: 0;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals td label,
.woocommerce-cart .entry-content .woocommerce .cart_totals td {
    font-weight: 500 !important;
    font-size: 1rem !important;
    background: transparent !important;
    text-align: left !important;
}

.woocommerce-cart .entry-content .woocommerce .cart_totals td::before {
    display: none !important;
}

.woocommerce-cart .entry-content .woocommerce .wc-proceed-to-checkout {
    padding: var(--gap_min);
}

.woocommerce-cart .entry-content .woocommerce .checkout-button {
    margin: 0;
}

/* Variations specifications details layout formatting */
dl.variation {
    font-size: 0.8em;
    line-height: 1.4em;
}

dl.variation p {
    margin: 0;
    line-height: inherit;
}

dl.variation dt,
dl.variation dd {
    display: block;
}


/******************************************************************
 * 6. WOOCOMMERCE CHECKOUT PAGE
 ******************************************************************/

/* Layout Structure */
form.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px clamp(20px, 5vw, 60px);
    align-items: start;
    margin-top: 20px;
}

@media screen and (max-width: 1000px) {
    form.woocommerce-checkout {
        grid-template-columns: 1fr;
    }
}

/* Secondary Actions Form Styling blocks (Coupons, registration, logins) */
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
    border: solid 2px;
    padding: 15px;
    margin: var(--gap_min) 0;
}

.woocommerce form.checkout_coupon {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.woocommerce form.checkout_coupon > * {
    padding: 0;
    margin: 0;
    line-height: 1.4em;
}

.woocommerce form.checkout_coupon p:first-child {
    width: 100%;
}

.woocommerce form.checkout_coupon .form-row-first,
.woocommerce form.checkout_coupon .form-row-last {
    width: max-content;
}

/* Checkout Page Elements Tweaks */
#customer_details {
    border-top-left-radius: var(--radius_sm);
    border-top-right-radius: var(--radius_sm);
}

form.woocommerce-checkout #customer_details {
    display: flex;
    flex-direction: column;
    padding: 0;
}

form.woocommerce-checkout #customer_details > div {
    width: 100%;
}

form.woocommerce-checkout #customer_details .col-2 {
    display: flex !important;
    flex-direction: column;
    gap: 0;
}

.woocommerce-checkout-review-order table.shop_table {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

h3#ship-to-different-address {
    margin-top: -3px;
}

#ship-to-different-address label {
    padding: 0 3px !important;
}

.woocommerce-additional-fields {
    width: 100%;
    margin-top: var(--gap_min);
}

.woocommerce-additional-fields h3 {
    font-size: var(--h5, 16pc);
    padding: 3px;
}

.woocommerce-billing-fields h3 {
    font-size: var(--h4);
}

/* Order Review Container Specific Details Blocks */
form.woocommerce-checkout #order_review_heading {
    display: none;
}

form.woocommerce-checkout #order_review {
    padding: var(--gap_min) !important;
    background-color: #fff !important;
    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.05);
    border-radius: 15px;
    margin-top: var(--gap_min);
}

form.woocommerce-checkout #order_review th,
form.woocommerce-checkout #order_review td {
    padding: 8px 0 !important;
}

form.woocommerce-checkout #order_review thead th {
    padding-top: 0 !important;
}

form.woocommerce-checkout .woocommerce-checkout-review-order-table {
    margin: 0 !important;
}

/* Core Payment Selection Wrapper controls */
#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
    border: none;
}

#payment ul.payment_methods {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px;
}

#add_payment_method #payment ul.payment_methods,
.woocommerce-cart #payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 0;
}

#payment ul.payment_methods li {
    position: relative !important;
    border-radius: 8px !important;
    border: solid 1px var(--tc, #000) !important;
}

#payment ul.payment_methods li input {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    visibility: hidden;
}

#payment ul.payment_methods li label {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start;
    padding: 10px var(--gap_min) !important;
    font-size: 1rem !important;
    flex-wrap: wrap;
    gap: 5px;
}

/* Active Core Gateway Description box adjustments */
#add_payment_method #payment div.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
    background-color: #15bf86;
    color: #fff;
}

#add_payment_method #payment div.payment_box::before,
.woocommerce-cart #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: #15bf86;
}

#payment .payment_box {
    margin: 0 !important;
    background-color: transparent !important;
    padding: 0 var(--gap_min) var(--gap_min) var(--gap_min) !important;
}

#payment .payment_box::before {
    display: none !important;
}

/* Final CTA Terms & Placement */
.woocommerce-terms-and-conditions-wrapper {
    font-size: 0.9em;
}

.form-row.place-order {
    margin: 0 !important;
    padding: 0 !important;
}

button#place_order {
    width: 100% !important;
    margin-top: var(--gap_min) !important;
    padding: 0.8em 1.6em !important;
}

/* Order Received / Details Layout Architecture */
.woocommerce-order-details h2 {
    font-size: 2rem;
}

.woocommerce-customer-details h2,
.woocommerce-order-details h3 {
    font-size: 1.2rem;
    margin-bottom: 10px;
}


/******************************************************************
 * 7. MY ACCOUNT PAGE
 ******************************************************************/

/* Layout Setup & Navigation Blocks */
.woocommerce-MyAccount-navigation {
    height: 100%;
}

.woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-right: solid 1px #ebebeb;
    list-style: none;
}

@media screen and (max-width: 769px) {
    .woocommerce-MyAccount-navigation ul {
        flex-direction: row;
        flex-wrap: wrap;
        border-right: none;
        border-bottom: solid 1px #ebebeb;
        padding: 15px 0;
        margin-bottom: 15px;
    }

    .woocommerce-MyAccount-navigation ul li {
        background-color: var(--bg3);
        padding: 5px 10px;
        flex: 1 1 auto;
        margin: 0;
    }
}

/* Vector Dashboard Icons Rendering setup */
.woocommerce-MyAccount-navigation ul li a::before {
    margin-right: 0.5em;
    font-family: 'pd_icons' !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.woocommerce-MyAccount-navigation-link--dashboard a::before       { content: "\e92a"; }
.woocommerce-MyAccount-navigation-link--orders a::before          { content: "\e93b"; }
.woocommerce-MyAccount-navigation-link--downloads a::before       { content: "\e916"; }
.woocommerce-MyAccount-navigation-link--edit-address a::before    { content: "\e91b"; }
.woocommerce-MyAccount-navigation-link--payment-methods a::before { content: "\e915"; }
.woocommerce-MyAccount-navigation-link--edit-account a::before    { content: "\e92d"; }
.woocommerce-MyAccount-navigation-link--wishlist a::before        { content: "\e918"; }
.woocommerce-MyAccount-navigation-link--customer-logout a::before  { content: "\e925"; }

/* Account content Typography / Element Cards */
.woocommerce-MyAccount-content h2 {
    font-size: 1.2rem;
    padding: 5px 2px 0 2px !important;
}

.woocommerce-MyAccount-content h3 {
    font-size: 1.2rem;
}

.woocommerce-MyAccount-content form {
    margin-top: -8px;
}

.woocommerce-MyAccount-content .woocommerce-column .woocommerce-column__title {
    font-size: 1.2rem;
    margin-bottom: 15px;
}

.woocommerce-MyAccount-content .woocommerce-Address {
    margin-top: 10px;
    border: var(--table_border);
    border-radius: 5px;
    padding: 6px 12px;
}

.woocommerce-MyAccount-content .woocommerce-Address header {
    margin-bottom: 5px;
}

.woocommerce-table--order-details {
    border: var(--table_border) !important;
    margin-top: 15px !important;
}

.woocommerce-account .title h3 {
    font-size: 1rem;
}

.woocommerce .col2-set .col-2 {
    display: block !important;
}

.woocommerce-MyAccount-content form .wp-element-button {
    border-radius: 10px;
    color: #333;
    font-weight: 600;
    padding: 8px 25px;
    letter-spacing: 0.6px;
    background-color: var(--c1);
}

/* Authentication Sub-views login/register components layouts */
.woocommerce-form-register,
.woocommerce-form-login,
.woocommerce-form-register .form-row,
.woocommerce-form-login .form-row {
    display: flex;
    flex-direction: column;
}

.woocommerce-form-register,
.woocommerce-form-login {
    width: 280px;
    grid-column: span 2;
    margin: 0 auto;
}

.woocommerce-form-register .form-row,
.woocommerce-form-login .form-row {
    margin-top: 5px;
}

.woocommerce .woocommerce-form-login .woocommerce-form-login__submit {
    margin: 0;
}

#customer_login {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.logged-out.woocommerce-account .entry-content .woocommerce {
    display: block;
}

/* Orders List Mobile Responsiveness Adjustments block */
@media screen and (max-width: 48em) {
    table.woocommerce-orders-table {
        border: none;
    }

    table.woocommerce-orders-table .woocommerce-orders-table__row {
        display: block;
        border-radius: 5px;
        border: solid 1px #000;
    }

    table.woocommerce-orders-table .woocommerce-orders-table__row + .woocommerce-orders-table__row {
        margin-top: 15px;
    }
}


/******************************************************************
 * 8. SITE HEADER CONTROLS & MINI SHOPPING CART
 ******************************************************************/

/* Header Menu Launcher Elements */
.cartIconMenu {
    position: relative;
    display: block;
    height: 20px;
    width: 20px;
    border: none;
    background: none;
    cursor: pointer;
}

.cartIconMenu i:before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 22px;
}

.cartIconMenu > .count {
    display: block;
    position: absolute;
    background-color: var(--c4);
    color: var(--bg1);
    top: -6px;
    right: -8px;
    z-index: 1;
    height: 16px;
    width: 16px;
    text-align: center;
    border-radius: 10px;
    font-size: 0.75em;
    line-height: 1.4em;
    font-weight: 700;
}

/* Disable Visibility context filters on main workflows */
.page.woocommerce-checkout #site-header-cart,
.page.woocommerce-cart #site-header-cart {
    visibility: hidden !important;
    right: -320px !important;
}

/* Mini Cart Drawer Shell layout settings */
#site-header-cart ul {
    list-style: none;
}

#site-header-cart .widget_shopping_cart {
    height: calc(100% - 35px);
}

#site-header-cart .widget_shopping_cart_content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Individual list item within mini cart element block */
#site-header-cart .mini_cart_item {
    position: relative;
    border: solid #dddddd;
    border-width: 0 0 1px 0;
    padding-bottom: 20px;
    padding-left: 75px;
    min-height: 85px;
}

#site-header-cart .mini_cart_item a {
    font-weight: 600;
}

#site-header-cart .mini_cart_item a:after {
    display: inline-block;
    z-index: 1;
    padding: 1px 6px 3px 6px;
    border-radius: 5px;
    font-weight: 400;
    font-size: 13px;
}

#site-header-cart .mini_cart_item a:nth-child(2) {
    display: block;
    padding-top: 0;
    padding-right: 0;
}

#site-header-cart .mini_cart_item img {
    position: absolute;
    top: 0;
    left: 0;
    width: 60px;
    height: auto;
    object-fit: cover;
    aspect-ratio: 1;
}

/* Variations filters inside Mini-Cart elements context values */
#site-header-cart .mini_cart_item.sell .quantity,
#site-header-cart .mini_cart_item .variation > * {
    display: none;
}

#site-header-cart .mini_cart_item.sell .variation-Prisuppskattning {
    display: inline-block;
    line-height: 1.4em;
}

#site-header-cart .mini_cart_item .variation-Customizations {
    display: block;
}

#site-header-cart .mini_cart_item dt.variation-Customizations {
    padding-top: 5px;
}

/* Custom Multilingual Labels tags templates configurations */
#site-header-cart .mini_cart_item.buy a:after {
    content: "Köp";
    background-color: var(--primary_color);
}

#site-header-cart .mini_cart_item.sell a:after {
    content: "Sälj";
    color: #fff;
    background-color: var(--secondary_color);
}

/* Mini Cart Remove Field controllers triggers */
#site-header-cart .mini_cart_item .remove_from_cart_button {
    color: var(--tc) !important;
    position: absolute;
    top: -2px;
    left: 2px;
    z-index: 1;
    height: 20px;
    width: 20px;
    text-align: center;
    font-size: 22px;
    line-height: 0.9em;
    font-weight: 500;
    visibility: hidden;
}

#site-header-cart .mini_cart_item:hover .remove_from_cart_button {
    visibility: visible;
}

#site-header-cart .mini_cart_item .remove_from_cart_button:hover {
    background-color: var(--tc);
    color: var(--bg1) !important;
}

#site-header-cart .mini_cart_item .remove_from_cart_button:after {
    display: none;
}

/* Mini Cart Totals and Actions Wrapper interface block */
#site-header-cart .woocommerce-mini-cart__total {
    line-height: 1em;
    margin-top: auto;
    border: none;
    padding: var(--gap_min) var(--gap);
    text-align: right;
    margin-bottom: calc(var(--gap_min) * -2.8);
}

#site-header-cart .woocommerce-mini-cart__buttons {
    display: flex;
    flex-direction: column;
    gap: var(--gap_min);
    padding: var(--gap);
    padding-top: var(--gap_min);
    box-shadow: 0 0 15px rgb(0 0 0 / 6%);
}

#site-header-cart .woocommerce-mini-cart__buttons::before,
#site-header-cart .woocommerce-mini-cart__buttons::after {
    display: none;
}

#site-header-cart .woocommerce-mini-cart__buttons a.checkout {
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    --_bg: var(--c1);
    --_hover_bg: var(--c1);
}

#site-header-cart .woocommerce-mini-cart__buttons a:nth-child(1) {
    --_color: var(--tc);
    --_bg: transparent;
    --_hover_color: var(--tc);
    --_hover_bg: transparent;
    transform: none !important;
    box-shadow: none !important;
    text-align: left !important;
    padding: 0 !important;
    margin: 0 !important;
    font-weight: 400 !important;
    text-transform: none;
    border: none !important;
    font-size: 1rem !important;
}

#site-header-cart .woocommerce-mini-cart__empty-message {
    padding: var(--gap);
    text-align: center;
    margin-top: auto;
}


/******************************************************************
 * 9. PRODUCT ARCHIVE & CARDS GRID (SHOP PAGE)
 ******************************************************************/

/* Archive Top Header Panels controllers */
.woocommerce-products-header.entry-header.boxed {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
}

.woocommerce-products-header__title {
    font-size: var(--h2);
}

/* Master Shop Layout Structure Architecture definition context */
.woocommerce.archive .entry-content.boxed {
    display: grid;
    grid-template-columns: 1fr 4fr;
    gap: 30px;
    align-items: start;
    padding-top: var(--gap);
}

@media screen and (max-width: 768px) {
    .woocommerce.archive .entry-content.boxed {
        margin-top: calc(-2 * var(--gap));
        grid-template-columns: 1fr;
    }
}

/* Core Archive Loop Matrix setup definition block */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 25px;
    list-style: none;
    padding: 0;
}

.woocommerce ul.products:before,
.woocommerce ul.products:after {
    display: none !important;
}

/* Single Product Loop Wrapper Node styling config card bundle */
.woocommerce ul.products li.product {
    --tc: var(--c1);
    position: relative;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0.8 0 200px;
    border: solid 1px var(--bg3);
    background-color: var(--bg1);
    border-radius: var(--radius);
    box-shadow: var(--card_shadow);
    text-align: center;
}

.woocommerce ul.products li.product img {
    all: unset;
    width: 100% !important;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    overflow: hidden;
    padding: 20px 20px 2px 20px;
    box-sizing: border-box;
    border-radius: var(--radius);
    margin: 0 !important;
}

/* Product Titles and Inner Link Blocks overrides definition */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    overflow: hidden;
    padding: 0 !important;
    margin: 0.5em 12px 0.2em 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
    font-size: 0.9em;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    position: relative;
}

/* Sale Flash Styling Badges */
.woocommerce .product .onsale {
    all: unset;
    position: absolute;
    top: -0.5em !important;
    left: 1em;
    z-index: 1;
    background-color: var(--c2);
    color: var(--c1);
    font-size: 0.8rem;
    line-height: 1em !important;
    font-weight: 600;
    text-transform: uppercase;
    padding: 0.4em 0.5em;
    margin: 0 !important;
    border-radius: 5px;
}

.woocommerce ul.products li.product .onsale {
    left: auto !important;
    right: 1em !important;
}

/* Prices structures fields configurations metrics modifiers */
.woocommerce ul.products li.product .price {
    line-height: 1em;
    color: var(--tc);
    padding: 0 10px 20px 10px;
    letter-spacing: 0.01em;
    width: 100%;
    display: block;
    margin: 0 !important;
    font-size: 0.8rem;
}

.woocommerce ul.products li.product .price del .amount {
    font-size: 0.7rem;
}

.woocommerce ul.products li.product .price .amount {
    font-size: 1rem;
    font-weight: 700;
}

/* Archive Loop Primary CTA Buttons controls interface overrides */
.woocommerce ul.products li.product .button {
    text-transform: initial;
    width: calc(100% - 20px);
    margin: 8px 10px 10px 10px;
    padding: 6px 8px 8px 8px !important;
    --_bg: var(--c2);
    border-radius: 5px;
}

.woocommerce ul.products li.product .button:hover {
    --_color: var(--bg1);
    --_bg: var(--c1);
    border-color: var(--_bg) !important;
}

.woocommerce ul.products li.product a.button.added::after {
    font-size: 0.8em;
    line-height: 1.2em;
}

.woocommerce ul.products li.product:hover .button {
    transform: translatey(0px);
    opacity: 1;
}

.products .type-product .add_to_cart_button {
    display: none !important;
}

/* Optional Custom Attribute Meta Data swatches layout arrays (Colors, size) */
.woocommerce ul.products li.product .product-colors {
    display: flex;
    justify-content: center;
    gap: 5px;
    width: 100%;
    padding: 5px 10px 10px 10px;
}

.woocommerce ul.products li.product .product-colors span {
    display: block;
    height: 12px;
    width: 12px;
    border-radius: 50%;
    border: solid 1px var(--bg3);
}

/* Third-Party Smart Wishlist Plugin Buttons controls alignments */
.woocommerce ul.products li.product .woosw-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 20px;
    color: var(--c8);
    opacity: 0;
    transition: opacity 0.2s;
}

.woocommerce ul.products li.product:hover .woosw-btn {
    opacity: 0.2;
}

.woocommerce ul.products li.product .woosw-btn.woosw-added,
.woocommerce ul.products li.product .woosw-btn:hover {
    opacity: 1;
}

/* Stock Status Indicators Badges */
.products .product.instock:before,
.products .product.outofstock:before {
    content: "";
    display: block;
    height: 10px;
    width: 10px;
    position: absolute;
    top: 10px;
    left: 10px;
    border-radius: 10px;
    z-index: 1;
}

.products .product.instock:before    { background-color: #39bc37; }
.products .product.outofstock:before   { background-color: #d82e2e; }

.products .product.instock:after, 
.products .product.outofstock:after {
    content: "Finns i lager";
    font-size: 10px;
    line-height: 1em;
    position: absolute;
    top: 10px;
    left: 25px;
    z-index: 1;
    transition: all 0.2s ease-out;
}

.products .product.outofstock:after {
    content: " Besök butik";
}

.products .product.instock:hover:after, 
.products .product.outofstock:hover:after {
    opacity: 1;
    left: 25px;
}

/* Global Grid Elevation Animation Hover effects sets micro adjustments */
@media screen and (min-width: 768px) {
    .products .product {
        transition: all 0.2s ease-out;
    }

    .products .product:hover {
        box-shadow: 0 8px 15px -5px rgba(0, 0, 0, 0.1);
        transform: translatey(-1px);
    }
}

/* Core System Pagination Controls Components blocks structures array */
.woocommerce nav.woocommerce-pagination {
    text-align: left;
}

.woocommerce nav.woocommerce-pagination .page-numbers {
    margin: 0;
    border: none;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0;
    margin-top: var(--gap_min);
}

.woocommerce nav.woocommerce-pagination .page-numbers li {
    border: none;
    margin: 0;
}

.woocommerce nav.woocommerce-pagination .page-numbers li a,
.woocommerce nav.woocommerce-pagination .page-numbers li span {
    margin: 0;
    padding: 5px;
}

.woocommerce nav.woocommerce-pagination .page-numbers li a:hover {
    color: var(--c2);
}

/* Compact Alternative Layout variation configuration modifier sets rules */
.woocommerce.compact ul.products {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.compact ul.products li.product .product-colors {
    display: none;
}

.woocommerce.compact ul.products li.product:first-child {
    grid-row: 1/2;
}

.woocommerce.compact ul.products li.product:hover {
    box-shadow: var(--card_shadow_h);
}

.woocommerce.compact ul.products li.product img {
    background: transparent;
    border: none !important;
    padding: 25px 20px 15px 20px !important;
    margin-bottom: 0 !important;
}

.woocommerce.compact ul.products li.product .button {
    display: none !important;
}

.woocommerce.compact ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.9em;
    margin-top: 0 !important;
    margin-bottom: 0.5em !important;
    text-align: center;
}

.woocommerce.compact ul.products li.product .price {
    font-size: 0.7em;
    margin-bottom: 1em !important;
    padding-bottom: 5px !important;
    text-align: center;
}

/* Wide Horizontal Extended Product Type Display configurations lists */
.archive.post-type-archive-product .type-product {
    grid-column: span 2;
}

.archive.post-type-archive-product .type-product .woocommerce-LoopProduct-link {
    display: grid !important;
    grid-template-columns: 3fr 4fr;
    grid-template-rows: 1fr max-content max-content 1fr;
    text-align: left;
}

.archive.post-type-archive-product .type-product .woocommerce-LoopProduct-link img {
    grid-row: 1/5;
    width: 100%;
}

.archive.post-type-archive-product .type-product .woocommerce-LoopProduct-link h2 {
    font-size: 1.1rem !important;
    margin: auto 10px 0 10px !important;
    height: 1lh;
}

.archive.post-type-archive-product ul.products li.product.type-product .price .amount {
    font-size: 1.2rem;
}

/******************************************************************
 * 10. THIRD-PARTY PRODUCT FILTERS COMPONENT
 ******************************************************************/

/* Layout Containers elements setups controls selectors */
.wpc-filters-widget-content label {
    font-size: 0.9rem;
}

.wpc-filters-section {
    margin-bottom: 1em !important;
}

.wpc-filter-search-form .wpc-search-field {
    padding-left: 32px !important;
}

.wpc-filter-title {
    margin-bottom: 0.5em !important;
}

ul.wpc-filters-ul-list {
    padding: 0 !important;
}

ul.wpc-filters-ul-list .wpc-term-count-0,
ul.wpc-filters-ul-list li.wpc-term-disabled > div {
    display: none !important;
}

ul.wpc-filters-ul-list .children {
    margin: 10px 0 15px 0 !important;
}

ul.wpc-filters-ul-list li.wpc-term-disabled > ul {
    margin-top: 0 !important;
    padding: 0 !important;
}

.wpc-filters-main-wrap input[type=checkbox],
.wpc-filters-main-wrap input[type=radio] {
    padding: 0 !important;
}

/* Accordion Fold Action Toggles Vector adjustments details rules sets */
i.wpc-toggle-children-list:after,
i.wpc-toggle-children-list:before {
    height: 2px !important;
    width: 12px !important;
    background-color: #ccd0dc !important;
}

i.wpc-toggle-children-list:after {
    bottom: calc(50% - 2px) !important;
}

/* Color Attribute Term Filtering Grid items rendering modifications */
.wpc-filter-pa_color ul,
.wpc-filter-pa_farg ul {
    gap: 10px;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(30px, 1fr));
}

.wpc-filter-pa_color li,
.wpc-filter-pa_farg li {
    width: auto !important;
    margin: 0 !important;
}

.wpc-filter-pa_color .wpc-term-swatch-wrapper,
.wpc-filter-pa_farg .wpc-term-swatch-wrapper {
    margin: 0 !important;
}

.wpc-filter-pa_color .wpc-term-name,
.wpc-filter-pa_color .wpc-term-count,
.wpc-filter-pa_farg .wpc-term-name,
.wpc-filter-pa_farg .wpc-term-count {
    display: none !important;
}

.wpc-filter-pa_color label,
.wpc-filter-pa_farg label {
    height: auto !important;
    width: 100% !important;
    aspect-ratio: 1 !important;
    border-radius: 5px !important;
}

.wpc-filter-pa_color span.wpc-term-swatch,
.wpc-filter-pa_color .wpc-term-swatch-wrapper,
.wpc-filter-pa_farg span.wpc-term-swatch,
.wpc-filter-pa_farg .wpc-term-swatch-wrapper {
    position: absolute !important;
    height: 100% !important;
    width: 100% !important;
    border: none !important;
}

.wpc-filter-pa_color .wpc-term-swatch-wrapper:after,
.wpc-filter-pa_farg .wpc-term-swatch-wrapper:after {
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -90%) rotate(-45deg) !important;
}

/* Numeric Price range filter variations */
.wpc-filters-range-column:nth-child(2) input {
    text-align: right !important;
    -webkit-appearance: none !important;
}

.wpc-filters-range-column input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
}


/******************************************************************
 * 11. PLUGINS CUSTOM RESPONSIVE LAYOUT RESPONSIVENESS OVERRIDES
 ******************************************************************/

/* Mobile Responsive Sidebar Drawer UI Overrides sets fields values */
@media screen and (max-width: 768px) {
    .wpc-filters-open-widget {
        background-color: var(--bg1) !important;
        width: 100% !important;
        padding: 0.8em 1.6em;
        border-radius: var(--radius) !important;
    }

    .wpc_show_bottom_widget .wpc-filters-widget-content {
        margin: 0 var(--gap_min) !important;
        top: 200px !important;
        background-color: #ffffff !important;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .storesPage .wpc-filters-widget-content {
        top: auto !important;
        height: 330px !important;
    }

    .storesPage ul.wpc-filters-ul-list {
        flex-direction: column;
    }

    .wpc-filters-overlay {
        opacity: 0 !important;
        z-index: 0 !important;
    }
}


/******************************************************************
 * 12. INTEGRATIONS EXTRA ADDONS (SQUARE GATEWAY / KLARNA CO)
 ******************************************************************/

/* Square Payment Field UI Containers modifications */
#square-gift-card-wrapper {
    padding: 0 2px !important;
    min-height: auto !important;
}

.sq-card-message {
    margin-bottom: 0 !important;
}

#wc-square-credit-card-credit-card-form {
    border: none;
    padding: 0 !important;
    margin: 10px 0 0 0 !important;
}

#wc-square-credit-card-credit-card-form .sq-card-message {
    margin-bottom: 0 !important;
}

/* Klarna Checkout Workflow Page layout overrides blocks elements */
form.checkout.kco-checkout {
    display: block;
}

#klarna-checkout-container + .woocommerce-order-overview,
#klarna-checkout-container ~ .woocommerce-customer-details,
#klarna-checkout-container ~ .woocommerce-order-details,
#klarna-checkout-container ~ .woocommerce-notice {
    display: none;
}



.archive .products li.product {
	grid-column: span 2;
}

.archive .products .product .woocommerce-LoopProduct-link {
	display: grid !important;
	grid-template-columns: 3fr 4fr;
	grid-template-rows: 1fr max-content max-content 1fr;
	text-align: left;
}

.archive .products .product .woocommerce-LoopProduct-link img {
	grid-row: 1/5;
	width: 100%
}

.archive .products .product .woocommerce-LoopProduct-link h2 {
	font-size: 1.1rem !important;
	margin: auto 10px 0 10px !important;
	height: 1lh;
}


.compact ul.products li.product .product-colors,
ul.products li.product .product-storage {
    display: none;
}

.archive ul.products li.product .product-storage {
    display: flex;
    align-items: center;
    padding: 12px 10px 0 10px;
    top: 0;
    gap: 6px;
    flex-wrap: wrap;
}

.archive ul.products li.product .product-storage span {
    font-size: 0.7rem;
    background-color: var(--bg3);
    padding: 0.1em 0.6em 0 0.6em;
    border-radius: 1em;
}

.archive ul.products li.product.type-product .product-colors {
    position: relative;
    justify-content: flex-start;
    padding: 6px 10px 12px 10px;
    top: 0;
    gap: 6px;
}

.archive ul.products li.product.type-product .product-colors span {
    height: 20px;
    width: 20px;
}


.archive ul.products li.product .product-storage {
	display: flex !important;
	align-items: center;
	padding: 12px 10px 0 10px;
	top: 0;
	gap: 6px;
	flex-wrap: wrap;
}

.archive .products  .product .wp-element-button {
	display: none !important;
}
