/*
Theme Name: Hearth & Hollow
Theme URI: https://ymanuehllabs.com/work/hearth-hollow/
Author: Ymanuehl Labs
Author URI: https://ymanuehllabs.com
Description: A calm, premium WooCommerce block theme for home, lifestyle and craft brands: live search, filters, offers, wishlist, testimonials, a journal and one-click demo content. Settings in Appearance > Hearth settings. Companion plugin Hearth Core included. Guides: GUIDE.md (store owners) and DEVELOPER.md.
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 8.1
Requires Plugins: woocommerce
Version: 1.4.5
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hearth
Tags: e-commerce, block-styles, full-site-editing, wide-blocks, custom-logo, editor-style, translation-ready, one-column, three-columns

Hearth & Hollow WordPress Theme, (C) 2026 Ymanuehl Labs.
Hearth & Hollow is distributed under the terms of the GNU GPL v2 or later.
*/

/* Base (links and keyboard focus) */
a { text-decoration-thickness: 1px !important; text-underline-offset: .1em; }
/* Focus outlines are for keyboard users: shown on Tab (:focus-visible), never on a mouse click or tap. Text boxes
   still show their focus ring when clicked (the browser counts that as :focus-visible), so typing stays clear. */
:where(.wp-site-blocks *:focus-visible) { outline-width: 2px; outline-style: solid; outline-offset: 2px; }
.wp-site-blocks :focus:not(:focus-visible), body > :focus:not(:focus-visible) { outline: none; }
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content { outline-offset: 4px; }
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content { outline-offset: 0; }


:root {
  /* Light tints of the accent colour, for text on dark photos and dark bars. They follow Styles > Colors > Accent. */
  --hh-ember-light: color-mix(in srgb, var(--wp--preset--color--accent-1) 45%, #fff);
  --hh-ember-pale: color-mix(in srgb, var(--wp--preset--color--accent-1) 22%, #fff);
}

/* Header */
.hh-header { border-bottom: 1px solid var(--wp--preset--color--accent-2); }
.hh-header .wp-block-site-title a { text-decoration: none; font-family: var(--wp--preset--font-family--literata); font-weight: 600; letter-spacing: -0.01em; }
.hh-nav a { text-decoration: none; }
.hh-nav a:hover, .hh-nav a:focus-visible { text-decoration: underline; text-underline-offset: 0.25em; }

/* Store notice: calm brand colours instead of WooCommerce purple, pinned to the bottom. WooCommerce shows it with
   JavaScript, so pinning it means nothing on the page moves when it appears. */
.woocommerce-store-notice, p.demo_store {
  background: var(--wp--preset--color--contrast) !important;
  color: var(--wp--preset--color--base) !important;
  font-size: 0.875rem; padding: 0.6rem 1rem; position: fixed !important; top: auto !important; bottom: 0 !important;
  left: 0; right: 0; margin: 0; box-sizing: border-box; width: 100%; z-index: 99;
}
.woocommerce-store-notice a, p.demo_store a { color: var(--wp--preset--color--base) !important; }

/* Home */
.hh-hero { gap: clamp(1.5rem, 4vw, 4rem); }
.hh-hero .hh-hero-title { font-size: clamp(2.4rem, 5.5vw, 4.25rem); line-height: 1.05; }
.hh-hero img, .hh-cats img { border-radius: 14px; aspect-ratio: 1; object-fit: cover; width: 100%; }
.hh-eyebrow { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.8rem; color: var(--wp--preset--color--accent-1); font-weight: 600; }
.hh-cats .wp-block-heading a { text-decoration: none; }
.hh-cats .wp-block-image { margin-bottom: 0.75rem; transition: transform .3s ease; }
.hh-cats .wp-block-column:hover .wp-block-image { transform: translateY(-3px); }
.hh-values { background: var(--wp--preset--color--accent-5); border-radius: 18px; }
.hh-values h3 { font-size: 1.15rem; margin-bottom: .35rem; }
.hh-values p { color: var(--wp--preset--color--accent-4); margin-top: 0; }

/* Product cards everywhere: soft corners, square photos */
.wc-block-components-product-image img, .wp-block-woocommerce-product-image img { border-radius: 12px; }

/* Add to cart before an option is chosen: readable, clearly inactive (WooCommerce fades it to 3:1 contrast). */
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled {
  opacity: 1 !important; background: var(--wp--preset--color--accent-2) !important; color: var(--wp--preset--color--contrast) !important; cursor: not-allowed;
}


/* Footer */
.hh-footer { background: var(--wp--preset--color--accent-5); font-size: 0.95rem; }
.hh-footer a { text-decoration: none; }
.hh-footer a:hover { text-decoration: underline; }
.hh-footer .hh-small { color: var(--wp--preset--color--accent-4); font-size: 0.85rem; }

@media (prefers-reduced-motion: reduce) { .hh-cats .wp-block-image { transition: none; } }

/* Header extras */
.hh-brand { gap: 0.55rem; align-items: center; }
.hh-header .wp-block-site-logo img { display: block; }
.hh-search .wp-block-search__button { background: transparent; color: var(--wp--preset--color--contrast); border: 0; padding: 6px; }
.hh-search .wp-block-search__input { border-radius: 999px; border: 1px solid var(--wp--preset--color--accent-2); }

/* Shop and category pages */
.hh-archive-head { background: var(--wp--preset--color--accent-5); border-radius: 18px; padding: clamp(1.25rem, 3vw, 2.5rem); }
.hh-archive-head h1 { margin: 0; font-size: clamp(2rem, 4.5vw, 3.25rem); }
.hh-archive-head p { margin: 0.5rem 0 0; color: var(--wp--preset--color--accent-4); max-width: 42rem; }
.hh-shop { gap: clamp(1.5rem, 3vw, 3rem); }
.hh-filters :is(h2, h3) { margin: 1.5rem 0 0.5rem; }
.hh-filters :is(h2, h3):first-of-type { margin-top: 0; }
@media (max-width: 781px) { .hh-shop .hh-filters { flex-basis: auto !important; } }

/* Free shipping progress (cart and checkout) */
.hh-ship { background: var(--wp--preset--color--accent-5); border-radius: 14px; padding: 0.9rem 1.1rem; margin: 0 0 1.5rem; }
.hh-ship p { margin: 0 0 0.55rem; }
.hh-ship .hh-track { display: block; height: 8px; border-radius: 99px; background: var(--wp--preset--color--accent-2); overflow: hidden; }
.hh-ship .hh-fill { display: block; height: 100%; width: var(--p, 0%); background: var(--wp--preset--color--accent-3); border-radius: 99px; transition: width .4s ease; }

/* Newsletter (demo: nothing is saved) */
.hh-news { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.hh-news input { flex: 1 1 12rem; min-width: 0; padding: 0.7rem 1rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--accent-2); background: var(--wp--preset--color--base); font: inherit; }
.hh-news button { border: 0; padding: 0.7rem 1.3rem; cursor: pointer; font: inherit; }
.hh-news-msg { flex-basis: 100%; margin: 0.25rem 0 0; font-size: 0.9rem; }
@media (prefers-reduced-motion: reduce) { .hh-ship .hh-fill { transition: none; } }

/* Small screens: keep the shop name on one line; keep the price filter inside its column. */
.hh-header .wp-block-site-title { white-space: nowrap; }
.hh-footer .hh-footer__brand { font-family: var(--wp--preset--font-family--literata); font-size: 1.4rem; margin: 0 0 0.8rem; }
@media (max-width: 600px) { .hh-header .wp-block-site-title { font-size: 1.15rem !important; } .hh-mark svg { width: 24px; height: 24px; } }
.hh-filters { min-width: 0; }
.hh-filters input[type="text"], .hh-filters input[type="number"] { max-width: 100%; box-sizing: border-box; }
.hh-filters .wp-block-woocommerce-product-filter-price-slider { overflow: hidden; padding-inline: 2px; }

/* ================= v3: brand atmosphere ================= */

/* Promo bar above the header: one message at a time */
.hh-promo { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); text-align: center; font-size: 0.82rem; letter-spacing: 0.04em; padding: 0.5rem 1rem; }
.hh-promo p { margin: 0; display: grid; }
.hh-promo [data-msg] { grid-area: 1 / 1; transition: opacity .5s ease; }
.hh-promo [data-msg]:not(.is-on) { opacity: 0; visibility: hidden; }
.hh-promo a { color: inherit; }
.hh-promo strong { color: var(--hh-ember-light); font-weight: 600; }

/* Navigation: submenu panel and Sale in the accent colour */
.hh-nav .wp-block-navigation__submenu-container { background: var(--wp--preset--color--base) !important; border: 1px solid var(--wp--preset--color--accent-2) !important; border-radius: 12px; padding: 0.4rem !important; box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent); }
.hh-nav .wp-block-navigation__submenu-container a { padding: 0.45rem 0.8rem !important; border-radius: 8px; }
.hh-nav .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--accent-5); text-decoration: none; }
.hh-nav .hh-sale a { color: var(--wp--preset--color--accent-1); font-weight: 600; }

