/* ============================================================
   TF Wishlist Overlay — Archive Page
   Only touches YITH positioning and icon styling.
   Does NOT modify ul.products grid/float layout.
   ============================================================ */
body.page-id-39827 {
	background: none;
}
.woocommerce-error {
	border: thin solid #000!important;
	background: none!important;
}
.woocommerce-error::before {
	color: #000;
}
/* 1. Positioning context on the <li> */
ul.products li.product {
    position: relative;
}
/* 2. Pin the YITH block to top-right of the card */
ul.products li.product .yith-add-to-wishlist-button-block {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10;
    margin: 0;
}
/* 3. Reset YITH wrapper margins */
ul.products li.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist {
    margin: 0;
    padding: 0;
}
/* 4. Style the button as a small semi-transparent white chip */
ul.products li.product .yith-wcwl-add-to-wishlist a.add_to_wishlist,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    background: rgba(255, 255, 255, 0.82) !important;
    border-radius: 3px !important;
    border: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
    transition: background 0.2s ease !important;
    padding: 0 !important;
}
ul.products li.product .yith-wcwl-add-to-wishlist a.add_to_wishlist:hover,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a:hover,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a:hover {
    background: rgba(255, 255, 255, 1) !important;
}
/* 5. Hide all YITH default text, labels and built-in icons */
ul.products li.product .yith-wcwl-add-to-wishlist a.add_to_wishlist span,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a span,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a span,
ul.products li.product .yith-wcwl-add-to-wishlist i,
ul.products li.product .yith-wcwl-add-to-wishlist svg,
ul.products .yith-wcwl-add-to-wishlist-button__label {
    display: none !important;
}
/* 6. Not wishlisted — FA bookmark outline */
ul.products li.product .yith-wcwl-add-to-wishlist a.add_to_wishlist::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 400 !important;
    content: "\f02e" !important;
    font-size: 15px !important;
    color: #1a1a1a !important;
    display: block !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased;
}
/* 7. Wishlisted — FA bookmark solid */
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistaddedbrowse a::before,
ul.products li.product .yith-wcwl-add-to-wishlist .yith-wcwl-wishlistexistsbrowse a::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 900 !important;
    content: "\f02e" !important;
    font-size: 15px !important;
    color: #1a1a1a !important;
    display: block !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased;
}
/* 8. Hide loading/feedback states */
ul.products li.product .yith-wcwl-add-to-wishlist .ajax-loading,
ul.products li.product .yith-wcwl-add-to-wishlist .feedback {
    display: none !important;
}
/* ============================================================
   TF Wishlist Page — Table Design
   Matches TF-Wishlist.pdf mockup
   ============================================================ */
