/* ============================================
   THE EÏNN Elementor Widgets - Styles
   ============================================ */

/* === GLOBAL DESIGN TOKENS ===
   WAŻNE — NIE USUWAĆ. Zmienna --tecp-placeholder to jedyne miejsce
   które kontroluje kolor placeholder we wszystkich widgetach (cart, checkout,
   my account). Stripe UPE iframe: osobno w the-einn-custom-pages.php
   (colorTextPlaceholder). Indywidualne overrides możliwe przez bardziej
   specyficzne reguły CSS per strona/sekcja. */
:root {
    --tecp-placeholder: rgba(255,255,255,0.35);
}

/* reCAPTCHA v3 badge hidden — disclosure in Privacy Policy satisfies Google ToS */
.grecaptcha-badge { visibility: hidden !important; }

/* Remove Blocksy's global opacity:0.6 on ::placeholder for all pages where our CSS loads. */
input::placeholder, textarea::placeholder { opacity: 1 !important; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { opacity: 1 !important; }

/* === RESET === */
.tecp-w-cart-wrapper,
.tecp-w-cart-wrapper *,
.tecp-w-contact-wrapper,
.tecp-w-contact-wrapper * {
    box-sizing: border-box;
    font-family: Verdana, Geneva, sans-serif;
}

/* === CART WRAPPER ===
   No forced breakout - widget fills its parent Elementor container.
   Set background on the Elementor container (like Contact page). */
.tecp-w-cart-wrapper,
.tecp-w-contact-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* === HEADING === */
.tecp-w-heading {
    text-align: center;
    padding-top: 70px;
    margin-bottom: 24px;
}

/* Logged-out login heading — top spacing 70px, bottom spacing 82px */
.tecp-w-login-heading {
    padding-top: 70px !important;
    margin-bottom: 100px !important;
    flex-shrink: 0;
}

.tecp-w-title {
    font-size: 14px;
    font-weight: 400;
    color: #ffffff;
    /* Single source of truth for title letter-spacing across ALL widgets (cart, checkout,
       my account, contact, order-received). !important neutralises divergent per-page
       Elementor title_typo values (cart was 6.9px, account -1.3px) so every page title
       renders with the same spacing. To change site-wide, edit only this value. */
    letter-spacing: 5.5px !important;
    text-transform: lowercase;
    margin: 0;
}

/* === PANEL === */
.tecp-w-panel {
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    padding: 32px 40px;
    max-width: 960px;
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 0 auto;
    flex-shrink: 1;
    min-height: 0;
}

/* Panel width set by Elementor controls via classes */
.tecp-w-panel-full {
    width: 70%;
}

.tecp-w-panel-empty {
    width: 51%;
}

/* Custom scrollbar */
.tecp-w-panel::-webkit-scrollbar { width: 4px; }
.tecp-w-panel::-webkit-scrollbar-track { background: transparent; }
.tecp-w-panel::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }
.tecp-w-panel::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.35); }

/* Vertical layout narrower */
.tecp-w-vertical .tecp-w-panel-full { max-width: 780px; }

/* === CART INNER LAYOUT === */
.tecp-w-horizontal .tecp-w-cart-inner {
    display: flex;
    gap: 2.5rem;
    align-items: flex-start;
}

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

.tecp-w-horizontal .tecp-w-cart-divider {
    width: 1px;
    background: rgba(255,255,255,0.12);
    align-self: stretch;
    flex-shrink: 0;
}

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

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

/* === SECTION LABELS === */
.tecp-w-label {
    font-size: 11px;
    letter-spacing: 2px;
    color: rgba(255,255,255,0.45);
    margin-bottom: 12px;
}

/* === PRODUCT ITEMS === */
.tecp-w-item {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.25);
}

/* Last item: no separator, no padding-bottom — continue button's margin-top (1.5rem = 24px)
   provides the direct gap from last image to continue link. */
.tecp-w-products .tecp-w-item:last-of-type {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

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

.tecp-w-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

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

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

.tecp-w-item-meta {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    margin-bottom: 6px;
}

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

.tecp-w-item-price *,
.tecp-w-item-price .amount,
.tecp-w-item-price bdi,
.tecp-w-item-price .woocommerce-Price-amount,
.tecp-w-item-price .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
    color: inherit !important;
}

/* === QUANTITY CONTROLS === */
.tecp-w-qty-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

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

.tecp-w-qty-btn {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.08);
    cursor: pointer;
    font-size: 13px;
    color: rgba(255,255,255,0.5);
    transition: all 0.3s;
    user-select: none;
}

.tecp-w-qty-btn:hover {
    background: rgba(255,255,255,0.25);
    color: #fff;
}

.tecp-w-qty-value {
    width: 30px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    font-size: 12px;
    color: #fff;
}

/* === REMOVE BUTTON === */
.tecp-w-remove {
    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-w-remove:hover {
    transform: rotate(90deg);
    color: rgba(255,255,255,0.8);
}

/* === INTERACTIVE ELEMENTS - HOVER STATES === */
.tecp-w-continue {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    letter-spacing: 1px;
    margin-top: 1.5rem;
    display: inline-block;
    text-decoration: none;
    transition: color 0.3s ease, letter-spacing 0.3s ease;
}

.tecp-w-continue:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

/* === SHIPPING SECTION === */
.tecp-w-shipping-section {
    margin-bottom: 8px;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

/* Hide any residual table/th elements from WooCommerce shipping output */
.tecp-w-shipping-methods table,
.tecp-w-shipping-methods th,
.tecp-w-shipping-methods tr,
.tecp-w-shipping-methods td {
    display: contents !important;
    border: none !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Override WooCommerce shipping methods */
.tecp-w-cart-wrapper .woocommerce-shipping-methods,
.tecp-w-cart-wrapper .woocommerce-shipping-totals .woocommerce-shipping-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 8px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.tecp-w-cart-wrapper .woocommerce-shipping-methods li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    min-height: 44px !important;
    background: rgba(255,255,255,0.08) !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    list-style: none !important;
    border: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    position: relative !important;
}

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

/* Absolute overlay — covers full panel including li padding so entire rectangle is clickable.
   min-height: 44px fixes bottom: 0 not stretching when containing block uses min-height. */
.tecp-w-cart-wrapper .woocommerce-shipping-methods li label {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    min-height: 44px !important;
    width: auto !important;
    padding: 10px 14px 10px 40px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    z-index: 1 !important;
    cursor: pointer !important;
    font-size: 11px !important;
    color: rgba(255,255,255,0.5) !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    font-family: Verdana, Geneva, sans-serif !important;
    transition: color 0.3s !important;
    line-height: 1.3 !important;
}

/* Keep label dim on hover — only brighten when checked */
.tecp-w-cart-wrapper .woocommerce-shipping-methods li:hover label {
    color: rgba(255,255,255,0.5) !important;
}

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

/* Custom radio buttons - white circle, white dot inside.
   z-index: 2 — sits above the absolute label overlay so clicking the circle works directly. */
.tecp-w-cart-wrapper .woocommerce-shipping-methods li input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border: 2px solid rgba(255,255,255,0.4) !important;
    border-radius: 50% !important;
    background: transparent !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    top: 0px !important;
    z-index: 2 !important;
    outline: none !important;
    transition: border-color 0.3s !important;
}

.tecp-w-cart-wrapper .woocommerce-shipping-methods li input[type="radio"]:checked {
    border-color: #fff !important;
}

.tecp-w-cart-wrapper .woocommerce-shipping-methods li input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: #fff !important;
}

