/* ════════════════════════════════════════════════════════════════
   NOVUS — Wishlist Page CSS
   File: assets/css/wishlist.css
   Plugin: YITH WooCommerce Wishlist

   Sections:
    1.  Page Wrapper + Hero
    2.  Breadcrumb
    3.  Layout (Table + Sidebar Grid)
    4.  View Toggle Toolbar
    5.  Wishlist Table (YITH)
    6.  Remove Button
    7.  Thumbnail
    8.  Product Name
    9.  Price
   10.  Stock Status
   11.  Add to Cart Column
   12.  Sidebar Summary Panel
   13.  Grid View
   14.  YITH Icon-Only Button
   15.  Empty Wishlist State
   16.  Toast Notification
   17.  Suppress Default YITH Chrome
   18.  Touch Devices
   19.  Responsive (1024 → 480px)
   20.  Empty Row Override (must be last)
   ════════════════════════════════════════════════════════════════ */



/* ─────────────────────────────────────────────────────────────────
   1. PAGE WRAPPER + HERO
───────────────────────────────────────────────────────────────── */
body.woocommerce .novus-wishlist-page,
.novus-wishlist-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3rem 2rem 5rem;
}

.wishlist-hero {
    text-align: center;
    padding: 80px 24px 60px;
    background: var(--plum);
    border-bottom: 1px solid rgba(184,151,90,0.2);
}
.wishlist-hero h1 {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 300;
    color: var(--cream);
    letter-spacing: 0.06em;
    margin: 0 0 12px;
}
.wishlist-hero p {
    /* JS rewrites this text dynamically via novusSyncWishlistSidebar() */
    color: rgba(253,252,250,0.6);
    margin-top: 0.8rem;
    font-size: 0.9rem;
}



/* ─────────────────────────────────────────────────────────────────
   2. BREADCRUMB
───────────────────────────────────────────────────────────────── */
.wl-breadcrumb {
    padding: 1rem 4rem;
    background: var(--cream);
    border-bottom: 1px solid rgba(107,33,168,0.08);
    font-family: var(--font-sans);
    font-size: 0.68rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--muted);
}
.wl-breadcrumb a             { color: var(--muted); text-decoration: none; transition: color 0.2s; }
.wl-breadcrumb a:hover       { color: var(--plum); }



/* ─────────────────────────────────────────────────────────────────
   3. LAYOUT — Table left, Sidebar right
   FIX: min-width:0 on .wishlist-main prevents grid blowout
───────────────────────────────────────────────────────────────── */
.novus-wishlist-page .wishlist-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 2.5rem;
    align-items: start;
}
.novus-wishlist-page .wishlist-layout .wishlist-main {
    grid-column: 1;
    min-width: 0;
    overflow-x: auto;
}
.novus-wishlist-page .wishlist-layout .wishlist-sidebar {
    grid-column: 2;
    position: sticky;
    top: 6.5rem;
}

/* FIX — YITH form/table wrapper needs scroll context on mobile */
.wishlist-main .yith_wcwl_wishlist,
.wishlist-main form {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: block !important;
}



/* ─────────────────────────────────────────────────────────────────
   4. VIEW TOGGLE TOOLBAR
   FIX: explicit display:flex + z-index prevents theme override hiding it
───────────────────────────────────────────────────────────────── */
.wl-toolbar {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.2rem;
    gap: 1rem;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.wl-sort {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--font-sans);
    font-size: .68rem;
    letter-spacing: .1em;
    color: var(--muted);
}
.wl-sort select {
    padding: .4rem .8rem;
    border: 1px solid #EDE8F5;
    font-family: var(--font-sans);
    font-size: .72rem;
    color: var(--charcoal);
    background: white;
    cursor: pointer;
    outline: none;
    transition: border-color .2s;
}
.wl-sort select:focus         { border-color: var(--lilac); }
.wl-view-btns                 { display: flex; gap: .3rem; }
.wl-view-btn {
    width: 34px; height: 34px;
    border: 1px solid #EDE8F5;
    background: white;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--muted);
    transition: all .2s;
}
.wl-view-btn:hover,
.wl-view-btn.active {
    border-color: var(--violet);
    color: var(--violet);
    background: var(--pale-lavender);
}
.wl-view-btn svg {
    width: 16px; height: 16px;
    stroke: currentColor; fill: none;
    stroke-width: 1.5; stroke-linecap: round;
}