/* ---- Hide default YITH footer elements ---- */
.woocommerce-wishlist .wishlist-page-links,
.woocommerce-wishlist .wishlist-title-container {
    display: none !important;
}
/* ---- YITH base resets ---- */
.yith-wcwl-form .woocommerce table.shop_table {
    border: none;
}
.woocommerce .yith-wcwl-form table.shop_table.wishlist_table tr td,
.woocommerce .yith-wcwl-form table.shop_table th {
    background: none !important;
}
.wishlist_table thead tr th,
.wishlist_table tfoot td td,
.widget_yith-wcwl-lists ul.dropdown li.current a,
.widget_yith-wcwl-lists ul.dropdown li a:hover,
.selectBox-dropdown-menu.selectBox-options li.selectBox-selected a,
.selectBox-dropdown-menu.selectBox-options li.selectBox-hover a {
    background: none;
}
/* ---- Table base ---- */
.tf-wishlist-custom {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: none !important;
    margin-bottom: 0 !important;
}
.tf-wishlist-custom,
.tf-wishlist-custom th,
.tf-wishlist-custom td {
    border: none !important;
}
/* ---- Table header ---- */
.tf-wishlist-custom thead tr {
    background: transparent;
    font-family: 'Futura', sans-serif;
}
.tf-wishlist-custom thead th {
    font-family: 'Futura', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1a1a1a;
    padding: 16px 20px;
    border-bottom: 1px solid #ddd !important;
    white-space: nowrap;
    background: transparent !important;
}
/* ---- Table rows – alternating backgrounds ---- */
.tf-wishlist-custom tbody tr.tf-row-even {
    background-color: #f5f5f3;
}
.tf-wishlist-custom tbody tr.tf-row-odd {
    background-color: #ffffff;
}
.tf-wishlist-custom tbody tr:hover {
    background-color: #eeeee9;
}
/* ---- Table cells ---- */
.tf-wishlist-custom td {
    padding: 18px 20px;
    vertical-align: middle;
    font-size: 14px;
    color: #1a1a1a;
}
/* ---- Remove column ---- */
.tf-wishlist-custom th.product-remove,
.tf-wishlist-custom td.product-remove {
    width: 80px;
    text-align: center;
}
.tf-wishlist-custom td.product-remove a {
    color: #000;
    font-size: 16px;
    text-decoration: none;
    transition: color 0.2s;
	margin: 0 auto!important
}
.woocommerce a.remove {
	color: #000!important;
}
.tf-wishlist-custom td.product-remove a:hover {
    color: #333;
}
/* ---- Product cell: thumbnail + name ---- */
.tf-wishlist-custom th.product-info,
.tf-wishlist-custom td.product-info {
    min-width: 250px;
}
.tf-product-cell {
    display: flex;
    align-items: center;
    gap: 16px;
}
.tf-product-thumb {
    flex-shrink: 0;
}
.tf-product-thumb img {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 0;
}
.tf-product-name {
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    color: #1a1a1a;
    text-decoration: none;
}
.tf-product-name:hover {
    text-decoration: underline;
    color: #1a1a1a;
}
/* ---- Quantity column ---- */
.tf-wishlist-custom th.product-quantity,
.tf-wishlist-custom td.product-quantity {
    width: 130px;
    text-align: center;
}
.tf-qty-wrap {
    display: inline-block;
    position: relative;
}
.tf-qty-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 0;
    padding: 8px 36px 8px 16px;
    font-size: 14px;
    font-family: inherit;
    color: #1a1a1a;
    cursor: pointer;
    min-width: 70px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 10px;
}
.tf-qty-select:focus {
    outline: none;
    border-color: #999;
}
/* ---- Download columns ---- */
.tf-wishlist-custom th.product-spec,
.tf-wishlist-custom th.product-drawing,
.tf-wishlist-custom td.product-spec,
.tf-wishlist-custom td.product-drawing {
    width: 140px;
    text-align: center;
}
.tf-wishlist-download-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    font-size: 18px;
    color: #1a1a1a;
    text-decoration: none;
    transition: color 0.2s;
}
.tf-wishlist-download-btn:hover {
    color: #555;
}
.tf-drawing-disabled {
    color: #ccc;
    pointer-events: none;
}
/* ---- Request a Quote button ---- */
.tf-wishlist-actions {
    margin-top: 30px;
    margin-bottom: 40px;
}
.tf-request-quote-btn {
    display: inline-block;
    background: #1a1a1a;
    color: #fff !important;
    padding: 16px 36px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}