.tecp-w-cart-wrapper .woocommerce-shipping-methods .amount {
    margin-left: auto !important;
    font-size: 11px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

/* Shipping destination */
.tecp-w-cart-wrapper .woocommerce-shipping-destination {
    font-size: 11px;
    color: rgba(255,255,255,0.45);
    margin-top: 8px;
    margin-bottom: 2px;
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-cart-wrapper .woocommerce-shipping-destination strong {
    color: rgba(255,255,255,0.85);
    font-weight: 500;
}

/* Change address link */
.tecp-w-cart-wrapper .shipping-calculator-button {
    font-size: 11px !important;
    color: rgba(255,255,255,0.4) !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    font-weight: 400 !important;
    font-family: Verdana, Geneva, sans-serif !important;
    transition: color 0.3s ease !important;
    border-bottom: none !important;
    letter-spacing: 1px !important;
    display: inline-block !important;
    margin-top: 0px !important;
}

.tecp-w-cart-wrapper .shipping-calculator-button:hover {
    color: rgba(255,255,255,0.85) !important;
    text-decoration: none !important;
}

/* Shipping calculator form */
.tecp-w-cart-wrapper .shipping-calculator-form {
    margin-top: 12px !important;
    padding: 0 !important;
    background: none !important;
    backdrop-filter: none !important;
}

/* Calc fields container: flexbox column with gap for bulletproof equal spacing */
.tecp-w-cart-wrapper .tecp-w-calc-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Each calc row: zero margin/padding, let flexbox gap handle spacing */
.tecp-w-cart-wrapper .tecp-w-calc-row {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    display: block !important;
    position: relative !important;
    overflow: visible !important;
}

/* Legacy form-row class fallback */
.tecp-w-cart-wrapper .shipping-calculator-form .form-row {
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    display: block !important;
    width: 100% !important;
    float: none !important;
    position: relative !important;
    overflow: visible !important;
}

/* Select2 container inside calc rows — zero all spacing */
.tecp-w-cart-wrapper .tecp-w-calc-row .select2-container,
.tecp-w-cart-wrapper .tecp-w-calc-row .select2-container--default,
.tecp-w-cart-wrapper .shipping-calculator-form .select2-container,
.tecp-w-cart-wrapper .shipping-calculator-form .select2-container--default {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    display: block !important;
}

/* Kill any Select2 generated spacing */
.tecp-w-cart-wrapper .tecp-w-calc-row .select2-container .select2-selection {
    margin: 0 !important;
}

.tecp-w-cart-wrapper .tecp-w-calc-row .select2-container + .select2-container {
    margin-top: 0 !important;
}

/* Hidden native select — zero space via screen-reader technique */
.tecp-w-cart-wrapper .shipping-calculator-form select.country_select,
.tecp-w-cart-wrapper .shipping-calculator-form select.country_to_state {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    margin: -1px !important;
    padding: 0 !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form label {
    display: none !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form input[type="text"],
.tecp-w-cart-wrapper .shipping-calculator-form input[type="number"],
.tecp-w-cart-wrapper .shipping-calculator-form .input-text {
    width: 100% !important;
    height: 44px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    padding: 0 14px !important;
    color: #fff !important;
    font-size: 13px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    outline: none !important;
    transition: background 0.3s !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

.woocommerce-cart.woocommerce-page .tecp-w-cart-wrapper .shipping-calculator-form input.input-text::placeholder,
.woocommerce-cart.woocommerce-page .tecp-w-cart-wrapper .shipping-calculator-form input.input-text::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form input[type="text"]:focus,
.tecp-w-cart-wrapper .shipping-calculator-form .input-text:focus {
    background: rgba(255,255,255,0.15) !important;
}

/* Country select */
.tecp-w-cart-wrapper .shipping-calculator-form select,
.tecp-w-cart-wrapper .shipping-calculator-form .country_select {
    width: 100% !important;
    height: 44px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    padding: 0 14px !important;
    color: #fff !important;
    font-size: 13px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

/* Select2 wrapper for country */
.tecp-w-cart-wrapper .shipping-calculator-form .select2-container {
    width: 100% !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form .select2-selection {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form .select2-selection__rendered {
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    line-height: 44px !important;
    padding: 0 !important;
}

/* Select2 dropdown */
.select2-container--open .select2-dropdown {
    background: rgba(40,40,40,0.95) !important;
    border: none !important;
    border-radius: 0 !important;
}

.select2-container--open .select2-results__option {
    color: rgba(255,255,255,0.6) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 12px !important;
    padding: 8px 12px !important;
}

.select2-container--open .select2-results__option--highlighted,
.select2-container--open .select2-results__option:hover {
    background: rgba(255,255,255,0.12) !important;
    color: #fff !important;
}

.select2-container--open .select2-results__option[aria-selected="true"] {
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.8) !important;
}

.select2-container--open .select2-search__field {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 12px !important;
    padding: 8px !important;
    outline: none !important;
}

/* Select2 arrow */
.tecp-w-cart-wrapper .select2-selection__arrow {
    height: 44px !important;
    top: 0 !important;
    right: 8px !important;
}

.tecp-w-cart-wrapper .select2-selection__arrow b {
    border-color: rgba(255,255,255,0.4) transparent transparent transparent !important;
}

/* Update button */
.tecp-w-cart-wrapper .shipping-calculator-form button[type="submit"],
.tecp-w-cart-wrapper .shipping-calculator-form .button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 44px !important;
    padding: 0 14px !important;
    text-align: center !important;
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.6) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    letter-spacing: 2px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    text-transform: lowercase !important;
    margin-top: 0px !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

.tecp-w-cart-wrapper .shipping-calculator-form button[type="submit"]:hover,
.tecp-w-cart-wrapper .shipping-calculator-form .button:hover {
    background: rgba(255,255,255,0.25) !important;
    color: rgba(255,255,255,0.85) !important;
}

/* === TOTALS === */
.tecp-w-totals { margin-bottom: 1.25rem; }

.tecp-w-total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
}

.tecp-w-total-label {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-total-value {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-total-value *,
.tecp-w-total-value .amount,
.tecp-w-total-value bdi,
.tecp-w-total-value .woocommerce-Price-amount,
.tecp-w-total-value .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
    color: inherit !important;
    font-size: inherit !important;
}

.tecp-w-total-row.total {
    font-size: 14px;
    font-weight: 500;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.12);
    margin-top: 3px;
}

.tecp-w-total-row.total .tecp-w-total-label {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
}

.tecp-w-total-row.total .tecp-w-total-value {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
}

.tecp-w-total-row.total .tecp-w-total-value *,
.tecp-w-total-row.total .tecp-w-total-value .amount,
.tecp-w-total-row.total .tecp-w-total-value bdi {
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

/* === CHECKOUT TOTAL ROW — single separator (border-top) above the total.
   Color controlled via Elementor divider_color. Padding creates breathing room below. */
.tecp-w-checkout-totals .tecp-w-total-row.total {
    padding-bottom: 8px;
}


/* === ORDER NOTES DISCLAIMER === */
.tecp-w-order-notes-disclaimer {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 1px;
    margin: 4px 0 0 0;
    font-family: Verdana, Geneva, sans-serif;
}

/* === EXPRESS CHECKOUT === */
.tecp-w-express {
    margin-top: 8px;
    margin-bottom: 0;
}

/* Hide default WooCommerce checkout button + Blocksy empty div */
.tecp-w-express .checkout-button,
.tecp-w-express a.checkout-button,
.tecp-w-express a.wc-forward,
.tecp-w-express .ct-cart-totals-modules {
    display: none !important;
}

/* === BUTTONS === */
.tecp-w-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    padding: 0 14px;
    text-align: center;
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    border: none;
    cursor: pointer;
    transition: all 0.3s;
    text-decoration: none;
    box-sizing: border-box;
}

.tecp-w-btn:hover {
    background: rgba(255,255,255,0.25);
    color: #fff;
    text-decoration: none;
}

/* === EMPTY CART === */
.tecp-w-empty-cart {
    text-align: center;
    padding: 3rem 2rem;
}

.tecp-w-empty-title {
    font-size: 14px;
    color: #fff;
    margin-bottom: 16px;
    letter-spacing: 1px;
}

.tecp-w-empty-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    margin-bottom: 2rem;
    line-height: 1.6;
}

/* === WHITE THEME === */
.tecp-w-white .tecp-w-title { color: #000; }
.tecp-w-white .tecp-w-item-name { color: #000; }
.tecp-w-white .tecp-w-item-price,
.tecp-w-white .tecp-w-item-price * { color: #000 !important; }
.tecp-w-white .tecp-w-item-meta { color: #7a7a7a; }
.tecp-w-white .tecp-w-qty-value { color: #000; background: transparent; }
.tecp-w-white .tecp-w-qty-btn { background: transparent; color: #aaa; }
.tecp-w-white .tecp-w-qty-btn:hover { background: transparent; color: #000; }
.tecp-w-white .tecp-w-item { border-color: rgba(0,0,0,0.08); }
.tecp-w-white .tecp-w-label { color: #7a7a7a; }
.tecp-w-white .tecp-w-secondary { color: #7a7a7a; }
.tecp-w-white .tecp-w-remove { color: #ccc; }
.tecp-w-white .tecp-w-remove:hover { color: #666; }
.tecp-w-white .tecp-w-continue { color: #7a7a7a; }
.tecp-w-white .tecp-w-continue:hover { color: #000; }
.tecp-w-white .tecp-w-total-label { color: #7a7a7a; }
.tecp-w-white .tecp-w-total-value { color: #7a7a7a; }
.tecp-w-white .tecp-w-total-row.total .tecp-w-total-label,
.tecp-w-white .tecp-w-total-row.total .tecp-w-total-value,
.tecp-w-white .tecp-w-total-row.total .tecp-w-total-value * { color: #000 !important; }
.tecp-w-white .tecp-w-total-row.total { border-top-color: rgba(0,0,0,0.08); }
.tecp-w-white .tecp-w-cart-divider { background: rgba(0,0,0,0.08); }
.tecp-w-white .tecp-w-empty-title { color: #000; }
.tecp-w-white .tecp-w-empty-sub { color: #7a7a7a; }
.tecp-w-white .tecp-w-shipping-section { border-bottom-color: rgba(0,0,0,0.08); }

.tecp-w-white .tecp-w-btn {
    background: #fff;
    color: #000;
    border: 1px solid #000;
}
.tecp-w-white .tecp-w-btn:hover {
    background: #000;
    color: #fff;
}

/* White shipping */
.tecp-w-white .woocommerce-shipping-methods li { background: transparent !important; }
.tecp-w-white .woocommerce-shipping-methods li:hover,
.tecp-w-white .woocommerce-shipping-methods li:has(input:checked) { background: #f5f5f5 !important; }
.tecp-w-white .woocommerce-shipping-methods li label { color: #7a7a7a !important; }
.tecp-w-white .woocommerce-shipping-methods li:has(input:checked) label { color: #000 !important; }
.tecp-w-white .woocommerce-shipping-methods li input[type="radio"] { border-color: #ccc !important; }
.tecp-w-white .woocommerce-shipping-methods li input[type="radio"]:checked { border-color: #000 !important; }
.tecp-w-white .woocommerce-shipping-methods li input[type="radio"]:checked::after { background: #000 !important; }
.tecp-w-white .woocommerce-shipping-destination { color: #aaa; }
.tecp-w-white .woocommerce-shipping-destination strong { color: #000; }
.tecp-w-white .shipping-calculator-button { color: #7a7a7a !important; }
.tecp-w-white .shipping-calculator-button:hover { color: #000 !important; }

/* === HIDE CROSS-SELLS (scoped to widget only) === */
.tecp-w-cart-wrapper .cross-sells,
.tecp-w-cart-wrapper .cart-collaterals {
    display: none !important;
}

/* === HIDE WOO NOTICES === */
.tecp-w-cart-wrapper .woocommerce-info,
.tecp-w-cart-wrapper .woocommerce-message,
.tecp-w-cart-wrapper .woocommerce-error,
.tecp-w-cart-wrapper .woocommerce-notices-wrapper,
.tecp-w-cart-wrapper .wc-block-components-notice-banner {
    display: none !important;
}

/* === FORCE FONTS === */
.tecp-w-cart-wrapper,
.tecp-w-cart-wrapper *,
.tecp-w-cart-wrapper th,
.tecp-w-cart-wrapper td,
.tecp-w-cart-wrapper label,
.tecp-w-cart-wrapper input,
.tecp-w-cart-wrapper select,
.tecp-w-cart-wrapper button,
.tecp-w-cart-wrapper a,
.tecp-w-cart-wrapper p,
.tecp-w-cart-wrapper span,
.tecp-w-cart-wrapper .amount,
.tecp-w-cart-wrapper .woocommerce-Price-amount,
.tecp-w-cart-wrapper .woocommerce-Price-amount bdi,
.tecp-w-cart-wrapper .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
}

/* === FOOTER FIX for WooCommerce pages === */
/* Blocksy footer uses CSS Grid with custom properties set via [data-footer*="type-1"] on <body>.
   On WooCommerce pages the footer middle row collapses. We force the exact same values
   that Blocksy's dynamic global.css sets for the contact page, plus explicit padding
   as fallback in case the custom properties don't cascade properly. */

/* Blocksy natively sets correct --grid-template-columns and --container-spacing
   on WooCommerce pages, BUT padding-block doesn't apply (gets overridden to 0).
   We ONLY force the padding to match the contact page values.
   DO NOT override --grid-template-columns — Blocksy sets repeat(3,1fr) for bottom row. */

/* Middle row: padding 32px to match contact page (Blocksy sets --container-spacing:32px but padding stays 0) */
body.woocommerce-cart .ct-footer [data-row*="middle"] > div,
body.woocommerce-checkout .ct-footer [data-row*="middle"] > div,
body.woocommerce-account .ct-footer [data-row*="middle"] > div {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
}

/* Bottom row: padding 25px to match contact page (Blocksy sets --container-spacing:25px but padding stays 0) */
body.woocommerce-cart .ct-footer [data-row*="bottom"] > div,
body.woocommerce-checkout .ct-footer [data-row*="bottom"] > div,
body.woocommerce-account .ct-footer [data-row*="bottom"] > div {
    padding-top: 25px !important;
    padding-bottom: 25px !important;
}

/* === EXPRESS CHECKOUT === */
/* DOM structure (inspected via Chrome, v1.5.4):
   .tecp-w-express (inside .tecp-w-summary, ~300px wide)
     ├── .ppcp-button-container.ppcp_cart (PayPal PPCP / EasyPayment)
     │   ├── #ppcp_cart (PayPal + Pay Later — already in one row via plugin settings)
     │   ├── .google-pay-container (GPay via PPCP — 44px)
     │   ├── .apple-pay-container (Apple Pay via PPCP — 44px)
     │   └── .ppcp-proceed-to-checkout-button-separator ("Or" — hidden)
     ├── a.checkout-button (hidden)
     └── #wc-stripe-express-checkout-element (Stripe GPay — DUPLICATE, hidden)

   Strategy: Use PayPal PPCP for all express buttons (GPay, Apple Pay, PayPal).
   Hide Stripe express (duplicate GPay). Arrange PPCP buttons in a clean layout:
   Row 1: [GPay] [Apple Pay]
   Row 2: [PayPal + Pay Later] full width */

/* === EXPRESS CHECKOUT ===
   All 3 buttons from PayPal PPCP: GPay, Apple Pay, PayPal.
   PPCP creates separate containers for each — no min-width issues.
   Simple flexbox row, no scaling needed.
   Stripe hidden on cart (checkout page handles Card/Klarna/Clearpay via Stripe). */

/* Outer wrapper */
.tecp-w-express {
    margin-top: 8px !important;
    width: 100% !important;
}

/* 3 buttons in one row: GPay | Apple Pay | PayPal (~96px each at 300px panel) */
.tecp-w-express-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    align-items: stretch !important;
    width: 100% !important;
}

/* PPCP container: display:contents so children join the flex */
.tecp-w-express-inner .ppcp-button-container {
    display: contents !important;
}

/* All 3 equal width, sharp clip */
.tecp-w-express-inner .ppcp-button-container .google-pay-container,
.tecp-w-express-inner .ppcp-button-container .apple-pay-container,
.tecp-w-express-inner .ppcp-button-container #ppcp_cart {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    height: 44px !important;
    display: block !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0 round 0px) !important;
}

/* Order: GPay(1) Apple(2) PayPal(3) */
.tecp-w-express-inner .ppcp-button-container .google-pay-container { order: 1 !important; }
.tecp-w-express-inner .ppcp-button-container .apple-pay-container  { order: 2 !important; }
.tecp-w-express-inner .ppcp-button-container #ppcp_cart             { order: 3 !important; }

/* Force iframes/buttons inside to fill containers */
.tecp-w-express-inner .ppcp-button-container #ppcp_cart iframe,
.tecp-w-express-inner .ppcp-button-container .google-pay-container iframe,
.tecp-w-express-inner .ppcp-button-container .apple-pay-container iframe,
.tecp-w-express-inner .ppcp-button-container #ppcp_cart .paypal-buttons {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
}

/* Google Pay: sharp corners on the native button element + neutralize SDK hover */
.tecp-w-express-inner .ppcp-button-container .google-pay-container .gpay-card-info-container,
.tecp-w-express-inner .ppcp-button-container .google-pay-container .gpay-button,
.tecp-w-express-inner .ppcp-button-container .google-pay-container button.gpay-button,
.tecp-w-express-inner .ppcp-button-container .google-pay-container button[class*="gpay"] {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}

/* Neutralize any ::after overlay from border-inset class */
.tecp-w-express-inner .ppcp-button-container .google-pay-container button::after,
.tecp-w-express-inner .ppcp-button-container .google-pay-container button::before {
    display: none !important;
    content: none !important;
}

/* Neutralize GPay SDK hover (it grays to #343434) — keep black, let opacity do the work */
.tecp-w-express-inner .ppcp-button-container .google-pay-container .gpay-button:hover,
.tecp-w-express-inner .ppcp-button-container .google-pay-container button.gpay-button:hover,
.tecp-w-express-inner .ppcp-button-container .google-pay-container button[class*="gpay"]:hover {
    background-color: #000000 !important;
    box-shadow: none !important;
}

/* Apple Pay: sharp corners via CSS custom property (shadow DOM) + direct style */
.tecp-w-express-inner .ppcp-button-container .apple-pay-container apple-pay-button {
    --apple-pay-button-border-radius: 0px;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
}

/* Hide "Or" separator */
.tecp-w-express-inner .ppcp-proceed-to-checkout-button-separator {
    display: none !important;
}

/* Hidden: Stripe express (duplicate GPay) */
.tecp-w-express-inner #wc-stripe-express-checkout-element {
    display: none !important;
}

/* Transparency + hover: all 3 containers */
.tecp-w-express-inner .ppcp-button-container #ppcp_cart,
.tecp-w-express-inner .ppcp-button-container .google-pay-container,
.tecp-w-express-inner .ppcp-button-container .apple-pay-container {
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.tecp-w-express-inner .ppcp-button-container #ppcp_cart:hover,
.tecp-w-express-inner .ppcp-button-container .google-pay-container:hover,
.tecp-w-express-inner .ppcp-button-container .apple-pay-container:hover {
    opacity: 1 !important;
}

/* Hidden: default WooCommerce checkout button */
.tecp-w-express-inner > .checkout-button,
.tecp-w-express-inner > a.checkout-button,
.tecp-w-express-inner > a.wc-forward,
.tecp-w-express-inner > .ct-cart-totals-modules {
    display: none !important;
}

/* ============================================
   CHECKOUT WIDGET STYLES
   ============================================ */

/* === CHECKOUT RESET === */
.tecp-w-checkout-wrapper,
.tecp-w-checkout-wrapper * {
    box-sizing: border-box;
    font-family: Verdana, Geneva, sans-serif;
}

/* === CHECKOUT WRAPPER === */
.tecp-w-checkout-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* === CHECKOUT PANEL === */
.tecp-w-panel-checkout {
    width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Custom scrollbar for checkout panel */
.tecp-w-panel-checkout::-webkit-scrollbar { width: 4px; }
.tecp-w-panel-checkout::-webkit-scrollbar-track { background: transparent; }
.tecp-w-panel-checkout::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }
.tecp-w-panel-checkout::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.35); }

/* === CHECKOUT FORM RESET === */
.tecp-w-checkout-form {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}

.tecp-w-checkout-form::before,
.tecp-w-checkout-form::after {
    display: none !important;
}

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

.tecp-w-checkout-tab {
    font-size: 12px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 2px;
    cursor: pointer;
    padding: 4px 8px 4px 8px;
    border-bottom: 1px solid transparent;
    position: relative;
    transition: color 0.3s, background 0.25s;
    user-select: none;
}

.tecp-w-checkout-tab::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 8px;
    width: 0;
    height: 1px;
    background: #FFFFFFD6;
    transition: width 0.25s ease;
}

.tecp-w-checkout-tab.active {
    color: #fff;
    border-bottom-color: transparent;
    text-decoration: underline;
    text-decoration-color: #FFFFFFD6;
    text-underline-offset: 6px;
    text-decoration-thickness: 1px;
}

.tecp-w-checkout-tab:hover:not(.active) {
    color: #FFFFFFD6 !important;
}

.tecp-w-checkout-tab:hover:not(.active)::after {
    width: calc(100% - 16px);
}

.tecp-w-checkout-nav-sep {
    font-size: 12px;
    color: rgba(255,255,255,0.3);
    user-select: none;
}

/* === LOGIN HINT (non-logged-in users only) === */
.tecp-w-checkout-login-hint {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    letter-spacing: 0.5px;
    margin: 0 0 1.5rem 0;
    padding: 0;
}
.tecp-w-checkout-login-hint a {
    color: #FFFFFFA0;
    font-weight: bold;
    text-decoration: none;
}
.tecp-w-checkout-login-hint a:hover {
    color: #ffffff;
    text-decoration: none;
}
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-login-hint {
    color: rgba(0,0,0,0.45);
}
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-login-hint a {
    color: rgba(0,0,0,0.65);
    font-weight: bold;
}
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-login-hint a:hover {
    color: rgba(0,0,0,1);
}

/* === ADDRESS TABS (billing address | shipping address) === */
.tecp-w-checkout-address-nav {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.tecp-w-checkout-address-tab {
    flex: 1;
    min-width: 0;
    padding: 12px 16px;
    min-height: 44px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 11px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.6);
    background: rgba(255,255,255,0.08);
    cursor: pointer;
    transition: all 0.3s;
    user-select: none;
    overflow: hidden;
}

.tecp-w-checkout-address-tab.active {
    color: rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.25);
}

.tecp-w-checkout-address-tab:hover:not(.active) {
    background: rgba(255,255,255,0.12);
}

.tecp-w-checkout-address-sep {
    display: none;
}

/* Billing tab wrapper — animates in from right when checkbox unchecked */
.tecp-w-checkout-billing-tab-wrapper {
    flex: 1;
    min-width: 0;
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-width 0.3s ease, opacity 0.3s ease;
    display: block;
}
.tecp-w-checkout-billing-tab-wrapper .tecp-w-checkout-address-tab {
    white-space: nowrap;
    width: 100%;
    box-sizing: border-box;
}

/* Checkbox: billing same as shipping */
.tecp-w-checkout-billing-same-wrap {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}
.tecp-w-checkout-billing-same-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}
.tecp-w-checkout-billing-same-box {
    width: 16px;
    height: 16px;
    min-width: 16px;
    border: 1px solid rgba(255,255,255,0.3); /* color from Elementor checkbox_box_border_color */
    background: rgba(255,255,255,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, border-color 0.2s;
}
.tecp-w-checkout-billing-same-box.checked {
    background: rgba(255,255,255,0.25); /* color from Elementor checkbox_box_checked_color */
    border-color: rgba(255,255,255,0.25);
}
.tecp-w-checkout-billing-same-check {
    color: #fff;
    font-size: 12px;
    line-height: 1;
    visibility: hidden;
}
.tecp-w-checkout-billing-same-box.checked .tecp-w-checkout-billing-same-check {
    visibility: visible;
}
.tecp-w-checkout-billing-same-text {
    font-size: 12px;
    color: rgba(255,255,255,0.6); /* color from Elementor checkbox_text_color */
}

/* === CHECKOUT FIELDS === */

/* Field grid: WooCommerce generates <p> wrappers with form-row classes */
.tecp-w-checkout-field-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
}

/* All form rows: reset WooCommerce defaults */
.tecp-w-checkout-fields .form-row,
.tecp-w-checkout-fields p.form-row {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    display: block !important;
}

/* Half-width rows: first name + last name, city + postcode */
.tecp-w-checkout-fields .form-row-first,
.tecp-w-checkout-fields p.form-row-first {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}

.tecp-w-checkout-fields .form-row-last,
.tecp-w-checkout-fields p.form-row-last {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}

/* Force 2-column layout by field ID — bypasses WooCommerce UK locale class overrides */
/* Shipping: address_1 + address_2 paired, city + postcode paired */
.tecp-w-checkout-field-grid #shipping_address_1_field,
.tecp-w-checkout-field-grid #billing_city_field,
.tecp-w-checkout-field-grid #shipping_city_field {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}
.tecp-w-checkout-field-grid #shipping_address_2_field,
.tecp-w-checkout-field-grid #billing_postcode_field,
.tecp-w-checkout-field-grid #shipping_postcode_field {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}
/* Billing: address_1 is full width (no address_2 pair) */
.tecp-w-checkout-field-grid #billing_address_1_field {
    width: 100% !important;
    flex: 0 0 100% !important;
}
/* Shipping: phone + email paired */
.tecp-w-checkout-field-grid #shipping_phone_field,
.tecp-w-checkout-field-grid #shipping_email_field {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}

/* Wide rows */
.tecp-w-checkout-fields .form-row-wide,
.tecp-w-checkout-fields p.form-row-wide {
    width: 100% !important;
    flex: 0 0 100% !important;
}

/* === INPUT STYLING === */
.tecp-w-checkout-fields input[type="text"],
.tecp-w-checkout-fields input[type="email"],
.tecp-w-checkout-fields input[type="tel"],
.tecp-w-checkout-fields input[type="number"],
.tecp-w-checkout-fields input[type="url"],
.tecp-w-checkout-fields input[type="password"],
.tecp-w-checkout-fields textarea,
.tecp-w-checkout-fields .input-text {
    width: 100% !important;
    padding: 12px 16px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    outline: none !important;
    transition: background 0.3s !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.tecp-w-checkout-fields input:focus,
.tecp-w-checkout-fields textarea:focus,
.tecp-w-checkout-fields .input-text:focus {
    background: rgba(255,255,255,0.15) !important;
}

.woocommerce-checkout.woocommerce-page .tecp-w-checkout-wrapper .tecp-w-checkout-fields input::placeholder,
.woocommerce-checkout.woocommerce-page .tecp-w-checkout-wrapper .tecp-w-checkout-fields textarea::placeholder,
.woocommerce-checkout.woocommerce-page .tecp-w-checkout-wrapper .tecp-w-checkout-fields input::-webkit-input-placeholder,
.woocommerce-checkout.woocommerce-page .tecp-w-checkout-wrapper .tecp-w-checkout-fields textarea::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
    text-transform: lowercase !important;
}

/* Hide phantom zero-height flex items that create unwanted gaps */
.tecp-w-checkout-field-grid #woo_ml_subscribe_field {
    display: none !important;
}

/* Hide labels (placeholders are sufficient) */
.tecp-w-checkout-fields label {
    display: none !important;
}

/* But keep screen-reader text accessible */
.tecp-w-checkout-fields label .screen-reader-text,
.tecp-w-checkout-fields .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
}

/* Validation states */
.tecp-w-checkout-fields .woocommerce-invalid input {
    box-shadow: inset 0 0 0 1px rgba(255,80,80,0.5) !important;
}

.tecp-w-checkout-fields .woocommerce-validated input {
    box-shadow: none !important;
}

/* Front-end validation error — empty required field on Step 1 */
.tecp-w-checkout-fields .tecp-field-error input:not([type="hidden"]),
.tecp-w-checkout-fields .tecp-field-error textarea {
    box-shadow: inset 0 0 0 1px rgba(255,80,80,0.5) !important;
}
.tecp-w-checkout-fields .tecp-field-error .select2-selection {
    box-shadow: inset 0 0 0 1px rgba(255,80,80,0.5) !important;
}
.tecp-w-checkout-fields .tecp-field-error label {
    color: rgba(255,110,110,0.9) !important;
}

/* Required asterisks — hidden */
.tecp-w-checkout-fields .required,
.tecp-w-checkout-fields abbr.required {
    display: none !important;
}

/* Order notes: fixed height (2× normal field ~88px) + no resize handle */
.tecp-w-checkout-fields #order_comments {
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
    resize: none !important;
}

/* Character counter — positioned bottom-right of order_comments field */
#order_comments_field {
    position: relative !important;
}
.tecp-w-notes-counter {
    position: absolute;
    bottom: 8px;
    right: 10px;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    font-family: Verdana, Geneva, sans-serif;
    pointer-events: none;
    line-height: 1;
}

/* === SELECT / COUNTRY DROPDOWN === */
.tecp-w-checkout-fields select {
    width: 100% !important;
    padding: 12px 16px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

/* Select2 in checkout fields */
/* Inline span wrappers must be block to prevent baseline gap below Select2 */
.tecp-w-checkout-fields .woocommerce-input-wrapper {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}

/* Force rows containing Select2 to exact input height — eliminates ghost whitespace */
.tecp-w-checkout-fields .form-row:has(.select2-container),
.tecp-w-checkout-fields p.form-row:has(.select2-container) {
    height: 44px !important;
    overflow: hidden !important;
}

.tecp-w-checkout-fields .select2-container,
.tecp-w-checkout-fields .select2-container--default {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    line-height: normal !important;
}

/* Reset WooCommerce default margins on billing/shipping wrappers */
.tecp-w-checkout-wrapper .woocommerce-billing-fields,
.tecp-w-checkout-wrapper .woocommerce-shipping-fields {
    margin: 0 !important;
    padding: 0 !important;
}

.tecp-w-checkout-wrapper .woocommerce-billing-fields__field-wrapper,
.tecp-w-checkout-wrapper .woocommerce-shipping-fields__field-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

/* Kill any per-field-container margin WooCommerce or theme injects */
.tecp-w-checkout-wrapper [id$="_field"] {
    margin: 0 !important;
    padding: 0 !important;
}

.tecp-w-checkout-fields .select2-selection {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    transition: background 0.3s !important;
}

.tecp-w-checkout-fields .select2-selection:hover,
.tecp-w-checkout-fields .select2-container--open .select2-selection {
    background: rgba(255,255,255,0.15) !important;
}

.tecp-w-checkout-fields .select2-selection__rendered {
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    padding: 0 !important;
}

.tecp-w-checkout-fields .select2-selection__arrow {
    height: 44px !important;
    top: 0 !important;
    right: 12px !important;
}

.tecp-w-checkout-fields .select2-selection__arrow b {
    border-color: rgba(255,255,255,0.4) transparent transparent transparent !important;
}

/* Hidden native select behind Select2 */
.tecp-w-checkout-fields select.country_select,
.tecp-w-checkout-fields select.country_to_state,
.tecp-w-checkout-fields select.state_select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    margin: -1px !important;
    padding: 0 !important;
}

/* === ORDER SUMMARY ITEMS === */
.tecp-w-checkout-order-summary {
    margin-bottom: 1.5rem;
    /* padding-bottom and border-bottom removed — section separator replaced by product-level separators */
}

.tecp-w-checkout-order-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.25);
    margin-bottom: 20px;
}

/* Last product keeps separator (separates from costs), but 8px gap to costs instead of 20px */
.tecp-w-checkout-order-items .tecp-w-checkout-order-item:last-child {
    margin-bottom: 0;
}

.tecp-w-checkout-item-img {
    width: 60px;
    height: 75px;
    flex-shrink: 0;
    overflow: hidden;
    background: rgba(255,255,255,0.08);
}

.tecp-w-checkout-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

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

.tecp-w-checkout-item-name {
    font-size: 13px;
    color: #fff;
    margin-bottom: 4px;
}

.tecp-w-checkout-item-meta {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    margin-bottom: 2px;
}

.tecp-w-checkout-item-qty {
    font-size: 11px;
}

.tecp-w-checkout-item-price {
    font-size: 13px;
    color: #fff;
    flex-shrink: 0;
}

.tecp-w-checkout-item-price *,
.tecp-w-checkout-item-price .amount,
.tecp-w-checkout-item-price bdi,
.tecp-w-checkout-item-price .woocommerce-Price-amount,
.tecp-w-checkout-item-price .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
    color: inherit !important;
    font-size: inherit !important;
}

/* === CHECKOUT TOTALS === */
.tecp-w-checkout-totals {
    margin-top: 8px; /* 8px absolute gap: last product border-bottom → subtotal row */
}

.tecp-w-checkout-totals .tecp-w-total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 4px;
}

.tecp-w-checkout-totals .tecp-w-total-label {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
}

.tecp-w-checkout-totals .tecp-w-total-value {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
}

/* === CHECKOUT SHIPPING SECTION === */
.tecp-w-checkout-shipping-section {
    margin-bottom: 1.5rem;
    /* padding-bottom and border-bottom removed — section separator between shipping and payment removed */
}

/* Shipping label gets +2px vs global 12px to visually match the summary label gap */
.tecp-w-checkout-shipping-section .tecp-w-label {
    margin-bottom: 14px;
}

/* Reset browser default <ul> margin so padding-bottom controls the gap above separator exactly */
.tecp-w-checkout-shipping-section .woocommerce-shipping-methods {
    margin-bottom: 0 !important;
}

/* Reuse shipping method styles from cart (scoped to checkout wrapper too) */
.tecp-w-checkout-wrapper .woocommerce-shipping-methods,
.tecp-w-checkout-wrapper .tecp-w-shipping-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.tecp-w-checkout-wrapper .tecp-w-shipping-methods li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    min-height: 44px !important;
    background: rgba(255,255,255,0.08) !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    list-style: none !important;
    border: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    position: relative !important;
}

.tecp-w-checkout-wrapper .tecp-w-shipping-methods li:hover,
.tecp-w-checkout-wrapper .tecp-w-shipping-methods li:has(input:checked) {
    background: rgba(255,255,255,0.25) !important;
}

/* Absolute overlay — covers full panel including li padding so entire rectangle is clickable.
   min-height: 44px fixes bottom: 0 not stretching when containing block uses min-height. */
.tecp-w-checkout-wrapper .tecp-w-shipping-methods li label {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    min-height: 44px !important;
    width: auto !important;
    padding: 10px 14px 10px 40px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    z-index: 1 !important;
    cursor: pointer !important;
    font-size: 12px !important;
    color: rgba(255,255,255,0.5) !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    font-family: Verdana, Geneva, sans-serif !important;
    transition: color 0.3s !important;
    line-height: 1.3 !important;
}

/* Keep label dim on hover — only brighten when checked */
.tecp-w-checkout-wrapper .tecp-w-shipping-methods li:hover label {
    color: rgba(255,255,255,0.5) !important;
}

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

/* Custom radio buttons for checkout shipping.
   z-index: 2 — sits above the absolute label overlay so clicking the circle works directly. */
.tecp-w-checkout-wrapper .tecp-w-shipping-methods li input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border: 2px solid rgba(255,255,255,0.4) !important;
    border-radius: 50% !important;
    background: transparent !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    top: 0px !important;
    z-index: 2 !important;
    outline: none !important;
    transition: border-color 0.3s !important;
}

.tecp-w-checkout-wrapper .tecp-w-shipping-methods li input[type="radio"]:checked {
    border-color: #fff !important;
}

.tecp-w-checkout-wrapper .tecp-w-shipping-methods li input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: #fff !important;
}

.tecp-w-checkout-wrapper .tecp-w-shipping-methods .amount {
    margin-left: auto !important;
    font-size: 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

/* === PAYMENT SECTION — same width as shipping rows (normal panel width) === */
.tecp-w-checkout-payment-section {
    margin-bottom: 1.5rem;
}

/* Payment section label — badges are injected via JS into the saved-token "use new" label, not here */
.tecp-w-checkout-payment-section .tecp-w-label {
    display: block;
}

/* Override WooCommerce payment box */
.tecp-w-checkout-wrapper .woocommerce-checkout-payment {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.tecp-w-checkout-wrapper .woocommerce-checkout-payment::before,
.tecp-w-checkout-wrapper .woocommerce-checkout-payment::after {
    display: none !important;
}

/* Payment methods list */
.tecp-w-checkout-wrapper .wc_payment_methods,
.tecp-w-checkout-wrapper ul.wc_payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    border: none !important;
}

/* Hide gateway selector rows — Stripe UPE handles Card/Klarna/Clearpay internally */
.tecp-w-checkout-wrapper .wc_payment_methods li.wc_payment_method {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}

/* Stripe UPE: background on the outer li (full 1178px DOM width) rather than relying on
   the iframe's internal rendering which is offset 4px and ends short of the right edge.
   rgba matches Stripe's .Block backgroundColor from wc_stripe_upe_params. */
/* li.payment_method_stripe: transparent, no shadow.
   ID selectors beat Blocksy/WC class-level rules without needing extra !important fights. */
#payment .wc_payment_methods li.payment_method_stripe,
#payment .wc_payment_methods li.wc_payment_method,
.tecp-w-checkout-wrapper .wc_payment_methods li.payment_method_stripe,
.tecp-w-checkout-wrapper .wc_payment_methods li.wc_payment_method {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}
#payment .wc_payment_methods li.payment_method_stripe::before,
#payment .wc_payment_methods li.payment_method_stripe::after {
    display: none !important;
    box-shadow: none !important;
}

/* payment_box wrapper — remove shadow at every specificity level */
#payment .payment_box,
#payment .payment_box.payment_method_stripe,
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box {
    box-shadow: none !important;
}

/* Stripe UPE iframe width fix: Stripe internally offsets iframe.
   Extending container by 8px so content fills full 1178px. */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-upe-element {
    width: calc(100% + 8px) !important;
}

/* Stripe injects box-shadow inline on the <iframe> element itself via JS.
   Cannot override via appearance API — must target the iframe element in DOM. */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-upe-element iframe {
    box-shadow: none !important;
}

/* Hide gateway radio buttons and labels ("Payment options" / "PayPal" rows) */
.tecp-w-checkout-wrapper .wc_payment_methods .wc_payment_method > input[type="radio"],
.tecp-w-checkout-wrapper .wc_payment_methods .wc_payment_method > label {
    display: none !important;
}

/* Hide PayPal gateway entirely — express strip (GPay/Apple Pay/PayPal) handles it */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_method_wpg_paypal_checkout {
    display: none !important;
}

/* Stripe UPE payment box: shown/hidden by Stripe JS based on selected token.
   When saved token selected → UPE collapses. "Use a new payment method" → expands. */

/* Payment box container (wraps Stripe UPE iframe) */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    color: rgba(255,255,255,0.5) !important;
    font-size: 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    line-height: 1.5 !important;
}

/* Beat theme's #payment .payment_box ID-specificity rule (rgba 0.04 from Blocksy) */
#payment .payment_box,
#payment .payment_box.payment_method_stripe {
    background: transparent !important;
}

.tecp-w-checkout-wrapper .wc_payment_methods .payment_box::before,
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box::after {
    display: none !important;
}

.tecp-w-checkout-wrapper .wc_payment_methods .payment_box p {
    color: rgba(255,255,255,0.5) !important;
    font-size: 12px !important;
    margin: 0 0 8px !important;
}

.tecp-w-checkout-wrapper .wc_payment_methods .payment_box p:last-child {
    margin-bottom: 0 !important;
}

/* Stripe Elements container */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-elements-field,
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .StripeElement {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 12px 16px !important;
    margin-bottom: 8px !important;
    transition: background 0.3s !important;
}

.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-elements-field:last-child,
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .StripeElement:last-child {
    margin-bottom: 0 !important;
}

.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .StripeElement--focus {
    background: rgba(255,255,255,0.15) !important;
}

/* UPE accordion container must have no padding — it fills the full payment_box width.
   The generic .StripeElement rule above adds 16px padding which shrinks the iframe by 32px. */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-upe-element {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* Stripe inline card fields */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box .wc-stripe-elements-field input {
    background: transparent !important;
    border: none !important;
    color: #fff !important;
    font-size: 12px !important;
}

/* Payment box fieldset (some gateways use this) */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box fieldset {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
}

/* --- Stripe payment_box: saved card sub-list styling ---
   Stripe UPE with saved cards adds an inner <ul> with saved card options
   + a "Use a new payment method" entry. Style these like Option A rows. */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 10px 0 !important;
    border: none !important;
    background: none !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul > li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 0 7px 0 !important;
    background: none !important;
    border: none !important;
    border-top: none !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul > li:first-child {
    border-top: none !important;
}

/* Stripe saved-card radios */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 12px !important;
    height: 12px !important;
    border: 1.5px solid rgba(255,255,255,0.35) !important;
    border-radius: 50% !important;
    background: transparent !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    outline: none !important;
    transition: border-color 0.2s !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul input[type="radio"]:checked {
    border-color: #fff !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    background: #fff !important;
}

/* Stripe saved-card labels */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul label {
    font-size: 11px !important;
    color: rgba(255,255,255,0.5) !important;
    cursor: pointer !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    flex: 1 !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 400 !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe > ul input[type="radio"]:checked + label {
    color: #fff !important;
}

/* "Save payment information" checkbox.
   Dimensions/border/bg WITH !important: Stripe injects inline style="width:auto", Blocksy sets
   background:transparent and border-color via #payment ID selector (1,2,1 specificity) — must use
   !important to win. top:0 neutralizes Blocksy's top:var(--top,3px) offset.
   Elementor size slider and color controls use their own !important at higher specificity (0,6,1)
   and win the tie over our (0,4,1). */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe input[type="checkbox"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
    top: 0 !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    align-self: center !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
    background: rgba(255,255,255,0.08) !important;
    cursor: pointer !important;
    position: relative !important;
    outline: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    transition: background 0.2s, border-color 0.2s !important;
}

/* Hover specificity (0,7,1) — beats Elementor's checkbox_box_bg_color !important (0,6,1).
   Selector needs .wc_payment_methods + .woocommerce-SavedPaymentMethods-saveNew for the extra classes. */
.tecp-w-checkout-wrapper .wc_payment_methods .payment_box.payment_method_stripe .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"]:hover {
    border-color: rgba(255,255,255,0.5) !important;
    background: rgba(255,255,255,0.12) !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe input[type="checkbox"]:checked {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.5);
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe input[type="checkbox"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 3px !important;
    top: 0px !important;
    width: 5px !important;
    height: 8px !important;
    border: 1.5px solid #fff !important;
    border-top: none !important;
    border-left: none !important;
    transform: rotate(45deg) !important;
}

/* Save checkbox label — structural !important only; color/font from Elementor checkbox controls.
   display:block overrides WC's .form-row label{display:none} and is correct in flex context. */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe label[for*="stripe"] {
    display: block !important;
    cursor: pointer !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    flex: 1 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    align-self: center !important;
}

/* When no saved cards exist, the saved-methods UL contains only "Use a new payment method"
   — hide it so only the UPE accordion shows.
   :has(> li:only-child > input[value="new"]) targets ONLY the "no saved cards" state
   (the single child is the "new" radio), leaving real saved cards visible. */
.tecp-w-checkout-wrapper .wc-saved-payment-methods:has(> li:only-child > input[value="new"]) {
    display: none !important;
}

/* === SAVED PAYMENT METHODS — panel style matching shipping method rows ===
   All selectors use #payment (specificity 1,X,X) to beat the old
   .payment_box.payment_method_stripe > ul > li block (0,4,2) above. */

/* UL: flex column with 8px gap, no default list/margin */
#payment .woocommerce-SavedPaymentMethods {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 0 8px !important;
    list-style: none !important;
}

/* === UPE loading spinner ===
   While the BNPL warm-up updated_checkout (~2s WC AJAX) is in flight, the Step 2 container
   carries .tecp-upe-loading (toggled by JS). The UPE fieldset reserves height and shows a
   centred spinner so the payment area expands into a clear "loading" state instead of staying
   a collapsed hole that suddenly fills. Class is on our stable Step 2 div, so the rule re-applies
   to the freshly-rendered fieldset after WC replaces #payment. */
.tecp-w-checkout-wrapper .tecp-upe-loading fieldset.wc-payment-form,
.tecp-w-checkout-wrapper .tecp-upe-loading fieldset.wc-upe-form {
    position: relative;
    min-height: 96px;
}
.tecp-w-checkout-wrapper .tecp-upe-loading fieldset.wc-payment-form::after,
.tecp-w-checkout-wrapper .tecp-upe-loading fieldset.wc-upe-form::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    border: 2px solid rgba(255,255,255,0.18);
    border-top-color: rgba(255,255,255,0.7);
    border-radius: 50%;
    animation: tecp-upe-spin 0.7s linear infinite;
    pointer-events: none;
}
@keyframes tecp-upe-spin { to { transform: rotate(360deg); } }

/* Each LI: rectangular panel — border-top: none overrides old 0.06 separator.
   position: relative needed for absolute label overlay (full-panel click target). */
#payment .woocommerce-SavedPaymentMethods li {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    min-height: 44px !important;
    background: rgba(255,255,255,0.08) !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    list-style: none !important;
    border: none !important;
    border-top: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    font-family: Verdana, Geneva, sans-serif !important;
    position: relative !important;
}

/* Cascade font into Stripe-injected spans inside label */
#payment .woocommerce-SavedPaymentMethods li * {
    font-family: Verdana, Geneva, sans-serif !important;
}

#payment .woocommerce-SavedPaymentMethods li::before,
#payment .woocommerce-SavedPaymentMethods li::after {
    display: none !important;
}

#payment .woocommerce-SavedPaymentMethods li:hover,
#payment .woocommerce-SavedPaymentMethods li:has(input:checked) {
    background: rgba(255,255,255,0.25) !important;
}

/* Label — absolute overlay covering entire panel so clicking anywhere selects the radio.
   padding-left = li-padding(14px) + radio(16px) + gap(10px) = 40px, text starts after radio.
   min-height: 44px fixes bottom: 0 not stretching when containing block uses min-height. */
#payment .woocommerce-SavedPaymentMethods li label {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    min-height: 44px !important;
    width: auto !important;
    padding: 10px 14px 10px 40px !important;
    display: flex !important;
    align-items: center !important;
    z-index: 1 !important;
    cursor: pointer !important;
    font-size: 12px !important;
    color: rgba(255,255,255,0.5) !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    font-family: Verdana, Geneva, sans-serif !important;
    transition: color 0.3s !important;
    line-height: 1.3 !important;
}

/* Keep label dim on hover — only brighten when checked */
#payment .woocommerce-SavedPaymentMethods li:hover label {
    color: rgba(255,255,255,0.5) !important;
}

#payment .woocommerce-SavedPaymentMethods li:has(input:checked) label {
    color: #fff !important;
}

/* Custom radio — identical to shipping method radio.
   #payment boosts specificity to (1,2,2) to override Stripe's height:12px rule.
   z-index: 2 — sits above the absolute label overlay so clicking the circle works directly. */
#payment .woocommerce-SavedPaymentMethods li input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border: 2px solid rgba(255,255,255,0.4) !important;
    border-radius: 50% !important;
    background: transparent !important;
    flex-shrink: 0 !important;
    align-self: center !important;
    margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    top: 0px !important;
    z-index: 2 !important;
    outline: none !important;
    transition: border-color 0.3s !important;
}

