/*! Rozstyle — rz-ui.css | new UI components layer (2026-07 fix build)
 * Deploys to: wp-content/mu-plugins/assets/rz-ui.css
 * Enqueued by rozstyle.php at wp_head priority 104 — AFTER rz-theme.css (102) and the
 * per-module inline styles (103), so contract-component styling here is the final word.
 * Uses only the --rz-* tokens defined in rz-theme.css; mobile-first; animates
 * transform/opacity only; AA text contrast (accent-deep #A53D49 for text on light).
 *
 * Sections:
 *   1. F9  — compact mobile header stack
 *   2. F65 — cache-safe bag count badge
 *   3. F57 — header live-search suggestions
 *   4. F14 — div.rz-filters (chips bar desktop / drawer mobile)
 *   5. F13/F16 helpers — PLP chrome tightening
 *   6. F27 — size/age pill selector
 *   7. F32/F99/F34 — PDP price extras + offers strip
 *   8. F28 — mobile sticky add-to-cart + buy-box ergonomics
 *   9. F50 — qty stepper + touch targets
 *  10. F43 — mobile sticky proceed-to-checkout bar
 *  11. F42/F88/F94 — freeship nudge, assurance row, thank-you card
 *  12. F52 — checkout error banner contrast
 *  13. Shared contract components — rails, promo cards, wishlist, returns form
 */

/* ============ 1. F9 — compact mobile header (target: ≤160px incl. announcement) ============ */
@media (max-width: 767.98px){
  .rz-announce{font-size:.58rem;letter-spacing:.05em;padding:7px 10px;}
  .site-header,#masthead.site-header{padding-top:.35rem;padding-bottom:.35rem;}
  .site-header > .col-full{row-gap:.25rem;}
  .site-branding{margin:0!important;}
  .site-branding .site-title,.site-header .site-title{margin:0!important;line-height:1.2;}
  .site-branding .site-title a,.site-title a{font-size:1.2rem!important;}
  .site-search,.site-header .widget_product_search,.site-header form.woocommerce-product-search{margin:0!important;}
  .site-search input[type=search],.site-search .search-field,
  .site-header .woocommerce-product-search .search-field{height:38px;}
  .rz-tools{gap:.7rem!important;}
  .site-header .storefront-primary-navigation,.site-header .rz-tools{min-height:0;}
  .site-header .storefront-primary-navigation{padding:0;margin:0;}
  /* the 67px of dead space between header and hero */
  .site-content{padding-top:.6rem!important;}
  .home .site-content{padding-top:0!important;}
  /* condensed (scrolled) state: collapse the search row — icons remain, scroll
     up or use the drawer to search; buys back ~44px of viewport while browsing */
  .site-header.is-condensed form.woocommerce-product-search,
  .site-header.is-condensed .site-search{max-height:0;opacity:0;margin:0!important;overflow:hidden;pointer-events:none;transition:opacity var(--rz-dur-fast) var(--rz-ease);}
  /* …but never collapse mid-interaction (field focused / suggest open) */
  .site-header.is-condensed form.woocommerce-product-search:focus-within,
  .site-header.is-condensed .site-search:focus-within{max-height:none;opacity:1;pointer-events:auto;overflow:visible;}
}
@media (max-width: 480px){
  .rz-announce{font-size:.55rem;letter-spacing:.03em;padding:6px 8px;line-height:1.45;}
}

/* ============ 2. F65 — bag badge ships EMPTY server-side; fragments fill it ============ */
/* rz-theme's .rz-bag-count{display:grid} would defeat [hidden] — restore it explicitly */
.rz-bag-count[hidden]{display:none!important;}
.rz-wl-link{align-self:center;}

