/* ===== Juvytex Custom Styles — Dark Gray + White ===== */

[data-animate] {
    opacity: 0;
}
[data-animate].visible {
    opacity: 1;
}
.hero-overlay {
    background: rgba(0, 0, 0, 0.25);
}
.glass {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Card hover */
.card-hover {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

/* Buttons — sharp corners, dark gray */
.btn-primary {
    background: #262626;
    color: #fff;
    transition: all 0.3s ease;
}
.btn-primary:hover {
    background: #171717;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.btn-secondary {
    transition: all 0.3s ease;
}
.btn-secondary:hover {
    transform: translateY(-1px);
    background: white;
    color: #171717;
}

/* Discount badge */
.discount-badge {
    background: #262626;
}

/* Testimonial quote */
.testimonial-card {
    position: relative;
}
.testimonial-card::before {
    content: '\201C';
    position: absolute;
    top: -10px;
    left: 20px;
    font-size: 5rem;
    color: rgba(64, 64, 64, 0.08);
    font-family: 'Times New Roman', Times, serif;
    line-height: 1;
}

/* Nav underline hover */
.nav-link {
    position: relative;
}
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 12px;
    right: 12px;
    height: 2px;
    background: #262626;
    transform: scaleX(0);
    transition: transform 0.3s ease;
}
.nav-link:hover::after {
    transform: scaleX(1);
}

/* Product image hover */
.product-img-wrap {
    overflow: hidden;
}
.product-img-wrap img {
    transition: transform 0.5s ease;
}
.product-img-wrap:hover img {
    transform: scale(1.05);
}

/* USP icon hover */
.usp-icon {
    transition: transform 0.3s ease;
}
.usp-card:hover .usp-icon {
    transform: scale(1.1);
}

/* Typography — headings use Playfair Display */
h1, h2, h3, .font-heading {
    font-family: 'Playfair Display', Georgia, serif;
}

/* Ensure body uses Open Sans */
body, .font-body {
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
}

/* ===== Checkout Page ===== */

/* All form fields full-width, stacked vertically — simple and robust */
.juvytex-fields-grid {
    display: block !important;
    width: 100% !important;
}
.juvytex-fields-grid > .juvytex-field-full,
.juvytex-fields-grid > .juvytex-field-half {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin-bottom: 16px !important;
}
.juvytex-fields-grid > .juvytex-field-full:last-child,
.juvytex-fields-grid > .juvytex-field-half:last-child {
    margin-bottom: 0 !important;
}
.juvytex-fields-grid p.form-row {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    display: block !important;
}
.juvytex-fields-grid p.form-row .input-text,
.juvytex-fields-grid p.form-row .woocommerce-input-wrapper,
.juvytex-fields-grid p.form-row select,
.juvytex-fields-grid p.form-row textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.juvytex-fields-grid p.form-row .select2-container,
.juvytex-fields-grid p.form-row .select2-selection {
    width: 100% !important;
    max-width: 100% !important;
}
/* Aadressirea 2 (peidetud sildiga) input istus eelmise välja küljes —
   anname selgema vahe (#75) */
.juvytex-fields-grid p.form-row#billing_address_2_field,
.juvytex-fields-grid p.form-row#shipping_address_2_field {
    margin-top: 10px !important;
}
/* Riigi-select istus liiga lähedal järgmise välja sildil — lisa vahe (klient #103) */
.juvytex-fields-grid p.form-row#billing_country_field,
.juvytex-fields-grid p.form-row#shipping_country_field {
    margin-bottom: 14px !important;
}



.juvytex-checkout-section { overflow: hidden; }
.juvytex-checkout-section-header {
    padding: 16px 20px;
    background: #fafafa;
    border-bottom: 1px solid #e5e5e5;
}
.juvytex-checkout-section-body {
    padding: 20px;
}

/* Horisontaalse ülevoolu fix (klient #96): CSS-grid 1fr-track'i min-width:auto
   ei luba kahaneda, kui sisus on lai min-content → leht läheb viewportist laiemaks.
   min-width:0 lubab veerul kahaneda. Sama kehtib kassa + ostukorvi gridile. */
.juvytex-checkout-left,
.juvytex-checkout-right,
.juvytex-cart-items-col,
.juvytex-cart-totals-col {
    min-width: 0;
}
/* Pikad katkematud sõnad (nt e-post, SKU) ei tohi kasti laiemaks suruda */
.juvytex-checkout-summary-card,
.juvytex-summary-item,
.juvytex-payment-method-body { overflow-wrap: anywhere; }

/* Tahvli/telefoni vaates (alla 1024px) pole sticky veel aktiivne (lg:sticky),
   nii et peidame horisontaalse ülevoolu turvaliselt — kaob side-scroll kassal
   ja ostukorvis (klient #112) */
@media (max-width: 1023px) {
    body.woocommerce-checkout main,
    body.woocommerce-cart main { overflow-x: hidden; }
    .juvytex-checkout, .juvytex-checkout-left, .juvytex-checkout-right { max-width: 100%; }
}

/* === Mobiili dropdown-menüü (☰ vasakul, logo keskel) === */
.juvytex-mobile-menu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: #fff;
    border-top: 1px solid #ededed;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.10);
    max-height: calc(100dvh - 64px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 0 12px;
    z-index: 60;
}
body.juvytex-menu-open .juvytex-mobile-menu {
    display: block;
    animation: jvxMenuIn 0.2s ease-out;
}
@keyframes jvxMenuIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.juvytex-mobile-backdrop {
    display: none;
    position: fixed;
    inset: 64px 0 0 0;
    background: rgba(23, 23, 23, 0.32);
    z-index: 40;
    opacity: 0;
    transition: opacity 0.2s ease;
}
body.juvytex-menu-open .juvytex-mobile-backdrop { display: block; opacity: 1; }
body.juvytex-menu-open { overflow: hidden; }

