/*
Theme Name: Home Bohemia
Theme URI: https://homebohemia.eu
Description: Child theme of GeneratePress for Home Bohemia
Author: Gillani Group SRL
Author URI: https://homebohemia.eu
Template: generatepress
Version: 1.5.64
License: GNU General Public License v2 or later
Text Domain: homebohemia
*/

@font-face {
  font-family: 'Fraunces';
  src: url('assets/fonts/fraunces-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fraunces';
  src: url('assets/fonts/fraunces-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fraunces';
  src: url('assets/fonts/fraunces-900.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Karla';
  src: url('assets/fonts/karla-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Karla';
  src: url('assets/fonts/karla-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root{
  --hb-indigo-deep:#161E2C;
  --hb-indigo:#2C3A52;
  --hb-indigo-soft:#5A6B85;
  --hb-indigo-wash:#E8EBF0;
  --hb-clay-deep:#7A3220;
  --hb-clay:#A4462E;
  --hb-clay-soft:#C77A63;
  --hb-clay-wash:#F6E9E4;
  --hb-turmeric-deep:#8F6B22;
  --hb-turmeric:#C99A3F;
  --hb-turmeric-hover:#B98A32;
  --hb-turmeric-wash:#FAF1DF;
  --hb-sage-deep:#5A6749;
  --hb-sage:#7D8B6A;
  --hb-sage-wash:#EDF0E7;
  --hb-jute-lt:#F6F0E6;
  --hb-jute:#EDE4D3;
  --hb-jute-dk:#DCCFB8;
  --hb-ink:#1F1B18;
  --hb-ink-60:rgba(31,27,24,.62);
  --hb-ink-40:rgba(31,27,24,.42);
  --hb-line:rgba(31,27,24,.14);

  --hb-bg:var(--hb-jute-lt);
  --hb-surface:#FFFFFF;
  --hb-text:var(--hb-ink);
  --hb-link:var(--hb-clay);
  --hb-cta:var(--hb-turmeric);
  --hb-success:var(--hb-sage);
  --hb-error:var(--hb-clay);
  --hb-border:var(--hb-line);

  --hb-display:'Fraunces',Georgia,serif;
  --hb-body:'Karla',system-ui,sans-serif;
  --hb-mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;

  --hb-radius:2px;
  --hb-radius-lg:4px;

  --z-header:100;
  --z-mega:150;
  --z-drawer:200;
  --z-overlay:250;
  --z-modal:300;
  --z-toast:400;
}

body{
  background:var(--hb-bg);
  color:var(--hb-text);
  font-family:var(--hb-body);
}
h1,h2,h3,h4,h5,h6{font-family:var(--hb-display)}
a{color:var(--hb-link)}
.hb-price{
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}

/* -------------------------------------------------------------------------
 * Site title (GeneratePress): keep in DOM for SEO/a11y, hide visually.
 * Live CDP (homebohemia.eu, 2026-09-01): inside-header contains ONLY
 *   <div class="site-branding">
 *     <p class="main-title" itemprop="headline">
 *       <a rel="home">Home Bohemia</a>
 *     </p>
 *   </div>
 * No .site-logo / .header-image / .custom-logo / .navigation-branding and
 * no <img> in #masthead. Logo absence is missing markup (Customizer), not
 * this clip nesting the image inside .main-title.
 * When a logo is re-enabled, GP outputs it as a sibling .site-logo with
 * img.header-image — outside .main-title — so clipping .main-title is safe.
 * Screen-reader clip — not display:none / visibility:hidden.
 * ---------------------------------------------------------------------- */
.site-branding .main-title,
.navigation-branding .main-title{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
/* Hardening: never let title clip cascade onto the logo sibling. */
.site-logo,
.site-logo img,
.site-header .header-image,
a.custom-logo-link,
img.custom-logo{
  clip:auto;
  clip-path:none;
  overflow:visible;
}

/* FAQ accordion (templates/page-faq.php) */
.hb-faq-page{
  padding-block:2.5rem 4rem;
  max-width:44rem;
}
.hb-faq-page__header .entry-title{
  font-family:var(--hb-display);
  font-weight:900;
  color:var(--hb-indigo-deep);
  letter-spacing:-0.01em;
  line-height:1.15;
  margin:0 0 1.25rem;
}
.hb-faq-page__intro{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  margin-bottom:2.5rem;
}
.hb-faq__section{
  margin-bottom:2.25rem;
}
.hb-faq__heading{
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.35rem;
  color:var(--hb-indigo);
  margin:0 0 0.75rem;
  padding-bottom:0.5rem;
  border-bottom:1px solid var(--hb-border);
}
.hb-faq__item{
  border-bottom:1px solid var(--hb-border);
}
.hb-faq__question-wrap{
  margin:0;
  font-size:inherit;
  font-weight:inherit;
}
.hb-faq__question{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:100%;
  margin:0;
  padding:1rem 0;
  border:0;
  background:transparent;
  color:var(--hb-ink);
  font-family:var(--hb-body);
  font-size:1.05rem;
  font-weight:700;
  text-align:left;
  cursor:pointer;
  line-height:1.4;
}
.hb-faq__question:hover,
.hb-faq__question:focus-visible{
  color:var(--hb-clay);
}
.hb-faq__question:focus-visible{
  outline:2px solid var(--hb-turmeric);
  outline-offset:3px;
}
.hb-faq__icon{
  flex:0 0 auto;
  width:0.65rem;
  height:0.65rem;
  border-right:2px solid var(--hb-indigo-soft);
  border-bottom:2px solid var(--hb-indigo-soft);
  transform:rotate(45deg);
  transition:transform .25s ease,border-color .25s ease;
}
.hb-faq__question[aria-expanded="true"] .hb-faq__icon{
  transform:rotate(225deg);
  border-color:var(--hb-clay);
}
.hb-faq__answer{
  overflow:hidden;
  height:0;
  transition:height .28s ease;
}
.hb-faq__answer-inner{
  padding:0 0 1.15rem;
}
.hb-faq__answer-inner p{
  margin:0;
  font-family:var(--hb-body);
  font-weight:400;
  font-size:1rem;
  line-height:1.65;
  color:var(--hb-ink-60);
}
@media (prefers-reduced-motion:reduce){
  .hb-faq__answer,
  .hb-faq__icon{
    transition:none;
  }
}

/* Contact form (templates/page-contact.php) */
.hb-contact-page{
  padding-block:2.5rem 4rem;
  max-width:44rem;
}
.hb-contact-page__header .entry-title{
  font-family:var(--hb-display);
  font-weight:900;
  color:var(--hb-indigo-deep);
  letter-spacing:-0.01em;
  line-height:1.15;
  margin:0 0 1.25rem;
}
.hb-contact-page__intro{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  margin-bottom:2.5rem;
}
.hb-contact-form__success{
  padding:1.25rem 1.35rem;
  background:var(--hb-sage-wash);
  border:1px solid var(--hb-sage);
  border-radius:var(--hb-radius-lg);
  color:var(--hb-ink);
  font-family:var(--hb-body);
  line-height:1.55;
}
.hb-contact-form__success p{
  margin:0;
}
.hb-contact-form__notice{
  padding:1rem 1.15rem;
  margin-bottom:1.5rem;
  border-radius:var(--hb-radius-lg);
  font-family:var(--hb-body);
  line-height:1.5;
}
.hb-contact-form__notice p{
  margin:0;
}
.hb-contact-form__notice--error{
  background:var(--hb-clay-wash);
  border:1px solid var(--hb-clay);
  color:var(--hb-clay-deep);
}
.hb-contact-form__honeypot{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.hb-contact-form{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.hb-contact-form__field{
  display:flex;
  flex-direction:column;
  gap:0.4rem;
}
.hb-contact-form__label{
  font-family:var(--hb-body);
  font-weight:700;
  font-size:0.95rem;
  color:var(--hb-indigo);
}
.hb-contact-form__required{
  color:var(--hb-clay);
  margin-left:0.15rem;
}
.hb-contact-form__input,
.hb-contact-form__textarea{
  width:100%;
  box-sizing:border-box;
  padding:0.75rem 0.85rem;
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius);
  background:var(--hb-surface);
  color:var(--hb-ink);
  font-family:var(--hb-body);
  font-size:1rem;
  line-height:1.45;
}
.hb-contact-form__input:focus,
.hb-contact-form__textarea:focus{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
  border-color:var(--hb-indigo-soft);
}
.hb-contact-form__field.is-invalid .hb-contact-form__input,
.hb-contact-form__field.is-invalid .hb-contact-form__textarea{
  border-color:var(--hb-clay);
}
.hb-contact-form__error{
  margin:0;
  font-family:var(--hb-body);
  font-size:0.9rem;
  color:var(--hb-clay-deep);
}
.hb-contact-form__actions{
  margin-top:0.35rem;
}
.hb-contact-form__submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.85rem 1.5rem;
  border:0;
  border-radius:var(--hb-radius);
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  font-family:var(--hb-body);
  font-size:1rem;
  font-weight:700;
  cursor:pointer;
  line-height:1.2;
}
.hb-contact-form__submit:hover,
.hb-contact-form__submit:focus-visible{
  background:var(--hb-turmeric-hover);
}
.hb-contact-form__submit:focus-visible{
  outline:2px solid var(--hb-indigo);
  outline-offset:3px;
}

/* -------------------------------------------------------------------------
 * Mega menu (primary location walker — inc/mega-menu.php)
 * Breakpoint: min-width 1025px (verified live). Mobile = full-screen drawer
 * + sibling-<ul> drill-down (.is-active); desktop = flat row + hover panel.
 * ---------------------------------------------------------------------- */

/* Live DOM: nav#site-navigation.main-navigation > .main-nav > ul.menu */
@media (min-width:1025px){
  /* Positioning context for panels — avoid left:0 under a right-edge <li>
     which pushed Lighting’s 672px panel past the viewport (live: scrollWidth 1686). */
  #site-navigation.main-navigation .main-nav{
    position:relative;
  }
  #site-navigation.main-navigation .main-nav > ul[data-hb-mega-root],
  #site-navigation.main-navigation .main-nav > ul.hb-mega-level[data-hb-mega-root]{
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    list-style:none;
    margin:0;
    padding:0;
    gap:0.15rem 1.35rem;
  }
  #site-navigation.main-navigation .main-nav > ul[data-hb-mega-root] > li{
    display:flex;
    align-items:center;
    float:none;
    list-style:none;
    margin:0;
    /* static so .hb-mega-panel anchors to .main-nav, not the trigger <li> */
    position:static;
  }
  button.menu-toggle{
    display:none !important;
  }
  /* Mobile-only chrome */
  .hb-mega-icon,
  .hb-mega-drill-btn,
  .hb-mega-drill,
  .hb-mega-chevron{
    display:none !important;
  }
  .hb-mega-row-link{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-family:var(--hb-body);
    font-weight:700;
    color:var(--hb-indigo-deep);
    text-decoration:none;
  }
  .hb-mega-row-link:hover,
  .hb-mega-row-link:focus-visible{
    color:var(--hb-clay);
  }
  #site-navigation.main-navigation .hb-mega-panel{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    z-index:var(--z-mega);
    width:auto;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
    margin-top:0.35rem;
    padding:1.25rem 1.35rem;
    background:var(--hb-surface);
    border:1px solid var(--hb-border);
    border-radius:var(--hb-radius-lg);
    box-shadow:0 10px 28px rgba(22,30,44,.08);
  }
  #site-navigation.main-navigation .hb-mega-panel[hidden]{
    display:none !important;
  }
  #site-navigation.main-navigation .hb-mega-panel__inner{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(12rem,0.85fr);
    gap:1.5rem;
    align-items:stretch;
  }
  #site-navigation.main-navigation .hb-mega-panel__cols{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:1rem 1.5rem;
  }
  #site-navigation.main-navigation .hb-mega-panel__heading{
    margin:0 0 0.65rem;
    font-family:var(--hb-display);
    font-weight:600;
    font-size:1.05rem;
    color:var(--hb-indigo-deep);
  }
  #site-navigation.main-navigation .hb-mega-panel__heading--spacer{
    visibility:hidden;
  }
  /*
   * GeneratePress .main-navigation ul ul { left:-99999px; opacity:0; height:0; … }
   * matches every nested UL — including .hb-mega-panel__list. Child .hb-mega-panel__list
   * (0,1,0) loses to GP (0,1,2). Override with #site-navigation + .hb-mega-panel scope.
   */
  #site-navigation.main-navigation .hb-mega-panel ul,
  #site-navigation.main-navigation .hb-mega-panel .hb-mega-panel__list{
    display:grid;
    float:none;
    position:static;
    left:auto;
    top:auto;
    opacity:1;
    visibility:visible;
    height:auto;
    width:auto;
    max-width:none;
    min-width:0;
    overflow:visible;
    pointer-events:auto;
    box-shadow:none;
    z-index:auto;
    list-style:none;
    margin:0;
    padding:0;
    gap:0.2rem;
    text-align:inherit;
    transition:none;
  }
  #site-navigation.main-navigation .hb-mega-panel .hb-mega-panel__item{
    display:block;
    float:none;
    position:static;
    width:auto;
  }
  #site-navigation.main-navigation .hb-mega-panel__link{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-family:var(--hb-body);
    color:var(--hb-ink);
    text-decoration:none;
  }
  #site-navigation.main-navigation .hb-mega-panel__link:hover,
  #site-navigation.main-navigation .hb-mega-panel__link:focus-visible{
    color:var(--hb-clay);
  }
  #site-navigation.main-navigation .hb-mega-panel__promo{
    display:flex;
    flex-direction:column;
    gap:0.75rem;
    padding:0.85rem;
    background:var(--hb-jute-lt);
    border-radius:var(--hb-radius-lg);
  }
  #site-navigation.main-navigation .hb-mega-panel__promo-media{
    display:block;
    overflow:hidden;
    border-radius:var(--hb-radius);
    background:var(--hb-indigo-wash);
    aspect-ratio:4 / 3;
  }
  #site-navigation.main-navigation .hb-mega-panel__promo-media--empty{
    min-height:8rem;
  }
  #site-navigation.main-navigation .hb-mega-panel__promo-img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  #site-navigation.main-navigation .hb-mega-panel__promo-title{
    margin:0;
    font-family:var(--hb-display);
    font-weight:600;
    font-size:1.05rem;
    color:var(--hb-indigo-deep);
    line-height:1.3;
  }
  #site-navigation.main-navigation .hb-mega-panel__cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    align-self:flex-start;
    min-height:44px;
    padding:0.7rem 1.15rem;
    border-radius:var(--hb-radius);
    background:var(--hb-turmeric);
    color:var(--hb-indigo-deep);
    font-family:var(--hb-body);
    font-weight:700;
    text-decoration:none;
  }
  #site-navigation.main-navigation .hb-mega-panel__cta:hover,
  #site-navigation.main-navigation .hb-mega-panel__cta:focus-visible{
    background:var(--hb-turmeric-hover);
  }
}