/* Hero: full-bleed photo with the words on it */
.hh-hero-cover { color: #fff; }
.hh-hero-cover .wp-block-cover__inner-container { max-width: 1280px; margin-inline: auto; width: 100%; padding-inline: var(--wp--style--root--padding-left, 1.5rem); }
.hh-hero-cover h1 { font-size: clamp(2.6rem, 6.5vw, 5.5rem); line-height: 1.02; max-width: 13ch; margin: 0.3rem 0 1rem; color: #fff; }
.hh-hero-cover p { max-width: 34rem; font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: rgb(255 255 255 / 0.92); }
.hh-hero-cover .hh-eyebrow { color: var(--hh-ember-light); }
.hh-hero-cover .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.hh-hero-cover .wp-block-button__link:hover { background: var(--wp--preset--color--accent-1); color: #fff; }
.hh-hero-cover .is-style-outline .wp-block-button__link { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.8); }
.hh-hero-cover img.wp-block-cover__image-background { animation: hh-zoom 18s ease-out both; }
@keyframes hh-zoom { from { transform: scale(1.06); } to { transform: scale(1); } }

/* Manifesto */
.hh-manifesto { text-align: center; max-width: 52rem; margin-inline: auto; }
.hh-manifesto .hh-big { font-family: var(--wp--preset--font-family--literata); font-size: clamp(1.5rem, 3vw, 2.35rem); line-height: 1.35; letter-spacing: -0.01em; }
.hh-manifesto .hh-sign { color: var(--wp--preset--color--accent-4); font-style: italic; font-family: var(--wp--preset--font-family--literata); }

/* Section heads */
.hh-section-head { align-items: end; }
.hh-section-head h2 { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
.hh-section-head p { margin: 0; }

/* Story split */
.hh-story { gap: clamp(2rem, 5vw, 5rem); }
.hh-story img { border-radius: 18px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.hh-story h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; }
.hh-story .hh-facts { display: flex; gap: 2.5rem; flex-wrap: wrap; margin: 1.5rem 0; }
.hh-story .hh-facts strong { display: block; font-family: var(--wp--preset--font-family--literata); font-size: 2rem; font-weight: 500; color: var(--wp--preset--color--accent-1); }
.hh-story .hh-facts span { color: var(--wp--preset--color--accent-4); font-size: 0.9rem; }

/* Promo band */
.hh-band { background: var(--wp--preset--color--accent-1); color: #fff; border-radius: 22px; padding: clamp(2rem, 5vw, 4rem); }
.hh-offer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem; box-sizing: border-box; }
.hh-band h2 { color: #fff; font-size: clamp(1.9rem, 4vw, 3rem); margin: 0.2rem 0 0.6rem; }
.hh-band p { color: rgb(255 255 255 / 0.92); max-width: 36rem; }
.hh-band .hh-eyebrow { color: var(--hh-ember-pale); }
.hh-band code { background: rgb(255 255 255 / 0.18); padding: 0.15rem 0.5rem; border-radius: 6px; font-family: inherit; font-weight: 600; letter-spacing: 0.06em; }
.hh-band .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.hh-band .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: #fff; }

/* Kind words (sample reviews) */
.hh-quotes .wp-block-column { background: var(--wp--preset--color--accent-5); border-radius: 18px; padding: 1.75rem; }
.hh-quotes .hh-stars { color: var(--wp--preset--color--accent-1); letter-spacing: 0.15em; margin: 0 0 0.6rem; }
.hh-quotes blockquote { margin: 0; font-family: var(--wp--preset--font-family--literata); font-size: 1.15rem; line-height: 1.5; border: 0; padding: 0; }
.hh-quotes cite, .hh-quotes .hh-who { display: block; margin-top: 0.9rem; font-style: normal; font-size: 0.9rem; color: var(--wp--preset--color--accent-4); }
.hh-sample, .hh-sample-note { display: inline-block; font-family: var(--wp--preset--font-family--manrope); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.02em; color: var(--wp--preset--color--accent-4); background: var(--wp--preset--color--accent-5); border-radius: 99px; padding: 0.2rem 0.65rem; vertical-align: middle; }

/* Journal cards */
.hh-journal .wp-block-post-featured-image img { border-radius: 14px; transition: transform .5s ease; }
.hh-journal .wp-block-post-featured-image { overflow: hidden; border-radius: 14px; }
.hh-journal li:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.hh-journal .wp-block-post-title a { text-decoration: none; }
.hh-journal .wp-block-post-excerpt { color: var(--wp--preset--color--accent-4); }

/* Product cards: labels */
.wc-block-components-product-image, .wp-block-woocommerce-product-image { position: relative; }
.hh-badge { position: absolute; z-index: 2; top: 0.7rem; left: 0.7rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.3rem 0.65rem; border-radius: 99px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); box-shadow: 0 2px 8px color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent); }
.hh-badge--new { background: var(--wp--preset--color--accent-3); color: #fff; }
.wc-block-components-product-sale-badge { border-radius: 99px !important; background: var(--wp--preset--color--accent-1) !important; color: #fff !important; border: 0 !important; font-size: 0.72rem !important; letter-spacing: 0.06em; padding: 0.3rem 0.65rem !important; }

/* Product page */
.hh-trust { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 0.45rem; font-size: 0.92rem; color: var(--wp--preset--color--accent-4); }
.hh-trust li::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--wp--preset--color--accent-3); margin-right: 0.6rem; vertical-align: middle; }
.woocommerce-product-gallery__image img { border-radius: 14px; }
.flex-control-thumbs { display: flex; gap: 0.6rem; margin-top: 0.75rem !important; }
.flex-control-thumbs li { width: 76px !important; }
.flex-control-thumbs img { border-radius: 10px; opacity: 0.6; transition: opacity .2s; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-tabs ul.tabs li a { text-decoration: none; }
.woocommerce-product-attributes th { text-align: left; font-weight: 600; padding-right: 1rem; }
.woocommerce-Reviews .verified { font-style: normal; color: var(--wp--preset--color--accent-3); font-weight: 600; }
.woocommerce-Reviews .verified::before { content: "\2713  "; }
.woocommerce-Reviews .star-rating, .star-rating span::before { color: var(--wp--preset--color--accent-1); }

/* Contact page */
.hh-form p { margin: 0 0 1rem; }
.hh-form label { display: block; font-weight: 600; font-size: 0.92rem; margin-bottom: 0.35rem; }
.hh-form input, .hh-form select, .hh-form textarea { width: 100%; box-sizing: border-box; padding: 0.75rem 0.9rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 10px; background: #fff; font: inherit; color: inherit; }
.hh-form input:focus, .hh-form select:focus, .hh-form textarea:focus, .hh-news input:focus { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; }
.hh-form button { border: 0; padding: 0.8rem 1.6rem; cursor: pointer; font: inherit; }
.hh-support { background: var(--wp--preset--color--accent-5); border-radius: 18px; padding: 1.75rem !important; }
.hh-support h3 { margin-top: 0; }
.hh-support h3 ~ h3 { margin-top: 1.5rem; }

/* Tables and wide images in pages */
.hh-table table { border-collapse: collapse; width: 100%; }
.hh-table th, .hh-table td { border-bottom: 1px solid var(--wp--preset--color--accent-2); padding: 0.75rem 0.5rem; text-align: left; }
.hh-wide-img img { border-radius: 18px; }

/* Cart drawer progress */
.hh-ship--drawer { margin: 0.75rem 1rem 0; }

/* Filters: calmer lists */
.hh-filters .wc-block-product-filter-checkbox-list__items, .hh-filters ul { border: 0 !important; padding: 0 !important; }
.hh-filters .wp-block-woocommerce-product-filter-checkbox-list { border: 0 !important; }

/* Reveal on scroll (only when JavaScript runs) */
.hh-js .hh-reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s ease; }
.hh-js .hh-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .hh-hero-cover img.wp-block-cover__image-background { animation: none; }
  .hh-js .hh-reveal { opacity: 1; transform: none; transition: none; }
  .hh-promo [data-msg] { transition: none; }
  .hh-journal .wp-block-post-featured-image img { transition: none; }
}

/* Phones: the header row must fit 360px. Smaller gaps; the account icon moves to the footer and menu. */
@media (max-width: 600px) {
  .hh-header .wp-block-group { gap: 0.6rem !important; }
  .hh-header .wp-block-woocommerce-customer-account { display: none; }
  .hh-promo { font-size: 0.75rem; }
  /* Four icons (menu, search, wishlist, cart) at 40px with no gap between them: their round hover areas already
     space them, and 40px stays well above the 24px minimum tap target. */
  .hh-header .wp-block-group.is-content-justification-right { gap: 0 !important; }
  .hh-header .wp-block-navigation__responsive-container-open, .hh-header .wc-block-mini-cart__button,
  .hh-header .hh-search-open, .hh-header .hh-wish-link { min-width: 40px; min-height: 40px; }
}
/* Small phones: a 16px page margin (was 30px) on the whole page so the header still lines up with the content, a
   smaller title, then no logo mark below 370px and 36px icons below 340px. */
@media (max-width: 400px) {
  html body { --wp--style--root--padding-left: 16px; --wp--style--root--padding-right: 16px; }
  .hh-header .wp-block-site-title { font-size: 1rem !important; }
}
@media (max-width: 370px) { body:not(.hh-logo-only) .hh-header .hh-brand .wp-block-site-logo { display: none; } } /* with the name shown; a logo shown alone always stays */
@media (max-width: 340px) {
  .hh-header .wp-block-navigation__responsive-container-open, .hh-header .wc-block-mini-cart__button,
  .hh-header .hh-search-open, .hh-header .hh-wish-link { min-width: 36px; min-height: 36px; }
}

/* ================= v3 polish (from the local audit) ================= */
/* Filters: no boxes, tidy checkboxes, price inputs inside the sidebar */
.hh-filters .wc-block-product-filter-checkbox-list__items { border: 0 !important; padding: 0 !important; margin: 0; max-height: none; }
.hh-filters .wp-block-woocommerce-product-filter-checkbox-list { border: 0 !important; padding: 0 !important; background: none !important; }
.hh-filters .wc-block-product-filter-checkbox-list__item { padding: 0.2rem 0; }
.hh-filters .wc-block-product-filter-checkbox-list__label { font-size: 0.95rem; }
.hh-filters .wc-block-product-filter-price-slider__content { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.hh-filters .wc-block-product-filter-price-slider__range { grid-column: 1 / -1; }
.hh-filters .wc-block-product-filter-price-slider__content input.text { width: 100% !important; min-width: 0; box-sizing: border-box; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 8px; padding: 0.35rem 0.5rem; background: #fff; }

/* Product cards: buttons line up at the bottom whether or not a card has stars */
.wc-block-product-template > li, ul.products > li.product { display: flex; flex-direction: column; }
.wc-block-product-template > li .wp-block-woocommerce-product-button, ul.products > li.product .button { margin-top: auto !important; }
.wc-block-components-product-rating .wc-block-components-product-rating__stars span::before, .star-rating span::before, .wc-block-components-product-rating__stars::before { color: var(--wp--preset--color--accent-1); }
.woocommerce-product-rating .star-rating, .woocommerce-product-rating .star-rating span::before { color: var(--wp--preset--color--accent-1); }

/* Classic product lists (You may also like, cross-sells): same look as the block cards */
ul.products { gap: 1.5rem !important; }
ul.products li.product img { border-radius: 12px; aspect-ratio: 1; object-fit: cover; }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--wp--preset--font-family--literata); font-size: 1.1rem !important; font-weight: 500; }
ul.products li.product .onsale, span.onsale { min-height: 0 !important; min-width: 0 !important; line-height: 1 !important; border-radius: 99px !important; background: var(--wp--preset--color--accent-1) !important; color: #fff !important; font-size: 0.72rem !important; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.35rem 0.65rem !important; top: 0.7rem !important; right: 0.7rem !important; left: auto !important; margin: 0 !important; }
.upsells.products > h2, .related.products > h2, .cross-sells > h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }

/* Product page: no internal tags in the meta line */
.product_meta .tagged_as { display: none; }

/* Dropdowns (size, colour, sorting) */
select, .woocommerce-ordering select, table.variations select {
  appearance: none; -webkit-appearance: none; font: inherit; font-size: 0.95rem; color: var(--wp--preset--color--contrast);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232B2620' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 0.85rem center;
  border: 1px solid var(--wp--preset--color--accent-2); border-radius: 10px; padding: 0.6rem 2.4rem 0.6rem 0.9rem; min-height: 44px; cursor: pointer;
}
select:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; }
table.variations th.label { vertical-align: middle; padding-right: 1rem; }
.quantity input.qty { min-height: 44px; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 10px; }
.hh-filters fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
/* Contact page: use the wide layout so the form and the support panel both have room */
.hh-contact { max-width: min(1100px, 100%) !important; margin-inline: auto !important; gap: clamp(1.5rem, 4vw, 3.5rem); }
.page .wp-block-post-title, .page-template-default h1 { max-width: min(1100px, 100%); }
.hh-filters .wp-block-woocommerce-product-filter-price-slider .wc-block-product-filter-price-slider__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important; }
.hh-filters .wp-block-woocommerce-product-filter-price-slider input.text, .hh-filters .wp-block-woocommerce-product-filter-price-slider .text input { width: 100% !important; min-width: 0 !important; box-sizing: border-box; }
.hh-filters .wc-block-product-filter-price-slider__range, .hh-filters .wc-block-product-filter-price-slider__range input { max-width: 100% !important; }

/* Hero sits right under the header, with no gap */
.wp-site-blocks > .hh-hero-cover, .hh-hero-cover { margin-block-start: 0 !important; }