.tf-request-quote-btn, a.tf-request-quote-btn:hover, a.tf-request-quote-btn:visited {
    background: #333;
    color: #fff !important;
	font-family: 'Futura', sans-serif;
}
/* ---- Empty wishlist ---- */
.tf-wishlist-custom td.wishlist-empty {
    text-align: center;
    padding: 40px 20px;
    font-size: 14px;
    color: #999;
}
/* ---- Responsive ---- */
@media (max-width: 768px) {
    .tf-wishlist-custom thead {
        display: none;
    }
    .tf-wishlist-custom,
    .tf-wishlist-custom tbody,
    .tf-wishlist-custom tr,
    .tf-wishlist-custom td {
        display: block;
        width: 100%;
    }
    .tf-wishlist-custom tr {
        padding: 16px;
        margin-bottom: 12px;
        border: 1px solid #eee;
        position: relative;
    }
    .tf-wishlist-custom td {
        padding: 8px 0;
        text-align: left;
    }
    .tf-wishlist-custom td.product-remove {
        position: absolute;
        right: 16px;
        top: 16px;
        width: auto;
    }
    .tf-wishlist-custom td.product-info {
        padding-right: 40px;
    }
    .tf-wishlist-custom td.product-quantity,
    .tf-wishlist-custom td.product-spec,
    .tf-wishlist-custom td.product-drawing {
        display: inline-block;
        width: auto;
        text-align: left;
    }
    .tf-wishlist-custom td.product-spec::before {
        content: "Spec: ";
        font-weight: 600;
        font-size: 11px;
        text-transform: uppercase;
    }
    .tf-wishlist-custom td.product-drawing::before {
        content: "Drawing: ";
        font-weight: 600;
        font-size: 11px;
        text-transform: uppercase;
    }
}
/* Fix: Hide × text, show trash icon via CSS */
.tf-wishlist-custom td.product-remove a.tf-remove-btn {
    font-size: 0;
    line-height: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
}
.tf-wishlist-custom td.product-remove a.tf-remove-btn::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 400 !important;
    content: "\f2ed" !important;
    font-size: 16px !important;
    color: #999;
    transition: color 0.2s;
}
.tf-wishlist-custom td.product-remove a.tf-remove-btn:hover::before {
    color: #333;
}
/* Fix: Left-align Product header */
.tf-wishlist-custom thead th.product-info {
    text-align: left;
}
/* Fix: Muted drawing icon when no file */
.tf-drawing-disabled {
    color: #ccc !important;
    pointer-events: none;
    opacity: 0.4;
}
/* ---- Single product action row ---- */
.tf-product-actions {
    margin-top: 12px;
}
.tf-action-link {
    font-family: 'Futura', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1a1a1a;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color 0.2s;
}
.tf-action-link:hover {
    color: #555;
}
.tf-action-link i {
    font-size: 14px;
}
.tf-action-disabled {
    display: none;
}
/* Style the YITH button inline to match the other action links */
.tf-product-actions .yith-wcwl-add-to-wishlist {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
}
.tf-product-actions .yith-wcwl-add-to-wishlist a,
.tf-product-actions .yith-wcwl-add-to-wishlist span.feedback {
    font-family: 'Futura', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
}
.tf-product-actions .yith-wcwl-add-to-wishlist a:hover {
    color: #555 !important;
}
.yith-wcwl-add-to-wishlist-button:is(button) {
	padding: 10px;
}
.tf-product-actions .yith-wcwl-add-to-wishlist-button:is(button):not(.yith-wcwl-theme-button-style) {
	color: #000 !important;
    background: none !important;
    font-family: 'Futura', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.73em;
	font-weight: 600;
	border: none;
}
.product-search-results table.search-results td, .product-info a {
	display: block!important;
	height: auto!important;
	font-family: 'Bembo Std Italic', serif;
}
.wishlist_table.modern_grid li .item-details table.item-details-table td.value input {
	text-align: center;
    width: auto !important;
    border: thin solid #aaa;
}
.wishlist_table.modern_grid li .item-details .product-remove, .wishlist_table.images_grid li .item-details .product-remove {
	text-align: right;
	margin-top: 10px;
}
.wishlist_table.modern_grid li .item-details {
	padding: 0!important;
}
/* Wishlist quantity input: smaller box with visible stepper arrows */
.wishlist_table .item-details-table .product-quantity td.value input[type="number"] {
    width: 60px !important;
    max-width: 60px;
    min-width: 0;
    height: 32px;
    padding: 2px 4px;
    box-sizing: border-box;
    text-align: left;
    -moz-appearance: number-input !important; /* Firefox: restore native arrows */
    appearance: auto !important;
    -webkit-appearance: auto !important;      /* Safari */
}
.wishlist_table .item-details-table .product-quantity td.value input[type="number"]::-webkit-outer-spin-button,
.wishlist_table .item-details-table .product-quantity td.value input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: auto !important;      /* Chrome/Edge */
    opacity: 1 !important;
    margin-left: 4px;
}
/* Align the quantity label with the input vertically */
.wishlist_table .item-details-table .product-quantity td.label,
.wishlist_table .item-details-table .product-quantity td.value {
    vertical-align: middle;
}
.wishlist_table .item-details-table .product-quantity td.value input[type="number"] {
    vertical-align: middle;
    margin: 0;
}
.wishlist_table .product-remove {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.wishlist_table .product-remove a.remove_from_wishlist {
    font-size: 13px;
    text-decoration: underline;
    color: #6d6c6c;
    white-space: nowrap;
}
.wishlist_table .product-remove a.remove_from_wishlist:hover {
    color: #000;
}
/* REQUEST ESTIMATE POP UP */
.wishlist-ask-an-estimate-popup #additional_notes {
	width: 100%;
}
div.yith-wcwl-pp-modal div.pp_content_container, .yith-wcwl-modal div.yith-wcwl-modal__content {
	padding: 25px;
}
div.pp_woocommerce .pp_details {
	padding-top: 0;
}
.yith-wcwl-modal .yith-wcwl-modal__title .yith-wcwl-modal__icon {
	display: none;
}
.yith-wcwl-feedback-modal .yith-wcwl-feedback__product-name {
	font-size: 1.5em;
	font-family: 'Bembo Std Italic', serif;
}
/* ==========================================================================
   TF WISHLIST STYLES
   1. Archive product card overlay (bookmark icon)
   2. Overlay icon sizing & positioning
   3. YITH button block alignment on archive
   4. YITH default button overrides (archive cards)
   5. YITH feedback modal cleanup
   6. YITH loop position fix
   7. Hide YITH elements on archive that we don't need
   8. Wishlist page — Grid layout
   9. Wishlist page — Footer actions
   10. Wishlist page — YITH overrides
   11. Modern grid — Injected download rows
   12. Modern grid — Card layout (vertical: image top, details bottom, equal height)
   ========================================================================== */