/* Mobile / tablet drawer + drill-down */
@media (max-width:1024px){
  #site-navigation.main-navigation.toggled{
    position:fixed;
    inset:0;
    z-index:var(--z-drawer);
    background:var(--hb-surface);
    overflow:auto;
    padding:1rem 1.15rem 2rem;
  }
  #site-navigation.main-navigation.toggled .inside-navigation{
    max-width:none;
    width:100%;
  }
  #site-navigation.main-navigation .main-nav{
    position:relative;
  }
  .hb-mega-level{
    list-style:none;
    margin:0;
    padding:0;
  }
  .hb-mega-level[data-hb-mega-root]:not(.is-active),
  .hb-mega-drill:not(.is-active){
    display:none;
  }
  .hb-mega-level[data-hb-mega-root].is-active,
  .hb-mega-drill.is-active{
    display:block;
  }
  /* Desktop mega panel stays in DOM for crawlable links; hide visually on small screens */
  .hb-mega-panel{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .hb-mega-parent,
  .hb-mega-shop-all,
  .main-nav > ul[data-hb-mega-root] > li{
    display:flex;
    align-items:center;
    gap:0.25rem;
    border-bottom:1px solid var(--hb-border);
  }
  .hb-mega-row-link{
    flex:1 1 auto;
    display:flex;
    align-items:center;
    gap:0.75rem;
    min-height:52px;
    padding:0.65rem 0.15rem;
    font-family:var(--hb-body);
    font-weight:700;
    font-size:1.05rem;
    color:var(--hb-indigo-deep);
    text-decoration:none;
  }
  .hb-mega-icon{
    flex:0 0 auto;
    display:block;
    color:var(--hb-indigo);
  }
  .hb-mega-label{
    flex:1 1 auto;
  }
  .hb-mega-drill-btn{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:var(--hb-indigo);
    cursor:pointer;
  }
  .hb-mega-drill-btn:focus-visible,
  .hb-mega-back:focus-visible,
  .hb-mega-row-link:focus-visible,
  .hb-mega-drill__link:focus-visible,
  .hb-mega-everything:focus-visible{
    outline:2px solid var(--hb-turmeric);
    outline-offset:2px;
  }
  .hb-mega-chevron{
    display:block;
    transition:transform .2s ease;
  }
  .hb-mega-drill-btn[aria-expanded="true"] .hb-mega-chevron{
    transform:rotate(90deg);
  }
  .hb-mega-drill__back,
  .hb-mega-drill__title,
  .hb-mega-drill__everything,
  .hb-mega-drill__item{
    list-style:none;
  }
  .hb-mega-back{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    margin:0 0 0.5rem;
    padding:0.35rem 0;
    border:0;
    background:transparent;
    color:var(--hb-clay);
    font-family:var(--hb-body);
    font-weight:700;
    font-size:0.95rem;
    cursor:pointer;
  }
  .hb-mega-drill__heading{
    margin:0 0 0.75rem;
    font-family:var(--hb-display);
    font-weight:600;
    font-size:1.35rem;
    color:var(--hb-indigo-deep);
    outline:none;
  }
  .hb-mega-everything{
    display:flex;
    align-items:center;
    min-height:52px;
    margin:0 0 0.65rem;
    padding:0.85rem 1rem;
    border-radius:var(--hb-radius);
    background:var(--hb-indigo-deep);
    color:var(--hb-surface);
    font-family:var(--hb-body);
    font-weight:700;
    text-decoration:none;
  }
  .hb-mega-everything:hover,
  .hb-mega-everything:focus-visible{
    color:var(--hb-surface);
  }
  .hb-mega-drill__link{
    display:flex;
    align-items:center;
    gap:0.75rem;
    min-height:52px;
    padding:0.65rem 0.15rem;
    border-bottom:1px solid var(--hb-border);
    font-family:var(--hb-body);
    font-weight:700;
    color:var(--hb-indigo-deep);
    text-decoration:none;
  }
  .hb-mega-drill__link:hover{
    color:var(--hb-clay);
  }
}

