/*
 Theme Name:   Divi Child (Zadveoci)
 Theme URI:    https://www.zadveoci.com
 Description:  Custom Divi child theme for Zadveoci — premium eyewear & sunglasses
 Author:       Antigravity
 Author URI:    https://www.zadveoci.com
 Template:     Divi
 Version:      2.5.3
 Text Domain:  mylens-child
*/

/* ============================================
   DESIGN TOKENS
   ============================================ */
:root {
    /* Brand Colors — teal + terracotta (distinct from source site) */
    --ml-primary: #143d38;
    --ml-primary-light: #1f524a;
    --ml-primary-dark: #0a1f1c;
    --ml-accent: #e07a5f;
    --ml-accent-hover: #c45d42;
    --ml-accent-light: #f4b5a0;
    --ml-accent-rgb: 224 122 95;
    --ml-primary-rgb: 20 61 56;
    
    /* Surfaces */
    --ml-surface: #f5f9f8;
    --ml-surface-alt: #e8f0ee;
    --ml-white: #FFFFFF;
    --ml-card: #FFFFFF;
    --ml-card-hover: #FAFAFA;
    
    /* Text */
    --ml-text: #2D2D2D;
    --ml-text-light: #6B6B6B;
    --ml-text-muted: #999999;
    --ml-text-inverse: #FFFFFF;
    
    /* Semantics */
    --ml-success: #2E7D32;
    --ml-danger: #C62828;
    --ml-warning: #F57F17;
    --ml-info: #1565C0;
    --ml-sale: #C62828;
    
    /* Typography */
    --ml-font-heading: 'Playfair Display', Georgia, serif;
    --ml-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ml-font-accent: 'DM Sans', 'Inter', sans-serif;
    
    /* Font Sizes */
    --ml-text-xs: 0.75rem;
    --ml-text-sm: 0.875rem;
    --ml-text-base: 1rem;
    --ml-text-lg: 1.125rem;
    --ml-text-xl: 1.25rem;
    --ml-text-2xl: 1.5rem;
    --ml-text-3xl: 1.875rem;
    --ml-text-4xl: 2.25rem;
    --ml-text-5xl: 3rem;
    --ml-text-6xl: 3.75rem;
    
    /* Spacing */
    --ml-space-xs: 0.25rem;
    --ml-space-sm: 0.5rem;
    --ml-space-md: 1rem;
    --ml-space-lg: 1.5rem;
    --ml-space-xl: 2rem;
    --ml-space-2xl: 3rem;
    --ml-space-3xl: 4rem;
    --ml-space-4xl: 6rem;
    --ml-space-5xl: 8rem;
    
    /* Border Radius */
    --ml-radius-sm: 4px;
    --ml-radius-md: 8px;
    --ml-radius-lg: 12px;
    --ml-radius-xl: 16px;
    --ml-radius-full: 9999px;
    
    /* Shadows */
    --ml-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --ml-shadow-md: 0 4px 6px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.04);
    --ml-shadow-lg: 0 10px 25px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.04);
    --ml-shadow-xl: 0 20px 40px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.06);
    --ml-shadow-gold: 0 4px 18px rgb(var(--ml-accent-rgb) / 0.28);
    
    /* Transitions */
    --ml-transition-fast: 150ms ease;
    --ml-transition: 300ms ease;
    --ml-transition-slow: 500ms ease;
    
    /* Layout */
    --ml-container: 1280px;
    --ml-container-wide: 1440px;
    --ml-header-height: 80px;
    --ml-header-height-scroll: 64px;
}

/* ============================================
   DIVI PARENT THEME OVERRIDES
   --------------------------------------------
   Cancel Divi's hard-coded `#main-content {
   background-color: #fff }` rule (which lives
   in Divi's parent inline CSS and we cannot
   edit there without breaking theme updates),
   so the page section backgrounds — soft cream
   surfaces, hero sections, body color, etc. —
   show through the main content wrapper.
   ============================================ */
#main-content {
    background-color: transparent !important;
}

/* ============================================
   GLOBAL RESETS & BASE
   ============================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--ml-font-body);
    font-size: var(--ml-text-base);
    line-height: 1.7;
    color: var(--ml-text);
    background: var(--ml-surface);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

body.menu-open {
    overflow: hidden;
}

/* Override Divi defaults */
#page-container,
.et_pb_section,
.et_pb_row {
    font-family: var(--ml-font-body) !important;
}

/* ============================================
   TYPOGRAPHY
   ============================================ */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--ml-font-heading);
    font-weight: 700;
    line-height: 1.2;
    color: var(--ml-primary);
    margin-top: 0;
}

h1 { font-size: var(--ml-text-5xl); }
h2 { font-size: var(--ml-text-4xl); }
h3 { font-size: var(--ml-text-2xl); }
h4 { font-size: var(--ml-text-xl); }
h5 { font-size: var(--ml-text-lg); }
h6 { font-size: var(--ml-text-base); }

p {
    margin-top: 0;
    margin-bottom: var(--ml-space-md);
    color: var(--ml-text);
}

a {
    color: var(--ml-accent);
    text-decoration: none;
    transition: color var(--ml-transition-fast);
}

a:hover {
    color: var(--ml-accent-hover);
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.ml-container {
    width: 100%;
    max-width: var(--ml-container);
    margin: 0 auto;
    padding: 0 var(--ml-space-xl);
}

.ml-container-wide {
    max-width: var(--ml-container-wide);
    margin: 0 auto;
    padding: 0 var(--ml-space-xl);
}

.ml-section {
    padding: var(--ml-space-5xl) 0;
}

.ml-section-alt {
    background: var(--ml-surface-alt);
}

.ml-section-dark {
    background: var(--ml-primary);
    color: var(--ml-text-inverse);
}

.ml-section-dark h2,
.ml-section-dark h3,
.ml-section-dark p {
    color: var(--ml-text-inverse);
}

.ml-section-header {
    text-align: center;
    margin-bottom: var(--ml-space-3xl);
}

.ml-section-header h2 {
    font-size: var(--ml-text-4xl);
    margin-bottom: var(--ml-space-sm);
    position: relative;
}

.ml-section-header h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--ml-accent);
    margin: 16px 0 0;
    border-radius: 2px;
}

.ml-section-header p {
    color: var(--ml-text-light);
    font-size: var(--ml-text-lg);
    max-width: 600px;
    margin: 0 auto;
}

.ml-section-header .ml-view-all,
.ml-home-spotlight .ml-view-all {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ml-accent);
    font-family: var(--ml-font-accent);
    font-weight: 600;
    font-size: var(--ml-text-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: var(--ml-space-md);
    text-decoration: none;
    transition: all var(--ml-transition-fast);
}

.ml-section-header .ml-view-all:hover,
.ml-home-spotlight .ml-view-all:hover {
    color: var(--ml-accent-hover);
    gap: 10px;
}

/* Spotlight row: link sits beside title, not under — reset top margin */
.ml-home-spotlight .ml-spotlight-deck .ml-view-all {
    margin-top: 0;
    flex-shrink: 0;
}

/* ============================================
   BUTTON SYSTEM
   ============================================ */
.ml-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--ml-font-accent);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 15px 34px;
    border: 1.5px solid transparent;
    border-radius: var(--ml-radius-full);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    text-decoration: none;
    line-height: 1;
    white-space: nowrap;
}

.ml-btn-primary {
    background: var(--ml-accent);
    color: var(--ml-primary);
    border-color: var(--ml-accent);
}

.ml-btn-primary:hover {
    background: var(--ml-accent-hover);
    border-color: var(--ml-accent-hover);
    color: var(--ml-white);
    transform: translateY(-2px);
    box-shadow: var(--ml-shadow-gold);
}

.ml-btn-outline {
    background: transparent;
    color: var(--ml-white);
    border-color: var(--ml-white);
}

.ml-btn-outline:hover {
    background: var(--ml-white);
    color: var(--ml-primary);
    transform: translateY(-2px);
}

.ml-btn-dark {
    background: var(--ml-primary);
    color: var(--ml-white);
    border-color: var(--ml-primary);
}

.ml-btn-dark:hover {
    background: var(--ml-primary-light);
    transform: translateY(-2px);
    box-shadow: var(--ml-shadow-lg);
}

.ml-btn-sm {
    padding: 10px 20px;
    font-size: var(--ml-text-xs);
}

.ml-btn-lg {
    padding: 18px 40px;
    font-size: var(--ml-text-base);
}

/* ============================================
   PRODUCT CARD
   ============================================ */
.ml-product-card {
    background: var(--ml-card);
    border-radius: var(--ml-radius-lg);
    overflow: hidden;
    transition: all var(--ml-transition);
    position: relative;
    border: 1px solid rgba(0,0,0,0.04);
}

.ml-product-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--ml-shadow-xl);
}

.ml-product-card__image {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--ml-surface);
}

.ml-product-card__media {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ml-product-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.45s ease, transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ml-product-card__img--alt {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    pointer-events: none;
}

.ml-product-card:hover .ml-product-card__media {
    transform: scale(1.06);
}

.ml-product-card--dual-img:hover .ml-product-card__media {
    transform: none;
}

.ml-product-card--dual-img:hover .ml-product-card__img--primary {
    transform: scale(1.04);
}

.ml-product-card--dual-img:hover .ml-product-card__img--alt {
    opacity: 1;
    transform: scale(1.04);
}

.ml-product-card__badges {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
    pointer-events: none;
}

.ml-product-card__badges .ml-product-card__badge {
    position: static;
}

.ml-product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--ml-sale);
    color: var(--ml-white);
    font-family: var(--ml-font-accent);
    font-size: var(--ml-text-xs);
    font-weight: 700;
    padding: 4px 10px;
    border-radius: var(--ml-radius-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
}

.ml-product-card__badge--pill {
    background: linear-gradient(135deg, var(--ml-accent) 0%, var(--ml-accent-hover) 100%);
    color: var(--ml-white);
    box-shadow: 0 2px 10px rgb(var(--ml-accent-rgb) / 0.35);
}

.ml-product-card__badge--bestseller {
    background: var(--ml-primary);
    color: var(--ml-white);
}

.ml-product-card__badge--hot {
    background: linear-gradient(135deg, #c45d42 0%, var(--ml-accent) 55%, var(--ml-accent-light) 100%);
    color: var(--ml-white);
    box-shadow: 0 4px 16px rgb(var(--ml-accent-rgb) / 0.45);
}

.ml-product-card__badge--trending {
    background: linear-gradient(135deg, rgb(255 255 255 / 0.95) 0%, rgb(245 249 248) 100%);
    color: var(--ml-primary);
    border: 1px solid rgb(var(--ml-primary-rgb) / 0.2);
    box-shadow: 0 4px 14px rgb(var(--ml-primary-rgb) / 0.12);
}

.ml-product-card__actions {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: 0;
    transform: translateX(10px);
    transition: all var(--ml-transition);
    z-index: 2;
}

.ml-product-card:hover .ml-product-card__actions {
    opacity: 1;
    transform: translateX(0);
}

.ml-product-card__action-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--ml-white);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: var(--ml-shadow-md);
    transition: all var(--ml-transition-fast);
    color: var(--ml-text);
}

.ml-product-card__action-btn:hover {
    background: var(--ml-accent);
    color: var(--ml-white);
    transform: scale(1.1);
}

.ml-product-card__quickview {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 12px;
    background: linear-gradient(transparent, rgba(27,27,47,0.9));
    text-align: center;
    opacity: 0;
    transform: translateY(100%);
    transition: all var(--ml-transition);
    z-index: 2;
}

.ml-product-card:hover .ml-product-card__quickview {
    opacity: 1;
    transform: translateY(0);
}

.ml-product-card__quickview a {
    color: var(--ml-white);
    font-family: var(--ml-font-accent);
    font-weight: 600;
    font-size: var(--ml-text-sm);
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.ml-product-card__info {
    padding: 16px 20px 20px;
}

.ml-product-card__brand {
    font-family: var(--ml-font-accent);
    font-size: var(--ml-text-xs);
    color: var(--ml-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
    margin-bottom: 4px;
    display: block;
}

.ml-product-card__title {
    font-family: var(--ml-font-body);
    font-weight: 600;
    font-size: var(--ml-text-base);
    color: var(--ml-text);
    margin: 0 0 8px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ml-product-card__title a {
    color: inherit;
    text-decoration: none;
}

.ml-product-card__title a:hover {
    color: var(--ml-accent);
}

.ml-product-card__price {
    font-family: var(--ml-font-accent);
    font-weight: 700;
    font-size: var(--ml-text-lg);
    color: var(--ml-primary);
}

.ml-product-card__price del {
    color: var(--ml-text-muted);
    font-weight: 400;
    font-size: var(--ml-text-sm);
    margin-right: 8px;
}

.ml-product-card__price ins {
    text-decoration: none;
    color: var(--ml-sale);
}

.ml-product-card--with-cta {
    display: flex;
    flex-direction: column;
}

.ml-product-card--with-cta .ml-product-card__image {
    flex-shrink: 0;
}

.ml-product-card__cta {
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 13px 20px;
    border-radius: var(--ml-radius-full);
    font-family: var(--ml-font-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    color: var(--ml-primary);
    background: var(--ml-white);
    border: 1.5px solid rgb(var(--ml-primary-rgb) / 0.14);
    box-shadow: 0 2px 10px rgb(var(--ml-primary-rgb) / 0.06);
    transition:
        background var(--ml-transition-fast),
        color var(--ml-transition-fast),
        border-color var(--ml-transition-fast),
        box-shadow var(--ml-transition-fast),
        transform var(--ml-transition-fast);
}

.ml-product-card__cta:hover {
    background: var(--ml-primary);
    color: var(--ml-white);
    border-color: var(--ml-primary);
    box-shadow: 0 8px 24px rgb(var(--ml-primary-rgb) / 0.22);
    transform: translateY(-2px);
}

.ml-product-card--with-cta .ml-product-card__price {
    margin-top: auto;
}

.ml-product-card--with-cta .ml-product-card__info {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/* Product Grid */
.ml-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--ml-space-xl);
}

.ml-product-slider {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--ml-space-xl);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
}

.ml-product-slider::-webkit-scrollbar {
    display: none;
}

.ml-product-slider .ml-product-card {
    scroll-snap-align: start;
    min-width: 260px;
}

/* Clip vertical bleed from card hovers; inner track owns horizontal scroll */
.ml-product-track-shell {
    overflow: hidden;
    padding: 6px 0 4px;
    margin: 0;
}

/* Homepage: horizontal product rails (flex + scroll-snap)
   overflow-x: auto alone forces overflow-y to "auto" in CSS, which surfaces a
   useless vertical scrollbar when cards use translateY on hover — hide Y.
   Scrollbars hidden for a cleaner rail (still scroll/drag with mouse & touch). */
.ml-product-track {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: var(--ml-space-lg);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 12px 2px 18px;
    margin: 0;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
}

.ml-product-track::-webkit-scrollbar {
    display: none;
    height: 0;
}

.ml-product-track .ml-product-card {
    flex: 0 0 min(280px, 78vw);
    scroll-snap-align: start;
    min-width: 0;
    align-self: stretch;
}

.ml-home-spotlight {
    padding: var(--ml-space-xl) 0 var(--ml-space-2xl);
    background:
        linear-gradient(180deg, rgb(var(--ml-primary-rgb) / 0.04) 0%, transparent 100%),
        var(--ml-surface);
    border-bottom: 1px solid rgb(var(--ml-primary-rgb) / 0.06);
}

.ml-home-spotlight .ml-section-header {
    margin-bottom: var(--ml-space-lg);
}

.ml-home-spotlight .ml-section-header h2 {
    font-family: var(--ml-font-heading);
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    color: var(--ml-primary);
    margin: 0 0 6px;
}

.ml-home-spotlight .ml-spotlight-deck {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ml-space-md);
    flex-wrap: wrap;
    margin-bottom: var(--ml-space-md);
}

.ml-home-spotlight .ml-spotlight-deck p {
    margin: 0;
    color: var(--ml-text-light);
    max-width: 520px;
    line-height: 1.55;
}

/* Product rail with prev/next (Best Sellers, etc.) */
.ml-spotlight-rail {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(6px, 1.5vw, 12px);
}

.ml-rail-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgb(var(--ml-primary-rgb) / 0.12);
    background: linear-gradient(180deg, var(--ml-white) 0%, var(--ml-surface) 100%);
    color: var(--ml-primary);
    cursor: pointer;
    box-shadow:
        0 2px 8px rgb(var(--ml-primary-rgb) / 0.06),
        0 10px 28px rgb(var(--ml-primary-rgb) / 0.08);
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease;
    z-index: 3;
}