/* ================= v3.1: high-end shop UX ================= */
/* Product cards: portrait photos, second photo on hover, quiet add-to-cart */
.wc-block-product-template .wc-block-components-product-image { overflow: hidden; border-radius: 14px; }
.wc-block-product-template .wc-block-components-product-image img { aspect-ratio: 4 / 5 !important; object-fit: cover; border-radius: 14px; transition: transform .6s ease, opacity .45s ease; }
.wc-block-components-product-image a { display: block; position: relative; }
.wc-block-components-product-image img.hh-alt { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
@media (hover: hover) {
  .wc-block-product:hover .wc-block-components-product-image img.hh-alt { opacity: 1; }
  .wc-block-product:hover .wc-block-components-product-image img:not(.hh-alt) { transform: scale(1.03); }
  .wc-block-product .wp-block-woocommerce-product-button { opacity: 0; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease; }
  .wc-block-product:hover .wp-block-woocommerce-product-button, .wc-block-product:focus-within .wp-block-woocommerce-product-button { opacity: 1; transform: none; }
}
.wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link, .wc-block-product .wp-block-woocommerce-product-button button { width: 100%; background: transparent !important; color: var(--wp--preset--color--contrast) !important; border: 1px solid var(--wp--preset--color--contrast) !important; font-size: 0.85rem !important; padding: 0.55rem 1rem !important; }
.wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link:hover, .wc-block-product .wp-block-woocommerce-product-button button:hover { background: var(--wp--preset--color--contrast) !important; color: var(--wp--preset--color--base) !important; }
.wc-block-product .wp-block-post-title { margin: 0.8rem 0 0.2rem; font-size: 1.05rem !important; }
.wc-block-product .wc-block-components-product-price { font-size: 0.95rem; }

/* Wishlist heart */
.hh-heart { position: absolute; z-index: 3; top: 0.6rem; right: 0.6rem; width: 38px; height: 38px; border-radius: 50%; border: 0; background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent); color: var(--wp--preset--color--contrast); display: grid; place-items: center; cursor: pointer; transition: transform .2s ease; }
.hh-heart:hover { transform: scale(1.08); }
.hh-heart.is-on { color: var(--wp--preset--color--accent-1); }
.hh-heart.is-on path, .hh-wish-btn.is-on path { fill: currentColor; }
.wc-block-components-product-sale-badge { top: auto !important; bottom: 0.7rem; right: 0.7rem !important; }
.wp-block-woocommerce-product-sale-badge { position: absolute; inset: auto 0.7rem 0.7rem auto; z-index: 2; }
.hh-wish-link { position: relative; display: inline-flex; color: var(--wp--preset--color--contrast); }
.hh-wish-count { position: absolute; top: -6px; right: -9px; min-width: 18px; height: 18px; border-radius: 99px; background: var(--wp--preset--color--accent-1); color: #fff; font-size: 0.7rem; font-weight: 600; display: grid; place-items: center; padding: 0 4px; }
.hh-wish-btn { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem; background: none; border: 0; padding: 0.4rem 0; color: var(--wp--preset--color--contrast); font: inherit; font-size: 0.95rem; cursor: pointer; text-decoration: underline; text-underline-offset: 0.25em; }
.hh-wish-btn.is-on { color: var(--wp--preset--color--accent-1); }
.hh-wish-btn .hh-wish-btn__on, .hh-wish-btn.is-on .hh-wish-btn__off { display: none; }
.hh-wish-btn.is-on .hh-wish-btn__on { display: inline; }

/* Limited-time sale */
.hh-ends { display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em; color: var(--wp--preset--color--accent-1); font-variant-numeric: tabular-nums; }
.wc-block-components-product-image .hh-ends { position: absolute; left: 0.7rem; bottom: 0.7rem; z-index: 2; background: color-mix(in srgb, var(--wp--preset--color--base) 94%, transparent); padding: 0.3rem 0.6rem; border-radius: 99px; }
.hh-ends--pdp { display: inline-flex; align-items: center; gap: 0.4rem; background: var(--wp--preset--color--accent-5); padding: 0.45rem 0.9rem; border-radius: 99px; font-size: 0.85rem; margin: 0.25rem 0 0.75rem; }
.hh-ends--pdp::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--accent-1); animation: hh-pulse 1.6s ease-in-out infinite; }
@keyframes hh-pulse { 50% { opacity: 0.25; } }
.hh-promo .hh-ends { color: var(--hh-ember-light); font-size: inherit; }
.hh-promo a { margin-left: 0.4rem; text-underline-offset: 0.2em; }
.hh-save { display: inline-block; margin-left: 0.6rem; font-size: 0.8rem; font-weight: 600; color: #fff; background: var(--wp--preset--color--accent-1); border-radius: 99px; padding: 0.2rem 0.6rem; vertical-align: middle; }
.single-product .price del { opacity: 0.55; }
.single-product .price ins { text-decoration: none; }

/* Product page: option buttons, quantity stepper, stock line, sticky summary */
.hh-hidden-select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }
.hh-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hh-pill { min-height: 44px; min-width: 64px; padding: 0.55rem 1rem; border-radius: 10px; border: 1px solid var(--wp--preset--color--accent-2); background: #fff; color: var(--wp--preset--color--contrast); font: inherit; font-size: 0.92rem; cursor: pointer; transition: border-color .15s, background .15s; }
.hh-pill:hover { border-color: var(--wp--preset--color--contrast); }
.hh-pill.is-on { border-color: var(--wp--preset--color--contrast); background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hh-pill.is-out { color: var(--wp--preset--color--accent-4); text-decoration: line-through; background: var(--wp--preset--color--accent-5); }
table.variations td.value { padding-top: 0.25rem; }
table.variations, table.variations tbody, table.variations tr, table.variations th, table.variations td { display: block; border: 0; padding-left: 0; }
.reset_variations { font-size: 0.85rem; margin-top: 0.4rem; display: inline-block; }
.hh-stepper { display: inline-flex !important; align-items: stretch; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 999px; overflow: hidden; background: #fff; }
.hh-stepper input.qty { border: 0 !important; width: 3rem !important; text-align: center; border-radius: 0 !important; -moz-appearance: textfield; background: transparent; }
.hh-stepper input.qty::-webkit-inner-spin-button, .hh-stepper input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.hh-step { width: 44px; border: 0; background: none; font-size: 1.2rem; cursor: pointer; color: var(--wp--preset--color--contrast); }
.hh-step:hover { background: var(--wp--preset--color--accent-5); }
form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: flex; gap: 0.75rem; align-items: stretch; flex-wrap: wrap; }
/* WooCommerce lays the options form out as a grid whose column grew to the widest row (2px past a 320px screen) */
form.variations_form.cart { grid-template-columns: minmax(0, 1fr); }
form.variations_form.cart > * { min-width: 0; }
.single_add_to_cart_button { flex: 1 1 14rem; min-height: 48px; }
.stock { font-size: 0.9rem; font-weight: 600; color: var(--wp--preset--color--accent-3) !important; }
.stock.out-of-stock { color: var(--wp--preset--color--accent-1) !important; }
@media (min-width: 900px) {
  .single-product main .wp-block-columns > .wp-block-column:last-child { position: sticky; top: 1.5rem; align-self: flex-start; }
}

/* Sticky add-to-cart bar */
.hh-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: color-mix(in srgb, var(--wp--preset--color--base) 97%, transparent); backdrop-filter: blur(8px); border-top: 1px solid var(--wp--preset--color--accent-2); transform: translateY(110%); transition: transform .3s ease; box-shadow: 0 -10px 30px -18px color-mix(in srgb, var(--wp--preset--color--contrast) 40%, transparent); }
.hh-sticky.is-on { transform: none; }
.hh-sticky__in { max-width: 1280px; margin: 0 auto; padding: 0.6rem 1.25rem; display: flex; align-items: center; gap: 0.9rem; }
.hh-sticky__img { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; }
.hh-sticky__name { font-family: var(--wp--preset--font-family--literata); font-size: 1.05rem; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hh-sticky__price { font-size: 0.95rem; }
.hh-sticky__btn { border: 0; padding: 0.75rem 1.6rem; cursor: pointer; font: inherit; }
@media (max-width: 600px) { .hh-sticky__price { display: none; } .hh-sticky__img { width: 40px; height: 40px; } }
body.single-product .woocommerce-store-notice { display: none !important; }

/* Category chips */
.hh-chips { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 0 0 0.5rem; }
.hh-chip { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 1rem; border-radius: 99px; border: 1px solid var(--wp--preset--color--accent-2); background: #fff; text-decoration: none; font-size: 0.9rem; color: var(--wp--preset--color--contrast); }
.hh-chip span { color: var(--wp--preset--color--accent-4); font-size: 0.8rem; }
.hh-chip:hover { border-color: var(--wp--preset--color--contrast); }
.hh-chip.is-on { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hh-chip.is-on span { color: color-mix(in srgb, var(--wp--preset--color--base) 70%, transparent); }
@media (max-width: 600px) { .hh-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.3rem; scrollbar-width: none; } .hh-chip { flex: none; } }

/* Wishlist page, recently viewed, small cards, toast */
.hh-mini-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; }
.hh-mini { position: relative; }
.hh-mini a { text-decoration: none; display: grid; gap: 0.35rem; }
.hh-mini img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; }
.hh-mini__name { font-family: var(--wp--preset--font-family--literata); font-size: 1.05rem; margin-top: 0.4rem; }
.hh-mini__price { font-size: 0.92rem; color: var(--wp--preset--color--accent-4); }
.hh-mini__price del { opacity: 0.6; margin-right: 0.3rem; }
.hh-empty { color: var(--wp--preset--color--accent-4); }
.hh-recent { max-width: 1280px; margin: clamp(3rem, 6vw, 5rem) auto 0; padding: 0 var(--wp--style--root--padding-left, 1.5rem); }
.hh-recent h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.hh-toast { position: fixed; left: 50%; bottom: 5.5rem; z-index: 120; transform: translate(-50%, 1rem); opacity: 0; pointer-events: none; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); padding: 0.7rem 1.2rem; border-radius: 99px; font-size: 0.9rem; transition: opacity .25s, transform .25s; }
.hh-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ================= Footer v2: dark, calm, clear ================= */
.hh-footer { background: var(--wp--preset--color--contrast) !important; color: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent); padding: 0 0 2rem !important; margin-top: 0 !important; font-size: 0.95rem; }
.hh-footer a { color: var(--wp--preset--color--base); text-decoration: none; }
.hh-footer a:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.hh-footer h2, .hh-footer h3 { color: var(--wp--preset--color--base); }
.hh-footer__news { padding: clamp(2.5rem, 5vw, 3.5rem) 0; border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 14%, transparent); gap: 1.5rem 3rem; }
.hh-footer__news h2 { margin: 0 0 0.4rem; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.hh-footer__news p { margin: 0; max-width: 34rem; }
.hh-footer .hh-news { flex: 0 1 30rem; }
.hh-footer .hh-news input { background: color-mix(in srgb, var(--wp--preset--color--base) 8%, transparent); border-color: color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent); color: var(--wp--preset--color--base); }
.hh-footer .hh-news input::placeholder { color: color-mix(in srgb, var(--wp--preset--color--base) 60%, transparent); }
.hh-footer .hh-news button { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.hh-footer .hh-news button:hover { background: var(--hh-ember-light); }
.hh-footer .hh-news-msg { color: var(--wp--preset--color--base); }
.hh-footer__cols { padding: clamp(2.5rem, 5vw, 3.5rem) 0 2rem; gap: 2rem !important; }
.hh-footer__cols h3 { font-size: 0.8rem; font-family: var(--wp--preset--font-family--manrope); text-transform: uppercase; letter-spacing: 0.14em; font-weight: 600; color: color-mix(in srgb, var(--wp--preset--color--base) 60%, transparent); margin: 0 0 1rem; }
.hh-footer__brand { display: inline-flex; align-items: center; gap: 0.6rem; font-family: var(--wp--preset--font-family--literata); font-size: 1.4rem; color: var(--wp--preset--color--base); margin-bottom: 0.8rem; }
.hh-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; }
.hh-footer__contact, .hh-footer__visit { color: color-mix(in srgb, var(--wp--preset--color--base) 65%, transparent); font-size: 0.9rem; margin-top: 1rem; }
.hh-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 14%, transparent); font-size: 0.82rem; color: color-mix(in srgb, var(--wp--preset--color--base) 55%, transparent); }
.hh-footer__bottom p { margin: 0; }
.hh-footer__note { flex-basis: 100%; }
.hh-pay { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0 auto; padding: 0; }
.hh-pay li { border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent); border-radius: 6px; padding: 0.15rem 0.5rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; color: color-mix(in srgb, var(--wp--preset--color--base) 80%, transparent); }
@media (max-width: 781px) { .hh-pay { margin-left: 0; } .hh-footer__cols > .wp-block-column { flex-basis: 45% !important; } .hh-footer__cols > .wp-block-column:first-child { flex-basis: 100% !important; } }
@media (prefers-reduced-motion: reduce) {
  .wc-block-product-template .wc-block-components-product-image img, .hh-sticky, .hh-toast, .wc-block-product .wp-block-woocommerce-product-button { transition: none; }
  .hh-ends--pdp::before { animation: none; }
}

/* ================= v3.2: review round 2 ================= */
/* Hero slider: up to 3 slides, crossfade, dots and pause */
.hh-slider { position: relative; height: min(86vh, 820px); min-height: 520px; overflow: hidden; background: var(--wp--preset--color--contrast); margin-block-start: 0 !important; }
.hh-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 0s linear 1.1s; }
.hh-slide.is-on { opacity: 1; visibility: visible; transition: opacity 1.1s ease; }
.hh-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s ease-out; }
.hh-slide.is-on img { transform: scale(1); }
.hh-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--contrast) 72%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent) 45%, color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent) 100%); }
.hh-slide__in { position: relative; z-index: 2; height: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--wp--style--root--padding-left, 1.5rem); display: flex; flex-direction: column; justify-content: center; color: #fff; }
.hh-slide__title { font-family: var(--wp--preset--font-family--literata); font-weight: 500; font-size: clamp(2.6rem, 6.5vw, 5.5rem); line-height: 1.02; max-width: 13ch; margin: 0.3rem 0 1rem; color: #fff; letter-spacing: -0.01em; }
.hh-slide__text { max-width: 34rem; font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: rgb(255 255 255 / 0.92); margin: 0 0 1.75rem; }
.hh-slide .hh-eyebrow { color: var(--hh-ember-light); margin: 0; }
.hh-slide__btns { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hh-slide__btns .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); text-decoration: none; padding: 0.95rem 1.8rem; border-radius: 999px; }
.hh-slide__btns .wp-block-button__link:hover { background: var(--wp--preset--color--accent-1); color: #fff; }
.hh-slide__btns .hh-ghost { background: transparent; color: #fff; border: 1px solid rgb(255 255 255 / 0.8); }
.hh-slider__nav { position: absolute; z-index: 3; left: 50%; bottom: 1.5rem; transform: translateX(-50%); display: flex; align-items: center; gap: 0.6rem; background: color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent); padding: 0.5rem 0.8rem; border-radius: 99px; backdrop-filter: blur(6px); }
.hh-dot { width: 26px; height: 4px; border-radius: 99px; border: 0; padding: 0; background-color: rgb(255 255 255 / 0.45); cursor: pointer; } /* background-color, not background: the phone rule clips it to a thin bar */
.hh-dot[aria-current="true"] { background-color: #fff; width: 40px; }
.hh-dot:focus-visible, .hh-pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.hh-pause { width: 28px; height: 28px; border: 0; border-radius: 50%; background: none; cursor: pointer; display: grid; place-items: center; margin-left: 0.2rem; } /* round, so its keyboard outline is round too */
.hh-pause span { width: 10px; height: 12px; border-left: 3px solid #fff; border-right: 3px solid #fff; }
.hh-slider.is-paused .hh-pause span { width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 11px; border-color: transparent transparent transparent #fff; }
@media (max-width: 600px) { .hh-slider { min-height: 560px; } .hh-slide::after { background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) 70%, transparent) 100%); } .hh-slide__in { justify-content: flex-end; padding-bottom: 5rem; } }
@media (prefers-reduced-motion: reduce) { .hh-slide, .hh-slide.is-on, .hh-slide img { transition: none; transform: none; } }

/* 1.4.5: slideshow designs (Appearance > Home slideshow): hh-sl--photo|card|split|frame|banner, text position per slide
   (hh-slide--left|center|right) and shade strength (hh-shade--light|medium|strong). Text sits in .hh-slide__box. */
.hh-slider { --sh1: 72%; --sh2: 45%; --sh3: 10%; }
.hh-slider.hh-shade--light { --sh1: 52%; --sh2: 26%; --sh3: 0%; }
.hh-slider.hh-shade--strong { --sh1: 86%; --sh2: 66%; --sh3: 34%; }
.hh-slide::after { background: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh1), transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh2), transparent) 45%, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh3), transparent) 100%); }
.hh-slide--right::after { background: linear-gradient(270deg, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh1), transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh2), transparent) 45%, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh3), transparent) 100%); }
.hh-slide--center::after { background: color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh2), transparent); }
.hh-slide__in { align-items: flex-start; width: 100%; box-sizing: border-box; }
.hh-slide__box { max-width: 40rem; }
.hh-slide--center .hh-slide__in { align-items: center; text-align: center; }
.hh-slide--right .hh-slide__in { align-items: flex-end; text-align: right; }
.hh-slide--center .hh-slide__title, .hh-slide--center .hh-slide__text { margin-inline: auto; }
.hh-slide--right .hh-slide__title, .hh-slide--right .hh-slide__text { margin-left: auto; }
.hh-slide--center .hh-slide__btns { justify-content: center; }
.hh-slide--right .hh-slide__btns { justify-content: flex-end; }
.hh-slide__box > :last-child { margin-bottom: 0; }
/* Right-to-left stores: Left and Right stay where the owner saw them in the preview (the shade already follows them) */
[dir="rtl"] .hh-slide--left .hh-slide__in { align-items: flex-end; text-align: left; }
[dir="rtl"] .hh-slide--right .hh-slide__in { align-items: flex-start; text-align: right; }
[dir="rtl"] .hh-slide--left .hh-slide__btns { justify-content: flex-end; }
[dir="rtl"] .hh-slide--right .hh-slide__btns { justify-content: flex-start; }
[dir="rtl"] .hh-slide--left .hh-slide__title, [dir="rtl"] .hh-slide--left .hh-slide__text { margin-right: auto; }