@media (prefers-reduced-motion:reduce){
  .hb-mega-chevron,
  .hb-mega-toggle__icon{
    transition:none;
  }
}

/* -------------------------------------------------------------------------
 * Promo bar (inc/promo-bar.php — generate_before_header)
 * ---------------------------------------------------------------------- */
.hb-promo-bar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.75rem;
  min-height:44px;
  padding:0.55rem 2.75rem 0.55rem 1rem;
  background:var(--hb-clay-deep);
  color:#fff;
  position:relative;
  text-align:center;
}
.hb-promo-bar[hidden]{
  display:none !important;
}
.hb-promo-bar__text{
  margin:0;
  font-family:var(--hb-body);
  font-size:0.9rem;
  font-weight:700;
  line-height:1.35;
  color:#fff;
}
.hb-promo-bar__close{
  position:absolute;
  right:0.35rem;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
}
.hb-promo-bar__close:hover,
.hb-promo-bar__close:focus-visible{
  color:var(--hb-turmeric-wash);
}
.hb-promo-bar__close:focus-visible{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
}

/* -------------------------------------------------------------------------
 * Homepage (templates/page-home.php)
 * ---------------------------------------------------------------------- */
.hb-home{
  padding-block:0 4rem;
}
.hb-home-hero{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:1.75rem;
  padding-block:2.5rem 3rem;
  overflow:hidden;
}
.hb-home-hero__decor{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.hb-home-hero__blob{
  position:absolute;
  display:block;
  opacity:0.95;
}
.hb-home-hero__blob--clay{
  color:var(--hb-clay-wash);
  width:min(240px, 55vw);
  height:auto;
  top:-1.5rem;
  left:-2rem;
}
.hb-home-hero__blob--sage{
  color:var(--hb-sage-wash);
  width:min(280px, 65vw);
  height:auto;
  right:-2.5rem;
  bottom:-1rem;
}
.hb-home-hero__copy{
  position:relative;
  z-index:1;
  max-width:36rem;
  margin-inline:auto;
}
.hb-home-hero__eyebrow{
  margin:0 0 0.55rem;
  font-family:var(--hb-body);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--hb-sage-deep);
}
.hb-home-hero__title{
  margin:0 0 0.85rem;
  font-family:var(--hb-display);
  font-weight:900;
  font-size:clamp(2rem, 6vw, 3.25rem);
  line-height:1.12;
  letter-spacing:-0.01em;
  color:var(--hb-indigo-deep);
}
.hb-home-hero__intro{
  margin:0 auto 1.25rem;
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  line-height:1.65;
  max-width:36rem;
}
.hb-home-hero__actions{
  margin:0;
}
.hb-home-hero__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0.85rem 1.4rem;
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  font-family:var(--hb-body);
  font-weight:700;
  text-decoration:none;
  border-radius:var(--hb-radius);
}
.hb-home-hero__cta:hover,
.hb-home-hero__cta:focus-visible{
  background:var(--hb-turmeric-hover);
}
.hb-home-hero__media{
  position:relative;
  z-index:1;
  margin:0;
  width:min(280px, 72vw);
}
.hb-home-hero__image{
  display:block;
  width:100%;
  aspect-ratio:1;
  height:auto;
  object-fit:cover;
  border-radius:50%;
  border:4px solid #fff;
  box-shadow:0 12px 32px rgba(22,30,44,.12);
  background:var(--hb-indigo-wash);
}
.hb-home-trust{
  margin:0 0 2.5rem;
  padding:1.15rem 0;
  border-block:1px solid var(--hb-border);
}
.hb-home-trust__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:0.75rem;
}
.hb-home-trust__item{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-indigo);
  min-height:44px;
  display:flex;
  align-items:center;
  gap:0.55rem;
}
.hb-home-trust__icon{
  flex:0 0 auto;
  display:block;
  color:var(--hb-sage-deep);
}
.hb-home-category{
  margin:0 0 2.75rem;
}
.hb-home-category__header{
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  margin-bottom:1rem;
}
.hb-home-category__title{
  margin:0;
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.45rem;
  color:var(--hb-indigo-deep);
}
.hb-home-category__shop-all{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-clay);
  text-decoration:none;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.hb-home-category__grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:1.25rem;
}
.hb-home-product{
  display:flex;
  flex-direction:column;
  height:100%;
  list-style:none;
}
.hb-home-product__inner{
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  height:100%;
  background:var(--hb-surface);
  border:1px solid rgba(31,27,24,.28);
  border-radius:var(--hb-radius-lg);
  box-shadow:0 1px 3px rgba(31,27,24,.08);
  overflow:hidden;
  padding:0 0.85rem 0.85rem;
}
.hb-home-product__link{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  flex:1 1 auto;
  min-height:0;
  text-decoration:none;
  color:var(--hb-ink);
  font-family:var(--hb-body);
}
.hb-home-product__media{
  position:relative;
  display:block;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:var(--hb-indigo-wash);
  margin:0 -0.85rem;
  border-radius:var(--hb-radius-lg) var(--hb-radius-lg) 0 0;
}
.hb-home-product__media-link{
  display:block;
  height:100%;
}
.hb-home-product__badge{
  position:absolute;
  top:0.5rem;
  left:0.5rem;
  z-index:2;
  display:inline-block;
  margin:0;
  padding:0.28rem 0.55rem;
  border-radius:var(--hb-radius);
  font-family:var(--hb-body);
  font-size:0.7rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:0.02em;
  text-transform:uppercase;
  pointer-events:none;
}
.hb-home-product__badge--sale{
  background:var(--hb-clay);
  color:#fff;
}
.hb-home-product__badge--new{
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
}
.hb-wishlist-toggle{
  position:absolute;
  top:0.4rem;
  right:0.4rem;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--hb-radius);
  background:rgba(255,255,255,.88);
  color:var(--hb-clay);
  cursor:pointer;
}
.hb-wishlist-toggle:hover,
.hb-wishlist-toggle:focus-visible{
  background:var(--hb-surface);
  color:var(--hb-clay);
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
}
.hb-wishlist-toggle__icon{
  display:block;
}
.hb-wishlist-toggle.is-active{
  color:var(--hb-clay);
}
.hb-wishlist-toggle.is-active .hb-wishlist-toggle__path{
  fill:var(--hb-clay);
  stroke:var(--hb-clay);
}
/* Beat WC `.woocommerce ul.products li.product a img` (0,3,4) without !important. */
.hb-home-product.product a.hb-home-product__media-link img.hb-home-product__image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hb-home-product__title{
  font-weight:700;
  line-height:1.35;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}
