/*
Theme Name: Storefront Child
Theme URI: 
Description: Child theme for Storefront theme
Author: Your Name
Author URI: 
Template: storefront
Version: 1.0.5
*/

/* Import parent theme styles */
@import url("../storefront/style.css");

/* Add your custom CSS below this line */

/* Conditional Product Filter Layout */

/* When filter is present (has-product-filter class) - 2 column layout */
.has-product-filter .elementor-section .elementor-container .elementor-row,
.has-product-filter .row {
    display: flex;
    flex-wrap: wrap;
}

.has-product-filter .elementor-section .elementor-container .elementor-row .elementor-column,
.has-product-filter .row .col-md-3,
.has-product-filter .row .col-md-4 {
    flex: 0 0 auto;
}

/* Filter column - typically 25% or 33% width */
.has-product-filter .elementor-column.elementor-col-25,
.has-product-filter .elementor-column.elementor-col-33,
.has-product-filter .col-md-3,
.has-product-filter .col-md-4 {
    width: 25%;
}

/* Products column - typically 75% or 67% width */
.has-product-filter .elementor-column.elementor-col-75,
.has-product-filter .elementor-column.elementor-col-66,
.has-product-filter .col-md-9,
.has-product-filter .col-md-8 {
    width: 75%;
}

/* When filter is NOT present (no-product-filter class) - 1 column layout */
.no-product-filter .elementor-section .elementor-container .elementor-row,
.no-product-filter .row {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
}

/* Hide filter column completely when not needed */
.no-product-filter .woof-container,
.no-product-filter .product-filter,
.no-product-filter .elementor-widget-woof,
.no-product-filter .elementor-widget-shortcode,
.no-product-filter [data-widget_type="woof.default"],
.no-product-filter .elementor-element-aaf4798,
.no-product-filter .elementor-col-33:has(.elementor-widget-shortcode) {
    display: none !important;
}

/* Target the specific filter column and hide it completely */
.no-product-filter .elementor-column.elementor-col-33.elementor-element-aaf4798 {
    display: none !important;
}

/* Make sure the products column takes full width when filter column is hidden */
.no-product-filter .elementor-column.elementor-col-66,
.no-product-filter .elementor-column.elementor-col-67 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

/* Ensure any remaining visible columns take full width */
.no-product-filter .elementor-column:not(.elementor-element-aaf4798) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Debug styles to help identify the filter elements */
.filter-column-debug {
    border: 2px solid red !important;
    background: rgba(255, 0, 0, 0.1) !important;
}

.filter-widget-debug {
    border: 2px solid blue !important;
    background: rgba(0, 0, 255, 0.1) !important;
}

/* More aggressive hiding of filter elements */
.no-product-filter [class*="elementor-element-aaf4798"],
.no-product-filter [class*="elementor-element-85a0b3a"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Make products take full width when no filter and reset positioning */
.no-product-filter .elementor-column.elementor-col-75,
.no-product-filter .elementor-column.elementor-col-66,
.no-product-filter .elementor-column.elementor-col-25,
.no-product-filter .elementor-column.elementor-col-33,
.no-product-filter .col-md-9,
.no-product-filter .col-md-8,
.no-product-filter .col-md-3,
.no-product-filter .col-md-4,
.no-product-filter .products-column,
.no-product-filter .woocommerce-products {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
}

/* Ensure products container takes full width and is properly centered */
.no-product-filter .woocommerce,
.no-product-filter .products,
.no-product-filter .woocommerce-products-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Reset Elementor specific positioning */
.no-product-filter .elementor-column {
    margin-left: 0 !important;
    margin-right: 0 !important;
    position: static !important;
}

/* Ensure container is properly centered */
.no-product-filter .elementor-container {
    max-width: 100% !important;
    margin: 0 auto !important;
}

/* Media queries for responsive behavior */
@media (max-width: 768px) {
    /* On mobile, always stack columns */
    .has-product-filter .elementor-column,
    .has-product-filter .col-md-3,
    .has-product-filter .col-md-4,
    .has-product-filter .col-md-8,
    .has-product-filter .col-md-9 {
        width: 100% !important;
        margin-bottom: 20px;
    }
    
    .no-product-filter .elementor-column,
    .no-product-filter .col-md-12 {
        width: 100% !important;
    }
}

/* Tablet media query */
@media (min-width: 767px) and (max-width: 1024px) {
    .site-content {
        position: relative;
        padding-top: 150px;
    }
}

.irs--round .irs-from, .irs--round .irs-to, .irs--round .irs-single, .irs--round .irs-bar {
    background-color: #4797A3 !important;
}

.irs--round .irs-handle {
    border: 4px solid #4797A3 !important;
    
}

button.button.woof_reset_search_form {
    min-width: 100px;
    border: 0;
    border-radius: 2px;
    padding: 3px 0;
    margin: 5px 0;
    text-align: center;
    color: #fff;
    transition: all .4s;
    font-size: 1.1em;
}

.woof_list label {
    font-size: 15px;
}

.archive .elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 2140px;
}

/* ipad air and pro media query */
@media (min-width: 819px) and (max-width: 1024px) {

    .archive .elementor-column-gap-default>.elementor-column>.elementor-element-populated {
        padding: 5px;
    }
    
    .woof_sid_flat_white{
        background: #fff;
        border: solid 1px #eee;
        padding: 9px;
        width: 191px;
    }
    
    .woof_checkbox_label {
        margin-left: 1px !important;
    }
    
    .woof_sid_flat_white {
        width: 178px;
    }
    
    .woof_redraw_zone a.woof_front_toggle img {
        height: 13px;
    }

    .woof-front-builder-container .woof_container h4 {
        font-size: 12px !important;
    }

    .woof_list label {
        font-size: 11px;
    }
}

.woof_products_top_panel{
	z-index: 1;
}

/* woocmmerce */

@media( min-width:1025px ) {
    .wc-cart-page-flex {
        display: flex;
        gap: 35px;
        align-items: flex-start;
    }
    
    .cart-main-content {
        flex: 2;
    }
    
    .cart-sidebar {
        flex: 1;
        max-width: 400px;
    }
}

.woocommerce-cart .entry-header h1,
.woocommerce-checkout .entry-header h1 {
    text-align: left;
}

.woocommerce-checkout .entry-header,
.woocommerce-cart .entry-header {
    padding-bottom: 25px !important;
}

.woocommerce-checkout .breadcrumbs__wrapper,
.woocommerce-cart .breadcrumbs__wrapper {
    margin: 0 -16px;
}

.cart-collaterals .cart_totals {
    width: 100%;
}

/* Cart Table Styling */
.woocommerce-cart-form__contents {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 0 !important;
}