/* Light text panels (Text card, Side by side): dark text and dark buttons */
.hh-sl--card .hh-slide__box, .hh-sl--split .hh-slide__in { color: var(--wp--preset--color--contrast); }
:is(.hh-sl--card, .hh-sl--split) .hh-slide__title { color: var(--wp--preset--color--contrast); font-size: clamp(2.1rem, 4.2vw, 3.8rem); }
:is(.hh-sl--card, .hh-sl--split) .hh-slide__text { color: color-mix(in srgb, var(--wp--preset--color--contrast) 82%, transparent); }
:is(.hh-sl--card, .hh-sl--split) .hh-slide .hh-eyebrow { color: var(--wp--preset--color--accent-1); }
:is(.hh-sl--card, .hh-sl--split) .hh-slide__btns .wp-block-button__link { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
:is(.hh-sl--card, .hh-sl--split) .hh-slide__btns .wp-block-button__link:hover { background: var(--wp--preset--color--accent-1); color: #fff; }
:is(.hh-sl--card, .hh-sl--split) .hh-slide__btns .hh-ghost { background: transparent; color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--contrast); }

/* Text card: the text in a light box over the photo; the shade only lightly dims the photo */
.hh-sl--card .hh-slide::after { background: color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh3), transparent); }
.hh-sl--card .hh-slide__box { background: var(--wp--preset--color--base); padding: clamp(1.5rem, 3vw, 2.75rem); border-radius: 18px; max-width: 34rem; box-shadow: 0 20px 50px rgb(0 0 0 / 0.18); }

/* Side by side: photo on one half, text on the page colour */
.hh-sl--split { background: var(--wp--preset--color--base); }
.hh-sl--split .hh-slide::after { display: none; }
.hh-sl--split .hh-slide img { left: 50%; width: 50%; }
.hh-sl--split .hh-slide--right img { left: 0; }
.hh-sl--split .hh-slide__in { position: absolute; top: 0; left: 0; width: 50%; max-width: none; margin: 0; padding: 0 clamp(1.5rem, 5vw, 5rem) 3.5rem; }
.hh-sl--split .hh-slide--right .hh-slide__in { left: 50%; }
.hh-sl--split .hh-slider__nav { left: 25%; }
.hh-sl--split:has(.hh-slide--right.is-on) .hh-slider__nav { left: 75%; }

/* Framed: the photo inset with rounded corners */
.hh-sl--frame { background: transparent; height: min(78vh, 720px); }
.hh-sl--frame .hh-slide { inset: 0 var(--wp--style--root--padding-right, 1.5rem); border-radius: 24px; overflow: hidden; }
.hh-sl--frame .hh-slide__in { padding-inline: clamp(1.5rem, 5vw, 4.5rem); }

/* Short banner: lower, so the products below show sooner */
.hh-sl--banner { height: min(58vh, 560px); min-height: 420px; }
.hh-sl--banner .hh-slide__title { font-size: clamp(2.1rem, 4.6vw, 3.9rem); }
.hh-sl--banner .hh-slide__text { margin-bottom: 1.25rem; }

@media (max-width: 781px) {
  .hh-sl--split .hh-slide img, .hh-sl--split .hh-slide--right img { left: 0; width: 100%; height: 46%; }
  .hh-sl--split .hh-slide__in, .hh-sl--split .hh-slide--right .hh-slide__in { top: 46%; left: 0; width: 100%; height: 54%; padding: 1.5rem var(--wp--style--root--padding-left, 1.5rem) 4.5rem; justify-content: center; }
  .hh-sl--split .hh-slider__nav, .hh-sl--split:has(.hh-slide--right.is-on) .hh-slider__nav { left: 50%; }
  .hh-sl--split .hh-slide__title { font-size: clamp(1.9rem, 7vw, 2.6rem); }
}
@media (max-width: 600px) {
  .hh-slide::after, .hh-slide--right::after, .hh-slide--center::after { background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh3), transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh1), transparent) 100%); }
  .hh-sl--card .hh-slide::after { background: color-mix(in srgb, var(--wp--preset--color--contrast) var(--sh3), transparent); }
  .hh-slide__in, .hh-sl--card .hh-slide__in { padding-bottom: 6rem; } /* clear of the dots (44 px tap targets) */
  .hh-sl--card .hh-slide__title { font-size: 2rem; }
  .hh-sl--frame .hh-slide { inset: 0 0.75rem; border-radius: 18px; }
  .hh-sl--frame { min-height: 520px; }
  .hh-sl--banner { min-height: 460px; }
}

/* Product page: accordions */
.hh-accordion { max-width: 860px; margin: clamp(2rem, 5vw, 3.5rem) auto 0; border-top: 1px solid var(--wp--preset--color--accent-2); }
.hh-acc { border-bottom: 1px solid var(--wp--preset--color--accent-2); }
.hh-acc > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 1.15rem 0.25rem; font-family: var(--wp--preset--font-family--literata); font-size: 1.25rem; }
.hh-acc > summary::-webkit-details-marker { display: none; }
.hh-acc > summary::after { content: "+"; font-family: var(--wp--preset--font-family--manrope); font-size: 1.4rem; line-height: 1; transition: transform .2s; }
.hh-acc[open] > summary::after { transform: rotate(45deg); }
.hh-acc > summary:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
.hh-acc__body { padding: 0 0.25rem 1.5rem; }
.hh-acc__body > :first-child { margin-top: 0; }
.hh-acc__body table { width: 100%; border-collapse: collapse; }
.hh-acc__body th, .hh-acc__body td { text-align: left; padding: 0.55rem 0.5rem 0.55rem 0; border-bottom: 1px solid var(--wp--preset--color--accent-5); }

/* Product page: key specs */
.hh-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.6rem; margin: 1rem 0 1.25rem; padding: 0; }
.hh-specs div { background: var(--wp--preset--color--accent-5); border-radius: 12px; padding: 0.7rem 0.9rem; }
.hh-specs dt { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--wp--preset--color--accent-4); font-weight: 600; }
.hh-specs dd { margin: 0.15rem 0 0; font-size: 0.95rem; }

/* Star ratings drawn with characters (never shows letters if the icon font is missing) */
.star-rating { font-family: inherit !important; font-size: 1rem !important; width: 5.6em !important; height: 1.1em !important; line-height: 1.1 !important; letter-spacing: 0.12em; position: relative; overflow: hidden; display: inline-block; vertical-align: middle; }
.star-rating::before { content: "\2605\2605\2605\2605\2605" !important; color: var(--wp--preset--color--accent-2) !important; position: absolute; top: 0; left: 0; float: none !important; font-family: inherit !important; }
.star-rating span { position: absolute !important; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em !important; font-size: 1rem; }
.star-rating span::before { content: "\2605\2605\2605\2605\2605" !important; color: var(--wp--preset--color--accent-1) !important; position: absolute; top: 0; left: 0; font-family: inherit !important; }
.woocommerce-product-rating { display: flex; align-items: center; gap: 0.6rem; }

/* Sale countdown on photos: dark pill, readable on any image */
.wc-block-components-product-image .hh-ends { background: color-mix(in srgb, var(--wp--preset--color--contrast) 88%, transparent); color: var(--wp--preset--color--base); backdrop-filter: blur(4px); }

/* Sticky bar hides while the cart drawer is open */
body:has(.wc-block-components-drawer__screen-overlay:not(.wc-block-components-drawer__screen-overlay--is-hidden)) .hh-sticky { display: none; }

/* Filters: header with Clear all */
.hh-filter-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1rem; }
.hh-filter-title { margin: 0; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 600; color: var(--wp--preset--color--accent-4); }
.hh-clear { font-size: 0.85rem; color: var(--wp--preset--color--accent-1); }

/* Pairs well with (category pages) */
.hh-pairs { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--wp--preset--color--accent-2); }
.hh-pairs__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.25rem; }
.hh-pairs__head h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.hh-mini .woocommerce-Price-amount, .hh-mini__price ins { text-decoration: none; }

/* Cart drawer: You might also like */
.hh-upsell { margin: 0.75rem 1rem 0; padding: 0.9rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 14px; }
.hh-upsell__title { margin: 0 0 0.6rem; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--wp--preset--color--accent-4); }
.hh-upsell ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.hh-upsell li { display: grid; grid-template-columns: 56px 1fr auto; grid-template-rows: auto auto; column-gap: 0.75rem; align-items: center; }
.hh-upsell img { grid-row: 1 / 3; width: 56px; height: 56px; object-fit: cover; border-radius: 8px; }
.hh-upsell__name { font-size: 0.9rem; text-decoration: none; color: inherit; }
.hh-upsell__price { grid-column: 2; font-size: 0.85rem; color: var(--wp--preset--color--accent-4); }
.hh-upsell__add { grid-column: 3; grid-row: 1 / 3; border: 1px solid var(--wp--preset--color--contrast); background: none; border-radius: 99px; padding: 0.4rem 0.9rem; font: inherit; font-size: 0.82rem; cursor: pointer; color: var(--wp--preset--color--contrast); text-decoration: none; }
.hh-upsell__add:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* Smooth cross-fade between pages (browsers that support view transitions; others load normally) */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* Pagination: round page numbers, clear previous / next */
.wp-block-query-pagination { gap: 0.4rem; margin-top: 2.5rem !important; align-items: center; }
.wp-block-query-pagination-numbers { display: flex; gap: 0.4rem; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 0.9rem; border-radius: 99px; border: 1px solid var(--wp--preset--color--accent-2); text-decoration: none; font-size: 0.95rem; color: var(--wp--preset--color--contrast); background: #fff; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.wp-block-query-pagination .page-numbers.dots { border: 0; background: none; min-width: 0; padding: 0; }
.wp-block-query-pagination a:hover { border-color: var(--wp--preset--color--contrast); }

/* ================= v3.3: full-audit fixes ================= */
/* Footer keeps the site's side margins */
.hh-footer { padding-left: var(--wp--style--root--padding-left, 1.5rem) !important; padding-right: var(--wp--style--root--padding-right, 1.5rem) !important; }
/* Wishlist badge hides when empty */
.hh-wish-count[hidden] { display: none !important; }
/* Header icons share one baseline */
.hh-header .wp-block-search, .hh-header .hh-search { margin: 0; display: flex; align-items: center; }
.hh-header .wp-block-search__button { display: flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; }
/* Product page: sale label top-left so it never sits under the zoom icon */
.single-product .woocommerce-product-gallery span.onsale, .single-product .wp-block-woocommerce-product-image-gallery span.onsale { left: 0.8rem !important; right: auto !important; top: 0.8rem !important; z-index: 9; }
/* Cards: the sale label reads on one line */
.wp-block-woocommerce-product-sale-badge, .wc-block-components-product-sale-badge { width: auto !important; white-space: nowrap; writing-mode: horizontal-tb; }
.wc-block-components-product-sale-badge__text { white-space: nowrap; }
/* Cards: on devices with a mouse, the quick-add button sits over the bottom of the photo, so rows stay tight */
@media (hover: hover) and (min-width: 782px) {
  .wc-block-product-template > li.wc-block-product { position: relative; container-type: inline-size; }
  .wc-block-product-template > li.wc-block-product .wp-block-woocommerce-product-button { position: absolute; left: 0.75rem; right: 0.75rem; top: calc(125cqw - 3.6rem); margin: 0 !important; z-index: 4; }
  .wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link, .wc-block-product .wp-block-woocommerce-product-button button { background: color-mix(in srgb, var(--wp--preset--color--base) 96%, transparent) !important; border-color: transparent !important; backdrop-filter: blur(6px); }
  .wc-block-product .wp-block-woocommerce-product-button .wc-block-components-product-button__button + span, .wc-block-product .wp-block-woocommerce-product-button .added_to_cart { display: none; }
  .wc-block-product .wc-block-components-product-image .hh-ends { bottom: 4.1rem; }
  .wc-block-product:hover .wc-block-components-product-image .hh-ends, .wc-block-product:hover .wp-block-woocommerce-product-sale-badge { opacity: 0; }
}
/* Pairs well with: full width, four across */
.hh-pairs { max-width: var(--wp--style--global--wide-size, 1280px) !important; margin-left: auto !important; margin-right: auto !important; }
.hh-pairs .hh-mini-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 781px) { .hh-pairs .hh-mini-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Phones: quantity stepper and Add to cart share the row without squeezing the button text */
@media (max-width: 600px) {
  .single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 9rem; white-space: nowrap; }
  .product_meta { font-size: 0.85rem; display: grid; gap: 0.2rem; }
}