.hb-home-product__material{
  display:block;
  font-family:var(--hb-body);
  font-size:0.68rem;
  font-weight:700;
  line-height:1.3;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--hb-sage);
}
.hb-home-product__price{
  color:var(--hb-ink-60);
}
.hb-home-product__price del{
  opacity:0.7;
  margin-right:0.4em;
  text-decoration:line-through;
}
.hb-home-product__price ins{
  text-decoration:none;
  font-weight:700;
  color:var(--hb-ink);
}
.hb-home-product__delivery{
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  margin-top:auto;
  font-family:var(--hb-body);
  font-size:0.72rem;
  font-weight:700;
  line-height:1.35;
  color:var(--hb-sage-deep);
}
.hb-home-product__delivery-icon{
  flex:0 0 auto;
  display:block;
  color:var(--hb-sage-deep);
}
.hb-home-product__atc,
.hb-home-product a.hb-home-product__atc{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  box-sizing:border-box;
  min-height:44px;
  margin:0;
  padding:0.65rem 1rem;
  border:0;
  border-radius:var(--hb-radius);
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  font-family:var(--hb-body);
  font-weight:700;
  font-size:0.9rem;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
}
.hb-home-product__atc:hover,
.hb-home-product__atc:focus-visible,
.hb-home-product a.hb-home-product__atc:hover,
.hb-home-product a.hb-home-product__atc:focus-visible{
  background:var(--hb-turmeric-hover);
  color:var(--hb-indigo-deep);
}
.hb-home-product__atc.added{
  background:var(--hb-sage);
  color:#fff;
}
/* Hide WC's auto-inserted View basket link; card uses temporary "Added" label instead */
.hb-home-product .added_to_cart.wc-forward{
  display:none !important;
}