#payment .woocommerce-SavedPaymentMethods li input[type="radio"]:checked {
    border-color: #fff !important;
}

#payment .woocommerce-SavedPaymentMethods li input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: #fff !important;
}

/* Save checkbox wrapper row — 44px height, same gray as express strip, no gap from UPE */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe .woocommerce-SavedPaymentMethods-saveNew,
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe p.woocommerce-SavedPaymentMethods-saveNew {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    min-height: 44px !important;
    padding: 0 16px !important;
    margin: 0 !important;
    border-top: 1px solid rgba(255,255,255,0.08) !important;
    background: rgba(255,255,255,0.05) !important;
}

/* Direct-child rules — override WC float/margin that breaks flex centering */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe .woocommerce-SavedPaymentMethods-saveNew > input[type="checkbox"] {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    flex-shrink: 0 !important;
}

.tecp-w-checkout-wrapper .payment_box.payment_method_stripe .woocommerce-SavedPaymentMethods-saveNew > label {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    flex: 1 !important;
    line-height: 1.4 !important;
}

/* In order-pay context, remove the separator above the save-payment checkbox —
   the UPE card form is absent so the border-top looks like a stray glassmorphism edge. */
.tecp-w-panel-order-pay .payment_box.payment_method_stripe .woocommerce-SavedPaymentMethods-saveNew,
.tecp-w-panel-order-pay .payment_box.payment_method_stripe p.woocommerce-SavedPaymentMethods-saveNew {
    border-top: none !important;
}

/* In checkout: when a saved card is selected the UPE form is hidden — border-top on saveNew
   becomes a stray separator with nothing above it. Also hide the entire saveNew checkbox —
   "Save payment info" only makes sense when entering a new card via UPE.
   Uses :has() (Chrome 105+, Firefox 121+, Safari 15.4+). */
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe:has(input[name="wc-stripe-payment-token"]:not([value="new"]):checked) .woocommerce-SavedPaymentMethods-saveNew,
.tecp-w-checkout-wrapper .payment_box.payment_method_stripe:has(input[name="wc-stripe-payment-token"]:not([value="new"]):checked) p.woocommerce-SavedPaymentMethods-saveNew {
    display: none !important;
}

/* --- Payment method badges on "Use a new payment method" panel ---
   PHP injects these inside the label — flex row pushed to the right side of the panel.
   Fixed equal width for all badges (based on longest label: "clearpay"). */
.tecp-payment-badges {
    display: flex;
    gap: 5px;
    margin-left: auto;
    flex-shrink: 0;
    align-items: center;
}

.tecp-payment-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    padding: 3px 0;
    font-size: 10px;
    letter-spacing: 0.5px;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
    text-transform: lowercase;
    font-family: Verdana, Geneva, sans-serif;
    flex-shrink: 0;
}

/* Card networks (visa, mc, amex) — neutral grey, more visible */
.tecp-payment-badge--card {
    background: rgba(255,255,255,0.24);
    color: rgba(255,255,255,0.88);
}

/* Klarna — brand pink, more saturated */
.tecp-payment-badge--klarna {
    background: rgba(255,100,145,0.30);
    color: rgba(255,185,210,0.95);
}

/* Clearpay — brand teal/mint, more saturated */
.tecp-payment-badge--clearpay {
    background: rgba(0,210,180,0.28);
    color: rgba(0,220,188,0.95);
}

/* Generic — grey, more visible (EU methods: iDEAL, BLIK, P24, etc.) */
.tecp-payment-badge--generic {
    background: rgba(255,255,255,0.24);
    color: rgba(255,255,255,0.88);
}

/* Keep badge visible but dim when panel is not selected (label color is dim).
   Badge uses own colors so no inheritance issue — just ensure pointer-events pass through. */
#payment .woocommerce-SavedPaymentMethods li label .tecp-payment-badges {
    pointer-events: none;
}

/* --- PayPal payment_box: hide — plain redirect gateway, no form needed.
   User selects PayPal → clicks place order → redirected to PayPal. */
.tecp-w-checkout-wrapper .payment_box.payment_method_wpg_paypal_checkout {
    display: none !important;
}

/* --- Checkout express section — identical architecture to cart express strip ---
   PPCP outputs: .ppcp-button-container.wpg_ppcp_full_width > fieldset > .wc_ppcp_express_checkout_gateways
                 > .express_payment_method_ppcp > #ppcp_checkout_top + #ppcp_checkout_top_alternative
                 + .google-pay-container.express_checkout + .apple-pay-container.express_checkout
   Now lives inside #order_review (payment section) — row 2 below Stripe UPE + save checkbox.
   Full-width matches panel edges (no side padding, uses parent negative margin). */

/* Express section: same width as place-order button (within panel padding, no bleed).
   height: 44px locks it to button height — prevents PPCP chrome from adding extra space. */
.tecp-w-checkout-express-section {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    border-top: none;
    margin-top: 0;
    padding: 0;
    height: 44px !important;
    overflow: hidden !important;
    box-sizing: content-box;
}

/* Remove all PPCP chrome — fieldset, legend, divider (same approach as cart) */
.tecp-w-checkout-express-section fieldset {
    display: block !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
}
.tecp-w-checkout-express-section .express-title,
.tecp-w-checkout-express-section .express-divider,
.tecp-w-checkout-express-section .ppcp-proceed-to-checkout-button-separator {
    display: none !important;
}

/* Strip all borders/bg from intermediate PPCP wrappers */
.tecp-w-checkout-express-section .ppcp-button-container {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    outline: none !important;
}
.tecp-w-checkout-express-section .wc_ppcp_express_checkout_gateways {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: none !important;
}

/* Flex container — mirrors .tecp-w-express-inner in cart */
.tecp-w-checkout-express-section .express_payment_method_ppcp {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
}

/* GPay + Apple Pay containers — flex items with clip */
/* PPCP sets max-width: 240px on these — override to allow equal 1/3 distribution */
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container,
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 44px !important;
    min-height: 44px !important;
    display: block !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
}
/* Apple Pay button renders black — fill container bg to match so transparent corners
   don't show the dark page background (same fix as gold for PayPal). */
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container {
    background-color: #000000 !important;
}
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container:hover,
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container:hover {
    opacity: 1 !important;
}

/* PayPal: #ppcp_checkout_top dissolves (display:contents) like #ppcp_cart in the cart widget.
   .paypal-buttons becomes direct flex item — inherits full flex + clip treatment. */
.tecp-w-checkout-express-section .express_payment_method_ppcp #ppcp_checkout_top {
    display: contents !important;
}
.tecp-w-checkout-express-section .express_payment_method_ppcp .paypal-buttons {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    display: block !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    /* PayPal iframe has transparent background — its internal button has border-radius ~4px.
       Without a background on this container, the dark page shows through at the 4 corners,
       making the button look rounded. #FFC439 fills those corners with PayPal gold so the
       button appears to have sharp corners. */
    background-color: #FFC439 !important;
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
    order: 3 !important;
}
.tecp-w-checkout-express-section .express_payment_method_ppcp .paypal-buttons:hover {
    opacity: 1 !important;
}

/* Order: GPay(1) Apple Pay(2) PayPal(3) — PayPal order set on .paypal-buttons (display:contents parent) */
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container { order: 1 !important; }
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container  { order: 2 !important; }
/* .paypal-buttons order: 3 already set in the rule above */

/* Iframes: fill container 100% × 44px, zero radius, clipped */
.tecp-w-checkout-express-section .express_payment_method_ppcp .paypal-buttons iframe,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container iframe,
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container iframe {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    border: none !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
}

/* GPay: sharp corners on native button + neutralize SDK hover (same as cart) */
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container .gpay-card-info-container,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container .gpay-button,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button.gpay-button,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button[class*="gpay"] {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    background-color: #000 !important;
    border: none !important;
    box-shadow: none !important;
}
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button::after,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button::before {
    display: none !important;
    content: none !important;
}
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container .gpay-button:hover,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button.gpay-button:hover,
.tecp-w-checkout-express-section .express_payment_method_ppcp .google-pay-container button[class*="gpay"]:hover {
    background-color: #000000 !important;
    box-shadow: none !important;
}

/* Apple Pay: sharp corners via custom property + fill (same as cart) */
.tecp-w-checkout-express-section .express_payment_method_ppcp .apple-pay-container apple-pay-button {
    --apple-pay-button-border-radius: 0px;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    display: block !important;
}

/* Hide alternative PayPal duplicate */
.tecp-w-checkout-express-section #ppcp_checkout_top_alternative {
    display: none !important;
}

/* Hide notices inside express section */
.tecp-w-checkout-express-section .woocommerce-info,
.tecp-w-checkout-express-section .woocommerce-message {
    display: none !important;
}

/* Hide section when empty (SDK not available) */
.tecp-w-checkout-express-section:empty {
    display: none !important;
}

/* Hide WooCommerce's native place order button — we use our own .tecp-w-checkout-place-order-btn */
.tecp-w-checkout-wrapper .place-order,
.tecp-w-checkout-wrapper #place_order,
.tecp-w-checkout-wrapper button#place_order,
.tecp-w-checkout-wrapper .woocommerce-checkout-payment button[type="submit"] {
    display: none !important;
}

/* === ORDER-PAY ENDPOINT ===
   Re-enable and style the native WC "Pay for order" button.
   Must come AFTER the hide rule above (same specificity — last wins). */



.tecp-w-panel-order-pay #place_order,
.tecp-w-panel-order-pay button#place_order {
    display: block !important;
    width: 100%;
    height: 44px;
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.5) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    text-transform: lowercase !important;
    cursor: pointer;
    margin-top: 0;
    transition: background 0.2s, color 0.2s;
}
.tecp-w-panel-order-pay #place_order:hover,
.tecp-w-panel-order-pay button#place_order:hover {
    background: rgba(255,255,255,0.25) !important;
    color: #fff !important;
}
/* Order-pay checkboxes (terms + newsletter) — our OWN markup (.tecp-w-checkout-checkboxes),
   injected by PHP, identical to the main checkout. The base .tecp-w-checkout-checkbox* rules
   already style box/checkmark/text/links, so we only set the wrapper spacing here to match
   the main checkout (margin-bottom: 1.5rem there). Any stray native WC terms wrapper is
   stripped in PHP, but hide it defensively in case a fragment remains. */
.tecp-w-panel-order-pay .woocommerce-terms-and-conditions-wrapper { display: none !important; }
/* Checkboxes sit between express buttons and the pay button. The base
   .tecp-w-checkout-checkboxes class (also on this div) provides display:flex/column +
   gap:10px between the two boxes — identical to the main checkout. Here we only set the
   vertical spacing: 1.5rem above (from express) and 1.5rem below (to pay now). */
.tecp-w-panel-order-pay .tecp-w-op-checkboxes {
    /* top gap to express buttons tightened (0.75rem); bottom gap to pay-now stays 1.5rem */
    margin: 0.75rem 0 1.5rem 0 !important;
    /* The .form-row is a flex column whose children inherit flex-basis:0% (from the
       express-button flex rules), which collapses our wrapper to height:0 + overflow:hidden.
       Force it back to natural height so the two checkboxes render. */
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}
/* WC's global `.form-row label { display:none }` hits our checkbox labels because the
   div lives inside WC's .form-row — that's why they collapsed to h:0. Force them back to
   the flex layout the main checkout uses (.tecp-w-checkout-checkbox-label: flex, align
   flex-start, gap 10px). */
.tecp-w-panel-order-pay .tecp-w-op-checkboxes .tecp-w-checkout-checkbox-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    flex: 0 0 auto !important;
    height: auto !important;
    overflow: visible !important;
    cursor: pointer !important;
    position: relative !important;
    /* Match the main checkout label spacing exactly — explicit 8px (same value as
       .tecp-w-checkout-checkbox-label) so label-to-label gap = 10px flex-gap + 8px = 18px
       in BOTH views, deterministic, never drifts. */
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}
/* The checkbox text span also gets WC's label-hiding / inline resets — restore it. */
.tecp-w-panel-order-pay .tecp-w-op-checkboxes .tecp-w-checkout-checkbox-text {
    display: inline !important;
    height: auto !important;
}
/* Hide native WC shop_table on order-pay — replaced by our custom order header */
.tecp-w-panel-order-pay .shop_table,
.tecp-w-panel-order-pay table.shop_table {
    display: none !important;
}
/* Hide Stripe Express Checkout Element — PPCP handles all express methods */
.tecp-w-panel-order-pay #wc-stripe-express-checkout-element {
    display: none !important;
}
/* Hide "— OR —" separators (Stripe injects <p id="wc-stripe-express-checkout-button-separator">) */
.tecp-w-panel-order-pay #wc-stripe-express-checkout-button-separator,
.tecp-w-panel-order-pay .ppcp-proceed-to-checkout-button-separator,
.tecp-w-panel-order-pay .express-divider {
    display: none !important;
}
/* Hide WC order attribution inputs (zero-height, harmless but tidy) */
.tecp-w-panel-order-pay wc-order-attribution-inputs {
    display: none !important;
}

/* === ORDER-PAY: element ordering
   DOM: table (hidden) → Stripe ECE (hidden) → attr (hidden) → OR (hidden) → #payment
   #payment contains: ul.wc_payment_methods + div.form-row
   div.form-row contains: save-checkbox input → terms (hidden) → #place_order → .ppcp-button-container
   Desired visual order: radios → save checkbox → PPCP express buttons → pay for order → back link */
.tecp-w-panel-order-pay #order_review {
    display: flex;
    flex-direction: column;
}
.tecp-w-panel-order-pay #order_review #payment {
    order: 1;
}
/* Hidden Stripe ECE / attr / OR separator pushed below (irrelevant, they're hidden) */
.tecp-w-panel-order-pay #order_review > *:not(#payment):not(table):not(.shop_table) {
    order: 2;
}
/* form-row inside #payment: flex column → PPCP container first, #place_order after */
.tecp-w-panel-order-pay #payment .form-row {
    display: flex;
    flex-direction: column;
    padding: 0;
}
/* Visual order inside .form-row: express buttons (1) → checkboxes (2) → pay now (3).
   Our injected checkboxes carry .tecp-w-op-checkboxes; without an explicit order they
   default to 0 and jump to the top, which is what broke the layout. */
.tecp-w-panel-order-pay #payment .form-row .ppcp-button-container { order: 1; }
.tecp-w-panel-order-pay #payment .form-row .tecp-w-op-checkboxes   { order: 2; margin: 0.75rem 0 1.5rem 0 !important; }
.tecp-w-panel-order-pay #place_order                               { order: 3; }

/* === ORDER-PAY: PPCP Express Checkout Buttons
   On order-pay, PPCP renders inside .form-row > .ppcp-button-container
   containing: #ppcp_order_pay (PayPal) + .google-pay-container + .apple-pay-container
   PPCP sets inline display:none (no !important) on each — CSS !important overrides it. */