/* Header and its dropdown menu always sit above the page (the hero slider has its own layers) */
.hh-header { position: relative; z-index: 100; }
header.wp-block-template-part { position: relative; z-index: 100; }
.hh-nav .wp-block-navigation__submenu-container { z-index: 110 !important; }

/* Rating stars in product blocks: drawn with characters, so they never show as letters ("SSSSS")
   when WooCommerce's icon font does not load */
.wc-block-components-product-rating__stars { font-family: inherit !important; font-size: 1rem !important; width: 5.6em !important; height: 1.1em !important; line-height: 1.1 !important; letter-spacing: 0.12em; position: relative; overflow: hidden; display: inline-block; vertical-align: middle; }
.wc-block-components-product-rating__stars::before { content: "\2605\2605\2605\2605\2605" !important; color: var(--wp--preset--color--accent-2) !important; position: absolute; top: 0; left: 0; font-family: inherit !important; }
.wc-block-components-product-rating__stars span { position: absolute !important; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em !important; font-size: 1rem; }
.wc-block-components-product-rating__stars span::before { content: "\2605\2605\2605\2605\2605" !important; color: var(--wp--preset--color--accent-1) !important; position: absolute; top: 0; left: 0; font-family: inherit !important; }
.wc-block-components-product-rating__container { display: flex; align-items: center; gap: 0.5rem; }

/* Journal index and category pages */
.hh-journal-head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.hh-journal-head h1 { font-size: clamp(2.4rem, 5vw, 3.8rem); margin: 0.3rem 0 0.6rem; }
.hh-journal-head p:not(.hh-eyebrow) { color: var(--wp--preset--color--accent-4); font-size: 1.1rem; margin: 0; }
.hh-journal--index .wp-block-post-template { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.hh-journal--index .wp-block-post-title { margin: 0.35rem 0 0.5rem; line-height: 1.2; }
.hh-journal--index .wp-block-post-title a { text-decoration: none; }
.hh-journal--index .wp-block-post-excerpt__excerpt { margin: 0; }
.hh-post-cat { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; margin-top: 1rem; }
.hh-post-cat a { color: var(--wp--preset--color--accent-1); text-decoration: none; }
.hh-post-date { font-size: 0.85rem; color: var(--wp--preset--color--accent-4); margin-top: 0.6rem; }

/* Journal article */
.hh-article-head { text-align: center; max-width: 46rem; margin-inline: auto; }
.hh-article-head .wp-block-post-title { font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.08; margin: 0.4rem 0 0.8rem; }
.hh-article-lead { font-size: 1.2rem; color: var(--wp--preset--color--accent-4); }
.hh-article-lead p { margin: 0; }
.hh-article-img { margin-top: 2rem !important; }
.hh-article-img img { border-radius: 18px; }
.hh-article-body { font-size: 1.1rem; line-height: 1.75; margin-top: 2.5rem !important; }
.hh-article-body h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin-top: 2.2rem; }
/* Journal article layouts (Hearth settings > Journal articles; body class hh-jrnl-*). Centred is the default above. */
.hh-jrnl-left .hh-article-head { text-align: left; max-width: var(--wp--style--global--content-size, 645px); }
.hh-jrnl-cover main.wp-block-group { display: grid; grid-template-columns: minmax(0, 1fr); padding-top: 0 !important; }
.hh-jrnl-cover main > .hh-article-head, .hh-jrnl-cover main > .hh-article-img { grid-area: 1 / 1; }
.hh-jrnl-cover main > :not(.hh-article-head):not(.hh-article-img) { grid-column: 1; }
.hh-jrnl-cover main > .hh-article-img { margin: 0 !important; max-width: none !important; width: 100%; position: relative; }
.hh-jrnl-cover .hh-article-img img { border-radius: 18px; aspect-ratio: 21 / 9 !important; min-height: 420px; max-height: 78vh; width: 100%; object-fit: cover; }
.hh-jrnl-cover .hh-article-img::after { content: ""; position: absolute; inset: 0; border-radius: 18px; background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--contrast) 50%, transparent) 45%, color-mix(in srgb, var(--wp--preset--color--contrast) 84%, transparent) 100%); pointer-events: none; }
.hh-jrnl-cover main > .hh-article-head { position: relative; z-index: 1; align-self: end; max-width: 52rem; width: calc(100% - 2 * var(--wp--style--root--padding-left, 1.5rem)); margin: 0 auto clamp(1.5rem, 5vw, 3.5rem) !important; color: #fff; text-align: center; }
.hh-jrnl-cover .hh-article-head .wp-block-post-title, .hh-jrnl-cover .hh-article-head a, .hh-jrnl-cover .hh-article-head .hh-post-date { color: #fff; }
.hh-jrnl-cover .hh-article-head .hh-article-lead { color: rgb(255 255 255 / 0.9); }
.hh-jrnl-cover .hh-article-head .hh-post-cat a { color: var(--hh-ember-light); }
@media (max-width: 600px) {
  .hh-jrnl-cover .hh-article-img img { aspect-ratio: 4 / 5 !important; min-height: 0; }
  .hh-jrnl-cover .hh-article-head .wp-block-post-title { font-size: clamp(2rem, 8vw, 2.6rem); }
}

.hh-article-more { margin-top: clamp(3rem, 6vw, 5rem) !important; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--wp--preset--color--accent-2); }
.hh-article-more h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 1.5rem; }