/* ============ 3. F57 — live search suggestions dropdown ============ */
form.woocommerce-product-search{position:relative;}
.rz-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:1002;margin:0;padding:.35rem;list-style:none;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius);box-shadow:var(--rz-shadow-2);max-height:70vh;overflow:auto;}
.rz-suggest[hidden]{display:none!important;}
.rz-suggest li{margin:0;list-style:none;}
.rz-suggest a{display:flex;align-items:center;gap:.7rem;padding:.5rem .6rem;border-radius:var(--rz-radius-sm);text-decoration:none!important;color:var(--rz-ink);}
.rz-suggest li.is-active > a,.rz-suggest a:hover{background:var(--rz-surface-2);}
.rz-suggest img{width:40px;height:40px;object-fit:cover;border-radius:8px;flex:0 0 auto;background:var(--rz-surface-2);}
.rz-suggest-name{flex:1 1 auto;min-width:0;font:400 var(--rz-text-sm)/1.35 var(--rz-font-body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rz-suggest-price{flex:0 0 auto;font:600 var(--rz-text-sm) var(--rz-font-body);color:var(--rz-ink);text-align:right;}
.rz-suggest-price del{color:var(--rz-muted);font-weight:400;margin-right:.3rem;}
.rz-suggest-price ins{text-decoration:none;}
.rz-suggest-none a{justify-content:center;color:var(--rz-accent-deep);font-weight:600;font-size:var(--rz-text-sm);}

/* ============ 4. F14 — div.rz-filters ============ */
.rz-filters{margin:0 0 1rem;}
.rz-filters-toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem 1.05rem;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius-pill);font:600 var(--rz-text-sm) var(--rz-font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--rz-ink);cursor:pointer;transition:border-color var(--rz-dur-fast) var(--rz-ease),color var(--rz-dur-fast) var(--rz-ease);}
.rz-filters-toggle svg{width:17px;height:17px;}
.rz-filters-toggle:hover{border-color:var(--rz-accent-deep);color:var(--rz-accent-deep);}
/* open state: Storefront's button :focus/:active paints a dark red bg — pin white
   text on it explicitly (was red-on-red ~1.4:1) */
.rz-filters.is-open .rz-filters-toggle,
.rz-filters-toggle[aria-expanded="true"],
.rz-filters-toggle[aria-expanded="true"]:focus,
.rz-filters-toggle[aria-expanded="true"]:active{background:var(--rz-accent-deep);border-color:var(--rz-accent-deep);color:#fff;}
.rz-filters .rz-filter-title,.rz-filters .rz-filter-widget h3{font:600 var(--rz-text-xs) var(--rz-font-body);letter-spacing:var(--rz-track-caps);text-transform:uppercase;color:var(--rz-muted);margin:0 0 .45rem;}
/* attribute term lists render as chips */
.rz-filters ul.woocommerce-widget-layered-nav-list{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0;background:transparent!important;}
.rz-filters .woocommerce-widget-layered-nav-list li{margin:0!important;padding:0!important;list-style:none;display:inline-flex;align-items:center;background:none!important;}
/* Storefront paints an empty checkbox glyph via li::before on layered-nav lists —
   it rendered as stray 16px gray squares between the chips (desktop). Kill it. */
.rz-filters .woocommerce-widget-layered-nav-list li::before,
.rz-filters .woocommerce-widget-layered-nav-list li::after{content:none!important;display:none!important;}
/* widget wrappers bring their own background/margins — flatten inside the bar */
.rz-filters .rz-filter-widget,.rz-filters .rz-filter-widget.woocommerce,.rz-filters .widget_layered_nav{background:transparent!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;}
.rz-filters .woocommerce-widget-layered-nav-list li a{display:inline-flex;align-items:center;gap:.3rem;min-height:38px;padding:.35em .95em;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius-pill);font:500 var(--rz-text-sm) var(--rz-font-body);color:var(--rz-ink);text-decoration:none!important;transition:border-color var(--rz-dur-fast) var(--rz-ease),color var(--rz-dur-fast) var(--rz-ease);}
.rz-filters .woocommerce-widget-layered-nav-list li a:hover{border-color:var(--rz-accent-deep);color:var(--rz-accent-deep);}
.rz-filters .woocommerce-widget-layered-nav-list li.chosen a,
.rz-filters .woocommerce-widget-layered-nav-list li.woocommerce-widget-layered-nav-list__item--chosen a{background:var(--rz-accent-deep);border-color:var(--rz-accent-deep);color:#fff;}
/* product counts render OUTSIDE the chip anchor (loose "(2)" between chips) —
   noise at this catalog size; hidden. Re-style inside the anchor if ever wanted. */
.rz-filters .woocommerce-widget-layered-nav-list li .count{display:none!important;}
/* active-filter chips + clear */
.rz-filters-active{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;width:100%;margin:0 0 .75rem;}
.rz-filters-active ul{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0;}
.rz-filters-active li{margin:0;list-style:none;}
.rz-filters-active li a{display:inline-flex;align-items:center;gap:.35rem;padding:.3em .8em;background:var(--rz-accent-08);border:1px solid var(--rz-accent-15);border-radius:var(--rz-radius-pill);font:500 var(--rz-text-xs) var(--rz-font-body);color:var(--rz-accent-deep);text-decoration:none!important;}
.rz-filters-active li a::before{content:"\00d7";font-weight:700;}
.rz-filters-clear{font:600 var(--rz-text-xs) var(--rz-font-body);color:var(--rz-accent-deep);text-decoration:underline;text-underline-offset:2px;margin-left:.2rem;}
/* price slider (Woo's own structure, recolored to tokens) */
.rz-filter-price{min-width:min(250px,100%);}
.rz-filters .price_slider_wrapper{padding-top:.35rem;}
.rz-filters .ui-slider{position:relative;height:5px;background:var(--rz-line);border-radius:var(--rz-radius-pill);margin:0 8px 1rem;}
.rz-filters .ui-slider .ui-slider-range{position:absolute;height:100%;background:var(--rz-accent);border-radius:var(--rz-radius-pill);}
.rz-filters .ui-slider .ui-slider-handle{position:absolute;top:-6px;margin-left:-8px;width:16px;height:16px;background:var(--rz-surface);border:2px solid var(--rz-accent-deep);border-radius:50%;cursor:grab;}
.rz-filters .price_slider_amount{display:flex;align-items:center;gap:.7rem;font-size:var(--rz-text-sm);color:var(--rz-muted);}
.rz-filters .price_slider_amount .button{padding:.5em 1.1em;}
/* desktop ≥768: always-open horizontal bar */
@media (min-width: 768px){
  .rz-filters-toggle{display:none;}
  .rz-filters-body{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-start;padding:.85rem 1rem;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius-lg);}
  .rz-filter-group{display:block;}
}
/* mobile <768: drawer behind the Filters button */
@media (max-width: 767.98px){
  .rz-filters-body{display:none;}
  .rz-filters.is-open .rz-filters-body{display:block;margin-top:.6rem;padding:1rem;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius-lg);box-shadow:var(--rz-shadow-1);}
  .rz-filters .rz-filter-group{padding:.7rem 0;border-top:1px solid var(--rz-line);}
  .rz-filters .rz-filter-group:first-of-type{border-top:0;padding-top:0;}
}