.ml-rail-btn:hover:not(:disabled) {
    border-color: rgb(var(--ml-accent-rgb) / 0.45);
    color: var(--ml-accent-hover);
    box-shadow:
        0 4px 12px rgb(var(--ml-accent-rgb) / 0.15),
        0 12px 32px rgb(var(--ml-primary-rgb) / 0.1);
    transform: scale(1.05);
}

.ml-rail-btn:focus-visible {
    outline: 2px solid var(--ml-accent);
    outline-offset: 2px;
}

.ml-rail-btn:disabled,
.ml-rail-btn.ml-rail-btn--disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

@media (max-width: 767px) {
    .ml-spotlight-rail {
        grid-template-columns: minmax(0, 1fr);
    }

    .ml-spotlight-rail .ml-rail-btn {
        display: none;
    }
}

/* Tabbed “Shop the collections” */
.ml-edition-tabs {
    position: relative;
}

.ml-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: var(--ml-space-xl);
}

.ml-tabs-nav .ml-tab {
    font-family: var(--ml-font-accent);
    font-size: var(--ml-text-sm);
    font-weight: 600;
    padding: 12px 26px;
    border-radius: 999px;
    border: 1px solid rgb(var(--ml-primary-rgb) / 0.12);
    background: var(--ml-white);
    color: var(--ml-text);
    cursor: pointer;
    transition:
        background var(--ml-transition),
        border-color var(--ml-transition),
        color var(--ml-transition),
        box-shadow var(--ml-transition);
}

.ml-tabs-nav .ml-tab:hover {
    border-color: rgb(var(--ml-accent-rgb) / 0.45);
    color: var(--ml-primary);
}

.ml-tabs-nav .ml-tab.ml-tab--active {
    background: linear-gradient(135deg, var(--ml-accent) 0%, var(--ml-accent-hover) 100%);
    border-color: transparent;
    color: var(--ml-white);
    box-shadow: 0 8px 24px rgb(var(--ml-accent-rgb) / 0.28);
}

.ml-tab-panels .ml-tab-panel {
    display: none;
    animation: ml-tab-fade 0.35s ease;
}

.ml-tab-panels .ml-tab-panel.ml-panel--active {
    display: block;
}

@keyframes ml-tab-fade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.ml-fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.ml-fade-up.ml-visible {
    opacity: 1;
    transform: translateY(0);
}

.ml-fade-in {
    opacity: 0;
    transition: opacity 0.6s ease;
}

.ml-fade-in.ml-visible {
    opacity: 1;
}

.ml-slide-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.ml-slide-left.ml-visible {
    opacity: 1;
    transform: translateX(0);
}

.ml-slide-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.ml-slide-right.ml-visible {
    opacity: 1;
    transform: translateX(0);
}

/* Stagger children */
.ml-stagger > *:nth-child(1) { transition-delay: 0s; }
.ml-stagger > *:nth-child(2) { transition-delay: 0.1s; }
.ml-stagger > *:nth-child(3) { transition-delay: 0.2s; }
.ml-stagger > *:nth-child(4) { transition-delay: 0.3s; }
.ml-stagger > *:nth-child(5) { transition-delay: 0.4s; }
.ml-stagger > *:nth-child(6) { transition-delay: 0.5s; }
.ml-stagger > *:nth-child(7) { transition-delay: 0.6s; }
.ml-stagger > *:nth-child(8) { transition-delay: 0.7s; }

/* ============================================
   RESPONSIVE BREAKPOINTS
   ============================================ */
@media (max-width: 1200px) {
    .ml-product-grid,
    .ml-product-slider {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 992px) {
    :root {
        --ml-text-5xl: 2.5rem;
        --ml-text-4xl: 2rem;
        --ml-text-3xl: 1.5rem;
    }
    
    .ml-section {
        padding: var(--ml-space-4xl) 0;
    }
    
    .ml-product-grid,
    .ml-product-slider {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--ml-space-lg);
    }
}

@media (max-width: 768px) {
    :root {
        --ml-text-5xl: 2rem;
        --ml-text-4xl: 1.75rem;
        --ml-text-3xl: 1.375rem;
        --ml-header-height: 64px;
    }
    
    .ml-container {
        padding: 0 var(--ml-space-md);
    }
    
    .ml-section {
        padding: var(--ml-space-3xl) 0;
    }
    
    .ml-btn-lg {
        padding: 14px 28px;
        font-size: var(--ml-text-sm);
    }
}

@media (max-width: 480px) {
    .ml-product-grid,
    .ml-product-slider {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--ml-space-md);
    }
    
    .ml-product-card__info {
        padding: 12px 14px 16px;
    }
    
    .ml-product-card__title {
        font-size: var(--ml-text-sm);
    }
}

/* ============================================
   SINGLE PRODUCT — Add-to-Cart Button Row
   --------------------------------------------
   Aligns Quantity + Add-to-Cart + Prescription
   (and any future Try-On button injected by a
   plugin) on a single horizontal row with
   matching heights, consistent spacing, and a
   clean wrap on mobile. Default Divi layout
   uses inline-block which produces the uneven
   baseline + spacing seen in the wild.
   ============================================ */

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart {
    margin-top: 8px;
}

/* The actual button row — variable products. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .woocommerce-variation-add-to-cart,
/* And simple products (no .variations_form). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart:not(.variations_form) {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 16px 0 0;
}

/* Hide WooCommerce's empty single_variation alert div so the gap collapses. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .single_variation:empty {
    display: none;
}

/* Hidden inputs must not introduce gap or take a flex slot. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart input[type="hidden"] {
    display: none !important;
}

/* Quantity wrapper — fixed width, flex baseline = center. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart div.quantity {
    flex: 0 0 auto;
    margin: 0 !important;
    display: inline-flex;
    align-items: stretch;
}

/* Quantity number input — match button height + padding. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart div.quantity input.qty {
    width: 84px;
    height: 50px;
    margin: 0;
    padding: 0 14px;
    box-sizing: border-box;
    text-align: center;
    font-family: var(--ml-font-accent);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--ml-text);
    background: var(--ml-white);
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    transition: border-color var(--ml-transition-fast), box-shadow var(--ml-transition-fast);
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart div.quantity input.qty:focus {
    outline: none;
    border-color: var(--ml-accent);
    box-shadow: 0 0 0 3px rgba(201,169,110,0.18);
}

/*
 * All buttons in the row — Add to cart, Select Prescription, and any
 * third-party Try-On button that hooks into the row via
 * .single_add_to_cart_button, .button.alt, or [class*="try-on"].
 */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .button,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="try-on"],
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="tryon"] {
    flex: 1 1 200px;
    min-width: 180px;
    max-width: 320px;
    height: 50px;
    margin: 0 !important;
    padding: 0 22px !important;
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2 !important;
    white-space: normal;
    font-family: var(--ml-font-accent);
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    border-radius: 8px;
    cursor: pointer;
    transition: transform var(--ml-transition-fast), box-shadow var(--ml-transition-fast), background-color var(--ml-transition-fast);
}

/* Kill Divi's default "::after" arrow icon that floats inside .button.alt
   — it pushes the label off-center and ruins vertical alignment. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .button.alt::after {
    display: none !important;
}

/* Add-to-cart: primary brand colour. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .single_add_to_cart_button {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 1px solid var(--ml-primary) !important;
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .single_add_to_cart_button:hover {
    background: var(--ml-primary-light) !important;
    border-color: var(--ml-primary-light) !important;
    transform: translateY(-1px);
    box-shadow: var(--ml-shadow-md);
}

/* Disabled add-to-cart (no variation chosen yet). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .single_add_to_cart_button.disabled,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .single_add_to_cart_button[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
}

/* Select Prescription: outline / accent treatment to differentiate. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .perdysy-rx-open-wizard {
    background: var(--ml-accent) !important;
    color: var(--ml-primary) !important;
    border: 1px solid var(--ml-accent) !important;
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart .perdysy-rx-open-wizard:hover {
    background: var(--ml-accent-hover) !important;
    border-color: var(--ml-accent-hover) !important;
    color: var(--ml-white) !important;
    transform: translateY(-1px);
    box-shadow: var(--ml-shadow-gold);
}

/* Optional Try-On (any plugin that injects .try-on / .tryon style class). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="try-on"],
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="tryon"] {
    background: var(--ml-white) !important;
    color: var(--ml-primary) !important;
    border: 1px solid var(--ml-primary) !important;
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="try-on"]:hover,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="tryon"]:hover {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border-color: var(--ml-primary) !important;
    transform: translateY(-1px);
    box-shadow: var(--ml-shadow-md);
}

/* Tablet — soften widths so 3 buttons fit before wrapping. */
@media (max-width: 980px) {
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart .button,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="try-on"],
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="tryon"] {
        flex: 1 1 160px;
        min-width: 140px;
        font-size: 12.5px;
        padding: 0 16px !important;
    }
}

/* Mobile — stack quantity + every button into a single column. */
@media (max-width: 600px) {
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart .woocommerce-variation-add-to-cart,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart:not(.variations_form) {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart div.quantity,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart div.quantity input.qty,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart .button,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="try-on"],
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart [class*="tryon"] {
        width: 100%;
        max-width: none;
    }
}

/* ============================================
   SINGLE PRODUCT — Variation Dropdowns
   --------------------------------------------
   Modernises the Color / Frame Size selects:
   borderless premium look, custom SVG chevron,
   focus ring in brand accent, generous hit-area,
   and a clean label-above-select stack on
   mobile. Uses high specificity to override
   Divi's defaults that ship border-width:0
   !important on the underlying <select>.
   ============================================ */

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations {
    width: 100%;
    margin: 0 0 8px;
    border: 0;
    border-collapse: separate;
    border-spacing: 0 14px;
    background: transparent;
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations tr,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations tbody {
    background: transparent;
    border: 0;
}

/* Label cell ("Color", "Frame Size"). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations th.label {
    width: 130px;
    padding: 0 18px 0 0;
    text-align: left;
    vertical-align: middle;
    background: transparent;
    border: 0;
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations th.label label {
    display: inline-block;
    margin: 0;
    font-family: var(--ml-font-accent);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--ml-primary);
    line-height: 1.2;
}

/* Value cell (holds the select + optional Clear link). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value {
    position: relative;
    padding: 0;
    background: transparent;
    border: 0;
}

/*
 * The select itself.
 * Divi ships `border-width:0!important; -webkit-appearance:none;` on these,
 * which is why we need this much specificity to add a real border + radius.
 */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select {
    width: 100%;
    height: 52px;
    margin: 0;
    padding: 0 48px 0 18px;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: var(--ml-white);
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1.25L7 7.25L13 1.25' stroke='%231B1B2F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 14px 9px;
    border: 1px solid #e2dfd6 !important;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(27,27,47,0.04);
    font-family: var(--ml-font-body);
    font-size: 15px;
    font-weight: 500;
    color: var(--ml-text);
    line-height: 1.2;
    cursor: pointer;
    transition: border-color var(--ml-transition-fast),
                box-shadow var(--ml-transition-fast),
                background-color var(--ml-transition-fast);
}

/* Hover — subtle lift toward the brand accent. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select:hover {
    border-color: #cfc9b8 !important;
    background-color: #fbfaf6;
}

/* Focus ring — accessible, on-brand. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select:focus,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select:focus-visible {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 4px rgba(201,169,110,0.18),
                0 1px 2px rgba(27,27,47,0.04);
    background-color: var(--ml-white);
}

/* Selected state — once the user has chosen a real value. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select:not(:placeholder-shown):not([data-default=""]),
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select.selected {
    color: var(--ml-primary);
    font-weight: 600;
}

/* "Choose an option" placeholder option — softer colour. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select option[value=""] {
    color: var(--ml-text-muted);
}

/* Kill Divi's default CSS triangle indicator (we ship a real SVG instead). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value > span:after,
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value::after {
    display: none !important;
    content: none !important;
}

/* "Clear" reset link — small, subtle, never floats over the select. */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations .reset_variations {
    display: inline-block;
    float: none !important;
    margin: 8px 0 0 !important;
    padding: 0;
    font-family: var(--ml-font-accent);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.4px;
    color: var(--ml-text-light);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--ml-transition-fast);
}

.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations .reset_variations:hover {
    color: var(--ml-accent-hover);
}