/* Flex row — 3 equal buttons, 44px, flush against checkbox above */
.tecp-w-panel-order-pay .ppcp-button-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important; /* spacing to checkboxes handled by .tecp-w-op-checkboxes margin-top */
}

/* GPay: force visible (overrides inline display:none) + 1/3 width + 44px */
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container {
    display: block !important;
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: #000 !important;
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
    order: 1 !important;
}

/* Apple Pay: force visible + 1/3 width + 44px */
.tecp-w-panel-order-pay .ppcp-button-container .apple-pay-container {
    display: block !important;
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background-color: #000000 !important;
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
    order: 2 !important;
}

/* Hover opacity */
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container:hover,
.tecp-w-panel-order-pay .ppcp-button-container .apple-pay-container:hover {
    opacity: 1 !important;
}

/* PayPal: dissolve #ppcp_order_pay wrapper (display:contents) so .paypal-buttons
   becomes direct flex child of .ppcp-button-container (same as #ppcp_checkout_top on checkout) */
.tecp-w-panel-order-pay .ppcp-button-container #ppcp_order_pay {
    display: contents !important;
}
.tecp-w-panel-order-pay .ppcp-button-container .paypal-buttons {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    display: block !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background-color: #FFC439 !important;
    opacity: 0.72 !important;
    transition: opacity 0.3s ease !important;
    order: 3 !important;
}
.tecp-w-panel-order-pay .ppcp-button-container .paypal-buttons:hover {
    opacity: 1 !important;
}

/* Iframes: 100% × 44px, no border, clipped */
.tecp-w-panel-order-pay .ppcp-button-container .paypal-buttons iframe,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container iframe,
.tecp-w-panel-order-pay .ppcp-button-container .apple-pay-container iframe {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    border: none !important;
    overflow: hidden !important;
    clip-path: inset(0px) !important;
}

/* GPay: override SDK inline border-radius + neutralise hover */
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container .gpay-card-info-container,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container .gpay-button,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button.gpay-button,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button[class*="gpay"] {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 0 !important;
    background-color: #000 !important;
    border: none !important;
    box-shadow: none !important;
}
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button::after,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button::before {
    display: none !important;
    content: none !important;
}
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container .gpay-button:hover,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button.gpay-button:hover,
.tecp-w-panel-order-pay .ppcp-button-container .google-pay-container button[class*="gpay"]:hover {
    background-color: #000000 !important;
    box-shadow: none !important;
}

/* Apple Pay: override SDK inline --button-radius + sharp corners */
.tecp-w-panel-order-pay .ppcp-button-container .apple-pay-container apple-pay-button {
    --apple-pay-button-border-radius: 0px;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    display: block !important;
}

/* === ORDER-PAY: "processing" overlay (shown on Pay Now click until redirect) === */
.tecp-op-processing {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: #131313CC;
    backdrop-filter: blur(1.3px);
    -webkit-backdrop-filter: blur(1.3px);
    display: flex;
    align-items: center;
    justify-content: center;
}
.tecp-op-processing-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
}
.tecp-op-spinner {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(255,255,255,0.25);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: tecp-op-spin 0.8s linear infinite;
}
@keyframes tecp-op-spin { to { transform: rotate(360deg); } }
.tecp-op-processing-text {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: lowercase;
    color: rgba(255,255,255,0.85);
}

/* === ORDER-PAY: Back to orders link — 24px below pay-now, aligned left */
.tecp-w-op-back {
    display: block;
    align-self: flex-start;
    text-align: left;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    letter-spacing: 1px;
    margin-top: 24px;
    text-decoration: none;
    transition: color 0.3s ease;
}
.tecp-w-op-back:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

/* Hide terms checkbox container (use privacy text instead) */
.tecp-w-checkout-wrapper .woocommerce-terms-and-conditions-wrapper {
    display: none !important;
}

/* === PRIVACY NOTICE === */
.tecp-w-checkout-privacy {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    text-align: center;
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.tecp-w-checkout-privacy a,
.tecp-w-checkout-privacy strong {
    font-weight: 700;
    cursor: pointer;
    color: inherit;
    text-decoration: none;
}

.tecp-w-checkout-privacy a:hover,
.tecp-w-checkout-privacy strong:hover {
    color: rgba(255,255,255,0.7);
}

/* === CHECKBOXES (terms + newsletter) === */
.tecp-w-checkout-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 1.5rem;
}

.tecp-w-checkout-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    position: relative;
    /* explicit 8px (not WC-inherited 7.5px / 0.5rem) — deterministic label-to-label
       spacing so it never drifts between main checkout and order-pay. */
    margin: 0 0 8px 0;
}

/* Hide native checkbox */
.tecp-w-checkout-checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* Custom checkbox box */
.tecp-w-checkout-checkbox-box {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border: 1px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.08);
    margin-top: 1px;
    transition: background 0.2s, border-color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Checked state — show tick */
.tecp-w-checkout-checkbox:checked + .tecp-w-checkout-checkbox-box {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.6);
}

.tecp-w-checkout-checkbox:checked + .tecp-w-checkout-checkbox-box::after {
    content: '';
    display: block;
    width: 4px;
    height: 8px;
    border: 1.5px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translate(-1px, -1px);
}

.tecp-w-checkout-checkbox-text {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    line-height: 1.5;
    letter-spacing: 0.5px;
    font-family: Verdana, Geneva, sans-serif;
}

/* WYSIWYG wraps content in <p> — strip its margin so spacing stays tight */
.tecp-w-checkout-checkbox-text p {
    margin: 0;
    padding: 0;
    display: inline;
}

/* Links inside checkbox text — no underline, bold + color change on hover */
.tecp-w-checkout-checkbox-text a {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.2s;
}

.tecp-w-checkout-checkbox-text a:hover {
    color: #ffffff;
}

.tecp-w-checkout-checkbox-label:hover .tecp-w-checkout-checkbox-box,
.tecp-w-checkout-billing-same-label:hover .tecp-w-checkout-billing-same-box {
    border-color: rgba(255,255,255,0.5) !important;
    background: rgba(255,255,255,0.12) !important;
}

/* Terms checkbox error state — persistent until user ticks it (same visual as .woocommerce-invalid inputs).
   box-shadow inset matches: .tecp-w-checkout-fields .woocommerce-invalid input { box-shadow: rgba(255,80,80,0.5) 0 0 0 1px inset } */
.tecp-w-checkout-checkbox-box.tecp-checkbox-error {
    box-shadow: rgba(255,80,80,0.5) 0 0 0 1px inset !important;
    border-color: rgba(255,80,80,0.7) !important;
}

/* === BACK TO DETAILS LINK === */
.tecp-w-checkout-back {
    display: inline-block;
    text-align: left;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    cursor: pointer;
    letter-spacing: 1px;
    margin-top: 1.5rem;
    text-decoration: none;
    transition: color 0.3s ease;
}

/* Continue shopping in Step 1 — same spacing standard as cart / my account */
.tecp-w-checkout-step-1 .tecp-w-continue {
    margin-top: 1.5rem;
}

.tecp-w-checkout-back:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

/* === ADDITIONAL FIELDS (order notes) === */
.tecp-w-checkout-additional-fields {
    margin-top: 10px;
}

.tecp-w-checkout-additional-fields textarea {
    min-height: 60px !important;
    resize: vertical !important;
}

.tecp-w-checkout-continue-btn {
    margin-top: 24px !important;
}

/* === EXPRESS CHECKOUT (bottom of payment tab) === */
.tecp-w-checkout-express-section {
    margin-top: 0;
}

/* === HIDE UNWANTED WOO ELEMENTS IN CHECKOUT === */
.tecp-w-checkout-wrapper .woocommerce-info,
.tecp-w-checkout-wrapper .woocommerce-message,
.tecp-w-checkout-wrapper .woocommerce-error,
.tecp-w-checkout-wrapper .wc-block-components-notice-banner {
    display: none !important;
}
/* Hide notices-wrapper success messages (notices-wrapper itself NOT hidden —
   server-side errors/notices land here after page reload and must be visible) */
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-message {
    display: none !important;
}

/* Payment errors/notices (declined card, gateway failure, 3DS cancel) — three sources:
   1. JS-injected by WC into form.checkout (0,3,2) beats hide rule (0,2,1)
   2. Server-side redirect → notices-wrapper .woocommerce-error (declined/failed)
   3. Server-side redirect → notices-wrapper .woocommerce-info (3DS cancelled by user)
   Style matches .woocommerce-password-strength.short (unified error palette). */
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-info,
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-error,
.tecp-w-checkout-wrapper .tecp-payment-error-top .woocommerce-error,
.tecp-w-checkout-wrapper form.checkout .woocommerce-error {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    background: rgba(255,65,65,0.14) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 10px 14px !important;
    margin: 0 0 20px !important;
    list-style: none !important;
}
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-info li,
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-error li,
.tecp-w-checkout-wrapper .tecp-payment-error-top .woocommerce-error li,
.tecp-w-checkout-wrapper form.checkout .woocommerce-error li {
    color: rgba(255,155,155,0.88) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-info::before,
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-info a,
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-error::before,
.tecp-w-checkout-wrapper .woocommerce-notices-wrapper .woocommerce-error a,
.tecp-w-checkout-wrapper .tecp-payment-error-top .woocommerce-error::before,
.tecp-w-checkout-wrapper .tecp-payment-error-top .woocommerce-error a,
.tecp-w-checkout-wrapper form.checkout .woocommerce-error::before,
.tecp-w-checkout-wrapper form.checkout .woocommerce-error a {
    display: none !important;
}

/* Coupon form (if shown via WooCommerce before_checkout_form hook) */
.tecp-w-checkout-wrapper .checkout_coupon {
    background: rgba(255,255,255,0.05) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 12px 16px !important;
    margin-bottom: 1rem !important;
    display: flex !important;
    gap: 8px !important;
}

.tecp-w-checkout-wrapper .checkout_coupon input[type="text"] {
    flex: 1 !important;
    padding: 10px 14px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 12px !important;
    outline: none !important;
}

.tecp-w-checkout-wrapper .checkout_coupon button {
    padding: 10px 20px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: rgba(255,255,255,0.5) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
}

.tecp-w-checkout-wrapper .checkout_coupon button:hover {
    background: rgba(255,255,255,0.25) !important;
    color: #fff !important;
}

/* === FORCE FONTS in CHECKOUT === */
.tecp-w-checkout-wrapper,
.tecp-w-checkout-wrapper *,
.tecp-w-checkout-wrapper th,
.tecp-w-checkout-wrapper td,
.tecp-w-checkout-wrapper label,
.tecp-w-checkout-wrapper input,
.tecp-w-checkout-wrapper select,
.tecp-w-checkout-wrapper button,
.tecp-w-checkout-wrapper a,
.tecp-w-checkout-wrapper p,
.tecp-w-checkout-wrapper span,
.tecp-w-checkout-wrapper .amount,
.tecp-w-checkout-wrapper .woocommerce-Price-amount,
.tecp-w-checkout-wrapper .woocommerce-Price-amount bdi,
.tecp-w-checkout-wrapper .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
}