/* ============ 5. F16 helpers — tighter PLP chrome above the grid on mobile ============ */
@media (max-width: 767.98px){
  .woocommerce-products-header{padding:.3rem 0 0!important;}
  .woocommerce-products-header__title.page-title{font-size:1.45rem;margin:.1rem 0 .4rem;}
  .woocommerce-breadcrumb{margin:0 0 .45rem!important;}
  .storefront-sorting{margin:0 0 .55rem;}
  .woocommerce .woocommerce-ordering{margin:0 0 .4rem!important;}
}
/* ~117px of dead air sat between the breadcrumb and the page title: Storefront's
   .storefront-breadcrumb WRAPPER carries ~1.6em padding + 3.7em margin-bottom.
   Cap the wrapper (all viewports) + the inner crumb margin on desktop. */
.storefront-breadcrumb{padding:.55rem 0!important;margin:0 0 .5rem!important;}
@media (min-width: 768px){
  .woocommerce-breadcrumb{margin-bottom:.4rem!important;}
  .woocommerce-products-header{padding-top:.4rem!important;}
}

/* ============ 6. F27 — variation pills (size, age — any attribute) ============ */
/* the original <select> stays functional in the DOM, visually hidden */
.rz-select-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;padding:0!important;margin:-1px!important;}
.rz-pills{display:flex;flex-wrap:wrap;gap:.55rem;padding:.15rem 0;}
.rz-pill{min-width:44px;min-height:44px;padding:.45em 1em;background:var(--rz-surface);border:1.5px solid var(--rz-ink-12);border-radius:var(--rz-radius);font:600 var(--rz-text-sm) var(--rz-font-body);color:var(--rz-ink);cursor:pointer;transition:border-color var(--rz-dur-fast) var(--rz-ease),background var(--rz-dur-fast) var(--rz-ease),color var(--rz-dur-fast) var(--rz-ease),transform var(--rz-dur-fast) var(--rz-ease);}
.rz-pill:hover{border-color:var(--rz-accent-deep);color:var(--rz-accent-deep);}
.rz-pill:active{transform:scale(.95);}
.rz-pill.is-active{background:var(--rz-accent-deep);border-color:var(--rz-accent-deep);color:#fff;}
.rz-pill.is-oos{color:var(--rz-ink-55);background:var(--rz-surface-2);border-style:dashed;text-decoration:line-through;cursor:not-allowed;}
.rz-pill.is-oos:hover{border-color:var(--rz-ink-12);color:var(--rz-ink-55);}
.single-product table.variations td.value{padding-top:.2rem;}
.single-product table.variations .reset_variations{display:inline-block;margin-top:.4rem;font-size:var(--rz-text-xs);color:var(--rz-muted);}

/* ============ 7. F32/F99/F34 — PDP price extras + offers strip ============ */
.single-product div.product p.price .rz-pdp-off{color:var(--rz-sale);font:600 1rem var(--rz-font-body);white-space:nowrap;}
.rz-tax-note{margin:-.55rem 0 .9rem;font-size:var(--rz-text-xs);color:var(--rz-muted);}
.rz-offers{margin:.5rem 0 1.15rem;padding:.95rem 1.1rem;background:var(--rz-surface);border:1px dashed var(--rz-champagne);border-radius:var(--rz-radius);}
.rz-offers-title{margin:0 0 .5rem;font:600 var(--rz-text-xs) var(--rz-font-body);letter-spacing:var(--rz-track-caps);text-transform:uppercase;color:var(--rz-ink);}
.rz-offers ul{list-style:none;margin:0;padding:0;}
.rz-offers li{position:relative;padding-left:1.05rem;margin:0 0 .4rem;font-size:var(--rz-text-sm);line-height:1.5;color:var(--rz-ink-70);}
.rz-offers li:last-child{margin-bottom:0;}
.rz-offers li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--rz-champagne);}
.rz-coupon-code{display:inline-block;padding:.05em .5em;background:var(--rz-bone);border:1px dashed var(--rz-accent-deep);border-radius:6px;color:var(--rz-accent-deep);font-weight:700;letter-spacing:.04em;cursor:pointer;}