/* The "Clear" link should appear on its own line below the select on mobile;
   keep it visible by default (Divi sometimes hides it via opacity). */
.woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations .reset_variations[style*="visibility: hidden"] {
    visibility: hidden !important;
}

/* Tablet — slightly tighter label column. */
@media (max-width: 980px) {
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations th.label {
        width: 110px;
        padding-right: 14px;
    }
}

/* Mobile — stack the label above the select for full-width touch targets. */
@media (max-width: 600px) {
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations tbody,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations tr,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations th.label,
    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value {
        display: block;
        width: 100%;
    }

    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations {
        border-spacing: 0;
    }

    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations tr {
        margin-bottom: 14px;
    }

    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations th.label {
        margin: 0 0 6px;
        padding: 0;
    }

    .woocommerce.single-product .et_pb_wc_add_to_cart form.cart table.variations td.value select {
        height: 50px;
        font-size: 14.5px;
    }
}

/* ============================================
   SINGLE PRODUCT — Related Products
   --------------------------------------------
   Modernises the WooCommerce/Divi "Related
   Products" loop: brand-styled section title,
   premium card surface, image hover zoom, a
   slide-up "View Product" affordance over the
   bottom of the image, and a clean responsive
   grid (4 → 3 → 2). High specificity is needed
   because Divi (a) floats the <li>s and (b)
   ships its own card spacing rules.
   ============================================ */

/* Module wrapper — soft top spacing under the dark gallery section. */
.woocommerce.single-product .et_pb_wc_related_products {
    padding-top: 24px;
}

/* "Related products" heading. */
.woocommerce.single-product .et_pb_wc_related_products section.related > h2,
.woocommerce.single-product .et_pb_wc_related_products .related.products > h2 {
    font-family: var(--ml-font-heading);
    font-size: 36px;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
    margin: 0 0 36px;
    padding: 0 0 18px;
    position: relative;
    line-height: 1.15;
}

.woocommerce.single-product .et_pb_wc_related_products section.related > h2::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--ml-accent);
    border-radius: 2px;
}

/*
 * Convert the float-based WC list into a real CSS grid so the cards
 * are perfectly aligned regardless of varying titles/prices.
 */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
}

/* Kill WC's clearfix pseudo-elements — they break the grid. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products::before,
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products::after {
    display: none !important;
    content: none !important;
}

/* Card. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    list-style: none;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(27, 27, 47, 0.04);
    transition:
        transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        border-color 0.3s ease;
    position: relative;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product:hover {
    transform: translateY(-8px);
    box-shadow:
        0 22px 44px rgba(27, 27, 47, 0.12),
        0 8px 16px rgba(27, 27, 47, 0.06);
    border-color: rgba(201, 169, 110, 0.45);
}

/* The product link wraps image + title. Remove default underline + colour. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* Image well — square aspect ratio with a soft brand-tinted backdrop
   so transparent product shots still look premium. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .et_shop_image {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #f8f6f2 0%, #efece5 100%);
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .et_shop_image img {
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    display: block;
    object-fit: cover;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product:hover .et_shop_image img {
    transform: scale(1.06);
}

/* Re-skin Divi's existing image overlay (the magnifier hover).
   Soften the white wash → brand navy at 38% so it never washes out
   the photo, and centre a small "View" affordance for clarity. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .et_overlay {
    background-color: rgba(27, 27, 47, 0.38) !important;
    background-image: none !important;
    transition: opacity 0.3s ease !important;
}

/* "View Product →" pill that slides up on hover. Pure CSS pseudo-element;
   pointer-events:none so the underlying <a> still receives the click. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .et_shop_image::after {
    content: "VIEW PRODUCT \2192";
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translate(-50%, calc(100% + 24px));
    padding: 10px 20px;
    background: var(--ml-white);
    color: var(--ml-primary);
    font-family: var(--ml-font-accent);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    border-radius: 999px;
    box-shadow: 0 6px 16px rgba(27, 27, 47, 0.18);
    opacity: 0;
    transition:
        transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        opacity 0.3s ease;
    pointer-events: none;
    white-space: nowrap;
    z-index: 2;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product:hover .et_shop_image::after {
    transform: translate(-50%, 0);
    opacity: 1;
}

/* Product title — keep slightly smaller than price so hierarchy reads clearly on narrow cards. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .woocommerce-loop-product__title {
    margin: 0 !important;
    padding: 14px 14px 5px !important;
    font-family: var(--ml-font-body);
    font-size: 13px !important;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ml-text);
    text-align: center;
    transition: color var(--ml-transition-fast);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 44px;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product:hover h2.woocommerce-loop-product__title {
    color: var(--ml-accent-hover);
}

/* Price — inner .amount / bdi often pick up Divi’s link blue; pin brand tokens. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price,
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product span.price {
    display: block;
    margin: 0 !important;
    padding: 0 18px 22px !important;
    text-align: center;
    font-family: var(--ml-font-accent) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--ml-primary) !important;
    line-height: 1.2;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price .woocommerce-Price-amount,
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price .amount,
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price bdi {
    color: var(--ml-primary) !important;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price a {
    color: var(--ml-primary) !important;
    text-decoration: none;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price ins {
    text-decoration: none;
    color: var(--ml-sale) !important;
}

.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price del {
    color: var(--ml-text-muted) !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    margin-right: 8px;
    opacity: 0.85;
}

/* Sale flash — restyle WC's default <span class="onsale"> if present. */
.woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .onsale {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 3;
    margin: 0;
    padding: 5px 12px;
    background: var(--ml-sale);
    color: var(--ml-white);
    font-family: var(--ml-font-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 999px;
    border: none;
    min-width: 0;
    min-height: 0;
    line-height: 1.2;
}

/* Tablet — collapse to 3 columns. */
@media (max-width: 1100px) {
    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px;
    }

    /* When wrapping to 3 cols, the 4th card was last in row 1 — restore
       sensible "first/last" positioning regardless of WC's hard classes. */
    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product:nth-child(n) {
        clear: none !important;
    }
}

/* Tablet portrait + small-laptop — 2 columns. */
@media (max-width: 768px) {
    .woocommerce.single-product .et_pb_wc_related_products section.related > h2 {
        font-size: 28px;
        margin-bottom: 28px;
    }

    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}

/* Phone — keep 2 columns but tighten typography for narrow widths. */
@media (max-width: 480px) {
    .woocommerce.single-product .et_pb_wc_related_products section.related > h2 {
        font-size: 24px;
        margin-bottom: 20px;
    }

    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products {
        gap: 12px;
    }

    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product {
        border-radius: 12px;
    }

    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product h2.woocommerce-loop-product__title {
        font-size: 12.5px !important;
        padding: 12px 12px 4px !important;
        min-height: 36px;
        line-height: 1.33;
    }

    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .price {
        font-size: 16px !important;
        padding: 0 12px 14px !important;
    }

    /* Hide the "View Product" pill on phones — the whole card is already
       fully tappable, the pill just adds visual noise on small screens. */
    .woocommerce.single-product .et_pb_wc_related_products section.related ul.products li.product .et_shop_image::after {
        display: none;
    }
}

/* ============================================
   CART PAGE — body.woocommerce-cart
   --------------------------------------------
   Modernises both the empty and the full cart
   states. Empty state becomes a friendly hero
   card with cart icon + CTA. Full state turns
   the legacy WC table into a 2-column "items +
   sticky summary" layout with card rows and a
   premium checkout button. CSS only — no PHP
   or JS changes; relies on CSS :has() (Chrome
   105+, Firefox 121+, Safari 15.4+) to detect
   the full-cart state. Older browsers fall
   back to single-column flow which still
   looks reasonable.
   ============================================ */

/* Page heading "Cart" — promote to a real hero. */
body.woocommerce-cart h1.entry-title.main_title {
    font-family: var(--ml-font-heading);
    font-size: 44px;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
    margin: 24px 0 12px !important;
    padding: 0 0 18px !important;
    position: relative;
    line-height: 1.15;
}

body.woocommerce-cart h1.entry-title.main_title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;
    height: 3px;
    background: var(--ml-accent);
    border-radius: 2px;
}

/* Constrain content width so the cart never spans edge-to-edge on huge screens. */
body.woocommerce-cart #left-area {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
}

body.woocommerce-cart .entry-content > .woocommerce {
    margin-top: 16px;
    margin-bottom: 60px;
}

/* Hide the empty notices wrapper so it doesn't add a vertical gap. */
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty {
    display: none;
}

/* ============================================
   CART — Empty state
   ============================================ */

/*
 * Convert WooCommerce's default blue info bar into a centered, premium
 * hero card. Targets only the empty wrapper so full-cart styling above
 * is unaffected.
 */
body.woocommerce-cart .wc-empty-cart-message {
    max-width: 560px;
    margin: 32px auto 0;
    padding: 56px 32px 40px;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 20px;
    box-shadow: 0 6px 24px rgba(27, 27, 47, 0.06);
    text-align: center;
}

/* Reset Divi's default WC info bar styling inside the empty card. */
body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info {
    background: transparent !important;
    color: var(--ml-text) !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: var(--ml-font-body);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    list-style: none;
}

/* Replace WC's "info" icon with a cart-shaped illustration. */
body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::before {
    content: "";
    display: block;
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 24 24' fill='none' stroke='%231B1B2F' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1.6'/%3E%3Ccircle cx='18' cy='21' r='1.6'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    position: static;
    color: transparent;
    line-height: 0;
    opacity: 0.92;
}

/* Append a soft subtitle under the headline message. */
body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::after {
    content: "Browse our collection to find your next favourite pair.";
    display: block;
    margin-top: 10px;
    font-family: var(--ml-font-body);
    font-size: 14.5px;
    font-weight: 400;
    color: var(--ml-text-muted);
    line-height: 1.55;
}

html[lang="sq"] body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::after,
html[lang^="sq"] body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::after {
    content: "Shfletoni koleksionin tonë për të gjetur palën tuaj të preferuar të radhës." !important;
}

/* Return-to-shop button row — centered, just below the empty card. */
body.woocommerce-cart p.return-to-shop {
    max-width: 560px;
    margin: 22px auto 56px;
    padding: 0;
    text-align: center;
}

body.woocommerce-cart p.return-to-shop a.button.wc-backward {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 0 36px !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.6px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(27, 27, 47, 0.18);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

body.woocommerce-cart p.return-to-shop a.button.wc-backward::after {
    content: " \2192";
    margin-left: 10px;
    display: inline-block;
    transition: transform 0.25s ease;
}

body.woocommerce-cart p.return-to-shop a.button.wc-backward:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(27, 27, 47, 0.25);
}

body.woocommerce-cart p.return-to-shop a.button.wc-backward:hover::after {
    transform: translateX(4px);
}

/* ============================================
   CART — Full state (items + summary)
   ============================================ */

/*
 * Single-column layout: cart items panel on top, totals card below.
 * The .woocommerce wrapper is just a vertical block flow.
 */
body.woocommerce-cart .entry-content > .woocommerce {
    display: block;
}

/* Cart form panel. */
body.woocommerce-cart form.woocommerce-cart-form {
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    padding: 8px 16px 4px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    overflow: hidden;
}

/*
 * Strip the table chrome and convert the whole table to a vertical
 * stack of block rows. This is needed so the "actions" row (coupon +
 * update cart, which lives in a separate <tr> with a single
 * <td colspan="6">) renders at full width below the grid item rows
 * instead of inheriting a broken table-row layout from its grid
 * sibling rows above.
 */
body.woocommerce-cart table.shop_table.cart,
body.woocommerce-cart table.shop_table.cart tbody {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border: 0;
    background: transparent;
}

body.woocommerce-cart table.shop_table.cart {
    border-collapse: separate;
    border-spacing: 0;
}

body.woocommerce-cart table.shop_table.cart thead {
    display: none;
}

body.woocommerce-cart table.shop_table.cart tr {
    display: block;
    width: 100%;
    background: transparent;
}

/*
 * Each cart row becomes a CSS Grid card. Column order MUST match
 * WooCommerce's <td> document order:
 *   remove · thumbnail · name · price · quantity · subtotal
 * Earlier widths had remove=96 / subtotal=28, which clipped the
 * subtotal price (visible as "$27" instead of "$275.00").
 */
body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
    display: grid;
    grid-template-columns:
        36px            /* remove (×)     */
        96px            /* thumbnail      */
        minmax(0, 1fr)  /* name (grows)   */
        100px           /* price          */
        110px           /* quantity input */
        110px;          /* subtotal       */
    align-items: center;
    column-gap: 16px;
    padding: 18px 8px;
    border-bottom: 1px solid rgba(27, 27, 47, 0.06);
}

body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item:last-of-type {
    border-bottom: 0;
}

body.woocommerce-cart table.shop_table.cart td {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    vertical-align: middle;
}

/* Thumbnail cell. */
body.woocommerce-cart td.product-thumbnail a,
body.woocommerce-cart td.product-thumbnail {
    display: block;
}

