/* ============================================
   THE EÏNN Custom Pages - Main Styles
   ============================================ */

/* === RESET & BASE === */
.tecp-page-wrapper,
.tecp-page-wrapper *,
.tecp-login-overlay,
.tecp-login-overlay * {
    box-sizing: border-box;
    font-family: var(--tecp-font);
    border-radius: var(--tecp-radius);
}

/* === PAGE WRAPPER === */
.tecp-page-wrapper {
    position: relative;
    min-height: 80vh;
    overflow: hidden;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Force full width even inside Elementor/Blocksy/theme containers */
.site-main .tecp-page-wrapper,
.entry-content .tecp-page-wrapper,
.elementor-widget-container .tecp-page-wrapper,
.ct-container .tecp-page-wrapper,
.woocommerce .tecp-page-wrapper,
.woocommerce-page .tecp-page-wrapper,
.woocommerce-page .woocommerce .tecp-page-wrapper,
.woocommerce-page .entry-content .tecp-page-wrapper,
.woocommerce-page .site-main .tecp-page-wrapper,
article .tecp-page-wrapper,
main .tecp-page-wrapper,
#primary .tecp-page-wrapper,
#main .tecp-page-wrapper,
.page-content .tecp-page-wrapper,
.post-content .tecp-page-wrapper,
[class*="container"] .tecp-page-wrapper,
[class*="content"] .tecp-page-wrapper {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

/* Prevent parent overflow:hidden from clipping the wrapper */
.tecp-page-wrapper {
    overflow-x: clip !important;
}

.tecp-bg-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.tecp-page-wrapper > *:not(.tecp-bg-image) {
    position: relative;
    z-index: 2;
}

/* === HEADING === */
.tecp-page-heading {
    text-align: center;
    padding-top: 2rem;
    margin-bottom: 1.5rem;
}

.tecp-title {
    font-size: 14px;
    font-weight: 400;
    color: #ffffff;
    letter-spacing: var(--tecp-heading-ls);
    text-transform: lowercase;
    margin: 0;
}

/* === STEP NAVIGATION (Checkout) === */
.tecp-step-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 2rem;
}

.tecp-nav-item {
    font-size: 12px;
    letter-spacing: 2px;
    cursor: pointer;
    padding-bottom: 2px;
    border-bottom: 1px solid transparent;
    transition: all 0.3s;
    color: var(--tecp-secondary);
}

.tecp-nav-item.active {
    color: #fff;
    border-bottom-color: rgba(255,255,255,0.6);
}

.tecp-nav-divider {
    font-size: 12px;
    color: rgba(255,255,255,0.3);
}

/* === PANEL === */
.tecp-panel {
    background: var(--tecp-panel-bg);
    backdrop-filter: blur(var(--tecp-panel-blur));
    -webkit-backdrop-filter: blur(var(--tecp-panel-blur));
    padding: 2rem 2.5rem;
    width: var(--tecp-panel-width, 70%);
    max-width: 960px;
    margin: 0 auto 2rem;
}

.tecp-checkout-wrapper .tecp-panel {
    max-width: 680px;
}

.tecp-cart-wrapper .tecp-panel {
    max-width: 960px;
}

.tecp-account-panel {
    max-width: 860px;
}

/* === FORM FIELDS === */
.tecp-input,
.tecp-field-wrap input,
.tecp-field-wrap select,
.tecp-field-wrap textarea,
.tecp-page-wrapper input[type="text"],
.tecp-page-wrapper input[type="email"],
.tecp-page-wrapper input[type="tel"],
.tecp-page-wrapper input[type="password"],
.tecp-page-wrapper input[type="number"],
.tecp-page-wrapper select,
.tecp-page-wrapper textarea {
    width: 100%;
    padding: 12px 16px;
    background: var(--tecp-field-bg);
    border: none;
    border-radius: var(--tecp-radius);
    color: var(--tecp-field-color);
    font-family: var(--tecp-font);
    font-size: var(--tecp-font-size);
    outline: none;
    transition: none;
    -webkit-appearance: none;
    appearance: none;
}

.tecp-page-wrapper input::placeholder,
.tecp-page-wrapper textarea::placeholder {
    color: var(--tecp-field-placeholder);
}

.tecp-page-wrapper input:focus,
.tecp-page-wrapper select:focus,
.tecp-page-wrapper textarea:focus {
    outline: none;
    box-shadow: none;
    border: none;
}

/* === COUNTRY SELECT === */
.tecp-country-select,
.tecp-page-wrapper .select2-container,
.tecp-page-wrapper .select2-selection {
    background: var(--tecp-field-bg) !important;
    border: none !important;
    border-radius: var(--tecp-radius) !important;
    color: var(--tecp-field-color) !important;
}

.tecp-page-wrapper .select2-selection__rendered {
    color: var(--tecp-field-color) !important;
    padding: 12px 16px !important;
    line-height: 1.4 !important;
}

.tecp-page-wrapper .select2-selection__arrow {
    top: 50% !important;
    transform: translateY(-50%);
    right: 16px !important;
}

.tecp-page-wrapper .select2-dropdown {
    background: rgba(40,35,30,0.95) !important;
    backdrop-filter: blur(20px);
    border: none !important;
    border-radius: var(--tecp-radius) !important;
}

.tecp-page-wrapper .select2-results__option {
    padding: 10px 16px !important;
    color: var(--tecp-field-placeholder) !important;
    font-size: var(--tecp-font-size) !important;
    transition: all 0.2s;
}

.tecp-page-wrapper .select2-results__option--highlighted,
.tecp-page-wrapper .select2-results__option:hover {
    background: var(--tecp-active-bg) !important;
    color: var(--tecp-active-color) !important;
}

.tecp-page-wrapper .select2-results__option--selected {
    background: rgba(255,255,255,0.15) !important;
    color: #fff !important;
}

/* === ADDRESS TABS === */
.tecp-address-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
}