/* ============ 8. F28 — mobile sticky add-to-cart (desktop behaviour untouched) ============ */
@media (max-width: 767.98px){
  body.single-product{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px));}
  .storefront-sticky-add-to-cart{display:block!important;position:fixed!important;top:auto!important;bottom:0!important;left:0;right:0;z-index:1001;margin:0;padding:.55rem .9rem calc(.55rem + env(safe-area-inset-bottom,0px));background:var(--rz-surface);border-top:1px solid var(--rz-line);box-shadow:0 -12px 30px -18px rgba(28,26,36,.4);animation:none!important;transform:translateY(110%)!important;transition:transform var(--rz-dur) var(--rz-ease);}
  .storefront-sticky-add-to-cart.rz-stuck{transform:translateY(0)!important;}
  .storefront-sticky-add-to-cart .col-full{padding:0!important;margin:0!important;max-width:none!important;}
  .storefront-sticky-add-to-cart__content{display:flex;align-items:center;gap:.7rem;}
  .storefront-sticky-add-to-cart__content img{width:46px;height:46px;object-fit:cover;border-radius:8px;flex:0 0 auto;margin:0;}
  .storefront-sticky-add-to-cart__content-product-info{flex:1 1 auto;min-width:0;line-height:1.25;}
  /* "You're viewing:" prefix is a bare text node — zero it, restore the <strong> title */
  .storefront-sticky-add-to-cart__content-title{display:block;font-size:0;}
  .storefront-sticky-add-to-cart__content-title strong{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font:600 .78rem/1.3 var(--rz-font-body);color:var(--rz-ink);}
  .storefront-sticky-add-to-cart__content-price{display:block;font:600 .85rem var(--rz-font-body);color:var(--rz-ink);}
  .storefront-sticky-add-to-cart__content-price del{color:var(--rz-muted);font-weight:400;font-size:.75rem;}
  .storefront-sticky-add-to-cart__content-price ins{text-decoration:none;}
  .storefront-sticky-add-to-cart__content-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7em 1.15em;}
  /* in-page buy box: full-width 48px ATC + roomy stepper */
  .single-product form.cart .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:.6rem;align-items:stretch;}
  .single-product form.cart .single_add_to_cart_button{flex:1 1 100%;width:100%;min-height:48px;display:inline-flex;align-items:center;justify-content:center;font-size:.92rem!important;}
}