/* === WHITE THEME FOR CHECKOUT === */
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-tab {
    color: rgba(0,0,0,0.35);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-tab.active {
    color: #000;
    border-bottom-color: transparent;
    text-decoration-color: rgba(0,0,0,0.84);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-tab::after {
    background: rgba(0,0,0,0.84);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-tab:hover:not(.active) {
    color: rgba(0,0,0,0.84);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-nav-sep {
    color: rgba(0,0,0,0.2);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-address-tab {
    color: rgba(0,0,0,0.5);
    background: rgba(0,0,0,0.04);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-address-tab.active {
    color: #000;
    background: rgba(0,0,0,0.08);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields input,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields textarea,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields select {
    background: rgba(0,0,0,0.04) !important;
    color: #000 !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields input::placeholder,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields textarea::placeholder {
    color: rgba(0,0,0,0.4) !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields input:focus,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields textarea:focus {
    background: rgba(0,0,0,0.08) !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields .select2-selection {
    background: rgba(0,0,0,0.04) !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-fields .select2-selection__rendered {
    color: #000 !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-item-name { color: #000; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-item-meta { color: #7a7a7a; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-item-price,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-item-price * { color: #000 !important; }

/* order-summary and shipping-section section borders removed — white-theme overrides no longer needed */

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li { background: transparent !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li:hover,
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li:has(input:checked) { background: #f5f5f5 !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li label { color: #7a7a7a !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li:has(input:checked) label { color: #000 !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li input[type="radio"] { border-color: #ccc !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li input[type="radio"]:checked { border-color: #000 !important; }
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-shipping-methods li input[type="radio"]:checked::after { background: #000 !important; }

.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods li.wc_payment_method {
    background: transparent !important;
    border-top-color: rgba(0,0,0,0.08) !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .wc_payment_method > label,
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .wc_payment_method > input + label {
    color: #7a7a7a !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .wc_payment_method input[type="radio"]:checked + label {
    color: #000 !important;
    background: #f5f5f5 !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .wc_payment_method > label::before {
    border-color: #ccc !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .wc_payment_method input[type="radio"]:checked + label::before {
    border-color: #000 !important;
    background: #000 !important;
    box-shadow: inset 0 0 0 3px #f5f5f5 !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .payment_box {
    background: rgba(0,0,0,0.02) !important;
    color: #7a7a7a !important;
}
.tecp-w-checkout-wrapper.tecp-w-white .wc_payment_methods .payment_box p {
    color: #7a7a7a !important;
}

.tecp-w-checkout-wrapper.tecp-w-white #place_order,
.tecp-w-checkout-wrapper.tecp-w-white button#place_order {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
}
.tecp-w-checkout-wrapper.tecp-w-white #place_order:hover,
.tecp-w-checkout-wrapper.tecp-w-white button#place_order:hover {
    background: #000 !important;
    color: #fff !important;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-privacy {
    color: rgba(0,0,0,0.4);
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-back {
    color: #7a7a7a;
}
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-checkout-back:hover {
    color: #000;
}

.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-btn {
    background: #fff;
    color: #000;
    border: 1px solid #000;
}
.tecp-w-checkout-wrapper.tecp-w-white .tecp-w-btn:hover {
    background: #000;
    color: #fff;
}

/* ============================================
   MY ACCOUNT WIDGET STYLES
   ============================================ */

/* === MY ACCOUNT RESET === */
.tecp-w-myaccount-wrapper,
.tecp-w-myaccount-wrapper * {
    box-sizing: border-box;
    font-family: Verdana, Geneva, sans-serif;
}

/* === MY ACCOUNT WRAPPER === */
.tecp-w-myaccount-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ============================
   LOGIN / REGISTER OVERLAY
   ============================ */
.tecp-w-myaccount-overlay {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 0 0 3rem 0;
}

/* Login panel — width controlled by Elementor control (default 800px) */
.tecp-w-myaccount-login-panel {
    position: relative;
    z-index: 1;
    width: 100% !important;
    max-width: 800px !important;
    padding: 3.5rem 5rem !important;
    box-sizing: border-box;
}

/* Auth tabs (login | register) */
.tecp-w-myaccount-auth-nav {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
    overflow: hidden;
}

.tecp-w-myaccount-auth-tab {
    flex: 1;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    text-align: center;
    font-size: 11px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.5);
    background: rgba(255,255,255,0.08);
    cursor: pointer;
    transition: all 0.3s;
    user-select: none;
    box-sizing: border-box;
}

.tecp-w-myaccount-auth-tab.active {
    color: #fff;
    background: rgba(255,255,255,0.25);
}

.tecp-w-myaccount-auth-tab:hover:not(.active) {
    background: rgba(255,255,255,0.25);
}

.tecp-w-myaccount-auth-sep {
    display: none; /* flush tabs, no visible separator */
}

/* Form fields */
.tecp-w-myaccount-field {
    margin-bottom: 10px;
}

.tecp-w-myaccount-field input[type="text"],
.tecp-w-myaccount-field input[type="email"],
.tecp-w-myaccount-field input[type="password"] {
    width: 100%;
    padding: 12px 16px;
    background: rgba(255,255,255,0.08);
    border: none;
    border-radius: 0;
    color: #fff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    outline: none;
    transition: background 0.3s;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.tecp-w-myaccount-field input:focus {
    background: rgba(255,255,255,0.15);
}

body.woocommerce-account.woocommerce-page .tecp-w-myaccount-wrapper .tecp-w-myaccount-field input::placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px;
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-wrapper .tecp-w-myaccount-field input::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px;
}

/* Name row (first + last in register) */
.tecp-w-myaccount-name-row {
    display: flex;
    gap: 10px;
    margin-bottom: 0; /* child .tecp-w-myaccount-field has margin */
}

.tecp-w-myaccount-name-row .tecp-w-myaccount-field {
    flex: 1;
}

/* Remember me / forgot password row */
.tecp-w-myaccount-remember-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    min-height: 20px;
}

.tecp-w-myaccount-remember {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    line-height: 1;
    margin: 0;
    padding: 0;
}

.tecp-w-myaccount-remember input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    min-width: 16px;
    border: 1px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.08);
    cursor: pointer;
    position: relative;
    margin: 0;
    flex-shrink: 0;
    transition: border-color 0.3s, background 0.3s;
    box-sizing: border-box;
}

.tecp-w-myaccount-remember input[type="checkbox"]:hover {
    border-color: rgba(255,255,255,0.5);
    background: rgba(255,255,255,0.12);
}

.tecp-w-myaccount-remember input[type="checkbox"]:checked {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.6);
}

.tecp-w-myaccount-remember input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4px;
    height: 7px;
    border: 1.5px solid #ffffff;
    border-top: none;
    border-left: none;
    transform: translate(-50%, -60%) rotate(45deg);
}

.tecp-w-myaccount-remember span {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    line-height: 1;
}

.tecp-w-myaccount-forgot {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    line-height: 1;
    transition: color 0.3s;
    margin: 0;
    padding: 0;
}

.tecp-w-myaccount-forgot:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

/* Lost password — description text */
.tecp-w-lost-password-desc {
    font-size: 12px;
    letter-spacing: 1px;
    color: #FFFFFF80;
    line-height: 1.7;
    margin: 0 0 20px 0;
    font-family: Verdana, Geneva, sans-serif;
}

/* === LOST PASSWORD — full flow UI === */

/* Subtitle inside header strip */
.tecp-w-lostpw-subtitle {
    font-size: 9px;
    letter-spacing: 2px;
    color: rgba(255,255,255,0.25);
    text-transform: uppercase;
    margin: 0;
    font-family: Verdana, Geneva, sans-serif;
}

/* Heading has no bottom gap — header strip fills the 82px */
.tecp-w-lostpw-heading {
    margin-bottom: 0 !important;
}

/* Fixed 100px strip: subtitle 9px from title, dots 20px above panel */
.tecp-w-lostpw-header-strip {
    height: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0 20px;
}

/* Step dots row */
.tecp-w-lostpw-steps {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0;
}
.tecp-w-lostpw-dot-wrap {
    display: flex;
    align-items: center;
}
.tecp-w-lostpw-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    color: rgba(255,255,255,0.2);
    letter-spacing: 0;
    transition: all 0.4s;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-lostpw-dot.active {
    border-color: rgba(255,255,255,0.8);
    color: #fff;
    background: rgba(255,255,255,0.1);
}
.tecp-w-lostpw-dot.done {
    border-color: rgba(255,255,255,0.35);
    color: rgba(255,255,255,0.4);
    background: rgba(255,255,255,0.05);
}
.tecp-w-lostpw-dot-line {
    width: 46px;
    height: 1px;
    background: rgba(255,255,255,0.1);
    transition: background 0.4s;
}
.tecp-w-lostpw-dot-line.done {
    background: rgba(255,255,255,0.28);
}

/* Narrower panel for the simpler lost-password content — controlled by Elementor */
.tecp-w-lostpw-panel {
    max-width: 460px !important;
    padding: 3.5rem 5rem !important;
    max-height: calc(70vh + 100px) !important;
}

/* Section label — small uppercase heading inside panel */
.tecp-w-lostpw-section-label {
    font-size: 10px;
    letter-spacing: 2.5px;
    color: rgba(255,255,255,0.35);
    text-transform: uppercase;
    margin-bottom: 14px;
    font-family: Verdana, Geneva, sans-serif;
}

/* Divider that reveals with the check-inbox section */
.tecp-w-lostpw-divider-reveal {
    height: 1px;
    background: rgba(255,255,255,0.25) !important;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease 0.1s, opacity 0.3s ease 0.1s;
}
.tecp-w-lostpw-divider-reveal.open {
    max-height: 2px;
    margin-top: 18px;
    opacity: 1;
}

/* Reveal container — animates open after AJAX success */
.tecp-w-lostpw-reveal {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.65s cubic-bezier(0.4,0,0.2,1), opacity 0.5s ease;
}
.tecp-w-lostpw-reveal.open {
    max-height: 1200px;
    opacity: 1;
}

/* Info box: sent-to email + note */
.tecp-w-lostpw-info-box {
    background: rgba(255,255,255,0.05);
    padding: 12px 14px;
    margin: 12px 0 18px;
}
.tecp-w-lostpw-email-hl {
    color: rgba(255,255,255,0.85);
    font-size: 12px;
    display: block;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-lostpw-info-box p {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    line-height: 1.7;
    margin: 0;
    font-family: Verdana, Geneva, sans-serif;
}

/* Expect list (01/02/03) */
.tecp-w-lostpw-expect-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-bottom: 18px;
}
.tecp-w-lostpw-expect-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}
.tecp-w-lostpw-expect-num {
    font-size: 11px;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.2);
    flex-shrink: 0;
    margin-top: 2px;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-lostpw-expect-text {
    font-size: 11px;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.45);
    line-height: 1.65;
    margin: 0;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-lostpw-expect-text span {
    color: rgba(255,255,255,0.75);
}

/* Separator inside reveal */
.tecp-w-lostpw-sep {
    height: 1px;
    background: rgba(255,255,255,0.25) !important;
    margin: 16px 0 0;
}

/* Resend row */
.tecp-w-lostpw-resend-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0 0;
}
.tecp-w-lostpw-resend-link {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    cursor: pointer;
    letter-spacing: 1px;
    transition: color 0.2s;
    font-family: Verdana, Geneva, sans-serif;
    text-decoration: none;
}
.tecp-w-lostpw-resend-link:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}
.tecp-w-lostpw-resend-link.disabled {
    opacity: 0.35;
    pointer-events: none;
}
.tecp-w-lostpw-timer {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    letter-spacing: 1px;
    font-family: Verdana, Geneva, sans-serif;
}

/* Disclaimer (WYSIWYG — TinyMCE wraps in <p>, flatten it) */
.tecp-w-lostpw-disclaimer {
    font-size: 11px;
    letter-spacing: 1px;
    color: #FFFFFF80;
    line-height: 1.75;
    margin-top: 14px;
    margin-bottom: 0;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-lostpw-disclaimer p { display: inline; margin: 0; }
.tecp-w-lostpw-disclaimer a {
    color: #FFFFFFA0;
    text-decoration: none;
    font-weight: 700;
    transition: color 0.2s;
}
.tecp-w-lostpw-disclaimer a:hover {
    color: #FFFFFFFF;
    text-decoration: none;
}

/* "← use a different email" link inside reveal */
.tecp-w-lostpw-diff-email {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    letter-spacing: 1px;
    cursor: pointer;
    margin-top: 24px;
    display: inline-flex !important;
    transition: color 0.2s;
    text-decoration: none;
    font-family: Verdana, Geneva, sans-serif;
    border-bottom: none;
}
.tecp-w-lostpw-diff-email:hover {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    border-bottom: none;
}

/* Password requirements box */
.tecp-w-lostpw-pw-req {
    margin-top: 0;
    margin-bottom: 0;
    padding: 10px 14px;
    background: rgba(255,255,255,0.08);
    border-left: none;
}
.tecp-w-myaccount-reset-form .tecp-w-myaccount-submit {
    margin-top: 10px !important;
}
.tecp-w-lostpw-reset-sep {
    height: 1px;
    background: rgba(255,255,255,0.25);
    margin: 24px 0 0;
}
.tecp-w-lostpw-back-login {
    margin-top: 24px !important;
}
.tecp-w-lostpw-signin-btn {
    margin-top: 24px;
}
.tecp-w-lostpw-complete-circle {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.35);
    background: rgba(255,255,255,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: rgba(255,255,255,0.75);
    margin: 0 auto 20px;
    letter-spacing: 0;
}
.tecp-w-lostpw-complete-title {
    margin-bottom: 12px;
    text-align: center;
}
.tecp-w-lostpw-step3-sep {
    margin-top: 18px;
    margin-bottom: 0;
}
.tecp-w-lostpw-step3-confirm {
    margin-top: 18px;
    text-align: left;
    color: rgba(255,255,255,0.38);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 10px;
    letter-spacing: 0.5px;
    line-height: 1.8;
}
.tecp-w-lostpw-step3-confirm a {
    color: #FFFFFFA0 !important;
    font-weight: bold !important;
    text-decoration: none !important;
    transition: color 0.2s;
}
.tecp-w-lostpw-step3-confirm a:hover {
    color: #FFFFFF !important;
    text-decoration: none !important;
}
.tecp-w-lostpw-step3-confirm p {
    display: inline;
    margin: 0;
}
.tecp-w-lostpw-pw-req .req-header {
    font-size: 10px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.18);
    margin-bottom: 6px;
    font-family: Verdana, Geneva, sans-serif;
}
.tecp-w-req-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 10px;
}
.tecp-w-lostpw-pw-req p {
    font-size: 10px;
    color: rgba(255,255,255,0.28);
    letter-spacing: 0.5px;
    line-height: 1.9;
    margin: 0;
    font-family: Verdana, Geneva, sans-serif;
}
/* ID selectors (1,0,1) beat Elementor's pw_req_typography inline style (0,4,1) */
#tecp-reg-req p.met,
#tecp-reset-req p.met,
#tecp-ty-req p.met,
#tecp-profile-req p.met {
    color: rgba(160,220,160,0.7) !important;
}

/* Password mismatch error */
.tecp-w-lostpw-pw-mismatch {
    font-size: 10px;
    color: rgba(220,100,80,0.7);
    margin: -4px 0 10px;
    display: none;
    font-family: Verdana, Geneva, sans-serif;
    letter-spacing: 0.5px;
}

/* WooCommerce notices inside login panel (success / error after form submit) */
.tecp-w-myaccount-login-panel .woocommerce-message,
.tecp-w-myaccount-login-panel .woocommerce-info {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-left: 2px solid rgba(255,255,255,0.4) !important;
    color: rgba(255,255,255,0.85) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
    padding: 12px 16px !important;
    margin: 0 0 20px 0 !important;
    list-style: none !important;
    border-radius: 0 !important;
}
.tecp-w-myaccount-login-panel .woocommerce-message::before,
.tecp-w-myaccount-login-panel .woocommerce-info::before {
    display: none !important;
}
.tecp-w-myaccount-login-panel .woocommerce-error {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    background: rgba(255,65,65,0.14) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 10px 14px !important;
    margin: 0 0 20px 0 !important;
    list-style: none !important;
}
.tecp-w-myaccount-login-panel .woocommerce-error li {
    color: rgba(255,155,155,0.88) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.tecp-w-myaccount-login-panel .woocommerce-error::before,
.tecp-w-myaccount-login-panel .woocommerce-error a {
    display: none !important;
}

/* Lost password form — styled like login panel fields */
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword label,
.tecp-w-myaccount-login-panel .lost_reset_password label {
    display: none !important;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword input[type="text"],
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword input[type="email"],
.tecp-w-myaccount-login-panel .lost_reset_password input[type="text"],
.tecp-w-myaccount-login-panel .lost_reset_password input[type="email"] {
    width: 100%;
    padding: 12px 16px;
    background: rgba(255,255,255,0.08);
    border: none;
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    height: 44px;
    box-sizing: border-box;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword input:focus,
.tecp-w-myaccount-login-panel .lost_reset_password input:focus {
    background: rgba(255,255,255,0.15);
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-login-panel .woocommerce-ResetPassword input::placeholder,
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-login-panel .lost_reset_password input::placeholder {
    color: var(--tecp-placeholder) !important;
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-login-panel .woocommerce-ResetPassword input::-webkit-input-placeholder,
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-login-panel .lost_reset_password input::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword .form-row,
.tecp-w-myaccount-login-panel .lost_reset_password .form-row {
    margin: 0 !important;
    padding: 0 !important;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword p,
.tecp-w-myaccount-login-panel .lost_reset_password p {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    margin-bottom: 16px;
    line-height: 1.6;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword .button,
.tecp-w-myaccount-login-panel .lost_reset_password .button {
    width: 100%;
    height: 44px;
    background: rgba(255,255,255,0.08);
    color: #ffffff;
    border: none;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    letter-spacing: 2px;
    cursor: pointer;
    transition: background 0.3s;
    margin-top: 10px;
    box-sizing: border-box;
    text-transform: lowercase;
}
.tecp-w-myaccount-login-panel .woocommerce-ResetPassword .button:hover,
.tecp-w-myaccount-login-panel .lost_reset_password .button:hover {
    background: rgba(255,255,255,0.15);
}

/* Privacy text (register form) */
.tecp-w-myaccount-privacy {
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 12px;
    letter-spacing: 1px;
    font-family: Verdana, Geneva, sans-serif;
    color: rgba(255,255,255,0.4);
    line-height: 1.6;
}

.tecp-w-myaccount-privacy strong,
.tecp-w-myaccount-privacy a {
    font-weight: 700 !important;
    cursor: pointer;
    color: #FFFFFFA0 !important;
    text-decoration: none !important;
    transition: color 0.2s;
}
.tecp-w-myaccount-privacy a:hover {
    color: #FFFFFFFF !important;
    text-decoration: none !important;
}

/* Submit button in forms — sharp corners, explicit border-radius */
.tecp-w-myaccount-submit {
    width: 100%;
    margin-top: 0 !important;
}

/* === WooCommerce password strength meter — all TECP pages === */
/* WC renders .woocommerce-password-strength for #password_1 (profile).
   Our JS injects the same element for register, reset-pw, order-received.
   JS hides on blur / shows on focus — display:block here is the visible state. */
.tecp-w-myaccount-wrapper .woocommerce-password-strength,
.tecp-w-checkout-wrapper .woocommerce-password-strength {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    padding: 10px 14px !important;
    margin-top: 0 !important;
    border-radius: 0 !important;
    display: block;
}
/* Register, Reset, Profile: requirements panels hidden by default — JS shows on focus */
#tecp-reg-req,
#tecp-reset-req,
#tecp-profile-req {
    display: none;
}
/* Register + Reset forms: strength meter at 0px from password field.
   Requirements are ABOVE the field (hidden initially), so the element after
   the field is the next form element — not requirements.
   Meter: margin-top -10px cancels .tecp-w-myaccount-field's margin-bottom → 0px gap from field.
   Profile NOT included — WC's <p class="form-row"> wrapper has no bottom margin on the span,
   so the general rule (margin-top: 0) is correct. */
.tecp-w-myaccount-register-form .woocommerce-password-strength,
.tecp-w-myaccount-reset-form .woocommerce-password-strength {
    margin-top: -10px !important;
    margin-bottom: 10px !important;
}
/* Hide WC's native password hint — our requirements panel serves the same purpose */
.woocommerce-password-hint {
    display: none !important;
}
/* Strength level colors — palette matching site status / requirements.
   WC's own class names used everywhere (short/bad/good/strong). */
.tecp-w-myaccount-wrapper .woocommerce-password-strength.short,
.tecp-w-checkout-wrapper .woocommerce-password-strength.short {
    background: rgba(255,65,65,0.14) !important;
    color: rgba(255,155,155,0.88) !important;
}
.tecp-w-myaccount-wrapper .woocommerce-password-strength.bad,
.tecp-w-checkout-wrapper .woocommerce-password-strength.bad {
    background: rgba(255,115,40,0.14) !important;
    color: rgba(255,175,110,0.85) !important;
}
.tecp-w-myaccount-wrapper .woocommerce-password-strength.good,
.tecp-w-checkout-wrapper .woocommerce-password-strength.good {
    background: rgba(200,165,40,0.16) !important;
    color: rgba(240,210,100,0.85) !important;
}
.tecp-w-myaccount-wrapper .woocommerce-password-strength.strong,
.tecp-w-checkout-wrapper .woocommerce-password-strength.strong {
    background: rgba(90,200,110,0.14) !important;
    color: rgba(170,255,185,0.88) !important;
}
/* Hint text below the strength bar */
.tecp-w-myaccount-wrapper .woocommerce-password-hint,
.tecp-w-checkout-wrapper .woocommerce-password-hint {
    color: #FFFFFF80 !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    display: block;
    margin-top: 4px !important;
}

.tecp-w-myaccount-login-panel .tecp-w-btn {
    border-radius: 0 !important;
}

/* Hidden auth form — uses visibility instead of display:none so Firefox does not
   reset autofill state when the form becomes visible again on tab switch */
.tecp-w-myaccount-auth-form.tecp-tab-hidden {
    position: absolute;
    top: 0; left: 0; right: 0;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    height: 0;
    overflow: hidden;
}

/* Autofill fix for login/register form inputs (same as profile form) */
.tecp-w-myaccount-field input:-webkit-autofill,
.tecp-w-myaccount-field input:-webkit-autofill:hover,
.tecp-w-myaccount-field input:-webkit-autofill:focus,
.tecp-w-myaccount-field input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s !important;
    caret-color: #ffffff !important;
}

/* Firefox autofill — also targets re-trigger when tab switches from display:none to visible */
.tecp-w-myaccount-field input:-moz-autofill,
.tecp-w-myaccount-field input:-moz-autofill:hover,
.tecp-w-myaccount-field input:-moz-autofill:focus {
    filter: none !important;
    -moz-appearance: none !important;
    background-color: rgba(255,255,255,0.08) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* ============================
   DASHBOARD — SIDE MENU LAYOUT
   ============================ */
.tecp-w-myaccount-panel {
    width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Custom scrollbar */
.tecp-w-myaccount-panel::-webkit-scrollbar { width: 4px; }
.tecp-w-myaccount-panel::-webkit-scrollbar-track { background: transparent; }
.tecp-w-myaccount-panel::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }

/* Side layout: flex row */
.tecp-w-myaccount-side-layout {
    display: flex;
    gap: 0;
    align-items: flex-start;
    padding: 2rem 2.5rem;
}

/* Side navigation */
.tecp-w-myaccount-sidenav {
    width: 200px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item {
    display: block;
    padding: 10px 20px;
    font-size: 12px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    position: relative;
    transition: color 0.25s, background 0.25s;
    cursor: pointer;
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: rgba(255,255,255,0.4);
    transition: width 0.25s ease;
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item:hover:not(.is-active) {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item:hover:not(.is-active)::after {
    width: 100%;
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item.is-active {
    color: #fff;
    background: rgba(255,255,255,0.15);
}

/* Logout item: separated */
.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-logout {
    border-top: 1px solid rgba(255,255,255,0.1);
    margin-top: 8px;
    padding-top: 18px;
    color: rgba(255,255,255,0.4);
}

.tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-logout:hover {
    color: rgba(255,255,255,0.8);
    background: transparent;
}

/* Vertical divider */
.tecp-w-myaccount-divider {
    width: 1px;
    background: rgba(255,255,255,0.1);
    align-self: stretch;
    flex-shrink: 0;
    margin: 0 2rem;
}

/* Content area */
.tecp-w-myaccount-content {
    flex: 1;
    min-width: 0;
    transition: opacity 0.2s ease;
}

/* ============================
   DASHBOARD — TOP MENU LAYOUT
   ============================ */
.tecp-w-myaccount-top-layout {
    padding: 2rem 2.5rem;
}

/* Top navigation */
.tecp-w-myaccount-topnav {
    display: flex;
    gap: 0;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item {
    padding: 8px 16px;
    font-size: 11px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    cursor: pointer;
    position: relative;
    transition: color 0.25s;
    margin-bottom: 0;
    border-bottom: none;
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 16px;
    width: 0;
    height: 1px;
    background: #FFFFFFD6;
    transition: width 0.25s ease;
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:hover:not(.is-active) {
    color: #FFFFFFD6 !important;
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:hover:not(.is-active)::after {
    width: calc(100% - 32px);
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item.is-active {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: #FFFFFFD6;
    text-underline-offset: 6px;
    text-decoration-thickness: 1px;
}

/* First child has padding-left: 0, so ::after starts at left edge */
.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:first-child::after {
    left: 0;
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:first-child:hover:not(.is-active)::after {
    width: calc(100% - 16px);
}

/* Logout has padding-right: 0, only subtract left padding */
.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-logout:hover:not(.is-active)::after {
    width: calc(100% - 16px);
}

/* First tab flush with left margin, logout flush with right */
.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:first-child {
    padding-left: 0;
}

/* Logout: pushed to the right */
.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-logout {
    margin-left: auto;
    padding-right: 0;
    color: rgba(255,255,255,0.35);
}

.tecp-w-myaccount-topnav .tecp-w-myaccount-nav-logout:hover {
    color: rgba(255,255,255,0.8);
}

/* ============================
   DASHBOARD CONTENT
   ============================ */

/* Greeting */
.tecp-w-myaccount-greeting {
    font-size: 13px;
    color: #fff;
    margin: 0 0 8px 0;
}

.tecp-w-myaccount-greeting strong {
    font-weight: 500;
}

.tecp-w-myaccount-greeting-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    line-height: 1.8;
    margin: 0 0 12px 0;
}

/* Stats row */
.tecp-w-myaccount-stats {
    display: flex;
    gap: 10px;
    margin-bottom: 12px;
}

.tecp-w-myaccount-stat {
    flex: 1;
    padding: 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.tecp-w-myaccount-stat-number {
    font-size: 22px;
    color: #fff;
    font-weight: 500;
}

.tecp-w-myaccount-stat-label {
    font-size: 10px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.45);
}

/* Recent order */
.tecp-w-myaccount-recent-order {
    margin-top: 0;
}

.tecp-w-myaccount-recent-label {
    margin-bottom: 10px;
}

/* Transparent modifier — used on dashboard where card has its own bg/padding */
.tecp-w-myaccount-order-panel--transparent {
    background: none !important;
    padding: 0 !important;
    min-height: 0 !important;
    display: block !important; /* override flex so child card takes full width */
}

.tecp-w-myaccount-order-panel {
    background: rgba(255,255,255,0.08);
    padding: 14px;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tecp-w-myaccount-order-card {
    width: 100%; /* fill flex container */
}

.tecp-w-myaccount-order-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.tecp-w-myaccount-order-number {
    font-size: 12px;
    color: #fff;
}

.tecp-w-myaccount-order-status {
    display: inline-block;
    width: 200px;
    box-sizing: border-box;
    padding: 6px 8px;
    background: rgba(255,255,255,0.10);
    font-size: 12px;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.6);
    text-align: center;
    text-transform: lowercase;
    white-space: nowrap;
    overflow: hidden;
    flex-shrink: 0;
}

/* Status color: green — completed */
.tecp-w-myaccount-status-completed {
    background: rgba(90,200,110,0.14) !important;
    color: rgba(170,255,185,0.88) !important;
}

/* Status color: red — failed, cancelled */
.tecp-w-myaccount-status-failed,
.tecp-w-myaccount-status-cancelled {
    background: rgba(255,65,65,0.14) !important;
    color: rgba(255,155,155,0.88) !important;
}

/* Status color: green — refunded (✓ symbol, same family as completed) */
.tecp-w-myaccount-status-refunded {
    background: rgba(90,200,110,0.14) !important;
    color: rgba(170,255,185,0.88) !important;
}

/* Status color: orange — pending (payment incomplete, customer action needed).
   Matches the password strength "bad/weak" swatch. Distinct from grey on-hold
   (review: no action) and red cancelled (final). */
.tecp-w-myaccount-status-pending {
    background: rgba(255,115,40,0.14) !important;
    color: rgba(255,175,110,0.85) !important;
}

/* Status color: grey — processing, on-hold (under review), everything else.
   on-hold = Stripe review: no customer action needed, so it uses the neutral grey
   default (same as processing), NOT amber. */

.tecp-w-myaccount-order-meta {
    display: flex;
    gap: 8px;
    align-items: center;
}

.tecp-w-myaccount-order-date {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
}

.tecp-w-myaccount-order-total {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
}

.tecp-w-myaccount-order-total *,
.tecp-w-myaccount-order-total .amount,
.tecp-w-myaccount-order-total bdi {
    font-family: Verdana, Geneva, sans-serif !important;
    color: inherit !important;
    font-size: inherit !important;
}

.tecp-w-myaccount-no-orders {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    margin: 0;
    text-align: center;
}

/* Orders list cards (orders endpoint — each order = its own panel) */
.tecp-w-myaccount-orders-card {
    background: rgba(255,255,255,0.06);
    padding: 14px;
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.tecp-w-myaccount-orders-card:has(+ .tecp-w-myaccount-section-footer) {
    margin-bottom: 0;
}

.tecp-w-myaccount-order-info {
    min-width: 0;
}

.tecp-w-myaccount-order-right {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-shrink: 0;
}

.tecp-w-myaccount-order-view {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    font-weight: normal;
    text-decoration: none;
    transition: color 0.2s;
}

.tecp-w-myaccount-order-view:hover {
    color: rgba(255,255,255,0.9);
    text-decoration: none;
}

.tecp-w-myaccount-order-sep {
    font-size: 11px;
    color: rgba(255,255,255,0.3);
    margin: 0 3px;
}

/* Payment method cards */
.tecp-w-myaccount-payment-card {
    background: rgba(255,255,255,0.08);
    padding: 14px;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    border-radius: 0;
}

.tecp-w-myaccount-pm-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.tecp-w-myaccount-pm-name {
    font-size: 12px;
    color: rgba(255,255,255,0.85);
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-myaccount-pm-expiry {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
}

/* Delete payment method — confirm modal */
.tecp-pm-delete-overlay {
    position: fixed;
    inset: 0;
    background: #131313CC; /* popup standard — overridden by Elementor pm_modal_overlay_bg */
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Editor-only static preview — inline instead of fullscreen */
.tecp-pm-delete-overlay--preview {
    position: relative !important;
    inset: auto !important;
    z-index: 1 !important;
    margin-top: 24px;
    padding: 24px;
    pointer-events: none;
}

.tecp-pm-delete-modal {
    background: #FFFFFF14;                          /* popup standard — overridden by Elementor */
    backdrop-filter: blur(1.3px);                   /* popup standard — overridden by Elementor */
    -webkit-backdrop-filter: blur(1.3px);
    padding: 3.5rem 5rem;
    width: 600px;
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-pm-delete-msg {
    color: #FFFFFF80;
    font-size: 12px;
    letter-spacing: 1.5px;
    margin: 0 0 28px;
    text-align: center;
}

.tecp-pm-delete-actions {
    display: flex;
    gap: 10px;
}

.tecp-pm-delete-actions .tecp-w-btn {
    flex: 1;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    letter-spacing: 2px;
}

.tecp-w-myaccount-pm-delete {
    color: rgba(255,255,255,0.3);
    font-size: 13px;
    line-height: 1;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    display: inline-block;
    transition: transform 0.2s ease, color 0.2s ease;
}

.tecp-w-myaccount-pm-delete:hover {
    transform: rotate(90deg);
    color: rgba(255,255,255,0.8);
    text-decoration: none;
}

.tecp-w-myaccount-pm-add {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px !important;
    height: auto !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    margin-top: 0;
}

/* ============================
   WOOCOMMERCE CONTENT OVERRIDES
   (orders table, addresses, edit-account forms)
   ============================ */

/* Orders table */
.tecp-w-myaccount-content .woocommerce-orders-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: none !important;
}

.tecp-w-myaccount-content .woocommerce-orders-table th {
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
    color: rgba(255,255,255,0.45) !important;
    text-transform: lowercase !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    padding: 8px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 400 !important;
}

.tecp-w-myaccount-content .woocommerce-orders-table td {
    font-size: 12px !important;
    color: rgba(255,255,255,0.7) !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding: 10px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

.tecp-w-myaccount-content .woocommerce-orders-table td a {
    color: rgba(255,255,255,0.8) !important;
    text-decoration: none !important;
    transition: color 0.3s !important;
}

.tecp-w-myaccount-content .woocommerce-orders-table td a:hover {
    color: #fff !important;
}

/* Order status badges in table */
.tecp-w-myaccount-content .woocommerce-orders-table .woocommerce-orders-table__cell-order-status {
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
}

/* WC native mark.order-status (view-order page, WC templates)
   auto-width so it sits inline in the sentence without disrupting text flow */
.tecp-w-myaccount-content mark.order-status,
.tecp-w-myaccount-wrapper mark.order-status {
    display: inline-block;
    width: auto;
    box-sizing: border-box;
    padding: 5px 16px;
    background: rgba(255,255,255,0.10);
    font-size: 12px;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.6) !important;
    text-align: center;
    text-transform: lowercase;
    white-space: nowrap;
    overflow: hidden;
    font-style: normal;
    font-weight: normal;
    border-radius: 0;
    vertical-align: middle;
}
.tecp-w-myaccount-content mark.order-status span,
.tecp-w-myaccount-wrapper mark.order-status span {
    color: inherit !important;
    font-size: inherit !important;
    font-style: normal;
}
/* Colors */
.tecp-w-myaccount-content mark.order-status.status-completed,
.tecp-w-myaccount-content mark.order-status.status-refunded,
.tecp-w-myaccount-wrapper mark.order-status.status-completed,
.tecp-w-myaccount-wrapper mark.order-status.status-refunded {
    background: rgba(90,200,110,0.14) !important;
    color: rgba(170,255,185,0.88) !important;
}
.tecp-w-myaccount-content mark.order-status.status-failed,
.tecp-w-myaccount-content mark.order-status.status-cancelled,
.tecp-w-myaccount-wrapper mark.order-status.status-failed,
.tecp-w-myaccount-wrapper mark.order-status.status-cancelled {
    background: rgba(255,65,65,0.14) !important;
    color: rgba(255,155,155,0.88) !important;
}
.tecp-w-myaccount-content mark.order-status.status-on-hold,
.tecp-w-myaccount-wrapper mark.order-status.status-on-hold {
    background: rgba(255,200,80,0.12) !important;
    color: rgba(255,220,140,0.85) !important;
}
/* Pending — orange (matches password strength "weak"); customer action needed */
.tecp-w-myaccount-content mark.order-status.status-pending,
.tecp-w-myaccount-wrapper mark.order-status.status-pending {
    background: rgba(255,115,40,0.14) !important;
    color: rgba(255,175,110,0.85) !important;
}

/* View order button */
.tecp-w-myaccount-content .woocommerce-orders-table .woocommerce-button,
.tecp-w-myaccount-content .woocommerce-orders-table .button {
    padding: 6px 14px !important;
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.6) !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    text-decoration: none !important;
}

.tecp-w-myaccount-content .woocommerce-orders-table .woocommerce-button:hover,
.tecp-w-myaccount-content .woocommerce-orders-table .button:hover {
    background: rgba(255,255,255,0.25) !important;
    color: rgba(255,255,255,0.85) !important;
}

/* Addresses */
.tecp-w-myaccount-content .tecp-w-myaccount-section > p {
    font-size: 12px !important;
    color: rgba(255,255,255,0.5) !important;
    line-height: 1.8 !important;
    margin-bottom: 14px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

.tecp-w-myaccount-content .woocommerce-Addresses {
    display: flex !important;
    gap: 10px !important;
}

.tecp-w-myaccount-content .woocommerce-Address {
    flex: 1 !important;
    background: rgba(255,255,255,0.06) !important;
    padding: 16px !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Empty address state — center "You have not set up this type of address yet."
   Blocksy renders the text inside <address>, not <p>.
   :not(:has(br)) targets the no-data state (filled addresses have <br> between lines). */
.tecp-w-myaccount-content .woocommerce-Address > address:not(:has(br)),
.tecp-w-myaccount-content .woocommerce-Address > p {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 !important;
}

.tecp-w-myaccount-content .woocommerce-Address-title h2,
.tecp-w-myaccount-content .woocommerce-Address-title h3 {
    font-size: 11px !important;
    letter-spacing: 2px !important;
    color: rgba(255,255,255,0.45) !important;
    font-weight: 400 !important;
    text-transform: lowercase !important;
    margin-bottom: 10px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

.tecp-w-myaccount-content .woocommerce-Address-title a {
    font-size: 0 !important;
    color: rgba(255,255,255,0.4) !important;
    text-decoration: none !important;
    transition: color 0.3s !important;
}

.tecp-w-myaccount-content .woocommerce-Address-title a::after {
    content: 'edit';
    font-size: 11px !important;
    letter-spacing: 1px !important;
    color: rgba(255,255,255,0.4) !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

.tecp-w-myaccount-content .woocommerce-Address-title a:hover {
    color: rgba(255,255,255,0.85) !important;
}

.tecp-w-myaccount-content .woocommerce-Address-title a:hover::after {
    color: rgba(255,255,255,0.85) !important;
}

.tecp-w-myaccount-content address {
    font-size: 12px !important;
    color: #ffffff !important;
    font-style: normal !important;
    line-height: 1.8 !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

/* Edit account / address forms */
.tecp-w-myaccount-content .woocommerce-EditAccountForm,
.tecp-w-myaccount-content .woocommerce-address-fields {
    max-width: 100%;
}

/* Profile form — flexbox layout: equal H and V gap, first+last name side by side */
.tecp-w-myaccount-content .woocommerce-EditAccountForm {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm .clear {
    display: none !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm > .form-row-first,
.tecp-w-myaccount-content .woocommerce-EditAccountForm > .form-row-last {
    flex: 0 0 calc(50% - 5px) !important;
    width: calc(50% - 5px) !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm > .form-row-wide {
    flex: 0 0 100% !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Fieldset (password change) — full width flex child, no border */
.tecp-w-myaccount-content .woocommerce-EditAccountForm fieldset {
    flex: 0 0 100% !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* "Password change" legend — styled as section label */
.tecp-w-myaccount-content .woocommerce-EditAccountForm fieldset legend {
    font-size: 12px !important;
    letter-spacing: 2px !important;
    color: rgba(255,255,255,0.45) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    text-transform: lowercase !important;
    margin-bottom: 12px !important;
    margin-top: 0 !important;
    padding: 0 !important;
    padding-inline: 0 !important;
    margin-inline-start: 0 !important;
    font-weight: 400 !important;
    float: none !important;
    width: 100% !important;
    display: block !important;
}

/* Display name helper text — same style as .tecp-w-continue */
.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row > span:not(.tecp-w-pw-field),
.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row > span:not(.tecp-w-pw-field) em {
    font-size: 11px !important;
    color: rgba(255,255,255,0.4) !important;
    letter-spacing: 1px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-style: normal !important;
    font-weight: 400 !important;
    display: block !important;
    margin-top: 6px !important;
    margin-bottom: 0 !important;
}

/* Password fields — full width, consistent gap */
.tecp-w-myaccount-content .woocommerce-EditAccountForm fieldset .form-row {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
    float: none !important;
}

/* Specificity 0,5,2 — beats Elementor's generated rule at 0,5,1
   (.elementor-1149 .elementor-element.elementor-element-XXXXX .woocommerce-EditAccountForm fieldset .form-row) */
body .tecp-w-myaccount-wrapper .tecp-w-myaccount-content .woocommerce-EditAccountForm fieldset .form-row:last-child {
    margin-bottom: 0 !important;
}

/* Submit button wrapper — no bottom margin so .tecp-w-continue's margin-top is the only gap */
.tecp-w-myaccount-content .woocommerce-EditAccountForm > p:last-child {
    flex: 0 0 100% !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row {
    margin-bottom: 10px !important;
    padding: 0 !important;
}

/* Address edit form: flex gap handles spacing — no margin-bottom on rows */
.tecp-w-myaccount-content .woocommerce-address-fields .form-row {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    display: block !important;
}

/* Direct children of the flex form: no margin-bottom — flex gap handles spacing */
.tecp-w-myaccount-content .woocommerce-EditAccountForm > .form-row {
    margin-bottom: 0 !important;
}

/* Profile form: labels hidden (placeholders serve as labels) */
.tecp-w-myaccount-content .woocommerce-EditAccountForm label {
    display: none !important;
}

/* Address edit form: labels shown as field headings */
.tecp-w-myaccount-content .woocommerce-address-fields label {
    display: block !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    color: rgba(255,255,255,0.45) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    text-transform: lowercase !important;
    font-weight: 400 !important;
    margin-bottom: 6px !important;
    line-height: 1 !important;
}

/* screen-reader-text class on label (e.g. address_2) — make visible */
.tecp-w-myaccount-content .woocommerce-address-fields label.screen-reader-text {
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

/* Required asterisk inside label — hide */
.tecp-w-myaccount-content .woocommerce-address-fields label abbr,
.tecp-w-myaccount-content .woocommerce-address-fields label .required {
    display: none !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="text"],
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="email"],
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="password"],
.tecp-w-myaccount-content .woocommerce-address-fields input[type="text"],
.tecp-w-myaccount-content .woocommerce-address-fields input[type="email"],
.tecp-w-myaccount-content .woocommerce-address-fields select {
    width: 100% !important;
    height: 44px !important;
    padding: 12px 16px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    outline: none !important;
    transition: background 0.3s !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row input[type="text"]:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row input[type="email"]:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row input[type="password"]:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm .form-row .input-text:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="text"]:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="email"]:focus,
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="password"]:focus,
.tecp-w-myaccount-content .woocommerce-address-fields .form-row input[type="text"]:focus,
.tecp-w-myaccount-content .woocommerce-address-fields .form-row input[type="email"]:focus,
.tecp-w-myaccount-content .woocommerce-address-fields .form-row .input-text:focus,
.tecp-w-myaccount-content .woocommerce-address-fields input[type="text"]:focus,
.tecp-w-myaccount-content .woocommerce-address-fields input[type="email"]:focus,
.tecp-w-myaccount-content .woocommerce-address-fields select:focus {
    background: rgba(255,255,255,0.15) !important;
    outline: none !important;
    box-shadow: none !important;
}

body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-EditAccountForm input::placeholder,
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-address-fields input::placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
    text-transform: lowercase !important;
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-EditAccountForm input::-webkit-input-placeholder,
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-address-fields input::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
    text-transform: lowercase !important;
}

/* ── Autofill Chrome/Safari: explicit selectors for profile and address forms ── */
.tecp-w-myaccount-content .woocommerce-EditAccountForm input:-webkit-autofill,
.tecp-w-myaccount-content .woocommerce-EditAccountForm input:-webkit-autofill:hover,
.tecp-w-myaccount-content .woocommerce-EditAccountForm input:-webkit-autofill:focus,
.tecp-w-myaccount-content .woocommerce-address-fields input:-webkit-autofill,
.tecp-w-myaccount-content .woocommerce-address-fields input:-webkit-autofill:hover,
.tecp-w-myaccount-content .woocommerce-address-fields input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* ── Select2 country dropdown — my account address forms (same as checkout) ── */
.tecp-w-myaccount-content .woocommerce-address-fields .select2-container,
.tecp-w-myaccount-content .woocommerce-address-fields .select2-container--default {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection {
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    transition: background 0.3s !important;
}

.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection:hover,
.tecp-w-myaccount-content .woocommerce-address-fields .select2-container--open .select2-selection {
    background: rgba(255,255,255,0.15) !important;
}

.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection__rendered {
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    padding: 0 !important;
}

.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection__arrow {
    height: 44px !important;
    top: 0 !important;
    right: 12px !important;
}

/* Kill Blocksy's pseudo-element arrow (icon font via ::before/::after) */
.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection__arrow::before,
.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection__arrow::after {
    content: none !important;
    display: none !important;
}

/* Full reset of b element to standard Select2 border-triangle ▼ */
.tecp-w-myaccount-content .woocommerce-address-fields .select2-selection__arrow b {
    display: block !important;
    font-size: 0 !important;
    border-color: rgba(255,255,255,0.4) transparent transparent transparent !important;
    border-style: solid !important;
    border-width: 5px 4px 0 4px !important;
    height: 0 !important;
    width: 0 !important;
    left: 50% !important;
    margin-left: -4px !important;
    margin-top: -2px !important;
    position: absolute !important;
    top: 50% !important;
}

/* Flip arrow up when dropdown is open */
.tecp-w-myaccount-content .woocommerce-address-fields .select2-container--open .select2-selection__arrow b {
    border-color: transparent transparent rgba(255,255,255,0.4) transparent !important;
    border-width: 0 4px 5px 4px !important;
}

/* ============================
   ADDRESS EDIT FORM LAYOUT
   Mirrors checkout field-grid: flexbox, 2-column, gap-based spacing
   ============================ */

/* Form h2 title — WooCommerce renders "Billing/Shipping address" here but
   our widget section-heading already shows the correct title → hide duplicate */
.tecp-w-myaccount-section form > h2 {
    display: none !important;
}

/* Field wrapper: flex container — same as .tecp-w-checkout-field-grid */
.tecp-w-myaccount-content .woocommerce-address-fields__field-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Kill WooCommerce per-field margin/padding on <p id="..._field"> wrappers */
/* (same fix as .tecp-w-checkout-wrapper [id$="_field"]) */
.tecp-w-myaccount-content .woocommerce-address-fields [id$="_field"] {
    margin: 0 !important;
    padding: 0 !important;
}

/* Half-width: form-row-first + form-row-last */
.tecp-w-myaccount-content .woocommerce-address-fields .form-row-first {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}
.tecp-w-myaccount-content .woocommerce-address-fields .form-row-last {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}
/* Full-width: form-row-wide */
.tecp-w-myaccount-content .woocommerce-address-fields .form-row-wide {
    width: 100% !important;
    flex: 0 0 100% !important;
}

/* ID-based overrides — bypass WooCommerce UK locale class changes */
.tecp-w-myaccount-content .woocommerce-address-fields #billing_first_name_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_first_name_field,
.tecp-w-myaccount-content .woocommerce-address-fields #billing_address_1_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_address_1_field,
.tecp-w-myaccount-content .woocommerce-address-fields #billing_city_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_city_field {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}
.tecp-w-myaccount-content .woocommerce-address-fields #billing_last_name_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_last_name_field,
.tecp-w-myaccount-content .woocommerce-address-fields #billing_address_2_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_address_2_field,
.tecp-w-myaccount-content .woocommerce-address-fields #billing_postcode_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_postcode_field {
    width: calc(50% - 5px) !important;
    flex: 0 0 calc(50% - 5px) !important;
}

/* State/County (UK locale priority 80) — push after city+postcode pair */
.tecp-w-myaccount-content .woocommerce-address-fields #billing_city_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_city_field {
    order: 7;
}
.tecp-w-myaccount-content .woocommerce-address-fields #billing_postcode_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_postcode_field {
    order: 8;
}
.tecp-w-myaccount-content .woocommerce-address-fields #billing_state_field,
.tecp-w-myaccount-content .woocommerce-address-fields #shipping_state_field {
    order: 9;
    width: 100% !important;
    flex: 0 0 100% !important;
}

/* .clear divs WooCommerce injects — hide in flex context */
.tecp-w-myaccount-content .woocommerce-address-fields .clear {
    display: none !important;
}

/* Inline woocommerce-input-wrapper — must be block to prevent baseline gap */
.tecp-w-myaccount-content .woocommerce-address-fields .woocommerce-input-wrapper {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}

/* Rows containing Select2: fix height to 44px — eliminates ghost whitespace */
.tecp-w-myaccount-content .woocommerce-address-fields .form-row:has(.select2-container) {
    height: 44px !important;
    overflow: hidden !important;
}

/* tel input type (missing from existing rule) */
.tecp-w-myaccount-content .woocommerce-address-fields input[type="tel"] {
    width: 100% !important;
    height: 44px !important;
    padding: 12px 16px !important;
    background: rgba(255,255,255,0.08) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    outline: none !important;
    transition: background 0.3s !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.tecp-w-myaccount-content .woocommerce-address-fields input[type="tel"]:focus {
    background: rgba(255,255,255,0.15) !important;
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-address-fields input[type="tel"]::placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
    text-transform: lowercase !important;
}
body.woocommerce-account.woocommerce-page .tecp-w-myaccount-content .woocommerce-address-fields input[type="tel"]::-webkit-input-placeholder {
    color: var(--tecp-placeholder) !important;
    font-size: 13px !important;
    text-transform: lowercase !important;
}

/* Save address <p> wrapper — no extra margin, button handles its own margin-top */
.tecp-w-myaccount-content .woocommerce-address-fields > p {
    margin: 0 !important;
    padding: 0 !important;
}

/* height: 44px on existing inputs (it was missing from address-fields rule) */
.tecp-w-myaccount-content .woocommerce-address-fields input[type="text"],
.tecp-w-myaccount-content .woocommerce-address-fields input[type="email"] {
    height: 44px !important;
    box-sizing: border-box !important;
}

/* ============================
   END ADDRESS EDIT FORM LAYOUT
   ============================ */

/* Save button in forms */
.tecp-w-myaccount-content button[type="submit"],
.tecp-w-myaccount-content input[type="submit"],
.tecp-w-myaccount-content .button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 14px !important;
    text-align: center !important;
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.6) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    text-transform: lowercase !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
    margin-top: 8px !important;
}

.tecp-w-myaccount-content button[type="submit"]:hover,
.tecp-w-myaccount-content input[type="submit"]:hover,
.tecp-w-myaccount-content .button:hover {
    background: rgba(255,255,255,0.25) !important;
    color: rgba(255,255,255,0.85) !important;
}

/* Pagination (orders) */
.tecp-w-myaccount-content .woocommerce-pagination {
    margin-top: 1rem;
    text-align: center;
}

.tecp-w-myaccount-content .woocommerce-pagination a {
    color: rgba(255,255,255,0.5) !important;
    text-decoration: none !important;
    padding: 4px 10px !important;
    font-size: 12px !important;
    transition: color 0.3s !important;
}

.tecp-w-myaccount-content .woocommerce-pagination a:hover {
    color: #fff !important;
}

/* WooCommerce notices inside content */
.tecp-w-myaccount-content .woocommerce-message,
.tecp-w-myaccount-content .woocommerce-info {
    background: rgba(255,255,255,0.06) !important;
    border: none !important;
    border-left: 3px solid rgba(255,255,255,0.3) !important;
    color: rgba(255,255,255,0.7) !important;
    padding: 12px 16px !important;
    font-size: 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    margin-bottom: 1rem !important;
}

.tecp-w-myaccount-content .woocommerce-error {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    background: rgba(255,65,65,0.14) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 10px 14px !important;
    margin-bottom: 1rem !important;
    list-style: none !important;
}
.tecp-w-myaccount-content .woocommerce-error li {
    color: rgba(255,155,155,0.88) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.tecp-w-myaccount-content .woocommerce-error::before,
.tecp-w-myaccount-content .woocommerce-error a {
    display: none !important;
}

/* Hide default WooCommerce account navigation (we render our own) */
.tecp-w-myaccount-wrapper .woocommerce-MyAccount-navigation {
    display: none !important;
}

/* === FORCE FONTS in MY ACCOUNT === */
.tecp-w-myaccount-wrapper,
.tecp-w-myaccount-wrapper *,
.tecp-w-myaccount-wrapper th,
.tecp-w-myaccount-wrapper td,
.tecp-w-myaccount-wrapper label,
.tecp-w-myaccount-wrapper input,
.tecp-w-myaccount-wrapper select,
.tecp-w-myaccount-wrapper button,
.tecp-w-myaccount-wrapper a,
.tecp-w-myaccount-wrapper p,
.tecp-w-myaccount-wrapper span,
.tecp-w-myaccount-wrapper .amount,
.tecp-w-myaccount-wrapper .woocommerce-Price-amount,
.tecp-w-myaccount-wrapper .woocommerce-Price-amount bdi,
.tecp-w-myaccount-wrapper .woocommerce-Price-currencySymbol {
    font-family: Verdana, Geneva, sans-serif !important;
}

/* ============================
   WHITE THEME — MY ACCOUNT
   ============================ */

/* Login overlay */
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-overlay::before {
    background: rgba(255,255,255,0.5);
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-close {
    color: rgba(0,0,0,0.3);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-close:hover {
    color: rgba(0,0,0,0.7);
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-auth-tab {
    color: rgba(0,0,0,0.5);
    background: rgba(0,0,0,0.04);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-auth-tab.active {
    color: #000;
    background: rgba(0,0,0,0.08);
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-field input {
    background: rgba(0,0,0,0.04) !important;
    color: #000 !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-field input::placeholder {
    color: rgba(0,0,0,0.4) !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-field input:focus {
    background: rgba(0,0,0,0.08) !important;
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-remember span {
    color: rgba(0,0,0,0.5);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-remember input[type="checkbox"] {
    border-color: rgba(0,0,0,0.2);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-remember input[type="checkbox"]:checked {
    border-color: #000;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-remember input[type="checkbox"]:checked::after {
    color: #000;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-forgot {
    color: rgba(0,0,0,0.5);
    border-bottom-color: rgba(0,0,0,0.15);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-privacy {
    color: rgba(0,0,0,0.4);
}

/* Dashboard — side nav white */
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item {
    color: #7a7a7a;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item.is-active {
    color: #000;
    background: rgba(0,0,0,0.06);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item:hover:not(.is-active) {
    background: rgba(0,0,0,0.04);
    color: #000;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-logout {
    border-top-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.35);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-divider {
    background: rgba(0,0,0,0.08);
}

/* Dashboard — top nav white */
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav {
    border-bottom-color: rgba(0,0,0,0.08);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item {
    color: rgba(0,0,0,0.5);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item.is-active {
    color: #000;
    text-decoration-color: rgba(0,0,0,0.84);
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item::after {
    background: rgba(0,0,0,0.84);
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item:hover:not(.is-active) {
    color: rgba(0,0,0,0.84);
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-logout {
    color: rgba(0,0,0,0.3);
}

/* Dashboard content white */
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-greeting { color: #000; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-greeting-sub { color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-stat { background: rgba(0,0,0,0.03); }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-stat-number { color: #000; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-stat-label { color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-panel { background: rgba(0,0,0,0.03); }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-number { color: #000; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-status { background: rgba(0,0,0,0.06); color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-date { color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-total,
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-order-total * { color: #7a7a7a !important; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-no-orders { color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-payment-card { background: rgba(0,0,0,0.03); }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-pm-name { color: #000; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-pm-expiry { color: #7a7a7a; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-pm-delete { color: rgba(0,0,0,0.3); }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-pm-delete:hover { color: #000; }
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content .woocommerce-Address { background: rgba(0,0,0,0.03) !important; }

/* WooCommerce content white overrides */
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-orders-table th {
    color: #7a7a7a !important;
    border-bottom-color: rgba(0,0,0,0.08) !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-orders-table td {
    color: #333 !important;
    border-bottom-color: rgba(0,0,0,0.04) !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-orders-table td a { color: #000 !important; }
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-orders-table .button {
    background: rgba(0,0,0,0.04) !important;
    color: #333 !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-orders-table .button:hover {
    background: #000 !important;
    color: #fff !important;
}

.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-MyAccount-content > p { color: rgba(0,0,0,0.45) !important; }
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address-title h3 { color: #7a7a7a !important; }
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address-title a,
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address-title a::after { color: #7a7a7a !important; }
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address-title a:hover,
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address-title a:hover::after { color: #000 !important; }
.tecp-w-myaccount-wrapper.tecp-w-white address { color: #333 !important; }

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content input[type="text"],
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content input[type="email"],
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content input[type="password"],
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content select {
    background: rgba(0,0,0,0.04) !important;
    color: #000 !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content input::placeholder {
    color: rgba(0,0,0,0.4) !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content button[type="submit"],
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content .button {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content button[type="submit"]:hover,
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-content .button:hover {
    background: #000 !important;
    color: #fff !important;
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-btn {
    background: #fff;
    color: #000;
    border: 1px solid #000;
}
.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-btn:hover {
    background: #000;
    color: #fff;
}

/* ============================
   MY ACCOUNT — SECTION HEADINGS + PANELS
   ============================ */

/* Custom section heading (short/lowercase label above WC content) */
.tecp-w-myaccount-section-heading {
    margin-bottom: 12px;
    display: block;
}

/* Hide native WC headings inside content area (we render our own) */
.tecp-w-myaccount-content .woocommerce-MyAccount-content > h2,
.tecp-w-myaccount-content .woocommerce-MyAccount-content > h3,
.tecp-w-myaccount-content .woocommerce-MyAccount-content > p.woocommerce-customer-details,
.tecp-w-myaccount-content .woocommerce-column__title {
    display: none !important;
}

/* Wishlist / Waitlist (Blocksy): hide "Product" and "Actions" column headers */
.tecp-w-myaccount-content .tecp-w-myaccount-section table thead {
    display: none !important;
}

/* Gray background panel for all WC account content areas */
.tecp-w-myaccount-content .woocommerce-MyAccount-content {
    background: rgba(255,255,255,0.06) !important;
    padding: 20px !important;
}

/* Payment methods table */
.tecp-w-myaccount-content .woocommerce-PaymentMethods {
    width: 100% !important;
    border-collapse: collapse !important;
}

.tecp-w-myaccount-content .woocommerce-PaymentMethods th {
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
    color: rgba(255,255,255,0.45) !important;
    text-transform: lowercase !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    padding: 8px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 400 !important;
}

.tecp-w-myaccount-content .woocommerce-PaymentMethods td {
    font-size: 12px !important;
    color: rgba(255,255,255,0.7) !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding: 10px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

.tecp-w-myaccount-content .woocommerce-PaymentMethods .button {
    padding: 6px 14px !important;
    background: rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.6) !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: all 0.3s !important;
}

.tecp-w-myaccount-content .woocommerce-PaymentMethods .button:hover {
    background: rgba(255,255,255,0.25) !important;
    color: rgba(255,255,255,0.85) !important;
}

/* Downloads table */
.tecp-w-myaccount-content .woocommerce-MyAccount-downloads {
    width: 100% !important;
    border-collapse: collapse !important;
}

.tecp-w-myaccount-content .woocommerce-MyAccount-downloads th {
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
    color: rgba(255,255,255,0.45) !important;
    text-transform: lowercase !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    padding: 8px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 400 !important;
}

.tecp-w-myaccount-content .woocommerce-MyAccount-downloads td {
    font-size: 12px !important;
    color: rgba(255,255,255,0.7) !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding: 10px 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

/* Address panels side by side gray */
.tecp-w-myaccount-content .woocommerce-Address {
    background: rgba(255,255,255,0.06) !important;
    padding: 16px !important;
}

/* "Add payment method" button */
.tecp-w-myaccount-content .woocommerce-MyAccount-content .woocommerce-Button--addPaymentMethod {
    display: inline-block !important;
    margin-top: 12px !important;
}

/* Dashboard footer — margin-top:0 so only .tecp-w-continue's own margin-top:1.5rem creates the gap,
   matching the spacing in cart and other tabs */
.tecp-w-myaccount-dashboard-footer {
    margin-top: 0;
}

.tecp-w-myaccount-dashboard-footer-divider {
    height: 1px;
    background: rgba(255,255,255,0.1);
    margin-bottom: 1rem;
}

/* White theme overrides for new elements */
.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-MyAccount-content {
    background: rgba(0,0,0,0.03) !important;
}

.tecp-w-myaccount-wrapper.tecp-w-white .woocommerce-Address {
    background: rgba(0,0,0,0.03) !important;
}

.tecp-w-myaccount-wrapper.tecp-w-white .tecp-w-myaccount-dashboard-footer-divider {
    background: rgba(0,0,0,0.08);
}

/* ============================
   VIEW ORDER PAGE (native WC template rendered inside myaccount widget)
   ============================ */

/* Order summary paragraph: "Order #X was placed on DATE and is currently [status]." */
.tecp-w-myaccount-section > p:has(mark.order-status) {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 0.3px;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* Order details section heading (h2 — not a direct child of woocommerce-MyAccount-content so not hidden) */
.tecp-w-myaccount-content .woocommerce-order-details__title {
    font-size: 10px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45) !important;
    font-weight: normal !important;
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}

/* Order details table */
.tecp-w-myaccount-content .woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    margin-bottom: 1.5rem;
}
.tecp-w-myaccount-content .woocommerce-table--order-details th,
.tecp-w-myaccount-content .woocommerce-table--order-details td {
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    font-weight: normal !important;
    color: rgba(255,255,255,0.7) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    background: none !important;
    text-align: left;
}
.tecp-w-myaccount-content .woocommerce-table--order-details tfoot td,
.tecp-w-myaccount-content .woocommerce-table--order-details tfoot th {
    color: rgba(255,255,255,0.5) !important;
    font-size: 11px !important;
    border-bottom: none !important;
}
.tecp-w-myaccount-content .woocommerce-table--order-details tfoot .order-total td,
.tecp-w-myaccount-content .woocommerce-table--order-details tfoot .order-total th {
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    border-top: 1px solid rgba(255,255,255,0.12) !important;
}
.tecp-w-myaccount-content .woocommerce-table--order-details .woocommerce-Price-amount,
.tecp-w-myaccount-content .woocommerce-table--order-details .woocommerce-Price-amount bdi {
    font-family: Verdana, Geneva, sans-serif !important;
    color: inherit !important;
}

/* Customer details — address columns layout */
.tecp-w-myaccount-content .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 1.5rem;
}
.tecp-w-myaccount-content .woocommerce-column--billing-address,
.tecp-w-myaccount-content .woocommerce-column--shipping-address {
    background: rgba(255,255,255,0.05);
    padding: 16px;
}
/* Address column titles — re-enable (higher specificity overrides the global hide rule) */
.tecp-w-myaccount-content .woocommerce-columns--addresses .woocommerce-column__title {
    display: block !important;
    font-size: 9px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.35) !important;
    font-weight: normal !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    font-family: Verdana, Geneva, sans-serif !important;
}
.tecp-w-myaccount-content .woocommerce-customer-details address {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    font-style: normal;
    line-height: 1.8;
    font-family: Verdana, Geneva, sans-serif;
}

/* ============================================
   RESPONSIVE (SHARED)
   ============================================ */

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .tecp-w-panel {
        width: 92% !important;
        padding: 1.5rem 1.25rem !important;
    }

    .tecp-w-horizontal .tecp-w-cart-inner {
        flex-direction: column;
    }

    .tecp-w-horizontal .tecp-w-summary {
        width: 100%;
    }

    .tecp-w-horizontal .tecp-w-cart-divider {
        width: 100%;
        height: 1px;
    }

    .tecp-w-heading {
        padding-top: 30px;
    }

    /* Checkout responsive */
    .tecp-w-panel-checkout {
        padding: 1.5rem 1.25rem !important;
    }

    .tecp-w-checkout-fields .form-row-first,
    .tecp-w-checkout-fields p.form-row-first,
    .tecp-w-checkout-fields .form-row-last,
    .tecp-w-checkout-fields p.form-row-last {
        width: 100% !important;
        flex: 0 0 100% !important;
    }

    .tecp-w-checkout-address-tab {
        font-size: 10px;
        padding: 8px 12px;
    }

    .tecp-w-checkout-order-item {
        gap: 12px;
    }

    .tecp-w-checkout-item-img {
        width: 50px;
        height: 65px;
    }

    /* My Account responsive */
    .tecp-w-myaccount-side-layout {
        flex-direction: column;
        padding: 1.5rem 1.25rem;
    }

    .tecp-w-myaccount-sidenav {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0;
        border-bottom: 1px solid rgba(255,255,255,0.25);
        padding-bottom: 8px;
        margin-bottom: 1.5rem;
    }

    .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-item {
        padding: 6px 12px;
        font-size: 10px;
    }

    .tecp-w-myaccount-sidenav .tecp-w-myaccount-nav-logout {
        border-top: none;
        margin-top: 0;
        padding-top: 6px;
        margin-left: auto;
    }

    .tecp-w-myaccount-divider {
        display: none;
    }

    .tecp-w-myaccount-top-layout {
        padding: 1.5rem 1.25rem;
    }

    .tecp-w-myaccount-topnav {
        gap: 0;
    }

    .tecp-w-myaccount-topnav .tecp-w-myaccount-nav-item {
        padding: 6px 10px;
        font-size: 10px;
    }

    .tecp-w-myaccount-stats {
        flex-direction: column;
        gap: 8px;
    }

    .tecp-w-myaccount-stat {
        flex-direction: row;
        justify-content: space-between;
        padding: 12px 16px;
    }

    .tecp-w-myaccount-overlay {
        padding: 2rem 1rem;
    }

    .tecp-w-myaccount-login-panel {
        padding: 1.5rem 1.25rem !important;
    }

    .tecp-w-myaccount-content .woocommerce-Addresses {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }
}

/* === ADD PAYMENT METHOD PAGE ===
   Structure: #payment > ul.payment_methods > li.woocommerce-PaymentMethod > input + label (no class)
   Note: li uses woocommerce-PaymentMethod (NOT wc_payment_method used in checkout)
   Blocksy's rule targets li.wc_payment_method so it does NOT apply here — use plain li selector */

.tecp-w-myaccount-content #payment ul.payment_methods {
    list-style: none !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
}

.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod {
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.25) !important;
}

.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod:first-child {
    border-top: 1px solid rgba(255,255,255,0.25) !important;
}

/* Hide native radio */
.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod > input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    pointer-events: none !important;
}

/* Label row */
.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod > label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
    color: rgba(255,255,255,0.5) !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 1px !important;
    padding: 14px 0 !important;
    margin: 0 !important;
    width: 100% !important;
    background: none !important;
    border: none !important;
}

/* Custom radio dot via label::before */
.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod > label::before {
    content: "" !important;
    display: block !important;
    flex-shrink: 0 !important;
    border: 2px solid rgba(255,255,255,0.4) !important;
    border-radius: 50% !important;
    width: 14px !important;
    height: 14px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0 !important;
}

/* Checked — white text + filled dot */
.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod > input[type="radio"]:checked + label {
    color: #ffffff !important;
}

.tecp-w-myaccount-content #payment ul.payment_methods > li.woocommerce-PaymentMethod > input[type="radio"]:checked + label::before {
    border-color: rgba(255,255,255,0.9) !important;
    background: rgba(255,255,255,0.9) !important;
    box-shadow: inset 0 0 0 3px rgb(20,18,16) !important;
}

/* Payment box (Stripe form) */
.tecp-w-myaccount-content #payment .payment_box {
    background: transparent !important;
    padding: 0 0 16px 24px !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
}

.tecp-w-myaccount-content #payment .payment_box::before,
.tecp-w-myaccount-content #payment .payment_box::after {
    display: none !important;
}

/* Submit button — form-row wrapper: no extra padding */
.tecp-w-myaccount-content #payment .form-row {
    padding: 0 !important;
    margin: 20px 0 0 !important;
}

/* Stripe UPE in add-payment-method: field height is set by padding:'13px 14px'
   in wc_stripe_upe_params (.Input rule). No outer container styling needed. */

/* ======================== */
/* Autofill highlight override — replace browser yellow with our field background.
   Chrome/Safari: -webkit-box-shadow inset covers the yellow (background-color alone is blocked).
   Firefox: :-moz-autofill + filter:none removes Firefox's yellow tint filter. */
.tecp-w-checkout-wrapper input:-webkit-autofill,
.tecp-w-checkout-wrapper input:-webkit-autofill:hover,
.tecp-w-checkout-wrapper input:-webkit-autofill:focus,
.tecp-w-cart-wrapper input:-webkit-autofill,
.tecp-w-cart-wrapper input:-webkit-autofill:hover,
.tecp-w-cart-wrapper input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* My account autofill — lighter fill (#FFFFFF14) for login/register and profile forms */
.tecp-w-myaccount-wrapper input:-webkit-autofill,
.tecp-w-myaccount-wrapper input:-webkit-autofill:hover,
.tecp-w-myaccount-wrapper input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* Firefox autofill — CSS animation trick:
   :-moz-autofill fires the animation which triggers an animationstart JS event.
   The JS handler immediately applies box-shadow:inset via style.setProperty('important'),
   overriding Firefox's yellow highlight AFTER it is applied (post-load).
   The box-shadow and transition rules also help for initial paint. */
@keyframes tecpDetectAutofill { from { visibility: inherit; } to { visibility: inherit; } }

input:-moz-autofill,
input:-moz-autofill:hover,
input:-moz-autofill:focus {
    animation: tecpDetectAutofill 0.001s !important;
    -moz-appearance: none !important;
    background-color: rgba(255,255,255,0.15) !important;
    box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s !important;
    filter: none !important;
}

/* My account — override global moz-autofill color to lighter value */
.tecp-w-myaccount-wrapper input:-moz-autofill,
.tecp-w-myaccount-wrapper input:-moz-autofill:hover,
.tecp-w-myaccount-wrapper input:-moz-autofill:focus {
    -moz-appearance: none !important;
    background-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.08) inset !important;
    color: #ffffff !important;
    filter: none !important;
}

/* ========================
   PAYMENT METHODS — spacing above "add payment method" button */
.tecp-w-myaccount-pm-add {
    margin-top: 0 !important;
    display: inline-block;
}

/* Profile form — submit button: flex gap handles spacing, no extra margin needed */
.tecp-w-myaccount-content .woocommerce-EditAccountForm button[type="submit"],
.tecp-w-myaccount-content .woocommerce-EditAccountForm input[type="submit"] {
    margin-top: 0 !important;
}

/* ========================
   WISHLIST ITEMS
   Base layout mirrors cart items — Elementor controls override colors/sizes.
   .tecp-w-wishlist-items wraps all items inside the wishlist tab. */
.tecp-w-wishlist-items {
    width: 100%;
}

/* Wishlist items inherit margin-bottom/padding-bottom/border-bottom from base .tecp-w-item.
   Only override: separator color (0.25 — panel bg rgba(255,255,255,0.12) lifts brightness vs cart 0.12). */
.tecp-w-wishlist-items .tecp-w-item {
    border-bottom: 1px solid rgba(255,255,255,0.25) !important;
}

/* Last item — no separator, no bottom padding/margin (.tecp-w-continue margin-top:1.5rem provides gap) */
.tecp-w-wishlist-items .tecp-w-item:last-child {
    border-bottom: none !important;
    padding-bottom: 0;
    margin-bottom: 0;
}

.tecp-w-wishlist-items .tecp-w-item-img {
    width: 120px;
    height: 150px;
    flex-shrink: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tecp-w-wishlist-items .tecp-w-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* info column: flex:1, clean and empty — same as cart products column */
.tecp-w-wishlist-items .tecp-w-item-info {
    flex: 1;
    min-width: 0;
}

.tecp-w-wishlist-items .tecp-w-item-name {
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    margin: 0;
}

.tecp-w-wishlist-items .tecp-w-item-meta {
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 11px;
    margin-top: 4px;
}

.tecp-w-wishlist-items .tecp-w-item-price {
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    margin-top: 6px;
}

.tecp-w-wishlist-items .tecp-w-item-price .amount,
.tecp-w-wishlist-items .tecp-w-item-price bdi {
    color: inherit;
    font-size: inherit;
    font-family: inherit;
}

/* Right section: single horizontal row [−][1][+] [wide btn] [×].
   flex-shrink:0 locks qty to same x-position across all product rows.
   add-btn fixed at 300px = same as .tecp-w-summary (cart shipping/totals column). */
.tecp-w-wishlist-items .tecp-w-wishlist-right {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* Qty wrap: [−][1][+] — identical to cart */
.tecp-w-wishlist-items .tecp-w-qty-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* Qty wrap — right margin creates visual breathing room between +/- and add-btn */
.tecp-w-wishlist-items .tecp-w-qty-wrap {
    margin-right: 32px;
}

/* Add to cart / choose options — 300px fixed = same as cart .tecp-w-summary column */
.tecp-w-wishlist-items .tecp-w-wishlist-add-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    flex-shrink: 0;
    height: 44px;
    padding: 0 14px;
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.6);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border: none;
    outline: none;
    transition: all 0.3s;
    white-space: nowrap;
    box-sizing: border-box;
}

.tecp-w-wishlist-items .tecp-w-wishlist-add-btn.is-disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

.tecp-w-wishlist-items .tecp-w-wishlist-add-btn:not(.is-disabled):hover {
    background: rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

/* Remove × button inherits base .tecp-w-remove (spin on hover) */
.tecp-w-wishlist-items .tecp-w-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

/* ==========================================================================
   WAITLIST ITEMS
   Same layout as wishlist — Elementor controls override colors/sizes.
   .tecp-w-waitlist-items wraps all items inside the waitlist tab. */
.tecp-w-waitlist-items {
    width: 100%;
}

.tecp-w-waitlist-items .tecp-w-item {
    border-bottom: 1px solid rgba(255,255,255,0.25) !important;
}

.tecp-w-waitlist-items .tecp-w-item:last-child {
    border-bottom: none !important;
    padding-bottom: 0;
    margin-bottom: 0;
}

.tecp-w-waitlist-items .tecp-w-item-img {
    width: 120px;
    height: 150px;
    flex-shrink: 0;
    overflow: hidden;
}

.tecp-w-waitlist-items .tecp-w-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.tecp-w-waitlist-items .tecp-w-item-info {
    flex: 1;
    min-width: 0;
}

.tecp-w-waitlist-items .tecp-w-item-name {
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
}

.tecp-w-waitlist-items .tecp-w-item-meta {
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 11px;
}

.tecp-w-waitlist-items .tecp-w-item-price {
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
}

.tecp-w-waitlist-items .tecp-w-item-price .amount,
.tecp-w-waitlist-items .tecp-w-item-price bdi {
    color: inherit;
    font-size: inherit;
}

.tecp-w-waitlist-items .tecp-w-waitlist-right {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.tecp-w-waitlist-items .tecp-w-qty-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* Qty wrap — same right margin as wishlist for visual consistency */
.tecp-w-waitlist-items .tecp-w-qty-wrap {
    margin-right: 32px;
}

/* Add to cart / out of stock — 300px fixed = same as cart .tecp-w-summary column */
.tecp-w-waitlist-items .tecp-w-waitlist-add-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    flex-shrink: 0;
    height: 44px;
    padding: 0 14px;
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.6);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: lowercase;
    text-decoration: none;
    transition: background 0.3s, color 0.3s;
    cursor: pointer;
    border: none;
    outline: none;
}

.tecp-w-waitlist-items .tecp-w-waitlist-add-btn.is-disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

.tecp-w-waitlist-items .tecp-w-waitlist-add-btn:not(.is-disabled):hover {
    background: rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}

.tecp-w-waitlist-items .tecp-w-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

/* === PASSWORD EYE TOGGLE === */
.tecp-w-pw-field {
    position: relative;
    display: block;
}

.tecp-w-pw-field input[type="password"],
.tecp-w-pw-field input[type="text"] {
    padding-right: 44px;
    display: block;
}

.tecp-w-pw-toggle {
    position: absolute;
    right: 0;
    top: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 0;
    color: var(--tecp-placeholder);
    transition: color 0.2s;
}

.tecp-w-pw-toggle:hover {
    color: rgba(255,255,255,0.75);
}

.tecp-w-pw-toggle svg {
    width: 20px;
    height: 20px;
}

.tecp-pw-eye-hide {
    display: none;
}

.tecp-w-pw-toggle.active .tecp-pw-eye-show {
    display: none;
}

.tecp-w-pw-toggle.active .tecp-pw-eye-hide {
    display: block;
}

/* === ORDER RECEIVED (THANK YOU) PAGE === */
/* Medium panel — matches login/register panel width (800px, same as .tecp-w-myaccount-login-panel) */
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou {
    width: 100%;
    max-width: 800px;
    padding: 2.5rem 2.5rem 2.5rem 2.5rem;
    margin-bottom: 5rem;
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    display: flex;
    flex-direction: column;
}

.tecp-w-checkout-wrapper .tecp-w-panel-thankyou *,
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou a {
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    text-decoration: none;
}

/* Thank-you panel: center-align the top circle/heading/desc trio, then left-align the rest */
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou {
    align-items: center; /* centers circle, heading, desc */
}

/* Prevent flex from squishing children when panel hits max-height — force overflow/scroll instead */
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou > * {
    flex-shrink: 0;
}

/* Heading (section-label "order completed") — same color as desc: #FFFFFF80 */
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou .tecp-w-lostpw-section-label {
    color: #FFFFFF80 !important;
}

/* Description under the circle heading */
.tecp-w-checkout-wrapper .tecp-w-ty-desc {
    text-align: center;
    color: #FFFFFF80 !important;
    margin-bottom: 0; /* divider provides spacing below */
}

/* Meta strip, items, totals, button — stretch to full panel width */
.tecp-w-checkout-wrapper .tecp-w-ty-meta,
.tecp-w-checkout-wrapper .tecp-w-ty-divider,
.tecp-w-checkout-wrapper .tecp-w-ty-section-label,
.tecp-w-checkout-wrapper .tecp-w-ty-items,
.tecp-w-checkout-wrapper .tecp-w-ty-totals,
.tecp-w-checkout-wrapper .tecp-w-ty-btn,
.tecp-w-checkout-wrapper .tecp-w-ty-fallback {
    align-self: stretch;
}

/* Meta strip — order # / date / payment / total */
.tecp-w-checkout-wrapper .tecp-w-ty-meta {
    display: flex;
    gap: 0;
    margin-bottom: 0;
    background: rgba(255,255,255,0.06);
    border-radius: 0;
    overflow: hidden;
}

.tecp-w-checkout-wrapper .tecp-w-ty-meta-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 14px 16px;
    border-right: 1px solid rgba(255,255,255,0.12);
}

.tecp-w-checkout-wrapper .tecp-w-ty-meta-item:last-child {
    border-right: none;
}

.tecp-w-checkout-wrapper .tecp-w-ty-meta-label {
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5) !important;
    font-weight: normal;
}

.tecp-w-checkout-wrapper .tecp-w-ty-meta-value {
    font-size: 12px;
    letter-spacing: 0.5px;
    color: #ffffff !important;
    font-weight: normal;
}

.tecp-w-checkout-wrapper .tecp-w-ty-meta-total .tecp-w-ty-meta-value {
    font-size: 13px;
}

/* Divider — spacing only, no visible line (the total row has its own border-top via Elementor) */
.tecp-w-checkout-wrapper .tecp-w-ty-divider {
    height: 0;
    margin: 0 0 1.25rem 0;
    flex-shrink: 0;
}

/* Larger gap between last product row and subtotal */
.tecp-w-checkout-wrapper .tecp-w-ty-items + .tecp-w-ty-divider {
    margin-bottom: 24px;
}

/* Section label above items */
.tecp-w-checkout-wrapper .tecp-w-ty-section-label {
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5) !important;
    font-weight: normal;
    margin-bottom: 1px; /* item has padding-top:11px → 1+11=12px absolute gap */
}

/* Items list */
.tecp-w-checkout-wrapper .tecp-w-ty-items {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 0;
}

.tecp-w-checkout-wrapper .tecp-w-ty-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(255,255,255,0.22);
}

.tecp-w-checkout-wrapper .tecp-w-ty-item:last-child {
    border-bottom: none;
}

.tecp-w-checkout-wrapper .tecp-w-ty-item-info {
    flex: 1;
    min-width: 0;
}

.tecp-w-checkout-wrapper .tecp-w-ty-item-name {
    font-size: 12px;
    color: #ffffff;
    letter-spacing: 0.3px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.tecp-w-checkout-wrapper .tecp-w-ty-item-variant {
    font-size: 11px;
    color: #FFFFFF80 !important;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.tecp-w-checkout-wrapper .tecp-w-ty-item-price {
    font-size: 12px;
    color: #ffffff;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Totals breakdown */
.tecp-w-checkout-wrapper .tecp-w-ty-totals {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 1.75rem;
}

.tecp-w-checkout-wrapper .tecp-w-ty-total-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: 12px;
    color: rgba(255,255,255,0.5) !important;
    letter-spacing: 0.5px;
}

.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-grand {
    font-size: 13px;
    color: #ffffff !important;
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.25);
}

/* Refunded view: "refunded −£X" row — same font-size as other rows (12px), white */
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded {
    font-size: 12px;
    color: #ffffff !important;
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.25);
}
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded .tecp-w-ty-total-value,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded .tecp-w-ty-total-value * {
    color: #ffffff !important;
}

/* Refunded view: "non-refundable £Y" row — same font-size (12px), white */
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged {
    font-size: 12px;
    color: #ffffff !important;
    margin-top: 0;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.25);
}
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged .tecp-w-ty-total-value,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged .tecp-w-ty-total-value * {
    color: #ffffff !important;
}

.tecp-w-checkout-wrapper .tecp-w-ty-total-label {
    color: inherit !important;
    /* text-transform handled in PHP: lowercase for subtotal/shipping/total, original case for VAT */
    letter-spacing: 1px;
}

/* Shipping method name — inline after "shipping" label, dimmer secondary text */
.tecp-w-checkout-wrapper .tecp-w-ty-via-method {
    display: inline;
    font-size: 11px;
    color: rgba(255,255,255,0.40) !important;
    letter-spacing: 0.3px;
}

.tecp-w-checkout-wrapper .tecp-w-ty-total-value {
    color: inherit !important;
}

/* Force dim color on WC nested price spans for non-grand-total rows */
.tecp-w-checkout-wrapper .tecp-w-ty-total-row:not(.tecp-w-ty-total-grand) .tecp-w-ty-total-value,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row:not(.tecp-w-ty-total-grand) .tecp-w-ty-total-value * {
    color: rgba(255,255,255,0.5) !important;
}
/* Refunded view: override dim rule above — labels + values in refunded/non-refundable rows stay white */
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded .tecp-w-ty-total-label,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded .tecp-w-ty-total-value,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-refunded .tecp-w-ty-total-value *,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged .tecp-w-ty-total-label,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged .tecp-w-ty-total-value,
.tecp-w-checkout-wrapper .tecp-w-ty-total-row.tecp-w-ty-total-charged .tecp-w-ty-total-value * {
    color: #ffffff !important;
}

/* CTA button */
.tecp-w-checkout-wrapper .tecp-w-ty-btn {
    align-self: flex-start;
    margin-top: 0;
}

/* On-hold: "what's next" body text (heading removed — text only).
   margin-bottom 1.75rem (28px) = same total→button standard as success state. */
.tecp-w-checkout-wrapper .tecp-w-ty-whatsnext {
    width: 100%;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    line-height: 1.7;
    color: #FFFFFF80 !important;
    text-align: left;
    margin-bottom: 1.75rem;
}
.tecp-w-checkout-wrapper .tecp-w-ty-whatsnext p { color: #FFFFFF80 !important; }
.tecp-w-checkout-wrapper .tecp-w-ty-whatsnext p {
    margin: 0 0 10px;
    display: block;
}
.tecp-w-checkout-wrapper .tecp-w-ty-whatsnext p:last-child { margin-bottom: 0; }

/* Refunded view: policy note below calculator — matches on-hold whatsnext style */
.tecp-w-checkout-wrapper .tecp-w-ty-refunded-note {
    width: 100%;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    line-height: 1.7;
    color: #FFFFFF80 !important;
    text-align: left;
    margin: 0 0 1.75rem;
}

/* On-hold: ··· symbol needs slight letter-spacing to space the three dots evenly */
.tecp-w-checkout-wrapper .tecp-w-lostpw-complete-circle.tecp-w-ty-onhold {
    font-size: 18px;
    letter-spacing: 3px;
    padding-left: 3px; /* compensate for letter-spacing on last dot */
}

/* Fallback (no order found) */
.tecp-w-checkout-wrapper .tecp-w-ty-fallback {
    text-align: center;
    padding: 1rem 0;
}

/* === CREATE ACCOUNT (guests, order-received) === */
.tecp-w-ty-create-account {
    width: 100%;
    align-self: stretch;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 16px;
}

/* Cancelled (✕) has NO action button/what's-next between totals and create-account,
   so create-account sits directly after totals. Drop its margin-top so the gap equals
   totals' margin-bottom (28px) — matching total→what's-next spacing in the on-hold view.
   In success/pending/on-hold a button or what's-next sits between, so this adjacency
   never matches and the 16px gap is kept. (Adjacent-sibling ignores HTML comments.) */
.tecp-w-checkout-wrapper .tecp-w-ty-totals + .tecp-w-ty-create-account {
    margin-top: 0;
}

.tecp-w-ty-ca-text {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
    text-align: left;
    margin: 0;
}

.tecp-w-ty-ca-error {
    font-size: 11px;
    color: rgba(255,100,100,0.8);
    font-family: Verdana, Geneva, sans-serif;
    text-align: center;
    margin: 0;
}

.tecp-w-ty-ca-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.tecp-w-ty-ca-input {
    width: 100%;
    height: 44px !important;  /* Blocksy input:is([type=password]) specificity (0,1,1) > our (0,1,0) — need !important */
    box-sizing: border-box;
    padding: 12px 16px;
    background: rgba(255,255,255,0.08);
    border: none;
    color: #fff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    outline: none;
    transition: background 0.2s;
}

.tecp-w-ty-ca-input::placeholder {
    color: var(--tecp-placeholder);
    opacity: 1;
}

.tecp-w-ty-ca-input:focus {
    background: rgba(255,255,255,0.15);
}

/* Hide Firefox's native password reveal icon and Lockwise key icon — we have our own toggle */
.tecp-w-ty-ca-input::-moz-reveal { display: none !important; }
.tecp-w-ty-ca-input::-ms-reveal  { display: none !important; }

.tecp-w-ty-ca-btn {
    width: 100%;
    border-radius: 0 !important;
}

/* Requirements box — hidden by default, revealed on password field focus */
.tecp-w-ty-create-account .tecp-w-lostpw-pw-req {
    display: none;
    margin-top: 0;
    margin-bottom: 0;
}

/* Password wrapper — explicit 44px so it matches the submit button height exactly */
.tecp-w-ty-ca-pw-field {
    height: 44px;
    margin-bottom: 0 !important; /* no gap before strength meter inside pw-group */
}

/* Group wrapping password field + strength meter — flex column with no gap so meter
   sits flush (0px) against the input, unaffected by the parent form's gap: 10px */
.tecp-w-ty-pw-group {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Strength meter inside group — 0 gap, input is now 44px so no overlap needed */
.tecp-w-ty-pw-group .woocommerce-password-strength {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* "← continue shopping" link below create account button */
.tecp-w-ty-ca-continue {
    margin-top: 14px !important; /* flex gap 10px + 14px = 24px total; overrides base 1.5rem */
    color: #FFFFFF80 !important;
    align-self: flex-start;
}

/* "← continue shopping" — shown in all three order-received states (success / failed / on-hold).
   Panel is flex column with NO gap, so margin-top:24px = exact 24px from the element above
   (success: create-account block / on-hold: your-orders button / failed: try-again button). */
.tecp-w-checkout-wrapper .tecp-w-ty-continue {
    margin-top: 24px !important; /* overrides base .tecp-w-continue 1.5rem */
    color: #FFFFFF80 !important;
    align-self: flex-start;
}
/* Arrow button hover — full white per global arrow-button rule (all 3 order-received states) */
.tecp-w-checkout-wrapper .tecp-w-ty-continue:hover { color: #FFFFFF !important; }

/* "← continue shopping" link at bottom of forgot-password step 3 */
.tecp-w-lostpw-step3-continue {
    margin-top: 24px !important; /* no flex gap here — direct 24px from last element */
    color: #FFFFFF80 !important;
    display: block;
}

/* Payment gateway instructions (BACS etc.) — glassmorphism notice */
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou .woocommerce-info,
.tecp-w-checkout-wrapper .tecp-w-panel-thankyou ul.woocommerce-info {
    background: rgba(255,255,255,0.06);
    border-left: 2px solid rgba(255,255,255,0.25);
    padding: 12px 16px;
    margin-top: 1.25rem;
    list-style: none;
    font-size: 12px;
    color: rgba(255,255,255,0.8) !important;
}


/* ============================
   MY ACCOUNT — VIEW ORDER
   ============================ */

.tecp-w-view-order {
    /* no extra padding — sits inside .tecp-w-myaccount-content */
}

/* Header */
.tecp-w-vo-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,0.25);
    margin-bottom: 0;
}

.tecp-w-vo-section-label {
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: lowercase;
    color: rgba(255,255,255,0.50);
    margin-bottom: 12px;
}

.tecp-w-vo-order-number {
    font-size: 14px !important;
    letter-spacing: 0.65px !important;
    color: rgba(255,255,255,0.85);
    margin-bottom: 4px;
}

.tecp-w-vo-order-date {
    font-size: 11px;
    color: rgba(255,255,255,0.50);
    letter-spacing: 1px;
}

/* Status badge — view order header uses .tecp-w-myaccount-order-status + .tecp-w-myaccount-status-* (same as orders list) */

/* Products */
.tecp-w-vo-products {
    margin-bottom: 8px;
}

.tecp-w-vo-product {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255,255,255,0.25);
}

/* first-child padding matches all other rows — no override needed */

.tecp-w-vo-product-thumb {
    flex-shrink: 0;
    width: 120px;
    height: 150px;
    overflow: hidden;
}

.tecp-w-vo-product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tecp-w-vo-product-thumb-placeholder {
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.06);
}

.tecp-w-vo-product-info {
    flex: 1;
    min-width: 0;
}

.tecp-w-vo-product-name {
    font-size: 13px;
    color: #ffffff;
    margin-bottom: 0;
}

.tecp-w-vo-product-meta {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    margin-top: 4px;
}

.tecp-w-vo-product-qty {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    margin-top: 4px;
}

.tecp-w-vo-product-price {
    font-size: 13px;
    color: #ffffff;
    font-family: Verdana, Geneva, sans-serif;
    flex-shrink: 0;
    margin-left: auto;
}

.tecp-w-vo-product-price *,
.tecp-w-vo-product-price .amount,
.tecp-w-vo-product-price bdi {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: inherit !important;
    color: inherit !important;
}

/* Costs */
.tecp-w-vo-costs {
    margin-bottom: 28px;
}

.tecp-w-vo-cost-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0;
    margin-bottom: 5px;
    font-size: 12px;
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-vo-cost-label {
    color: rgba(255,255,255,0.50);
}

.tecp-w-vo-cost-method {
    font-size: 11px;
    color: rgba(255,255,255,0.28);
    letter-spacing: 1px;
    margin-left: 6px;
}

/* Order-view date: time (24h) next to the date, styled exactly like the shipping-method note. */
.tecp-w-vo-order-time {
    font-size: 11px;
    color: rgba(255,255,255,0.28);
    letter-spacing: 1px;
    margin-left: 6px;
}

.tecp-w-vo-cost-value {
    color: rgba(255,255,255,0.50);
}

.tecp-w-vo-cost-value *,
.tecp-w-vo-cost-value .amount,
.tecp-w-vo-cost-value bdi {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: inherit !important;
    color: inherit !important;
}

.tecp-w-vo-cost-total {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid rgba(255,255,255,0.25);
    margin-top: 3px;
    padding-top: 5px;
    font-size: 14px;
    font-family: Verdana, Geneva, sans-serif;
    font-weight: 500;
}

.tecp-w-vo-cost-total .tecp-w-vo-cost-label {
    color: #ffffff;
}

.tecp-w-vo-cost-total .tecp-w-vo-cost-value {
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.tecp-w-vo-vat {
    font-size: 9px;
    color: rgba(255,255,255,0.22);
    font-weight: normal;
    font-family: Verdana, Geneva, sans-serif;
}

.tecp-w-vo-vat *,
.tecp-w-vo-vat .amount,
.tecp-w-vo-vat bdi {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: inherit !important;
    color: inherit !important;
}

/* Payment + Tracking */
.tecp-w-vo-info-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}
/* In order-pay, the "payment" label directly precedes the WC payment form.
   Remove our gap so WC's own form spacing matches checkout tab→content distance. */
.tecp-w-panel-order-pay .tecp-w-vo-info-row {
    margin-bottom: 0;
}

.tecp-w-vo-payment {
    flex: 1;
    min-width: 0;
}

.tecp-w-vo-tracking {
    min-width: 0;
}

.tecp-w-vo-payment-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.tecp-w-vo-info-value {
    font-size: 12px;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.62);
}

.tecp-w-vo-payment-detail {
    font-size: 12px;
    letter-spacing: 1px;
    font-family: Verdana, Geneva, sans-serif;
    color: rgba(255,255,255,0.5);
}

.tecp-w-vo-info-id {
    font-size: 10px;
    color: rgba(255,255,255,0.35);
    margin-top: 3px;
    letter-spacing: 1px;
}

.tecp-w-vo-tracking-number {
    font-size: 11px;
    color: rgba(255,255,255,0.62);
    text-decoration: none;
    display: inline-block;
}

.tecp-w-vo-tracking-number:hover {
    color: rgba(255,255,255,0.90);
    text-decoration: none;
}

.tecp-w-vo-tracking-provider {
    font-size: 9px;
    color: rgba(255,255,255,0.30);
    margin-top: 3px;
    letter-spacing: 0.5px;
}

/* Delivery Instructions */
.tecp-w-vo-notes {
    margin-bottom: 28px;
}

.tecp-w-vo-notes > .tecp-w-vo-section-label {
    margin-bottom: 10px;
}

.tecp-w-vo-notes-text {
    margin: 0;
    color: #FFFFFF80;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    line-height: 1.5;
}

/* Addresses */
.tecp-w-vo-addresses {
    margin-bottom: 0;
}

.tecp-w-vo-addresses > .tecp-w-vo-section-label {
    margin-bottom: 14px;
}

/* Renew checkout: payment label gap matches main checkout (12px absolute) */
.tecp-w-checkout-op .tecp-w-vo-payment .tecp-w-vo-section-label {
    margin-bottom: 12px;
}

.tecp-w-vo-address-row {
    display: flex;
    gap: 14px;
}

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

.tecp-w-vo-address-heading {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: lowercase;
    color: rgba(255,255,255,0.45);
    margin-bottom: 26px;
}

.tecp-w-vo-address-body {
    font-style: normal;
    font-size: 12px;
    color: rgba(255,255,255,0.65);
    line-height: 1.8;
}
/* Override .tecp-w-myaccount-content address { color: #fff !important } (0,1,1) — needs 2 classes */
.tecp-w-myaccount-content .tecp-w-vo-address-body {
    color: rgba(255,255,255,0.8) !important;
}

.tecp-w-vo-address-same {
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.25);
}

/* Back navigation */
.tecp-w-vo-back {
    display: inline-block;
    font-size: 10px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.25);
    text-decoration: none;
    transition: color 0.2s;
    margin-top: 1.5rem;
}

.tecp-w-vo-back:hover {
    color: rgba(255,255,255,0.70);
    text-decoration: none;
}

/* orders list — gap between order number and date/price lines */
.tecp-w-myaccount-order-number {
    margin-bottom: 6px;
}

/* dashboard recent order — prevent mb:10px collapse through transparent panel */
.tecp-w-myaccount-order-panel--transparent .tecp-w-myaccount-orders-card {
    margin-bottom: 0;
}

/* =========================================================
   VIEW ORDER — Pay Now button
   ========================================================= */

.tecp-w-vo-pay-action {
    margin-bottom: 28px;
}
.tecp-w-vo-info-row + .tecp-w-vo-pay-action {
    margin-top: -12px; /* 28 - 12 = 16px above separator, matching 16px below */
}

.tecp-w-vo-pay-divider {
    height: 1px;
    background: rgba(255,255,255,0.25);
    margin-bottom: 16px;
}

.tecp-w-vo-pay-msg {
    margin: 0 0 16px 0;
    color: rgba(255,255,255,0.60);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    letter-spacing: 1px;
    line-height: 1.6;
}

.tecp-w-vo-btn-pay-full {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.5);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: lowercase;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.tecp-w-vo-btn-pay-full:hover {
    background: rgba(255,255,255,0.25);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   SCROLL & BACKGROUND — WooCommerce pages
   ============================================================ */

/* Order-received panel scrolls internally.
   min(90vh, 800px): at user viewport ~889px → 800px, wrapper = 200+800+80 = 1080 < 1093px container → no bg zoom.
   90vh kicks in on small screens (< ~890px), 800px cap protects on large screens. */
body.woocommerce-order-received .tecp-w-panel-thankyou {
    overflow-y: auto !important;
    max-height: min(90vh, 800px) !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.25) transparent;
}
body.woocommerce-order-received .tecp-w-panel-thankyou::-webkit-scrollbar {
    width: 4px;
}
body.woocommerce-order-received .tecp-w-panel-thankyou::-webkit-scrollbar-track {
    background: transparent;
}
body.woocommerce-order-received .tecp-w-panel-thankyou::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.25);
    border-radius: 0;
}

/* ============================================
   EINN CONTACT WIDGET
   ============================================ */
.tecp-w-panel-contact {
    width: 70%;
    display: flex;
    flex-direction: column;
}

/* Intro text */
.tecp-w-contact-intro {
    color: rgba(255,255,255,0.5); /* #FFFFFF80 */
    text-align: center;
    margin-bottom: 40px;
}
.tecp-w-contact-intro p {
    font-size: 13px;
    line-height: 1.6;
    margin: 0 0 10px;
}
.tecp-w-contact-intro p:last-child { margin-bottom: 0; }

/* Fields layout — flex column, tight gap (was too far apart in the old form) */
.tecp-w-contact-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 12px;
}
.tecp-w-contact-row-2 {
    display: flex;
    gap: 10px;
}
.tecp-w-contact-row-2 .tecp-w-contact-field {
    flex: 1 1 50%;
    min-width: 0;
}

/* Inputs / textarea — identical to checkout fields (44px, 0.08 bg, focus 0.15) */
.tecp-w-contact-fields input[type="text"],
.tecp-w-contact-fields input[type="email"],
.tecp-w-contact-fields textarea {
    width: 100%;
    height: 44px;
    padding: 12px 16px;
    background: rgba(255,255,255,0.08);
    border: none;
    border-radius: 0;
    color: #fff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    outline: none;
    transition: background 0.3s;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.tecp-w-contact-fields textarea {
    height: 120px;
    resize: none;
    line-height: 1.6;
}
.tecp-w-contact-fields input:focus,
.tecp-w-contact-fields textarea:focus {
    background: rgba(255,255,255,0.15);
}
.tecp-w-contact-fields input::placeholder,
.tecp-w-contact-fields textarea::placeholder {
    color: var(--tecp-placeholder);
    opacity: 1;
    font-size: 13px;
}

/* Autofill — checkout/cart context colour (0.15) */
.tecp-w-contact-wrapper input:-webkit-autofill,
.tecp-w-contact-wrapper input:-webkit-autofill:hover,
.tecp-w-contact-wrapper input:-webkit-autofill:focus {
    -webkit-text-fill-color: #fff !important;
    -webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
    caret-color: #fff;
}
.tecp-w-contact-wrapper input:-moz-autofill {
    filter: none !important;
    -moz-appearance: none !important;
    background-color: rgba(255,255,255,0.15) !important;
    box-shadow: 0 0 0px 1000px rgba(255,255,255,0.15) inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* Submit button — reuses .tecp-w-btn; explicit rules so Elementor controls bind */
.tecp-w-contact-submit {
    width: 100%;
    height: 44px;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 13px;
    letter-spacing: 2px;
    border-radius: 0 !important; /* kill theme (Blocksy) rounded button corners */
}

/* Required-field validation — red ring identical to checkout's .woocommerce-invalid
   (box-shadow: rgba(255,80,80,0.5) 0 0 0 1px inset). No text alert. */
.tecp-w-contact-field.tecp-field-error input,
.tecp-w-contact-field.tecp-field-error textarea {
    box-shadow: inset 0 0 0 1px rgba(255,80,80,0.5) !important;
}

/* Inline error — server/network failures only (recaptcha, send error). Not used for
   the empty-field case, which highlights the fields instead. */
.tecp-w-contact-error {
    color: rgba(255,150,150,0.95);
    font-size: 12px;
    letter-spacing: 0.5px;
    text-align: center;
    margin-bottom: 14px;
    line-height: 1.5;
}

/* Submit → reveal animation: form collapses, success fades in */
.tecp-w-contact-form {
    transition: opacity 0.4s ease;
}
.tecp-w-contact-form.tecp-sending { opacity: 0.5; pointer-events: none; }

.tecp-w-contact-success {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    text-align: center;
    transition: opacity 0.5s ease, max-height 0.6s cubic-bezier(0.4,0,0.2,1);
}
.tecp-w-contact-success.open {
    opacity: 1;
    max-height: 600px;
    padding: 8px 0;
}
/* Separator between the intro text and the success message (panel-internal weight 0.25) */
.tecp-w-contact-success-sep {
    height: 1px;
    background: rgba(255,255,255,0.25);
    margin-bottom: 24px;
}
.tecp-w-contact-success-title {
    color: #fff;
    font-size: 14px;
    letter-spacing: 1px;
    margin-bottom: 14px;
}
.tecp-w-contact-success-text {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    line-height: 1.6;
}
/* One <p> per line — same spacing as the intro paragraphs (10px gap between lines) */
.tecp-w-contact-success-text p {
    margin: 0 0 10px;
    line-height: 1.6;
}
.tecp-w-contact-success-text p:last-child { margin-bottom: 0; }

/* Continue link — bottom of panel, left, 24px below last element (global rule) */
.tecp-w-contact-continue {
    align-self: flex-start;
    margin-top: 24px;
}

/* === WHITE THEME === */
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-title { color: #000; }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-intro { color: #000; }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields input,
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields textarea {
    background: rgba(0,0,0,0.04);
    color: #000;
}
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields input:focus,
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields textarea:focus {
    background: rgba(0,0,0,0.08);
}
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields input::placeholder,
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-fields textarea::placeholder {
    color: rgba(0,0,0,0.4);
}
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-success-sep { background: rgba(0,0,0,0.15); }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-success-title { color: #000; }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-contact-success-text { color: #7a7a7a; }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-continue { color: #7a7a7a; }
.tecp-w-contact-wrapper.tecp-w-white .tecp-w-continue:hover { color: #000; }

/* ============================================
   LEGAL / POLICY PAGES (white) — title alignment to widget standard
   Pages: privacy (3), terms (169), cookies (154), fulfillment (24).
   Goal (matches widget pages): title top 172px, first content top 302px
   (= where the glassmorphism panel starts), title letter-spacing 5.5px.
   Levers (native Elementor heading widget = first child of .e-con-inner):
   heading margin-top 70 → title 172; heading margin-bottom 90 + first
   content margin-top 0 → content 302 (deterministic across all 4 pages).
   ============================================ */
.page-id-3 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title),
.page-id-169 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title),
.page-id-154 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title),
.page-id-24 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title) {
    margin-top: 70px !important;
    /* 80 (not 90): the h1 line-height:1.5 below grows the title box by 10px
       (20→30), so trim 10px here to keep first content at 302px. */
    margin-bottom: 80px !important;
}
.page-id-3 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title) + .elementor-widget,
.page-id-169 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title) + .elementor-widget,
.page-id-154 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title) + .elementor-widget,
.page-id-24 .e-con-inner > .elementor-widget-heading:has(h1.elementor-heading-title) + .elementor-widget {
    margin-top: 0 !important;
}
.page-id-3 h1.elementor-heading-title,
.page-id-169 h1.elementor-heading-title,
.page-id-154 h1.elementor-heading-title,
.page-id-24 h1.elementor-heading-title {
    letter-spacing: 5.5px !important;
    /* Match widget title line-height (1.5×) so glyphs sit at the same vertical
       position inside the line — white titles were rendering ~5px higher purely
       because their line-height was 1.0 (20px) vs the widget's 1.5 (30px). */
    line-height: 1.5 !important;
}