.woocommerce-cart-form__contents thead th {
    background-color: #f8f8f8;
    padding: 15px;
    text-align: left;
    font-weight: 600;
    color: #474747;
    font-weight: 700;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.cart-main-content .shop_table tbody .cart_item {
    border-top: 1px solid #E2E2E2;
}

.cart-main-content .woocommerce-cart-form {
    padding: 0 25px;
    margin-bottom: 0;
}

.wc-cart-page-flex .cart-main-content {
    background: #f8f8f8;
    width: 100%;
    margin-bottom: 35px;
}

.woocommerce-cart table.cart td.actions {
    text-align: left;
    background: transparent;
    border-top-color: transparent;
}

.woocommerce-cart-form__contents tbody td {
    padding: 20px 15px;
    border-bottom: none;
    vertical-align: top;
}

/* Product Info Column */
.product-info-wrapper {
    display: flex;
    gap: 25px;
    align-items: flex-start;
}

.product-thumbnail {
    flex-shrink: 0;
    width: 150px;
    height: 133px;
}

.product-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

.product-details {
    flex: 1;
}

.product-name {
    font-weight: 600;
    margin-bottom: 10px;
}

.product-name a {
    color: #474747;
    text-decoration: none;
}

.product-name a:hover {
    color: #007cba;
}

.woocommerce-checkout-review-order .product-name a {
    color: #474747;
    text-decoration: none !important;
    font-size: 18px;
    font-weight: 700;
}

div#customer_details h3 {
    font-size: 20px;
    color: #474747;
}

.woocommerce-checkout-review-order .item-quantity-price {
    font-size: 16px;
    color: #474747;
    font-weight: 400;
}

span.note-billing-fields {
    font-size: 15px;
    margin-top: -10px;
    display: block;
    margin-bottom: 25px;
    font-family: 'Source Sans 3';
}

/* Quantity Controls */
.product-quantity-controls {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 10px 0;
    width: 100px;
    position: relative;
}

.quantity-minus,
.quantity-plus {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: bold;
    color: #474747;
    border: none;
    background: #f8f8f8;
}

.quantity-minus {
    position: absolute;
    left: 3px;
    padding: 0;
    font-size: 25px;
}

.quantity-plus {
    position: absolute;
    right: 5px;
    padding: 0;
    background: transparent;
}

.quantity-minus:hover,
.quantity-plus:hover {
    background: #e9ecef;
}

.product-quantity-controls .qty {
    display: flex;
    width: 100px !important;
    height: 39px;
    padding: 15px 11px !important;
    justify-content: space-between;
    align-items: center;
    max-width: 100% !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 1px solid #E2E2E2;
}

/* Hide number input arrows/spinners */
.product-quantity-controls .qty::-webkit-outer-spin-button,
.product-quantity-controls .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
.product-quantity-controls .qty[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* Remove Item Link */
.product-remove a {
    color: #007cba;
    text-decoration: none;
    font-size: 14px;
}

.product-remove a:hover {
    color: #005a87;
    text-decoration: underline;
}

.woocommerce-cart .product-remove a {
    text-indent: 0;
    display: block;
    width: auto;
    height: auto;
    line-height: initial;
    font-weight: 400;
    overflow: hidden;
    color: #4797A3;
    font-size: 17px;
}

.woocommerce-cart .product-remove a.remove::before {
    position: relative;
    margin-right: 10px;
    content: 'x';
}

.woocommerce-cart .button.update-cart-btn {
    background: transparent;
    color: #4797A3;
    font-weight: normal;
    text-decoration: underline;
    font-family: 'Source Sans 3';
    padding-left: 0;
    display: none;
}

/* Price and Subtotal */
.product-price {
    font-size: 19px;
}

.product-subtotal {
    font-weight: 600;
    font-size: 19px;
}

/* Update Cart Button */
.update-cart-btn {
    background: #333;
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
}

.update-cart-btn:hover {
    background: #555;
}

/* Cart Sidebar Styling */
.cart-sidebar {
    background: #f8f9fa;
    border-radius: 0;
    border: none;
    padding-top: 25px;
}

.wc-proceed-to-checkout .secure-icon-svg {
    display: block;
    margin: 0 auto 35px;
}

.cart-sidebar .cart-totals-wrapper .shop_table {
    border-bottom: 1px solid #E2E2E2;
}

.cart-sidebar .cart-totals-wrapper table tbody tr td, 
.cart-sidebar .cart-totals-wrapper table tbody tr th {
    padding-left: 25px;
    padding-right: 25px;
}

.woocommerce-cart .cart_totals h2 {
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: 600;
    display: none;
}

body.woocommerce-cart .cart-totals-wrapper td {
    background-color: transparent !important;
    font-size: 16px;
}

body.woocommerce-cart .cart-totals-wrapper td p {
    font-size: 16px;
}

body.woocommerce-cart .cart-totals-wrapper td,
body.woocommerce-cart .cart-totals-wrapper th {
    border: none;
}

body.woocommerce-cart .cart-totals-wrapper th {
    font-size: 16px;
    font-weight: 600;
}

ul#shipping_method li:last-child {
    padding-left: 0;
}

.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item td {
    background: #F8F8F8 !important;
    border-bottom: none;
    padding-left: 0;
    padding-right: 0;
}

.cart_totals table {
    width: 100%;
    border-collapse: collapse;
}

.cart_totals th,
.cart_totals td {
    padding: 10px 0;
    border-bottom: 1px solid #e9ecef;
    text-align: left;
}

.cart_totals th {
    font-weight: 500;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
    font-weight: 600;
    font-size: 16px;
    border-bottom: 2px solid #333;
}

/* Proceed to Checkout Button */
.wc-proceed-to-checkout .checkout-button {
    background: #333;
    color: white;
    padding: 15px 30px;
    border: none;
    border-radius: 0;
    width: 100%;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 0;
}

.woocommerce-cart .wc-proceed-to-checkout {
    margin-bottom: 0;
}

.wc-proceed-to-checkout .checkout-button:hover {
    background: #555;
    color: white;
}

/* Coupon Section */
.coupon-section {
    margin-top: 0;
    padding: 0 25px;
}

.coupon-text svg {
    position: relative;
    top: 7px;
    margin-right: 5px;
}

.coupon-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-bottom: 15px;
}

.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail img {
    width: 150px;
    height: 133px;
    object-fit: contain;
    max-width: 100%;
}

.coupon-icon {
    font-size: 18px;
    color: #666;
}

.coupon-text {
    color: #666;
    font-size: 15px;
}

.coupon-input-wrapper {
    display: flex;
    gap: 10px;
    position: relative;
}

.woocommerce-cart .coupon-input {
    padding: 10px 15px !important;
    border: 1px solid #ddd;
    border-radius: 0;
    flex: 1;
    background: #fff !important;
    color: #43454b;
}

.apply-coupon-btn {
    background: #474747;
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 0;
    cursor: pointer;
    font-weight: 600;
    white-space: nowrap;
    position: absolute;
    height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    right: 5px;
    top: 6px;
    font-size: 16px;
    font-family: 'Source Sans 3';
}

.apply-coupon-btn:hover {
    background: #555;
}

.woocommerce-cart .product-name a {
    color: #474747;
    font-size: 19px;
    font-weight: 400;
    text-decoration: none;
}