/* ============ 9. F50 — qty stepper + 44px touch targets ============ */
.rz-qty{display:inline-flex;align-items:center;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius);overflow:hidden;}
.rz-qty input.qty{border:0!important;box-shadow:none!important;width:3.1em;min-height:44px;text-align:center;background:transparent;font:600 1rem var(--rz-font-body);appearance:textfield;-moz-appearance:textfield;}
.rz-qty input.qty::-webkit-outer-spin-button,.rz-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.rz-qty-btn{width:44px;min-height:44px;display:grid;place-items:center;background:var(--rz-surface-2);border:0;font:600 1.15rem/1 var(--rz-font-body);color:var(--rz-ink);cursor:pointer;transition:color var(--rz-dur-fast) var(--rz-ease),transform var(--rz-dur-fast) var(--rz-ease);}
.rz-qty-btn:hover{color:var(--rz-accent-deep);}
.rz-qty-btn:active{transform:scale(.92);}
@media (max-width: 767.98px){
  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
  .woocommerce-checkout #place_order{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:.92rem!important;}
  .woocommerce-cart table.cart td.product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:1.45rem;line-height:1;}
}

/* ============ 10. F43 — mobile sticky proceed-to-checkout bar (/cart/) ============ */
.rz-cart-sticky{display:none;}
@media (max-width: 767.98px){
  body.rz-has-cartbar{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px));}
  .rz-cart-sticky{position:fixed;left:0;right:0;bottom:0;z-index:1001;display:flex;align-items:center;gap:.85rem;padding:.6rem .95rem calc(.6rem + env(safe-area-inset-bottom,0px));background:var(--rz-surface);border-top:1px solid var(--rz-line);box-shadow:0 -12px 30px -18px rgba(28,26,36,.4);transform:translateY(0);transition:transform var(--rz-dur) var(--rz-ease);}
  .rz-cart-sticky.is-hidden{transform:translateY(115%);}
  .rz-cart-sticky[hidden]{display:none!important;}
  .rz-cart-sticky-total{display:flex;flex-direction:column;line-height:1.2;flex:0 0 auto;}
  .rz-cart-sticky-total span{font:600 var(--rz-text-xs) var(--rz-font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--rz-muted);}
  .rz-cart-sticky-total strong{font:700 1.05rem var(--rz-font-body);color:var(--rz-ink);}
  .rz-cart-sticky .rz-btn{flex:1 1 auto;min-height:48px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;}
}

/* ============ 11. F42 / F88 / F94 — freeship, assurance, thank-you ============ */
.rz-freeship{margin:0 0 1.1rem;padding:.85rem 1rem;background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius);}
.rz-freeship-msg{margin:0 0 .55rem;font:500 var(--rz-text-sm)/1.4 var(--rz-font-body);color:var(--rz-ink-70);}
.rz-freeship-msg strong,.rz-freeship-msg .amount{color:var(--rz-accent-deep);font-weight:700;}
.rz-freeship-bar{height:6px;background:var(--rz-surface-2);border-radius:var(--rz-radius-pill);overflow:hidden;}
.rz-freeship-fill{height:100%;background:linear-gradient(90deg,var(--rz-champagne),var(--rz-accent));border-radius:var(--rz-radius-pill);}
.widget_shopping_cart .rz-freeship{margin:.6rem 0;padding:.6rem .75rem;}
.rz-assure{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.1rem;margin:0 0 1rem;padding:.8rem .4rem;border-top:1px dashed var(--rz-line);border-bottom:1px dashed var(--rz-line);}
.rz-assure-item{display:inline-flex;align-items:center;gap:.42rem;font:600 var(--rz-text-xs) var(--rz-font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--rz-ink-70);}
.rz-assure-item svg{width:17px;height:17px;color:var(--rz-accent-deep);flex:0 0 auto;}
.rz-thanks{background:var(--rz-surface);border:1px solid var(--rz-line);border-radius:var(--rz-radius-lg);box-shadow:var(--rz-shadow-1);padding:clamp(1.2rem,3vw,2rem);margin:0 0 2rem;}
.rz-thanks-order{font-family:var(--rz-font-display);font-weight:600;font-size:clamp(1.35rem,1.1rem + 1vw,1.8rem);margin:0 0 .4rem;color:var(--rz-ink);}
.rz-thanks-cod{font-size:1.02rem;margin:0 0 .25rem;color:var(--rz-ink);}
.rz-thanks-cod strong,.rz-thanks-cod .amount{color:var(--rz-accent-deep);font-weight:700;}
.rz-thanks .rz-eta{color:var(--rz-muted);font-size:var(--rz-text-sm);margin:0 0 1rem;}
.rz-thanks-next{margin:0 0 1rem;padding-left:1.3rem;}
.rz-thanks-next li{margin:0 0 .45rem;font-size:var(--rz-text-sm);line-height:1.55;color:var(--rz-ink-70);}
.rz-thanks-next li strong{color:var(--rz-ink);}
.rz-thanks-contact{margin:0;font-size:var(--rz-text-sm);color:var(--rz-ink-70);}
.rz-thanks-contact a{color:var(--rz-accent-deep);text-decoration:underline;text-underline-offset:2px;}