/* Wishlist page */
.hb-wishlist-page{
  padding-block:2rem 4rem;
}
.hb-wishlist-page__header .entry-title{
  font-family:var(--hb-display);
  font-weight:600;
  color:var(--hb-indigo-deep);
  margin:0 0 1rem;
}
.hb-wishlist-page__intro{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  margin-bottom:1.5rem;
  max-width:40rem;
}
.hb-wishlist-loading,
.hb-wishlist-error{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
}
.hb-wishlist-empty__title{
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.35rem;
  color:var(--hb-indigo-deep);
  margin:0 0 0.5rem;
}
.hb-wishlist-empty__hint{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  margin:0 0 1.25rem;
}
.hb-wishlist-empty__link{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0.75rem 1.25rem;
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  font-family:var(--hb-body);
  font-weight:700;
  text-decoration:none;
  border-radius:var(--hb-radius);
}
.hb-wishlist-empty__link:hover,
.hb-wishlist-empty__link:focus-visible{
  background:var(--hb-turmeric-hover);
}

/* Nav wishlist count badge (distinct from Sale/New product labels) */
.hb-wishlist-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.15rem;
  height:1.15rem;
  margin-left:0.35rem;
  padding:0 0.3rem;
  border-radius:999px;
  background:var(--hb-clay);
  color:#fff;
  font-family:var(--hb-body);
  font-size:0.65rem;
  font-weight:700;
  line-height:1;
  vertical-align:super;
  position:relative;
  top:-0.15em;
}
.hb-wishlist-count[hidden]{
  display:none !important;
}
.main-navigation .hb-wishlist-count,
.main-nav .hb-wishlist-count{
  pointer-events:none;
}
.hb-home-story{
  margin:0 0 2.75rem;
  padding:2rem 0;
  border-top:1px solid var(--hb-border);
  max-width:40rem;
}
.hb-home-story__title{
  margin:0 0 0.85rem;
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.55rem;
  color:var(--hb-indigo-deep);
}
.hb-home-story__text{
  margin:0 0 1rem;
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  line-height:1.7;
}
.hb-home-story__link a{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-clay);
}
.hb-home-newsletter{
  padding:1.75rem 0 0;
  border-top:1px solid var(--hb-border);
}
.hb-home-newsletter__title{
  margin:0 0 1rem;
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.45rem;
  color:var(--hb-indigo-deep);
}
.hb-home-newsletter__success,
.hb-home-newsletter__notice{
  padding:1rem 1.15rem;
  border-radius:var(--hb-radius-lg);
  font-family:var(--hb-body);
  margin-bottom:1rem;
}
.hb-home-newsletter__success{
  background:var(--hb-sage-wash);
  border:1px solid var(--hb-sage);
}
.hb-home-newsletter__notice{
  background:var(--hb-clay-wash);
  border:1px solid var(--hb-clay);
  color:var(--hb-clay-deep);
}
.hb-home-newsletter__success p,
.hb-home-newsletter__notice p{
  margin:0;
}
.hb-home-newsletter__fields{
  display:grid;
  gap:1rem;
}
.hb-home-newsletter__label{
  display:block;
  margin-bottom:0.35rem;
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-indigo);
}
.hb-home-newsletter__input{
  width:100%;
  box-sizing:border-box;
  min-height:44px;
  padding:0.75rem 0.85rem;
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius);
  background:var(--hb-surface);
  color:var(--hb-ink);
  font-family:var(--hb-body);
}
.hb-home-newsletter__input:focus{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
}
.hb-home-newsletter__field.is-invalid .hb-home-newsletter__input{
  border-color:var(--hb-clay);
}
.hb-home-newsletter__submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  width:100%;
  padding:0.85rem 1.4rem;
  border:0;
  border-radius:var(--hb-radius);
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  font-family:var(--hb-body);
  font-weight:700;
  cursor:pointer;
}
.hb-home-newsletter__submit:hover,
.hb-home-newsletter__submit:focus-visible{
  background:var(--hb-turmeric-hover);
}