body.woocommerce-cart td.product-thumbnail img {
    width: 96px !important;
    height: 96px !important;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(27, 27, 47, 0.06);
    background: linear-gradient(135deg, #f8f6f2 0%, #efece5 100%);
    display: block;
    margin: 0;
}

/* Product name + variation. */
body.woocommerce-cart td.product-name a {
    color: var(--ml-primary) !important;
    font-family: var(--ml-font-body);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none !important;
    transition: color var(--ml-transition-fast);
}

body.woocommerce-cart td.product-name a:hover {
    color: var(--ml-accent-hover) !important;
}

body.woocommerce-cart td.product-name dl.variation {
    margin: 6px 0 0;
    padding: 0;
    font-family: var(--ml-font-body);
    font-size: 13px;
    color: var(--ml-text-muted);
    line-height: 1.5;
}

body.woocommerce-cart td.product-name dl.variation dt,
body.woocommerce-cart td.product-name dl.variation dd {
    display: inline;
    margin: 0 4px 0 0;
    padding: 0;
    background: transparent;
}

body.woocommerce-cart td.product-name dl.variation dt {
    font-weight: 600;
    color: var(--ml-text);
}

/* Price + Subtotal cells. */
body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal {
    font-family: var(--ml-font-accent);
    font-size: 16px !important;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
}

body.woocommerce-cart td.product-subtotal {
    text-align: right;
}

body.woocommerce-cart td.product-price del,
body.woocommerce-cart td.product-subtotal del {
    color: var(--ml-text-muted);
    font-weight: 400;
    margin-right: 6px;
    font-size: 13px;
    opacity: 0.85;
}

body.woocommerce-cart td.product-price ins,
body.woocommerce-cart td.product-subtotal ins {
    text-decoration: none;
    color: var(--ml-sale);
}

/* Quantity input. */
body.woocommerce-cart td.product-quantity {
    text-align: center;
}

body.woocommerce-cart div.quantity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

body.woocommerce-cart div.quantity input.qty {
    width: 80px !important;
    height: 44px !important;
    padding: 0 10px !important;
    text-align: center;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    font-family: var(--ml-font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--ml-primary) !important;
    background: var(--ml-white) !important;
    box-shadow: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-cart div.quantity input.qty:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Remove (×) button — circular icon. */
body.woocommerce-cart td.product-remove {
    text-align: center;
}

body.woocommerce-cart td.product-remove a.remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: var(--ml-text-muted) !important;
    background: transparent !important;
    border-radius: 50% !important;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    transition: background 0.25s ease, color 0.25s ease, transform 0.3s ease;
}

body.woocommerce-cart td.product-remove a.remove:hover {
    background: rgba(201, 68, 68, 0.1) !important;
    color: #c44444 !important;
    transform: rotate(90deg);
}

/* Coupon + Update Cart actions row. */
body.woocommerce-cart table.shop_table.cart tr td.actions {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 12px;
    width: 100% !important;
    padding: 22px 8px 14px !important;
    border-top: 1px solid rgba(27, 27, 47, 0.06) !important;
    border-bottom: 0 !important;
}

body.woocommerce-cart .coupon {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

body.woocommerce-cart .coupon label {
    display: none;
}

body.woocommerce-cart .coupon input.input-text,
body.woocommerce-cart .coupon #coupon_code {
    height: 46px;
    padding: 0 14px;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    font-family: var(--ml-font-body);
    font-size: 14px;
    color: var(--ml-text);
    background: var(--ml-white);
    flex: 0 1 220px;
    min-width: 0;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-cart .coupon input.input-text:focus,
body.woocommerce-cart .coupon #coupon_code:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Coupon "Apply" button — outlined navy. */
body.woocommerce-cart .coupon button.button,
body.woocommerce-cart button[name="apply_coupon"] {
    height: 46px;
    padding: 0 22px !important;
    background: transparent !important;
    color: var(--ml-primary) !important;
    border: 1.5px solid var(--ml-primary) !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    transition: background 0.25s ease, color 0.25s ease;
}

body.woocommerce-cart .coupon button.button:hover,
body.woocommerce-cart button[name="apply_coupon"]:hover {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
}

/* Update Cart — muted outlined. */
body.woocommerce-cart button[name="update_cart"] {
    height: 46px;
    padding: 0 22px !important;
    background: transparent !important;
    color: var(--ml-text-muted) !important;
    border: 1.5px solid rgba(27, 27, 47, 0.2) !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

body.woocommerce-cart button[name="update_cart"]:hover:not(:disabled) {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border-color: var(--ml-primary) !important;
}

body.woocommerce-cart button[name="update_cart"]:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ----- Cart Totals — full width below the items ----- */
body.woocommerce-cart .cart-collaterals {
    width: 100% !important;
    float: none !important;
    margin: 28px 0 0;
    display: block;
}

body.woocommerce-cart .cart-collaterals::before,
body.woocommerce-cart .cart-collaterals::after {
    display: none;
    content: none;
}

/*
 * Summary card spans the full container width. Single-column block
 * flow: title → totals breakdown → checkout actions. Lets the shipping
 * calculator form lay out across the full card width without being
 * cramped into a half-card column.
 */
body.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100% !important;
    max-width: none;
    float: none !important;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    padding: 28px 32px 26px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.06);
    position: static;
    display: block;
}

body.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
    margin-top: 24px !important;
}

body.woocommerce-cart .cart_totals h2 {
    font-family: var(--ml-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--ml-primary);
    margin: 0 0 18px !important;
    padding: 0 0 14px !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
    text-align: left;
    letter-spacing: -0.01em;
}

body.woocommerce-cart .cart_totals table.shop_table {
    width: 100% !important;
    margin: 0 !important;
    border: 0;
    background: transparent;
    border-collapse: separate;
    border-spacing: 0;
}

body.woocommerce-cart .cart_totals table.shop_table tr,
body.woocommerce-cart .cart_totals table.shop_table tbody {
    background: transparent;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
    border: 0 !important;
    padding: 12px 0 !important;
    background: transparent !important;
    font-family: var(--ml-font-body);
    font-size: 14.5px;
    line-height: 1.5;
}

body.woocommerce-cart .cart_totals table.shop_table th {
    color: var(--ml-text-muted) !important;
    font-weight: 500 !important;
    text-align: left;
    width: 45%;
}

body.woocommerce-cart .cart_totals table.shop_table td {
    color: var(--ml-text) !important;
    font-weight: 600 !important;
    text-align: right;
}

body.woocommerce-cart .cart_totals .cart-subtotal th,
body.woocommerce-cart .cart_totals .cart-subtotal td,
body.woocommerce-cart .cart_totals .shipping th,
body.woocommerce-cart .cart_totals .shipping td {
    border-bottom: 1px solid rgba(27, 27, 47, 0.06) !important;
}

/* Order total — emphasised. */
body.woocommerce-cart .cart_totals .order-total th {
    color: var(--ml-primary) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    padding-top: 18px !important;
}

body.woocommerce-cart .cart_totals .order-total td {
    color: var(--ml-primary) !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    font-family: var(--ml-font-accent) !important;
    padding-top: 18px !important;
}

body.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount {
    font-size: 22px !important;
}

/*
 * Shipping row — break out of standard table-cell layout so the label
 * stacks above the value, letting the calculator form span the full
 * card width when "Change address" is opened.
 */
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals.shipping {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid rgba(27, 27, 47, 0.06) !important;
}

body.woocommerce-cart .cart_totals .woocommerce-shipping-totals.shipping th,
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals.shipping td {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-cart .cart_totals .woocommerce-shipping-totals.shipping th {
    margin-bottom: 10px;
    color: var(--ml-text-muted) !important;
    font-weight: 500 !important;
}

body.woocommerce-cart .cart_totals .shipping ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.woocommerce-cart .cart_totals .shipping ul li {
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 1.5;
}

body.woocommerce-cart .cart_totals .shipping ul li label {
    color: var(--ml-text);
    font-weight: 500;
    margin-left: 4px;
    cursor: pointer;
}

body.woocommerce-cart .cart_totals .shipping-calculator-button {
    display: inline-block;
    margin-top: 6px;
    color: var(--ml-accent-hover) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    font-size: 13px;
}

/*
 * Calculator form — full-width panel below the shipping methods, with
 * a 2-column grid for the location fields when there's room.
 */
body.woocommerce-cart .shipping-calculator-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
    row-gap: 12px;
    margin: 12px 0 4px;
    padding: 18px 18px 18px;
    background: rgba(27, 27, 47, 0.025);
    border-radius: 12px;
}

body.woocommerce-cart .shipping-calculator-form .form-row,
body.woocommerce-cart .shipping-calculator-form > p {
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-cart .shipping-calculator-form .form-row label,
body.woocommerce-cart .shipping-calculator-form > p label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
    text-align: left;
}

body.woocommerce-cart .shipping-calculator-form input.input-text,
body.woocommerce-cart .shipping-calculator-form select,
body.woocommerce-cart .shipping-calculator-form .select2-selection {
    width: 100% !important;
    height: 44px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    font-family: var(--ml-font-body) !important;
    font-size: 14px !important;
    color: var(--ml-text) !important;
    background: var(--ml-white) !important;
    box-shadow: none !important;
    line-height: 42px !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-cart .shipping-calculator-form input.input-text:focus,
body.woocommerce-cart .shipping-calculator-form select:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Update button — span full grid row, right-align inside. */
body.woocommerce-cart .shipping-calculator-form > p:last-child,
body.woocommerce-cart .shipping-calculator-form .form-row-button {
    grid-column: 1 / -1;
    text-align: right;
    margin-top: 4px !important;
}

body.woocommerce-cart .shipping-calculator-form button[name="calc_shipping"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 24px !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    margin: 0;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-cart .shipping-calculator-form button[name="calc_shipping"]:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(27, 27, 47, 0.18);
}

/*
 * Proceed to Checkout — primary CTA. Capped width and right-aligned so
 * it visually anchors to the totals (which are right-aligned in their
 * column) rather than stretching across the full card width.
 */
body.woocommerce-cart .wc-proceed-to-checkout {
    margin: 24px 0 0 auto !important;
    padding: 24px 0 0;
    max-width: 480px;
    border-top: 1px solid rgba(27, 27, 47, 0.08);
}

body.woocommerce-cart a.checkout-button.button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 56px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 1.6px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 8px 20px rgba(27, 27, 47, 0.18);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

body.woocommerce-cart a.checkout-button.button::after {
    content: " \2192";
    margin-left: 10px;
    display: inline-block;
    transition: transform 0.25s ease;
}

body.woocommerce-cart a.checkout-button.button:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(27, 27, 47, 0.25);
}

body.woocommerce-cart a.checkout-button.button:hover::after {
    transform: translateX(4px);
}

/*
 * Other payment / express-checkout buttons added by plugins (e.g. the
 * Stripe "Pay with Link" button) — match the checkout column width.
 */
body.woocommerce-cart .cart_totals > div:not(.wc-proceed-to-checkout):not(.cart_totals_inner),
body.woocommerce-cart .cart_totals .wc-stripe-payment-request-button-separator,
body.woocommerce-cart .cart_totals #wc-stripe-payment-request-wrapper,
body.woocommerce-cart .cart_totals #wc-stripe-update-payment-method-wrapper {
    max-width: 480px;
    margin-left: auto !important;
    margin-right: 0 !important;
}

/* Trust note rendered below the checkout buttons, right-aligned. */
body.woocommerce-cart .cart_totals::after {
    content: "Secure checkout \00B7 SSL encrypted";
    display: block;
    margin: 14px 0 0 auto;
    max-width: 480px;
    font-family: var(--ml-font-body);
    font-size: 12px;
    font-weight: 500;
    color: var(--ml-text-muted);
    letter-spacing: 0.4px;
    text-align: center;
    opacity: 0.85;
}

/* Cross-sells (when present). */
body.woocommerce-cart .cross-sells {
    grid-column: 1 / -1;
    margin-top: 56px;
}

body.woocommerce-cart .cross-sells > h2 {
    font-family: var(--ml-font-heading);
    font-size: 28px;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
    margin: 0 0 28px;
    padding: 0 0 16px;
    position: relative;
}

body.woocommerce-cart .cross-sells > h2::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 56px;
    height: 3px;
    background: var(--ml-accent);
    border-radius: 2px;
}

body.woocommerce-cart .cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-cart .cross-sells ul.products::before,
body.woocommerce-cart .cross-sells ul.products::after {
    display: none !important;
    content: none !important;
}

/* Tablet — let the checkout button section span full card width. */
@media (max-width: 1024px) {
    body.woocommerce-cart .wc-proceed-to-checkout,
    body.woocommerce-cart .cart_totals::after,
    body.woocommerce-cart .cart_totals > div:not(.wc-proceed-to-checkout):not(.cart_totals_inner) {
        max-width: none;
    }

    body.woocommerce-cart .cross-sells ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Phone — stack the shipping calculator fields. */
@media (max-width: 600px) {
    body.woocommerce-cart .shipping-calculator-form {
        grid-template-columns: 1fr;
    }
}

/* Mobile — restructure cart row into a stacked card layout. */
@media (max-width: 768px) {
    body.woocommerce-cart h1.entry-title.main_title {
        font-size: 32px;
    }

    body.woocommerce-cart form.woocommerce-cart-form {
        padding: 4px 12px;
    }

    body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
        grid-template-columns: 80px 1fr 30px;
        grid-template-areas:
            "thumb name remove"
            "thumb price price"
            "qty   subtotal subtotal";
        column-gap: 14px;
        row-gap: 8px;
        padding: 16px 4px;
    }

    body.woocommerce-cart td.product-thumbnail {
        grid-area: thumb;
    }

    body.woocommerce-cart td.product-thumbnail img {
        width: 80px !important;
        height: 80px !important;
    }

    body.woocommerce-cart td.product-name {
        grid-area: name;
        align-self: start;
    }

    body.woocommerce-cart td.product-remove {
        grid-area: remove;
        align-self: start;
    }

    body.woocommerce-cart td.product-price {
        grid-area: price;
        text-align: left;
        font-size: 14px !important;
    }

    body.woocommerce-cart td.product-quantity {
        grid-area: qty;
        text-align: left;
    }

    body.woocommerce-cart td.product-subtotal {
        grid-area: subtotal;
        text-align: right;
    }

    body.woocommerce-cart table.shop_table.cart tr td.actions {
        grid-template-columns: 1fr;
    }

    body.woocommerce-cart .coupon {
        flex-wrap: wrap;
    }

    body.woocommerce-cart .coupon input.input-text,
    body.woocommerce-cart .coupon #coupon_code {
        flex: 1 1 100%;
    }

    body.woocommerce-cart button[name="update_cart"] {
        width: 100%;
    }

    body.woocommerce-cart .cross-sells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Phone — tighten the empty card. */
@media (max-width: 480px) {
    body.woocommerce-cart h1.entry-title.main_title {
        font-size: 28px;
    }

    body.woocommerce-cart .wc-empty-cart-message {
        margin: 24px 16px 0;
        padding: 40px 22px 32px;
    }

    body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info {
        font-size: 16px;
    }

    body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::before {
        width: 64px;
        height: 64px;
    }

    body.woocommerce-cart p.return-to-shop {
        margin: 18px 16px 48px;
    }

    body.woocommerce-cart p.return-to-shop a.button.wc-backward {
        width: 100%;
        height: 50px;
    }
}

/* ============================================
   CHECKOUT PAGE — body.woocommerce-checkout
   --------------------------------------------
   Modernises the WooCommerce checkout form. The
   page becomes a 2-column layout — customer
   details (billing + optional shipping + order
   notes) on the left and a sticky-ish "Your
   order" summary card with payment methods +
   Place Order on the right. Form rows use a
   2-up grid where WC's `.form-row-first` and
   `.form-row-last` apply. CSS only — no PHP/JS
   changes.
   ============================================ */

/* Page heading — same hero treatment as the cart. */
body.woocommerce-checkout h1.entry-title.main_title {
    font-family: var(--ml-font-heading);
    font-size: 44px;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
    margin: 24px 0 12px !important;
    padding: 0 0 18px !important;
    position: relative;
    line-height: 1.15;
}