/* --- 1. Archive product card overlay ------------------------------------ */
.tf-wishlist-overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
}
/* --- 2. Overlay icon sizing & positioning ------------------------------- */
.tf-wishlist-overlay .yith-add-to-wishlist-button-block {
    display: block !important;
    width: 28px;
    height: 28px;
}
.tf-wishlist-overlay .yith-add-to-wishlist-button-block button,
.tf-wishlist-overlay .yith-add-to-wishlist-button-block a {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 28px !important;
    height: 28px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: none !important;
    outline: none !important;
}
/* --- 3. YITH button block alignment on archive -------------------------- */
.tf-wishlist-overlay .yith-add-to-wishlist-button-block svg {
    width: 20px !important;
    height: 20px !important;
    color: #000 !important;
    stroke: currentColor;
    stroke-width: 1.5;
}
/* Filled bookmark when product is in wishlist */
.tf-wishlist-overlay .yith-add-to-wishlist-button-block--added svg,
.tf-wishlist-overlay .yith-add-to-wishlist-button-block [data-attributes*='"exists":true'] svg {
    fill: #000 !important;
}
/* --- 4. YITH default button overrides (archive cards) ------------------- */
.tf-wishlist-overlay .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist {
    margin: 0 !important;
    padding: 0 !important;
}
.tf-wishlist-overlay .yith-add-to-wishlist-button-block span.feedback {
    display: none !important;
}
/* --- 5. YITH feedback modal cleanup ------------------------------------- */
.yith-wcwl-add-to-wishlist-modal .feedback-modal__icon {
    margin-bottom: 8px;
}
/* --- 6. YITH loop position fix ------------------------------------------ */
/* Prevent YITH's default "after add to cart" placement on archive */
ul.products li.product .yith-add-to-wishlist-button-block:not(.tf-wishlist-overlay .yith-add-to-wishlist-button-block) {
    display: none !important;
}
/* --- 7. Hide YITH elements on archive that we don't need ---------------- */
ul.products li.product .yith-wcwl-add-to-wishlist {
    position: static;
}
/* ==========================================================================
   8. WISHLIST PAGE — GRID LAYOUT
   ========================================================================== */
