:root { --bg:#fff; --warm:#f7f5f1; --ink:#1f2328; --ink2:#2c3035; --body:#232323; --muted:#667085; --bronze:#b08d57; --bronze-dark:#8c6a3d; --champagne:#d6b778; --pale:#f3ebdd; --line:#ded8ce; --focus:0 0 0 3px rgba(176,141,87,.32); }
.success,.error { background:var(--pale); color:var(--bronze-dark); }
.filters .filter-button { background:#fff; color:#232323; border:1px solid var(--bronze); }
.filters .filter-button:hover { background:var(--pale); color:#232323; border-color:var(--bronze-dark); }
.filters .filter-button.catalog-filter-active { background:var(--bronze); color:#fff; border-color:var(--bronze); }
/* The base card component uses display:flex.  This explicit rule guarantees
   that cards marked hidden by filter or search are never painted in the grid. */
[data-catalog-grid] > [data-product-card][hidden] { display:none !important; }
.catalog-tools input,.catalog-tools select { background:#fff; color:#232323; border-color:var(--champagne); }
.catalog-tools input:focus,.catalog-tools select:focus { border-color:var(--bronze); box-shadow:var(--focus); }
.rental-image { position:relative; aspect-ratio:4 / 3; height:auto; }
.rental-image.product-image { margin:0; overflow:hidden; background:#fff; }
.rental-image.product-image .product-gallery-image { position:absolute; inset:0; width:100%; height:100%; padding:.8rem; object-fit:contain; object-position:center; opacity:0; transition:opacity .22s ease; }
.rental-image.product-image .product-gallery-image.is-active { opacity:1; }
.product-gallery-dots { position:absolute; z-index:1; left:50%; bottom:.55rem; transform:translateX(-50%); display:flex; gap:.35rem; margin:0; padding:.3rem .45rem; border-radius:99px; background:rgba(31,35,40,.66); }
.product-gallery-dot { width:.6rem; height:.6rem; padding:0; border:1px solid #fff; border-radius:50%; background:transparent; cursor:pointer; }
.product-gallery-dot.is-active { background:#fff; }
.product-gallery-dot:focus-visible { outline:2px solid var(--champagne); outline-offset:3px; }
.rental-image .example-label { position:absolute;right:.55rem;bottom:.5rem;background:rgba(31,35,40,.82);color:#fff;border-radius:4px;padding:.12rem .35rem;font-size:.68rem; }
.nav-toggle { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
