/* =============================================================
   7mach Theme — Affiliate Catalog Integration CSS
   v4.0.0 | Text Domain: 7mach-theme
   ============================================================= */

/* --- Shell & Container ---------------------------------------- */
.mach-shell { width: 100%; }
.container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 20px; }

/* --- Hero ----------------------------------------------------- */
.mach-hero { background: #111827; color: #fff; padding: 64px 0 48px; text-align: center; }
.mach-hero h1 { font-size: clamp(1.8rem, 4vw, 3rem); margin: 0 0 12px; font-weight: 700; }
.mach-hero-sub { font-size: 1rem; color: #9ca3af; max-width: 600px; margin: 0 auto; }
.mach-eyebrow { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7280; margin: 0 0 8px; }

/* --- Merchant Chip Nav --------------------------------------- */
.mach-tax-nav { background: #fff; border-bottom: 1px solid #e5e7eb; padding: 12px 0; overflow-x: auto; }
.mach-chip-row { display: flex; gap: 8px; flex-wrap: nowrap; white-space: nowrap; padding-bottom: 2px; }
.mach-chip { display: inline-flex; align-items: center; padding: 4px 14px; border: 1px solid #d1d5db; border-radius: 999px; font-size: .8125rem; color: #374151; text-decoration: none; transition: background .15s, color .15s; }
.mach-chip:hover, .mach-chip--active { background: #111827; color: #fff; border-color: #111827; text-decoration: none; }

/* --- Product Grid -------------------------------------------- */
.mach-store-grid { padding: 32px 0 64px; }
.mach-grid, .affc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }

/* --- Product Card Override ----------------------------------- */
.affc-card, .mach-affc-page .affc-card { border-radius: 12px; border: 1px solid #e5e7eb; background: #fff; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s; }
.affc-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

/* --- Badges -------------------------------------------------- */
.affc-merchant-badge, .affc-product-merchant-badge, .mach-product-badge, .mach-featured-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.affc-merchant-badge, .affc-product-merchant-badge { background: #111827; color: #fff; }
.mach-product-badge { background: #dc2626; color: #fff; }
.mach-featured-badge { background: #d97706; color: #fff; }

/* --- Single Product Layout ----------------------------------- */
.mach-single-wrap { padding: 40px 0 64px; }
.mach-single-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.mach-single-img { width: 100%; border-radius: 12px; }
.mach-single-buy-box { position: sticky; top: 80px; }
.mach-single-title { font-size: clamp(1.3rem, 2.5vw, 2rem); margin: 12px 0 16px; font-weight: 700; }
.mach-merchant-line { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.mach-merchant-name { font-size: .875rem; color: #6b7280; text-decoration: none; }
.mach-merchant-name:hover { color: #111827; text-decoration: underline; }
.mach-price-wrap { margin: 0 0 12px; }
.mach-trust { font-size: .8125rem; color: #6b7280; margin: 8px 0 16px; }
.mach-actions { margin-top: 4px; }
.mach-single-desc { margin-top: 40px; grid-column: 1 / -1; max-width: 720px; line-height: 1.7; }

/* --- Button -------------------------------------------------- */
.mach-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 999px; font-size: .9375rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: opacity .15s; }
.mach-btn--primary { background: #111827; color: #fff; }
.mach-btn--primary:hover { opacity: .85; text-decoration: none; }
.mach-btn--large { padding: 14px 32px; font-size: 1rem; }

/* --- Hero Term (Merchant / Category) ------------------------- */
.mach-hero--term { text-align: left; padding: 40px 0; }
.mach-hero-term-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.mach-hero-term-main { flex: 1; }
.mach-hero-desc { color: #9ca3af; font-size: .9375rem; margin: 8px 0 0; }
.mach-hero-badge { margin-top: 10px; }
.mach-hero-term-logo img { max-width: 160px; max-height: 80px; object-fit: contain; filter: brightness(0) invert(1); }

/* --- Merchant Hub Grid -------------------------------------- */
.affc-merchant-hub { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; padding: 32px 0; }
.affc-merchant-card { border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; overflow: hidden; transition: box-shadow .2s; }
.affc-merchant-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.affc-merchant-card-inner { display: flex; flex-direction: column; align-items: center; padding: 20px 16px; text-decoration: none; color: inherit; }
.affc-merchant-logo { max-width: 100px; max-height: 50px; object-fit: contain; }
.affc-merchant-placeholder-logo { width: 56px; height: 56px; border-radius: 999px; background: #f3f4f6; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; color: #374151; }
.affc-merchant-name { font-size: .9375rem; font-weight: 600; margin: 10px 0 4px; }
.affc-merchant-desc { font-size: .8125rem; color: #6b7280; text-align: center; }

/* --- Pagination --------------------------------------------- */
.mach-pagination { margin-top: 40px; display: flex; justify-content: center; }
.mach-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; font-size: .875rem; text-decoration: none; color: #374151; margin: 0 2px; }
.mach-pagination .current { background: #111827; color: #fff; }

/* --- Empty State -------------------------------------------- */
.mach-empty-state { text-align: center; padding: 80px 20px; }
.mach-empty-icon { font-size: 3rem; margin-bottom: 16px; }
.mach-empty-state h2 { font-size: 1.4rem; margin-bottom: 8px; }
.mach-empty-state p { color: #6b7280; margin-bottom: 20px; }

/* --- Footer Banner ------------------------------------------ */
.mach-footer-banner { background: #f9fafb; border-top: 1px solid #e5e7eb; padding: 16px 20px; text-align: center; font-size: .875rem; }

/* --- Responsive ---------------------------------------------- */
@media (max-width: 768px) {
  .mach-single-layout { grid-template-columns: 1fr; gap: 24px; }
  .mach-single-buy-box { position: static; }
  .mach-hero--term { text-align: center; }
  .mach-hero-term-inner { flex-direction: column-reverse; }
  .mach-grid, .affc-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
}
@media (max-width: 480px) {
  .mach-grid, .affc-grid { grid-template-columns: 1fr 1fr; }
}

/* ===================================================
   EXTENDED STYLES v2 - Single, Sticky, Share, Modal,
   Breadcrumb, Related, Dark Mode
=================================================== */

/* --- Breadcrumb --- */
.mach-breadcrumb { font-size:.8125rem; color:#6b7280; margin-bottom:20px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.mach-breadcrumb a { color:#111827; text-decoration:none; }
.mach-breadcrumb a:hover { text-decoration:underline; }

/* --- Single Layout --- */
.mach-single-layout { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.mach-single-media { position:relative; }
.mach-single-img { width:100%; border-radius:12px; display:block; object-fit:cover; max-height:480px; }
.mach-img-placeholder { background:#f3f4f6; border-radius:12px; height:320px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:#9ca3af; text-align:center; padding:20px; }
.mach-single-info { display:flex; flex-direction:column; gap:16px; }
.mach-single-merchant { display:flex; align-items:center; gap:8px; }
.mach-single-title { font-size:clamp(1.4rem,3vw,2rem); font-weight:700; margin:0; color:#111827; }
.mach-single-price { font-size:1.5rem; font-weight:700; color:var(--mach-primary,#111827); }
.mach-single-desc { font-size:.9375rem; color:#374151; line-height:1.7; }
.mach-single-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.mach-single-merchant { font-size:.875rem; }
.mach-merchant-info { font-size:.875rem; color:#6b7280; }
.mach-merchant-info a { color:#111827; }
.mach-disclosure { font-size:.75rem; color:#9ca3af; padding:8px 12px; background:#f9fafb; border-radius:6px; }
.mach-disclosure-cta { 
    background: #fef3c7; 
    border: 1px solid #f59e0b; 
    color: #92400e; 
    font-weight: 600;
    margin-bottom: 16px;
}
.mach-badge-single { position:absolute; top:12px; left:12px; z-index:2; }
.mach-badge-sale { position:absolute; top:12px; right:12px; z-index:2; background:#ef4444; color:#fff; padding:4px 10px; border-radius:999px; font-size:.75rem; font-weight:700; }
.mach-badge-featured { background:#f59e0b; color:#fff; padding:3px 10px; border-radius:999px; font-size:.75rem; font-weight:700; }

/* --- Buttons --- */
.mach-btn { display:inline-flex; align-items:center; gap:6px; padding:12px 24px; border-radius:8px; font-weight:600; font-size:.9375rem; cursor:pointer; text-decoration:none; border:none; transition:background .2s,transform .1s; }
.mach-btn-primary,.mach-btn { background:var(--mach-primary,#111827); color:#fff; }
.mach-btn-primary:hover,.mach-btn:hover { background:var(--mach-accent,#374151); transform:translateY(-1px); }
.mach-btn-sm { padding:8px 16px; font-size:.875rem; }
.mach-wishlist-btn { background:none; border:2px solid #e5e7eb; border-radius:8px; padding:10px 14px; font-size:1.2rem; cursor:pointer; transition:border-color .2s,color .2s; color:#9ca3af; }
.mach-wishlist-btn.active,.mach-wishlist-btn:hover { border-color:#ef4444; color:#ef4444; }

/* --- Social Share --- */
.mach-share { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.875rem; color:#6b7280; }
.mach-share-btn { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; font-size:.8rem; font-weight:700; text-decoration:none; transition:opacity .2s; border:none; cursor:pointer; }
.mach-share-fb { background:#1877f2; color:#fff; }
.mach-share-tw { background:#000; color:#fff; }
.mach-share-pin { background:#e60023; color:#fff; }
.mach-share-copy { background:#6b7280; color:#fff; width:auto; padding:0 10px; border-radius:6px; font-size:.75rem; }
.mach-share-btn:hover { opacity:.85; }

/* --- Sticky Buy Bar --- */
.mach-sticky-bar { position:fixed; bottom:0; left:0; right:0; background:#fff; border-top:2px solid #e5e7eb; padding:12px 20px; z-index:999; transform:translateY(100%); transition:transform .3s ease; box-shadow:0 -4px 20px rgba(0,0,0,.08); }
.mach-sticky-bar.mach-sticky-visible { transform:translateY(0); }
.mach-sticky-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.mach-sticky-title { font-weight:600; font-size:.9375rem; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mach-sticky-price { font-weight:700; color:var(--mach-primary,#111827); white-space:nowrap; }

/* --- Related Products --- */
.mach-related { margin-top:60px; padding-top:40px; border-top:1px solid #e5e7eb; }
.mach-related-title { font-size:1.4rem; font-weight:700; margin-bottom:24px; }

/* --- Quick View Modal --- */
.mach-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:10000; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .25s; }
.mach-modal-overlay.open { opacity:1; visibility:visible; }
.mach-modal-box { background:#fff; border-radius:16px; width:min(700px,95vw); max-height:90vh; overflow-y:auto; position:relative; padding:32px; animation:sptSlideUp .3s ease; }
@keyframes sptSlideUp { from{transform:translateY(30px);opacity:0} to{transform:translateY(0);opacity:1} }
.mach-modal-close { position:absolute; top:16px; right:16px; background:none; border:none; font-size:1.5rem; cursor:pointer; color:#6b7280; line-height:1; }
.mach-spinner { width:36px; height:36px; border:3px solid #e5e7eb; border-top-color:#111827; border-radius:50%; animation:spin .7s linear infinite; margin:40px auto; }
@keyframes spin { to{transform:rotate(360deg)} }

/* --- Price Drop indicator --- */
.mach-price-drop .mach-card-price::before { content:'\2193 '; color:#ef4444; }

/* --- Price & Hotlink Disclaimers --- */
.mach-price-disclaimer { margin: 12px 0; padding: 12px; background: #fef3c7; border-radius: 8px; border-left: 4px solid #f59e0b; }
.mach-price-disclaimer small { display: block; color: #92400e; font-size: 12px; line-height: 1.5; }
.mach-price-disclaimer .mach-hotlink-note { margin-top: 6px; padding-top: 6px; border-top: 1px dashed #fbbf24; }

/* --- Dark Mode --- */
body.dark-mode { background:#111827; color:#f9fafb; }
body.dark-mode .mach-shell, body.dark-mode .container { background:#111827; }
body.dark-mode .mach-card, body.dark-mode .affc-card { background:#1f2937; border-color:#374151; color:#f9fafb; }
body.dark-mode .mach-single-title, body.dark-mode h1, body.dark-mode h2, body.dark-mode h3 { color:#f9fafb; }
body.dark-mode .mach-single-desc, body.dark-mode .mach-card-title { color:#d1d5db; }
body.dark-mode .mach-tax-nav, body.dark-mode .mach-chip { background:#1f2937; border-color:#374151; color:#f9fafb; }
body.dark-mode .mach-sticky-bar { background:#1f2937; border-color:#374151; }
body.dark-mode .mach-disclosure { background:#1f2937; color:#9ca3af; }
body.dark-mode .mach-breadcrumb a { color:#d1d5db; }
body.dark-mode .mach-modal-box { background:#1f2937; color:#f9fafb; }

/* --- Dark Mode Toggle Button --- */
#sptDarkToggle { background:none; border:1px solid #e5e7eb; border-radius:6px; padding:6px 10px; cursor:pointer; font-size:1rem; transition:background .2s; }
#sptDarkToggle:hover { background:#f3f4f6; }
body.dark-mode #sptDarkToggle { border-color:#374151; color:#f9fafb; }
body.dark-mode #sptDarkToggle:hover { background:#374151; }

/* --- User Reviews --- */
.affc-reviews-section { margin: 40px 0; padding: 30px; background: #fff; border-radius: 12px; }
.affc-rating-summary { text-align: center; margin-bottom: 30px; padding-bottom: 30px; border-bottom: 1px solid #e5e7eb; }
.affc-rating-big { font-size: 48px; font-weight: 800; color: #111827; }
.affc-rating-big span { font-size: 24px; font-weight: 400; color: #6b7280; }
.affc-rating-stars { color: #f59e0b; font-size: 24px; margin: 10px 0; }
.affc-rating-count { color: #6b7280; font-size: 14px; }
.affc-reviews-list { margin-bottom: 40px; }
.affc-review-item { padding: 20px; border-bottom: 1px solid #e5e7eb; }
.affc-review-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.affc-review-author { font-weight: 600; }
.affc-review-date { color: #6b7280; font-size: 14px; }
.affc-review-rating { color: #f59e0b; }
.affc-review-title { font-weight: 600; margin: 10px 0; }
.affc-review-content { color: #374151; line-height: 1.6; }
.affc-review-form-wrap { background: #f9fafb; padding: 24px; border-radius: 12px; }
.affc-review-form h3 { margin-bottom: 20px; }
.affc-form-group { margin-bottom: 16px; }
.affc-form-group label { display: block; font-weight: 500; margin-bottom: 6px; }
.affc-form-group input, .affc-form-group textarea { width: 100%; padding: 10px 14px; border: 1px solid #d1d5db; border-radius: 8px; }
.affc-star-rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 8px; }
.affc-star-rating input { display: none; }
.affc-star-rating label { font-size: 28px; color: #d1d5db; cursor: pointer; transition: color 0.2s; }
.affc-star-rating label:hover, .affc-star-rating label:hover ~ label, .affc-star-rating input:checked ~ label { color: #f59e0b; }
.affc-submit-review { background: #111827; color: #fff; padding: 12px 24px; border: none; border-radius: 8px; cursor: pointer; font-weight: 600; }
.affc-review-message { margin-top: 12px; padding: 12px; border-radius: 6px; }

/* --- Responsive additions --- */
@media (max-width: 768px) {
  .mach-single-layout { grid-template-columns:1fr; }
  .mach-sticky-title { display:none; }
}

/* ============================================================
   EXTENDED STYLES v3 - Wishlist Drawer, Recently Viewed,
   Back to Top, OG meta (no CSS needed), Wishlist items AJAX
============================================================ */

/* --- Floating Wishlist Button --- */
.mach-wl-float { position:fixed; bottom:80px; right:20px; z-index:998; width:52px; height:52px; border-radius:50%; background:var(--mach-primary,#111827); color:#fff; border:none; font-size:1.3rem; cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.2); display:flex; align-items:center; justify-content:center; transition:transform .2s,box-shadow .2s; }
.mach-wl-float:hover { transform:scale(1.1); box-shadow:0 6px 24px rgba(0,0,0,.25); }
.mach-wl-bubble { position:absolute; top:-4px; right:-4px; background:#ef4444; color:#fff; font-size:.65rem; font-weight:700; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; line-height:1; }

/* --- Wishlist Drawer --- */
.mach-wl-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:1099; opacity:0; visibility:hidden; transition:opacity .3s; }
.mach-wl-overlay.open { opacity:1; visibility:visible; }
.mach-wl-drawer { position:fixed; top:0; right:0; bottom:0; width:min(380px,100vw); background:#fff; z-index:1100; transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; box-shadow:-8px 0 32px rgba(0,0,0,.12); }
.mach-wl-drawer.open { transform:translateX(0); }
.mach-wl-header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid #e5e7eb; }
.mach-wl-header h2 { font-size:1.1rem; font-weight:700; margin:0; }
.mach-wl-close { background:none; border:none; font-size:1.5rem; cursor:pointer; color:#6b7280; line-height:1; padding:4px; }
.mach-wl-items { flex:1; overflow-y:auto; padding:16px 24px; display:flex; flex-direction:column; gap:12px; }
.mach-wl-empty { color:#9ca3af; font-size:.9rem; text-align:center; padding:40px 0; }
.mach-wl-item { display:flex; gap:12px; align-items:center; padding:12px; border:1px solid #e5e7eb; border-radius:10px; text-decoration:none; color:inherit; transition:border-color .2s; }
.mach-wl-item:hover { border-color:#111827; }
.mach-wl-item img { width:64px; height:64px; object-fit:cover; border-radius:8px; flex-shrink:0; }
.mach-wl-item-info { flex:1; min-width:0; }
.mach-wl-item-title { font-size:.875rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mach-wl-item-price { font-size:.875rem; color:var(--mach-primary,#111827); font-weight:700; margin-top:2px; }
.mach-wl-item-remove { background:none; border:none; color:#9ca3af; cursor:pointer; font-size:1.1rem; flex-shrink:0; padding:4px; }
.mach-wl-item-remove:hover { color:#ef4444; }

/* --- Related Products Section --- */
.affc-related-products-section { margin: 40px 0; padding: 30px; background: #fff; border-radius: 12px; border: 1px solid #e5e7eb; }
.affc-related-products-section.affc-related-sidebar { margin: 0; padding: 20px; }
.affc-related-title { font-size: 20px; font-weight: 700; margin-bottom: 20px; color: #111827; }
.affc-related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.affc-related-grid[data-columns="8"] { grid-template-columns: repeat(4, 1fr); }
.affc-related-card { background: #f9fafb; border-radius: 12px; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; }
.affc-related-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,0.1); }
.affc-related-link { display: block; text-decoration: none; color: inherit; }
.affc-related-image { position: relative; aspect-ratio: 1; background: #f3f4f6; overflow: hidden; }
.affc-related-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.affc-related-card:hover .affc-related-image img { transform: scale(1.05); }
.affc-related-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; padding: 20px; text-align: center; font-size: 14px; color: #6b7280; }
.affc-related-info { padding: 16px; }
.affc-related-merchant { display: block; font-size: 12px; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
.affc-related-product-title { font-size: 14px; font-weight: 600; color: #111827; margin: 0 0 8px; line-height: 1.4; }
.affc-related-price { display: flex; align-items: center; gap: 8px; }
.affc-related-sale-price { font-size: 16px; font-weight: 700; color: #111827; }
.affc-related-regular-price { font-size: 14px; color: #9ca3af; text-decoration: line-through; }

/* Related Products Sidebar Layout */
.affc-related-sidebar .affc-related-grid { grid-template-columns: 1fr; }
.affc-related-sidebar .affc-related-card { display: flex; }
.affc-related-sidebar .affc-related-image { width: 80px; height: 80px; flex-shrink: 0; }
.affc-related-sidebar .affc-related-info { flex: 1; padding: 12px; }
.affc-related-sidebar .affc-related-product-title { font-size: 13px; }

/* Related Products Responsive */
@media (max-width: 1024px) {
  .affc-related-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
  .affc-related-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .affc-related-products-section { padding: 20px; }
}
@media (max-width: 480px) {
  .affc-related-grid { grid-template-columns: 1fr !important; }
}
body.dark-mode .mach-wl-drawer { background:#1f2937; color:#f9fafb; }
body.dark-mode .mach-wl-header { border-color:#374151; }
body.dark-mode .mach-wl-item { border-color:#374151; color:#f9fafb; }

/* --- Recently Viewed --- */
.mach-rv-wrap { padding:40px 0 0; }
.mach-recently-viewed { padding-top:32px; border-top:1px solid #e5e7eb; }
.mach-rv-title { font-size:1.1rem; font-weight:700; margin-bottom:16px; }
.mach-rv-grid { display:flex; gap:12px; overflow-x:auto; padding-bottom:8px; scrollbar-width:thin; }
.mach-rv-item { display:flex; flex-direction:column; align-items:center; gap:6px; text-decoration:none; color:inherit; min-width:100px; max-width:120px; flex-shrink:0; text-align:center; }
.mach-rv-item img { width:90px; height:90px; object-fit:cover; border-radius:8px; border:1px solid #e5e7eb; }
.mach-rv-name { font-size:.75rem; font-weight:600; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.mach-rv-price { font-size:.75rem; color:var(--mach-primary,#111827); font-weight:700; }

/* --- Back to Top --- */
.mach-back-top { position:fixed; bottom:20px; right:20px; z-index:997; width:44px; height:44px; border-radius:50%; background:#fff; border:2px solid #e5e7eb; color:#111827; font-size:1.4rem; cursor:pointer; box-shadow:0 2px 12px rgba(0,0,0,.1); opacity:0; visibility:hidden; transition:opacity .25s,visibility .25s,transform .2s; display:flex; align-items:center; justify-content:center; }
.mach-back-top.visible { opacity:1; visibility:visible; }
.mach-back-top:hover { transform:translateY(-3px); background:#111827; color:#fff; border-color:#111827; }
body.dark-mode .mach-back-top { background:#1f2937; border-color:#374151; color:#f9fafb; }
body.dark-mode .mach-back-top:hover { background:#374151; }

/* --- Quick View image in drawer --- */
.mach-qv-wrap { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.mach-qv-img { width:100%; border-radius:10px; }
.mach-qv-title { font-size:1.2rem; font-weight:700; margin-bottom:12px; }
.mach-qv-price { font-size:1.3rem; font-weight:700; color:var(--mach-primary,#111827); margin-bottom:16px; }
.mach-qv-actions { display:flex; gap:10px; flex-wrap:wrap; }
@media(max-width:600px){ .mach-qv-wrap { grid-template-columns:1fr; } }