@media (min-width:480px){
  .hb-home-trust__list{
    grid-template-columns:1fr 1fr;
  }
}

@media (min-width:769px){
  .hb-home-hero{
    gap:2rem;
    padding-block:3rem 3.5rem;
  }
  .hb-home-hero__media{
    width:min(320px, 40vw);
  }
  .hb-home-hero__blob--clay{
    width:280px;
    top:-2rem;
    left:-1rem;
  }
  .hb-home-hero__blob--sage{
    width:320px;
    right:-1.5rem;
  }
  .hb-home-category__header{
    flex-direction:row;
    align-items:baseline;
    justify-content:space-between;
  }
  .hb-home-category__grid{
    grid-template-columns:1fr 1fr;
  }
  .hb-home-newsletter__fields{
    grid-template-columns:1fr 1.2fr auto;
    align-items:end;
  }
  .hb-home-newsletter__submit{
    width:auto;
  }
}

@media (min-width:1025px){
  .hb-home-category__grid{
    grid-template-columns:repeat(4, 1fr);
  }
  .hb-home{
    max-width:72rem;
  }
}

@media (min-width:1440px){
  .hb-home{
    margin-inline:auto;
  }
}

/* -------------------------------------------------------------------------
 * WooCommerce Blocks: Cart + Checkout (visual only)
 * Classic: Order received / thank-you
 * Scoped to block roots / order-received — does not alter AW shipping,
 * payment gateway logic, or hide payment empty-state notices.
 * ---------------------------------------------------------------------- */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-order-received .entry-title{
  font-family:var(--hb-display);
  font-weight:600;
  color:var(--hb-indigo-deep);
}

/* Shared Blocks chrome */
.wc-block-cart,
.wc-block-checkout{
  font-family:var(--hb-body);
  color:var(--hb-ink);
}
.wc-block-cart a,
.wc-block-checkout a{
  color:var(--hb-clay);
}
.wc-block-cart a:hover,
.wc-block-checkout a:hover{
  color:var(--hb-clay-deep);
}
.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-order-summary__title-text,
.wc-block-cart__empty-cart__title{
  font-family:var(--hb-display);
  font-weight:600;
  color:var(--hb-indigo-deep);
}
.wc-block-components-product-name{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-ink);
  text-decoration:none;
}
.wc-block-components-product-name:hover{
  color:var(--hb-clay);
}
.wc-block-components-product-price,
.wc-block-components-formatted-money-amount,
.wc-block-formatted-money-amount{
  font-family:var(--hb-body);
  color:var(--hb-ink);
}
.wc-block-components-product-metadata,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__description,
.wc-block-checkout__guest-checkout-notice{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
}

/* Cart line items */
.wc-block-cart-items,
.wc-block-cart-items__row{
  border-color:var(--hb-border);
}
.wc-block-cart-items__header{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-indigo);
  border-color:var(--hb-border);
}
.wc-block-cart-item__wrap{
  gap:0.65rem;
}
.wc-block-cart-item__image img{
  border-radius:var(--hb-radius);
}
.wc-block-cart-item__remove-link{
  font-family:var(--hb-body);
  font-size:0.85rem;
  color:var(--hb-clay);
  text-decoration:underline;
}
.wc-block-cart-item__remove-link:hover{
  color:var(--hb-clay-deep);
}