/* ─────────────────────────────────────────────────────────────────
   5. WISHLIST TABLE — table.wishlist_table (YITH)
   FIX: min-width:480px prevents collapse, enables horizontal scroll
───────────────────────────────────────────────────────────────── */
.woocommerce table.wishlist_table,
table.wishlist_table {
    width: 100% !important;
    min-width: 480px !important;
    border-collapse: collapse !important;
    background: white !important;
    border: 1px solid #EDE8F5 !important;
    overflow: hidden !important;
    box-shadow: none !important;
}

/* Table head */
.woocommerce table.wishlist_table thead th,
table.wishlist_table thead th {
    padding: .9rem 1.2rem !important;
    font-family: var(--font-sans) !important;
    font-size: .6rem !important;
    letter-spacing: .24em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    text-align: left !important;
    background: rgba(243,232,255,.3) !important;
    border-bottom: 2px solid #EDE8F5 !important;
}
table.wishlist_table thead th.product-thumbnail    { width: 90px !important; }
table.wishlist_table thead th.product-remove       { width: 44px !important; }
table.wishlist_table thead th.product-price,
table.wishlist_table thead th.product-stock-status { text-align: right !important; }

/* Table body rows */
.woocommerce table.wishlist_table tbody tr,
table.wishlist_table tbody tr {
    border-bottom: 1px solid #EDE8F5 !important;
    transition: background .2s !important;
}
.woocommerce table.wishlist_table tbody tr:last-child,
table.wishlist_table tbody tr:last-child           { border-bottom: none !important; }
.woocommerce table.wishlist_table tbody tr:hover,
table.wishlist_table tbody tr:hover                { background: rgba(243,232,255,.15) !important; }
.woocommerce table.wishlist_table tbody td,
table.wishlist_table tbody td {
    padding: 1.2rem !important;
    vertical-align: middle !important;
    border-top: none !important;
}

/* YITH info box rendered outside table on some plugin versions */
.woocommerce-info.woocommerce-wishlist-message {
    width: 100% !important;
    text-align: center !important;
    padding: 4rem 2rem !important;
    background: white !important;
    border: 1px solid #EDE8F5 !important;
    border-left: 4px solid var(--violet) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    color: var(--muted) !important;
    letter-spacing: 0.08em !important;
    box-sizing: border-box !important;
}