.wc-proceed-to-checkout .checkout-button {
    width: 283px;
    padding: 10px 60px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 0 auto;
    font-size: 16px !important;
}

.wc-proceed-to-checkout .checkout-button::after {
    content: "\f107";
    transform: rotate(270deg);
}

.cross-sells {
    margin: 45px 0 25px;
}

/* Page Navigation Anchor */
.page-navigation-anchor {
    margin-bottom: 20px;
}

.page-navigation-anchor a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #4797A3 !important;
    text-decoration: none;
    font-size: 18px;
    font-weight: normal;
    transition: color 0.3s ease;
}

.page-navigation-anchor a:hover {
    color: #007cba;
}

.page-navigation-anchor svg {
    flex-shrink: 0;
}

.page-navigation-anchor svg path {
    stroke: #474747;
}

/* Mini Cart Dropdown */
.header-cart {
    position: relative;
}

.cart-toggle {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
}

.cart-count {
    background: #4797A3;
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
}

.mini-cart-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    width: 581px;
    background: #FFF;
    border-radius: 20px;
    box-shadow: 0 0 10px 0 rgba(71, 71, 71, 0.10);
    z-index: 9999;
    display: none;
    max-height: 727px;
    overflow-y: auto;
}

.mini-cart-dropdown.active {
    display: block;
}

.mini-cart-header {
    display: flex;
    padding: 15px 20px;
    align-items: center;
    justify-content: center;
    flex-direction: column-reverse;
}

.mini-cart-header h3 {
    margin: 0;
    color: #474747;
    text-align: center;
    font-family: "Source Sans 3";
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
}

.mini-cart-close {
    background: none;
    border: none;
    cursor: pointer;
    color: #999;
    padding: 0;
    display: flex;
    position: relative;
    font-size: 33px;
    width: 100%;
    justify-content: end;
    height: 20px;
    top: 0;
    align-items: center;
}

.mini-cart-close:hover {
    color: #474747;
    background-color: transparent;
}

.mini-cart-content {
    padding: 0 30px;
}

.mini-cart-items {
    max-height: 300px;
    overflow-y: auto;
    max-width: 530px;
    margin: 0 auto;
}

.mini-cart-item {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    border-top: 1px solid #E2E2E2;
    position: relative;
}

.mini-cart-item .item-image {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
}

.mini-cart-item .item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

.mini-cart-item .item-details {
    flex: 1;
}

.mini-cart-item .item-name {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 5px;
    line-height: 1.3;
}

.mini-cart-item .item-name a {
    color: #474747;
    text-decoration: none;
    font-size: 19px;
}

.mini-cart-item .item-name a:hover {
    color: #4797A3;
}

.mini-cart-item .item-quantity-price {
    font-size: 13px;
    color: #666;
}

.mini-cart-item .item-remove {
    flex-shrink: 0;
}

.mini-cart-item .item-remove a {
    color: #999;
    text-decoration: none;
    font-size: 18px;
    width: 20px;
    position: relative;
    top: -8px;
}

.mini-cart-item .item-remove a:before {
    content: 'x' !important;
    font-size: 13px;
    font-weight: 700;
}

.mini-cart-item .item-remove a:hover {
    color: #e74c3c;
}

.mini-cart-footer {
    padding: 20px 0;
    border-top: 1px solid #e2e2e2;
    background: #fff;
    max-width: 530px;
    margin: 0 auto;
}

.cart-total {
    text-align: center;
    margin-bottom: 15px;
    font-size: 16px;
}

.mini-cart-footer .cart-buttons {
    display: flex;
    gap: 10px;
    flex-direction: column;
    margin-top: 15px;
    border-top: 1px solid #e2e2e2;
    padding-top: 25px;
}

.cart-buttons .button {
    flex: 1;
    text-align: center;
    padding: 10px 15px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.cart-buttons .view-cart {
    background: #474747;
    color: #fff;
    border: none;
    border-radius: 0;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    max-width: 248px;
    margin: 0 auto;
    width: 100%;
}

.cart-buttons .checkout {
    background: #fff;
    color: #474747;
    border: 1px solid #474747;
    border-radius: 0;
    font-size: 16px;
    max-width: 248px;
    margin: 0 auto;
    width: 100%;
}

svg.secure-icon-mini-cart {
    margin: 25px auto 10px;
    display: block;
}

.cart-buttons .checkout:hover {
    color: #3a7a84;
    border-color: #3a7a84;
}

.mini-cart-empty {
    padding: 40px 20px;
    text-align: center;
}

.mini-cart-empty p {
    margin-bottom: 20px;
    color: #666;
}

.mini-cart-empty .button {
    background: #4797A3;
    color: white;
    padding: 10px 20px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}

.mini-cart-empty .button:hover {
    background: #3a7a84;
}

/* Responsive Design */
@media (max-width: 768px) {
    .mini-cart-dropdown {
        width: 300px;
        right: -20px;
    }
    
    .mini-cart-item {
        padding: 10px 15px;
        gap: 10px;
    }
    
    .mini-cart-item .item-image {
        width: 40px;
        height: 40px;
    }
    
    .cart-buttons {
        flex-direction: column;
    }
    
    .wc-cart-page-flex {
        flex-direction: column;
        gap: 20px;
    }
    
    .cart-sidebar {
        max-width: none;
    }
    
    .product-info-wrapper {
        flex-direction: column;
        gap: 10px;
        align-items: center;
    }

    .product-details {
        text-align: center;
    }
    
    .product-quantity-controls {
        margin: 20px auto;
    }

    .product-thumbnail {
        width: 150px;
        height: auto;
        margin-bottom: 25px;
    }

    table.shop_table_responsive tr td.product-info::before {
        content: none !important;
    }

    .cart-main-content .shop_table tbody > .cart_item:first-child {
        border-top: none;
    }
    
    .coupon-input-wrapper {
        flex-direction: column;
    }
    
    .apply-coupon-btn {
        width: 100%;
        position: relative;
        top: 0;
        left: 0;
        right: 0;
    }
}

/* Cart Loading States and Disabled Elements */
.cart_totals.cart-updating {
    position: relative;
}

ul#shipping_method li {
    padding-left: 0;
}

.cart-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border-radius: 8px;
}

.cart-spinner {
    width: 30px;
    height: 30px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #4797A3;
    border-radius: 50%;
    animation: cart-spin 1s linear infinite;
    margin-bottom: 10px;
}

@keyframes cart-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.cart-loading-overlay span {
    color: #474747;
    font-size: 14px;
    font-weight: 500;
}

/* Disabled shipping methods during cart update */
.cart-updating .shipping_method:disabled + label {
    opacity: 0.5;
    pointer-events: none;
}

.cart-updating .shipping-calculator-form {
    opacity: 0.5;
    pointer-events: none;
}

/* Disabled update cart button */
.update-cart-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    pointer-events: none;
}

/* Cart totals table during update */
.cart_totals.cart-updating .shop_table {
    opacity: 0.7;
}