body.woocommerce-checkout h1.entry-title.main_title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;
    height: 3px;
    background: var(--ml-accent);
    border-radius: 2px;
}

body.woocommerce-checkout #left-area {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
}

body.woocommerce-checkout .entry-content > .woocommerce {
    margin-top: 16px;
    margin-bottom: 60px;
}

body.woocommerce-checkout .woocommerce > .woocommerce-notices-wrapper:empty {
    display: none;
}

/* ---------------------------------------------
   Top notices: "Returning customer?" / "Have a
   coupon?" info bars and their expanded forms.
   --------------------------------------------- */
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: rgba(27, 27, 47, 0.04) !important;
    color: var(--ml-text) !important;
    border: 1px solid rgba(27, 27, 47, 0.08) !important;
    border-radius: 12px !important;
    padding: 14px 18px !important;
    margin: 0 0 14px !important;
    font-family: var(--ml-font-body);
    font-size: 14px !important;
    line-height: 1.5;
}

body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    color: var(--ml-accent-hover) !important;
}

body.woocommerce-checkout .woocommerce-form-login-toggle a,
body.woocommerce-checkout .woocommerce-form-coupon-toggle a,
body.woocommerce-checkout .showcoupon,
body.woocommerce-checkout .showlogin {
    color: var(--ml-accent-hover) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}

body.woocommerce-checkout form.woocommerce-form-login,
body.woocommerce-checkout form.checkout_coupon {
    background: var(--ml-white) !important;
    border: 1px solid rgba(27, 27, 47, 0.08) !important;
    border-radius: 14px !important;
    padding: 22px 24px !important;
    margin: 0 0 18px !important;
    box-shadow: 0 2px 8px rgba(27, 27, 47, 0.04);
}

/* ---------------------------------------------
   2-column layout for the checkout form
   --------------------------------------------
   Uses floats instead of CSS Grid so the
   right-column items (the "Your order" heading
   and `#order_review` body) reliably STACK
   together on the right regardless of how tall
   the left customer-details card is. With Grid
   auto-placement the `#order_review` body was
   getting pushed below the customer-details
   card; floats with `clear: right` stack the
   right column independently of the left.
   --------------------------------------------- */
body.woocommerce-checkout form.checkout.woocommerce-checkout {
    display: block;
    margin: 0;
}

body.woocommerce-checkout form.checkout.woocommerce-checkout::after {
    content: "";
    display: block;
    clear: both;
}

/* Top elements stretch full width above the 2-col split. */
body.woocommerce-checkout form.checkout > .woocommerce-form-login-toggle,
body.woocommerce-checkout form.checkout > .woocommerce-form-login,
body.woocommerce-checkout form.checkout > .woocommerce-form-coupon-toggle,
body.woocommerce-checkout form.checkout > form.checkout_coupon,
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
body.woocommerce-checkout form.checkout > .woocommerce-error,
body.woocommerce-checkout form.checkout > .woocommerce-message,
body.woocommerce-checkout form.checkout > .woocommerce-info {
    width: auto;
    float: none;
    clear: both;
    margin-bottom: 14px;
}

/* ---------------------------------------------
   Left column: customer details card.
   `float: left` (not block-with-margin) so the
   right-floated `h3` + `#order_review` sit
   BESIDE customer_details rather than dropping
   below it.
   --------------------------------------------- */
body.woocommerce-checkout #customer_details.col2-set,
body.woocommerce-checkout #customer_details {
    float: left;
    clear: left;
    width: calc(100% - 452px) !important; /* 420 col + 32 gap */
    margin: 0 32px 24px 0 !important;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    padding: 28px 32px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    box-sizing: border-box;
}

/* Hide the WC order-attribution custom element from layout — it's purely
   a wrapper for hidden tracking inputs and adds an inline gap otherwise. */
body.woocommerce-checkout wc-order-attribution-inputs {
    display: contents;
}

body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-checkout #customer_details .col-1 + .col-2,
body.woocommerce-checkout #customer_details .col-2 {
    margin-top: 28px !important;
    padding-top: 28px !important;
    border-top: 1px solid rgba(27, 27, 47, 0.08);
}

/*
 * Order notes section: WooCommerce nests `.woocommerce-additional-fields`
 * INSIDE `#customer_details > .col-2`, so it should render as an inner
 * sub-section of the customer details card, NOT a standalone outer card.
 * Add a soft top divider so it visually separates from shipping above it.
 */
body.woocommerce-checkout #customer_details .woocommerce-additional-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
    background: transparent;
    border: 0;
    border-top: 1px solid rgba(27, 27, 47, 0.08);
    border-radius: 0;
    margin: 24px 0 0 !important;
    padding: 24px 0 0 !important;
    box-shadow: none;
}

body.woocommerce-checkout .woocommerce-additional-fields h3 {
    /* Inherits the section heading style from earlier rule. */
    margin-top: 0 !important;
}

/* Section headings inside the customer details card. */
body.woocommerce-checkout #customer_details h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-family: var(--ml-font-heading);
    font-size: 20px;
    font-weight: 700;
    color: var(--ml-primary);
    margin: 0 0 18px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
    letter-spacing: -0.01em;
}

/* "Ship to a different address?" toggle is wrapped in <h3> by WC. */
body.woocommerce-checkout #ship-to-different-address {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-checkout #ship-to-different-address label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ml-font-heading);
    font-size: 18px;
    font-weight: 600;
    color: var(--ml-primary);
    cursor: pointer;
    margin: 0;
}

body.woocommerce-checkout #ship-to-different-address-checkbox {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ml-primary);
    cursor: pointer;
}

/* ---------------------------------------------
   Form rows
   --------------------------------------------- */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
    row-gap: 0;
}

body.woocommerce-checkout p.form-row {
    margin: 0 0 16px !important;
    padding: 0 !important;
    width: auto !important;
}

body.woocommerce-checkout p.form-row.form-row-first {
    grid-column: 1;
}

body.woocommerce-checkout p.form-row.form-row-last {
    grid-column: 2;
}

body.woocommerce-checkout p.form-row.form-row-wide,
body.woocommerce-checkout p.form-row.notes,
body.woocommerce-checkout p.form-row[id$="_address_1_field"],
body.woocommerce-checkout p.form-row[id$="_address_2_field"],
body.woocommerce-checkout p.form-row[id$="_city_field"],
body.woocommerce-checkout p.form-row[id$="_state_field"],
body.woocommerce-checkout p.form-row[id$="_postcode_field"],
body.woocommerce-checkout p.form-row[id$="_country_field"],
body.woocommerce-checkout p.form-row[id$="_company_field"],
body.woocommerce-checkout p.form-row[id$="_phone_field"],
body.woocommerce-checkout p.form-row[id$="_email_field"] {
    grid-column: 1 / -1;
}

body.woocommerce-checkout p.form-row label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
    line-height: 1.4;
}

body.woocommerce-checkout p.form-row label .required,
body.woocommerce-checkout abbr.required {
    color: var(--ml-sale);
    text-decoration: none;
    font-weight: 700;
    border: 0;
    margin-left: 2px;
}

body.woocommerce-checkout p.form-row .woocommerce-input-wrapper {
    display: block;
    width: 100%;
}

/* ---------------------------------------------
   Inputs / Selects / Textarea
   --------------------------------------------- */
body.woocommerce-checkout p.form-row input.input-text,
body.woocommerce-checkout p.form-row textarea,
body.woocommerce-checkout p.form-row select,
body.woocommerce-checkout form.woocommerce-form-login input.input-text,
body.woocommerce-checkout form.checkout_coupon input.input-text {
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    font-family: var(--ml-font-body) !important;
    font-size: 14px !important;
    color: var(--ml-text) !important;
    background: var(--ml-white) !important;
    box-shadow: none !important;
    line-height: 44px !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-checkout p.form-row textarea,
body.woocommerce-checkout p.form-row textarea#order_comments {
    height: auto !important;
    min-height: 96px !important;
    padding: 12px 14px !important;
    line-height: 1.5 !important;
    resize: vertical;
    cols: unset;
}

/* Order notes label cleaner spacing in its own sub-section. */
body.woocommerce-checkout #order_comments_field {
    margin: 0 !important;
}

body.woocommerce-checkout p.form-row input.input-text:focus,
body.woocommerce-checkout p.form-row textarea:focus,
body.woocommerce-checkout p.form-row select:focus,
body.woocommerce-checkout form.woocommerce-form-login input.input-text:focus,
body.woocommerce-checkout form.checkout_coupon input.input-text:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Select2 (used by WC for country / state dropdowns). */
body.woocommerce-checkout .select2-container--default .select2-selection--single {
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    background: var(--ml-white) !important;
    box-shadow: none !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 44px !important;
    padding-left: 0 !important;
    padding-right: 28px !important;
    color: var(--ml-text) !important;
    font-family: var(--ml-font-body);
    font-size: 14px;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    right: 12px !important;
}

body.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Checkbox rows ("Create an account?", terms, etc.). */
body.woocommerce-checkout label.checkbox,
body.woocommerce-checkout .woocommerce-form__label-for-checkbox {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    color: var(--ml-text);
    margin: 0;
}

body.woocommerce-checkout input[type="checkbox"].input-checkbox,
body.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ml-primary);
    cursor: pointer;
}

/* ---------------------------------------------
   Right column: order review card.
   The h3 + #order_review float right and clear
   right so they stack vertically together on
   the right side regardless of left-column
   height. They visually merge into ONE card.
   --------------------------------------------- */
body.woocommerce-checkout h3#order_review_heading {
    float: right;
    clear: right;
    width: 420px;
    margin: 0 !important;
    padding: 24px 26px 14px !important;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
    border-radius: 16px 16px 0 0;
    font-family: var(--ml-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--ml-primary);
    letter-spacing: -0.01em;
    box-sizing: border-box;
}

body.woocommerce-checkout #order_review.woocommerce-checkout-review-order,
body.woocommerce-checkout #order_review {
    float: right;
    clear: right;
    width: 420px;
    margin: 0 0 24px 0 !important;
    padding: 18px 26px 26px;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-top: 0;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.06);
    box-sizing: border-box;
}

/* Order review table. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table,
body.woocommerce-checkout table.shop_table.woocommerce-checkout-review-order-table {
    width: 100% !important;
    margin: 0 0 18px !important;
    border: 0;
    background: transparent;
    border-collapse: separate;
    border-spacing: 0;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
    border: 0 !important;
    padding: 12px 0 !important;
    background: transparent !important;
    font-family: var(--ml-font-body);
    font-size: 14px;
    line-height: 1.5;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
    font-family: var(--ml-font-accent) !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ml-text-muted) !important;
    text-align: left;
    padding: 0 0 10px !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th.product-total {
    text-align: right;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td {
    border-bottom: 1px solid rgba(27, 27, 47, 0.06) !important;
    padding: 14px 0 !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name {
    font-family: var(--ml-font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--ml-primary) !important;
    line-height: 1.45;
    padding-right: 12px !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name strong.product-quantity {
    font-weight: 600;
    color: var(--ml-text-muted);
    margin-left: 6px;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name dl.variation {
    margin: 6px 0 0;
    padding: 0;
    font-size: 12.5px;
    color: var(--ml-text-muted);
    line-height: 1.5;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name dl.variation dt,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name dl.variation dd {
    display: inline;
    margin: 0 4px 0 0;
    padding: 0;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
    text-align: right;
    font-family: var(--ml-font-accent);
    font-size: 15px;
    font-weight: 700;
    color: var(--ml-primary) !important;
    white-space: nowrap;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
    color: var(--ml-text-muted) !important;
    font-weight: 500 !important;
    text-align: left;
    width: 50%;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
    text-align: right;
    color: var(--ml-text);
    font-weight: 600;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.shipping th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.shipping td {
    border-bottom: 1px solid rgba(27, 27, 47, 0.06) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.shipping ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.shipping ul li {
    margin: 0 0 4px;
    font-size: 13.5px;
}

/* Order Total — emphasised. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.order-total th {
    color: var(--ml-primary) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(27, 27, 47, 0.12) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    color: var(--ml-primary) !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    font-family: var(--ml-font-accent) !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(27, 27, 47, 0.12) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.order-total .woocommerce-Price-amount {
    font-size: 22px !important;
}

/* ---------------------------------------------
   Payment methods
   --------------------------------------------- */
body.woocommerce-checkout #payment.woocommerce-checkout-payment {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 18px 0 0 !important;
}

body.woocommerce-checkout #payment ul.payment_methods,
body.woocommerce-checkout #payment ul.wc_payment_methods {
    list-style: none;
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-checkout #payment ul.payment_methods > li,
body.woocommerce-checkout #payment ul.wc_payment_methods > li {
    display: block;
    margin: 0 0 10px;
    padding: 14px 16px;
    border: 1.5px solid rgba(27, 27, 47, 0.1);
    border-radius: 12px;
    background: var(--ml-white);
    transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    list-style: none;
}

body.woocommerce-checkout #payment ul.payment_methods > li:hover,
body.woocommerce-checkout #payment ul.wc_payment_methods > li:hover {
    border-color: rgba(201, 169, 110, 0.45);
    background: rgba(201, 169, 110, 0.04);
}

/* Selected method (WooCommerce toggles a "checked" class on <li>). */
body.woocommerce-checkout #payment ul.payment_methods > li.checked,
body.woocommerce-checkout #payment ul.wc_payment_methods > li.checked,
body.woocommerce-checkout #payment ul.payment_methods > li:has(input[type="radio"]:checked),
body.woocommerce-checkout #payment ul.wc_payment_methods > li:has(input[type="radio"]:checked) {
    border-color: var(--ml-accent) !important;
    background: rgba(201, 169, 110, 0.06) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.12);
}

body.woocommerce-checkout #payment ul.payment_methods input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0 8px 0 0;
    accent-color: var(--ml-primary);
    vertical-align: middle;
    cursor: pointer;
}

body.woocommerce-checkout #payment ul.payment_methods label,
body.woocommerce-checkout #payment ul.wc_payment_methods label {
    display: inline;
    font-family: var(--ml-font-body);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ml-text);
    cursor: pointer;
    margin: 0;
    line-height: 1.4;
}

body.woocommerce-checkout #payment ul.payment_methods label img,
body.woocommerce-checkout #payment ul.wc_payment_methods label img {
    margin-left: 8px;
    max-height: 24px;
    vertical-align: middle;
}