/* ─────────────────────────────────────────────────────────────────
   6. REMOVE BUTTON
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-remove {
    width: 44px !important;
    text-align: center !important;
    padding: 0 .5rem !important;
}
table.wishlist_table td.product-remove a,
table.wishlist_table td.product-remove .remove_from_wishlist {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important; height: 28px !important;
    border-radius: 50% !important;
    border: 1px solid #EDE8F5 !important;
    background: white !important;
    color: var(--muted) !important;
    text-decoration: none !important;
    font-size: 1rem !important;
    transition: all .25s !important;
    margin: auto !important;
    cursor: pointer !important;
}
table.wishlist_table td.product-remove a:hover,
table.wishlist_table td.product-remove .remove_from_wishlist:hover {
    background: #fef2f2 !important;
    border-color: #fca5a5 !important;
    color: #ef4444 !important;
    transform: rotate(90deg) !important;
}



/* ─────────────────────────────────────────────────────────────────
   7. THUMBNAIL
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-thumbnail {
    width: 90px !important;
    padding: 1rem 1rem 1rem 1.2rem !important;
}
table.wishlist_table td.product-thumbnail a {
    display: block !important;
    width: 72px !important; height: 88px !important;
    overflow: hidden !important;
    text-decoration: none !important;
}
table.wishlist_table td.product-thumbnail img {
    width: 100% !important; height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform .55s ease !important;
    margin: 0 !important;
}
table.wishlist_table td.product-thumbnail a:hover img { transform: scale(1.07) !important; }



/* ─────────────────────────────────────────────────────────────────
   8. PRODUCT NAME
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-name             { padding-left: .8rem !important; }
table.wishlist_table td.product-name a {
    font-family: var(--font-serif) !important;
    font-size: 1.05rem !important;
    color: var(--charcoal) !important;
    text-decoration: none !important;
    display: block !important;
    margin-bottom: .25rem !important;
    letter-spacing: .02em !important;
    transition: color .2s !important;
}
table.wishlist_table td.product-name a:hover     { color: var(--violet) !important; }
table.wishlist_table td.product-name .wishlist-item-date-added {
    font-family: var(--font-sans) !important;
    font-size: .65rem !important;
    color: var(--muted) !important;
    letter-spacing: .04em !important;
    display: flex !important;
    align-items: center !important;
    gap: .3rem !important;
    margin-top: .3rem !important;
}



/* ─────────────────────────────────────────────────────────────────
   9. PRICE
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-price {
    text-align: right !important;
    white-space: nowrap !important;
}
table.wishlist_table td.product-price .woocommerce-Price-amount {
    font-family: var(--font-serif) !important;
    font-size: 1.05rem !important;
    color: var(--plum) !important;
}
table.wishlist_table td.product-price del  { color: var(--muted) !important; font-size: .82rem !important; margin-right: .25em !important; }
table.wishlist_table td.product-price ins  { text-decoration: none !important; }



/* ─────────────────────────────────────────────────────────────────
   10. STOCK STATUS
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-stock-status      { text-align: right !important; }
table.wishlist_table td.product-stock-status .wishlist-in-stock {
    display: inline-flex; align-items: center; gap: .35rem;
    font-family: var(--font-sans) !important;
    font-size: .7rem !important;
    color: #15803d !important;
    letter-spacing: .05em !important;
}
table.wishlist_table td.product-stock-status .wishlist-in-stock::before {
    content: ''; width: 7px; height: 7px;
    border-radius: 50%; background: #22c55e;
}
table.wishlist_table td.product-stock-status .wishlist-out-of-stock {
    display: inline-flex; align-items: center; gap: .35rem;
    font-family: var(--font-sans) !important;
    font-size: .7rem !important;
    color: #b91c1c !important;
    letter-spacing: .05em !important;
}
table.wishlist_table td.product-stock-status .wishlist-out-of-stock::before {
    content: ''; width: 7px; height: 7px;
    border-radius: 50%; background: #ef4444;
}



/* ─────────────────────────────────────────────────────────────────
   11. ADD TO CART COLUMN
───────────────────────────────────────────────────────────────── */
table.wishlist_table td.product-add-to-cart {
    text-align: right !important;
    white-space: nowrap !important;
}
table.wishlist_table td.product-add-to-cart a.button,
table.wishlist_table td.product-add-to-cart .yith-wcwl-add-to-cart a,
table.wishlist_table td.product-add-to-cart .add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    gap: .45rem !important;
    padding: .62rem 1.3rem !important;
    background: var(--plum) !important;
    color: white !important;
    text-decoration: none !important;
    font-family: var(--font-sans) !important;
    font-size: .68rem !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: none !important;
    cursor: pointer !important;
    transition: background .3s ease !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    transform: none !important;
}
table.wishlist_table td.product-add-to-cart a.button:hover,
table.wishlist_table td.product-add-to-cart .yith-wcwl-add-to-cart a:hover,
table.wishlist_table td.product-add-to-cart .add_to_cart_button:hover {
    background: var(--violet) !important;
    box-shadow: none !important;
    transform: none !important;
    color: white !important;
}
table.wishlist_table td.product-add-to-cart a.button.added,
table.wishlist_table td.product-add-to-cart .add_to_cart_button.added {
    background: #15803d !important;
}
table.wishlist_table td.product-add-to-cart .button.disabled {
    background: #EDE8F5 !important;
    color: var(--muted) !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}



/* ─────────────────────────────────────────────────────────────────
   12. SIDEBAR SUMMARY PANEL
   FIX: #wlTotalValue — JS writes live total; .zero class when empty
   FIX: .wl-is-empty added by JS dims "Add All" + shows notice
───────────────────────────────────────────────────────────────── */
.wishlist-sidebar .wl-summary {
    background: white;
    border: 1px solid #EDE8F5;
    overflow: hidden;
}
.wl-summary-head {
    padding: 1.2rem 1.5rem 1rem;
    border-bottom: 1px solid #EDE8F5;
    display: flex; align-items: center; justify-content: space-between;
}
.wl-summary-head h3 {
    font-family: var(--font-display);
    font-size: 1.05rem; font-weight: 400;
    color: var(--plum); letter-spacing: .04em;
}
/* JS rewrites this pill text via novusSyncWishlistSidebar() */
.wl-summary-head .wl-item-cnt {
    font-family: var(--font-sans);
    font-size: .65rem; letter-spacing: .12em;
    text-transform: uppercase; color: white;
    background: var(--violet);
    padding: .2rem .6rem; border-radius: 100px;
    transition: background .2s;
}
.wl-stats {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #EDE8F5;
    display: flex; flex-direction: column; gap: .75rem;
}
.wl-stat {
    display: flex; align-items: center; justify-content: space-between;
    font-family: var(--font-sans); font-size: .78rem; color: var(--muted);
}
.wl-stat .val                 { font-family: var(--font-serif); font-size: .95rem; color: var(--charcoal); }
.wl-stat .val.total           { font-family: var(--font-display); font-size: 1.3rem; color: var(--plum); }
.wl-stat-divider              { height: 1px; background: #EDE8F5; margin: .2rem 0; }

/* Total value — JS writes live sum here */
.wl-stat .val#wlTotalValue {
    font-family: var(--font-display) !important;
    font-size: 1.15rem !important;
    color: var(--plum) !important;
}
/* .zero added by JS when wishlist is empty */
.wl-stat .val#wlTotalValue.zero {
    font-family: var(--font-sans) !important;
    font-size: 0.9rem !important;
    color: var(--muted) !important;
}