.cart_totals.cart-updating .shop_table td,
.cart_totals.cart-updating .shop_table th {
    color: #999;
}

/* Quantity controls loading state */
.product-quantity-controls .quantity-input:disabled {
    background-color: #f5f5f5;
    color: #999;
    cursor: not-allowed;
}

.product-quantity-controls button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Checkout Review Order - Mini Cart Style (Unique to Checkout Page Only) */
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
    border: none;
    overflow: hidden;
    max-width: 100%;
    margin: 0 auto !important;
}

@media( min-width:1025px ) {
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
        max-width: 581px
    }
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead {
    background: #f8f9fa;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead th {
    color: #474747;
    font-family: "Source Sans 3";
    font-size: 18px;
    font-weight: 700;
    padding: 20px 30px;
    border: none;
    text-align: left;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead th.product-image {
    width: 80px;
    text-align: center;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody tr.cart_item {

}

tr.cart_item.checkout-cart-item > td {
    background-color: #f8f8f8 !important;
    box-shadow: none !important;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot td {
    background-color: #f8f8f8;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td {
    padding: 20px 10px;
    border: none;
    vertical-align: middle;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td.product-image {
    width: 80px;
    text-align: center;
    padding: 15px;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-product-image {
    width: 126px;
    height: 100%;
    margin: 0 auto;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated {
    margin-bottom: 25px !important;
    display: block;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

table.woocommerce-checkout-review-order-table .product-name {
    width: 100% !important;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-product-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td.product-name {
    color: #474747;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td.product-name .product-quantity {
    color: #666;
    font-size: 14px;
    font-weight: normal;
    margin-left: 8px;
    display: inline-block;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-product-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-cart-item {
    transition: background-color 0.2s ease;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td.product-total {
    color: #474747;
    font-size: 16px;
    font-weight: 600;
    text-align: right;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot {
    background: #fff;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot td {
    padding: 5px 20px;
    border: none;
    color: #474747;
    font-size: 16px;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot th {
    font-weight: 600;
    text-align: left;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot td {
    text-align: right;
    font-weight: 500;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    font-size: 18px;
    font-weight: 700;
    color: #474747;
    padding: 20px 30px;
    padding-left: 20px;
    padding-right: 20px;
}

.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.cart-discount,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.shipping,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.fee,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.tax-rate,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.tax-total {
    background: #fafafa;
}

.woocommerce-billing-fields {
    background: #F8F8F8;
    padding: 30px;
    margin-bottom: 30px;
}

div#payment {
    background: #F8F8F8;
    padding: 30px;
    margin-bottom: 30px;
}

.woocommerce-checkout-payment ul.wc_payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-checkout-payment ul.wc_payment_methods li label {
    margin: 0;
    background: #f8f8f8;
    padding: 0 !important;
}
.woocommerce-checkout-payment ul.wc_payment_methods li {
    padding: 0;
}

.woocommerce-privacy-policy-text p {
    font-size: 15px;
    color: #474747;
}

.woocommerce-terms-and-conditions-wrapper .validate-required {
    margin-top: 15px;
    margin-bottom: 15px;
}

.woocommerce-terms-and-conditions-wrapper .validate-required label {
    font-size: 15px;
}

.place-order__btn-wrapper #place_order {
    font-family: "Source Sans 3";
    font-size: 16px !important;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    max-width: 223px;
}

.place-order__btn-wrapper #place_order:before {
    content: '';
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="12" viewBox="0 0 10 12" fill="none"><path d="M1.25 12C0.90625 12 0.611979 11.8881 0.367188 11.6643C0.122396 11.4405 0 11.1714 0 10.8571V5.14286C0 4.82857 0.122396 4.55952 0.367188 4.33571C0.611979 4.11191 0.90625 4 1.25 4H1.875V2.85714C1.875 2.06667 2.17969 1.39286 2.78906 0.835714C3.39844 0.278571 4.13542 0 5 0C5.86458 0 6.60156 0.278571 7.21094 0.835714C7.82031 1.39286 8.125 2.06667 8.125 2.85714V4H8.75C9.09375 4 9.38802 4.11191 9.63281 4.33571C9.8776 4.55952 10 4.82857 10 5.14286V10.8571C10 11.1714 9.8776 11.4405 9.63281 11.6643C9.38802 11.8881 9.09375 12 8.75 12H1.25ZM5 9.14286C5.34375 9.14286 5.63802 9.03095 5.88281 8.80714C6.1276 8.58333 6.25 8.31429 6.25 8C6.25 7.68571 6.1276 7.41667 5.88281 7.19286C5.63802 6.96905 5.34375 6.85714 5 6.85714C4.65625 6.85714 4.36198 6.96905 4.11719 7.19286C3.8724 7.41667 3.75 7.68571 3.75 8C3.75 8.31429 3.8724 8.58333 4.11719 8.80714C4.36198 9.03095 4.65625 9.14286 5 9.14286ZM3.125 4H6.875V2.85714C6.875 2.38095 6.69271 1.97619 6.32812 1.64286C5.96354 1.30952 5.52083 1.14286 5 1.14286C4.47917 1.14286 4.03646 1.30952 3.67188 1.64286C3.30729 1.97619 3.125 2.38095 3.125 2.85714V4Z" fill="white"/></svg>');
    width: 15px;
    height: 11px;
    position: relative;
    background-repeat: no-repeat;
    display: inline-block;
}

#payment .payment_methods > li .payment_box, 
#payment .place-order,
fieldset#wc-acceptbluecard-cc-form {
    background-color: #f8f8f8 !important;
}

#payment .place-order {
    margin-bottom: 0;
    float: none;
    width: 100%;
    margin-top: 1.617924em !important;
    padding: 0 !important;
}

#payment .payment_methods li .payment_box {
    padding: 0 !important;
}

tr.checkout-coupon-accordion-row td {
    padding: 0 !important;
}

.woocommerce-shipping-fields {
    padding: 45px 30px 25px 30px;
    background: #f5f5f5;
}

.woocommerce-additional-fields {
    margin-top: 0;
    background: #f8f8f8;
    padding: 30px;
    margin-bottom: 30px;
    padding-top: 0;
}

.woocommerce-shipping-fields .show-password-input {
    position: absolute;
    right: 1px;
    top: 1px;
    padding: .618em;
    line-height: 1.818;
    cursor: pointer;
}

fieldset#wc-acceptbluecard-cc-form,
#payment .payment_methods li .payment_box {
    padding-top: 0 !important;
}

.place-order__btn-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
}

#payment .payment_methods > li:not(.woocommerce-notice) {
    background-color: #F8F8F8;
}

#payment .payment_methods li.wc_payment_method>input[type=radio]:first-child:checked+label::before {
    content: '' !important;
    border: 1px solid #E2E2E2;
    border-radius: 99px;
    width: 14px;
    height: 14px;
    background: #4797A3 !important;
    z-index: 11;
    position: relative;
    left: 2px;
    top: 3px;
}

.form-row.woocommerce-invalid input.input-text {
    box-shadow: inset 4px 0 0 #D70C0C;
    border: 1px solid #D70C0C;
}

.form-row .checkout-inline-error-message {
    color: #D70C0C;
    font-family: "Source Sans 3";
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    text-transform: uppercase;
    margin-top: 5px;
}

div#payment ul > li > label:after {
    background: #fff;
    position: absolute;
    content: '';
    width: 20px;
    height: 20px;
    border-radius: 99px;
    left: -1px;
    top: 0px;
    border: 1px solid #E2E2E2;
}

#payment .payment_methods li input[type=radio]:first-child:checked+label:before {
    color: #4797A3 !important;
}

.order-summary-label h3 {
    font-size: 16px;
}

.order-summary-label {
    display: flex;
    justify-content: space-between;
    padding: 20px 20px 10px 20px;
}

.order-summary-label a {
    font-size: 16px;
}

.order-summary-label a svg {
    height: 13px;
    width: 13px;
}

/* Responsive adjustments for checkout review order */
@media (max-width: 768px) {
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
        max-width: 100%;
        border-radius: 10px;
    }
    
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead th,
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td,
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot th,
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot td {
        padding: 15px 20px;
        font-size: 14px;
    }
    
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
        font-size: 16px;
        padding: 18px 20px;
    }
    
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody td.product-image {
        width: 60px;
        padding: 10px;
    }
    
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .checkout-product-image {
        width: 45px;
        height: 45px;
    }
    
    .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead th.product-image {
        width: 60px;
        padding: 15px 10px;
    }
}