/* Payment-method explanation box (Paypal/Stripe/Bank Transfer notes). */
body.woocommerce-checkout #payment .payment_box {
    background: rgba(27, 27, 47, 0.025) !important;
    border: 0 !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    margin: 12px 0 0 !important;
    color: var(--ml-text) !important;
    font-family: var(--ml-font-body);
    font-size: 13.5px;
    line-height: 1.55;
}

body.woocommerce-checkout #payment .payment_box::before,
body.woocommerce-checkout #payment .payment_box::after {
    display: none !important;
    content: none !important;
}

/* ---------------------------------------------
   Terms checkbox + Place Order button
   --------------------------------------------- */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    margin: 18px 0 !important;
    font-size: 13.5px;
    color: var(--ml-text);
    line-height: 1.55;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text {
    margin: 0 0 14px;
    padding: 12px 14px;
    background: rgba(27, 27, 47, 0.025);
    border-radius: 10px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ml-text-muted);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
    margin: 0 !important;
    font-size: 12.5px;
}

/* The full T&C body is rendered hidden inline (`display: none`) and toggled
   via the link. When visible, scope it inside a soft scrollable panel so it
   doesn't visually overflow the order review card. */
body.woocommerce-checkout .woocommerce-terms-and-conditions {
    margin: 12px 0 !important;
    padding: 14px 16px !important;
    background: rgba(27, 27, 47, 0.025) !important;
    border: 1px solid rgba(27, 27, 47, 0.08) !important;
    border-radius: 10px !important;
    max-height: 220px !important;
    overflow: auto !important;
    font-size: 12px;
    line-height: 1.55;
    color: var(--ml-text);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions h1,
body.woocommerce-checkout .woocommerce-terms-and-conditions h2 {
    font-size: 13.5px !important;
    margin: 10px 0 6px !important;
    color: var(--ml-primary);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions ul {
    margin: 0 0 8px;
    padding-left: 18px;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
    color: var(--ml-accent-hover) !important;
    text-decoration: underline !important;
    font-weight: 600;
}

/* Terms checkbox row spacing inside the wrapper. */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper > p.form-row {
    margin: 14px 0 0 !important;
}

body.woocommerce-checkout #payment .form-row.place-order {
    margin: 18px 0 0 !important;
    padding: 0 !important;
}

/*
 * The WooPayments / Stripe plugin sometimes injects a stylesheet
 * `form.has-custom-place-order-button #place_order { display: none !important; }`
 * to hide the standard place-order button in favour of its own card-element
 * button. We force the standard button to remain visible inside the order
 * review card so the design stays intact even on $0 / no-payment-methods orders.
 */
body.woocommerce-checkout form.checkout #place_order,
body.woocommerce-checkout form.has-custom-place-order-button #place_order {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 56px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 1.6px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 8px 20px rgba(27, 27, 47, 0.18);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    cursor: pointer;
}

body.woocommerce-checkout #place_order:hover:not(:disabled) {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(27, 27, 47, 0.25);
}

body.woocommerce-checkout #place_order::after {
    content: " \2192";
    margin-left: 10px;
    display: inline-block;
    transition: transform 0.25s ease;
}

body.woocommerce-checkout #place_order:hover::after {
    transform: translateX(4px);
}

body.woocommerce-checkout #place_order:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}

/* Trust note rendered below Place Order. */
body.woocommerce-checkout #order_review::after {
    content: "Secure checkout \00B7 SSL encrypted \00B7 Your details are safe";
    display: block;
    margin: 14px 0 0;
    font-family: var(--ml-font-body);
    font-size: 12px;
    font-weight: 500;
    color: var(--ml-text-muted);
    letter-spacing: 0.4px;
    text-align: center;
    opacity: 0.85;
}

/* ---------------------------------------------
   WC validation states
   --------------------------------------------- */
body.woocommerce-checkout p.form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout p.form-row.woocommerce-invalid select,
body.woocommerce-checkout p.form-row.woocommerce-invalid .select2-container--default .select2-selection--single {
    border-color: #c44444 !important;
}

body.woocommerce-checkout p.form-row.woocommerce-validated input.input-text,
body.woocommerce-checkout p.form-row.woocommerce-validated select,
body.woocommerce-checkout p.form-row.woocommerce-validated .select2-container--default .select2-selection--single {
    border-color: rgba(34, 153, 84, 0.55) !important;
}

body.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error,
body.woocommerce-checkout .woocommerce-error {
    background: rgba(196, 68, 68, 0.06) !important;
    color: #842b2b !important;
    border: 1px solid rgba(196, 68, 68, 0.28) !important;
    border-radius: 12px !important;
    padding: 12px 18px !important;
    list-style: none !important;
}

/* ---------------------------------------------
   Responsive
   --------------------------------------------- */
@media (max-width: 1024px) {
    /* Drop the float-based 2-col layout: stack everything full-width. */
    body.woocommerce-checkout #customer_details.col2-set,
    body.woocommerce-checkout #customer_details,
    body.woocommerce-checkout .woocommerce-additional-fields,
    body.woocommerce-checkout #customer_details + .woocommerce-additional-fields {
        float: none;
        width: auto !important;
        margin: 0 0 24px 0 !important;
    }

    body.woocommerce-checkout h3#order_review_heading,
    body.woocommerce-checkout #order_review.woocommerce-checkout-review-order,
    body.woocommerce-checkout #order_review {
        float: none;
        clear: both;
        width: 100% !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout #order_review.woocommerce-checkout-review-order,
    body.woocommerce-checkout #order_review {
        margin-bottom: 24px !important;
    }
}

@media (max-width: 600px) {
    body.woocommerce-checkout h1.entry-title.main_title {
        font-size: 32px;
    }

    body.woocommerce-checkout #customer_details,
    body.woocommerce-checkout .woocommerce-additional-fields {
        padding: 22px 20px !important;
    }

    body.woocommerce-checkout h3#order_review_heading {
        padding: 22px 20px 12px !important;
        font-size: 20px;
    }

    body.woocommerce-checkout #order_review {
        padding: 16px 20px 22px !important;
    }

    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
    body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
        grid-template-columns: 1fr;
    }

    body.woocommerce-checkout p.form-row.form-row-first,
    body.woocommerce-checkout p.form-row.form-row-last {
        grid-column: 1;
    }
}

@media (max-width: 480px) {
    body.woocommerce-checkout h1.entry-title.main_title {
        font-size: 28px;
    }
}

/* ============================================
   MY ACCOUNT PAGE — body.woocommerce-account
   --------------------------------------------
   Styles both states:
   1) Guest (logged-out): two-card Login + Register
      layout sourced from `#customer_login.col2-set`.
   2) Authenticated: sidebar nav
      (`.woocommerce-MyAccount-navigation`) +
      content area (`.woocommerce-MyAccount-content`)
      for Dashboard, Orders, Downloads, Addresses,
      Payment methods, Account details.
   CSS only — no PHP / template changes.
   ============================================ */

/* ---------------------------------------------
   Page hero — matches cart/checkout
   --------------------------------------------- */
body.woocommerce-account h1.entry-title.main_title {
    font-family: var(--ml-font-heading);
    font-size: 44px;
    font-weight: 700;
    color: var(--ml-primary);
    text-align: center;
    margin: 24px 0 12px !important;
    padding: 0 0 18px !important;
    position: relative;
    line-height: 1.15;
}

body.woocommerce-account h1.entry-title.main_title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;
    height: 3px;
    background: var(--ml-accent);
    border-radius: 2px;
}

body.woocommerce-account #left-area {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
}

body.woocommerce-account .entry-content > .woocommerce {
    margin: 16px 0 60px;
}

/* Hide marketing-attribution custom element from layout. */
body.woocommerce-account wc-order-attribution-inputs {
    display: contents;
}

/* ---------------------------------------------
   GUEST — Login + Register (2-card layout)
   --------------------------------------------- */
body.woocommerce-account #customer_login.u-columns.col2-set,
body.woocommerce-account #customer_login.col2-set {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 32px;
    row-gap: 24px;
    margin: 0;
    width: 100%;
}

body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .u-column2,
body.woocommerce-account #customer_login .col-1,
body.woocommerce-account #customer_login .col-2 {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 32px !important;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    box-sizing: border-box;
}

/* Force explicit grid placement — Divi/WC inject grid-column rules
   that cause the cards to land in row 1 col 2 and row 2 col 1. */
body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .col-1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

body.woocommerce-account #customer_login .u-column2,
body.woocommerce-account #customer_login .col-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
}

/* Section headings inside each card. */
body.woocommerce-account #customer_login h2 {
    font-family: var(--ml-font-heading);
    font-size: 26px;
    font-weight: 700;
    color: var(--ml-primary);
    margin: 0 0 22px !important;
    padding: 0 0 14px !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

/* Form rows. */
body.woocommerce-account form.woocommerce-form-login p.form-row,
body.woocommerce-account form.woocommerce-form-register p.form-row,
body.woocommerce-account p.woocommerce-form-row {
    margin: 0 0 18px !important;
    padding: 0 !important;
    width: auto !important;
}

body.woocommerce-account form.woocommerce-form-login p.form-row label,
body.woocommerce-account form.woocommerce-form-register p.form-row label,
body.woocommerce-account p.woocommerce-form-row label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
    line-height: 1.4;
}

body.woocommerce-account form.woocommerce-form-login p.form-row label .required,
body.woocommerce-account form.woocommerce-form-register p.form-row label .required {
    color: var(--ml-sale);
    font-weight: 700;
    text-decoration: none;
    margin-left: 2px;
}

/* Inputs. */
body.woocommerce-account input.input-text,
body.woocommerce-account input.woocommerce-Input,
body.woocommerce-account input.woocommerce-Input--text,
body.woocommerce-account .woocommerce-MyAccount-content input.input-text,
body.woocommerce-account .woocommerce-MyAccount-content input[type="text"],
body.woocommerce-account .woocommerce-MyAccount-content input[type="email"],
body.woocommerce-account .woocommerce-MyAccount-content input[type="tel"],
body.woocommerce-account .woocommerce-MyAccount-content input[type="password"],
body.woocommerce-account .woocommerce-MyAccount-content select {
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    background: var(--ml-white) !important;
    font-family: var(--ml-font-body) !important;
    font-size: 14px !important;
    color: var(--ml-text) !important;
    line-height: 44px !important;
    box-shadow: none !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    box-sizing: border-box;
}

body.woocommerce-account input.input-text:focus,
body.woocommerce-account input.woocommerce-Input:focus,
body.woocommerce-account .woocommerce-MyAccount-content input:focus,
body.woocommerce-account .woocommerce-MyAccount-content select:focus,
body.woocommerce-account .woocommerce-MyAccount-content textarea:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* Password input wrapper with show/hide eye icon. */
body.woocommerce-account span.password-input,
body.woocommerce-account .woocommerce-MyAccount-content span.password-input {
    display: block;
    position: relative;
    width: 100%;
}

body.woocommerce-account span.password-input input.input-text {
    padding-right: 48px !important;
}

body.woocommerce-account button.show-password-input {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    color: var(--ml-text-muted);
    transition: background 0.2s ease, color 0.2s ease;
}

body.woocommerce-account button.show-password-input:hover {
    background: rgba(27, 27, 47, 0.05);
    color: var(--ml-primary);
}

/* Remember-me row contains both the checkbox label and the submit button. */
body.woocommerce-account form.woocommerce-form-login p.form-row:has(.woocommerce-form-login__rememberme):has(.woocommerce-form-login__submit),
body.woocommerce-account form.woocommerce-form-login p.form-row:has(button[name="login"]) {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 4px !important;
}

body.woocommerce-account label.woocommerce-form-login__rememberme,
body.woocommerce-account label.woocommerce-form__label-for-checkbox {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    font-size: 14px;
    font-weight: 500;
    color: var(--ml-text);
    cursor: pointer;
}

body.woocommerce-account input.woocommerce-form__input-checkbox,
body.woocommerce-account input[type="checkbox"].input-checkbox {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ml-primary);
    cursor: pointer;
}

/* Primary buttons (Log in / Register / Save changes / Add address etc.). */
body.woocommerce-account form.woocommerce-form-login button.woocommerce-form-login__submit,
body.woocommerce-account form.woocommerce-form-register button.woocommerce-form-register__submit,
body.woocommerce-account form.woocommerce-EditAccountForm button[name="save_account_details"],
body.woocommerce-account form.woocommerce-address-fields button[name="save_address"],
body.woocommerce-account .woocommerce-MyAccount-content button.button:not(.woocommerce-form-coupon__button):not(.show-password-input),
body.woocommerce-account .woocommerce-MyAccount-content input[type="submit"].button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 50px !important;
    min-width: 160px;
    padding: 0 28px !important;
    margin: 0 !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(27, 27, 47, 0.16);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

body.woocommerce-account form.woocommerce-form-login button.woocommerce-form-login__submit:hover,
body.woocommerce-account form.woocommerce-form-register button.woocommerce-form-register__submit:hover,
body.woocommerce-account form.woocommerce-EditAccountForm button[name="save_account_details"]:hover,
body.woocommerce-account form.woocommerce-address-fields button[name="save_address"]:hover,
body.woocommerce-account .woocommerce-MyAccount-content button.button:not(.woocommerce-form-coupon__button):not(.show-password-input):hover,
body.woocommerce-account .woocommerce-MyAccount-content input[type="submit"].button:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(27, 27, 47, 0.22);
}

/* "Lost your password?" link. */
body.woocommerce-account p.lost_password,
body.woocommerce-account p.woocommerce-LostPassword {
    margin: 16px 0 0 !important;
    font-size: 13.5px;
}

body.woocommerce-account p.lost_password a,
body.woocommerce-account p.woocommerce-LostPassword a {
    color: var(--ml-accent-hover) !important;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed transparent;
    transition: border-color 0.2s ease, color 0.2s ease;
}

body.woocommerce-account p.lost_password a:hover,
body.woocommerce-account p.woocommerce-LostPassword a:hover {
    color: var(--ml-primary) !important;
    border-bottom-color: var(--ml-accent);
}

/* Register card: privacy policy text inset panel + small intro paragraph. */
body.woocommerce-account form.woocommerce-form-register > p:not(.form-row):not([class*="form-row"]) {
    margin: 0 0 16px !important;
    padding: 12px 14px;
    background: rgba(27, 27, 47, 0.025);
    border-radius: 10px;
    color: var(--ml-text-muted);
    font-size: 13px;
    line-height: 1.55;
}