/* ================= v3.4: 2026 pricing, filters, categories, sorting, motion ================= */
/* Prices: clean, sale in terracotta, old price small and struck */
.wc-block-components-product-price, .price { font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
.wc-block-components-product-price ins, .price ins, .wc-block-components-product-price__value.is-discounted { color: var(--wp--preset--color--accent-1); text-decoration: none; font-weight: 600; }
.wc-block-components-product-price del, .price del, .wc-block-components-product-price__regular { font-size: 0.85em; opacity: 0.55; margin-right: 0.35rem; }
.hh-from { font-size: 0.82em; color: var(--wp--preset--color--accent-4); font-weight: 500; letter-spacing: 0.02em; }
.single-product .summary .price, .single-product .wp-block-woocommerce-product-price { font-size: 1.5rem !important; }

/* Filters: options as tap-to-toggle chips */
.hh-filters .wc-block-product-filter-checkbox-list__items { display: flex !important; flex-wrap: wrap; gap: 0.45rem; }
.hh-filters .wc-block-product-filter-checkbox-list__item { padding: 0 !important; margin: 0 !important; }
.hh-filters .wc-block-product-filter-checkbox-list__label { display: inline-flex !important; align-items: center; gap: 0.35rem; padding: 0.45rem 0.85rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 99px; background: #fff; cursor: pointer; font-size: 0.88rem !important; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease; }
.hh-filters .wc-block-product-filter-checkbox-list__label:hover { border-color: var(--wp--preset--color--contrast); }
.hh-filters .wc-block-product-filter-checkbox-list__label:active { transform: scale(0.97); }
.hh-filters .wc-block-product-filter-checkbox-list__input-wrapper { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.hh-filters .wc-block-product-filter-checkbox-list__label:has(input:checked) { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hh-filters .wc-block-product-filter-checkbox-list__label:has(input:checked)::before { content: "\2713"; font-size: 0.8rem; }
/* Price fields: WooCommerce's slider box hides overflow, which cut off the bottom of the focus outline. 4px inside room,
   taken back with a negative margin so nothing moves. */
.hh-filters .wp-block-woocommerce-product-filter-price-slider { padding: 4px; margin: -4px; }
/* Colour filter: each button filled with its colour, the name in dark or white on top (hh.js filterSwatches) */
.hh-filters .wc-block-product-filter-checkbox-list__label.hh-colour-chip { background: var(--sw) !important; color: var(--sw-ink, var(--wp--preset--color--contrast)) !important; border-color: rgb(0 0 0 / 0.14) !important; }
.hh-filters .wc-block-product-filter-checkbox-list__label.hh-colour-chip:hover { box-shadow: 0 0 0 1px var(--wp--preset--color--contrast); }
.hh-filters .wc-block-product-filter-checkbox-list__label.hh-colour-chip:has(input:checked) { box-shadow: 0 0 0 2px var(--wp--preset--color--base), 0 0 0 4px var(--wp--preset--color--contrast); font-weight: 600; }
.hh-filters .wc-block-product-filter-checkbox-list__label:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
.hh-filters .wc-block-product-filter-checkbox-list__text { font-size: inherit; }
.hh-filters :is(h2, h3) { font-family: var(--wp--preset--font-family--manrope) !important; font-size: 0.78rem !important; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--wp--preset--color--accent-4); margin: 1.6rem 0 0.7rem !important; }
.hh-filters .wc-block-product-filter-checkbox-list__show-more { background: none; border: 0; padding: 0.4rem 0; font-size: 0.85rem; text-decoration: underline; cursor: pointer; color: var(--wp--preset--color--contrast); }

/* Price slider in brand colours */
.hh-filters input[type="range"] { accent-color: var(--wp--preset--color--accent-1); }
.hh-filters .wc-block-product-filter-price-slider__range { --range-color: var(--wp--preset--color--accent-1); --track-background: var(--wp--preset--color--accent-2); }
.hh-filters .wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb { background: var(--wp--preset--color--base) !important; border: 2px solid var(--wp--preset--color--accent-1) !important; box-shadow: 0 2px 6px color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent); }
.hh-filters .wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb { background: var(--wp--preset--color--base) !important; border: 2px solid var(--wp--preset--color--accent-1) !important; }

/* Active filters: removable chips, and the clear buttons */
.wc-block-product-filter-removable-chips__item { border-radius: 99px !important; background: var(--wp--preset--color--accent-5) !important; border: 0 !important; padding: 0.3rem 0.4rem 0.3rem 0.8rem !important; font-size: 0.85rem; }
.hh-clear, .reset_variations { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; font-weight: 600; color: var(--wp--preset--color--accent-1) !important; text-decoration: none !important; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.hh-clear::before, .reset_variations::before { content: "\00d7"; font-size: 1.05rem; line-height: 1; }

/* Sorting as a pill */
.woocommerce-ordering, .wc-block-catalog-sorting { position: relative; }
.woocommerce-ordering select, .wc-block-catalog-sorting select, .wp-block-woocommerce-catalog-sorting select { border-radius: 99px !important; padding-left: 1.1rem !important; background-color: #fff; font-weight: 500; }
.wp-block-woocommerce-product-results-count, .woocommerce-result-count { color: var(--wp--preset--color--accent-4); font-size: 0.92rem; margin: 0; }

/* Category chips with a small round photo */
.hh-chip--img { padding: 0.3rem 1rem 0.3rem 0.3rem; }
.hh-chip__img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; }
.hh-chips { gap: 0.6rem; margin-bottom: 1rem; }
.hh-chip { transition: background .2s ease, border-color .2s ease, transform .15s ease; }
.hh-chip:active { transform: scale(0.97); }

/* Smooth motion: products fade up one after another whenever the grid changes (filter, sort, page) */
@keyframes hh-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.wc-block-product-template > li.wc-block-product { animation: hh-fade-up .55s cubic-bezier(.2, .7, .2, 1) both; }
.wc-block-product-template > li.wc-block-product:nth-child(2) { animation-delay: .05s; }
.wc-block-product-template > li.wc-block-product:nth-child(3) { animation-delay: .1s; }
.wc-block-product-template > li.wc-block-product:nth-child(4) { animation-delay: .15s; }
.wc-block-product-template > li.wc-block-product:nth-child(5) { animation-delay: .2s; }
.wc-block-product-template > li.wc-block-product:nth-child(6) { animation-delay: .25s; }
.wc-block-product-template > li.wc-block-product:nth-child(n+7) { animation-delay: .3s; }
/* While the grid is loading new results, it dims softly instead of jumping */
.wp-block-woocommerce-product-collection[data-wp-router-region] { transition: opacity .25s ease; }
.wp-block-woocommerce-product-collection.is-loading, .wc-block-product-template.is-loading { opacity: 0.45; }
a, button, .wp-element-button { transition-property: color, background-color, border-color, opacity, transform; transition-duration: .2s; transition-timing-function: ease; }
@media (prefers-reduced-motion: reduce) {
  .wc-block-product-template > li.wc-block-product { animation: none; }
  .hh-chip, .hh-filters .wc-block-product-filter-checkbox-list__label { transition: none; }
}

.hh-clear[hidden] { display: none !important; }
.hh-filters .wc-block-product-filter-price-slider__content input.text, .hh-filters .wc-block-product-filter-price-slider .text input { border-radius: 99px !important; padding: 0.4rem 0.8rem !important; font-size: 0.88rem; text-align: center; border: 1px solid var(--wp--preset--color--accent-2) !important; }

/* ================= v3.5: live search ================= */
.hh-ls { position: relative; display: flex; align-items: center; margin-bottom: 1.4rem; }
.hh-ls > svg { position: absolute; left: 1rem; color: var(--wp--preset--color--accent-4); pointer-events: none; }
.hh-ls input[type="search"] { width: 100%; box-sizing: border-box; padding: 0.85rem 3.2rem 0.85rem 2.9rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 99px; background: #fff; font: inherit; font-size: 0.95rem; color: var(--wp--preset--color--contrast); transition: border-color .2s ease, box-shadow .2s ease; -webkit-appearance: none; }
.hh-ls input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
.hh-ls input[type="search"]:focus { outline: none; border-color: var(--wp--preset--color--contrast); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--accent-1) 14%, transparent); }
.hh-ls__kbd { position: absolute; right: 0.9rem; font: 600 0.68rem/1 var(--wp--preset--font-family--manrope); color: var(--wp--preset--color--accent-4); border: 1px solid var(--wp--preset--color--accent-2); border-radius: 6px; padding: 0.25rem 0.4rem; opacity: 0; transition: opacity .2s; }
.hh-ls input:focus ~ .hh-ls__kbd { opacity: 1; }
.hh-ls.is-busy > svg { animation: hh-spin 0.9s linear infinite; }
@keyframes hh-spin { 50% { opacity: 0.35; } }
.hh-ls__list { position: absolute; z-index: 60; top: calc(100% + 0.5rem); left: 0; right: 0; list-style: none; margin: 0; padding: 0.4rem; background: #fff; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 16px; box-shadow: 0 24px 48px -24px color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent); max-height: 26rem; overflow: auto; animation: hh-pop .18s ease-out; }
@keyframes hh-pop { from { opacity: 0; transform: translateY(-6px) scale(0.99); } to { opacity: 1; transform: none; } }
.hh-ls__list li a { display: grid; grid-template-columns: 48px 1fr auto; gap: 0.75rem; align-items: center; padding: 0.45rem; border-radius: 10px; text-decoration: none; color: inherit; }
.hh-ls__list li[aria-selected="true"] a, .hh-ls__list li a:hover { background: var(--wp--preset--color--accent-5); }
.hh-ls__list img, .hh-ls__noimg { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; background: var(--wp--preset--color--accent-5); }
.hh-ls__text { display: grid; min-width: 0; }
.hh-ls__cat { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--wp--preset--color--accent-4); font-weight: 600; }
.hh-ls__name { font-size: 0.92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hh-ls__name mark { background: color-mix(in srgb, var(--wp--preset--color--accent-1) 16%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
.hh-ls__price { font-size: 0.88rem; white-space: nowrap; }
.hh-ls__price del { opacity: 0.55; margin-right: 0.25rem; font-size: 0.85em; }
.hh-ls__empty { padding: 0.9rem; font-size: 0.9rem; color: var(--wp--preset--color--accent-4); }
.hh-ls__all a { display: block !important; text-align: center; padding: 0.7rem !important; font-size: 0.88rem; font-weight: 600; color: var(--wp--preset--color--accent-1) !important; border-top: 1px solid var(--wp--preset--color--accent-5); border-radius: 0 0 10px 10px !important; margin-top: 0.3rem; }

/* Header: search button and full-width panel */
.hh-search-open { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: none; color: var(--wp--preset--color--contrast); cursor: pointer; }
.hh-search-open:hover, .hh-search-open[aria-expanded="true"] { background: var(--wp--preset--color--accent-5); }
.hh-search-panel { position: absolute; left: 0; right: 0; z-index: 105; background: var(--wp--preset--color--base); border-bottom: 1px solid var(--wp--preset--color--accent-2); box-shadow: 0 30px 60px -30px color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent); animation: hh-drop .25s ease-out; }
@keyframes hh-drop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
.hh-search-panel[hidden] { display: none; }
.hh-search-panel__in { position: relative; max-width: 760px; margin: 0 auto; padding: 1.75rem var(--wp--style--root--padding-left, 1.5rem) 1.5rem; }
.hh-search-panel .hh-ls { margin-bottom: 1rem; }
.hh-search-panel .hh-ls input[type="search"] { font-size: 1.15rem; padding-top: 1.05rem; padding-bottom: 1.05rem; }
.hh-popular { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; font-size: 0.85rem; }
.hh-popular span { color: var(--wp--preset--color--accent-4); margin-right: 0.3rem; }
.hh-popular a { padding: 0.35rem 0.85rem; border-radius: 99px; background: var(--wp--preset--color--accent-5); text-decoration: none; color: var(--wp--preset--color--contrast); }
.hh-popular a:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hh-search-close { position: absolute; top: 0.4rem; right: 0.4rem; width: 40px; height: 40px; border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--wp--preset--color--accent-4); }
body.hh-search-on .wp-site-blocks > main, body.hh-search-on .hh-slider { filter: blur(2px); transition: filter .25s ease; }
@media (prefers-reduced-motion: reduce) { .hh-ls__list, .hh-search-panel { animation: none; } body.hh-search-on .wp-site-blocks > main { filter: none; } }

/* ================= v3.6: calmer filter sidebar ================= */
/* Active filters: small chips side by side, with gaps */
.hh-filters .wc-block-product-filter-removable-chips__items, .hh-filters .wp-block-woocommerce-product-filter-removable-chips ul { display: flex !important; flex-wrap: wrap; gap: 0.4rem !important; margin: 0 0 0.5rem !important; padding: 0 !important; list-style: none; }
.hh-filters .wc-block-product-filter-removable-chips__item { display: inline-flex !important; align-items: center; gap: 0.2rem; margin: 0 !important; padding: 0.25rem 0.3rem 0.25rem 0.7rem !important; font-size: 0.78rem !important; line-height: 1.2; background: var(--wp--preset--color--accent-5) !important; border: 1px solid var(--wp--preset--color--accent-2) !important; border-radius: 99px !important; }
.hh-filters .wc-block-product-filter-removable-chips__label { font-size: inherit !important; }
.hh-filters .wc-block-product-filter-removable-chips__remove { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.hh-filters .wc-block-product-filter-removable-chips__remove:hover { background: var(--wp--preset--color--accent-2); }
.hh-filters .wc-block-product-filter-removable-chips__remove-icon { width: 16px !important; height: 16px !important; }
.hh-filters .wp-block-woocommerce-product-filter-active:not(:empty) { padding-bottom: 1rem; margin-bottom: 0.2rem; border-bottom: 1px solid var(--wp--preset--color--accent-2); }

/* Each filter section gets room and a hairline divider */
.hh-filters .wp-block-woocommerce-product-filters > div:not(.wp-block-woocommerce-product-filter-active) { padding: 1.1rem 0 1.3rem; border-bottom: 1px solid var(--wp--preset--color--accent-2); }
.hh-filters .wp-block-woocommerce-product-filters > div:last-child { border-bottom: 0; }
.hh-filters :is(h2, h3) { margin: 0 0 0.85rem !important; }
.hh-filters .wc-block-product-filter-checkbox-list__items { gap: 0.5rem !important; }
.hh-filter-head { margin-bottom: 0.4rem; padding-bottom: 0.6rem; }
.hh-filters .wc-block-product-filter-price-slider__content { row-gap: 0.75rem !important; }
.hh-shop { column-gap: clamp(2rem, 4vw, 4rem) !important; }
/* Category chips: room between the rows when they wrap */
.hh-chips { row-gap: 0.6rem; margin: 1.25rem 0 1.5rem !important; }

.hh-filters .wc-block-product-filter-price-slider__content input:not([type="range"]) { border-radius: 99px !important; padding: 0.45rem 0.8rem !important; font: inherit; font-size: 0.88rem; text-align: center; border: 1px solid var(--wp--preset--color--accent-2) !important; background: #fff; width: 100%; box-sizing: border-box; }

/* ================= v3.7: calmer, more spacious, steadier ================= */
/* Reserve the product gallery's space (square photo + thumbnail row) so nothing jumps while it loads */
.wp-block-woocommerce-product-image-gallery { container-type: inline-size; }
.wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery { min-height: calc(100cqw + 88px); }
.woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: auto; }
/* Promo bar: one calm line */
.hh-promo__sep { margin: 0 0.6rem; opacity: 0.6; }
/* Home: more air between sections */
.home main.wp-block-group > * + * { margin-block-start: clamp(5rem, 9vw, 8rem) !important; }
.hh-section-head { margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem) !important; }
/* Colour options as round swatches */
.hh-pill--swatch { min-width: 0; width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 0; background: var(--sw) !important; border: 2px solid #fff !important; box-shadow: 0 0 0 1px var(--wp--preset--color--accent-2); }
.hh-pill--swatch.is-on { box-shadow: 0 0 0 2px var(--wp--preset--color--contrast); }
.hh-pill--swatch.is-out { opacity: 0.35; }
/* Kind words: product thumbnail and verified label */
.hh-quotes .hh-who { display: flex !important; align-items: center; gap: 0.75rem; }
.hh-quotes .hh-who img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; }
.hh-quotes .hh-who em { display: block; font-style: normal; font-size: 0.75rem; color: var(--wp--preset--color--accent-3); font-weight: 600; }
.hh-quotes .hh-who em::before { content: "\2713  "; }

/* Gallery: fixed height (square photo + thumbnail row), identical before and after its script builds the slider */
.wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery { height: calc(100cqw + 96px); min-height: 0; overflow: hidden; margin-bottom: 0 !important; }
.wp-block-woocommerce-product-image-gallery .flex-control-thumbs { margin-top: 0.75rem !important; height: 76px; overflow: hidden; }

/* Testimonials (custom post type) */
.hh-quotes--cpt { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.hh-quotes--cpt .hh-quote { margin: 0; background: var(--wp--preset--color--accent-5); border-radius: 18px; padding: 1.75rem; }

/* Social links (Hearth settings) and the forms' hidden spam trap */
.hh-social { list-style: none; display: flex; gap: 0.6rem; padding: 0; margin: 1.2rem 0 0; }
.hh-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent); color: var(--wp--preset--color--base); }
.hh-social a:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); text-decoration: none; }
.hh-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; opacity: 0; pointer-events: none; } /* spam trap: clipped, not moved off-screen (left: -9999px made right-to-left pages scroll sideways) */