.juvytex-mobile-item { border-bottom: 1px solid #f2f2f2; }
.juvytex-mobile-menu > .juvytex-mobile-item:last-of-type { border-bottom: none; }
.juvytex-mobile-panel .juvytex-mobile-item:last-child { border-bottom: none; }

.juvytex-mobile-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 12px;
    padding: 14px 20px;
    background: none;
    border: 0;
    text-align: left;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #171717;
    letter-spacing: 0.01em;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
}
.juvytex-mobile-row:hover,
.juvytex-mobile-row:focus-visible { background: #fafafa; }
.juvytex-mobile-row--link { color: #171717; }

.juvytex-mobile-chev {
    width: 18px;
    height: 18px;
    color: #9a9a9a;
    flex: none;
    transition: transform 0.2s ease;
}
.juvytex-mobile-row[aria-expanded="true"] .juvytex-mobile-chev { transform: rotate(90deg); }

.juvytex-mobile-panel { display: none; background: #fafafa; }
.juvytex-mobile-panel.is-open { display: block; animation: jvxPanelIn 0.18s ease-out; }
@keyframes jvxPanelIn { from { opacity: 0; } to { opacity: 1; } }
.juvytex-mobile-panel .juvytex-mobile-panel { background: #f3f3f3; }

.juvytex-mobile-row--sub {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    padding: 12px 20px 12px 32px;
}

.juvytex-mobile-link {
    display: block;
    padding: 9px 20px 9px 44px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13.5px;
    color: #5c5c5c;
    text-decoration: none;
    line-height: 1.35;
}
.juvytex-mobile-link:hover { color: #171717; }
.juvytex-mobile-link--all { color: #171717; font-weight: 600; }
.juvytex-mobile-link--flush { padding-left: 32px; }

.juvytex-mobile-lang {
    display: flex;
    justify-content: center;
    padding: 16px 20px 6px;
}

/* ☰ ↔ ✕ ikoonivahetus */
.juvytex-burger-close { display: none; }
body.juvytex-menu-open .juvytex-burger-open { display: none; }
body.juvytex-menu-open .juvytex-burger-close { display: block; }

/* Shipping toggle row: switch | heading + description */
.juvytex-shipping-toggle-row {
    padding: 16px 20px;
}
.juvytex-shipping-toggle-label {
    display: flex !important;
    align-items: flex-start;
    gap: 14px;
}
.juvytex-shipping-toggle-text {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}
.juvytex-shipping-toggle-text > span:first-child {
    margin-bottom: 4px;
}

/* Custom toggle switch for "Ship to a different address" */
.juvytex-toggle {
    user-select: none;
}
.juvytex-toggle-track {
    position: relative;
    display: inline-block;
    width: 42px;
    height: 24px;
    background: #d4d4d4;
    transition: background 0.2s ease;
    flex-shrink: 0;
}
.juvytex-toggle-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    transition: transform 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}
.juvytex-toggle-input:checked + .juvytex-toggle-track {
    background: #171717;
}
.juvytex-toggle-input:checked + .juvytex-toggle-track .juvytex-toggle-thumb {
    transform: translateX(18px);
}
.juvytex-toggle-input:focus-visible + .juvytex-toggle-track {
    outline: 2px solid #171717;
    outline-offset: 2px;
}

/* Collapsible banner (login + coupon) */
.juvytex-checkout-banner {
    border: 1px solid #e5e5e5;
    background: #fafafa;
}
.juvytex-checkout-banner-toggle {
    list-style: none;
    cursor: pointer;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-checkout-banner-toggle::-webkit-details-marker { display: none; }
.juvytex-checkout-banner[open] .juvytex-checkout-banner-chevron {
    transform: rotate(180deg);
}
.juvytex-checkout-banner-chevron { transition: transform 0.2s ease; }
.juvytex-checkout-banner-body {
    padding: 18px;
    background: #fff;
    border-top: 1px solid #e5e5e5;
}

/* Order summary card (right column) */
.juvytex-checkout-summary-card { overflow: hidden; }
.juvytex-summary-items {
    padding: 8px 20px;
    max-height: 360px;
    overflow-y: auto;
}
.juvytex-summary-item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-summary-item:last-child { border-bottom: 0; }
.juvytex-summary-item-thumb {
    position: relative;
    width: 56px;
    height: 56px;
    background: #fafafa;
}
.juvytex-summary-item-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    display: block;
}
.juvytex-summary-item-qty {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 20px;
    height: 20px;
    background: #171717;
    color: #fff;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
}
.juvytex-summary-item-name {
    font-size: 13px;
    font-weight: 500;
    color: #171717;
    line-height: 1.4;
    margin-bottom: 2px;
}
.juvytex-summary-item-info .variation,
.juvytex-summary-item-info .wc-item-meta {
    font-size: 11px;
    color: #737373;
    margin: 2px 0 0 0;
    padding: 0;
    list-style: none;
}
.juvytex-summary-item-price {
    font-size: 13px;
    font-weight: 700;
    color: #171717;
    text-align: right;
}

/* Summary totals */
.juvytex-summary-totals {
    padding: 14px 20px;
    border-top: 1px solid #e5e5e5;
    background: #fafafa;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px;
}
.juvytex-summary-label { color: #525252; }
.juvytex-summary-value { color: #171717; font-weight: 600; }
.juvytex-summary-grand {
    margin-top: 6px;
    padding-top: 10px !important;
    border-top: 1px solid #e5e5e5;
}
.juvytex-summary-grand .juvytex-summary-label {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.04em;
    color: #171717;
}
.juvytex-summary-grand .juvytex-summary-value {
    font-size: 20px;
    font-weight: 700;
}

/* Shipping methods inside summary — rendered as radio cards */
.juvytex-summary-totals #shipping_method,
.juvytex-checkout-shipping-methods,
.woocommerce-shipping-methods {
    list-style: none !important;
    margin: 6px 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
/* WooCommerce prints the radio as a SIBLING of the label, so the row itself must
   be the flex container — otherwise the label (display:flex) breaks onto its own
   line and the radio sits orphaned above it. Anything the
   `woocommerce_after_shipping_rate` hook adds (pickup hours, Montonio's parcel
   machine select) wraps to its own full-width line below. */
.juvytex-summary-totals #shipping_method li,
.juvytex-totals-shipping #shipping_method li,
.woocommerce-shipping-methods li {
    list-style: none !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 8px;
    padding: 10px 12px !important;
    margin: 0 !important;
    border: 1px solid #d4d4d4;
    background: #fff;
    transition: border-color 0.15s ease;
}
.juvytex-summary-totals #shipping_method li > input[type="radio"],
.juvytex-totals-shipping #shipping_method li > input[type="radio"],
.woocommerce-shipping-methods li > input[type="radio"] {
    flex: none;
    margin: 0 !important;
}
.juvytex-summary-totals #shipping_method li > *:not(input):not(label),
.juvytex-totals-shipping #shipping_method li > *:not(input):not(label),
.woocommerce-shipping-methods li > *:not(input):not(label) {
    flex-basis: 100%;
}
.juvytex-summary-totals #shipping_method li::before,
.woocommerce-shipping-methods li::before { content: none !important; display: none !important; }
.juvytex-summary-totals #shipping_method li:has(input:checked),
.woocommerce-shipping-methods li:has(input:checked) {
    border-color: #171717;
    background: #fafafa;
}
.juvytex-summary-totals #shipping_method li label,
.juvytex-totals-shipping #shipping_method li label,
.woocommerce-shipping-methods li label {
    flex: 1 1 auto;
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 0 !important;
    cursor: pointer;
    font-size: 13px;
    color: #171717;
    margin: 0 !important;
}
.juvytex-summary-totals #shipping_method li input[type="radio"],
.woocommerce-shipping-methods li input[type="radio"] {
    accent-color: #171717;
}

/* Payment methods as cards */
.juvytex-payment {
    border-top: 1px solid #e5e5e5;
    background: #fff;
}
.juvytex-payment-methods {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 20px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.juvytex-payment-method {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.juvytex-payment-method::before { content: none !important; display: none !important; }
.juvytex-payment-method-card {
    display: flex !important;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #d4d4d4;
    background: #fff;
    cursor: pointer;
    transition: all 0.15s ease;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #171717;
    margin: 0 !important;
}
.juvytex-payment-method-card:hover {
    border-color: #737373;
}
.juvytex-payment-method-radio:checked + .juvytex-payment-method-card {
    border-color: #171717;
    background: #fafafa;
}
.juvytex-payment-method-radio-fake {
    width: 18px;
    height: 18px;
    border: 2px solid #d4d4d4;
    border-radius: 999px;
    flex-shrink: 0;
    position: relative;
    transition: border-color 0.15s ease;
}
.juvytex-payment-method-radio:checked + .juvytex-payment-method-card .juvytex-payment-method-radio-fake {
    border-color: #171717;
}
.juvytex-payment-method-radio:checked + .juvytex-payment-method-card .juvytex-payment-method-radio-fake::after {
    content: "";
    position: absolute;
    inset: 3px;
    background: #171717;
    border-radius: 999px;
}
.juvytex-payment-method-radio:focus-visible + .juvytex-payment-method-card {
    outline: 2px solid #171717;
    outline-offset: 2px;
}
.juvytex-payment-method-label {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
}
.juvytex-payment-method-label img {
    max-height: 24px;
    width: auto;
}
.juvytex-payment-method-body {
    padding: 14px 16px;
    background: #f5f5f5;
    border: 1px solid #d4d4d4;
    border-top: 0;
    font-size: 13px;
    color: #525252;
    line-height: 1.5;
}
.juvytex-payment-method-body p { margin: 0 0 8px; }
.juvytex-payment-method-body p:last-child { margin-bottom: 0; }

/* Place order button area */
.juvytex-place-order {
    padding: 18px 20px;
    border-top: 1px solid #e5e5e5;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.juvytex-place-order .woocommerce-terms-and-conditions-wrapper,
.juvytex-place-order .woocommerce-privacy-policy-text {
    font-size: 12px;
    color: #525252;
    line-height: 1.5;
    margin: 0;
}
.juvytex-place-order .woocommerce-privacy-policy-text p {
    margin: 0;
}
.juvytex-place-order-btn {
    display: block !important;
    width: 100% !important;
    padding: 16px 20px !important;
    background: #171717 !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase !important;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-place-order-btn:hover { background: #404040 !important; }
.juvytex-place-order-btn:disabled { opacity: 0.6; cursor: not-allowed; }

/* Pay-for-order table */
.juvytex-pay-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
}
.juvytex-pay-table th,
.juvytex-pay-table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid #f0f0f0;
}
.juvytex-pay-table thead th {
    background: #fafafa;
    color: #525252;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.05em;
    font-weight: 600;
}
.juvytex-pay-table tfoot tr { border-top: 1px solid #e5e5e5; }
.juvytex-pay-table .juvytex-pay-total th,
.juvytex-pay-table .juvytex-pay-total td {
    background: #fafafa;
    font-size: 15px;
    font-weight: 700;
    color: #171717;
}
.juvytex-pay-table .product-quantity { text-align: center; color: #525252; }
.juvytex-pay-table .product-total,
.juvytex-pay-table tfoot td { text-align: right; }

/* Login/coupon form button inherits theme button */
.woocommerce-form-login__submit {
    height: 42px !important;
    padding: 0 22px !important;
    background: #171717 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.15s ease;
}
.woocommerce-form-login__submit:hover { background: #404040 !important; }

/* ===== Notices ===== */
.juvytex-notice {
    display: flex;
    align-items: center; /* ikoon + sisu + nupp vertikaalselt keskel (klient #102) */
    gap: 12px;
    padding: 14px 18px;
    margin-bottom: 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    border-radius: 0;
    border: 1px solid;
}
/* Teate sisu: tekst vasakul, nupp (Vaata ostukorvi) paremal, vertikaalselt keskel */
.juvytex-notice-message {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 16px;
}
.juvytex-notice-message .button {
    margin-left: auto;
    flex-shrink: 0;
}
/* Telefonis: nupp läheb teksti alla täislaiusega, ei kattu (klient #109) */
@media (max-width: 520px) {
    .juvytex-notice-message .button {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }
}
.juvytex-notice::before { display: none !important; content: none !important; }
.juvytex-notice-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 1px;
}
.juvytex-notice-list,
.juvytex-notice-message {
    margin: 0;
    padding: 0;
    flex: 1;
    list-style: none;
}
.juvytex-notice-list li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.juvytex-notice-list li + li { margin-top: 4px; }
.juvytex-notice-list li::before { content: none !important; display: none !important; }

.juvytex-notice-error,
.woocommerce-error,
.woocommerce-error.juvytex-notice {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    color: #991b1b !important;
    border-radius: 0 !important;
}
.juvytex-notice-success,
.woocommerce-message,
.woocommerce-message.juvytex-notice {
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #166534 !important;
    border-radius: 0 !important;
}
.juvytex-notice-info,
.woocommerce-info,
.woocommerce-info.juvytex-notice {
    background: #f5f5f5 !important;
    border: 1px solid #d4d4d4 !important;
    color: #404040 !important;
    border-radius: 0 !important;
}

/* Constrain any icons inside WC notices — AJAX-inserted notices can have unsized SVGs */
.woocommerce-message svg,
.woocommerce-error svg,
.woocommerce-info svg,
.juvytex-notice svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    flex-shrink: 0;
}
/* WC default notices use ::before pseudo with icon — kill the giant icon */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    font-size: 16px !important;
    width: 20px !important;
    height: 20px !important;
    line-height: 20px !important;
    position: static !important;
    margin-right: 8px !important;
    display: inline-block !important;
    color: inherit !important;
    background: none !important;
}

/* WC's "View cart" link inside success message */
.juvytex-notice .button {
    margin-left: 12px;
    padding: 4px 12px !important;
    font-size: 11px !important;
}

/* Mobile checkout */
@media (max-width: 1023px) {
    .juvytex-checkout-summary-card { margin-top: 1rem; }
}

/* ===== Cart Page ===== */
.juvytex-cart-items {
    overflow: hidden;
}

/* One cart item row (grid: thumb | info | qty | subtotal | remove) */
.juvytex-cart-item {
    display: grid !important;
    grid-template-columns: 80px 1fr 130px 110px 36px;
    gap: 16px;
    align-items: center;
    padding: 18px 20px;
    border-bottom: 1px solid #f0f0f0;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-cart-item:last-child {
    border-bottom: 0;
}
.juvytex-cart-item-thumb {
    width: 80px;
    height: 80px;
}
.juvytex-cart-item-thumb a {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.juvytex-cart-item-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    display: block;
}
.juvytex-cart-item-info {
    min-width: 0;
}
.juvytex-cart-item-name {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #171717;
    text-decoration: none;
    line-height: 1.4;
    margin-bottom: 4px;
}
a.juvytex-cart-item-name:hover { color: #525252; }

/* === Header language switcher === */
.juvytex-langswitch { display: inline-flex; align-items: center; }
.juvytex-lang {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #737373;
    text-decoration: none;
    padding: 4px 7px;
    line-height: 1;
    transition: color 0.15s;
}
.juvytex-lang:hover { color: #171717; }
.juvytex-lang--active { color: #171717; }
.juvytex-lang + .juvytex-lang { border-left: 1px solid #e5e5e5; }
.juvytex-lang--draft { opacity: 0.5; }

/* === Meist page accents === */
.prose .juvytex-quote {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: center;
    color: #171717;
    margin: 1.5rem auto;
    max-width: 40rem;
}
.prose .juvytex-cta-wrap { text-align: center; margin: 2rem 0 0.5rem; }
.prose a.juvytex-cta-btn {
    display: inline-block;
    background: #171717;
    color: #fff;
    text-decoration: none;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 14px 32px;
}
.prose a.juvytex-cta-btn:hover { background: #404040; color: #fff; }

/* === Info pages (Hooldusjuhised / Materjalid / Nõuanded) === */
.prose ul.juvytex-dont { list-style: none; padding-left: 0; margin-left: 0; }
.prose ul.juvytex-dont > li { padding-left: 0; }
.prose ul.juvytex-dont > li::marker { content: ""; }
.prose .juvytex-measure { text-align: center; font-size: 1.05rem; color: #171717; margin: 0.4rem 0 0.8rem; }

/* === Bundle "Komplekti kuuluvad:" display (client #121) === */
.juvytex-bundle-contents {
    margin-top: 6px;
}
.juvytex-bundle-contents-title {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #525252;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 4px;
}
.juvytex-bundle-list {
    list-style: none;
    margin: 0;
    padding: 0 0 0 12px;
    border-left: 2px solid #e5e5e5;
}
.juvytex-bundle-list li {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 6px;
    font-size: 13px;
    color: #404040;
    line-height: 1.5;
    padding: 1px 0;
}
.juvytex-bundle-comp {
    font-weight: 600;
    color: #171717;
}
.juvytex-bundle-comp::after {
    content: "—";
    margin-left: 6px;
    color: #a3a3a3;
    font-weight: 400;
}
.juvytex-bundle-detail {
    color: #525252;
}
.juvytex-bundle-contents--mini .juvytex-bundle-contents-title { font-size: 11px; }
.juvytex-bundle-contents--mini .juvytex-bundle-list li { font-size: 12px; }

.juvytex-cart-item-sku,
.juvytex-cart-item-unit-price {
    font-size: 12px;
    color: #737373;
    margin-top: 2px;
}
.juvytex-cart-item-meta {
    margin: 4px 0 0 0;
    padding: 0;
    font-size: 12px;
    color: #525252;
}
.juvytex-cart-item-meta dt,
.juvytex-cart-item-meta dd {
    display: inline;
    margin: 0;
    padding: 0;
}
.juvytex-cart-item-meta dt {
    font-weight: 600;
    margin-right: 4px;
}
.juvytex-cart-item-meta dd::after {
    content: " · ";
    color: #d4d4d4;
    margin: 0 4px;
}
.juvytex-cart-item-meta dd:last-child::after { content: ""; }

.juvytex-cart-item-subtotal {
    font-weight: 700;
    color: #171717;
    font-size: 15px;
    text-align: right;
}
.juvytex-cart-item-subtotal .amount { color: #171717; }
.juvytex-cart-item-remove {
    display: flex;
    justify-content: center;
}
/* NB: width/height MUST be !important. WooCommerce's `.woocommerce a.remove`
   (specificity 0,2,1) beats `.juvytex-cart-remove` (0,1,0) and sets width/height
   to 1em — and since font-size:0 below does win, 1em resolved to 0 and the whole
   remove button collapsed (client: "komplekti ei saa ostukorvist eemaldada"). */
.juvytex-cart-remove {
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    border: 1px solid #e5e5e5 !important;
    color: #737373 !important;
    text-decoration: none !important;
    transition: all 0.15s ease;
    border-radius: 0 !important;
    font-size: 0 !important;
}
/* Icon is a flex item in a fixed-size box — never let it shrink away. */
.juvytex-cart-remove svg {
    flex: none;
    width: 16px;
    height: 16px;
}
.juvytex-cart-remove:hover {
    background: #171717 !important;
    border-color: #171717 !important;
    color: #fff !important;
}

/* Footer logo.
   NB: !important is required. WooCommerce's layout stylesheet ships
   `.woocommerce-page img { height: auto }` (specificity 0,1,1) which beats any
   single utility class — so on shop/cart/category pages the logo fell back to its
   natural 640x152 and rendered enormous, while the (non-WooCommerce) front page
   looked fine. Don't swap this for a Tailwind h-* class. */
.juvytex-footer-logo {
    height: 48px !important;
    width: auto !important;
    max-width: 100%;
    display: block;
}

/* Opening hours under the "Tulen ise järgi" shipping option (client) */
.juvytex-pickup-hours {
    margin: 4px 0 0 24px;
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    line-height: 1.5;
    color: #737373;
}

/* Quantity stepper */
.juvytex-qty-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d4d4d4;
    background: #fff;
}
.juvytex-qty-btn {
    width: 36px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: #525252;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}
.juvytex-qty-btn:hover {
    background: #f5f5f5;
    color: #171717;
}
.juvytex-qty-input {
    width: 48px !important;
    height: 38px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #d4d4d4 !important;
    border-right: 1px solid #d4d4d4 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 14px !important;
    color: #171717 !important;
    background: white !important;
    padding: 0 !important;
    -moz-appearance: textfield;
}
.juvytex-qty-input::-webkit-outer-spin-button,
.juvytex-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.juvytex-qty-input:focus {
    outline: none;
    background: #fafafa !important;
}

/* Cart actions row (coupon + update) */
.juvytex-cart-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    background: #fafafa;
    border-top: 1px solid #e5e5e5;
}
.juvytex-coupon-form {
    display: flex;
    flex: 1;
    min-width: 240px;
    max-width: 380px;
    gap: 0;
}
.juvytex-coupon-input {
    flex: 1;
    height: 42px !important;
    padding: 0 14px !important;
    border: 1px solid #d4d4d4 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 13px !important;
    background: #fff !important;
    color: #171717 !important;
}
.juvytex-coupon-input:focus { outline: none; border-color: #171717 !important; }
.juvytex-coupon-btn {
    height: 42px !important;
    padding: 0 18px !important;
    background: #171717 !important;
    color: #fff !important;
    border: 1px solid #171717 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}
.juvytex-coupon-btn:hover { background: #404040 !important; border-color: #404040 !important; }

.juvytex-cart-update {
    margin-left: auto !important;
    height: 42px !important;
    padding: 0 22px !important;
    background: transparent !important;
    color: #171717 !important;
    border: 1px solid #d4d4d4 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-cart-update:hover { background: #171717 !important; color: #fff !important; border-color: #171717 !important; }

/* Mobile: stack cart item */
@media (max-width: 767px) {
    .juvytex-cart-item {
        grid-template-columns: 80px 1fr 32px;
        grid-template-areas:
            "thumb info remove"
            "thumb info remove"
            "qty   sub  sub";
        row-gap: 12px;
    }
    .juvytex-cart-item-thumb { grid-area: thumb; }
    .juvytex-cart-item-info { grid-area: info; }
    .juvytex-cart-item-qty { grid-area: qty; }
    .juvytex-cart-item-subtotal { grid-area: sub; }
    .juvytex-cart-item-remove { grid-area: remove; align-items: flex-start; }

    .juvytex-cart-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .juvytex-coupon-form { max-width: none; }
    .juvytex-cart-update { margin-left: 0 !important; }
}

/* ===== Totals card ===== */
.juvytex-cart-totals { width: 100%; }
.juvytex-totals-card {
    overflow: hidden;
}
.juvytex-totals-header {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e5e5;
    background: #fafafa;
}
.juvytex-totals-body {
    padding: 16px 20px;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-totals-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    font-size: 14px;
}
.juvytex-totals-label {
    color: #525252;
}
.juvytex-totals-value {
    color: #171717;
    font-weight: 600;
}
.juvytex-totals-value .amount,
.juvytex-totals-value bdi { color: inherit; }
.juvytex-totals-grand {
    margin-top: 8px;
    padding-top: 14px !important;
    border-top: 1px solid #e5e5e5;
    font-size: 16px !important;
}
.juvytex-totals-grand .juvytex-totals-label {
    font-weight: 600;
    color: #171717;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.04em;
}
.juvytex-totals-grand .juvytex-totals-value {
    font-size: 24px;
    font-weight: 700;
}

/* Shipping inside totals */
.juvytex-totals-shipping {
    margin: 8px 0;
}
.juvytex-totals-shipping #shipping_method {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
/* NB: padding/margin are set by the shared radio-card rule above — don't reset
   them here, this selector is more specific and would win and flatten the card. */
.juvytex-totals-shipping #shipping_method li {
    list-style: none !important;
    margin: 0 0 6px !important;
    font-size: 13px;
}
.juvytex-totals-shipping #shipping_method li::before {
    content: none !important;
    display: none !important;
}

/* Coupon pill */
.juvytex-coupon-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f5f5f5;
    color: #171717;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.juvytex-coupon-remove {
    color: #737373 !important;
    text-decoration: none !important;
    line-height: 1;
    font-size: 16px;
    margin-left: 2px;
}
.juvytex-coupon-remove:hover { color: #171717 !important; }

/* Totals footer (checkout button) */
.juvytex-totals-footer {
    padding: 16px 20px;
    border-top: 1px solid #e5e5e5;
}
.juvytex-totals-footer a.checkout-button,
.juvytex-totals-footer .checkout-button {
    display: block !important;
    width: 100% !important;
    padding: 14px 20px !important;
    background: #171717 !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: all 0.15s ease;
}
.juvytex-totals-footer a.checkout-button:hover { background: #404040 !important; }

.juvytex-totals-trust {
    padding: 12px 20px 16px;
    background: #fafafa;
    border-top: 1px solid #e5e5e5;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Shipping calculator */
.juvytex-shipping-calc {
    margin: 8px 0;
}
.juvytex-shipping-calc-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fafafa;
    border: 1px solid #e5e5e5;
    cursor: pointer;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #404040;
    user-select: none;
    list-style: none;
}
.juvytex-shipping-calc-toggle::-webkit-details-marker { display: none; }
.juvytex-shipping-calc[open] .juvytex-shipping-calc-chevron {
    transform: rotate(180deg);
}
.juvytex-shipping-calc-chevron {
    transition: transform 0.2s ease;
}
.juvytex-shipping-calc-form {
    margin-top: 8px;
    padding: 14px;
    border: 1px solid #e5e5e5;
    background: #fff;
}
.juvytex-shipping-calc-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.juvytex-form-row label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #525252;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.juvytex-form-row select,
.juvytex-form-row input[type="text"] {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #d4d4d4;
    background: #fff;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #171717;
    border-radius: 0;
}
.juvytex-form-row select:focus,
.juvytex-form-row input:focus { outline: none; border-color: #171717; }
.juvytex-shipping-calc-submit {
    width: 100% !important;
    height: 40px !important;
    background: #171717 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-shipping-calc-submit:hover { background: #404040 !important; }

/* Empty cart card */
.juvytex-cart-empty-card { overflow: hidden; }

/* ===== Live search drawer ===== */
.juvytex-search-drawer {
    position: fixed;
    inset: 0;
    z-index: 110;
    pointer-events: none;
}
.juvytex-search-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.2s ease;
}
.juvytex-search-panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    transform: translateY(-100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}
body.juvytex-search-open .juvytex-search-drawer { pointer-events: auto; }
body.juvytex-search-open .juvytex-search-backdrop { opacity: 1; }
body.juvytex-search-open .juvytex-search-panel { transform: translateY(0); }
body.juvytex-search-open { overflow: hidden; }

.juvytex-search-header {
    padding: 18px 20px;
    border-bottom: 1px solid #e5e5e5;
    flex-shrink: 0;
}
.juvytex-search-input-wrap {
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 720px;
    margin: 0 auto;
}
.juvytex-search-input-icon {
    width: 24px;
    height: 24px;
    color: #525252;
    flex-shrink: 0;
}
.juvytex-search-input {
    flex: 1;
    border: 0 !important;
    background: transparent !important;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 22px;
    color: #171717;
    padding: 8px 0 !important;
    outline: none !important;
    border-radius: 0 !important;
}
.juvytex-search-input::placeholder { color: #a3a3a3; }
.juvytex-search-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #e5e5e5;
    color: #525252;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-search-close:hover { background: #171717; border-color: #171717; color: #fff; }

.juvytex-search-results {
    padding: 16px 20px;
    overflow-y: auto;
    flex: 1;
    transition: opacity 0.15s ease;
}
.juvytex-search-results.is-loading { opacity: 0.5; }
.juvytex-search-empty {
    text-align: center;
    color: #737373;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    padding: 24px 0;
}
.juvytex-search-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 720px;
    margin: 0 auto !important;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
}
@media (min-width: 640px) {
    .juvytex-search-list { grid-template-columns: 1fr 1fr; gap: 6px; }
}
.juvytex-search-item {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-search-item::before { display: none !important; content: none !important; }
.juvytex-search-item a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    text-decoration: none;
    transition: background 0.15s ease;
    border: 1px solid transparent;
}
.juvytex-search-item a:hover {
    background: #fafafa;
    border-color: #e5e5e5;
}
.juvytex-search-thumb {
    width: 50px;
    height: 50px;
    background: #fafafa;
    overflow: hidden;
    flex-shrink: 0;
}
.juvytex-search-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
}
.juvytex-search-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.juvytex-search-name {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #171717;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.juvytex-search-price {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #171717;
}
.juvytex-search-price .amount { color: #171717; }
.juvytex-search-all {
    display: block;
    text-align: center;
    margin: 16px auto 0;
    padding: 10px 18px;
    background: #171717;
    color: #fff !important;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    max-width: 320px;
    transition: background 0.15s ease;
}
.juvytex-search-all:hover { background: #404040; color: #fff !important; }

/* ===== Mini-cart drawer ===== */
.juvytex-cart-drawer {
    position: fixed;
    inset: 0;
    z-index: 100;
    pointer-events: none;
}
.juvytex-cart-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}
.juvytex-cart-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 420px;
    background: #ffffff;
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    pointer-events: none;
}
body.juvytex-cart-open .juvytex-cart-drawer {
    pointer-events: auto;
}
body.juvytex-cart-open .juvytex-cart-backdrop {
    opacity: 1;
    pointer-events: auto;
}
body.juvytex-cart-open .juvytex-cart-panel {
    transform: translateX(0);
    pointer-events: auto;
}
body.juvytex-cart-open {
    overflow: hidden;
}

.juvytex-cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid #e5e5e5;
    flex-shrink: 0;
}
.juvytex-cart-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #e5e5e5;
    color: #525252;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-cart-close:hover {
    background: #171717;
    border-color: #171717;
    color: #fff;
}

.juvytex-cart-body {
    flex: 1;
    overflow-y: auto;
    scrollbar-gutter: stable; /* hoia eemalda-× kerimisriba alt vabana (klient #107) */
    padding: 20px 24px;
    font-family: 'Open Sans', Arial, sans-serif;
}

/* Mini-cart items list */
.juvytex-mini-cart-items {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-mini-cart-item {
    list-style: none !important;
    position: relative;
    display: grid !important;
    grid-template-columns: 64px 1fr;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #f0f0f0;
    margin: 0 !important;
}
.juvytex-mini-cart-item::before {
    display: none !important;
    content: none !important;
}
.juvytex-mini-cart-item:last-child {
    border-bottom: 0;
}
.juvytex-mini-cart-thumb {
    width: 64px;
    height: 64px;
    background: #fafafa;
    overflow: hidden;
    display: block;
}
.juvytex-mini-cart-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    float: none !important;
}
.juvytex-mini-cart-info {
    min-width: 0;
    padding-right: 34px;
}
.juvytex-mini-cart-title {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #171717;
    text-decoration: none;
    line-height: 1.4;
    margin-bottom: 6px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
a.juvytex-mini-cart-title:hover {
    color: #525252;
}
.juvytex-mini-cart-qty {
    font-size: 13px;
    color: #525252;
}
.juvytex-mini-cart-qty .quantity {
    font-weight: 600;
    color: #171717;
}
.juvytex-mini-cart-info .variation,
.juvytex-mini-cart-info .wc-item-meta {
    font-size: 11px;
    color: #737373;
    margin: 0 0 4px 0;
    list-style: none;
}
.juvytex-mini-cart-info .variation p,
.juvytex-mini-cart-info .wc-item-meta li {
    margin: 0;
    padding: 0;
}
.juvytex-mini-cart-remove {
    position: absolute !important;
    top: 14px !important;
    right: 6px; /* scrollbar ei kataks eemalda-nuppu kui korvis on palju tooteid (klient #107) */
    width: 22px;
    height: 22px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    border: 1px solid #e5e5e5 !important;
    color: #737373 !important;
    border-radius: 0 !important;
    font-size: 0 !important;
    transition: all 0.15s ease;
    text-decoration: none !important;
}
.juvytex-mini-cart-remove:hover {
    background: #171717 !important;
    border-color: #171717 !important;
    color: #fff !important;
}

/* Footer: subtotal + buttons */
.juvytex-mini-cart-footer {
    border-top: 1px solid #e5e5e5;
    padding: 18px 24px;
    background: #fafafa;
    flex-shrink: 0;
}
.juvytex-mini-cart-subtotal {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 14px;
}
.juvytex-mini-cart-subtotal-label {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #525252;
}
.juvytex-mini-cart-subtotal-value {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #171717;
}
.juvytex-mini-cart-subtotal-value .amount {
    color: #171717;
}
.juvytex-mini-cart-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.juvytex-mini-cart-actions .button,
.juvytex-mini-cart-actions a.button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    padding: 12px 20px !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
    margin: 0 !important;
}
/* "View cart" button — secondary style (transparent bg, dark text) */
.juvytex-mini-cart-actions a.button.wc-forward:not(.checkout) {
    background: #ffffff !important;
    color: #171717 !important;
    border: 1px solid #d4d4d4 !important;
}
.juvytex-mini-cart-actions a.button.wc-forward:not(.checkout):hover {
    background: #fafafa !important;
    color: #171717 !important;
    border-color: #171717 !important;
}
/* "Checkout" button — primary style (dark bg, white text) */
.juvytex-mini-cart-actions a.button.checkout,
.juvytex-mini-cart-actions a.checkout {
    background: #171717 !important;
    color: #ffffff !important;
    border: 1px solid #171717 !important;
}
.juvytex-mini-cart-actions a.button.checkout:hover,
.juvytex-mini-cart-actions a.checkout:hover {
    background: #404040 !important;
    color: #ffffff !important;
    border-color: #404040 !important;
}

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

/* ===== Juvytex My Account ===== */

/* Scope: kill all default UL bullet styles inside any juvytex- container */
.juvytex-account ul,
.juvytex-account ol,
.juvytex-myaccount-nav-list {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-account ul li,
.juvytex-account ol li,
.juvytex-myaccount-nav-item {
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
.juvytex-account ul li::before,
.juvytex-account ol li::before,
.juvytex-myaccount-nav-item::before,
.juvytex-myaccount-nav-item::marker {
    content: none !important;
    display: none !important;
}

/* Navigation list — flex column for the sidebar */
.juvytex-myaccount-nav-list {
    display: flex !important;
    flex-direction: column !important;
}
.juvytex-myaccount-nav-list::before,
.juvytex-myaccount-nav-list::after {
    display: none;
}
.juvytex-myaccount-nav-item {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-myaccount-nav-item::before {
    display: none !important;
    content: none !important;
}
/* Force a single inline row for icon + label */
a.juvytex-myaccount-nav-link {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    padding: 16px 22px !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #404040 !important;
    text-decoration: none !important;
    border-bottom: 1px solid #f0f0f0 !important;
    transition: all 0.15s ease !important;
    line-height: 1 !important;
}
.juvytex-myaccount-nav-item:last-child a.juvytex-myaccount-nav-link {
    border-bottom: 0 !important;
}
a.juvytex-myaccount-nav-link:hover {
    background: #fafafa !important;
    color: #171717 !important;
}
a.juvytex-myaccount-nav-link.is-active,
a.juvytex-myaccount-nav-link.is-active:hover {
    background: #171717 !important;
    color: #ffffff !important;
}
a.juvytex-myaccount-nav-link.is-active .juvytex-myaccount-nav-icon,
a.juvytex-myaccount-nav-link.is-active .juvytex-myaccount-nav-icon svg,
a.juvytex-myaccount-nav-link.is-active .juvytex-myaccount-nav-label {
    color: #ffffff !important;
    stroke: #ffffff !important;
}
a.juvytex-myaccount-nav-link .juvytex-myaccount-nav-icon {
    display: inline-flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
}
a.juvytex-myaccount-nav-link .juvytex-myaccount-nav-icon svg {
    width: 20px !important;
    height: 20px !important;
    stroke: currentColor !important;
    color: inherit !important;
    display: block !important;
}
a.juvytex-myaccount-nav-link .juvytex-myaccount-nav-label {
    display: inline-block !important;
    white-space: nowrap !important;
    color: inherit !important;
    text-decoration: none !important;
}

/* Wrapper box */
.juvytex-myaccount-nav {
    background: #ffffff;
    border: 1px solid #e5e5e5;
    overflow: hidden;
}

/* Mobile: horizontal scrolling tabs */
@media (max-width: 767px) {
    .juvytex-myaccount-nav-list {
        flex-direction: row;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .juvytex-myaccount-nav-list::-webkit-scrollbar { display: none; }
    .juvytex-myaccount-nav-item {
        flex-shrink: 0;
    }
    .juvytex-myaccount-nav-link {
        border-bottom: 0;
        border-right: 1px solid #f5f5f5;
    }
    .juvytex-myaccount-nav-item:last-child .juvytex-myaccount-nav-link {
        border-right: 0;
    }
}

/* WooCommerce notices stacked on My Account — make compact */
.woocommerce-account .woocommerce-notices-wrapper {
    margin-bottom: 16px;
}
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
    padding: 12px 16px !important;
    margin-bottom: 8px !important;
    font-size: 13px !important;
}



/* Status badges (color-coded) */
.juvytex-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.2;
    white-space: nowrap;
}
.juvytex-status-pending     { background: #fef3c7; color: #92400e; }
.juvytex-status-processing  { background: #dbeafe; color: #1e40af; }
.juvytex-status-on-hold     { background: #ffedd5; color: #9a3412; }
.juvytex-status-completed   { background: #d1fae5; color: #065f46; }
.juvytex-status-cancelled   { background: #fee2e2; color: #991b1b; }
.juvytex-status-refunded    { background: #e5e7eb; color: #374151; }
.juvytex-status-failed      { background: #fee2e2; color: #991b1b; }

/* Sidebar nav: highlight active item via the is-active class added in template */
.juvytex-myaccount-nav-link.is-active {
    background: #171717;
    color: #fff;
}
.juvytex-myaccount-nav-link.is-active:hover {
    background: #262626;
    color: #fff;
}

/* Mobile: horizontal scroll nav, narrower padding */
@media (max-width: 767px) {
    .juvytex-myaccount-nav ul {
        scrollbar-width: none;
    }
    .juvytex-myaccount-nav ul::-webkit-scrollbar { display: none; }
    .juvytex-myaccount-nav-link {
        padding: 12px 16px !important;
    }
}

/* Forms inside the my-account templates — match site design (sharp, gray border, focus dark) */
.juvytex-form .form-row,
.juvytex-form p.form-row,
.juvytex-form .form-row-first,
.juvytex-form .form-row-last,
.juvytex-form .form-row-wide {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    float: none !important;
    clear: none !important;
    display: block !important;
}
.juvytex-form .form-row::after,
.juvytex-form .form-row::before {
    content: none !important;
    display: none !important;
}
.juvytex-form label {
    display: block;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #404040;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.juvytex-form .required {
    color: #b91c1c;
    text-decoration: none;
}
.juvytex-form input[type="text"],
.juvytex-form input[type="email"],
.juvytex-form input[type="tel"],
.juvytex-form input[type="password"],
.juvytex-form input[type="url"],
.juvytex-form textarea,
.juvytex-form select,
.juvytex-form .select2-selection,
.juvytex-form .input-text,
.juvytex-contact-form .input-text {
    width: 100%;
    border: 1px solid #d4d4d4;
    border-radius: 0;
    padding: 10px 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #171717;
    background: #fff;
    line-height: 1.4;
    transition: border-color 0.15s ease;
}
.juvytex-form input:focus,
.juvytex-form textarea:focus,
.juvytex-form select:focus,
.juvytex-form .input-text:focus,
.juvytex-contact-form .input-text:focus {
    outline: none;
    border-color: #171717;
}

/* Meist-lehe statistika: 2×2 mobiilis/tahvlis, 4 ühele reale lauaarvutis (klient #111) */
.juvytex-stats-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 1024px) {
    .juvytex-stats-grid { grid-template-columns: repeat(4, 1fr); }
}

/* Kontaktileht: info + vorm kõrvuti, kaart täislaiuses all (#78) */
.juvytex-kontakt-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    margin-bottom: 48px;
}
@media (min-width: 1024px) {
    .juvytex-kontakt-columns { grid-template-columns: 5fr 7fr; align-items: start; }
}
.juvytex-kontakt-info {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

/* Contact form labels (page content is outside .juvytex-form scope) */
.juvytex-contact-form .form-row label {
    display: block;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #171717;
    margin-bottom: 6px;
}
.juvytex-form .select2-selection {
    height: auto !important;
    padding: 6px 14px !important;
}
.juvytex-form .select2-selection__rendered {
    padding: 0 !important;
    line-height: 1.6 !important;
}
.juvytex-form .select2-selection__arrow {
    height: 100% !important;
    top: 0 !important;
}

/* Quick-link card hover lift */
.juvytex-quick-card {
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.juvytex-quick-card:hover {
    transform: translateY(-2px);
}

/* Order card */
.juvytex-order-card {
    transition: all 0.2s ease;
}

/* Meta cards on view-order page */
.juvytex-meta-card {
    transition: border-color 0.15s ease;
}
.juvytex-meta-card:hover {
    border-color: #a3a3a3;
}

/* Account layout responsiveness */
@media (max-width: 767px) {
    .juvytex-account {
        gap: 1rem;
    }
}

/* ===== WooCommerce Buttons + Forms (override defaults) ===== */
.woocommerce button.button,
.woocommerce a.button,
.woocommerce-page button.button,
.woocommerce-page a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button.single_add_to_cart_button {
    background: #171717 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 12px 28px !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
button.single_add_to_cart_button:hover {
    background: #404040 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt {
    background: #171717 !important;
    color: white !important;
}

/* Quantity input — sharp corners, gray border */
.woocommerce .quantity input.qty,
.quantity input.qty {
    width: 56px;
    height: 44px;
    text-align: center;
    border: 1px solid #d4d4d4;
    border-radius: 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #171717;
    background: white;
    -moz-appearance: textfield;
}
.woocommerce .quantity input.qty:focus,
.quantity input.qty:focus {
    outline: none;
    border-color: #171717;
}
.woocommerce .quantity {
    margin-right: 12px;
}
/* Simple-product form: qty + button in one row. EXCLUDE variations_form,
   muidu mõõdu-tabel ja nupp lähevad ühte ritta ja kattuvad (klient #91). */
.woocommerce form.cart:not(.variations_form) {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
}

/* ===== Variable product add-to-cart (klient #91) ===== */
.woocommerce form.cart.variations_form { display: block; margin: 0; }
.variations_form .variations {
    width: 100%;
    border: 0;
    margin: 0 0 18px;
    border-collapse: collapse;
}
.variations_form .variations tr { display: block; }
.variations_form .variations th.label {
    display: block;
    text-align: left;
    padding: 0 0 6px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #171717;
}
.variations_form .variations td.value { display: block; padding: 0; position: relative; }
.variations_form .variations select {
    width: 100%;
    max-width: 100%;
    appearance: none;
    -webkit-appearance: none;
    background: #fff;
    border: 1px solid #d4d4d4;
    border-radius: 0;
    padding: 12px 38px 12px 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #171717;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
.variations_form .variations select:focus { outline: none; border-color: #171717; }
.variations_form .reset_variations {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
    color: #737373;
    font-family: 'Open Sans', Arial, sans-serif;
}
.variations_form .single_variation { margin-bottom: 14px; }
.variations_form .single_variation .price {
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-weight: 700;
    color: #171717 !important;
    font-size: 18px;
}
.variations_form .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    flex: 1 1 auto;
    min-width: 180px;
}
/* Disabled (no variation chosen) — dim the button */
.variations_form .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Forms (login, checkout, etc.) */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    border: 1px solid #d4d4d4;
    border-radius: 0;
    padding: 10px 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    outline: none;
    border-color: #171717;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-top-color: #171717 !important;
    border-radius: 0 !important;
    background: #fafafa !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 14px !important;
    color: #404040 !important;
}
.woocommerce-message::before,
.woocommerce-info::before {
    color: #171717 !important;
}

/* Cart / checkout tables */
.woocommerce table.shop_table {
    border-radius: 0 !important;
    border: 1px solid #e5e5e5 !important;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    font-family: 'Open Sans', Arial, sans-serif !important;
}

/* Single product price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: #171717 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-weight: 700;
}

/* Esimese kategooriabanneri kohale väike valge vahe, et see ei sulanduks
   hero-banneriga (klient #85). Ainult puuvillasatiinist — sektsioon on bg-white,
   nii et padding-top annab puhta valge vahe (mitte halli riba nagu #81–84). */
#puuvillasatiinist { padding-top: 16px; }
@media (min-width: 768px) { #puuvillasatiinist { padding-top: 24px; } }

/* Front page category sections — 4-product responsive grid */
.juvytex-front-products-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 12px;
}
@media (min-width: 768px) {
    .juvytex-front-products-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 16px; }
}
.juvytex-front-products-grid > .juvytex-card,
.juvytex-front-products-grid > li.product { width: auto !important; max-width: none !important; float: none !important; margin: 0 !important; }

/* ===== Shop archive — sidebar layout ===== */
.juvytex-shop-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 1024px) {
    .juvytex-shop-layout {
        grid-template-columns: 240px 1fr;
        gap: 36px;
        align-items: start;
    }
}

/* Sidebar */
.juvytex-shop-sidebar {
    display: none;
}
@media (min-width: 1024px) {
    .juvytex-shop-sidebar {
        display: block;
        position: sticky;
        top: 100px;
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }
}

/* Mobile: render sidebar as drawer */
@media (max-width: 1023px) {
    body.juvytex-filters-open .juvytex-shop-sidebar {
        display: block;
        position: fixed;
        inset: 0 auto 0 0;
        width: 320px;
        max-width: 85vw;
        max-height: 100vh;
        overflow-y: auto;
        background: #fff;
        z-index: 101;
        box-shadow: 8px 0 24px rgba(0, 0, 0, 0.12);
        padding-bottom: 80px;
    }
    body.juvytex-filters-open { overflow: hidden; }
}
.juvytex-filter-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 100;
}
body.juvytex-filters-open .juvytex-filter-backdrop {
    opacity: 1;
    pointer-events: auto;
}

.juvytex-filter-drawer-wrap {
    background: #fff;
}
.juvytex-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 14px;
    border-bottom: 1px solid #e5e5e5;
    margin-bottom: 16px;
}
@media (max-width: 1023px) {
    .juvytex-filter-header {
        padding: 16px 20px 14px;
        border-bottom: 1px solid #e5e5e5;
        margin: 0;
        position: sticky;
        top: 0;
        background: #fff;
        z-index: 2;
    }
    .juvytex-filter-form { padding: 16px 20px; }
}
.juvytex-filter-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #e5e5e5;
    color: #525252;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-filter-close:hover { background: #171717; border-color: #171717; color: #fff; }

/* Filter groups */
.juvytex-filter-group {
    padding: 14px 0;
    border-bottom: 1px solid #f0f0f0;
}
.juvytex-filter-group:last-of-type { border-bottom: 0; }
.juvytex-filter-group-title {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #525252;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 12px;
}

/* Category list */
.juvytex-filter-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-filter-list li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.juvytex-filter-list li::before { display: none !important; content: none !important; }
.juvytex-filter-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #404040;
    text-decoration: none;
    transition: color 0.15s ease;
}
.juvytex-filter-list a:hover { color: #171717; }
.juvytex-filter-list a.is-active { color: #171717; font-weight: 700; }
.juvytex-filter-count { color: #a3a3a3; font-size: 11px; font-weight: 400; }

/* Price inputs */
.juvytex-price-filter { font-family: 'Open Sans', Arial, sans-serif; }
.juvytex-price-inputs {
    display: flex;
    align-items: center;
    gap: 8px;
}
.juvytex-price-input {
    flex: 1;
    width: 100%;
    height: 36px;
    padding: 0 8px;
    border: 1px solid #d4d4d4;
    background: #fff;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #171717;
    border-radius: 0;
    -moz-appearance: textfield;
}
.juvytex-price-input::-webkit-outer-spin-button,
.juvytex-price-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.juvytex-price-input:focus { outline: none; border-color: #171717; }
.juvytex-price-sep { color: #a3a3a3; font-size: 14px; }

/* Checkbox list (categories) */
.juvytex-filter-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.juvytex-filter-checkbox {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    padding: 5px 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #404040;
}
.juvytex-filter-checkbox input[type="checkbox"] {
    accent-color: #171717;
    cursor: pointer;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
.juvytex-filter-checkbox:hover { color: #171717; }
.juvytex-filter-checkbox-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex: 1;
    gap: 8px;
}
.juvytex-filter-checkbox input:checked + .juvytex-filter-checkbox-label {
    color: #171717;
    font-weight: 600;
}

/* Hierarchical category tree */
.juvytex-cat-tree-wrap { font-family: 'Open Sans', Arial, sans-serif; }
.juvytex-cat-tree { list-style: none; margin: 0; padding: 0; }
.juvytex-cat-tree .juvytex-cat-tree { /* nested */
    margin-left: 0;
    padding-left: 22px;
    border-left: 1px solid #f0f0f0;
    margin-top: 2px;
}
.juvytex-cat-node { margin: 0; padding: 0; }
.juvytex-cat-row {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 0;
}
.juvytex-cat-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: #525252;
    flex-shrink: 0;
    border-radius: 0;
}
.juvytex-cat-toggle:hover { color: #171717; }
.juvytex-cat-chevron {
    transition: transform .15s ease;
    transform: rotate(0deg);
}
.juvytex-cat-toggle[aria-expanded="true"] .juvytex-cat-chevron {
    transform: rotate(90deg);
}
.juvytex-cat-toggle-spacer {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.juvytex-cat-label {
    flex: 1;
    margin: 0;
    padding: 2px 0;
}
.juvytex-cat-children[hidden] { display: none !important; }

/* Radio buttons */
.juvytex-filter-radios {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.juvytex-filter-radio {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 4px 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #404040;
}
.juvytex-filter-radio input {
    accent-color: #171717;
    cursor: pointer;
    width: 16px;
    height: 16px;
}
.juvytex-filter-radio:hover { color: #171717; }

/* Filter actions */
.juvytex-filter-actions {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.juvytex-filter-apply {
    width: 100%;
    padding: 11px 16px;
    background: #171717;
    color: #fff;
    border: 0;
    border-radius: 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s ease;
}
.juvytex-filter-apply:hover { background: #404040; }
.juvytex-filter-reset {
    text-align: center;
    font-size: 12px;
    color: #737373;
    font-family: 'Open Sans', Arial, sans-serif;
    text-decoration: underline;
    transition: color 0.15s ease;
}
.juvytex-filter-reset:hover { color: #171717; }

/* Active filter chips */
.juvytex-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e5e5;
}
.juvytex-active-filters-label {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #525252;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.juvytex-active-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    background: #171717;
    color: #fff;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease;
}
.juvytex-active-chip:hover { background: #404040; color: #fff; }
.juvytex-active-clear {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    color: #737373;
    text-decoration: underline;
    transition: color 0.15s ease;
}
.juvytex-active-clear:hover { color: #171717; }

/* Loading state */
.juvytex-shop-main { position: relative; }
.juvytex-shop-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.65);
    z-index: 5;
    pointer-events: none;
}
.juvytex-shop-loading #juvytex-shop-results {
    opacity: 0.5;
    transition: opacity 0.15s ease;
}

/* ===== Shop archive — product grid + card v2 ===== */

/* Subcategory chips */
.juvytex-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 14px;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #404040;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: all 0.15s ease;
}
.juvytex-chip:hover { border-color: #171717; color: #171717; }
.juvytex-chip-active,
.juvytex-chip-active:hover {
    background: #171717;
    border-color: #171717;
    color: #fff;
}
.juvytex-chip-count { font-weight: 400; opacity: 0.7; font-size: 10px; }

/* Shop toolbar */
.juvytex-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e5e5;
}
.juvytex-result-count {
    margin: 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    color: #525252;
    display: block !important;
}
.juvytex-shop-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
/* WC layout-css annab .woocommerce-ordering'ule margin-bottom: 1em —
   toolbari sees nullime, et nupp/select/result-count oleksid keskjoonel (#73) */
.juvytex-shop-toolbar p,
.juvytex-shop-toolbar form,
.woocommerce .juvytex-shop-toolbar .woocommerce-ordering,
.juvytex-shop-toolbar .woocommerce-ordering {
    margin: 0 !important;
}
.juvytex-shop-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #404040;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-shop-filter-btn:hover { border-color: #171717; color: #171717; }
@media (min-width: 1024px) {
    /* On desktop, the subcat chips are the filter UI — hide button */
    .juvytex-shop-filter-btn { display: none; }
}

/* Sort dropdown */
.juvytex-orderby {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.juvytex-orderby-label {
    font-size: 12px;
    color: #525252;
    font-family: 'Open Sans', Arial, sans-serif;
}
.juvytex-orderby-select,
.woocommerce-ordering select.orderby {
    appearance: none;
    -webkit-appearance: none;
    background-color: #fff;
    border: 1px solid #d4d4d4;
    padding: 8px 32px 8px 12px;
    font-size: 13px;
    font-family: 'Open Sans', Arial, sans-serif;
    color: #404040;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px;
    border-radius: 0;
}
.juvytex-orderby-select:focus { outline: none; border-color: #171717; }

/* ===== Grid — kill WC default float, force CSS grid ===== */
.woocommerce ul.products,
ul.products,
ul.products.juvytex-products-grid,
.woocommerce ul.products.juvytex-products-grid {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 12px !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { content: none !important; display: none !important; }

/* Override WC default .product { float: left; width: 22% } */
.woocommerce ul.products li.product,
ul.products li.product,
ul.products.juvytex-products-grid > li,
ul.products.juvytex-products-grid > li.product {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
    display: flex !important;
    flex-direction: column;
}
ul.products li.product::before,
ul.products.juvytex-products-grid > li::before,
ul.products.juvytex-products-grid > li::marker {
    display: none !important;
    content: none !important;
}

@media (min-width: 640px) {
    .woocommerce ul.products,
    ul.products,
    ul.products.juvytex-products-grid,
    .woocommerce ul.products.juvytex-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 32px 16px !important; }
}
@media (min-width: 768px) {
    .woocommerce ul.products,
    ul.products,
    ul.products.juvytex-products-grid,
    .woocommerce ul.products.juvytex-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 36px 20px !important; }
}
@media (min-width: 1024px) {
    .woocommerce ul.products,
    ul.products,
    ul.products.juvytex-products-grid,
    .woocommerce ul.products.juvytex-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 44px 24px !important; }
}
/* Above the shop layout (no sidebar) — go to 4 columns at xl */
@media (min-width: 1280px) {
    .juvytex-products-grid:not(.juvytex-shop-main .juvytex-products-grid),
    .juvytex-shop-main ul.products.juvytex-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* ===== Card ===== */
.juvytex-card {
    background: #fff;
    display: flex !important;
    flex-direction: column;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}
.juvytex-card.juvytex-card-oos { opacity: 0.7; }
.juvytex-card.juvytex-card-oos:hover { opacity: 1; }

.juvytex-card-thumb-link {
    display: block;
    text-decoration: none;
}
.juvytex-card-thumb {
    position: relative;
    aspect-ratio: 1 / 1; /* ühtne ruut kõigil toodetel (klient #93) */
    overflow: hidden;
    background: #fff;     /* valge taust, mitte hall (#93) */
    padding: 14px;
    box-sizing: border-box;
    border-bottom: 1px solid #e5e5e5; /* eristav joon pildi ja info vahel */
}
.juvytex-card-image {
    width: 100%;
    height: 100%;
    /* Per client feedback #70: show the whole product, no cropping */
    object-fit: contain;
    transition: opacity 0.3s ease, transform 0.5s ease;
    display: block;
}
.juvytex-card-image-primary { opacity: 1; }
.juvytex-card-image-hover {
    position: absolute;
    inset: 14px;
    width: auto;
    height: auto;
    max-width: calc(100% - 28px);
    max-height: calc(100% - 28px);
    opacity: 0;
}
/* Only swap to hover image if one exists (card has .juvytex-card-has-hover) */
.juvytex-card.juvytex-card-has-hover:hover .juvytex-card-image-primary { opacity: 0; }
.juvytex-card.juvytex-card-has-hover:hover .juvytex-card-image-hover { opacity: 1; }
.juvytex-card:hover .juvytex-card-image { transform: scale(1.04); }

.juvytex-card-image-placeholder {
    object-fit: contain !important;
    padding: 25% !important;
    opacity: 0.4;
}

/* Badge stack (top-left of thumb) */
.juvytex-card-badges {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 4px;
    pointer-events: none;
}
.juvytex-new-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    background: #fff;
    color: #171717;
    border: 1px solid #171717;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
    width: fit-content;
}
/* Price range — keep min/max on one line.
   Sama font nagu lihttoote hinnal (.juvytex-loop-price): 15px / 700 (klient #88) */
.juvytex-card-price-range {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 15px;
    color: #171717;
    font-weight: 700;
}
.juvytex-card-price-range .juvytex-price-dash {
    color: #737373;
    font-weight: 400;
}
.juvytex-card-price-range .woocommerce-Price-amount { font-weight: 700; }

/* Sale badge — Juvytex dark pill. NB: WooCommerce defaultil on `.woocommerce
   span.onsale` (spetsiifilisus 0,2,1, roheline ring), mis võidab tavalised
   selektorid → kasutame !important + kõrgemat spetsiifilisust, et see kehtiks
   nii poes, üksiktootel kui kõikjal (klient #92). */
.juvytex-sale-badge,
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce div.product .onsale,
.juvytex-card .onsale {
    position: static !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    margin: 0 !important;
    z-index: 2;
    display: inline-flex !important;
    align-items: center;
    padding: 4px 9px !important;
    background: #171717 !important;
    color: #fff !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    min-height: 0 !important;
    min-width: 0 !important;
    border-radius: 0 !important;
    line-height: 1 !important;
}
/* Üksiktoote lehel: positsioneeri silt pildi ümber vasakusse ülanurka */
.woocommerce div.product .juvytex-sale-badge,
.woocommerce div.product span.onsale {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
}
.juvytex-card-bundle-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    background: rgba(255, 255, 255, 0.95);
    color: #171717;
    border: 1px solid #e5e5e5;
    padding: 4px 9px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
}
.juvytex-card-oos-badge {
    position: absolute;
    inset: auto 0 50% 0;
    margin: 0 auto;
    z-index: 2;
    background: rgba(23, 23, 23, 0.9);
    color: #fff;
    padding: 6px 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
    width: fit-content;
    transform: translateY(50%);
    line-height: 1;
}

/* Card body — borderless card, text aligns with image edge */
.juvytex-card-body {
    padding: 12px 0 0;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}
.juvytex-card-title-link { text-decoration: none; }
.juvytex-card-title {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #171717;
    line-height: 1.4;
    margin: 0;
    min-height: 4.2em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    transition: color 0.15s ease;
}
.juvytex-card:hover .juvytex-card-title { color: #404040; }

/* Rating */
.juvytex-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
}
.juvytex-rating-stars { display: inline-flex; gap: 1px; }
.juvytex-star { width: 14px; height: 14px; color: #f59e0b; }
.juvytex-star-empty { color: #d4d4d4; }
.juvytex-rating-count { color: #737373; font-family: 'Open Sans', Arial, sans-serif; }

/* Card meta (price) */
.juvytex-card-meta { margin-top: auto; }
.juvytex-loop-price,
.juvytex-card .price {
    display: block;
    font-family: 'Open Sans', Arial, sans-serif;
    color: #171717 !important;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}
.juvytex-loop-price-prefix {
    font-size: 11px;
    font-weight: 400;
    color: #737373;
    margin-right: 3px;
    text-transform: lowercase;
}
.juvytex-card .price del {
    font-size: 12px;
    font-weight: 400;
    color: #a3a3a3;
    margin-right: 4px;
}
.juvytex-card .price ins {
    background: transparent;
    text-decoration: none;
    color: #171717;
}

/* Card actions */
.juvytex-card-actions { margin-top: 4px; }
.juvytex-loop-cta,
.juvytex-card .juvytex-loop-cta {
    display: block !important;
    width: 100% !important;
    padding: 10px 12px !important;
    background: #171717 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: all 0.15s ease;
    line-height: 1.2 !important;
    margin: 0 !important;
    cursor: pointer;
}
.juvytex-loop-cta:hover { background: #404040 !important; color: #fff !important; }
.juvytex-loop-cta.loading { opacity: 0.6; pointer-events: none; }

/* ===== Pagination ===== */
nav.juvytex-pagination,
.woocommerce-pagination.juvytex-pagination {
    margin-top: 48px !important;
    padding-top: 24px !important;
    border-top: 1px solid #e5e5e5 !important;
    text-align: center !important;
    background: transparent !important;
}
nav.juvytex-pagination ul.page-numbers,
.woocommerce-pagination.juvytex-pagination ul.page-numbers {
    list-style: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
nav.juvytex-pagination ul.page-numbers li,
.woocommerce-pagination.juvytex-pagination ul.page-numbers li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    display: inline-block !important;
}
nav.juvytex-pagination ul.page-numbers li::before,
nav.juvytex-pagination ul.page-numbers li::marker {
    display: none !important;
    content: none !important;
}
nav.juvytex-pagination a.page-numbers,
nav.juvytex-pagination span.page-numbers,
.woocommerce-pagination.juvytex-pagination a.page-numbers,
.woocommerce-pagination.juvytex-pagination span.page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 0 14px !important;
    border: 0 !important;
    background: transparent !important;
    color: #525252 !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all 0.18s ease !important;
    letter-spacing: 0.01em !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}
nav.juvytex-pagination a.page-numbers:hover,
nav.juvytex-pagination a.page-numbers:focus,
.woocommerce-pagination.juvytex-pagination a.page-numbers:hover,
.woocommerce-pagination.juvytex-pagination a.page-numbers:focus {
    color: #171717 !important;
    background: #fafafa !important;
}
nav.juvytex-pagination .page-numbers.current,
.woocommerce-pagination.juvytex-pagination .page-numbers.current {
    background: #171717 !important;
    color: #ffffff !important;
    cursor: default !important;
}
nav.juvytex-pagination .page-numbers.current:hover,
.woocommerce-pagination.juvytex-pagination .page-numbers.current:hover {
    background: #171717 !important;
    color: #ffffff !important;
}
nav.juvytex-pagination .page-numbers.prev,
nav.juvytex-pagination .page-numbers.next,
.woocommerce-pagination.juvytex-pagination .page-numbers.prev,
.woocommerce-pagination.juvytex-pagination .page-numbers.next {
    color: #171717 !important;
    gap: 6px !important;
}
nav.juvytex-pagination .page-numbers.prev:hover,
nav.juvytex-pagination .page-numbers.next:hover,
.woocommerce-pagination.juvytex-pagination .page-numbers.prev:hover,
.woocommerce-pagination.juvytex-pagination .page-numbers.next:hover {
    background: #171717 !important;
    color: #ffffff !important;
}
nav.juvytex-pagination .page-numbers.prev svg,
nav.juvytex-pagination .page-numbers.next svg {
    transition: transform 0.18s ease;
}
nav.juvytex-pagination .page-numbers.prev:hover svg { transform: translateX(-2px); }
nav.juvytex-pagination .page-numbers.next:hover svg { transform: translateX(2px); }
nav.juvytex-pagination .page-numbers.dots,
.woocommerce-pagination.juvytex-pagination .page-numbers.dots {
    background: transparent !important;
    color: #a3a3a3 !important;
    cursor: default !important;
    pointer-events: none !important;
}

/* ===== Mobile filter drawer ===== */
.juvytex-filter-drawer {
    position: fixed;
    inset: 0;
    z-index: 100;
    pointer-events: none;
}
.juvytex-filter-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.25s ease;
}
.juvytex-filter-panel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    max-width: 360px;
    background: #fff;
    box-shadow: 8px 0 24px rgba(0, 0, 0, 0.12);
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
}
body.juvytex-filters-open .juvytex-filter-drawer { pointer-events: auto; }
body.juvytex-filters-open .juvytex-filter-backdrop { opacity: 1; }
body.juvytex-filters-open .juvytex-filter-panel { transform: translateX(0); }
body.juvytex-filters-open { overflow: hidden; }

.juvytex-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid #e5e5e5;
    flex-shrink: 0;
}
.juvytex-filter-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #e5e5e5;
    color: #525252;
    cursor: pointer;
    transition: all 0.15s ease;
}
.juvytex-filter-close:hover { background: #171717; border-color: #171717; color: #fff; }

.juvytex-filter-body { flex: 1; overflow-y: auto; padding: 18px 24px; }
.juvytex-filter-group-title {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #525252;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e5e5;
}
.juvytex-filter-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.juvytex-filter-list li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.juvytex-filter-list li::before { display: none !important; content: none !important; }
.juvytex-filter-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #404040;
    text-decoration: none;
    transition: color 0.15s ease;
}
.juvytex-filter-list a:hover { color: #171717; }
.juvytex-filter-list a.is-active { color: #171717; font-weight: 600; }
.juvytex-filter-count { color: #a3a3a3; font-size: 12px; }

/* No products empty state */
.juvytex-no-products {
    grid-column: 1 / -1;
    list-style: none !important;
}

/* Category intro text.
   The section centres the H1, but centring long body copy leaves ragged lines
   with 2–3 stranded words (client) — so the intro itself is left-aligned. It
   keeps the full container width (same as the product grid below, per client),
   and splits into columns on wide screens so a 12px line stays readable rather
   than running ~250 characters edge to edge. */
.juvytex-cat-intro {
    text-align: left;
    margin-top: 28px;
    column-gap: 48px;
}
.juvytex-cat-intro p {
    margin: 0 0 12px;
    /* Avoid a lone word on the last line. */
    text-wrap: pretty;
}
.juvytex-cat-intro p:last-child { margin-bottom: 0; }
@media (min-width: 1024px) {
    .juvytex-cat-intro { column-count: 2; }
}
@media (min-width: 1536px) {
    .juvytex-cat-intro { column-count: 3; }
}

/* Archive banner — Hemtex-style: pure image(s), no text overlay */
.juvytex-archive-banner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
}
.juvytex-archive-banner { gap: 16px; }
.juvytex-archive-banner-2 { grid-template-columns: repeat(2, 1fr); }
.juvytex-archive-banner-3 { grid-template-columns: repeat(3, 1fr); }
.juvytex-archive-banner-4 { grid-template-columns: repeat(4, 1fr); }
.juvytex-archive-banner-item { overflow: hidden; }
.juvytex-archive-banner-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.juvytex-archive-banner-1 .juvytex-archive-banner-img {
    aspect-ratio: 1920 / 550;
    min-height: 240px;
    max-height: 550px;
}
/* Multiple images = vertical 4:5 portraits, evenly spaced, same height (client catalog spec) */
.juvytex-archive-banner-2 .juvytex-archive-banner-img,
.juvytex-archive-banner-3 .juvytex-archive-banner-img,
.juvytex-archive-banner-4 .juvytex-archive-banner-img {
    aspect-ratio: 4 / 5;
    max-height: 620px;
}
@media (max-width: 1023px) {
    .juvytex-archive-banner-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
    .juvytex-archive-banner-2,
    .juvytex-archive-banner-3,
    .juvytex-archive-banner-4 { grid-template-columns: repeat(2, 1fr); }
}

/* ===== WooCommerce Shop Page ===== */

/* Sort dropdown */
.woocommerce-ordering select,
.woocommerce-ordering .orderby {
    appearance: none;
    -webkit-appearance: none;
    background-color: white;
    border: 1px solid #d4d4d4;
    padding: 8px 36px 8px 14px;
    font-size: 13px;
    font-family: 'Open Sans', Arial, sans-serif;
    color: #404040;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
}
.woocommerce-ordering select:focus {
    outline: none;
    border-color: #171717;
}

/* Pagination */
.woocommerce-pagination {
    text-align: center;
}
.woocommerce-pagination ul.page-numbers {
    display: inline-flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 4px;
}
.woocommerce-pagination ul.page-numbers li {
    margin: 0;
}
.woocommerce-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #d4d4d4;
    color: #404040;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    transition: all 0.2s ease;
    text-decoration: none;
}
.woocommerce-pagination .page-numbers:hover {
    border-color: #171717;
    color: #171717;
}
.woocommerce-pagination .page-numbers.current {
    background: #171717;
    border-color: #171717;
    color: white;
}
.woocommerce-pagination .page-numbers.dots {
    border: none;
    background: transparent;
}

/* Default WooCommerce result count we hide (we render our own) */
.woocommerce-result-count {
    display: none;
}

/* Hide "Click here to use coupon..." and other legacy notices in non-relevant places */
.woocommerce .breadcrumb,
.woocommerce-breadcrumb {
    display: none;
}

/* Scrollable product slider */
.slider-wrap {
    position: relative;
}
.product-scroll {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 0.5rem;
}
.product-scroll::-webkit-scrollbar {
    display: none;
}
.product-scroll > * {
    scroll-snap-align: start;
    flex-shrink: 0;
}

/* Slider arrows */
.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e5e5;
    color: #262626;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.slider-arrow:hover {
    background: #262626;
    color: white;
    border-color: #262626;
}
.slider-arrow.prev {
    left: -12px;
}
.slider-arrow.next {
    right: -12px;
}
.slider-arrow.is-hidden {
    opacity: 0;
    pointer-events: none;
}
@media (max-width: 768px) {
    .slider-arrow {
        width: 32px;
        height: 32px;
    }
    .slider-arrow.prev {
        left: -4px;
    }
    .slider-arrow.next {
        right: -4px;
    }
}