/* Quantity stepper — chrome only */
.wc-block-components-quantity-selector{
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius);
  background:var(--hb-surface);
}
.wc-block-components-quantity-selector__button{
  color:var(--hb-indigo);
  background:transparent;
}
.wc-block-components-quantity-selector__button:hover{
  background:var(--hb-indigo-wash);
  color:var(--hb-indigo-deep);
}
.wc-block-components-quantity-selector__input{
  font-family:var(--hb-body);
  color:var(--hb-ink);
  background:var(--hb-surface);
}

/* Coupon panel + totals */
.wc-block-components-panel,
.wc-block-components-totals-coupon{
  border-color:var(--hb-border);
}
.wc-block-components-panel__button{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-indigo);
}
.wc-block-components-totals-wrapper{
  border-color:var(--hb-border);
}
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar{
  background:var(--hb-surface);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-indigo-deep);
}
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-combobox input,
.wc-block-components-totals-coupon__form input{
  font-family:var(--hb-body);
  color:var(--hb-ink);
  background:var(--hb-surface);
  border-color:var(--hb-border);
  border-radius:var(--hb-radius);
  min-height:44px;
}
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus,
.wc-block-components-combobox input:focus,
.wc-block-components-totals-coupon__form input:focus{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
  border-color:var(--hb-turmeric);
}
.wc-block-components-text-input label,
.wc-block-components-textarea label,
.wc-block-components-combobox label{
  font-family:var(--hb-body);
  color:var(--hb-indigo);
}

/* Shipping / payment option radios — surface only; labels from Store API untouched */
.wc-block-components-radio-control__option{
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius-lg);
  background:var(--hb-surface);
}
.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control__option--checked-option-highlighted{
  border-color:var(--hb-turmeric);
  background:var(--hb-turmeric-wash);
}
.wc-block-components-radio-control__label{
  font-family:var(--hb-body);
  font-weight:700;
  color:var(--hb-ink);
}
.wc-block-components-radio-control__secondary-label{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
}
.wc-block-components-checkbox label{
  font-family:var(--hb-body);
  color:var(--hb-ink);
}

/* Primary CTAs */
.wc-block-components-button.contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-totals-coupon__button{
  font-family:var(--hb-body);
  font-weight:700;
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
  border:0;
  border-radius:var(--hb-radius);
  min-height:44px;
}
.wc-block-components-button.contained:hover,
.wc-block-components-button.contained:focus-visible,
.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button:focus-visible,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus-visible,
.wc-block-components-totals-coupon__button:hover,
.wc-block-components-totals-coupon__button:focus-visible{
  background:var(--hb-turmeric-hover);
  color:var(--hb-indigo-deep);
}
.wc-block-components-button:focus-visible{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
}

/* Notices — never hide; keep readable (includes no-payment-methods state) */
.wc-block-components-notice-banner,
.wc-block-checkout__no-payment-methods-notice,
.wc-block-components-validation-error{
  font-family:var(--hb-body);
}
.wc-block-checkout__no-payment-methods-notice,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning{
  color:var(--hb-indigo);
}

/* Checkout step spacing */
.wc-block-components-checkout-step{
  margin-bottom:1.5rem;
  padding-bottom:1.25rem;
  border-bottom:1px solid var(--hb-border);
}
.wc-block-components-checkout-step:last-of-type{
  border-bottom:0;
}
.wc-block-checkout__terms{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
}

/* Empty cart */
.wc-block-cart__empty-cart__title{
  margin-bottom:0.75rem;
}

/* -------------------------------------------------------------------------
 * Thank-you / order received (classic template)
 * ---------------------------------------------------------------------- */
body.woocommerce-order-received .woocommerce-order{
  font-family:var(--hb-body);
  color:var(--hb-ink);
  max-width:40rem;
}
body.woocommerce-order-received .woocommerce-thankyou-order-received,
body.woocommerce-order-received .woocommerce-notice--success{
  font-family:var(--hb-display);
  font-weight:600;
  font-size:1.35rem;
  line-height:1.4;
  color:var(--hb-indigo-deep);
  background:var(--hb-sage-wash);
  border:1px solid var(--hb-sage);
  border-radius:var(--hb-radius-lg);
  padding:1rem 1.15rem;
  margin:0 0 1.5rem;
}
body.woocommerce-order-received .woocommerce-order-overview,
body.woocommerce-order-received ul.order_details{
  list-style:none;
  margin:0 0 1.5rem;
  padding:1rem 1.15rem;
  display:grid;
  gap:0.75rem;
  background:var(--hb-surface);
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius-lg);
}
body.woocommerce-order-received .woocommerce-order-overview li,
body.woocommerce-order-received ul.order_details li{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  border-color:var(--hb-border);
}
body.woocommerce-order-received .woocommerce-order-overview li strong,
body.woocommerce-order-received ul.order_details li strong{
  display:block;
  margin-top:0.2rem;
  font-weight:700;
  color:var(--hb-indigo-deep);
}
body.woocommerce-order-received .woocommerce-order h2,
body.woocommerce-order-received .woocommerce-order h3{
  font-family:var(--hb-display);
  font-weight:600;
  color:var(--hb-indigo-deep);
}
body.woocommerce-order-received .woocommerce-table,
body.woocommerce-order-received table.shop_table{
  font-family:var(--hb-body);
  border-color:var(--hb-border);
  border-radius:var(--hb-radius-lg);
  overflow:hidden;
}
body.woocommerce-order-received .woocommerce-table th,
body.woocommerce-order-received table.shop_table th{
  font-weight:700;
  color:var(--hb-indigo);
  background:var(--hb-indigo-wash);
  border-color:var(--hb-border);
}
body.woocommerce-order-received .woocommerce-table td,
body.woocommerce-order-received table.shop_table td{
  color:var(--hb-ink);
  border-color:var(--hb-border);
}
body.woocommerce-order-received .woocommerce-customer-details address{
  font-family:var(--hb-body);
  font-style:normal;
  line-height:1.65;
  color:var(--hb-ink);
  background:var(--hb-surface);
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius-lg);
  padding:1rem 1.15rem;
}
body.woocommerce-order-received .woocommerce-order a{
  color:var(--hb-clay);
}

