/* Colors from the Heart & Soap wordmark, with deeper tones for text. */
.hs-storefront {
  --hs-blue: #2196f3;
  --hs-turquoise: #00bcd4;
  --hs-deep: #075985;
  --hs-teal: #006073;
  --hs-sky: #e9f6ff;
  --hs-aqua: #e7faf9;
  --hs-ink: #12394b;
  --hs-border: #c8e6ef;
  --ink: var(--hs-ink);
  --ink-soft: #375864;
  --ink-3: #4c6570;
  --paper: #fff;
  --cream: #f3faff;
  --tile: #f0f9fc;
  --sage: var(--hs-blue);
  --sage-dark: var(--hs-deep);
  --sage-tint: var(--hs-sky);
  --line: var(--hs-border);
  --line-soft: #deeff4;
  --font-display: "Nunito Sans", system-ui, sans-serif;
}
.hs-storefront a:hover { color: var(--hs-teal); }
.hs-storefront :focus-visible, .hs-storefront #main-content:focus {
  outline: 3px solid var(--hs-teal);
  outline-offset: 3px;
}
.hs-storefront #main-content { scroll-margin-top: 5rem; }
.hs-storefront .hs-skip {
  position: fixed;
  inset: 6px auto auto 6px;
  z-index: 100;
  transform: translateY(-150%);
  padding: 8px 14px;
  background: white;
  color: var(--hs-deep);
  font-weight: 800;
}
.hs-storefront .hs-skip:focus { transform: none; }
.hs-storefront .announce {
  background: var(--hs-sky);
  color: var(--hs-deep);
  padding: 5px 12px;
  font-size: .8rem;
  letter-spacing: 0;
  text-transform: none;
}
.hs-storefront .announce a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hs-storefront .site-header { background: white; }
.hs-storefront .site-header .bar { min-height: 68px; height: auto; gap: 14px; }
.hs-storefront .site-header .brand { display: flex; align-items: center; min-height: 44px; flex: 0 1 auto; }
.hs-storefront .brand-logo { width: clamp(135px, 17vw, 216px); height: auto; }
.hs-storefront .nav a { display: inline-flex; align-items: center; min-height: 44px; }
.hs-storefront .header-actions { gap: 3px; }
.hs-storefront .hs-header-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  padding: 0;
  color: var(--hs-deep);
  border-radius: 10px;
}
.hs-storefront .hs-header-icon:hover { background: var(--hs-sky); color: var(--hs-teal); }
.hs-storefront .hs-header-icon .cart-count {
  position: absolute;
  top: 1px;
  right: 0;
  padding: 0 4px;
  line-height: 1.5;
  min-width: 15px;
  min-height: 15px;
  font-size: .66rem;
  background: var(--hs-deep);
  color: white;
}
.hs-storefront .mobile-nav[hidden] { display: none; }
.hs-storefront .mobile-nav { max-height: 66vh; overflow-y: auto; border-top: 1px solid var(--line); }
.hs-storefront .hs-menu-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 20px;
  padding-block: 8px 12px;
}
.hs-storefront .hs-menu-links a { display: flex; align-items: center; min-height: 44px; border-bottom: 1px solid var(--line-soft); }
.hs-storefront .btn-primary { background: var(--hs-deep); border-color: var(--hs-deep); color: white; }
.hs-storefront .btn-primary:hover { background: var(--hs-teal); border-color: var(--hs-teal); color: white; }
.hs-storefront .site-footer { background: var(--hs-sky); color: var(--hs-ink); border-top: 1px solid var(--hs-border); }
.hs-storefront .site-footer :is(a, h4, .muted) { color: var(--hs-deep); }
.hs-storefront .site-footer a:hover { text-decoration: underline; }
.hs-storefront .site-footer .brand img { filter: none; max-width: 100%; object-fit: contain; }
.hs-storefront #hs-cc .hs-cc-fab { background: var(--hs-deep); color: white; }
.hs-storefront #hs-cc .hs-cc-fab-label { display: none; }
.hs-storefront #hs-cc:not(.hs-cc-open) .hs-cc-fab {
  justify-content: center;
  width: 46px;
  height: 46px;
  min-width: 46px;
  min-height: 46px;
  padding: 0;
}
.hs-home { width: min(100% - 48px, 1192px); margin: 0 auto; padding-top: 28px; }
.hs-home h1, .hs-home h2 { font-weight: 800; letter-spacing: -.035em; }
.hs-hero {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  border-radius: 22px;
  background: var(--hs-sky);
}
.hs-hero-copy { align-self: center; padding: clamp(28px, 5.5vw, 78px); }
.hs-label {
  margin: 0 0 10px;
  color: var(--hs-teal);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hs-hero h1 { font-size: clamp(2.3rem, 5vw, 4.6rem); line-height: 1.02; margin: 0 0 16px; max-width: 13ch; }
.hs-hero-copy > p:not(.hs-label) { max-width: 34ch; color: var(--ink-soft); font-size: clamp(1rem, 1.7vw, 1.2rem); line-height: 1.45; margin: 0 0 22px; }
.hs-home .hs-main-cta {
  min-height: 48px;
  padding: 10px 18px;
  font-size: .96rem;
  text-transform: none;
  letter-spacing: 0;
  gap: 10px;
}
.hs-hero-photo { position: relative; margin: 0; min-width: 0; background: #e9d5b8; border-radius: 0 22px 22px 0; }
.hs-hero-photo img { width: 100%; height: 100%; aspect-ratio: 1.16; object-fit: cover; border-radius: inherit; }
.hs-hero-photo figcaption { position: absolute; inset: auto 14px 14px auto; }
.hs-hero-photo a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px;
  min-height: 36px;
  border-radius: 6px;
  background: white;
  color: var(--hs-deep);
  font-size: .79rem;
  font-weight: 800;
}
.hs-home-paths {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 12px 0 0;
  gap: 12px;
}
.hs-home-paths a { display: grid; align-content: center; min-height: 72px; padding: 8px 20px; border: 1px solid var(--hs-border); border-radius: 12px; color: var(--hs-deep); line-height: 1.3; }
.hs-home-paths a:first-child { border-top: 4px solid var(--hs-turquoise); }
.hs-home-paths a:last-child { border-top: 4px solid var(--hs-blue); }
.hs-home-paths strong { font-size: clamp(.9rem, 2vw, 1.12rem); }
.hs-home-paths span { margin-top: 3px; color: var(--hs-teal); font-size: .85rem; }
.hs-home-paths a:hover :is(strong, span), .hs-hero-photo a:hover { text-decoration: underline; text-underline-offset: 3px; }
.hs-home-section { padding-top: clamp(38px, 6vw, 72px); }
.hs-section-heading { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 2px 14px; margin: 0 0 16px; }
.hs-section-heading h2 { margin: 0; }
.hs-home :is(.hs-section-heading, .hs-maker) a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.hs-home .grid-products { gap: clamp(10px, 2vw, 20px); }
.hs-maker, .hs-newsletter { margin-top: clamp(38px, 6vw, 72px); padding: clamp(22px, 5vw, 58px); border-radius: 16px; background: var(--hs-aqua); }
.hs-maker h2, .hs-newsletter h2 { margin: 0 0 12px; }
.hs-maker p:not(.hs-label) { max-width: 58ch; margin-bottom: 4px; }
.hs-club, .hs-newsletter { background: var(--hs-sky); }
.hs-events-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
.hs-event { display: flex; gap: 16px; padding: 14px; border: 1px solid var(--hs-border); border-radius: 12px; }
.hs-event time { flex: none; align-self: start; color: var(--hs-teal); font-weight: 800; }
.hs-event h3, .hs-event p { margin: 0; }
.hs-newsletter { display: grid; gap: 16px 40px; grid-template-columns: 1fr 1fr; }
.hs-home .newsletter-form { display: block; margin: 0; }
.hs-home .newsletter-form label { display: block; font-weight: 800; }
.hs-news-fields { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.hs-home .newsletter-form input { min-width: 12ch; min-height: 44px; flex: 1 0 12ch; color: var(--hs-ink); background: white; border: 1px solid #6899ac; border-radius: 8px; }
.hs-home .newsletter-form button { min-height: 44px; text-transform: none; letter-spacing: 0; }
.hs-home [data-newsletter-msg] { margin: 4px 0 0; min-height: 1.5em; }
@media (min-width: 951px) {
  .hs-storefront .mobile-nav, .hs-storefront .menu-toggle { display: none; }
}
@media (max-width: 950px) {
  .hs-storefront .site-header .nav, .hs-storefront .hs-account, .hs-storefront .hs-wishlist { display: none; }
}
@media (max-width: 690px) {
  .hs-storefront .site-header .bar { min-height: 58px; gap: 8px; padding-inline: 16px; }
  .hs-home { width: calc(100% - 32px); padding-top: 12px; }
  .hs-hero { grid-template-columns: 1fr; border-radius: 16px; }
  .hs-hero-copy { padding: 22px 18px 19px; }
  .hs-hero h1 { font-size: clamp(2rem, 7.8vw, 2.85rem); margin-bottom: 10px; }
  .hs-hero-copy > p:not(.hs-label) { margin-bottom: 14px; }
  .hs-hero-photo { border-radius: 0 0 16px 16px; }
  .hs-hero-photo img { aspect-ratio: 1.48; }
  .hs-hero-photo figcaption { inset: auto 9px 9px auto; }
  .hs-home-paths { gap: 8px; }
  .hs-home-paths a { padding-inline: 10px; }
  .hs-home-paths span { font-size: .78rem; }
  .hs-newsletter { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.hs-storefront) { scroll-behavior: auto; }
  .hs-storefront :is(.btn, .product-card) { transition: none; }
}

.hs-storefront .product-card-shell { position: relative; display: grid; min-width: 0; }
.hs-storefront .product-card-shell .wish-btn { width: 44px; height: 44px; color: #4c6570; }
.hs-storefront .product-card-shell .wish-btn:is(.active, :hover) { color: var(--danger); }
.hs-storefront .product-card-shell .wish-btn.active { box-shadow: inset 0 0 0 2px currentColor; }