/* ============ 12. F52 — validation banner link contrast ============ */
ul.woocommerce-error{color:#fff;}
ul.woocommerce-error li{color:#fff;}
ul.woocommerce-error a{color:#fff!important;font-weight:600;text-decoration:underline!important;text-underline-offset:2px;}

/* ============ 13. Shared contract components ============ */
/* homepage / listing rails (section.rz-rail from server scripts, nav + checkout modules) */
section.rz-rail{padding:var(--rz-space-sm) clamp(1rem,4vw,3rem);}
section.rz-rail .rz-section-title{margin-bottom:1.2rem;}
/* rails inside an already-padded .col-full (cart, checkout, search, archives) */
.woocommerce-cart section.rz-rail,.woocommerce-checkout section.rz-rail,
.search section.rz-rail,.archive section.rz-rail{padding-left:0;padding-right:0;}
/* promo cards (homepage rework) */
.rz-promo-card{position:relative;border-radius:var(--rz-radius-lg);overflow:hidden;box-shadow:var(--rz-shadow-1);background:var(--rz-surface-2);}
.rz-promo-card img{display:block;width:100%;height:100%;aspect-ratio:16/7;object-fit:cover;}
@media (max-width: 600px){.rz-promo-card img{aspect-ratio:4/5;}}
.rz-promo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(28,26,36,.72),transparent 55%);pointer-events:none;}
.rz-promo-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1rem;padding:clamp(1rem,3vw,1.8rem);}
.rz-promo-caption h3{margin:0;color:#fff;font-family:var(--rz-font-display);font-weight:600;font-size:clamp(1.3rem,1rem + 1.6vw,2rem);letter-spacing:var(--rz-track-tight);}
.rz-promo-caption .rz-btn{flex:0 0 auto;}
/* wishlist page grid — cards reuse the standard Woo card CSS; buttons full-width */
ul.products.rz-wl-grid .rz-wl-go{display:block;width:100%;text-align:center;margin-top:.55rem;}
/* returns-request form — cohesive with checkout forms; full-width submit on mobile */
.rz-return-form .rz-btn{min-height:48px;}
@media (max-width: 600px){.rz-return-form .rz-btn{width:100%;}}

/* "Coming Soon" category tiles (2026-07-17): empty categories are deliberately
   visible (owner decision) — style them as branded panels instead of the gray
   Woo placeholder photo. Class .rz-coming set in rz-nav.php; self-removes once
   the category has products. */
.rz-cats ul.products li.product-category.rz-coming img{display:none!important;}
.rz-cats ul.products li.product-category.rz-coming{background:linear-gradient(150deg,#2A2733 0%,#4A4056 55%,#6b5a6e 100%)!important;}
.rz-cats ul.products li.product-category.rz-coming::before{content:"Coming Soon";position:absolute;top:.8rem;left:.8rem;z-index:2;background:var(--rz-champagne);color:var(--rz-ink);border-radius:var(--rz-radius-pill);font:600 var(--rz-text-xs)/1 var(--rz-font-body);letter-spacing:.07em;text-transform:uppercase;padding:.5em .85em;}
.rz-cats ul.products li.product-category.rz-coming:hover{transform:none;}

/* wishlist toast must clear the fixed bottom bars (mobile PDP sticky ATC 68px,
   cart sticky CTA 68px) instead of covering them */
@media (max-width: 767.98px){
  body.single-product .rz-toast,
  body.woocommerce-cart .rz-toast{bottom:calc(84px + env(safe-area-inset-bottom, 0px))!important;}
}

/* empty-cart rescue: the stock Woo "cart is empty" info banner stacks above our
   block — hide it; and the CONTINUE SHOPPING CTA needs a 44px tap target
   (inline-flex: min-height is ignored on inline display) */
body.woocommerce-cart .cart-empty.woocommerce-info{display:none!important;}
.rz-empty-cart .rz-btn,.rz-cart-rescue .rz-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;}