.wl-summary-actions {
    padding: 1.2rem 1.5rem;
    display: flex; flex-direction: column; gap: .7rem;
}

/* Empty state — .wl-is-empty toggled by JS */
.wishlist-sidebar.wl-is-empty .wl-item-cnt       { background: var(--muted) !important; }
.wishlist-sidebar.wl-is-empty .wl-btn-primary    { opacity: 0.45; pointer-events: none; cursor: not-allowed; }
.wl-empty-notice {
    display: none;
    padding: 0.8rem 1.5rem;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    color: var(--muted);
    letter-spacing: 0.06em;
    text-align: center;
    border-top: 1px solid #EDE8F5;
}
.wishlist-sidebar.wl-is-empty .wl-empty-notice   { display: block !important; }

/* PRIMARY BUTTON — slide-fill hover */
.wl-btn-primary {
    display: flex; align-items: center; justify-content: center;
    gap: .5rem; padding: 1rem;
    background: var(--plum); color: white;
    text-decoration: none;
    font-family: var(--font-sans);
    font-size: .72rem; letter-spacing: .2em; text-transform: uppercase;
    border-radius: 0; border: none; cursor: pointer; width: 100%;
    position: relative; overflow: hidden;
    transition: color 0.4s ease;
}
.wl-btn-primary::after {
    content: '';
    position: absolute; inset: 0;
    background: var(--violet);
    transform: translateX(-101%);
    transition: transform 0.4s ease;
    z-index: 0;
}
.wl-btn-primary:hover::after  { transform: translateX(0); }
.wl-btn-primary:hover         { color: var(--cream); }
.wl-btn-primary > *,
.wl-btn-primary span,
.wl-btn-primary svg           { position: relative; z-index: 1; }

/* SECONDARY BUTTON */
.wl-btn-secondary {
    display: flex; align-items: center; justify-content: center;
    gap: .5rem; padding: .8rem;
    border: 1px solid rgba(107,33,168,0.25);
    background: transparent; color: var(--muted);
    font-family: var(--font-sans);
    font-size: .7rem; letter-spacing: .16em; text-transform: uppercase;
    border-radius: 0; cursor: pointer;
    transition: border-color .25s, color .25s;
    text-decoration: none; width: 100%;
}
.wl-btn-secondary:hover       { border-color: var(--gold); color: var(--gold); background: transparent; }
.wl-btn-secondary svg,
.wl-btn-primary svg           { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; flex-shrink: 0; }