.tecp-tab-btn {
    flex: 1;
    padding: 10px 16px;
    text-align: center;
    font-size: 11px;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: all 0.3s;
    color: var(--tecp-field-placeholder);
    background: var(--tecp-field-bg);
}

.tecp-tab-btn.active {
    color: var(--tecp-active-color);
    background: var(--tecp-active-bg);
}

/* === STEPS === */
.tecp-step {
    display: none;
}

.tecp-step.active {
    display: block;
}

/* === BUTTONS === */
.tecp-step-btn,
.tecp-btn {
    width: 100%;
    padding: 14px;
    text-align: center;
    background: var(--tecp-btn-bg);
    color: var(--tecp-btn-color);
    font-family: var(--tecp-font);
    font-size: var(--tecp-font-size);
    letter-spacing: 2px;
    border: none;
    border-radius: var(--tecp-radius);
    cursor: pointer;
    transition: all 0.3s;
}

.tecp-step-btn:hover,
.tecp-btn:hover {
    background: var(--tecp-btn-hover-bg);
    color: var(--tecp-btn-hover-color);
}

/* === BACK LINK === */
.tecp-back-link {
    text-align: center;
    margin-top: 12px;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    letter-spacing: 1px;
}

/* === SECTION LABELS === */
.tecp-section-label {
    font-size: 11px;
    letter-spacing: 2px;
    color: var(--tecp-label);
    margin-bottom: 12px;
}

/* === DIVIDERS === */
.tecp-divider {
    border: none;
    border-top: 1px solid var(--tecp-divider);
    margin: 1.5rem 0;
}

/* === RADIO BUTTONS (Shipping/Payment) === */
.tecp-radio-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tecp-radio-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: rgba(255,255,255,0.05);
    cursor: pointer;
    transition: all 0.3s;
}

.tecp-radio-item:hover,
.tecp-radio-item.selected {
    background: rgba(255,255,255,0.15);
}

.tecp-radio-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tecp-radio-item.selected .tecp-radio-dot {
    border-color: #fff;
}

.tecp-radio-dot-inner {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: transparent;
}

.tecp-radio-item.selected .tecp-radio-dot-inner {
    background: #fff;
}

/* === PAYMENT METHODS (Stripe PE Styling) === */
.tecp-page-wrapper #payment {
    margin-bottom: 1.5rem;
}

.tecp-page-wrapper #payment .payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tecp-page-wrapper #payment .payment_methods li {
    border-bottom: 1px solid var(--tecp-divider);
}

