/* xl - DESKTOP STYLES */ 
/* ==========================================================================
   Structural Multi-Step Grid Fixes (Prevents Sidebar Dropdown Issue)
   ========================================================================== */

.woocommerce-checkout .ms-checkout-container {
    display: flex !important;
    gap: 35px !important;
    max-width: 1200px !important;
    margin: 40px auto !important;
    padding: 0 15px !important;
    align-items: flex-start !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
}

.ms-checkout-container form.woocommerce-checkout {
    display: flex !important;
    flex-flow: row wrap !important;
    width: 100% !important;
    gap: 30px !important;
    float: none !important;
}

.ms-checkout-left-column { 
    flex: 1 !important; 
    min-width: 0 !important;
    float: none !important;
}

.ms-checkout-right-column { 
    width: 380px !important; 
    flex-shrink: 0 !important;
    position: sticky !important; 
    top: 30px !important; 
    z-index: 99 !important;
    float: none !important;
    display: block !important;
}

/* ==========================================================================
   Progress Step Tracker Navbar Bar
   ========================================================================== */
.ms-checkout-progress-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 850px;
    margin: 30px auto;
    padding: 0 15px;
}
.ms-step-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #b3b3b3;
    font-weight: 600;
    font-size: 13px;
    text-align: center;
}
.ms-step-node.active { color: #111; }
.ms-step-node .step-number {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #f5f5f5;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #e2e2e2;
}
.ms-step-node.active .step-number {
    background: #e66ba3;
    color: #fff;
    border-color: #e66ba3;
}
.ms-step-line {
    flex-grow: 1;
    height: 2px;
    background: #eaeaea;
    margin: 0 10px;
    position: relative;
    top: -12px;
}

.ms-checkout-step-panel { display: none; }
.ms-checkout-step-panel.active { display: block; }

.ms-checkout-container.confirmation-step-active form.woocommerce-checkout { display: block !important; }
.ms-checkout-container.confirmation-step-active .ms-checkout-right-column { display: none !important; }
.ms-checkout-container.confirmation-step-active .ms-checkout-left-column { width: 100% !important; }

.ms-step-heading { font-size: 20px; font-weight: 700; margin-bottom: 5px; color: #333; letter-spacing: -0.3px; }
.ms-step-subheading { color: #333; margin-bottom: 25px; font-size: 14px; }

/* ==========================================================================
   Product Rows - Dynamic Inputs Modification Styles
   ========================================================================== */
.ms-order-review-products-box { border: 1px solid #e2e2e2; border-radius: 8px; padding: 20px; margin-bottom: 25px; background: #fff; }
.ms-review-product-row { display: flex; align-items: center; gap: 20px; padding-bottom: 15px; margin-bottom: 15px; border-bottom: 1px solid #f2f2f2; }
.ms-review-product-row:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.ms-prod-img img { width: 65px; height: auto; border-radius: 6px; border: 1px solid #eee; display: block; }
.ms-prod-meta { flex-grow: 1; }
.ms-prod-name { font-weight: 700; color: #222; font-size: 15px; display: block; margin-bottom: 4px; }
.ms-prod-details { font-size: 13px; color: #666; }

/* Inputs Adjustment elements row */
.ms-prod-actions-row { display: flex; align-items: center; gap: 15px; margin-top: 10px; }
.ms-qty-select { width: 70px !important; height: 34px !important; padding: 0 8px !important; border-radius: 6px !important; border: 1px solid #ccc !important; font-size: 14px !important; background: #fff !important; cursor: pointer; color: #333 !important; }

.ms-remove-item-btn { 
    background: none !important; 
    border: none !important; 
    padding: 5px !important; 
    cursor: pointer !important; 
    display: inline-flex !important; 
    align-items: center !important; 
    justify-content: center !important; 
    transition: color 0.2s; 
}
.ms-remove-item-btn svg {
    width: 18px;
    height: 18px;
    stroke: #aaaaaa;
    fill: none;
    transition: stroke 0.2s;
}
.ms-remove-item-btn:hover svg { 
    stroke: #ff3366; 
}

.ms-prod-total { font-weight: 700; color: #222; font-size: 16px; text-align: right; min-width: 80px; }

/* Extra Services Options Checkboxes Styling */
.extra-services-checkout-wrapper { margin-top: 35px; margin-bottom: 25px; }
.extra-services-title { font-size: 18px; font-weight: 700; margin-bottom: 5px; }
.extra-services-subtitle { color: #666; margin-bottom: 15px; font-size: 14px; }
.service-option-card { display: flex; align-items: center; justify-content: space-between; border: 1px solid #e2e2e2; border-radius: 8px; padding: 16px; margin-bottom: 12px; background: #fff; }
.service-left-flex { display: flex; align-items: center; gap: 15px; }
.extra-service-checkbox { transform: scale(1.3); cursor: pointer; margin: 0; }
.service-icon { background: #fff0f3; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.service-label { font-weight: 700; margin: 0; cursor: pointer; display: block; font-size: 24px; color: #333; }
.service-desc { color: #666; display: block; margin-top: 3px; font-size: 18px; line-height: 1.4; }
.service-price-tag { font-weight: 700; font-size: 15px; color: #222; }

/* ==========================================================================
   Order Summary Right Sidebar Rendering Controls
   ========================================================================== */
.ms-order-summary-sidebar { overflow-wrap: anywhere; background: #fbfbfb !important; border-radius: 12px !important; padding: 25px !important; border: 1px solid #eef0f2 !important; box-shadow: none !important; }
.summary-title { font-size: 18px; font-weight: 700; margin-top: 0; margin-bottom: 15px; border-bottom: 1px solid #eee; padding-bottom: 10px; color: #111; }

.ms-order-summary-sidebar table.shop_table, 
.ms-confirmation-embedded-summary table.shop_table { width: 100% !important; margin: 0 !important; border: none !important; background: transparent !important; }
.ms-order-summary-sidebar table.shop_table thead,
.ms-confirmation-embedded-summary table.shop_table thead { display: none !important; } 

.ms-order-summary-sidebar table.shop_table tr.cart_item { display: table-row !important; } 
.ms-order-summary-sidebar table.shop_table td.product-name,
.ms-confirmation-embedded-summary table.shop_table td.product-name { text-align: left !important; font-weight: 500; color: #444; }
.ms-order-summary-sidebar table.shop_table td.product-total,
.ms-confirmation-embedded-summary table.shop_table td.product-total { text-align: right !important; font-weight: 700; color: #222; }

.ms-order-summary-sidebar table.shop_table td,
.ms-confirmation-embedded-summary table.shop_table td { padding: 12px 0 !important; border-top: none !important; border-bottom: 1px solid #f0f0f0 !important; font-size: 14px; color: #444; background: transparent !important; }
.ms-order-summary-sidebar table.shop_table tr.order-total td,
.ms-confirmation-embedded-summary table.shop_table tr.order-total td { border-bottom: none !important; padding-top: 18px !important; font-size: 16px; color: #000; font-weight: 700; }
.ms-order-summary-sidebar table.shop_table tr.order-total strong,
.ms-confirmation-embedded-summary table.shop_table tr.order-total strong { font-size: 24px; color: #ff3366; font-weight: 700; }

.sidebar-trust-badges { margin-top: 20px; padding-top: 15px; border-top: 1px solid #eee; }
.sidebar-trust-badges ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.sidebar-trust-badges ul li { font-size: 13px !important; color: #444 !important; margin-bottom: 10px !important; display: flex !important; align-items: center !important; gap: 8px !important; font-weight: 500 !important; background: none !important; padding: 0 !important; }

/* ==========================================================================
   Navigation Placement Cleanups
   ========================================================================== */
.ms-navigation-buttons { 
    display: flex !important; 
    align-items: center !important; 
    justify-content: flex-start !important; 
    gap: 25px !important;
    margin-top: 35px !important; 
    padding-top: 20px !important; 
    border-top: 1px solid #eee !important;
    width: 100% !important;
    clear: both !important;
}

.ms-navigation-buttons .action-button, 
.ms-navigation-buttons #place_order { 
    background-color: #e66ba3 !important; 
    color: #fff !important; 
    padding: 14px 32px !important; 
    border: 2px solid #e66ba3 !important; 
    border-radius: 5px !important; 
    font-weight: 700 !important; 
    font-size: 15px !important; 
    cursor: pointer !important; 
    display: inline-block !important; 
    text-align: center !important; 
    text-decoration: none !important; 
    width: auto !important; 
    float: none !important;
    line-height: 1.2 !important;
    order: 2 !important;
    margin-left: auto !important; 
}

.ms-navigation-buttons .action-button:hover, 
.ms-navigation-buttons #place_order:hover { 
    background-color: #fff !important; 
	color: #e66ba3 !important;
}

.back-link { 
    background: none !important; 
    border: none !important; 
    color: #333 !important; 
    font-size: 14px !important; 
    cursor: pointer !important; 
    padding: 0 !important; 
    font-weight: 600 !important; 
    order: 1 !important;
}
.back-link:hover { color: #000 !important; text-decoration: underline !important; }

.ms-gateways-only-wrapper #order_review table.shop_table { display: none !important; }
.ms-gateways-only-wrapper #order_review #payment { background: transparent !important; padding: 0 !important; border: none !important; }

.ms-confirmation-embedded-summary { max-width: 650px; margin: 20px 0; background: #fbfbfb; padding: 30px; border-radius: 12px; border: 1px solid #eef0f2; }

#order_review_heading, .woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .oceanwp-checkout-toggles { display: none !important; }

/* ==========================================================================
   Responsive Mobile Adjustments (Clean JS Assisted Rules)
   ========================================================================== */
@media (max-width: 991px) {
    .woocommerce-checkout .ms-checkout-container form.woocommerce-checkout { 
        display: flex !important;
        flex-direction: column !important; 
        gap: 0px !important; 
    }
    
    .ms-checkout-left-column, .ms-checkout-right-column {
        width: 100% !important;
        position: static !important;
    }
    
    /* Step 1 Mobile Layout Ordering */
    .ms-checkout-container.step-1-active-mobile form.woocommerce-checkout .ms-checkout-left-column { order: 1 !important; }
    .ms-checkout-container.step-1-active-mobile form.woocommerce-checkout .ms-checkout-right-column { order: 2 !important; margin-top: 25px !important; }
    
    /* Step 2 & 3 Mobile Layout Ordering (Pushes Summary to Top) */
    .ms-checkout-container.step-2-active-mobile form.woocommerce-checkout .ms-checkout-left-column,
    .ms-checkout-container.step-3-active-mobile form.woocommerce-checkout .ms-checkout-left-column { order: 2 !important; }
    .ms-checkout-container.step-2-active-mobile form.woocommerce-checkout .ms-checkout-right-column,
    .ms-checkout-container.step-3-active-mobile form.woocommerce-checkout .ms-checkout-right-column { order: 1 !important; margin-bottom: 25px !important; }

    /* Handles styling of the detached button when it jumps into the parent form matrix */
    .ms-checkout-container > .ms-navigation-buttons {
        order: 3 !important;
        margin-top: 20px !important;
    }

    .ms-checkout-progress-bar { margin: 20px auto; }
}

@media (max-width: 580px) {
    .ms-step-node .step-title { display: none; }
    .ms-step-line { 
	    top: 50%;
        transform: translateY(-50%);
	}
    .ms-review-product-row { flex-wrap: wrap; }
    .ms-prod-total { width: 100%; text-align: right; margin-top: 5px; }
    
    .ms-navigation-buttons { 
        flex-direction: column-reverse !important; 
        align-items: stretch !important; 
        gap: 15px !important; 
    }
    .action-button, .ms-navigation-buttons #place_order { width: 100% !important; margin-left: 0 !important; }
    .back-link { text-align: center; }
    .service-option-card { flex-direction: column; align-items: flex-start; gap: 10px; }
    .service-price-tag { align-self: flex-end; }
}

img.woo-entry-image-main {
    width: 100%;
}

.woocommerce ul.products li.product li.title h2, .woocommerce ul.products li.product li.title a{
	margin-bottom: 0;
}
.shopengine-comparison.badge {
    display: none;
}
a.shopengine-quickview-trigger.se-btn {
    display: none;
}

a.wc-block-components-button.wp-element-button.wc-block-cart__submit-button.contained {
    padding: 18px;
    border-radius: 5px;
	border: 2px solid #E66BA3;
}
a.wc-block-components-button.wp-element-button.wc-block-cart__submit-button:hover{
	background: #fff;
	color: #E66BA3;
}

.ms-prod-total .amount, .service-price-tag .amount, .product-total .amount, .shop_table tfoot .amount,
.order-total .amount{
    color: #333 !important;
}

tr.order-total .amount {
    color: #e66ba3 !important;
    font-size: 30px !important;
    font-weight: 800 !important;
}

.woocommerce table.shop_table tfoot th{
	padding-left: 0;
}

.woocommerce table.shop_table tfoot td{
	text-align: right;
}

.woocommerce-checkout h3#order_review_heading, .woocommerce-checkout #order_review {
    float: unset;
    width: 100%;
}

.shopengine-product-price .amount {
    color: #e66ba3;
    font-size: 38px !important;
}

dl.variation {
	display: grid;
	grid-template-columns: 100px 100%;
	margin: 0 !important;
	gap: 10px;
	overflow-wrap: anywhere;
}
dl.variation p {
	margin: 0;
}
dl.variation dd {
	margin: 0;
}

.ms-order-summary-sidebar table.shop_table tr.order-total th {
    width: 50%;
	border: none;
}

.cart_totals .amount {
    color: #e66ba3;
}



@media (max-width: 450px){
	dl.variation{
		display: unset;
	}
	.woocommerce table.shop_table tfoot th{
		font-size: 10px;
	}
	tr.order-total .amount{
		font-size: 20px !important;
	}
	
	.wpr-cart-wrapper form.woocommerce-cart-form tr.woocommerce-cart-form__cart-item.cart_item td.product-name {
		display: grid;
	}
	.wpr-cart-wrapper form.woocommerce-cart-form tr.woocommerce-cart-form__cart-item.cart_item td.product-name dl.variation {
		grid-template-columns: 1fr !important;
		gap: 5px !important;
	}
	.wpr-cart-wrapper form.woocommerce-cart-form tr.woocommerce-cart-form__cart-item.cart_item td.product-name dl.variation dd p {
		margin: 0;
	}
}

/* Emphasize the natural required field asterisk */
.ms-billing-fields-wrapper .validate-required label .required {
    color: #e53e3e !important;
    font-weight: bold;
    margin-left: 4px;
}

/* Explicit highlighted input layout error borders */
.ms-billing-fields-wrapper .form-row.woocommerce-invalid.ms-field-error input,
.ms-billing-fields-wrapper .form-row.woocommerce-invalid.ms-field-error select {
    border: 2px solid #e53e3e !important;
    background-color: #fff5f5 !important;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

/* Dynamic Notification Alert Box spacing adjustment */
.woocommerce-error.ms-custom-error-notice {
    background-color: #fff5f5;
    border-top: 3px solid #e53e3e;
    color: #c53030;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    font-weight: 500;
    list-style: none !important;
}

@media (max-width: 550px){
	.wcmsc-steps-content{
		max-width: 300px;
    	width: 100%;
	}
	.wcmsc-coupon-input-wrap{
		flex-direction: column;
	}
}