/* Heading */
.tf-wl-heading {
    font-family: 'Times New Roman', Times, serif;
    font-style: italic;
    font-weight: 400;
    font-size: 26px;
    margin: 0 0 28px;
    color: #1a1a1a;
}
/* Grid container — 3 columns */
.tf-wl-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 36px;
}
/* Each card — horizontal layout: image left, content right */
.tf-wl-card {
    display: flex;
    flex-direction: row;
    background: #f7f7f7;
    border: 1px solid #ebebeb;
    overflow: hidden;
    min-height: 200px;
}
/* Card image */
.tf-wl-card__img {
    width: 44%;
    flex-shrink: 0;
    overflow: hidden;
    background: #eee;
}
.tf-wl-card__img a {
    display: block;
    height: 100%;
}
.tf-wl-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Card body */
.tf-wl-card__body {
    flex: 1;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
/* Product title */
.tf-wl-card__title {
    font-family: 'Times New Roman', Times, serif;
    font-style: italic;
    font-weight: 400;
    font-size: 15px;
    line-height: 1.3;
    margin: 0 0 10px;
}
.tf-wl-card__title a {
    color: #1a1a1a;
    text-decoration: none;
}
.tf-wl-card__title a:hover {
    text-decoration: underline;
}
/* Quantity row */
.tf-wl-card__qty {
    font-family: 'Futura', 'Helvetica Neue', Arial, sans-serif;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: #555;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
}
.tf-wl-qty-input {
    width: 56px;
    border: none;
    border-bottom: 1px solid #999;
    background: transparent;
    padding: 3px 4px;
    font-size: 13px;
    text-align: center;
    outline: none;
    font-family: inherit;
    -moz-appearance: textfield;
}
.tf-wl-qty-input::-webkit-outer-spin-button,
.tf-wl-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.tf-wl-qty-input:focus {
    border-bottom-color: #1a1a1a;
}
/* Card footer — downloads + trash */
.tf-wl-card__foot {
    margin-top: auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}
/* Download icons row */
.tf-wl-card__downloads {
    display: flex;
    gap: 10px;
    align-items: center;
}
.tf-wl-dl {
    color: #1a1a1a;
    font-size: 14px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
    text-decoration: none;
    line-height: 1;
}
.tf-wl-dl:hover {
    color: #666;
}
/* Muted state — no drawing available */
.tf-wl-dl--muted {
    color: #ccc;
    cursor: default;
    pointer-events: none;
    opacity: 0.35;
}
/* Trash / remove button */
.tf-wl-card__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: #1a1a1a;
    color: #fff;
    font-size: 13px;
    text-decoration: none;
    transition: background 0.2s;
    flex-shrink: 0;
}
.tf-wl-card__remove:hover {
    background: #444;
    color: #fff;
}
/* ==========================================================================
   9. WISHLIST PAGE — FOOTER ACTIONS (Update + Estimate)
   ========================================================================== */
.tf-wl-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.tf-wl-update-btn {
    font-family: 'Futura', 'Helvetica Neue', Arial, sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    background: #fff;
    border: 1px solid #1a1a1a;
    color: #1a1a1a;
    padding: 11px 28px;
    cursor: pointer;
    transition: all 0.2s;
}
.tf-wl-update-btn:hover {
    background: #1a1a1a;
    color: #fff;
}
/* "Ask for an estimate" — inherits YITH classes, just minor tweaks */
.tf-wl-footer .yith-wcwl-ask-an-estimate-button {
    font-family: 'Futura', 'Helvetica Neue', Arial, sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 11px 28px;
}
/* Empty state */
.tf-wl-empty {
    font-family: 'Times New Roman', Times, serif;
    font-style: italic;
    font-size: 16px;
    color: #888;
    padding: 40px 0;
}
/* ==========================================================================
   10. WISHLIST PAGE — YITH OVERRIDES
   ========================================================================== */
/* Hide YITH default wishlist footer/page-links */
.yith-wcwl-form .wishlist-page-links,
.yith-wcwl-form .yith-wcwl-share,
.yith-wcwl-form .wishlist-title-container .show-title-form,
.yith-wcwl-form .hidden-title-form {
    display: none !important;
}
/* Keep the title container clean */
.yith-wcwl-form .wishlist-title-container {
    display: none;
}
/* Hide YITH default notices if we're handling our own */
.yith-wcwl-form > .woocommerce-message {
    font-family: 'Futura', 'Helvetica Neue', Arial, sans-serif;
    font-size: 13px;
    margin-bottom: 20px;
}
/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 991px) {
    .tf-wl-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 575px) {
    .tf-wl-grid {
        grid-template-columns: 1fr;
    }
    .tf-wl-card {
        min-height: 160px;
    }
    .tf-wl-card__img {
        width: 38%;
    }
    .tf-wl-card__body {
        padding: 12px 14px;
    }
    .tf-wl-footer {
        flex-direction: column;
        align-items: stretch;
    }
    .tf-wl-footer .tf-wl-update-btn,
    .tf-wl-footer .yith-wcwl-ask-an-estimate-button {
        text-align: center;
        width: 100%;
    }
}
/* ==========================================================================
   11. MODERN GRID — Injected download rows
   Styles the Download Specification / Download Drawing links
   injected by tf_wishlist_inject_downloads() in woocommerce.php
   ========================================================================== */