/* Checkout Coupon Accordion */
.coupon-accordion-toggle {
    width: 100%;
    background: #f8f8f8 !important;
    border: none;
    padding: 15px 20px;
    text-align: left;
    font-size: 16px;
    cursor: pointer;
    color: #474747;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    border-top: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    justify-content: space-between;
    margin-bottom: 12px;
    margin-top: 15px;
}

.coupon-accordion-toggle:hover {
    color: #474747;
}

div#order_review {
    background: #f8f8f8;
    width: 100%;
}

body .col2-set .form-row-last {
    width: 100%;
}

#payment .payment_methods li .payment_box fieldset .form-row {
    width: 100%;
}

@media( min-width: 1025px ) {
    div#order_review {
        width: 41.1764705882%;
    }

    #payment .payment_methods li .payment_box fieldset .form-row,
    body .col2-set .form-row-last {
        width: 44.4444444444%;
    }
    
}

#payment .payment_methods #wc-acceptbluecard-cc-form .form-row-wide {
    width: 100%;
}

.coupon-accordion-toggle[aria-expanded="true"] {
    background: #e8ecef;
}

.coupon-accordion-content {
    padding: 18px 24px 8px 24px;
    border-radius: 0;
    background: #f8f9fa;
    border-bottom: 1px solid #e2e2e2;
    display: none;
    margin-bottom: 25px;
}

.coupon-accordion-content.active {
    display: block;
}

.coupon-accordion-toggle svg {
    flex-shrink: 0;
    transition: transform 0.2s;
    transform: rotate(90deg);
}

.coupon-accordion-toggle[aria-expanded="true"] svg {
    transform: rotate(-90deg);
}

/* Custom WooCommerce Checkbox Styling */
.woocommerce-form__label-for-checkbox.checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox,
.woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox.checkbox,
.woocommerce-privacy-policy-text .woocommerce-form__label-for-checkbox.checkbox {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    line-height: 1.5;
    color: #474747;
    padding-left: 0 !important;
}

/* Hide the default checkbox */
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}

/* Custom checkbox container */
.woocommerce-SavedPaymentMethods-saveNew label {
    position: relative;
}

.woocommerce-SavedPaymentMethods-saveNew label::before,
.woocommerce-form__label-for-checkbox.checkbox::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #E2E2E2;
    border-radius: 3px;
    background: #fff;
    transition: all 0.3s ease;
    flex-shrink: 0;
    margin-top: 0;
}

.woocommerce-SavedPaymentMethods-saveNew label::before {
    position: relative;
    top: 2px;
    margin-right: 10px;
}

/* Custom checkmark */
.woocommerce-form__label-for-checkbox.checkbox::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 3px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: all 0.2s ease;
    opacity: 0;
}

/* Checked state */
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked + span::before,
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked::before {
    background: #4797A3;
    border-color: #4797A3;
}

/* For labels where the checkbox is inside */
.woocommerce-form__label-for-checkbox.checkbox:has(input[type="checkbox"]:checked)::before {
    background: #4797A3;
    border-color: #4797A3;
}

.woocommerce-form__label-for-checkbox.checkbox:has(input[type="checkbox"]:checked)::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

/* Alternative approach for older browsers */
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked ~ *::before,
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked + *::before {
    background: #4797A3;
    border-color: #4797A3;
}

.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked ~ *::after,
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:checked + *::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

/* Hover state */
.woocommerce-form__label-for-checkbox.checkbox:hover::before {
    border-color: #4797A3;
    background: #f8f9fa;
}

/* Focus state for accessibility */
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:focus + span::before,
.woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"]:focus::before,
.woocommerce-form__label-for-checkbox.checkbox:has(input[type="checkbox"]:focus)::before {
    outline: 2px solid #4797A3;
    outline-offset: 2px;
}

/* Specific styling for terms and conditions */
.woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox.checkbox {
    margin-bottom: 15px;
}

/* Specific styling for privacy policy */
.woocommerce-privacy-policy-text .woocommerce-form__label-for-checkbox.checkbox {
    margin-bottom: 10px;
}

/* Ensure text wraps properly */
.woocommerce-form__label-for-checkbox.checkbox span {
    word-wrap: break-word;
}

/* Payment method checkboxes */
.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    padding: 15px 20px;
    margin: 0;
    background: #f8f8f8;
    border-radius: 0;
}

.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}

/* Custom radio button for payment methods */
.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) label::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #E2E2E2;
    border-radius: 50%;
    background: #fff;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) label::after {
    content: '';
    position: absolute;
    left: 26px;
    top: 21px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    transform: scale(0);
    transition: all 0.2s ease;
}

/* Checked state for payment methods */
.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) input[type="radio"]:checked + label::before {
    background: #4797A3;
    border-color: #4797A3;
}

.woocommerce-checkout #payment .payment_methods li:not(.wc_payment_method) input[type="radio"]:checked + label::after {
    transform: scale(1);
}

h3#ship-to-different-address .woocommerce-form__label-for-checkbox.checkbox:has(input[type="checkbox"]:checked)::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