body.woocommerce-account form.woocommerce-form-register .woocommerce-privacy-policy-text {
    margin: 0 0 18px !important;
    padding: 12px 14px;
    background: rgba(27, 27, 47, 0.025);
    border-radius: 10px;
    color: var(--ml-text-muted);
    font-size: 12.5px;
    line-height: 1.55;
}

body.woocommerce-account form.woocommerce-form-register .woocommerce-privacy-policy-text p {
    margin: 0 !important;
    font-size: 12.5px;
}

body.woocommerce-account a.woocommerce-privacy-policy-link {
    color: var(--ml-accent-hover) !important;
    font-weight: 600;
    text-decoration: underline;
}

/* ---------------------------------------------
   AUTHENTICATED — sidebar nav + content
   --------------------------------------------- */
body.woocommerce-account.logged-in .entry-content > .woocommerce,
body.woocommerce-account .entry-content > .woocommerce:has(nav.woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    column-gap: 32px;
    align-items: start;
    margin: 16px 0 60px;
}

/* Sidebar nav card. */
body.woocommerce-account nav.woocommerce-MyAccount-navigation {
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    padding: 14px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    position: sticky;
    top: 100px;
    /* WC default sets width:30%; override to fill the grid cell. */
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    box-sizing: border-box;
    /* Force explicit grid placement so it sits in column 1, row 1. */
    grid-column: 1 !important;
    grid-row: 1 !important;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li {
    list-style: none !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li::before,
body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li::marker {
    content: none !important;
    display: none !important;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px !important;
    border-radius: 10px;
    font-family: var(--ml-font-body);
    font-size: 14px;
    font-weight: 500;
    color: var(--ml-text);
    text-decoration: none !important;
    line-height: 1.3;
    transition: background 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
    position: relative;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a:hover {
    background: rgba(201, 169, 110, 0.06);
    color: var(--ml-primary);
    padding-left: 18px !important;
}

/* Active state. */
body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.is-active > a,
body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li[class*="is-active"] > a {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(27, 27, 47, 0.18);
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.is-active > a:hover {
    padding-left: 14px !important;
}

/* Icon prefixes per endpoint via emoji-free SVG content (subtle dots accents). */
body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: rgba(27, 27, 47, 0.25);
    flex: 0 0 auto;
    transition: background 0.2s ease, transform 0.2s ease;
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a:hover::before {
    background: var(--ml-accent);
    transform: scale(1.4);
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.is-active > a::before {
    background: var(--ml-accent);
    transform: scale(1.4);
}

/* Logout link — slightly muted with a divider above. */
body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 10px !important;
    padding-top: 10px !important;
    border-top: 1px solid rgba(27, 27, 47, 0.08);
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout > a {
    color: var(--ml-text-muted);
}

body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout > a:hover {
    color: var(--ml-sale) !important;
    background: rgba(198, 40, 40, 0.06);
}

/* Content card. */
body.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    padding: 32px 36px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    color: var(--ml-text);
    font-family: var(--ml-font-body);
    line-height: 1.7;
    font-size: 15px;
    box-sizing: border-box;
    min-width: 0;
    /* WC default sets width:68%; override to fill the grid cell. */
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    /* Force explicit grid placement so it sits in column 2, row 1. */
    grid-column: 2 !important;
    grid-row: 1 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content > p {
    margin: 0 0 14px;
}

body.woocommerce-account .woocommerce-MyAccount-content > p:first-child strong {
    color: var(--ml-primary);
    font-weight: 700;
}

body.woocommerce-account .woocommerce-MyAccount-content a {
    color: var(--ml-accent-hover);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

body.woocommerce-account .woocommerce-MyAccount-content a:hover {
    color: var(--ml-primary);
    border-bottom-color: var(--ml-accent);
}

body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: var(--ml-font-heading);
    color: var(--ml-primary);
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
}

body.woocommerce-account .woocommerce-MyAccount-content h2 {
    font-size: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
}

body.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-size: 18px;
    margin-top: 24px;
}

body.woocommerce-account .woocommerce-MyAccount-content fieldset {
    border: 1px solid rgba(27, 27, 47, 0.08);
    border-radius: 12px;
    padding: 18px 22px 6px;
    margin: 24px 0 18px;
}

body.woocommerce-account .woocommerce-MyAccount-content fieldset legend {
    padding: 0 8px;
    font-family: var(--ml-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--ml-primary);
}

/* Form rows inside MyAccount edit-account / addresses. */
body.woocommerce-account .woocommerce-MyAccount-content p.form-row {
    margin: 0 0 16px !important;
    padding: 0 !important;
    width: auto !important;
}

body.woocommerce-account .woocommerce-MyAccount-content p.form-row label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
}

body.woocommerce-account .woocommerce-MyAccount-content em {
    display: block;
    margin: 6px 0 0;
    font-size: 12.5px;
    font-style: italic;
    color: var(--ml-text-muted);
    line-height: 1.45;
}

/* 2-up form rows (First/Last name, etc.). */
body.woocommerce-account form.woocommerce-EditAccountForm,
body.woocommerce-account form.woocommerce-address-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
    row-gap: 0;
}

body.woocommerce-account form.woocommerce-EditAccountForm > *,
body.woocommerce-account form.woocommerce-address-fields > *,
body.woocommerce-account form.woocommerce-EditAccountForm fieldset,
body.woocommerce-account form.woocommerce-EditAccountForm > p:not(.form-row-first):not(.form-row-last),
body.woocommerce-account form.woocommerce-address-fields > p:not(.form-row-first):not(.form-row-last) {
    grid-column: 1 / -1;
}

body.woocommerce-account form.woocommerce-EditAccountForm p.form-row-first,
body.woocommerce-account form.woocommerce-address-fields p.form-row-first {
    grid-column: 1;
}

body.woocommerce-account form.woocommerce-EditAccountForm p.form-row-last,
body.woocommerce-account form.woocommerce-address-fields p.form-row-last {
    grid-column: 2;
}

/* ---------------------------------------------
   ORDERS table / Empty states / Notices
   --------------------------------------------- */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
    background: rgba(27, 27, 47, 0.04) !important;
    color: var(--ml-text) !important;
    border: 1px solid rgba(27, 27, 47, 0.08) !important;
    border-radius: 12px !important;
    padding: 18px 22px !important;
    font-size: 14.5px;
    line-height: 1.55;
    margin: 0 0 18px !important;
    list-style: none !important;
    box-shadow: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before {
    color: var(--ml-accent-hover) !important;
}

/* Anchor-tag buttons inside notices ("Browse products", "Make a purchase"). */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info a.button,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message a.button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 0 0 14px !important;
    padding: 0 22px !important;
    height: 42px;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(27, 27, 47, 0.16);
    transition: transform 0.2s ease, background 0.2s ease;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info a.button:hover,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message a.button:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-1px);
}

/* Orders / downloads tables. */
body.woocommerce-account table.woocommerce-orders-table,
body.woocommerce-account table.account-orders-table,
body.woocommerce-account table.woocommerce-table--order-downloads,
body.woocommerce-account table.shop_table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0;
    border: 0 !important;
    margin: 0 0 18px !important;
    font-family: var(--ml-font-body);
}

body.woocommerce-account table.woocommerce-orders-table th,
body.woocommerce-account table.account-orders-table th,
body.woocommerce-account table.shop_table th {
    background: rgba(27, 27, 47, 0.035) !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ml-text-muted) !important;
    padding: 14px 16px !important;
    border: 0 !important;
    text-align: left;
}

body.woocommerce-account table.woocommerce-orders-table th:first-child,
body.woocommerce-account table.shop_table th:first-child {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}

body.woocommerce-account table.woocommerce-orders-table th:last-child,
body.woocommerce-account table.shop_table th:last-child {
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}

body.woocommerce-account table.woocommerce-orders-table td,
body.woocommerce-account table.account-orders-table td,
body.woocommerce-account table.shop_table td {
    padding: 16px 16px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.06) !important;
    font-size: 14px;
    color: var(--ml-text);
    background: transparent !important;
    vertical-align: middle;
}

body.woocommerce-account table.woocommerce-orders-table tbody tr:last-child td,
body.woocommerce-account table.shop_table tbody tr:last-child td {
    border-bottom: 0 !important;
}

body.woocommerce-account table.woocommerce-orders-table tbody tr:hover td {
    background: rgba(201, 169, 110, 0.04) !important;
}

body.woocommerce-account table.woocommerce-orders-table .order-status,
body.woocommerce-account .order-status {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: rgba(27, 27, 47, 0.06);
    color: var(--ml-primary);
}