.tecp-page-wrapper #payment .payment_methods li:last-child {
    border-bottom: none;
}

.tecp-page-wrapper #payment .payment_methods li label {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: rgba(255,255,255,0.05);
    cursor: pointer;
    transition: all 0.3s;
    font-size: 12px;
    color: var(--tecp-field-placeholder);
}

.tecp-page-wrapper #payment .payment_methods li label:hover {
    background: rgba(255,255,255,0.15);
}

.tecp-page-wrapper #payment .payment_methods li input[type="radio"] {
    width: 14px;
    height: 14px;
    accent-color: #fff;
}

.tecp-page-wrapper #payment .payment_methods li.wc_payment_method > label {
    color: #fff;
}

.tecp-page-wrapper #payment .payment_box {
    padding: 12px 16px;
    background: rgba(255,255,255,0.04);
}

.tecp-page-wrapper #payment .payment_box p {
    color: var(--tecp-secondary);
    font-size: 12px;
}

/* Stripe Payment Element container */
.tecp-page-wrapper .wc-stripe-elements-field,
.tecp-page-wrapper .wc-stripe-upe-element {
    background: var(--tecp-field-bg);
    padding: 10px 14px;
    border: none;
    border-radius: var(--tecp-radius);
}

/* Place order button */
.tecp-page-wrapper #place_order {
    width: 100%;
    padding: 14px;
    text-align: center;
    background: var(--tecp-btn-bg);
    color: var(--tecp-btn-color);
    font-family: var(--tecp-font);
    font-size: var(--tecp-font-size);
    letter-spacing: 2px;
    border: none;
    border-radius: var(--tecp-radius);
    cursor: pointer;
    transition: all 0.3s;
}

.tecp-page-wrapper #place_order:hover {
    background: var(--tecp-btn-hover-bg);
    color: var(--tecp-btn-hover-color);
}

/* Privacy policy */
.tecp-page-wrapper .woocommerce-privacy-policy-text p {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    text-align: center;
    line-height: 1.6;
}

.tecp-page-wrapper .woocommerce-privacy-policy-text a {
    font-weight: 700;
    color: inherit;
    text-decoration: none;
}

/* Order review in step 2 */
.tecp-page-wrapper .shop_table {
    width: 100%;
    border-collapse: collapse;
}

.tecp-page-wrapper .shop_table th,
.tecp-page-wrapper .shop_table td {
    padding: 8px 0;
    border: none;
    color: var(--tecp-secondary);
    font-size: 12px;
}

.tecp-page-wrapper .shop_table .order-total th,
.tecp-page-wrapper .shop_table .order-total td {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    padding-top: 10px;
    border-top: 1px solid var(--tecp-divider);
}

.tecp-page-wrapper .shop_table .product-name {
    color: #fff;
}

.tecp-page-wrapper .shop_table .product-thumbnail img {
    width: 60px;
    height: auto;
}

/* === CART PAGE === */
.tecp-cart-wrapper .tecp-panel {
    max-width: 960px;
}

.tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-inner {
    display: flex;
    gap: 2.5rem;
    align-items: flex-start;
}

.tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-products {
    flex: 1;
    min-width: 0;
}

.tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-divider {
    width: 1px;
    background: var(--tecp-divider);
    align-self: stretch;
}

.tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-summary {
    width: 300px;
    flex-shrink: 0;
}

.tecp-cart-wrapper.tecp-cart-vertical .tecp-cart-divider {
    display: none;
}

.tecp-cart-wrapper.tecp-cart-vertical .tecp-panel {
    max-width: 780px;
}

/* Cart item */
.tecp-cart-item {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--tecp-divider);
}

.tecp-cart-item-img {
    width: 100px;
    height: 130px;
    flex-shrink: 0;
    overflow: hidden;
}

.tecp-cart-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tecp-cart-item-info {
    flex: 1;
    min-width: 0;
}

.tecp-cart-item-name {
    font-size: 13px;
    color: #fff;
    margin-bottom: 3px;
}

.tecp-cart-item-meta {
    font-size: 11px;
    color: var(--tecp-secondary);
    margin-bottom: 6px;
}