h3#ship-to-different-address .woocommerce-form__label-for-checkbox.checkbox::after {
    content: '';
    position: absolute;
    left: initial;
    top: 3px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: all 0.2s ease;
    opacity: 0;
    right: 7px;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated input {
    position: absolute;
    opacity: 0;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated input[type="checkbox"]:checked + label::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated label::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 1px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: all 0.2s ease;
    opacity: 0;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated input[type="checkbox"]:checked + label::before {
    background: #4797A3;
    border-color: #4797A3;
}

p.form-row.woocommerce-SavedPaymentMethods-saveNew.woocommerce-validated:hover label::before {
    border-color: #4797A3;
    background: #f8f9fa;
    cursor: pointer;
}

/* Custom checkbox styling for followup-checkout */
.followup-checkout .form-row label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1.5;
    color: #474747;
    padding-left: 0;
    margin-top: 15px;
    font-weight: 400 !important;
}

/* Hide the default checkbox */
.followup-checkout .form-row label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}

/* Custom checkbox container */
.followup-checkout .form-row label::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #E2E2E2;
    border-radius: 3px;
    background: #fff;
    transition: all 0.3s ease;
    flex-shrink: 0;
    margin-top: 0;
}

/* Custom checkmark */
.followup-checkout .form-row label::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 5px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: all 0.2s ease;
    opacity: 0;
}

/* Mobile adjustments for checkmark */
@media (max-width: 768px) {
    .followup-checkout .form-row label::after {
        top: 15px;
    }
}

/* Checked state */
.followup-checkout .form-row label input[type="checkbox"]:checked + *::before,
.followup-checkout .form-row label:has(input[type="checkbox"]:checked)::before {
    background: #4797A3;
    border-color: #4797A3;
}

.followup-checkout .form-row label input[type="checkbox"]:checked + *::after,
.followup-checkout .form-row label:has(input[type="checkbox"]:checked)::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

/* Hover state */
.followup-checkout .form-row label:hover::before {
    border-color: #4797A3;
    background: #f8f9fa;
}

/* Focus state for accessibility */
.followup-checkout .form-row label input[type="checkbox"]:focus::before,
.followup-checkout .form-row label:has(input[type="checkbox"]:focus)::before {
    outline: 2px solid #4797A3;
    outline-offset: 2px;
}

/* Ensure proper spacing */
.followup-checkout .form-row {
    margin-bottom: 15px;
}

.followup-checkout .form-row-wide {
    width: 100%;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle {
    display: none;
}

.woocommerce-checkout .woocommerce input[type=text], 
.woocommerce-checkout .woocommerce input[type=number], 
.woocommerce-checkout .woocommerce input[type=email], 
.woocommerce-checkout .woocommerce input[type=tel], 
.woocommerce-checkout .woocommerce input[type=url], 
.woocommerce-checkout .woocommerce input[type=password], 
.woocommerce-checkout .woocommerce input[type=search], 
.woocommerce-checkout .woocommerce textarea, 
.woocommerce-checkout .woocommerce .input-text {
    border: 1px solid #E2E2E2;
    background: #FFF;
    padding: 15px;
    font-family: "Source Sans 3";
    font-size: 16px;
    font-style: normal;
    color: #474747;
    box-shadow: none;
}

div#customer_details {
    width: 100%;
}

.col2-set .form-row-first {
    width: 100% !important;
    margin-right: 0% !important;
}



@media( min-width: 1025px ) {
    div#customer_details {
        width: 55.941176%;
        float: left;
        margin-right: 1.882353%;
    }

    .col2-set .form-row-first {
        width: 52.444444% !important;
        float: left;
        margin-right: 2.111111% !important;
    }
}

/* Select2 Custom Styling for Checkout - Matching Choices.js Design */
.woocommerce-checkout .select2-container {
    position: relative;
    margin-bottom: 0;
    width: 100% !important;
}

.woocommerce-checkout .select2-selection--single {
    background-color: #fff;
    border: 1px solid #E2E2E2;
    border-radius: 0;
    color: #474747;
    cursor: pointer;
    display: inline-block;
    font-size: 16px;
    min-height: 44px;
    overflow: hidden;
    padding: 7.5px 12px;
    position: relative;
    vertical-align: top;
    width: 100%;
    line-height: 28px;
}

.woocommerce-checkout .select2-container--default .select2-selection--single:focus,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #4797A3;
    outline: none;
    box-shadow: 0 0 0 2px rgba(71, 151, 163, 0.2);
}

.woocommerce-checkout .select2-selection__rendered {
    display: inline-block;
    padding: 0;
    width: 100%;
    color: #474747;
}

.woocommerce-checkout .select2-selection__placeholder {
    color: #999;
    opacity: 1;
}

.woocommerce-checkout .select2-dropdown {
    background-color: #fff;
    border: 1px solid #E2E2E2;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 9999 !important;
    max-height: 300px;
    overflow-y: auto;
}

.woocommerce-checkout .select2-results__option {
    padding: 12px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}

.woocommerce-checkout .select2-results__option:last-child {
    border-bottom: none;
}

.woocommerce-checkout .select2-results__option--highlighted {
    background-color: #4797A3;
    color: #fff;
}

.woocommerce-checkout .select2-results__option:hover {
    background-color: #f8f9fa;
}

.woocommerce-checkout .select2-results__option--highlighted:hover {
    background-color: #4797A3;
    color: #fff;
}

.woocommerce-checkout .select2-search--dropdown {
    background-color: transparent;
    border: 0;
    font-size: 16px;
    margin-bottom: 0;
    padding: 4px 0;
    width: 100%;
}

.woocommerce-checkout .select2-search__field {
    background-color: transparent;
    border: 0;
    font-size: 16px;
    margin-bottom: 0;
    padding: 8px 12px;
    width: 100%;
    outline: none;
}

/* Dropdown arrow styling */
.woocommerce-checkout .select2-selection__arrow {
    height: 44px;
    position: absolute;
    top: 0;
    right: 12px;
    width: 20px;
}

.woocommerce-checkout .select2-selection__arrow b {
    display: none;
}

.woocommerce-checkout .select2-selection__arrow:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 10px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="10" viewBox="0 0 16 10" fill="none"><path d="M13.8021 0L8 5.68947L2.19792 0L0 2.15526L8 10L16 2.15526L13.8021 0Z" fill="%23474747"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection__arrow:after {
    transform: translate(-50%, -50%) rotate(180deg);
}

/* Loading state */
.woocommerce-checkout .select2-container--default.select2-container--loading .select2-selection__arrow {
    animation: spin 1s linear infinite;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #4797A3;
    border-radius: 50%;
    height: 16px;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
}

/* Disabled state */
.woocommerce-checkout .select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.6;
}

/* No results message */
.woocommerce-checkout .select2-results__option--no-results {
    color: #999;
    font-style: italic;
    padding: 12px;
    text-align: center;
}

/* Ensure proper spacing in form rows */
.woocommerce-checkout .form-row .select2-container {
    margin-bottom: 0;
}

/* Fix for select elements that might be hidden */
.woocommerce-checkout .select2-container + select {
    display: none !important;
}

/* Ensure the select2 container takes full width */
.woocommerce-checkout .form-row .select2-container {
    width: 100% !important;
}