/* Shop by room (store's own categories) */
.hh-rooms { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.hh-room { display: grid; gap: 0.75rem; text-decoration: none; color: var(--wp--preset--color--contrast); }
.hh-room__img { display: block; overflow: hidden; border-radius: 14px; aspect-ratio: 1; background: var(--wp--preset--color--accent-5); }
.hh-room__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.hh-room:hover .hh-room__img img { transform: scale(1.04); }
.hh-room__name { font-family: var(--wp--preset--font-family--literata); font-size: 1.2rem; }
@media (max-width: 781px) { .hh-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hh-story-img { margin: 0; }
.hh-story-img img { border-radius: 18px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (prefers-reduced-motion: reduce) { .hh-room__img img { transition: none; } }

/* ---------- 1.4.1 fixes (audit, 3 Oct 2026) ---------- */
/* Text for screen readers only (WooCommerce's "Price range: ...", "Sorted by ...", skip link): hidden on screen. */
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background: var(--wp--preset--color--base); clip-path: none; color: var(--wp--preset--color--contrast); display: block; height: auto; left: 8px; padding: 12px 18px; top: 8px; width: auto; z-index: 100000; }

/* Testimonial caption: name, product and label on their own lines */
.hh-who__text { display: flex; flex-direction: column; gap: 0.1rem; }
.hh-who__name { color: var(--wp--preset--color--contrast); font-weight: 600; }
.hh-who__product { font-size: 0.85rem; }

/* Product grid: prices and buttons line up in every row, whatever the title length; photos keep one shape */
.wc-block-product-template > .wc-block-product { display: flex; flex-direction: column; }
.wc-block-product-template > .wc-block-product .wp-block-woocommerce-product-price { margin-top: auto !important; }
.wc-block-product .wc-block-components-product-image img, ul.products li.product img { aspect-ratio: 1; object-fit: cover; width: 100%; height: auto; }
.wc-block-product .wp-block-woocommerce-product-price, .wc-block-product .wc-block-components-product-price { font-size: 0.95rem !important; }
.wc-block-components-product-price del, .price del { font-size: 0.9em; opacity: 1; color: var(--wp--preset--color--accent-4); }

/* Room above the footer on product, cart and checkout pages */
.single-product main, .woocommerce-cart main, .woocommerce-checkout main { padding-bottom: clamp(3rem, 7vw, 5rem) !important; }

/* Promo bar edges line up with the header */
.hh-promo { padding-left: var(--wp--style--root--padding-left, 1.5rem) !important; padding-right: var(--wp--style--root--padding-right, 1.5rem) !important; }

/* Product page: quantity boxes at a normal size, also for sets (grouped products) */
.hh-stepper { height: 46px; align-self: center; }
.hh-stepper input.qty { min-height: 0 !important; height: 100%; font-size: 1rem !important; width: 2.75rem !important; padding: 0 !important; }
.hh-step { width: 40px; font-size: 1.05rem; }
.woocommerce-grouped-product-list td { vertical-align: middle; padding-top: 0.6rem; padding-bottom: 0.6rem; }
.woocommerce-grouped-product-list .quantity { display: inline-flex; }

/* Sticky Add to cart bar: never covers the end of the page, and stays still for reduced motion */
.single-product .wp-site-blocks { padding-bottom: 76px; }
@media (prefers-reduced-motion: reduce) { .hh-sticky { transition: none; } }

/* Tap targets of at least 44 px on phones */
@media (max-width: 781px) {
  .wp-block-navigation__responsive-container-open, .wc-block-mini-cart__button { min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
  .hh-dot { height: 4px; background-clip: content-box; padding: 20px 0 !important; box-sizing: content-box; }
  .hh-pause { width: 44px; height: 44px; }
  .wc-block-product-filter-checkbox-list__label { min-height: 44px; display: flex !important; align-items: center; }
  /* Filter chips: 44 px including padding and border (content-box made them 60 px tall, short ones looked round) */
  .hh-filters .wc-block-product-filter-checkbox-list__label { box-sizing: border-box; min-height: 44px; padding: 0.3rem 0.95rem; justify-content: center; line-height: 1.2; }
  .hh-filters .wc-block-product-filter-checkbox-list__items { gap: 0.4rem !important; }
  .pswp__button { min-width: 44px; min-height: 44px; }
  .hh-search-open, .hh-wish-link { min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
  .woocommerce-product-gallery__trigger { width: 44px !important; height: 44px !important; }
  /* Filters: a clear full-width button above the products */
  .wc-block-product-filters__open-overlay { display: flex !important; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; min-height: 48px; border: 1px solid var(--wp--preset--color--contrast) !important; border-radius: 999px; background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important; font-weight: 600; font-size: 1rem !important; }
}

/* 1.4.1: card variant line, "choose a size" message, portfolio demo line */
.hh-variants { margin: 0.15rem 0 0; font-size: 0.8rem; color: var(--wp--preset--color--accent-4); letter-spacing: 0.01em; }
.hh-pick-msg { margin: 0.5rem 0 0.75rem; padding: 0.6rem 0.9rem; border-radius: 10px; background: color-mix(in srgb, var(--wp--preset--color--accent-1) 10%, var(--wp--preset--color--base)); color: var(--wp--preset--color--contrast); font-weight: 600; font-size: 0.92rem; }
.hh-demo-bar { margin: 0; padding: 0.45rem var(--wp--style--root--padding-right, 1.25rem); background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--contrast); font-size: 0.8rem; text-align: center; border-bottom: 1px solid var(--wp--preset--color--accent-2); }

/* 1.4.1: category buttons in equal widths on larger screens; smoother grid updates */
@media (min-width: 601px) {
  .hh-chips { display: grid; grid-template-columns: repeat(auto-fill, 12rem); gap: 0.6rem; justify-content: start; }
  .hh-chip { justify-content: center; min-height: 44px; box-sizing: border-box; min-width: 0; }
  .hh-chip--img { justify-content: flex-start; }
}
.wp-block-woocommerce-product-collection { transition: opacity 0.25s ease; }
.wp-block-woocommerce-product-collection.is-loading { opacity: 0.45; pointer-events: none; }
.wc-block-product-template { animation: hh-grid-in 0.35s ease; }
@keyframes hh-grid-in { from { opacity: 0.4; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .wc-block-product-template { animation: none; } .wp-block-woocommerce-product-collection { transition: none; } }

/* Loading state while new products arrive. The "Updating products" pill waits 0.4 s, so quick updates only dim the
   grid instead of flashing a message. */
@keyframes hh-show { from { opacity: 0; } to { opacity: 1; } }
/* Instant preview (hh.js): matching products stay clear and the others fade, instead of dimming the whole grid. */
.wp-block-woocommerce-product-collection.is-loading.hh-preview, .wp-block-woocommerce-product-collection.is-loading.hh-preview .wc-block-product-template { opacity: 1; }
.wp-block-woocommerce-product-collection.hh-preview .wc-block-product { transition: opacity .15s ease; }
.wp-block-woocommerce-product-collection.hh-preview .wc-block-product.hh-miss { opacity: 0.15; animation: none; } /* the entrance animation would hold it at full opacity */
@media (prefers-reduced-motion: reduce) { .wp-block-woocommerce-product-collection.hh-preview .wc-block-product { transition: none; } }
.wp-block-woocommerce-product-collection.is-loading::after { animation: hh-show 0.2s ease 0.4s both; }
@media (prefers-reduced-motion: reduce) { .wp-block-woocommerce-product-collection.is-loading::after { animation-duration: 0.01s; } }
.wp-block-woocommerce-product-collection.is-loading { position: relative; }
.wp-block-woocommerce-product-collection.is-loading::after { content: "Updating products\2026"; position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 80; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); font-size: 0.9rem; font-weight: 600; padding: 0.6rem 1.1rem; border-radius: 999px; box-shadow: 0 8px 24px rgb(0 0 0 / 0.18); pointer-events: none; }
/* Category buttons line up with the breadcrumb, filters and products (the wide content width), on any screen size */
.hh-chips { max-width: var(--wp--style--global--wide-size, 1340px) !important; margin-left: auto !important; margin-right: auto !important; width: 100%; box-sizing: border-box; }

/* ---------- Sale page banner ---------- */
.hh-sale-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem; padding: clamp(1.5rem, 4vw, 2.75rem); border-radius: 22px; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); margin: 0 0 clamp(1.5rem, 4vw, 2.5rem); }
.hh-sale-banner h2 { color: var(--wp--preset--color--base); font-size: clamp(2rem, 5vw, 3.2rem); margin: 0.2rem 0 0.4rem; line-height: 1.05; }
.hh-sale-banner p { margin: 0; color: color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent); }
.hh-sale-banner__eyebrow { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem !important; font-weight: 600; color: var(--hh-ember-pale, #f3c9b5) !important; }
.hh-sale-banner__timer { display: flex; flex-direction: column; align-items: flex-start; gap: 0.25rem; padding: 1rem 1.4rem; border-radius: 16px; background: color-mix(in srgb, var(--wp--preset--color--base) 10%, transparent); border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 20%, transparent); }
.hh-sale-banner__label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.8; }
.hh-ends--big { font-size: clamp(1.5rem, 3.4vw, 2.1rem); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.01em; background: none !important; padding: 0 !important; color: var(--wp--preset--color--base) !important; position: static !important; }
.hh-sale-banner__date { font-size: 0.82rem; opacity: 0.75; }
.hh-sale-banner.is-empty { display: block; background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--contrast); }
.hh-sale-banner.is-empty h2 { color: var(--wp--preset--color--contrast); }
.hh-sale-banner.is-empty p { color: var(--wp--preset--color--accent-4); margin-bottom: 1rem; }
.hh-ends.is-ended { opacity: 0.7; }
.wc-block-product .hh-save { margin: 0.25rem 0 0; display: inline-block; font-size: 0.72rem; }

/* ---------- My account ---------- */
.woocommerce-account .woocommerce { max-width: 1100px; }
/* My account layout: the page content uses the title's width (it was held to the 645px text width) and lines up with the
   page title; signed out, the intro and sign-in card stay a readable width, aligned under the title. */
.woocommerce-account .wp-block-post-content { max-width: min(1100px, 100%) !important; } /* same width as the page title, so they line up */
.woocommerce-account .wp-block-post-content > * { margin-left: 0 !important; margin-right: auto !important; }
.woocommerce-account:not(.logged-in) .wp-block-post-content > * { max-width: 36rem; }
.woocommerce-account.logged-in .wp-block-post-content > .woocommerce { max-width: none; }
/* WooCommerce's float-clearing ::before/::after became grid cells and pushed the menu into the second column. */
.woocommerce-account.logged-in .woocommerce::before, .woocommerce-account.logged-in .woocommerce::after { content: none; display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; } /* WooCommerce adds 1em above and below each item */
/* Sign-in and account forms: labels at a normal size, inputs in the theme's style (WooCommerce's own rules are more
   specific, hence the longer selectors), 17px text so phones do not zoom in on tap. */