@media (prefers-reduced-motion:reduce){
  .hb-mega-toggle__icon{
    transition:none;
  }
}

/* -------------------------------------------------------------------------
 * Single product page (default WooCommerce template — hook-based additions
 * from inc/single-product.php, not a template override)
 * ---------------------------------------------------------------------- */
.woocommerce div.product{
  font-family:var(--hb-body);
  color:var(--hb-ink);
}
/* Badge + heart anchor here, not on div.product — .product spans both
   gallery and summary columns, so "right" would resolve against the far
   side of the whole row instead of the gallery's own right edge. */
.woocommerce-product-gallery{
  position:relative;
}
.woocommerce div.product .product_title{
  font-family:var(--hb-display);
  font-weight:600;
  color:var(--hb-indigo-deep);
  line-height:1.15;
  letter-spacing:-0.01em;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-family:var(--hb-body);
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  color:var(--hb-ink);
}
.woocommerce div.product p.price del{
  color:var(--hb-ink-40);
  opacity:0.75;
  text-decoration:line-through;
}
.woocommerce div.product p.price ins{
  text-decoration:none;
  font-weight:700;
  color:var(--hb-ink);
}
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description p{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  line-height:1.65;
}
.woocommerce div.product .product_meta{
  font-family:var(--hb-body);
  color:var(--hb-ink-60);
  font-size:0.9rem;
}
.woocommerce div.product .product_meta a{
  color:var(--hb-clay);
}

/* Quantity input + Add to basket button */
.woocommerce div.product form.cart{
  margin-top:0.5rem;
  display:flex;
  align-items:center;
  gap:0.75rem;
  flex-wrap:wrap;
}
.woocommerce div.product .quantity .qty{
  border:1px solid var(--hb-border);
  border-radius:var(--hb-radius);
  min-height:44px;
  font-family:var(--hb-body);
  color:var(--hb-ink);
  background:var(--hb-surface);
}
.woocommerce div.product .quantity .qty:focus{
  outline:2px solid var(--hb-turmeric);
  outline-offset:2px;
}
/* WooCommerce/GP core CSS uses layered class selectors here — !important keeps
   the turmeric CTA consistent with the card button without a specificity fight. */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product a.single_add_to_cart_button,
.woocommerce div.product button.single_add_to_cart_button{
  background:var(--hb-turmeric) !important;
  color:var(--hb-indigo-deep) !important;
  border:0 !important;
  border-radius:var(--hb-radius);
  font-family:var(--hb-body);
  font-weight:700;
  min-height:44px;
  padding:0.85rem 1.75rem;
}
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce div.product .single_add_to_cart_button:focus-visible,
.woocommerce div.product a.single_add_to_cart_button:hover,
.woocommerce div.product a.single_add_to_cart_button:focus-visible{
  background:var(--hb-turmeric-hover) !important;
  color:var(--hb-indigo-deep) !important;
}

/* Sale/New badge — top-left of the gallery (positioned vs .woocommerce-product-gallery) */
.hb-single-badge{
  position:absolute;
  top:0.5rem;
  left:0.5rem;
  z-index:5;
  display:inline-block;
  margin:0;
  padding:0.32rem 0.65rem;
  border-radius:var(--hb-radius);
  font-family:var(--hb-body);
  font-size:0.75rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:0.02em;
  text-transform:uppercase;
  pointer-events:none;
}
.hb-single-badge--sale{
  background:var(--hb-clay);
  color:#fff;
}
.hb-single-badge--new{
  background:var(--hb-turmeric);
  color:var(--hb-indigo-deep);
}

/* Category eyebrow, above the title */
.hb-single-eyebrow{
  font-family:var(--hb-body);
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--hb-sage-deep);
  margin:0 0 0.25rem;
}

/* Material/style microcopy, under the price */
.hb-single-material{
  font-family:var(--hb-body);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--hb-sage);
  margin:0 0 0.85rem;
}

/* Trust box: delivery, handmade authenticity, secure checkout */
.hb-single-trust{
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  padding:0.65rem 0.85rem;
  background:var(--hb-sage-wash);
  border-radius:var(--hb-radius-lg);
  margin:0 0 0.85rem;
}
.hb-single-trust__item{
  display:flex;
  align-items:center;
  gap:0.4rem;
  margin:0;
  font-family:var(--hb-body);
  font-size:0.8rem;
  font-weight:700;
  color:var(--hb-sage-deep);
}
.hb-single-trust__icon{
  flex:0 0 auto;
  display:block;
}

/* Heart at top-right of the main image, matching the card's design.
   WooCommerce's own zoom trigger stacked directly below it — both anchored
   via "top" (not "bottom", which resolved against the full gallery block
   including the thumbnail strip and drifted onto the last thumbnail). */
.woocommerce-product-gallery .hb-wishlist-toggle{
  top:0.5rem;
  bottom:auto;
  right:0.5rem;
  z-index:999 !important;
}
.woocommerce-product-gallery__trigger{
  top:3.5rem !important;
  bottom:auto !important;
  right:0.5rem !important;
}