/* Better focus states */
.woocommerce-checkout .select2-container:focus-within .select2-selection--single {
    border-color: #4797A3;
    box-shadow: 0 0 0 2px rgba(71, 151, 163, 0.2);
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .woocommerce-checkout .select2-dropdown {
        max-height: 200px;
    }
    
    .woocommerce-checkout .select2-selection--single {
        font-size: 16px; /* Prevent zoom on iOS */
    }
    
    .woocommerce-checkout .select2-search__field {
        font-size: 16px; /* Prevent zoom on iOS */
    }
}

/* Choices.js Custom Styling for Checkout */
.woocommerce-checkout .choices {
    position: relative;
    margin-bottom: 0;
}

.woocommerce-checkout .choices__inner {
    background-color: #fff;
    border: 1px solid #E2E2E2;
    border-radius: 0;
    color: #474747;
    cursor: pointer;
    display: inline-block;
    font-size: 16px;
    min-height: 44px;
    overflow: hidden;
    padding: 7.5px 12px;
    position: relative;
    vertical-align: top;
    width: 100%;
}

.woocommerce-checkout .choices__inner:focus {
    border-color: #4797A3;
    outline: none;
    box-shadow: 0 0 0 2px rgba(71, 151, 163, 0.2);
}

.woocommerce-checkout .choices__list--single {
    display: inline-block;
    padding: 4px 16px 4px 4px;
    width: 100%;
}

.woocommerce-checkout .choices__item--selectable {
    cursor: pointer;
}

.woocommerce-checkout .choices__item--selectable.is-highlighted {
    background-color: #4797A3;
    color: #fff;
}

.woocommerce-checkout .choices__list--dropdown {
    background-color: #fff;
    border: 1px solid #E2E2E2;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 9999 !important;
    max-height: 300px;
    overflow-y: auto;
}

/* Ensure dropdown is visible when active */
.woocommerce-checkout .choices__list--dropdown.is-active {
    visibility: visible !important;
    display: block !important;
    opacity: 1 !important;
}

/* Force visibility for choices dropdown */
.woocommerce-checkout .choices.is-open .choices__list--dropdown {
    visibility: visible !important;
    display: block !important;
}

.woocommerce-checkout .choices__list--dropdown .choices__item--selectable {
    padding: 12px;
    border-bottom: 1px solid #f0f0f0;
}

.woocommerce-checkout .choices__list--dropdown .choices__item--selectable:last-child {
    border-bottom: none;
}

.woocommerce-checkout .choices__list--dropdown .choices__item--selectable:hover {
    background-color: #f8f9fa;
}

.woocommerce-checkout .choices__input {
    background-color: transparent;
    border: 0;
    font-size: 16px;
    margin-bottom: 0;
    padding: 4px 0;
    width: 100%;
}

.woocommerce-checkout .choices__input:focus {
    outline: none;
}

.woocommerce-checkout .choices__placeholder {
    color: #999;
    opacity: 1;
}

/* Dropdown arrow styling */
.woocommerce-checkout .choices[data-type*="select-one"]:after {
    border-color: #474747 transparent transparent transparent;
    border-style: solid;
    border-width: 5px 5px 0 5px;
    content: "";
    height: 0;
    pointer-events: none;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
}

.woocommerce-checkout .choices.is-open[data-type*="select-one"]:after {
    border-color: transparent transparent #474747 transparent;
    border-width: 0 5px 5px 5px;
}

/* Loading state */
.woocommerce-checkout .choices.is-loading:after {
    animation: spin 1s linear infinite;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #4797A3;
    border-radius: 50%;
    content: "";
    height: 16px;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
}

@keyframes spin {
    0% { transform: translateY(-50%) rotate(0deg); }
    100% { transform: translateY(-50%) rotate(360deg); }
}

/* Disabled state */
.woocommerce-checkout .choices.is-disabled .choices__inner {
    background-color: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.6;
}

/* Search input styling */
.woocommerce-checkout .choices__input--cloned {
    background-color: transparent;
    border: 0;
    font-size: 16px;
    margin: 0;
    padding: 4px 0;
}

/* No results message */
.woocommerce-checkout .choices__item--choice.has-no-results {
    color: #999;
    font-style: italic;
    padding: 12px;
    text-align: center;
}

/* Ensure proper spacing in form rows */
.woocommerce-checkout .form-row .choices {
    margin-bottom: 0;
}

.woocommerce-form-login-toggle-fx {
    background: #F8F8F8;
    padding: 25px;
    display: flex;
    gap: 10px;
}

body.woocommerce-checkout .woocommerce-form.woocommerce-form-login.login {
    background: #f8f8f8;
    padding: 25px;
    margin-top: 30px;
}


#customer_details #ship-to-different-address label,
#customer_details .form-row label span,
#customer_details .form-row label {
    color: #474747;
    font-family: "Source Sans 3";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
}

#customer_details #ship-to-different-address label span,
#customer_details .form-row label span {
    font-weight: 400 !important;
}

ul.wc_payment_methods.payment_methods.methods li label {
    font-size: 16px;
}

#payment .payment_methods li .payment_box .wc-credit-card-form-card-number, 
#payment .payment_methods li .payment_box .wc-credit-card-form-card-expiry, 
#payment .payment_methods li .payment_box .wc-credit-card-form-card-cvc {
    border: 1px solid #E2E2E2 !important;
    /* background: #FFF !important; */
    padding: 15px !important;
    font-family: "Source Sans 3" !important;
    font-size: 16px !important;
    font-style: normal !important;
    color: #474747 !important;
    box-shadow: none !important;
}

#payment .payment_methods li .payment_box fieldset {
    width: 100%;
}

ul.wc_payment_methods.payment_methods.methods li label {
    display: flex !important;
}

ul.wc_payment_methods.payment_methods.methods li label .card-icons_wrapper {
    margin-left: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

ul.wc_payment_methods.payment_methods.methods li label .card-icons_wrapper img {
    width: 35px;
    height: 35px;
    object-fit: contain;
}

@media( max-width: 600px ) {
    ul.wc_payment_methods.payment_methods.methods li label {
        flex-wrap: wrap;
    }

    ul.wc_payment_methods.payment_methods.methods li label .card-icons_wrapper {
        margin-left: 0;
        margin-top: 10px;
        flex: 0 0 100%;
    }

    fieldset#wc-acceptbluecard-cc-form p.form-row.form-row-first.woocommerce-validated, 
    fieldset#wc-acceptbluecard-cc-form p.form-row.form-row-last.woocommerce-validated {
        width: 40%;
        max-width: 50%;
        float: left;
    }

    fieldset#wc-acceptbluecard-cc-form p.form-row.form-row-last.woocommerce-validated {
        margin-left: 15px;
    }
}

label.woocommerce-form__label.woocommerce-form__label-for-checkbox.checkbox abbr.required,
li.wc_payment_method.payment_method_paypal label .card-icons_wrapper {
    display: none !important;
}

.woocommerce-NoticeGroup ul.woocommerce-error:before {
    content: none;
}

.woocommerce-NoticeGroup ul.woocommerce-error {
    padding-left: .5em;
}