/* Share row */
.wl-share-row {
    padding: 1rem 1.5rem;
    border-top: 1px solid #EDE8F5;
    display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.wl-share-lbl {
    font-family: var(--font-sans);
    font-size: .62rem; letter-spacing: .16em;
    text-transform: uppercase; color: var(--muted); flex-shrink: 0;
}
.wl-share-row a {
    width: 30px; height: 30px; border-radius: 50%;
    border: 1px solid #EDE8F5; background: white;
    display: flex; align-items: center; justify-content: center;
    text-decoration: none; font-size: .72rem; color: var(--muted);
    transition: all .2s;
}
.wl-share-row a:hover         { border-color: var(--violet); color: var(--violet); background: var(--pale-lavender); }



/* ─────────────────────────────────────────────────────────────────
   13. GRID VIEW
───────────────────────────────────────────────────────────────── */
.wishlist-main.wl-grid-view table.wishlist_table { display: none !important; }
.wl-grid-container                               { display: none; }
.wishlist-main.wl-grid-view .wl-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.2rem;
}
.wl-grid-card {
    background: white;
    border: 1px solid #EDE8F5;
    overflow: hidden;
    transition: all .3s ease;
}
.wl-grid-card:hover           { border-color: var(--soft-lilac); box-shadow: 0 10px 36px rgba(107,33,168,.1); transform: translateY(-4px); }
.wl-grid-img                  { aspect-ratio: 3/4; position: relative; overflow: hidden; }
.wl-grid-img a                { display: block; width: 100%; height: 100%; }
.wl-grid-img-inner {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
    display: block;
}
.wl-grid-card:hover .wl-grid-img-inner { transform: scale(1.05); }
.wl-grid-rm {
    position: absolute; top: .6rem; right: .6rem;
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(255,255,255,.9);
    border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--muted); font-size: .85rem;
    transition: all .2s; backdrop-filter: blur(4px);
}
.wl-grid-rm:hover             { background: #fef2f2; color: #ef4444; }
.wl-grid-badge {
    position: absolute; top: .6rem; left: .6rem;
    padding: .18rem .5rem;
    font-family: var(--font-sans);
    font-size: .58rem; letter-spacing: .1em;
    text-transform: uppercase; color: white;
    background: var(--violet); pointer-events: none;
}
.wl-grid-badge.sale           { background: var(--gold); color: var(--charcoal); }
.wl-grid-info                 { padding: .9rem 1rem 1.1rem; }
.wl-grid-name {
    font-family: var(--font-serif);
    font-size: .95rem; color: var(--charcoal);
    display: block; margin-bottom: .2rem;
    text-decoration: none; transition: color .2s;
}
.wl-grid-name:hover           { color: var(--violet); }
.wl-grid-price {
    font-family: var(--font-serif);
    font-size: .9rem; color: var(--plum);
    display: block; margin-bottom: .7rem;
}
.wl-grid-price del            { color: var(--muted); font-size: .8rem; margin-right: .25em; }
.wl-grid-stock {
    display: flex; align-items: center;
    gap: .3rem; font-family: var(--font-sans);
    font-size: .65rem; margin-bottom: .6rem;
}
.wl-grid-stock.in             { color: #15803d; }
.wl-grid-stock.out            { color: #b91c1c; }
.wl-grid-stock::before        { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.wl-grid-atc {
    display: flex; align-items: center; justify-content: center;
    gap: .4rem; width: 100%; padding: .6rem;
    background: var(--plum); color: white;
    border: none; border-radius: 0;
    font-family: var(--font-sans);
    font-size: .63rem; letter-spacing: .14em;
    text-transform: uppercase; cursor: pointer;
    transition: background .3s ease; text-decoration: none;
}
.wl-grid-atc:hover            { background: var(--violet); color: white; }



/* ─────────────────────────────────────────────────────────────────
   14. YITH ICON-ONLY BUTTON (single product + related)
───────────────────────────────────────────────────────────────── */
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist    { display: inline-flex; }
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist .add_to_wishlist,
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a,
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a {
    display: flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 50%;
    background: rgba(255,255,255,.1); color: #fff;
    text-decoration: none; transition: background .2s, color .2s;
    border: 1px solid rgba(255,255,255,.2);
}
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist .add_to_wishlist:hover { background: rgba(255,255,255,.2); }
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist .yith-wcwl-icon + span,
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist span:not(.yith-wcwl-icon) { display: none !important; }
.wishlist-icon-wrap .yith-wcwl-add-to-wishlist i  { font-size: 1rem; }

.pa-wishlist .yith-wcwl-add-to-wishlist           { display: flex; }
.pa-wishlist .yith-wcwl-add-to-wishlist .add_to_wishlist,
.pa-wishlist .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a,
.pa-wishlist .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a {
    display: flex; align-items: center; justify-content: center;
    padding: .45rem .75rem; border-radius: 4px;
    background: rgba(255,255,255,.12); color: #fff;
    font-size: .72rem; text-decoration: none; letter-spacing: .08em;
    transition: background .2s;
}
.pa-wishlist .yith-wcwl-add-to-wishlist .yith-wcwl-icon + span,
.pa-wishlist .yith-wcwl-add-to-wishlist span:not(.yith-wcwl-icon) { display: none !important; }
.pa-wishlist .yith-wcwl-add-to-wishlist i         { font-size: .95rem; }



/* ─────────────────────────────────────────────────────────────────
   15. EMPTY WISHLIST STATE
───────────────────────────────────────────────────────────────── */
.wishlist-empty,
.woocommerce-info.woocommerce-wishlist-message {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
    text-align: center !important;
    padding: 5rem 2rem !important;
    background: white !important;
    border: 1px solid #EDE8F5 !important;
}
.wl-empty-icon {
    width: 90px; height: 90px; border-radius: 50%;
    background: var(--pale-lavender);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.5rem;
}
.wl-empty-icon svg            { width: 40px; height: 40px; stroke: var(--lilac); fill: none; stroke-width: 1.5; stroke-linecap: round; }
.wl-empty-title               { font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; color: var(--plum); margin-bottom: .5rem; }
.wl-empty-sub                 { font-family: var(--font-sans); font-size: .8rem; color: var(--muted); letter-spacing: .06em; margin-bottom: 2rem; max-width: 340px; }
.wl-empty-cta {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .9rem 2.2rem;
    background: var(--plum); color: white;
    text-decoration: none; font-family: var(--font-sans);
    font-size: .72rem; letter-spacing: .2em;
    text-transform: uppercase; border-radius: 0;
    transition: background .3s ease;
}
.wl-empty-cta:hover           { background: var(--violet); color: white; }



/* ─────────────────────────────────────────────────────────────────
   16. TOAST NOTIFICATION
───────────────────────────────────────────────────────────────── */
.novus-toast {
    position: fixed; bottom: 2rem; left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--plum); color: #fff;
    padding: .75rem 1.5rem; border-radius: 100px;
    font-family: var(--font-sans); font-size: .75rem; letter-spacing: .1em;
    box-shadow: 0 8px 32px rgba(45,10,78,.25);
    opacity: 0; transition: opacity .35s, transform .35s var(--ease);
    z-index: 9999; pointer-events: none; white-space: nowrap;
}
.novus-toast.is-visible       { opacity: 1; transform: translateX(-50%) translateY(0); }
.novus-toast--info            { background: var(--charcoal); }
.novus-toast--error           { background: #b91c1c; }



/* ─────────────────────────────────────────────────────────────────
   17. SUPPRESS DEFAULT YITH CHROME
───────────────────────────────────────────────────────────────── */
.wishlist-title-container,
.wishlist-title-container + hr,
.yith-wcwl-wishlist-title,
.woocommerce-MyAccount-wishlist-title,
.yith_wcwl_wishlist > h2:first-child,
.yith_wcwl_wishlist > h3:first-child { display: none !important; }
.wl-account-label,
.wishlist-header .account-label      { display: none !important; }
.yith-wcwl-share                     { display: none !important; }



/* ─────────────────────────────────────────────────────────────────
   18. TOUCH DEVICES
───────────────────────────────────────────────────────────────── */
@media (hover: none) {
    .wl-btn-primary::after     { display: none; }
    .wl-btn-primary:active     { background: var(--violet) !important; }
}



/* ══════════════════════════════════════════════════════════════════
   19. RESPONSIVE
   ══════════════════════════════════════════════════════════════════ */

/* ── ≤ 1024px ── */
@media (max-width: 1024px) {
    .novus-wishlist-page .wishlist-layout {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
    .novus-wishlist-page .wishlist-layout .wishlist-main  { grid-column: 1 !important; }
    .novus-wishlist-page .wishlist-layout .wishlist-sidebar {
        grid-column: 1 !important;
        position: static !important;
        width: 100% !important;
        max-width: 480px !important;
        margin: 0 auto !important;
    }
    .wishlist-main.wl-grid-view .wl-grid-container { grid-template-columns: repeat(2, 1fr); }
}

/* ── ≤ 768px ── */
@media (max-width: 768px) {
    .novus-wishlist-page       { padding: 2.5rem 1.5rem 4rem; }
    .wl-breadcrumb             { padding: .75rem 1.5rem; }
    .wishlist-hero             { padding: 50px 20px 40px !important; }
    .wishlist-hero h1          { font-size: clamp(1.6rem, 6vw, 2.4rem) !important; }
    table.wishlist_table td    { padding: 1rem .9rem !important; }
    table.wishlist_table td.product-thumbnail a { width: 58px !important; height: 72px !important; }
    table.wishlist_table thead th.product-stock-status,
    table.wishlist_table td.product-stock-status { display: none !important; }
    .wl-toolbar                { flex-direction: column !important; align-items: flex-start !important; gap: .6rem !important; }
    .wl-share-row              { flex-wrap: wrap !important; }
}

/* ── ≤ 640px ── */
@media (max-width: 640px) {
    table.wishlist_table thead th.product-price,
    table.wishlist_table td.product-price         { display: none !important; }
    table.wishlist_table td.product-add-to-cart a.button,
    table.wishlist_table td.product-add-to-cart .add_to_cart_button {
        padding: .55rem .9rem !important;
        font-size: .62rem !important;
        letter-spacing: .1em !important;
    }
}

/* ── ≤ 480px ── */
@media (max-width: 480px) {
    .novus-wishlist-page       { padding: 2rem 1rem 3rem; }
    .wl-breadcrumb             { padding: .6rem 1rem; }
    .novus-wishlist-page .wishlist-layout .wishlist-sidebar { max-width: 100% !important; }
    .wishlist-main.wl-grid-view .wl-grid-container {
        grid-template-columns: 1fr;
        gap: .75rem;
    }
    table.wishlist_table thead { display: none !important; }
    table.wishlist_table tbody tr {
        display: grid !important;
        grid-template-columns: 66px 1fr 38px !important;
        grid-template-areas:
            "img name rmv"
            "img price atc" !important;
        padding: 1rem !important;
        gap: .3rem 0 !important;
    }
    table.wishlist_table tbody tr td {
        padding: 0 .4rem 0 0 !important;
        border: none !important;
        display: block !important;
    }
    table.wishlist_table td.product-remove      { grid-area: rmv !important;   text-align: right !important; }
    table.wishlist_table td.product-thumbnail   { grid-area: img !important;   padding: 0 .7rem 0 0 !important; }
    table.wishlist_table td.product-name        { grid-area: name !important; }
    table.wishlist_table td.product-price       { grid-area: price !important; text-align: left !important; display: block !important; }
    table.wishlist_table td.product-add-to-cart {
        grid-area: atc !important;
        text-align: right !important;
        white-space: normal !important;
    }
    table.wishlist_table td.product-add-to-cart a.button,
    table.wishlist_table td.product-add-to-cart .add_to_cart_button {
        white-space: normal !important;
        padding: .4rem .5rem !important;
        font-size: .58rem !important;
        letter-spacing: .08em !important;
        text-align: center !important;
        line-height: 1.3 !important;
    }
    table.wishlist_table td.product-stock-status { display: none !important; }
    .wl-summary-head,
    .wl-stats                  { padding: 1rem !important; }
    .wl-summary-actions        { padding: 1rem; }
    .wl-btn-primary,
    .wl-btn-secondary          { padding: .85rem; font-size: .68rem; }
}



/* ─────────────────────────────────────────────────────────────────
   20. EMPTY ROW OVERRIDE
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MUST BE LAST — overrides the ≤480px card layout grid above.

   Problem: the 480px @media block converts ALL tbody tr to
   display:grid (card layout). This breaks the YITH empty-message
   row on every screen size because it also gets grid applied.

   Fix: :has() selector resets that specific row back to
   display:table-row so the td can span all columns and center.
───────────────────────────────────────────────────────────────── */

/* Reset the YITH empty row back to a normal table row */
table.wishlist_table tbody tr:has(td.wishlist-empty) {
    display: table-row !important;
    grid-template-columns: unset !important;
    grid-template-areas: unset !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Full-width centred empty cell
   background:white overrides YITH's inline style="background:azure" */
table.wishlist_table td.wishlist-empty {
    display: table-cell !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 5rem 2rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    color: var(--muted) !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    background: white !important;   /* ← kills YITH's azure inline style */
    border: none !important;
    white-space: normal !important;
}

/* Also fix the JS selector in novus-scripts.js Block 2 —
   change td.product-name check to detect real product rows only */

/* ── ≤ 480px — Full YITH responsive override + Novus card layout ── */
@media (max-width: 480px) {

    .novus-wishlist-page       { padding: 2rem 1rem 3rem; }
    .wl-breadcrumb             { padding: .6rem 1rem; }
 /* ── STEP 1: Kill ALL YITH responsive data-title labels ──── */
    .novus-wishlist-page table.wishlist_table.responsive td::before,
    .woocommerce table.shop_table.responsive td::before,
    .woocommerce table.wishlist_table td::before {
        display: none !important;
        content: none !important;
    }

    /* ── STEP 2: Kill YITH's own .responsive stacking ──────────
       YITH sets tbody td { display:block } for responsive.
       We reset the whole table first, then rebuild with grid. */
    .novus-wishlist-page .woocommerce table.wishlist_table.responsive,
    .novus-wishlist-page table.wishlist_table.responsive,
    .novus-wishlist-page table.wishlist_table {
        display: table !important;
        width: 100% !important;
        border-collapse: collapse !important;
    }

    .novus-wishlist-page table.wishlist_table.responsive thead,
    .novus-wishlist-page table.wishlist_table thead {
        display: none !important;
    }

    .novus-wishlist-page table.wishlist_table.responsive tbody,
    .novus-wishlist-page table.wishlist_table tbody {
        display: block !important;
        width: 100% !important;
    }

    /* ── STEP 3: Each row = Novus card ─────────────────────────
       Grid layout:
       [ img 72px | content 1fr | × 32px ]
       Row 1: img | name         | ×
       Row 2: img | price        | ·
       Row 3: img | stock        | ·
       Row 4: img | add-to-cart  | · */
    .novus-wishlist-page table.wishlist_table.responsive tbody tr,
    .novus-wishlist-page table.wishlist_table tbody tr {
        display: grid !important;
        grid-template-columns: 72px 1fr 32px !important;
        grid-template-areas:
            "img name rmv"
            "img price price"
            "img stock stock"
            "img atc   atc" !important;
        grid-template-rows: auto auto auto auto !important;
        padding: 1rem !important;
        border-bottom: 1px solid #EDE8F5 !important;
        background: white !important;
        gap: 0 !important;
        align-items: start !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .novus-wishlist-page table.wishlist_table tbody tr:last-child {
        border-bottom: none !important;
    }

    /* ── STEP 4: Reset all td — YITH sets display:block on them ── */
    .novus-wishlist-page table.wishlist_table.responsive tbody td,
    .novus-wishlist-page table.wishlist_table tbody td {
        display: block !important;
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
        text-align: left !important;
        width: auto !important;
        /* Kill YITH's padding-top it adds for data-title labels */
        padding-top: 0 !important;
    }

    /* ── STEP 5: Assign each td to its grid area ── */

    /* Thumbnail */
    .novus-wishlist-page table.wishlist_table td.product-thumbnail {
        grid-area: img !important;
        padding: 0 .75rem 0 0 !important;
        align-self: start !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-thumbnail a {
        display: block !important;
        width: 64px !important;
        height: 80px !important;
        overflow: hidden !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-thumbnail img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        margin: 0 !important;
    }

    /* Product name */
    .novus-wishlist-page table.wishlist_table td.product-name {
        grid-area: name !important;
        padding: 0 0 .25rem !important;
        align-self: center !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-name a {
        font-size: .92rem !important;
        line-height: 1.3 !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-name .wishlist-item-date-added {
        display: none !important;
    }

    /* Remove × button */
    .novus-wishlist-page table.wishlist_table td.product-remove {
        grid-area: rmv !important;
        text-align: right !important;
        width: auto !important;
        padding: 0 !important;
        align-self: start !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-remove a,
    .novus-wishlist-page table.wishlist_table td.product-remove .remove_from_wishlist {
        width: 24px !important;
        height: 24px !important;
        margin: 0 0 0 auto !important;
        font-size: .8rem !important;
    }

    /* Price — force re-show (hidden at ≤640px breakpoint above) */
    .novus-wishlist-page table.wishlist_table td.product-price {
        grid-area: price !important;
        display: block !important;
        text-align: left !important;
        padding: .2rem 0 .1rem !important;
        white-space: nowrap !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-price .woocommerce-Price-amount {
        font-size: .9rem !important;
    }

    /* Stock status — force re-show (hidden at ≤768px breakpoint above) */
    .novus-wishlist-page table.wishlist_table td.product-stock-status {
        grid-area: stock !important;
        display: block !important;
        text-align: left !important;
        padding: .1rem 0 .3rem !important;
    }

    /* Add to cart */
    .novus-wishlist-page table.wishlist_table td.product-add-to-cart {
        grid-area: atc !important;
        text-align: left !important;
        white-space: normal !important;
        padding: .4rem 0 0 !important;
    }
    .novus-wishlist-page table.wishlist_table td.product-add-to-cart a.button,
    .novus-wishlist-page table.wishlist_table td.product-add-to-cart .add_to_cart_button,
    .novus-wishlist-page table.wishlist_table td.product-add-to-cart .yith-wcwl-add-to-cart a {
        display: flex !important;
        width: 100% !important;
        justify-content: center !important;
        padding: .55rem .8rem !important;
        font-size: .62rem !important;
        letter-spacing: .12em !important;
        white-space: nowrap !important;
        box-sizing: border-box !important;
    }

    /* ── STEP 6: Sidebar compact ── */
    .wl-summary-head,
    .wl-stats                  { padding: 1rem !important; }
    .wl-summary-actions        { padding: 1rem !important; }
    .wl-btn-primary,
    .wl-btn-secondary          { padding: .85rem !important; font-size: .68rem !important; }
}