/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */
.innovators-school-checkout-fields .optional {
	display: none;
}

/* =========================================
   ORDER RECEIVED (THANK YOU) PAGE STYLES
========================================= */

/* 1. Order Overview Info Box (Thank you, Order number, etc.) */
.woocommerce-order-overview {
    border: 1px solid #EAECF0 !important;
    border-radius: 12px !important;
    padding: 24px !important;
    background: #F9FAFB !important;
    margin-top: 20px !important; 
    margin-bottom: 24px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 24px !important;
    list-style: none !important;
    box-sizing: border-box !important; /* Prevents overflow */
}

.woocommerce-order-overview li {
    font-family: var(--Font-Family-Body, 'Montserrat', sans-serif) !important;
    font-size: 14px !important;
    color: var(--gray-500-base, #667085) !important;
    border-right: none !important; 
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-order-overview li strong {
    display: block !important;
    color: var(--Gray-900, #101828) !important;
    font-weight: 600 !important;
    margin-top: 4px !important;
}

/* 2. Order Details Section & Heading */
.woocommerce-order-details {
    border: 1px solid #EAECF0 !important;
    border-radius: 12px !important;
    padding: 24px !important;
    background: #FFF !important;
    margin-bottom: 24px !important;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05) !important;
    box-sizing: border-box !important; /* Prevents overflow */
}

h2.woocommerce-order-details__title {
    font-family: var(--Font-Family-Heading, 'Montserrat', sans-serif) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--Gray-800, #1D2939) !important;
    margin-bottom: 24px !important;
    border: none !important;
}

/* 3. Base Table Setup (Converted to Blocks to prevent flex bugs) */
table.woocommerce-table--order-details,
table.woocommerce-table--order-details thead,
table.woocommerce-table--order-details tbody,
table.woocommerce-table--order-details tfoot,
table.woocommerce-table--order-details tr,
table.woocommerce-table--order-details th,
table.woocommerce-table--order-details td {
    box-sizing: border-box !important;
}

table.woocommerce-table--order-details {
    display: block !important;
    width: 100% !important;
    border: none !important;
    border-collapse: collapse !important;
    margin: 0 !important;
}

table.woocommerce-table--order-details thead,
table.woocommerce-table--order-details tfoot {
    display: block !important;
    width: 100% !important;
}

/* 4. Table Header */
table.woocommerce-table--order-details thead tr {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 0 0 16px 0 !important;
    border: none !important;
    background-color: transparent !important;
}

table.woocommerce-table--order-details thead th {
    color: var(--Gray-900, #101828) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 28px !important;
    border: none !important;
    padding: 0 !important;
    text-transform: none !important;
}

table.woocommerce-table--order-details thead th.woocommerce-table__product-name {
    font-size: 0 !important;
}
table.woocommerce-table--order-details thead th.woocommerce-table__product-name::before {
    content: "Article" !important;
    font-size: 18px !important;
}

/* 5. Product List (Table Body) */
table.woocommerce-table--order-details tbody {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid #EAECF0 !important;
    padding-bottom: 8px !important;
    margin-bottom: 16px !important;
}

table.woocommerce-table--order-details tbody tr {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 12px 0 !important;
    border: none !important;
}

table.woocommerce-table--order-details tbody td.woocommerce-table__product-name {
    color: var(--gray-500-base, #667085) !important;
    font-family: var(--Font-Family-Body, 'Montserrat', sans-serif) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 24px !important;
    border: none !important;
    padding: 0 16px 0 0 !important;
    flex: 1 1 auto !important;
    max-width: calc(100% - 90px) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

table.woocommerce-table--order-details tbody td.woocommerce-table__product-name a {
    color: inherit !important;
    text-decoration: none !important;
}

table.woocommerce-table--order-details tbody td.woocommerce-table__product-name strong.product-quantity {
    display: inline !important;
    font-weight: 400 !important;
    padding-left: 4px !important;
}

/* Allow Right Column Values to Shrink & Wrap on Mobile so they never overflow */
table.woocommerce-table--order-details tbody td.woocommerce-table__product-total,
table.woocommerce-table--order-details tfoot td {
    color: var(--Gray-900, #101828) !important;
    font-family: var(--Font-Family-Body, 'Montserrat', sans-serif) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 24px !important;
    text-align: right !important;
    border: none !important;
    padding: 0 !important;
    flex: 0 1 auto !important; 
    max-width: 65% !important;
    word-break: break-word !important; 
}

/* 6. Footer Rows (Subtotal, Shipping, etc.) */
table.woocommerce-table--order-details tfoot tr {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 12px 0 !important;
    border: none !important;
}

table.woocommerce-table--order-details tfoot th {
    color: var(--gray-500-base, #667085) !important;
    font-family: var(--Font-Family-Body, 'Montserrat', sans-serif) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 24px !important;
    text-align: left !important;
    border: none !important;
    padding: 0 !important;
    text-transform: none !important;
    flex: 0 0 auto !important;
    max-width: 35% !important;
}

/* Total Row Adjustments */
table.woocommerce-table--order-details tfoot tr.order_total,
table.woocommerce-table--order-details tfoot tr.order-total {
    border-top: 1px solid #EAECF0 !important;
    margin-top: 8px !important;
    padding-top: 24px !important;
}

table.woocommerce-table--order-details tfoot tr.order_total th,
table.woocommerce-table--order-details tfoot tr.order-total th {
    color: var(--Gray-900, #101828) !important;
    font-family: var(--Font-Family-Heading, 'Montserrat', sans-serif) !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 32px !important;
}

table.woocommerce-table--order-details tfoot tr.order_total td,
table.woocommerce-table--order-details tfoot tr.order_total td .amount,
table.woocommerce-table--order-details tfoot tr.order_total td bdi,
table.woocommerce-table--order-details tfoot tr.order-total td,
table.woocommerce-table--order-details tfoot tr.order-total td .amount,
table.woocommerce-table--order-details tfoot tr.order-total td bdi {
    color: var(--Gray-900, #101828) !important;
    font-family: var(--Font-Family-Heading, 'Open Sans', sans-serif) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 32px !important;
    text-align: right !important;
}

/* Fix for Payment Method row */
table.woocommerce-table--order-details tfoot tr.payment_method th,
table.woocommerce-table--order-details tfoot tr.payment-method th,
table.woocommerce-table--order-details tfoot tr.payment_method td,
table.woocommerce-table--order-details tfoot tr.payment-method td {
    font-size: 16px !important;
    font-weight: 400 !important;
}
table.woocommerce-table--order-details tfoot tr.payment_method td {
    font-weight: 700 !important;
}

body .col2-set::before,
body .col2-set::after {
    display: none !important;
}

/* 7. Billing & Shipping Addresses Container */
body section.woocommerce-columns.woocommerce-columns--2.woocommerce-columns--addresses.col2-set.addresses {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important; 
    justify-content: space-between !important;
    align-items: stretch !important; /* <--- KEEPS EQUAL HEIGHT */
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 32px 0 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    clear: both !important;
}

/* Individual Address Cards */
body section.woocommerce-columns.woocommerce-columns--2.woocommerce-columns--addresses.col2-set.addresses .woocommerce-column {
    float: none !important; 
    display: block !important;

    /* RESTORED TO MATHEMATICALLY PERFECT WIDTH */
    flex: 0 0 calc(50% - 12px) !important; 
    width: calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important; 
    
    height: auto !important;
    border: 1px solid #EAECF0 !important;
    border-radius: 12px !important;
    padding: 24px !important;
    background: #FFF !important;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05) !important;
    margin: 0 !important; 
    box-sizing: border-box !important;
}

body section.woocommerce-columns h2.woocommerce-column__title,
body .col2-set.addresses h2.woocommerce-column__title {
    font-family: var(--Font-Family-Heading, 'Montserrat', sans-serif) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--Gray-800, #1D2939) !important;
    margin-bottom: 24px !important;
    border: none !important;
}

body section.woocommerce-columns address,
body .col2-set.addresses address {
    font-family: var(--Font-Family-Body, 'Montserrat', sans-serif) !important;
    font-size: 14px !important;
    color: var(--gray-500-base, #667085) !important;
    line-height: 1.6 !important;
    border: none !important;
    padding: 0 !important;
    font-style: normal !important;
    height: auto !important;
}

/* =========================================
   MOBILE RESPONSIVENESS
========================================= */
@media (max-width: 767px) {
    /* 1. Reduce padding on all main boxes */
    .woocommerce-order-overview,
    .woocommerce-order-details,
    body section.woocommerce-columns.woocommerce-columns--2.woocommerce-columns--addresses.col2-set.addresses .woocommerce-column {
        padding: 16px !important;
    }

    /* 2. OVERRIDE Desktop strict rules so they can stack vertically */
    body section.woocommerce-columns.woocommerce-columns--2.woocommerce-columns--addresses.col2-set.addresses {
        flex-direction: column !important; /* Stacks them */
        flex-wrap: wrap !important; 
        gap: 16px !important;
    }
    
    body section.woocommerce-columns.woocommerce-columns--2.woocommerce-columns--addresses.col2-set.addresses .woocommerce-column {
        /* OVERRIDE TO 100% ON MOBILE */
        flex: 1 1 100% !important; 
        width: 100% !important;
        max-width: 100% !important;
    }

    /* 3. Stack the top overview items */
    .woocommerce-order-overview {
        flex-direction: column !important;
        gap: 16px !important;
    }
    .woocommerce-order-overview li {
        width: 100% !important;
    }

    /* 4. Ensure table text doesn't overflow */
    table.woocommerce-table--order-details tbody td.woocommerce-table__product-name {
        max-width: calc(100% - 70px) !important; 
        padding-right: 8px !important;
    }
}

/* 1. COMPLETELY HIDE THE 'VIEW CART' TEXT */
.elementor-widget-wc-add-to-cart a.added_to_cart.wc-forward,
body a.added_to_cart {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
}

/* 2. THE LOADING SPINNER (Now bridges the gap!) */
.add_to_cart_button.loading,
.add_to_cart_button.keep-spinning {
    opacity: 0.9 !important;
    pointer-events: none !important;
    position: relative !important;
}

/* Hide the default text and icon while loading */
.add_to_cart_button.loading .elementor-button-text,
.add_to_cart_button.loading .elementor-button-icon,
.add_to_cart_button.keep-spinning .elementor-button-text,
.add_to_cart_button.keep-spinning .elementor-button-icon {
    opacity: 0 !important;
}

/* Create the spinning circle */
.add_to_cart_button.loading::after,
.add_to_cart_button.keep-spinning::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 24px !important;
    height: 24px !important;
    margin-top: -12px !important;
    margin-left: -12px !important;
    border: 3px solid rgba(255, 255, 255, 0.3) !important;
    border-top-color: #FFF !important;
    border-radius: 50% !important;
    animation: woo-btn-spin 0.6s linear infinite !important;
    display: block !important;
    z-index: 10 !important;
}

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