.wishlist_table.modern_grid .tf-wl-downloads {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid #e0e0e0;
    margin-top: 8px;
    padding-top: 6px;
}
.wishlist_table.modern_grid .tf-wl-dl {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: #1a1a1a !important;
    font-size: inherit !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    cursor: pointer;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid #ebebeb !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 7px 0 !important;
    margin: 0 !important;
    width: 100%;
    display: block;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
    text-decoration: none;
    line-height: 1.3;
    text-align: left;
    font-size: 0.85em !important;
}
.wishlist_table.modern_grid .tf-wl-dl:last-child {
    border-bottom: none;
}
.wishlist_table.modern_grid .tf-wl-dl i {
    font-size: 1em;
    width: 16px;
    text-align: center;
    flex-shrink: 0;
}
.wishlist_table.modern_grid .tf-wl-dl:hover {
    color: #666;
}
.wishlist_table.modern_grid .tf-wl-dl--muted {
    color: #ccc;
    cursor: default;
    pointer-events: none;
    opacity: 0.35;
}
.tf-wl-downloads a {
    display: block;
    padding: 7px 0;
    border-top: thin solid #ccc;
}
.yith_wcwl_wishlist_update input {
    background: #000;
    border: none;
    padding: 10px 25px;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.8em !important;
}
/* ==========================================================================
   12. MODERN GRID — Card layout (vertical: image top, details bottom)
   Image is a fixed square (aspect-ratio 1/1, object-fit: cover) so every
   thumbnail matches regardless of the source photo's shape.
   CSS Grid stretches all <li> in a row to equal height by default; the
   height:100% / flex:1 chain below carries that stretch down through
   .item-wrapper -> .item-details -> .item-details-wrapper, so the content
   block on every card matches the tallest one in its row automatically
   (the Bootstrap row-eq-height equivalent), regardless of title length.
   ========================================================================== */
.wishlist_table.modern_grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px;
  width: 100%;
  align-items: stretch;
  list-style: none;
  padding: 0;
  margin: 0;
}
.wishlist_table.modern_grid > li {
  display: block !important;
  width: 100%;
  height: 100%;
  margin: 0 !important;
	text-align: left!important;
}
.wishlist_table.modern_grid .item-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
}
.wishlist_table.modern_grid .product-thumbnail {
  position: static !important;
  width: 100% !important;
  flex: 0 0 auto !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  padding: 0 !important;
}
.wishlist_table.modern_grid .product-thumbnail a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
.wishlist_table.modern_grid .product-thumbnail img {
  position: static !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}
.yith_wcwl_wishlist_footer {
    margin-top: 25px;
}
.wishlist_table.modern_grid .item-details {
  position: static !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  padding-left: 0 !important;
  display: flex;
  flex-direction: column;
}
.wishlist_table.modern_grid .item-details:before {
  display: none !important;
}
.wishlist_table.modern_grid .item-details-wrapper {
  background: #f2f2f2;
  flex: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
}
@media (max-width: 992px) {
  .wishlist_table.modern_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 576px) {
  .wishlist_table.modern_grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   13. QUANTITY FIELD — inline label + input alignment fix
   The quantity table (.item-details-table) was defaulting to width:100%
   with the "value" cell stretched to the far right, pushing the input away
   from the "Quantity:" label. Shrinking the table to its content width and
   left-aligning both cells keeps the label and the stepper box sitting
   together as one unit, matching the rest of the row items below it.
   Note: this table also carries the existing "td.value input" rule above
   (text-align:center / width:auto / border) and the quantity-sizing rule
   from section directly above (60px box). Neither is changed here — this
   section only affects the surrounding table/cell layout.
   ========================================================================== */
.wishlist_table .item-details-table {
    width: auto;
    border-collapse: collapse;
    /* .item-details-wrapper is display:flex; flex-direction:column with no
       align-items set, which defaults to "stretch" — that was forcing this
       table to full width regardless of width:auto above. Opting this one
       flex item out of the stretch is what actually lets it shrink to fit
       its content (label + input) instead of spanning the card. */
    align-self: flex-start;
}
/* table-cell vertical-align was unreliable here (the row height is driven
   by the input's fixed 32px vs. the label's own line-height, and the two
   don't center against each other consistently across browsers) — turning
   the row into a flex container with align-items:center is a more direct,
   predictable way to center the label against the input. */
.wishlist_table .item-details-table tbody {
    display: block;
}
.wishlist_table .item-details-table .product-quantity {
    display: flex;
    align-items: center;
}
.wishlist_table .item-details-table .product-quantity td {
    display: block;
    text-align: left;
    width: auto;
    padding: 0;
}
.wishlist_table .item-details-table .product-quantity td.label {
    white-space: nowrap;
    padding-right: 30px!important;
    line-height: 1;
}