.tecp-cart-item-price {
    font-size: 13px;
    color: #fff;
}

/* Quantity controls */
.tecp-qty-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.tecp-qty-controls {
    display: flex;
    align-items: center;
}

.tecp-qty-btn {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--tecp-field-bg);
    cursor: pointer;
    font-size: 13px;
    color: var(--tecp-field-placeholder);
    transition: all 0.3s;
}

.tecp-qty-btn:hover {
    background: var(--tecp-active-bg);
    color: var(--tecp-active-color);
}

.tecp-qty-value {
    width: 30px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.04);
    font-size: 12px;
    color: #fff;
}

/* Remove button with rotation */
.tecp-remove-x {
    cursor: pointer;
    font-size: 13px;
    color: rgba(255,255,255,0.3);
    transition: transform 0.2s ease, color 0.2s ease;
    display: inline-block;
}

.tecp-remove-x:hover {
    transform: rotate(90deg);
    color: rgba(255,255,255,0.8);
}

/* Continue shopping */
.tecp-continue-shopping {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    letter-spacing: 1px;
    margin-top: 8px;
    display: inline-block;
}

/* Express checkout */
.tecp-express-checkout {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
}

.tecp-express-btn {
    flex: 1;
    padding: 10px;
    text-align: center;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

/* === WHITE THEME (Cart) === */
.tecp-cart-white .tecp-title { color: var(--tecp-w-text); }
.tecp-cart-white .tecp-cart-item-name { color: var(--tecp-w-text); }
.tecp-cart-white .tecp-cart-item-price { color: var(--tecp-w-text); }
.tecp-cart-white .tecp-cart-item-meta { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-qty-value { color: var(--tecp-w-text); background: transparent; }
.tecp-cart-white .tecp-qty-btn { background: transparent; color: #aaa; }
.tecp-cart-white .tecp-qty-btn:hover { background: transparent; color: var(--tecp-w-text); }
.tecp-cart-white .tecp-cart-item { border-color: var(--tecp-w-divider); }
.tecp-cart-white .tecp-section-label { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-secondary { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-remove-x { color: #ccc; }
.tecp-cart-white .tecp-remove-x:hover { color: #666; }
.tecp-cart-white .tecp-continue-shopping { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-cart-total-label { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-cart-total-value { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-cart-total-row.total .tecp-cart-total-label,
.tecp-cart-white .tecp-cart-total-row.total .tecp-cart-total-value {
    color: var(--tecp-w-text);
}
.tecp-cart-white .tecp-cart-total-row.total { border-top-color: var(--tecp-w-divider); }
.tecp-cart-white .tecp-cart-divider { background: var(--tecp-w-divider); }

.tecp-cart-white .tecp-step-btn,
.tecp-cart-white .tecp-btn {
    background: #fff;
    color: var(--tecp-w-text);
    border: 1px solid var(--tecp-w-btn-border);
}
.tecp-cart-white .tecp-step-btn:hover,
.tecp-cart-white .tecp-btn:hover {
    background: var(--tecp-w-text);
    color: #fff;
}

/* White shipping radios */
.tecp-cart-white .tecp-radio-item { background: transparent; }
.tecp-cart-white .tecp-radio-item:hover,
.tecp-cart-white .tecp-radio-item.selected { background: var(--tecp-w-field-bg); }
.tecp-cart-white .tecp-radio-dot { border-color: #aaa; }
.tecp-cart-white .tecp-radio-item.selected .tecp-radio-dot { border-color: var(--tecp-w-text); }
.tecp-cart-white .tecp-radio-dot-inner { background: transparent; }
.tecp-cart-white .tecp-radio-item.selected .tecp-radio-dot-inner { background: var(--tecp-w-text); }
.tecp-cart-white .tecp-radio-label { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-radio-item.selected .tecp-radio-label { color: var(--tecp-w-text); }
.tecp-cart-white .tecp-radio-price { color: var(--tecp-w-secondary); }
.tecp-cart-white .tecp-ship-info { color: #aaa; }
.tecp-cart-white .tecp-ship-info strong { color: var(--tecp-w-text); }

/* === MY ACCOUNT === */
.tecp-account-panel {
    max-width: 860px;
}

/* Top navigation */
.tecp-account-nav {
    display: flex;
    gap: 0;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--tecp-divider);
    margin-bottom: 2rem;
    padding-bottom: 0;
}

.tecp-account-tab {
    padding: 8px 16px;
    font-size: 11px;
    letter-spacing: 1.5px;
    color: var(--tecp-secondary);
    cursor: pointer;
    transition: all 0.3s;
    text-decoration: none;
}

.tecp-account-tab:hover {
    color: #fff;
}

.tecp-account-tab.active {
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.6);
    margin-bottom: -1px;
}

.tecp-account-tab:last-child {
    margin-left: auto;
    color: rgba(255,255,255,0.35);
}

/* Account content */
.tecp-page-wrapper .woocommerce-MyAccount-content {
    color: #fff;
    font-size: var(--tecp-font-size);
}

.tecp-page-wrapper .woocommerce-MyAccount-content a {
    color: var(--tecp-secondary);
    text-decoration: none;
    font-weight: 700;
}

/* Quick stats */
.tecp-stats-grid {
    display: flex;
    gap: 12px;
    margin-bottom: 1.5rem;
}

.tecp-stat-card {
    flex: 1;
    padding: 16px;
    background: rgba(255,255,255,0.06);
    text-align: center;
}

.tecp-stat-number {
    font-size: 22px;
    color: #fff;
    font-weight: 500;
    margin-bottom: 4px;
}

.tecp-stat-label {
    font-size: 10px;
    letter-spacing: 1.5px;
    color: var(--tecp-label);
}

/* Order cards */
.tecp-order-card {
    padding: 14px;
    background: rgba(255,255,255,0.06);
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tecp-order-title {
    font-size: 12px;
    color: #fff;
    margin-bottom: 4px;
}

.tecp-order-meta {
    font-size: 11px;
    color: var(--tecp-secondary);
}

.tecp-order-status {
    padding: 4px 12px;
    font-size: 10px;
    letter-spacing: 1px;
}

.tecp-order-status.processing {
    background: var(--tecp-status-processing-bg);
    color: var(--tecp-status-processing-color);
}

.tecp-order-status.completed {
    background: var(--tecp-status-completed-bg);
    color: var(--tecp-status-completed-color);
}

/* Address cards */
.tecp-address-grid {
    display: flex;
    gap: 20px;
}

.tecp-address-card {
    flex: 1;
    padding: 20px;
    background: rgba(255,255,255,0.06);
}

.tecp-address-type {
    font-size: 11px;
    letter-spacing: 1.5px;
    color: var(--tecp-label);
    margin-bottom: 12px;
}

.tecp-address-text {
    font-size: 12px;
    color: #fff;
    line-height: 1.8;
}

/* === LOGIN OVERLAY === */
.tecp-login-overlay {
    position: relative;
    min-height: 550px;
    overflow: hidden;
}

.tecp-login-dimmer {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 2;
}

.tecp-login-modal {
    position: relative;
    z-index: 3;
    background: var(--tecp-panel-bg);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    padding: 2.5rem;
    width: 100%;
    max-width: 420px;
    margin: 3rem auto;
}

.tecp-login-close {
    position: absolute;
    top: 16px;
    right: 20px;
    font-size: 16px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    transition: transform 0.2s ease, color 0.2s ease;
    display: inline-block;
}

.tecp-login-close:hover {
    transform: rotate(90deg);
    color: rgba(255,255,255,0.8);
}

/* Auth tabs */
.tecp-auth-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 2rem;
}

.tecp-auth-tab {
    flex: 1;
    padding: 10px 16px;
    text-align: center;
    font-size: 11px;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: all 0.3s;
    color: var(--tecp-field-placeholder);
    background: var(--tecp-field-bg);
}

.tecp-auth-tab.active {
    color: var(--tecp-active-color);
    background: var(--tecp-active-bg);
}

.tecp-auth-form {
    display: none;
}

.tecp-auth-form.active {
    display: block;
}

/* Remember me / forgot password */
.tecp-auth-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.tecp-remember {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 11px;
    color: var(--tecp-secondary);
}

.tecp-remember input {
    width: 14px;
    height: 14px;
}

.tecp-forgot {
    font-size: 11px;
    color: var(--tecp-secondary);
    cursor: pointer;
    font-weight: 700;
    text-decoration: none;
}

/* Woo form overrides on account page */
.tecp-page-wrapper .woocommerce-form-row,
.tecp-page-wrapper .form-row {
    margin-bottom: 10px;
}

.tecp-page-wrapper .woocommerce-form-row label,
.tecp-page-wrapper .form-row label {
    font-size: 11px;
    color: var(--tecp-label);
    margin-bottom: 6px;
    letter-spacing: 1px;
    display: block;
}

/* Hide WooCommerce defaults we replace */
.tecp-page-wrapper .woocommerce-form-login__submit,
.tecp-page-wrapper .woocommerce-form-register__submit {
    width: 100%;
    padding: 14px;
    background: var(--tecp-btn-bg);
    color: var(--tecp-btn-color);
    border: none;
    font-family: var(--tecp-font);
    font-size: var(--tecp-font-size);
    letter-spacing: 2px;
    cursor: pointer;
    transition: all 0.3s;
    border-radius: var(--tecp-radius);
}

.tecp-page-wrapper .woocommerce-form-login__submit:hover,
.tecp-page-wrapper .woocommerce-form-register__submit:hover {
    background: var(--tecp-btn-hover-bg);
    color: var(--tecp-btn-hover-color);
}

/* === WOOCOMMERCE SHIPPING OVERRIDES (Cart) === */
.tecp-page-wrapper .woocommerce-shipping-methods,
.tecp-page-wrapper .woocommerce-shipping-totals .woocommerce-shipping-methods,
.tecp-page-wrapper table.shop_table .woocommerce-shipping-methods,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods,
.woocommerce-page .tecp-page-wrapper .woocommerce-shipping-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods li,
.tecp-page-wrapper .woocommerce-shipping-totals .woocommerce-shipping-methods li,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li,
.woocommerce-page .tecp-page-wrapper .woocommerce-shipping-methods li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    background: rgba(255,255,255,0.05) !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    list-style: none !important;
    border: none !important;
    margin: 0 !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods li:hover,
.tecp-page-wrapper .woocommerce-shipping-methods li:has(input:checked),
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li:hover,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li:has(input:checked) {
    background: rgba(255,255,255,0.15) !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods li label,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li label,
.woocommerce-page .tecp-page-wrapper .woocommerce-shipping-methods li label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
    font-size: 11px !important;
    color: var(--tecp-secondary) !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods li:has(input:checked) label,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li:has(input:checked) label {
    color: #fff !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods li input[type="radio"],
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods li input[type="radio"] {
    width: 14px !important;
    height: 14px !important;
    accent-color: #fff !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

.tecp-page-wrapper .woocommerce-shipping-methods .amount,
.woocommerce .tecp-page-wrapper .woocommerce-shipping-methods .amount {
    margin-left: auto !important;
    font-size: 11px !important;
}

/* White theme shipping */
.tecp-cart-white .woocommerce-shipping-methods li,
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li {
    background: transparent !important;
}

.tecp-cart-white .woocommerce-shipping-methods li:hover,
.tecp-cart-white .woocommerce-shipping-methods li:has(input:checked),
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li:hover,
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li:has(input:checked) {
    background: var(--tecp-w-field-bg) !important;
}

.tecp-cart-white .woocommerce-shipping-methods li label,
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li label {
    color: var(--tecp-w-secondary) !important;
}

.tecp-cart-white .woocommerce-shipping-methods li:has(input:checked) label,
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li:has(input:checked) label {
    color: var(--tecp-w-text) !important;
}

.tecp-cart-white .woocommerce-shipping-methods li input[type="radio"],
.woocommerce .tecp-cart-white .woocommerce-shipping-methods li input[type="radio"] {
    accent-color: #000 !important;
}

/* Shipping destination text */
.tecp-page-wrapper .woocommerce-shipping-destination {
    font-size: 11px;
    color: var(--tecp-label);
    margin-top: 8px;
}

.tecp-page-wrapper .woocommerce-shipping-destination strong {
    color: var(--tecp-active-color);
    font-weight: 500;
}

.tecp-cart-white .woocommerce-shipping-destination {
    color: #aaa;
}

.tecp-cart-white .woocommerce-shipping-destination strong {
    color: var(--tecp-w-text);
}

/* Shipping section heading */
.tecp-page-wrapper .shipping th,
.tecp-page-wrapper .woocommerce-shipping-totals th {
    font-size: 11px !important;
    letter-spacing: 2px !important;
    color: var(--tecp-label) !important;
    text-transform: lowercase !important;
    font-weight: 400 !important;
}

/* === FORCE ALL FONTS === */
.tecp-page-wrapper,
.tecp-page-wrapper *,
.tecp-page-wrapper th,
.tecp-page-wrapper td,
.tecp-page-wrapper label,
.tecp-page-wrapper input,
.tecp-page-wrapper select,
.tecp-page-wrapper button,
.tecp-page-wrapper a,
.tecp-page-wrapper p,
.tecp-page-wrapper span,
.tecp-page-wrapper .amount,
.tecp-page-wrapper .woocommerce-Price-amount,
.tecp-page-wrapper .order-total .amount,
.tecp-page-wrapper .woocommerce-Price-amount bdi,
.tecp-page-wrapper .woocommerce-Price-currencySymbol,
.tecp-page-wrapper .cart-subtotal td,
.tecp-page-wrapper .cart-subtotal th,
.tecp-page-wrapper .cart-subtotal .amount,
.tecp-page-wrapper .cart-subtotal .woocommerce-Price-amount,
.tecp-page-wrapper .cart-subtotal .woocommerce-Price-amount bdi,
.tecp-page-wrapper .tax-rate td,
.tecp-page-wrapper .tax-total td,
.tecp-page-wrapper .fee td,
.tecp-page-wrapper .shipping td,
.tecp-page-wrapper .shipping th,
.tecp-page-wrapper .woocommerce-shipping-totals td,
.tecp-page-wrapper .woocommerce-shipping-totals th,
.tecp-page-wrapper .woocommerce-cart-form .product-price,
.tecp-page-wrapper .woocommerce-cart-form .product-subtotal,
.tecp-page-wrapper .woocommerce-cart-form .product-price .amount,
.tecp-page-wrapper .woocommerce-cart-form .product-subtotal .amount,
.tecp-page-wrapper .woocommerce-cart-form .product-price bdi,
.tecp-page-wrapper .woocommerce-cart-form .product-subtotal bdi,
.tecp-page-wrapper del .amount,
.tecp-page-wrapper ins .amount,
.tecp-page-wrapper del bdi,
.tecp-page-wrapper ins bdi {
    font-family: var(--tecp-font) !important;
}

/* Total row force styling */
.tecp-page-wrapper .order-total td,
.tecp-page-wrapper .order-total th,
.tecp-page-wrapper .order-total .amount,
.tecp-page-wrapper .order-total .woocommerce-Price-amount,
.tecp-page-wrapper .order-total .woocommerce-Price-amount bdi,
.tecp-page-wrapper .order-total .woocommerce-Price-currencySymbol {
    font-family: var(--tecp-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #fff !important;
}

.tecp-cart-white .order-total td,
.tecp-cart-white .order-total th,
.tecp-cart-white .order-total .amount,
.tecp-cart-white .order-total .woocommerce-Price-amount,
.tecp-cart-white .order-total .woocommerce-Price-amount bdi,
.tecp-cart-white .order-total .woocommerce-Price-currencySymbol {
    color: var(--tecp-w-text) !important;
}

/* Hide "Change address" link styling fix */
.tecp-page-wrapper .woocommerce-shipping-calculator .shipping-calculator-button {
    font-size: 11px;
    color: var(--tecp-secondary);
    text-decoration: none;
    font-weight: 700;
}

.tecp-cart-white .woocommerce-shipping-calculator .shipping-calculator-button {
    color: var(--tecp-w-secondary);
}

/* Remove period after shipping destination */
.tecp-page-wrapper .woocommerce-shipping-destination::after {
    content: none;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .tecp-panel {
        width: 90% !important;
        padding: 1.5rem 1.25rem;
    }
    
    .tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-inner {
        flex-direction: column;
    }
    
    .tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-summary {
        width: 100%;
    }
    
    .tecp-cart-wrapper.tecp-cart-horizontal .tecp-cart-divider {
        width: 100%;
        height: 1px;
    }
    
    .tecp-address-grid {
        flex-direction: column;
    }
    
    .tecp-stats-grid {
        flex-direction: column;
    }
    
    .tecp-account-nav {
        gap: 4px;
    }
    
    .tecp-account-tab {
        padding: 6px 10px;
        font-size: 10px;
    }
}

/* === HIDE CONFLICTING ELEMENTS === */
.tecp-page-wrapper .woocommerce-info,
.tecp-page-wrapper .woocommerce-message:not(.tecp-keep),
.tecp-page-wrapper h3#ship-to-different-address,
.tecp-page-wrapper .woocommerce-shipping-fields h3 {
    display: none;
}

/* Hide WooCommerce default notices about zones */
.tecp-page-wrapper .wc-block-components-notice-banner {
    display: none;
}

/* Hide ALL WooCommerce notices on plugin pages (shipping zone, debug, etc.) */
/* NOTE: .woocommerce-checkout .woocommerce-notices-wrapper intentionally NOT hidden —
   payment errors (declined card, 3DS cancel, etc.) land here after page reload.
   widgets.css show rules (.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-error)
   need the wrapper to be visible to work. Individual child types are filtered below. */
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-cart .wc-block-components-notice-banner,
.woocommerce-checkout .wc-block-components-notice-banner,
.woocommerce-account .wc-block-components-notice-banner {
    display: none !important;
}

/* === BLOCKSY / ELEMENTOR OVERRIDES === */
/* Remove Blocksy boxed content styles on plugin pages */
body.woocommerce-cart [class*="ct-container"] > article[class*="post"],
body.woocommerce-checkout [class*="ct-container"] > article[class*="post"],
body.woocommerce-account [class*="ct-container"] > article[class*="post"] {
    --has-boxed: var(--false) !important;
    background-color: transparent !important;
    --theme-boxed-content-spacing: 0px !important;
    --theme-boxed-content-box-shadow: none !important;
    --theme-boxed-content-border-radius: 0px !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Remove Blocksy content area spacing */
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
}

body.woocommerce-cart [class*="ct-container"],
body.woocommerce-checkout [class*="ct-container"],
body.woocommerce-account [class*="ct-container"] {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Force Elementor container to full width on these pages */
body.woocommerce-cart .elementor-element,
body.woocommerce-checkout .elementor-element,
body.woocommerce-account .elementor-element {
    max-width: 100% !important;
}

body.woocommerce-cart .elementor-container,
body.woocommerce-checkout .elementor-container,
body.woocommerce-account .elementor-container {
    max-width: 100% !important;
}

body.woocommerce-cart .e-con,
body.woocommerce-checkout .e-con,
body.woocommerce-account .e-con {
    --width: 100% !important;
    max-width: 100% !important;
}

/* Remove entry-content padding */
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
    padding: 0 !important;
    margin: 0 !important;
}

/* Remove page title area if theme adds one */
body.woocommerce-cart .entry-header,
body.woocommerce-cart .page-header,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .page-header,
body.woocommerce-checkout .page-title,
body.woocommerce-account .entry-header,
body.woocommerce-account .page-header,
body.woocommerce-account .page-title {
    display: none !important;
}

/* === EMPTY CART === */
.tecp-panel-narrow {
    max-width: 560px;
}

.tecp-empty-cart-content {
    text-align: center;
    padding: 3rem 2rem;
}

.tecp-empty-cart-message {
    font-size: 14px;
    color: #fff;
    margin-bottom: 8px;
    letter-spacing: 1px;
}

.tecp-empty-cart-sub {
    font-size: 12px;
    color: var(--tecp-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

.tecp-cart-empty-wrapper .tecp-continue-shopping {
    display: inline-block;
    margin-top: 0;
}

/* White theme empty cart */
.tecp-cart-white.tecp-cart-empty-wrapper .tecp-empty-cart-message {
    color: var(--tecp-w-text);
}

.tecp-cart-white.tecp-cart-empty-wrapper .tecp-empty-cart-sub {
    color: var(--tecp-w-secondary);
}