.woocommerce-NoticeGroup ul.woocommerce-error li {
    margin-left: 0;
    padding-left: 0;
}

body .select2-container--default .select2-selection--single {
    border: 1px solid #E2E2E2;
    border-radius: 0;
}

body .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #474747;
}

body .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px;
    position: absolute;
    top: 0px;
    right: 1px;
    border-left: 1px solid #e2e2e2;
    padding-left: 10px;
    width: 40px;
}

.montana-catalog-free__wrapper {
    margin: 0 25px 25px;
    border-bottom: 1px solid #E2E2E2;
    padding-bottom: 25px;
}

.product-catalog-free .product-catalog-free-text {
    display: block;
    font-size: 19px;
    font-style: normal;
    font-weight: 400;
}

.product-catalog-free .product-catalog-free-text .product-catalog-label-text {
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
}

.woocommerce-notices-wrapper {
    margin-bottom: 25px;
}

/* Custom checkbox styling for catalog checkbox - replicated from followup-checkout */
.product-catalog-free label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1.5;
    color: #474747;
    padding-left: 0;
    margin-top: 15px;
    font-weight: 400 !important;
}

/* Hide the default checkbox */
.product-catalog-free label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}

/* Custom checkbox container */
.product-catalog-free label::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #E2E2E2;
    border-radius: 3px;
    background: #fff;
    transition: all 0.3s ease;
    flex-shrink: 0;
    margin-top: 0;
}

/* Custom checkmark */
.product-catalog-free label::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 5px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: all 0.2s ease;
    opacity: 0;
}

/* Checked state */
.product-catalog-free label input[type="checkbox"]:checked + *::before,
.product-catalog-free label:has(input[type="checkbox"]:checked)::before {
    background: #4797A3;
    border-color: #4797A3;
}

.product-catalog-free label input[type="checkbox"]:checked + *::after,
.product-catalog-free label:has(input[type="checkbox"]:checked)::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

/* Hover state */
.product-catalog-free label:hover::before {
    border-color: #4797A3;
    background: #f8f9fa;
}

/* Focus state for accessibility */
.product-catalog-free label input[type="checkbox"]:focus::before,
.product-catalog-free label:has(input[type="checkbox"]:focus)::before {
    outline: 2px solid #4797A3;
    outline-offset: 2px;
}

/* Styling for disabled catalog product quantity controls */
.catalog-product-row .product-quantity-controls {
    position: relative;
}

.catalog-product-row .qty:disabled {
    background-color: #f5f5f5 !important;
    cursor: not-allowed !important;
    color: #999 !important;
    border-color: #ddd !important;
}

.catalog-product-row .quantity-plus:disabled,
.catalog-product-row .quantity-minus:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    background-color: #f5f5f5 !important;
    border-color: #ddd !important;
}

.catalog-quantity-note {
    color: #666 !important;
    font-size: 12px !important;
    margin-top: 4px !important;
    font-style: italic;
}

/* Visual indicator for catalog products in cart */
.catalog-product-row {
    position: relative;
}

.catalog-product-row .product-thumbnail::before {
    content: '🆓';
    position: absolute;
    top: 10px;
    left: 10px;
    font-size: 14px;
    z-index: 1;
}

.catalog-product-row .catalog-quantity-note,
.catalog-product-row .product-remove {
    display: none;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .woocommerce-checkout .choices__list--dropdown {
        max-height: 200px;
    }
    
    .woocommerce-checkout .choices__inner {
        font-size: 16px; /* Prevent zoom on iOS */
    }
}

/* Cart Related Products Styling */
.cart-related-products {
    margin-top: 40px;
    padding: 30px 0 0;
}

.related-products-grid.columns-4 ul:before {
    content: none;
}

.related-products-grid.columns-4 ul li {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1;
}

.cart-related-products .related-products-title {
    text-align: left;
    margin-bottom: 30px;
    font-size: 29px;
    font-weight: 700;
    color: #000;
}

.cart-related-products .related-products-grid {
    max-width: 1200px;
    margin: 0 auto;
}

.cart-related-products .products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin: 0;
    padding: 0;
}

/* When cross-sells are present, show 2 columns in a scrollable row */
.cart-related-products.has-cross-sells .products {
    display: flex;
    overflow-x: auto;
    gap: 20px;
    grid-template-columns: none;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.cart-related-products.has-cross-sells .product {
    flex: 0 0 calc(50% - 10px);
    min-width: calc(50% - 10px);
}

/* When no cross-sells, show 4 columns */
.cart-related-products.no-cross-sells .products {
    grid-template-columns: repeat(4, 1fr);
}

.cart-related-products .product {
    background: #fff;
    padding: 15px;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
}

.cart-related-products .product .product_type_simple.add_to_cart_button {
    background: #EEE;
    color: #474747;
    border-radius: 0;
}

.cart-related-products .product:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border-color: #ccc;
}

.cart-related-products .product img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    margin-bottom: 15px;
    min-height: 255px;
    object-fit: contain;
}

.cart-related-products .product .woocommerce-loop-product__title {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 10px;
    line-height: 1.4;
}

.cart-related-products .product .price {
    font-size: 18px;
    font-weight: 600;
    color: #333;
    margin-bottom: 15px;
}

.cart-related-products .product .price del {
    color: #999;
    font-weight: normal;
}

.cart-related-products .product .price ins {
    text-decoration: none;
    color: #e74c3c;
}

.cart-related-products .product .button {
    background: #474747;
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 0;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease;
    width: 140px;
}

.cart-related-products .product .button:hover {
    background: #555;
    color: #fff;
}

/* Mobile responsiveness for related products */
@media (max-width: 768px) {
    .cart-related-products .products,
    .cart-related-products.has-cross-sells .products,
    .cart-related-products.no-cross-sells .products {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    
    .cart-related-products .related-products-title {
        font-size: 24px;
        margin-bottom: 20px;
    }
    
    .cart-related-products {
        margin-top: 30px;
        padding: 20px 0;
    }
}

@media (max-width: 480px) {
    .cart-related-products .products,
    .cart-related-products.has-cross-sells .products,
    .cart-related-products.no-cross-sells .products {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .cart-related-products .product {
        padding: 12px;
    }
}

a.button.product_type_simple.add_to_cart_button.ajax_add_to_cart {
    display: inline-block;
}

/* Reorder checkout sections on mobile */
@media (max-width: 768px) {
    /* Make the checkout form a flex container */
    form.checkout.woocommerce-checkout {
        display: flex;
        flex-direction: column;
    }
    
    /* Use display: contents to flatten customer_details so its children become direct flex items */
    #customer_details {
        display: contents;
    }
    
    /* Billing section appears first */
    #customer_details .col-1 {
        order: 1;
    }
    
    /* Order summary appears second */
    #order_review {
        order: 2;
        margin-bottom: 30px;
    }
    
    /* Shipping/Payment section appears last */
    #customer_details .col-2 {
        order: 3;
    }
}