.woocommerce-account .woocommerce form .form-row label, .woocommerce-account .woocommerce form .form-row .woocommerce-form__label { font-size: 1rem; font-weight: 600; line-height: 1.4; margin-bottom: 0.35rem; }
.woocommerce-account .woocommerce form .form-row .input-text, .woocommerce-account .woocommerce form .form-row input.input-text, .woocommerce-account .woocommerce form .form-row select { min-height: 48px; padding: 0.6rem 0.9rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 12px; background: #fff; font: inherit; font-size: 1.05rem; color: var(--wp--preset--color--contrast); box-sizing: border-box; }
.woocommerce-account .woocommerce form .form-row .input-text:focus { border-color: var(--wp--preset--color--contrast); outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; }
.woocommerce-account .woocommerce form .woocommerce-form-login__rememberme { font-size: 1rem; font-weight: 400; margin: 0; }
.woocommerce-account .woocommerce form input[type=checkbox] { width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--contrast); margin: 0; }
.woocommerce-account .woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.5rem; vertical-align: middle; }
.woocommerce-account .woocommerce form .woocommerce-form-login__rememberme input[type=checkbox] { position: static; top: auto; }
.woocommerce-account .woocommerce form .woocommerce-LostPassword { margin-left: 0; padding-left: 0; }
.woocommerce-account .woocommerce form .show-password-input { top: 50%; transform: translateY(-50%); }
/* Account details: help text at a small size (it was large italics), and the password box styled like the cards */
.woocommerce-account .woocommerce form .form-row em, .woocommerce-account .woocommerce form .form-row .description { display: block; margin-top: 0.35rem; font-style: normal; font-size: 0.9rem; color: var(--wp--preset--color--accent-4); }
.woocommerce-account .woocommerce form fieldset { margin: 1.5rem 0; padding: 1rem 1.25rem 0.25rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 16px; background: #fff; }
.woocommerce-account .woocommerce form fieldset legend { padding: 0 0.5rem; font-weight: 600; font-size: 1.05rem; }
.hh-acc-intro { margin-bottom: 1.5rem; }
.hh-acc-intro__lead { font-size: 1.1rem; margin: 0 0 0.75rem; }
.hh-acc-benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; color: var(--wp--preset--color--accent-4); font-size: 0.95rem; }
.hh-acc-benefits li::before { content: "\2713"; color: var(--wp--preset--color--accent-3); margin-right: 0.45rem; font-weight: 700; }
.woocommerce-account form.login, .woocommerce-account form.register { border: 1px solid var(--wp--preset--color--accent-2); border-radius: 18px; padding: clamp(1.25rem, 3vw, 2rem) !important; margin: 0 0 1.5rem !important; background: #fff; max-width: 520px; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 1.5rem; }
.woocommerce-account .u-columns.col2-set > div { width: auto !important; float: none !important; }
/* Same float-clearing ::before/::after problem as the account grid: it took the first cell (Billing showed on the right,
   Shipping below on the left). */
.woocommerce-account .col2-set::before, .woocommerce-account .col2-set::after { content: none; display: none; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title.title::before, .woocommerce-account .woocommerce-Addresses .woocommerce-Address-title.title::after { content: none; display: none; } /* WooCommerce: .addresses .title::before */
.woocommerce-account .woocommerce-Addresses.col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.25rem; margin-top: 1.25rem; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { width: auto !important; float: none !important; text-align: left; padding: 1.25rem 1.4rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 16px; background: #fff; }
.woocommerce-account .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; margin-bottom: 0.75rem; }
.woocommerce-account .woocommerce-Address-title h2, .woocommerce-account .woocommerce-Address-title h3 { margin: 0; font-size: 1.35rem; float: none; text-align: left; }
.woocommerce-account .woocommerce-Address-title .edit { float: none; font-size: 0.95rem; }
.woocommerce-account .woocommerce-Address address { font-style: normal; color: var(--wp--preset--color--accent-4); font-size: 1rem; }
.woocommerce-account .u-columns form.login, .woocommerce-account .u-columns form.register { max-width: none; }
.woocommerce-account form .form-row { margin-bottom: 1rem; }
.woocommerce-account form .input-text { width: 100%; box-sizing: border-box; min-height: 46px; padding: 0.6rem 0.9rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 10px; font: inherit; background: #fff; }
.woocommerce-account form .input-text:focus { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; }
.woocommerce-account .woocommerce-form-login__submit, .woocommerce-account .woocommerce-form-register__submit { min-height: 46px; padding: 0 1.75rem !important; margin-right: 1rem; }
.woocommerce-account .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; }
.woocommerce-LostPassword a, .hh-acc-guest { font-size: 0.9rem; }
.hh-acc-guest { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--accent-2); color: var(--wp--preset--color--accent-4); }
@media (min-width: 900px) {
  .woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 2.5rem; align-items: start; }
  .woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
}
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 1.5rem; padding: 0.4rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 16px; background: #fff; }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 44px; padding: 0 0.9rem; border-radius: 10px; text-decoration: none; color: var(--wp--preset--color--contrast); font-size: 0.95rem; }
.woocommerce-MyAccount-navigation a:hover { background: var(--wp--preset--color--accent-5); }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); text-decoration: none; }
.woocommerce-MyAccount-navigation-link--customer-logout { border-top: 1px solid var(--wp--preset--color--accent-2); margin-top: 0.4rem; padding-top: 0.4rem; }
@media (max-width: 899px) {
  .woocommerce-MyAccount-navigation ul { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; padding: 0.3rem; }
  .woocommerce-MyAccount-navigation li { flex: none; }
  .woocommerce-MyAccount-navigation-link--customer-logout { border-top: 0; margin: 0; padding: 0; }
}
.hh-acc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 1rem; margin: 1.5rem 0; }
.hh-acc-card { display: flex; flex-direction: column; gap: 0.35rem; padding: 1.2rem; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 16px; background: #fff; text-decoration: none; color: var(--wp--preset--color--contrast); transition: border-color 0.2s ease, transform 0.2s ease; }
.hh-acc-card:hover { border-color: var(--wp--preset--color--contrast); transform: translateY(-2px); }
.hh-acc-card__icon { color: var(--wp--preset--color--accent-1); }
.hh-acc-card__title { font-weight: 600; }
.hh-acc-card__text { font-size: 0.88rem; color: var(--wp--preset--color--accent-4); }
.woocommerce-account table.shop_table { border-collapse: collapse; width: 100%; border: 1px solid var(--wp--preset--color--accent-2); border-radius: 14px; overflow: hidden; }
.woocommerce-account table.shop_table th, .woocommerce-account table.shop_table td { padding: 0.8rem 1rem; text-align: left; border-bottom: 1px solid var(--wp--preset--color--accent-2); }
.woocommerce-account table.shop_table thead th { background: var(--wp--preset--color--accent-5); font-size: 0.85rem; }
@media (prefers-reduced-motion: reduce) { .hh-acc-card, .hh-acc-card:hover { transition: none; transform: none; } }

/* Many categories: extra buttons hidden until "+ N more"; on phones the row scrolls and shows them all */
.hh-chip--extra { display: none !important; }
.hh-chips.is-open .hh-chip--extra { display: inline-flex !important; }
.hh-chips__more { cursor: pointer; font: inherit; font-size: 0.9rem; font-weight: 600; background: var(--wp--preset--color--accent-5) !important; border-style: dashed !important; color: var(--wp--preset--color--contrast); }
@media (max-width: 600px) { .hh-chip--extra { display: inline-flex !important; } .hh-chips__more { display: none !important; } }
/* Shop search box: no results list on the shop, the grid updates instead */
.hh-filters .hh-ls__list { display: none !important; }
.hh-chips.is-filtered .hh-chip span { display: none; }

/* Very long words (product names, links, breadcrumbs) break inside the word rather than pushing the page sideways */
h1, h2, h3, h4, .wp-block-post-title, .woocommerce-breadcrumb, .wc-block-breadcrumbs, .wc-block-components-product-name,
.wc-block-components-product-metadata, .woocommerce-loop-product__title, .wc-block-grid__product-title, .hh-mini__name, .wc-block-mini-cart__drawer a, .woocommerce-message, .wc-block-components-notice-banner { overflow-wrap: anywhere; }
.wc-block-grid__product-link { max-width: 100%; }
/* Very long product names: a smaller title on the product page (class from inc/brand.php) */
.single-product .wp-block-post-title.hh-title--long { font-size: clamp(1.75rem, 2.8vw, 2.6rem) !important; line-height: 1.15; }

/* ===================== Header and footer layouts (Hearth settings > Header and footer) =====================
   One header and one footer; the body class (hh-hdr-*, hh-ftr-*) arranges them. Header layouts apply from 1024px;
   below that every layout uses the classic phone and tablet header (the Minimal menu stays behind its button). */
.hh-header__bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand nav tools"; align-items: center; column-gap: clamp(0.75rem, 2vw, 1.75rem); row-gap: 0.85rem; }
.hh-header__bar > * { margin-block: 0 !important; }
.hh-header__bar > .hh-brand { grid-area: brand; min-width: 0; }
.hh-header__bar > .wp-block-navigation { grid-area: nav; justify-self: end; }
.hh-header__bar > .hh-header__tools { grid-area: tools; }
.hh-header__search { display: none; grid-area: search; }
.hh-header__search .hh-ls { margin: 0; }
.hh-hdr-minimal .hh-header__bar { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "brand . tools nav"; }
/* Tablets (600 to 1023px): the menu sits behind its button as on phones. WordPress shows the full menu from 600px,
   which squeezed and wrapped it next to the logo and icons (and an older rule showed the button as well). */
@media (min-width: 600px) and (max-width: 1023px) {
  .hh-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .hh-header .wp-block-navigation__responsive-container-open { display: flex !important; }
  .hh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
  .hh-header__bar { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "brand . tools nav"; }
}
@media (min-width: 1024px) {
  /* Centered: logo in the middle, icons right, menu on its own row */
  .hh-hdr-centered .hh-header__bar { grid-template-columns: 1fr auto 1fr; grid-template-areas: ". brand tools" "nav nav nav"; }
  .hh-hdr-centered .hh-header__bar > .hh-brand { justify-self: center; }
  .hh-hdr-centered .hh-header__bar > .hh-header__tools { justify-self: end; }
  .hh-hdr-centered .hh-header__bar > .wp-block-navigation { justify-self: stretch; justify-content: center; padding-top: 0.85rem; border-top: 1px solid var(--wp--preset--color--accent-2); }
  .hh-hdr-centered .hh-header .wp-block-navigation__container { justify-content: center; }
  .hh-hdr-centered .hh-header .wp-block-site-title { font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important; }
  /* Two rows: logo, full search bar and icons; the menu below */
  .hh-hdr-stacked .hh-header__bar { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand search tools" "nav nav nav"; }
  .hh-hdr-stacked .hh-header__search { display: block; width: 100%; max-width: 38rem; justify-self: center; }
  .hh-hdr-stacked .hh-header__tools .hh-search-open { display: none !important; }
  .hh-hdr-stacked .hh-header__bar > .wp-block-navigation { justify-self: stretch; justify-content: flex-start; padding-top: 0.85rem; border-top: 1px solid var(--wp--preset--color--accent-2); }
  .hh-hdr-stacked .hh-header .wp-block-navigation__container { justify-content: flex-start; }
}
/* A menu that does not fit next to the logo (hh-ui.js adds hh-nav-collapsed): behind its button, as on tablets */
.hh-header.hh-nav-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
.hh-header.hh-nav-collapsed .wp-block-navigation__responsive-container-open { display: flex !important; }
.hh-header.hh-nav-collapsed .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
.hh-header.hh-nav-collapsed .hh-header__bar { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "brand . tools nav"; }
.hh-hdr-centered .hh-header.hh-nav-collapsed .hh-header__bar { grid-template-columns: 1fr auto 1fr; grid-template-areas: "nav brand tools"; }
.hh-hdr-centered .hh-header.hh-nav-collapsed .hh-header__bar > .wp-block-navigation { justify-self: start; }
.hh-hdr-stacked .hh-header.hh-nav-collapsed .hh-header__bar { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "brand search tools nav"; }
.hh-header.hh-nav-collapsed .hh-header__bar > .wp-block-navigation { padding-top: 0 !important; border-top: 0 !important; }

/* Small laptops (1024 to 1199px): a slightly tighter menu so it stays on one line next to the logo and icons */
@media (min-width: 1024px) and (max-width: 1199px) {
  .hh-header .wp-block-navigation__container { flex-wrap: nowrap; gap: 0.9rem; font-size: 0.95rem; }
}
/* Split needs more room for the menu on one line: from 1200px (classic below); best with up to 7 menu items */
@media (min-width: 1200px) {
  .hh-hdr-split .hh-header__bar { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: "nav brand tools"; }
  .hh-hdr-split .hh-header__bar > .wp-block-navigation { justify-self: start; justify-content: flex-start; }
  .hh-hdr-split .hh-header .wp-block-navigation__container { justify-content: flex-start; flex-wrap: nowrap; gap: 0.95rem; font-size: 0.95rem; }
  .hh-hdr-split .hh-header__bar > .hh-header__tools { justify-self: end; }
}

/* Footer: Light (cream, dark text) */
.hh-ftr-light .hh-footer { background: var(--wp--preset--color--accent-5) !important; color: var(--wp--preset--color--contrast); border-top: 1px solid var(--wp--preset--color--accent-2); }
.hh-ftr-light .hh-footer a, .hh-ftr-light .hh-footer h2, .hh-ftr-light .hh-footer h3, .hh-ftr-light .hh-footer__brand { color: var(--wp--preset--color--contrast); }
.hh-ftr-light .hh-footer__cols h3, .hh-ftr-light .hh-footer__contact, .hh-ftr-light .hh-footer__visit, .hh-ftr-light .hh-footer__bottom { color: var(--wp--preset--color--accent-4); }
.hh-ftr-light .hh-footer__news, .hh-ftr-light .hh-footer__bottom { border-color: var(--wp--preset--color--accent-2); }
.hh-ftr-light .hh-footer .hh-news input { background: #fff; border-color: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--contrast); }
.hh-ftr-light .hh-footer .hh-news input::placeholder { color: var(--wp--preset--color--accent-4); }
.hh-ftr-light .hh-footer .hh-news button { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hh-ftr-light .hh-footer .hh-news-msg { color: var(--wp--preset--color--contrast); }
.hh-ftr-light .hh-pay li, .hh-ftr-light .hh-social a { border-color: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--contrast); }
.hh-ftr-light .hh-social a:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* Footer: Links first (link columns on top, newsletter below as a slimmer band) */
.hh-ftr-links-first .hh-footer { display: flex; flex-direction: column; }
.hh-ftr-links-first .hh-footer > * { width: 100%; box-sizing: border-box; }
.hh-ftr-links-first .hh-footer__cols { order: 1; }
.hh-ftr-links-first .hh-footer__news { order: 2; padding: 2rem 0; border-bottom: 0; border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 14%, transparent); }
.hh-ftr-links-first .hh-footer__news h2 { font-size: 1.4rem; }
.hh-ftr-links-first .hh-footer__bottom { order: 3; }

/* Footer: Centered (no newsletter; brand, links and social centred) */
.hh-ftr-centered .hh-footer__news { display: none; }
.hh-ftr-centered .hh-footer__cols { flex-direction: column !important; align-items: center; text-align: center; gap: 1.25rem !important; }
.hh-ftr-centered .hh-footer__cols > .wp-block-column { flex-basis: auto !important; width: 100%; }
.hh-ftr-centered .hh-footer__cols h3 { display: none; }
.hh-ftr-centered .hh-footer__cols p { max-width: 36rem; margin-left: auto; margin-right: auto; }
.hh-ftr-centered .hh-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.4rem; }
.hh-ftr-centered .hh-social { justify-content: center; }
.hh-ftr-centered .hh-footer__bottom { justify-content: center; text-align: center; }
.hh-ftr-centered .hh-pay { margin: 0; justify-content: center; }

/* Footer: Simple (shop name and social on one line, all links in one line below) */
.hh-ftr-simple .hh-footer__news { display: none; }
.hh-ftr-simple .hh-footer__cols { flex-wrap: wrap !important; align-items: center; gap: 0.6rem 1.6rem !important; padding: 1.75rem 0 1.25rem; }
.hh-ftr-simple .hh-footer__cols > .wp-block-column { flex: 0 0 auto !important; flex-basis: auto !important; }
.hh-ftr-simple .hh-footer__cols > .wp-block-column:first-child { flex-basis: 100% !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; }
.hh-ftr-simple .hh-footer__cols > .wp-block-column:first-child > p:not(.wp-block-site-title), .hh-ftr-simple .hh-footer__visit, .hh-ftr-simple .hh-footer__cols h3 { display: none; }
.hh-ftr-simple .hh-footer__brand { margin: 0; }
.hh-ftr-simple .hh-social { margin: 0; }
.hh-ftr-simple .hh-footer__links { display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem; }
@media (max-width: 781px) {
  .hh-ftr-centered .hh-footer__cols > .wp-block-column, .hh-ftr-simple .hh-footer__cols > .wp-block-column { flex-basis: 100% !important; }
  .hh-ftr-simple .hh-footer__cols > .wp-block-column:first-child { margin-right: 0; }
}

/* Logo size (Hearth settings > Logo): --hh-logo-w; phones cap it so the header still fits beside the icons */
.hh-header .hh-brand .wp-block-site-logo img { width: var(--hh-logo-w, 32px) !important; height: auto !important; max-width: none; }
@media (max-width: 600px) { .hh-header .hh-brand .wp-block-site-logo img { width: min(var(--hh-logo-w, 32px), 130px) !important; } }

/* 1.4.5: neutral texts. Optional lines that are empty take no space; the sample-review note shows only on demo stores. */
.hh-sign:empty, .hh-footer__contact:empty, .hh-footer__visit:empty, .hh-facts:empty { display: none; }
.hh-sample-note { display: none; }
body.hh-demo .hh-sample-note { display: inline; }
/* A footer column whose links all point to pages the store does not have (yet) disappears instead of showing only its heading */
.hh-footer .wp-block-column:has(> .wp-block-heading):not(:has(li)):not(:has(.hh-footer__visit:not(:empty))) { display: none; }