body.woocommerce-account table.woocommerce-orders-table .order-status.processing { background: rgba(46, 125, 50, 0.12); color: #1e5e22; }
body.woocommerce-account table.woocommerce-orders-table .order-status.completed { background: rgba(46, 125, 50, 0.16); color: #155018; }
body.woocommerce-account table.woocommerce-orders-table .order-status.on-hold { background: rgba(245, 127, 23, 0.12); color: #8b4d00; }
body.woocommerce-account table.woocommerce-orders-table .order-status.cancelled,
body.woocommerce-account table.woocommerce-orders-table .order-status.failed,
body.woocommerce-account table.woocommerce-orders-table .order-status.refunded { background: rgba(198, 40, 40, 0.12); color: #842b2b; }

/* Action buttons inside the orders row (View / Pay / Cancel). */
body.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a.button,
body.woocommerce-account table.shop_table .woocommerce-orders-table__cell-order-actions a.button {
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 16px !important;
    margin: 0 4px 0 0 !important;
    background: transparent !important;
    color: var(--ml-primary) !important;
    border: 1.5px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: all 0.2s ease;
}

body.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a.button:hover,
body.woocommerce-account table.shop_table .woocommerce-orders-table__cell-order-actions a.button:hover {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border-color: var(--ml-primary) !important;
    transform: none !important;
}

/* Pagination. */
body.woocommerce-account .woocommerce-pagination ul {
    display: inline-flex;
    gap: 6px;
    list-style: none;
    margin: 18px 0 0 !important;
    padding: 0;
    border: 0 !important;
}

body.woocommerce-account .woocommerce-pagination ul li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-account .woocommerce-pagination ul li a,
body.woocommerce-account .woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid rgba(27, 27, 47, 0.12);
    border-radius: 10px;
    background: var(--ml-white);
    color: var(--ml-text);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.2s ease;
}

body.woocommerce-account .woocommerce-pagination ul li a:hover {
    border-color: var(--ml-accent);
    background: rgba(201, 169, 110, 0.05);
}

body.woocommerce-account .woocommerce-pagination ul li span.current {
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border-color: var(--ml-primary) !important;
}

/* ---------------------------------------------
   ADDRESSES — Billing + Shipping cards
   --------------------------------------------- */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 24px;
    row-gap: 24px;
    margin: 18px 0 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-1,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-2,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 24px !important;
    background: rgba(27, 27, 47, 0.025);
    border: 1px solid rgba(27, 27, 47, 0.08);
    border-radius: 14px;
    box-sizing: border-box;
}

/* Force explicit grid placement for billing + shipping cards. */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content header.woocommerce-Address-title.title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 14px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid rgba(27, 27, 47, 0.08);
}

body.woocommerce-account .woocommerce-MyAccount-content header.woocommerce-Address-title.title h2,
body.woocommerce-account .woocommerce-MyAccount-content header.woocommerce-Address-title.title h3 {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font-family: var(--ml-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--ml-primary);
    line-height: 1.25;
    flex: 1 1 auto;
    min-width: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content header.woocommerce-Address-title.title a.edit {
    margin: 0 !important;
    padding: 6px 14px !important;
    border: 1.5px solid rgba(27, 27, 47, 0.18);
    border-radius: 999px;
    font-family: var(--ml-font-accent);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--ml-primary);
    background: var(--ml-white);
    text-decoration: none !important;
    white-space: nowrap;
    flex: 0 0 auto;
    transition: all 0.2s ease;
}

body.woocommerce-account .woocommerce-MyAccount-content header.woocommerce-Address-title.title a.edit:hover {
    background: var(--ml-primary);
    color: var(--ml-white);
    border-color: var(--ml-primary);
}

body.woocommerce-account .woocommerce-MyAccount-content address {
    margin: 0;
    padding: 0;
    font-style: normal;
    font-size: 14px;
    line-height: 1.7;
    color: var(--ml-text);
}

/* The "You have not set up..." line for missing addresses. */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address > p {
    margin: 0;
    color: var(--ml-text-muted);
    font-size: 14px;
}

/* ---------------------------------------------
   Responsive
   --------------------------------------------- */
@media (max-width: 1024px) {
    /* Stack login + register cards. */
    body.woocommerce-account #customer_login.u-columns.col2-set,
    body.woocommerce-account #customer_login.col2-set {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-account #customer_login .u-column1,
    body.woocommerce-account #customer_login .u-column2,
    body.woocommerce-account #customer_login .col-1,
    body.woocommerce-account #customer_login .col-2 {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    /* Logged-in: convert nav into a horizontally-scrolling pill bar. */
    body.woocommerce-account.logged-in .entry-content > .woocommerce,
    body.woocommerce-account .entry-content > .woocommerce:has(nav.woocommerce-MyAccount-navigation) {
        grid-template-columns: 1fr !important;
        row-gap: 18px;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation {
        position: static;
        padding: 8px;
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation ul {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 6px;
        padding: 4px;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li {
        flex: 0 0 auto;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        scroll-snap-align: start;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
        margin: 0 !important;
        padding: 0 !important;
        border-top: 0 !important;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a {
        padding: 10px 14px !important;
        white-space: nowrap;
    }

    body.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a:hover {
        padding-left: 14px !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    body.woocommerce-account h1.entry-title.main_title {
        font-size: 32px;
    }

    body.woocommerce-account #customer_login .u-column1,
    body.woocommerce-account #customer_login .u-column2,
    body.woocommerce-account #customer_login .col-1,
    body.woocommerce-account #customer_login .col-2 {
        padding: 22px 20px !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        padding: 22px 20px;
    }

    body.woocommerce-account form.woocommerce-EditAccountForm,
    body.woocommerce-account form.woocommerce-address-fields {
        grid-template-columns: 1fr;
    }

    body.woocommerce-account form.woocommerce-EditAccountForm p.form-row-first,
    body.woocommerce-account form.woocommerce-EditAccountForm p.form-row-last,
    body.woocommerce-account form.woocommerce-address-fields p.form-row-first,
    body.woocommerce-account form.woocommerce-address-fields p.form-row-last {
        grid-column: 1;
    }

    body.woocommerce-account form.woocommerce-form-login p.form-row:has(button[name="login"]) {
        flex-direction: column;
        align-items: stretch;
    }

    body.woocommerce-account form.woocommerce-form-login button.woocommerce-form-login__submit,
    body.woocommerce-account form.woocommerce-form-register button.woocommerce-form-register__submit {
        width: 100%;
    }
}

@media (max-width: 480px) {
    body.woocommerce-account h1.entry-title.main_title {
        font-size: 28px;
    }
}

/* ============================================
   CHECKOUT — Logged-out login block
   --------------------------------------------
   When a logged-out user visits /checkout/ with
   guest checkout disabled, WooCommerce renders:

     <div class="woocommerce">
       <div class="woocommerce-form-login-toggle">
         <div class="woocommerce-info">
           Returning customer?
           <a class="showlogin">Click here to login</a>
         </div>
       </div>
       <form class="woocommerce-form-login login">
         ...intro p, username/password rows,
         remember me + Login button,
         "Lost your password?" link...
       </form>
       <div class="woocommerce-notices-wrapper"></div>
       You must be logged in to checkout.   ← stranded text node
     </div>

   These rules polish all three blocks. Note that
   the trailing "You must be logged in to checkout."
   is a stranded text node we cannot wrap from CSS,
   so we style it via inherited styles on `.woocommerce`.
   ============================================ */

/* Polish the "Returning customer?" toggle notice — promote it to a
   hero CTA-style banner with a left accent bar and prominent link. */
body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: linear-gradient(135deg, rgba(201, 169, 110, 0.10), rgba(201, 169, 110, 0.04)) !important;
    border: 1px solid rgba(201, 169, 110, 0.35) !important;
    border-left: 4px solid var(--ml-accent) !important;
    color: var(--ml-text) !important;
    border-radius: 12px !important;
    padding: 16px 22px !important;
    margin: 0 0 18px !important;
    font-family: var(--ml-font-body);
    font-size: 14.5px !important;
    line-height: 1.5;
    box-shadow: 0 2px 8px rgba(201, 169, 110, 0.08);
}

body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info::before {
    content: none !important;
}

body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info > a.showlogin,
body.woocommerce-checkout a.showlogin {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    padding: 8px 18px;
    background: var(--ml-primary);
    color: var(--ml-white) !important;
    border-radius: 999px;
    font-family: var(--ml-font-accent);
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(27, 27, 47, 0.18);
    transition: transform 0.2s ease, background 0.2s ease;
}

body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info > a.showlogin:hover,
body.woocommerce-checkout a.showlogin:hover {
    background: var(--ml-accent-hover);
    color: var(--ml-white) !important;
    transform: translateY(-1px);
    text-decoration: none !important;
}

/* The login form card itself (when shown directly under the toggle, NOT
   inside the main `form.checkout`). Polishes the inner content beyond
   the existing card wrapper rules. */
body.woocommerce-checkout .woocommerce > form.woocommerce-form-login.login {
    background: var(--ml-white) !important;
    border: 1px solid rgba(27, 27, 47, 0.06) !important;
    border-radius: 16px !important;
    padding: 32px 36px !important;
    margin: 0 0 18px !important;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
}

/* Intro paragraph — emphasised, with a left accent bar acting as a
   visual heading replacement (translation-safe, no synthetic content). */
body.woocommerce-checkout form.woocommerce-form-login.login > p:first-of-type {
    position: relative;
    margin: 0 0 24px !important;
    padding: 4px 0 4px 16px !important;
    border-left: 3px solid var(--ml-accent);
    font-family: var(--ml-font-body);
    font-size: 14.5px;
    color: var(--ml-text);
    line-height: 1.55;
    grid-column: 1 / -1;
}

/* Form rows (Username | Password) — already a 2-up grid via the existing
   checkout rules, but enforce here in case order changes. */
body.woocommerce-checkout form.woocommerce-form-login.login {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 22px;
    row-gap: 6px;
}

body.woocommerce-checkout form.woocommerce-form-login.login > p:first-of-type,
body.woocommerce-checkout form.woocommerce-form-login.login > .clear,
body.woocommerce-checkout form.woocommerce-form-login.login > p.lost_password,
body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row:not(.form-row-first):not(.form-row-last) {
    grid-column: 1 / -1;
}

body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row.form-row-first {
    grid-column: 1 !important;
    width: auto !important;
    float: none !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row.form-row-last {
    grid-column: 2 !important;
    width: auto !important;
    float: none !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

body.woocommerce-checkout form.woocommerce-form-login.login > .clear {
    display: none;
}

/* Labels. */
body.woocommerce-checkout form.woocommerce-form-login.login p.form-row label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
    line-height: 1.4;
}

body.woocommerce-checkout form.woocommerce-form-login.login p.form-row label .required {
    color: var(--ml-sale);
    font-weight: 700;
    text-decoration: none;
    margin-left: 2px;
}

/* Password show/hide eye icon. */
body.woocommerce-checkout form.woocommerce-form-login.login span.password-input {
    display: block;
    position: relative;
    width: 100%;
}

body.woocommerce-checkout form.woocommerce-form-login.login span.password-input input.input-text {
    padding-right: 48px !important;
}

body.woocommerce-checkout form.woocommerce-form-login.login button.show-password-input {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    color: var(--ml-text-muted);
    transition: background 0.2s ease, color 0.2s ease;
}

body.woocommerce-checkout form.woocommerce-form-login.login button.show-password-input:hover {
    background: rgba(27, 27, 47, 0.05);
    color: var(--ml-primary);
}

/* Remember me + Login button row. */
body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row:has(.woocommerce-form-login__rememberme),
body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row:has(button[name="login"]) {
    display: flex !important;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    width: auto !important;
}

body.woocommerce-checkout form.woocommerce-form-login.login label.woocommerce-form-login__rememberme {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    font-size: 14px;
    font-weight: 500;
    color: var(--ml-text);
    cursor: pointer;
}

body.woocommerce-checkout form.woocommerce-form-login.login input.woocommerce-form__input-checkbox {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ml-primary);
    cursor: pointer;
}

/* Login button — brand pill primary. */
body.woocommerce-checkout form.woocommerce-form-login.login button.woocommerce-form-login__submit,
body.woocommerce-checkout form.woocommerce-form-login.login button[name="login"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 50px !important;
    min-width: 160px;
    padding: 0 32px !important;
    margin: 0 !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(27, 27, 47, 0.16);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

body.woocommerce-checkout form.woocommerce-form-login.login button.woocommerce-form-login__submit:hover,
body.woocommerce-checkout form.woocommerce-form-login.login button[name="login"]:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(27, 27, 47, 0.22);
}

/* "Lost your password?" link. */
body.woocommerce-checkout form.woocommerce-form-login.login p.lost_password {
    margin: 18px 0 0 !important;
    padding: 0 !important;
    font-size: 13.5px;
}

body.woocommerce-checkout form.woocommerce-form-login.login p.lost_password a {
    color: var(--ml-accent-hover) !important;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed transparent;
    transition: border-color 0.2s ease, color 0.2s ease;
}

body.woocommerce-checkout form.woocommerce-form-login.login p.lost_password a:hover {
    color: var(--ml-primary) !important;
    border-bottom-color: var(--ml-accent);
}

/* The trailing stranded text "You must be logged in to checkout." sits as
   a raw text node directly inside `.woocommerce` (no wrapping element),
   so we style it through inherited styles on the parent. We also use
   `:has()` to detect this guest-checkout state and add a visual decoration
   via the empty `.woocommerce-notices-wrapper` that immediately precedes
   the text node. */
body.woocommerce-checkout .woocommerce:has(> form.woocommerce-form-login.login) {
    font-family: var(--ml-font-body);
    font-size: 14px;
    color: var(--ml-text-muted);
    text-align: center;
    line-height: 1.6;
}

/* Reset alignment for the children we DO style explicitly. */
body.woocommerce-checkout .woocommerce:has(> form.woocommerce-form-login.login) > .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce:has(> form.woocommerce-form-login.login) > form.woocommerce-form-login.login,
body.woocommerce-checkout .woocommerce:has(> form.woocommerce-form-login.login) > .woocommerce-notices-wrapper {
    text-align: left;
    color: var(--ml-text);
    font-size: 1rem;
    line-height: 1.6;
}

/* Use the empty trailing `.woocommerce-notices-wrapper` purely as a clean
   dashed divider line above the stranded "You must be logged in to checkout."
   text. The icon was overlapping the stranded text node — keeping this as a
   simple horizontal rule with breathing space makes the hint read as a
   muted caption underneath the form card. */
body.woocommerce-checkout .woocommerce:has(> form.woocommerce-form-login.login) > .woocommerce-notices-wrapper:last-of-type {
    display: block;
    margin: 16px auto 14px;
    max-width: 360px;
    border-top: 1px dashed rgba(27, 27, 47, 0.18);
    height: 0;
    padding: 0;
}

/* ---------------------------------------------
   Responsive — checkout login block
   --------------------------------------------- */
@media (max-width: 768px) {
    body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    body.woocommerce-checkout .woocommerce > .woocommerce-form-login-toggle .woocommerce-info > a.showlogin {
        margin-left: 0;
    }

    body.woocommerce-checkout form.woocommerce-form-login.login {
        grid-template-columns: 1fr !important;
        column-gap: 0;
        padding: 24px 22px !important;
    }

    body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row.form-row-first,
    body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row.form-row-last {
        grid-column: 1 !important;
    }

    body.woocommerce-checkout form.woocommerce-form-login.login > p.form-row:has(button[name="login"]) {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    body.woocommerce-checkout form.woocommerce-form-login.login button.woocommerce-form-login__submit {
        width: 100%;
    }
}

/* ============================================
   LOST PASSWORD — /my-account/lost-password/
   --------------------------------------------
   Two states share `form.woocommerce-ResetPassword.lost_reset_password`:
   1) Step 1 — Request reset link (intro p +
      username/email field + "Reset password" button).
   2) Step 2 — Set new password (when followed
      from the email link). Same form, plus
      `<ul class="woocommerce-error">` notice
      when the key has expired/been used.

   We wrap the form in a centered brand card and
   give the existing `<p>` rows a single-column
   layout (WC default floats `form-row-first` to
   47% width which leaves the input feeling tiny
   on a wide page).
   ============================================ */

/* Lost-password form card. */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password {
    max-width: 520px;
    margin: 8px auto 0 !important;
    padding: 36px 36px 32px !important;
    background: var(--ml-white);
    border: 1px solid rgba(27, 27, 47, 0.06);
    border-radius: 16px;
    box-shadow: 0 4px 18px rgba(27, 27, 47, 0.05);
    box-sizing: border-box;
    display: block;
}

body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password::after {
    content: "";
    display: block;
    clear: both;
}

/* Intro paragraph inside the card — soft inset hint with a left accent. */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password > p:first-of-type {
    margin: 0 0 24px !important;
    padding: 12px 14px 12px 16px !important;
    background: rgba(27, 27, 47, 0.025);
    border-left: 3px solid var(--ml-accent);
    border-radius: 8px;
    color: var(--ml-text);
    font-family: var(--ml-font-body);
    font-size: 14px;
    line-height: 1.55;
}

/* Force the username/email row to be full-width inside the card
   (WC defaults float it left at ~47%). */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password p.form-row,
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password p.form-row.form-row-first,
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password p.woocommerce-form-row {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
}

body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password .clear {
    display: none;
}

/* Labels. */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password p.form-row label {
    display: block;
    margin: 0 0 6px;
    font-family: var(--ml-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--ml-text);
    line-height: 1.4;
}

body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password p.form-row label .required {
    color: var(--ml-sale);
    font-weight: 700;
    text-decoration: none;
    margin-left: 2px;
}

/* Inputs already inherit the existing `body.woocommerce-account input.input-text`
   rules, but enforce here for safety. */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password input.input-text {
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(27, 27, 47, 0.18) !important;
    border-radius: 10px !important;
    background: var(--ml-white) !important;
    font-family: var(--ml-font-body) !important;
    font-size: 14px !important;
    color: var(--ml-text) !important;
    line-height: 44px !important;
    box-sizing: border-box;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password input.input-text:focus {
    outline: none;
    border-color: var(--ml-accent) !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.18);
}

/* "Reset password" submit — full-width brand pill primary CTA. */
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password button.woocommerce-Button,
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password button[type="submit"],
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password input[type="submit"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 50px !important;
    padding: 0 28px !important;
    margin: 4px 0 0 !important;
    background: var(--ml-primary) !important;
    color: var(--ml-white) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--ml-font-accent) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(27, 27, 47, 0.16);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password button.woocommerce-Button:hover,
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password button[type="submit"]:hover,
body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password input[type="submit"]:hover {
    background: var(--ml-accent-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(27, 27, 47, 0.22);
}

/* Notice rows above the form (Step 2 — invalid key error, success on submit). */
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-error,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-message,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-info {
    max-width: 520px;
    margin: 0 auto 16px !important;
    padding: 14px 18px !important;
    border-radius: 12px !important;
    font-family: var(--ml-font-body);
    font-size: 14px;
    line-height: 1.5;
    list-style: none !important;
    box-shadow: 0 2px 8px rgba(27, 27, 47, 0.04);
}

body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-error {
    background: rgba(198, 40, 40, 0.06) !important;
    border: 1px solid rgba(198, 40, 40, 0.25) !important;
    border-left: 4px solid var(--ml-sale) !important;
    color: #842b2b !important;
}

body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-message {
    background: rgba(46, 125, 50, 0.06) !important;
    border: 1px solid rgba(46, 125, 50, 0.25) !important;
    border-left: 4px solid #2e7d32 !important;
    color: #1e5e22 !important;
}

body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-info {
    background: rgba(201, 169, 110, 0.08) !important;
    border: 1px solid rgba(201, 169, 110, 0.35) !important;
    border-left: 4px solid var(--ml-accent) !important;
    color: var(--ml-text) !important;
}

body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-error li,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-message li,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-info li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-error::before,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-message::before,
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-info::before {
    content: none !important;
}

/* ---------------------------------------------
   Responsive
   --------------------------------------------- */
@media (max-width: 600px) {
    body.woocommerce-account form.woocommerce-ResetPassword.lost_reset_password {
        padding: 26px 22px 24px !important;
        margin: 8px 16px 0 !important;
    }

    body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-error,
    body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-message,
    body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper > .woocommerce-info {
        margin: 0 16px 14px !important;
    }
}
