/* Storefront layout extends the approved homepage typography and palette. */
.hm-commerce { max-width:1440px; }
.hm-catalog-heading { padding:8px 0 38px; max-width:780px; }
.hm-catalog-heading h1 { margin:0 0 18px; }
.hm-catalog-heading p { color:var(--hm-muted); font-size:15px; line-height:1.7; }
.hm-catalog { display:grid; grid-template-columns:225px minmax(0,1fr); gap:42px; align-items:start; }
.hm-filters { min-width:0; }
.hm-filter-heading { display:flex; align-items:center; justify-content:space-between; }
.hm-filter-heading h2 { font:500 19px 'DM Sans',sans-serif; letter-spacing:0; margin:0 0 14px; }
.hm-filter-heading [data-filter-close] { display:none; }
.hm-facet { border-bottom:1px solid #e7e5e4; padding:16px 0; }
.hm-facet summary { cursor:pointer; font-weight:500; font-size:14px; padding:4px 0 10px; min-height:34px; }
.hm-facet summary::marker { color:var(--hm-rose); }
.hm-facet-options { max-height:245px; overflow-y:auto; scrollbar-width:thin; overscroll-behavior:contain; }
.hm-facet-option { display:flex; gap:10px; align-items:center; min-height:40px; padding:6px 2px; cursor:pointer; font-size:13px; }
.hm-facet-option input { accent-color:#874451; width:17px; height:17px; flex-shrink:0; }
.hm-facet-option span { flex:1; }
.hm-facet-option small { color:var(--hm-muted); font-size:11px; }
.hm-facet-option:has(input:disabled) { opacity:.5; cursor:default; }
.hm-facet-find { width:100%; margin-bottom:12px; border:1px solid #d7d4d2; border-radius:0; font-size:13px !important; }
.hm-price-fields { display:flex; gap:10px; }
.hm-price-fields label { flex:1; min-width:0; font-size:12px; }
.hm-price-fields input { display:block; width:100%; margin-top:6px; border:1px solid #d7d4d2; border-radius:0; }
.hm-filter-submit { padding:20px 0; display:grid; gap:15px; text-align:center; }
.hm-filter-submit > a { font-size:12px; text-decoration:underline; }
.hm-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 23px; border:1px solid var(--hm-ink); background:var(--hm-ink); color:#fff !important; cursor:pointer; font:500 13px 'DM Sans',sans-serif; text-decoration:none !important; border-radius:0; }
.hm-button:hover { background:#383838; }
.hm-button:disabled { opacity:.55; cursor:wait; }
.hm-catalog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; min-height:50px; margin-bottom:22px; border-bottom:1px solid #e7e5e4; padding-bottom:18px; }
.hm-catalog-toolbar p { font-size:13px; color:var(--hm-muted); }
.hm-catalog-toolbar .woocommerce-ordering { float:none; margin:0; }
.hm-catalog-toolbar select { border:0; border-bottom:1px solid #ccc; padding:8px 0; font-size:12px; background:#fff; color:var(--hm-ink); max-width:250px; min-height:44px; }
.hm-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 24px; }
.hm-catalog-grid .hm-product-photo { height:270px; background:var(--hm-soft); }
.hm-catalog-grid .hm-product h3 { font:400 14px/1.55 'DM Sans',sans-serif; letter-spacing:0; margin:10px 0; min-height:64px; }
.hm-catalog-grid .hm-brand { margin-top:18px; }
.hm-catalog-grid .hm-price { font-size:13px; }
.hm-catalog-grid .hm-product-bottom { align-items:center; }
.hm-active-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.hm-active-filters a { display:inline-flex; align-items:center; gap:15px; background:var(--hm-soft); padding:9px 12px; min-height:40px; font-size:12px; }
.hm-active-filters a span { font-size:19px; line-height:1; }
.hm-empty { padding:65px 24px; background:var(--hm-soft); text-align:center; }
.hm-empty h2 { margin:0 0 16px; font-size:31px; }
.hm-empty p { max-width:440px; margin:0 auto 26px; color:var(--hm-muted); }
.hm-catalog-feedback { font-size:13px; padding-top:18px; }
.hm-commerce nav.woocommerce-pagination { margin-top:40px; }
.hm-commerce nav.woocommerce-pagination ul { border:0; display:flex; justify-content:center; gap:6px; }
.hm-commerce nav.woocommerce-pagination ul li { border:0; }
.hm-commerce nav.woocommerce-pagination ul li a,.hm-commerce nav.woocommerce-pagination ul li span { min-width:44px; min-height:44px; padding:14px; color:var(--hm-ink); }
.hm-commerce nav.woocommerce-pagination ul li span.current { background:var(--hm-ink); color:white; }
.hm-catalog[aria-busy="true"] .hm-catalog-results { opacity:.55; }
.hm-filter-open { display:none; }
.hm-commerce .woocommerce-breadcrumb { font-size:12px; color:var(--hm-muted); line-height:1.8; }
.hm-commerce div.product { padding-top:15px; }
.hm-commerce div.product .product_title { font-size:clamp(30px,3vw,42px); line-height:1.22; margin:8px 0 24px; }
.hm-commerce div.product div.images { width:49%; background:var(--hm-soft); padding:28px; }
.hm-commerce div.product div.images img { max-height:600px; object-fit:contain; }
.hm-commerce div.product div.summary { width:44%; padding:5px 0 30px; }
.hm-commerce div.product p.price,.hm-commerce div.product span.price { color:var(--hm-ink); font-size:23px; margin-bottom:22px; }
.hm-commerce div.product .price ins { background:none; text-decoration:none; }
.hm-commerce .woocommerce-product-details__short-description { color:#555; line-height:1.8; margin:20px 0; }
.hm-commerce .woocommerce-product-details__short-description p { margin-bottom:14px; }
.hm-commerce div.product form.cart { display:flex; flex-wrap:wrap; align-items:stretch; gap:12px; margin:26px 0; }
.hm-commerce div.product form.cart .quantity { margin:0; }
.hm-commerce .quantity input.qty { width:72px; min-height:48px; border:1px solid #ccc; border-radius:0; }
.hm-shop .woocommerce a.button,.hm-shop .woocommerce button.button,.hm-shop .woocommerce input.button,.hm-commerce a.button,.hm-commerce button.button,.hm-commerce input.button,.hm-shop .wc-block-components-button:not(.is-link) { border-radius:0; background:var(--hm-ink); color:white; padding:15px 22px; min-height:46px; font:500 13px 'DM Sans',sans-serif; border:1px solid var(--hm-ink); }
.hm-shop .woocommerce a.button:hover,.hm-shop .woocommerce button.button:hover,.hm-commerce button.button.alt:hover { background:#3c3c3c; color:white; }
.hm-shop .woocommerce a.button.alt,.hm-shop .woocommerce button.button.alt,.hm-commerce div.product form.cart .button.alt { background:var(--hm-ink); color:#fff; border-color:var(--hm-ink); }
.hm-shop .woocommerce a.button.alt:hover,.hm-shop .woocommerce button.button.alt:hover,.hm-commerce div.product form.cart .button.alt:hover { background:#3c3c3c; color:#fff; }
.hm-commerce div.product form.cart .button.alt.disabled { background:var(--hm-ink); opacity:.5; }
.hm-commerce div.product form.cart .variations { width:100%; margin:0; }
.hm-commerce .variations label { font-weight:500; }
.hm-commerce .variations select { min-height:46px; border:1px solid #ccc; background:white; }
.hm-commerce .single_variation_wrap { width:100%; }
.hm-commerce .woocommerce-variation-add-to-cart { display:flex; gap:12px; }
.hm-commerce .product_meta { display:grid; gap:10px; font-size:12px; color:var(--hm-muted); padding-top:20px; border-top:1px solid #ddd; }
.hm-commerce .product_meta a { text-decoration:underline; }
.hm-commerce .stock { font-size:13px; color:#3d684b; }
.hm-commerce .out-of-stock { color:#87504c; }
.hm-product-assistance { background:var(--hm-soft); padding:18px 20px; margin:22px 0; font-size:13px; line-height:1.7; }
.hm-product-assistance a { text-decoration:underline; }
.hm-commerce div.product .woocommerce-tabs { clear:both; padding-top:35px; }
.hm-commerce div.product .woocommerce-tabs ul.tabs { padding-left:0; }
.hm-commerce div.product .woocommerce-tabs ul.tabs li { border:0; border-radius:0; background:none; margin:0 24px 0 0; padding:0; }
.hm-commerce div.product .woocommerce-tabs ul.tabs li::before,.hm-commerce div.product .woocommerce-tabs ul.tabs li::after { display:none; }
.hm-commerce div.product .woocommerce-tabs ul.tabs li a { padding:17px 0; font-weight:400; color:#686463; }
.hm-commerce div.product .woocommerce-tabs ul.tabs li.active a { color:var(--hm-ink); border-bottom:2px solid var(--hm-ink); }
.hm-commerce .woocommerce-Tabs-panel { max-width:900px; line-height:1.8; padding:15px 0 35px !important; }
.hm-commerce .woocommerce-Tabs-panel p { margin-bottom:18px; }
.hm-commerce .woocommerce-Tabs-panel h2 { font-size:30px; }
.hm-commerce .related { clear:both; padding-top:28px; border-top:1px solid #ddd; }
.hm-commerce .related h2 { margin-bottom:30px; }
.hm-commerce ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.hm-commerce ul.products::before,.hm-commerce ul.products::after { display:none; }
.hm-commerce ul.products li.product { float:none; width:auto !important; margin:0 !important; }
.hm-commerce ul.products li.product img { height:250px !important; object-fit:contain; background:var(--hm-soft); padding:20px; }
.hm-commerce ul.products li.product .price { color:var(--hm-ink); font-size:14px; }
.hm-commerce .hm-mobile-purchase { display:none; }
.hm-content .woocommerce-message,.hm-content .woocommerce-info,.hm-content .woocommerce-error { border-top-color:var(--hm-rose); background:var(--hm-soft); line-height:1.7; }
.hm-content .woocommerce-message::before,.hm-content .woocommerce-info::before { color:#874451; }
.hm-content .woocommerce form .form-row input.input-text,.hm-content .woocommerce form .form-row textarea { min-height:46px; border:1px solid #c9c6c4; background:white; border-radius:0; }
.hm-content .woocommerce form .form-row label { font-weight:500; font-size:13px; }
.hm-content .woocommerce table.shop_table { border:0; border-collapse:collapse; }
.hm-content .woocommerce table.shop_table td,.hm-content .woocommerce table.shop_table th { padding:18px 12px; border-bottom:1px solid #e1dedd; }
.hm-content .woocommerce table.shop_table thead { background:var(--hm-soft); }
.hm-content .woocommerce-cart-form .product-thumbnail img { width:70px; height:90px; object-fit:contain; }
.hm-content .woocommerce .cart-collaterals .cart_totals { background:var(--hm-soft); padding:24px; }
.hm-content .woocommerce #payment { background:var(--hm-soft); border-radius:0; }
.hm-content .woocommerce #payment div.payment_box { background:white; }
.hm-content .woocommerce #payment div.payment_box::before { border-bottom-color:white; }
.hm-content .woocommerce-MyAccount-navigation ul { list-style:none; padding:0; margin:0; border-top:1px solid #ddd; }
.hm-content .woocommerce-MyAccount-navigation li { border-bottom:1px solid #ddd; }
.hm-content .woocommerce-MyAccount-navigation a { display:block; padding:15px; }
.hm-content .woocommerce-MyAccount-navigation .is-active a { background:var(--hm-soft); font-weight:500; }
.hm-content .woocommerce-MyAccount-content p { margin-bottom:20px; }
.hm-content .woocommerce-MyAccount-content a { text-decoration:underline; }
.hm-support { max-width:800px; line-height:1.8; }
.hm-support details { border-bottom:1px solid #ddd; padding:18px 0; }
.hm-support summary { cursor:pointer; font-weight:500; }
.hm-support details p { margin:16px 0 0; }
.hm-brand-directory { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:36px; }
.hm-brand-directory a { display:flex; min-height:115px; padding:25px; align-items:center; justify-content:center; border:1px solid #ddd; font:24px 'Marcellus',serif; text-align:center; }
.hm-brand-directory a:hover { background:var(--hm-soft); }
.hm-suggestions { position:absolute; z-index:10; top:100%; left:4%; right:4%; background:white; padding:24px; box-shadow:0 16px 26px #0002; border-top:1px solid #ddd; }
.hm-suggestions ul { list-style:none; margin:0 0 14px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 30px; }
.hm-suggestions a { display:flex; gap:15px; align-items:center; min-height:65px; font-size:13px; }
.hm-suggestions img { width:48px; height:60px; object-fit:contain; flex-shrink:0; }
.hm-suggestions small { display:block; margin-top:5px; color:var(--hm-muted); }
.hm-suggestions p { margin-bottom:10px; }
.hm-suggestions .hm-all-results { display:inline-flex; min-height:44px; text-decoration:underline; }
.hm-shop :focus-visible { outline:2px solid #874451; outline-offset:4px; }
@media (max-width:1000px) {
    .hm-catalog { grid-template-columns:200px minmax(0,1fr); gap:25px; }
    .hm-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 18px; }
    .hm-catalog-grid .hm-product-photo { height:240px; }
}
@media (max-width:760px) {
    .hm-catalog { display:block; }
    .hm-enhanced .hm-filter-open { display:inline-flex; margin-bottom:18px; background:white; color:var(--hm-ink) !important; min-width:120px; }
    .hm-enhanced .hm-filters { display:none; }
    .hm-enhanced .hm-filters.is-open { display:block; position:fixed; inset:0; z-index:1001; background:white; padding:24px; overflow-y:auto; overscroll-behavior:contain; }
    .hm-enhanced .hm-filters.is-open .hm-filter-heading { position:sticky; top:-24px; background:white; padding:12px 0; z-index:2; }
    .hm-filter-heading [data-filter-close] { display:inline-flex; }
    .hm-filter-submit { position:sticky; bottom:-24px; padding:16px 0 24px; background:white; border-top:1px solid #ddd; }
    .hm-facet-options { max-height:260px; }
    .hm-facet-option { min-height:44px; }
    .hm-catalog-grid { gap:28px 14px; }
    .hm-catalog-grid .hm-product-photo { height:220px; }
    .hm-catalog-toolbar { gap:5px; margin-bottom:18px; }
    .hm-catalog-toolbar p { font-size:12px; }
    .hm-catalog-toolbar select { max-width:190px; font-size:12px; }
    .hm-catalog-heading { padding-bottom:25px; }
    .hm-commerce div.product div.images,.hm-commerce div.product div.summary { width:100%; float:none; }
    .hm-commerce div.product div.images { padding:20px; }
    .hm-commerce div.product div.images img { max-height:420px; }
    .hm-commerce div.product div.summary { padding-top:20px; margin-bottom:10px; }
    .hm-commerce div.product .product_title { font-size:31px; }
    .hm-commerce div.product .woocommerce-tabs ul.tabs { display:flex; gap:22px; overflow-x:auto; }
    .hm-commerce div.product .woocommerce-tabs ul.tabs li { flex-shrink:0; margin:0; font-size:13px; }
    .hm-commerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
    .hm-commerce ul.products li.product img { height:200px !important; }
    .hm-commerce .hm-mobile-purchase { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:20; background:white; border-top:1px solid #ddd; padding:12px 20px max(12px,env(safe-area-inset-bottom)); align-items:center; justify-content:space-between; gap:12px; box-shadow:0 -5px 25px #0001; }
    .hm-mobile-purchase .price { font-size:15px !important; margin:0 !important; }
    body.single-product .hm-footer { padding-bottom:90px; }
    .hm-brand-directory { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .hm-brand-directory a { font-size:20px; min-height:90px; padding:15px; }
    .hm-suggestions { left:0; right:0; padding:18px; max-height:70vh; overflow-y:auto; }
    .hm-suggestions ul { grid-template-columns:1fr; }
}
@media (max-width:420px) {
    .hm-catalog-grid .hm-product-photo { height:185px; }
    .hm-catalog-grid .hm-product h3 { font-size:12px; min-height:75px; }
    .hm-catalog-grid .hm-price { font-size:12px; }
    .hm-catalog-grid .hm-add { width:44px; min-width:44px; }
    .hm-catalog-toolbar { align-items:flex-start; flex-direction:column; }
}
