/*
Theme Name: Share A Care
Theme URI: https://www.shareacarepublications.com/
Description: Share A Care Publications child theme for Storefront. Cream ground, sage green, serif titles over Montserrat, rounded cards and pill buttons — the same visual language as the Herbz app.
Author: Share A Care Publications
Template: storefront
Version: 1.0.47
Text Domain: sharecare
*/

/* ------------------------------------------------------------------
   Design tokens (from the Herbz app theme.ts)
   ------------------------------------------------------------------ */
:root {
  --sac-bg: #FAF8F3;
  --sac-card: #FFFFFF;
  --sac-inset: #F3F1EA;
  --sac-text: #1F2A1C;
  --sac-muted: #5E6B5A;
  --sac-sep: rgba(60, 60, 67, 0.18);
  --sac-green: #69905D;
  --sac-green-dark: #4F7446;
  --sac-green-deep: #345030;
  --sac-soft: #E6EEDF;
  --sac-soft-hover: #D8E4CF;
  --sac-fill: rgba(120, 120, 128, 0.12);
  --sac-danger: #C0392B;
  --sac-radius-sm: 10px;
  --sac-radius-md: 14px;
  --sac-radius-lg: 20px;
  --sac-radius-xl: 26px;
  --sac-shadow: 0 4px 14px rgba(31, 42, 28, 0.06);
  --sac-shadow-lg: 0 14px 36px rgba(31, 42, 28, 0.08);
  --sac-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sac-sans: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ------------------------------------------------------------------
   Base
   ------------------------------------------------------------------ */
html { background: var(--sac-bg); }
body,
button, input, select, textarea {
  font-family: var(--sac-sans);
}
body {
  background: var(--sac-bg);
  color: var(--sac-text);
  font-size: 17px;
  line-height: 1.6;
}
a { color: var(--sac-green-dark); text-decoration: none; }
a:hover, a:focus { color: var(--sac-green-deep); }

h1, h2, h3, .site-title, .product_title, .woocommerce-loop-product__title {
  color: var(--sac-text);
}
h1, h2, .page-title, .product_title.entry-title, .woocommerce-products-header__title {
  font-family: var(--sac-serif);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
h1, .page-title, .product_title.entry-title { font-size: clamp(30px, 3.2vw, 40px); }
h2 { font-size: clamp(26px, 2.6vw, 32px); }
h3 { font-size: 20px; font-weight: 600; }
h4, h5, h6 { font-weight: 600; }

.sac-eyebrow,
.sac-caption {
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sac-muted);
  font-weight: 600;
}

/* Allow pinch-zoom; Storefront already sets a sane viewport, this is belt and braces for iOS form zoom. */
input, select, textarea { font-size: 16px; }

/* ------------------------------------------------------------------
   Buttons: pills in two weights
   ------------------------------------------------------------------ */
.button, input[type="button"], input[type="reset"], input[type="submit"],
button[type="submit"]:not(.menu-toggle):not(.wc-block-components-quantity-selector__button),
.wp-block-button__link,
.woocommerce #respond input#submit,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.single_add_to_cart_button,
.add_to_cart_button, .added_to_cart,
.wc-block-components-button {
  background: var(--sac-green-dark) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--sac-sans);
  font-weight: 600 !important;
  font-size: 15px;
  line-height: 1;
  padding: 0 22px !important;
  height: 44px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: none !important;
  transition: background .15s ease;
  cursor: pointer;
}
.button:hover, input[type="submit"]:hover, button[type="submit"]:not(.menu-toggle):hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.single_add_to_cart_button:hover, .add_to_cart_button:hover, .added_to_cart:hover {
  background: var(--sac-green-deep) !important;
  color: #FFFFFF !important;
}
.single_add_to_cart_button { height: 50px; padding: 0 32px !important; font-size: 17px; }

/* Soft (secondary) pill */
.button.alt-soft, .is-style-sac-soft .wp-block-button__link, .sac-btn-soft,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--sac-soft) !important;
  color: var(--sac-green-dark) !important;
}
.button.alt-soft:hover, .is-style-sac-soft .wp-block-button__link:hover, .sac-btn-soft:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--sac-soft-hover) !important;
  color: var(--sac-green-deep) !important;
}

/* ------------------------------------------------------------------
   Header: one row — logo, nav, search, cart
   ------------------------------------------------------------------ */
body .site-header,
.woocommerce-active .site-header,
.home.page:not(.page-template-template-homepage) .site-header,
.home.blog .site-header {
  background: rgba(255, 255, 255, 0.78) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--sac-sep);
  padding: 0;
  margin-bottom: 0;
}
/* functions.php keeps logo, menu, search and cart inside one .col-full, which is the flex row.
   (Fallback: if Storefront's nav wrapper is still present, flatten it.) */
body .site-header > .col-full {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  padding-top: 12px;
  padding-bottom: 12px;
}
body .site-header .storefront-primary-navigation,
body .site-header .storefront-primary-navigation > .col-full {
  display: contents;
}
.main-navigation ul.menu, .main-navigation ul.nav-menu { margin: 0; }
body .site-header .skip-link { position: absolute; }
.woocommerce-active .site-header .site-branding,
body .site-header .site-branding {
  float: none;
  width: auto;
  margin: 0;
  flex: 0 0 auto;
  order: 1;
  clear: none;
}
.site-header .site-branding img,
.site-header .custom-logo-link img {
  height: 44px;
  width: auto;
  max-width: none;
}
.site-header .site-branding .site-title { font-family: var(--sac-serif); font-size: 26px; margin: 0; }
.site-header .site-branding .site-description { display: none; }

.woocommerce-active .site-header .site-search,
body .site-header .site-search {
  float: none;
  width: auto;
  margin: 0 0 0 auto;
  order: 3;
  flex: 1 1 160px;
  max-width: 260px;
  min-width: 150px;
  display: block !important;
  clear: none;
}
.site-header .site-search .widget { margin: 0; }
.site-header .site-search .woocommerce-product-search { position: relative; }
.site-header .site-search .search-field {
  height: 44px;
  border-radius: 22px;
  border: 1px solid var(--sac-sep);
  background: var(--sac-card);
  padding: 0 16px 0 40px;
  font-size: 15px;
  box-shadow: 0 2px 8px rgba(31, 42, 28, 0.06);
  width: 100%;
}
.site-header .site-search .woocommerce-product-search::before {
  content: "";
  position: absolute;
  left: 14px; top: 50%;
  width: 18px; height: 18px;
  transform: translateY(-50%);
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6B5A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>") no-repeat center / contain;
  pointer-events: none;
}
.site-header .site-search .woocommerce-product-search button[type="submit"] { display: none; }

.woocommerce-active .site-header .main-navigation,
body .site-header .main-navigation {
  float: none;
  width: auto;
  margin: 0 0 0 auto; /* menu and cart sit at the right edge */
  order: 2;
  flex: 0 1 auto;
  clear: none;
}
.main-navigation ul.menu, .main-navigation ul.nav-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
  color: var(--sac-text);
  font-weight: 500;
  font-size: 15px;
  padding: 10px 12px;
  border-radius: 999px;
  white-space: nowrap;
}
/* WordPress admin bar (only seen when logged in): keep its hidden search button hidden */
#wpadminbar #adminbarsearch .adminbar-button { display: none !important; }
.main-navigation ul.menu > li > a:hover,
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current_page_item > a,
.main-navigation ul.menu > li.current-product_cat-ancestor > a {
  color: var(--sac-green-dark);
  background: var(--sac-soft);
}
.main-navigation ul.menu ul.sub-menu {
  background: var(--sac-card);
  border: 1px solid var(--sac-sep);
  border-radius: var(--sac-radius-md);
  box-shadow: var(--sac-shadow-lg);
  overflow: hidden;
}
.main-navigation ul.menu ul.sub-menu a { color: var(--sac-text); padding: 10px 16px; }
.main-navigation ul.menu ul.sub-menu a:hover { background: var(--sac-fill); }

/* Cart button: round white icon button, like the app's header buttons */
.woocommerce-active .site-header .site-header-cart,
body .site-header .site-header-cart {
  float: none;
  width: auto;
  margin: 0;
  order: 4;
  flex: 0 0 auto;
  list-style: none;
  clear: none;
}
.site-header-cart .cart-contents {
  width: 44px; height: 44px;
  border-radius: 22px;
  background: var(--sac-card);
  border: 1px solid var(--sac-sep);
  box-shadow: 0 2px 8px rgba(31, 42, 28, 0.06);
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0;
  position: relative;
  color: var(--sac-text);
}
.site-header-cart .cart-contents:hover { background: var(--sac-soft); }
.site-header-cart .cart-contents::after {
  content: "";
  width: 20px; height: 20px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F2A1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 4h2l2.4 11.2a1 1 0 0 0 1 .8h8.9a1 1 0 0 0 1-.8L20 8H6'/><circle cx='9.5' cy='20' r='1.3'/><circle cx='17' cy='20' r='1.3'/></svg>") no-repeat center / contain;
  margin: 0;
  font-family: inherit;
  display: block;
}
.site-header-cart .cart-contents .amount { display: none; }
.site-header-cart .cart-contents .count {
  position: absolute; top: -4px; right: -4px;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9px;
  background: var(--sac-green-dark); color: #fff;
  font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
  opacity: 1;
}
.site-header-cart .widget_shopping_cart {
  background: var(--sac-card);
  border: 1px solid var(--sac-sep);
  border-radius: var(--sac-radius-md);
  box-shadow: var(--sac-shadow-lg);
}

/* Mobile menu toggle: round icon button like the app's header buttons (Storefront draws the
   three lines with span::before; the "Menu" label stays for screen readers) */
.menu-toggle, button.menu-toggle {
  background: var(--sac-card) !important;
  color: var(--sac-text) !important;
  border: 1px solid var(--sac-sep) !important;
  border-radius: 22px !important;
  width: 44px;
  height: 44px;
  padding: 0 !important;
  margin: 0;
  font-size: 16px;
  box-shadow: 0 2px 8px rgba(31, 42, 28, 0.06);
  position: relative;
}
button.menu-toggle span {
  display: block; width: 100%; height: 100%;
  text-indent: -9999px; overflow: hidden; white-space: nowrap;
}
button.menu-toggle span::before {
  /* three thick, rounded bars */
  left: 50% !important;
  top: 50% !important;
  margin-left: -10px;
  margin-top: -1.5px !important;
  width: 20px !important;
  height: 3px !important;
  border-radius: 3px;
  background-color: var(--sac-text) !important;
  box-shadow: 0 -7px 0 var(--sac-text), 0 7px 0 var(--sac-text) !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
/* Storefront draws two extra lines on the button itself; only the three bars above are wanted */
button.menu-toggle::before, button.menu-toggle::after { display: none !important; content: none !important; }
/* While the menu is open the bars become an X */
button.menu-toggle span::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 3px; margin: -1.5px 0 0 -10px;
  border-radius: 3px; background-color: var(--sac-text); opacity: 0; transition: transform .2s ease, opacity .2s ease;
}
.main-navigation.toggled button.menu-toggle span::before { box-shadow: none !important; background-color: var(--sac-text) !important; opacity: 1; transform: rotate(45deg); }
.main-navigation.toggled button.menu-toggle span::after { opacity: 1; transform: rotate(-45deg); }
@media (min-width: 768px) {
  button.menu-toggle { display: none !important; }
  /* Only the primary menu on desktop; the handheld copy (or WP's all-pages fallback) stays hidden. */
  .site-header .main-navigation .handheld-navigation,
  .site-header .main-navigation > div.menu { display: none !important; }
}
/* The header stays on screen while scrolling, on every screen size, so the menu and cart are
   always in reach. Storefront sets .site { overflow-x: hidden }, which turns the page wrapper
   into a scroll container and defeats position: sticky; clip keeps the horizontal clipping
   without that. --sac-header-h (set by the footer script) lets other pinned bars sit below. */
body .site { overflow-x: clip; }
body.woocommerce-active .site-header, body:not(.woocommerce-active) .site-header { position: sticky; top: 0; z-index: 70; }
body.sac-scrolled .site-header { box-shadow: 0 4px 20px rgba(31, 42, 28, 0.07); }
@media (min-width: 601px) { body.admin-bar .site-header { top: 46px; } }
@media (min-width: 783px) { body.admin-bar .site-header { top: 32px; } }
html { scroll-padding-top: calc(var(--sac-header-h, 0px) + 16px); }
/* Storefront's sticky "add to cart" bar slides in under the pinned header instead of over it */
.storefront-sticky-add-to-cart { z-index: 69; top: var(--sac-header-h, 0px); }
.admin-bar .storefront-sticky-add-to-cart--slideInDown { top: var(--sac-header-h, 0px); }
@media (min-width: 601px) { .admin-bar .storefront-sticky-add-to-cart--slideInDown { top: calc(46px + var(--sac-header-h, 0px)); } }
@media (min-width: 783px) { .admin-bar .storefront-sticky-add-to-cart--slideInDown { top: calc(32px + var(--sac-header-h, 0px)); } }
@media (max-width: 767px) {
  /* One header row on phones: logo … cart, menu button. Search moves into the menu panel.
     (selectors carry body.woocommerce-active so they outrank the desktop rules above) */
  body.home .site-header, .home.page .site-header { margin-bottom: 0 !important; }
  body .site-header > .col-full { padding-top: 10px; padding-bottom: 10px; gap: 8px 10px; }
  .site-header .site-branding img, .site-header .custom-logo-link img { height: 34px; }
  body.woocommerce-active .site-header .site-branding, body:not(.woocommerce-active) .site-header .site-branding { order: 1; }
  body.woocommerce-active .site-header .site-header-cart, body:not(.woocommerce-active) .site-header .site-header-cart { order: 2; margin-left: auto; }
  body.woocommerce-active .site-header .main-navigation, body:not(.woocommerce-active) .site-header .main-navigation { order: 3; flex: 0 0 auto; display: block; margin: 0; }
  /* Opaque white on phones: iOS Safari takes the status-bar colour from the fixed/sticky element at the top edge */
  body .site-header, .woocommerce-active .site-header, .home.page:not(.page-template-template-homepage) .site-header, .home.blog .site-header { background: #FFFFFF !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .sac-top-tint { display: block; position: fixed; top: 0; left: 0; right: 0; height: 1px; background: #FFFFFF; z-index: 2147483647; pointer-events: none; }
  body.woocommerce-active .site-header .site-search, body:not(.woocommerce-active) .site-header .site-search { display: none !important; }
  /* The Side Cart plugin's floating basket (the plugin forces display:flex with an attribute selector) */
  .xoo-wsc-basket, .xoo-wsc-basket[style*="block"] { display: none !important; }
  .site-header .main-navigation .primary-navigation { display: none !important; }
  .site-header button.menu-toggle { position: relative; z-index: 3; }

  /* Menu panel: a white card under the header over a dimmed page */
  .main-navigation.toggled::before {
    content: ""; display: block; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(31, 42, 28, 0.38); z-index: 1;
  }
  .main-navigation .handheld-navigation, .main-navigation > div.menu {
    position: absolute; left: 12px; right: 12px; top: calc(100% + 10px); z-index: 3;
  }
  .main-navigation ul.menu, .main-navigation ul.nav-menu, .main-navigation > div.menu > ul { display: none; }
  .main-navigation.toggled ul.menu, .main-navigation.toggled ul.nav-menu, .main-navigation.toggled > div.menu > ul {
    display: block; width: 100%; margin: 0;
    background: var(--sac-card); border-radius: 22px; border: 1px solid var(--sac-sep);
    padding: 10px; box-shadow: 0 20px 48px rgba(31, 42, 28, 0.22);
    animation: sac-menu-in .18s ease-out;
  }
  @keyframes sac-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
  @media (prefers-reduced-motion: reduce) { .main-navigation.toggled ul.menu { animation: none; } }
  .main-navigation.toggled li { display: block; float: none; width: auto; margin: 0; }
  /* (ul.menu in the selectors so these outrank the desktop ".main-navigation ul.menu > li > a" rule) */
  .main-navigation.toggled ul.menu li a, .main-navigation.toggled ul.nav-menu li a, .main-navigation.toggled > div.menu li a {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 14px; border-radius: 14px; color: var(--sac-text); font-weight: 600; font-size: 17px; line-height: 1.2; white-space: normal;
  }
  .main-navigation.toggled ul.menu li a::after, .main-navigation.toggled ul.nav-menu li a::after, .main-navigation.toggled > div.menu li a::after {
    content: ""; width: 18px; height: 18px; flex: 0 0 18px; opacity: .55;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6B5A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6l6 6-6 6'/></svg>") no-repeat center / contain;
  }
  .main-navigation.toggled ul.menu li a:hover, .main-navigation.toggled ul.menu li a:active, .main-navigation.toggled ul.menu li.current-menu-item > a,
  .main-navigation.toggled ul.menu li.current_page_item > a { background: var(--sac-soft); color: var(--sac-green-dark); }
  .main-navigation.toggled ul.menu ul.sub-menu { display: block; border: 0; box-shadow: none; padding-left: 12px; }
  .main-navigation.toggled .sac-menu-divider { height: 1px; background: var(--sac-sep); margin: 8px 10px; }
  .main-navigation.toggled ul.menu li.sac-menu-account a, .main-navigation.toggled ul.menu li.sac-menu-cart a { font-weight: 500; font-size: 16px; color: var(--sac-muted); padding: 12px 14px; }
  .main-navigation.toggled .sac-menu-search { padding: 4px 4px 10px; }
  .main-navigation.toggled .sac-menu-search form { position: relative; margin: 0; display: block; }
  .main-navigation.toggled .sac-menu-search .search-field {
    height: 46px; border-radius: 23px !important; border: 1px solid var(--sac-sep) !important; background: var(--sac-inset) !important;
    padding: 0 16px 0 42px !important; font-size: 16px; width: 100%; box-shadow: none !important; margin: 0;
  }
  .main-navigation.toggled .sac-menu-search form::before {
    content: ""; position: absolute; left: 15px; top: 23px; width: 18px; height: 18px; transform: translateY(-50%); pointer-events: none; z-index: 1;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6B5A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>") no-repeat center / contain;
  }
  /* The form's own Search button (the global pill-button rule is !important, so this must be too); Enter submits. */
  .main-navigation.toggled .sac-menu-search button[type="submit"], .main-navigation.toggled .sac-menu-search label { display: none !important; }
  /* Keyboard focus ring in the site green instead of Storefront's purple */
  .site-header button.menu-toggle:focus { outline: 2px solid var(--sac-green); outline-offset: 2px; }
  .site-header button.menu-toggle:focus:not(:focus-visible) { outline: 0 !important; }
  body.sac-menu-open { overflow: hidden; }
  .storefront-handheld-footer-bar { display: none !important; }
  .site-footer { padding-bottom: 0 !important; }
}

/* ------------------------------------------------------------------
   Breadcrumb
   ------------------------------------------------------------------ */
.storefront-breadcrumb { background: transparent; border: 0; padding: 16px 0 0; margin: 0; }
.woocommerce-breadcrumb { font-size: 14px; color: var(--sac-muted); }
.woocommerce-breadcrumb a { color: var(--sac-muted); }
.woocommerce-breadcrumb a:hover { color: var(--sac-text); }

/* ------------------------------------------------------------------
   Content
   ------------------------------------------------------------------ */
.site-content { padding-top: 8px; }
.hentry .entry-header { border-bottom: 0; margin-bottom: 1rem; }
.hentry .entry-content > *:first-child { margin-top: 0; }

/* ------------------------------------------------------------------
   Product grid: white cards, cream inset for the cover
   ------------------------------------------------------------------ */
ul.products { margin-top: 8px; }
/* Grid instead of Storefront's floats, so every card in a row is the same height */
@media (min-width: 768px) {
  ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
  .columns-3 ul.products, ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .columns-2 ul.products, ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  ul.products::before, ul.products::after { display: none; content: none; }
  ul.products li.product, ul.products li.product.first, ul.products li.product.last { width: auto !important; float: none !important; clear: none !important; margin: 0 !important; }
  /* The book set spans the whole row with a larger picture */
  ul.products li.product.sac-wide { grid-column: 1 / -1; grid-template-columns: minmax(0, 46%) minmax(0, 1fr); }
  body ul.products li.product.sac-wide img, body ul.products li.product.sac-wide .attachment-woocommerce_thumbnail { min-height: 300px; padding: 28px; }
  ul.products li.product.sac-wide .woocommerce-loop-product__title, ul.products li.product.sac-wide h2 { font-size: 24px; padding: 32px 32px 4px; }
  ul.products li.product.sac-wide .sac-subtitle { font-size: 16px; padding: 0 32px; }
  ul.products li.product.sac-wide .price { font-size: 22px; padding: 12px 32px 0; }
  ul.products li.product.sac-wide .button, ul.products li.product.sac-wide .add_to_cart_button { margin: 16px 32px 32px; }
}
ul.products li.product {
  background: var(--sac-card);
  border: 1px solid var(--sac-sep);
  border-radius: var(--sac-radius-lg);
  box-shadow: var(--sac-shadow);
  overflow: hidden;
  text-align: left;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s ease, transform .2s ease;
}
ul.products li.product:hover { box-shadow: 0 12px 30px rgba(31, 42, 28, 0.12); transform: translateY(-2px); }
ul.products li.product .woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; }
ul.products li.product img,
ul.products li.product .attachment-woocommerce_thumbnail {
  background: var(--sac-inset);
  padding: 22px;
  margin: 0;
  width: 100%;
  height: 260px;
  object-fit: contain;
  display: block;
}
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
  font-family: var(--sac-sans);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  padding: 16px 18px 2px;
  margin: 0;
  color: var(--sac-text);
}
ul.products li.product .sac-subtitle,
ul.products li.product .woocommerce-product-details__short-description {
  font-size: 14px; color: var(--sac-muted); padding: 0 18px; margin: 0;
}
ul.products li.product .price {
  font-weight: 700; font-size: 18px; color: var(--sac-text);
  padding: 10px 18px 0; margin: 0;
}
ul.products li.product .price del { color: var(--sac-muted); font-weight: 400; opacity: 1; }
ul.products li.product .button,
ul.products li.product .add_to_cart_button {
  margin: 12px 18px 18px;
  align-self: stretch;
  width: auto;
  height: 40px;
  font-size: 14px;
  padding: 0 18px !important;
}
ul.products li.product .added_to_cart { margin: 0 18px 18px; }
/* "View cart" link that appears after adding: stays on one line, short chevron instead of the long arrow */
.added_to_cart, ul.products li.product .added_to_cart { white-space: nowrap; display: inline-flex; width: auto; }
.added_to_cart.wc-forward::after, .wc-forward::after { content: "\203A" !important; font-family: var(--sac-sans) !important; font-weight: 700; font-size: 1.2em; line-height: 1; margin-left: 6px !important; }
ul.products li.product .star-rating { margin: 6px 18px 0; }
ul.products li.product .onsale {
  background: var(--sac-green-dark); border-radius: 999px; padding: 4px 12px;
  font-size: 12px; font-weight: 600; top: 14px; left: 14px; right: auto;
}

/* Featured wide tile (the book set — functions.php adds .sac-wide): two columns wide,
   cover on the left, title / price / button on the right. */
ul.products li.product.sac-wide {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr;
  align-items: start;
}
ul.products li.product.sac-wide .woocommerce-LoopProduct-link { display: contents; }
ul.products li.product.sac-wide img,
ul.products li.product.sac-wide .attachment-woocommerce_thumbnail {
  grid-column: 1; grid-row: 1 / -1; align-self: stretch; height: 100%; min-height: 240px; padding: 12px;
}
ul.products li.product.sac-wide .woocommerce-loop-product__title,
ul.products li.product.sac-wide h2,
ul.products li.product.sac-wide .sac-subtitle,
ul.products li.product.sac-wide .price,
ul.products li.product.sac-wide .star-rating,
ul.products li.product.sac-wide .button,
ul.products li.product.sac-wide .add_to_cart_button,
ul.products li.product.sac-wide .added_to_cart { grid-column: 2; }
ul.products li.product.sac-wide .button,
ul.products li.product.sac-wide .add_to_cart_button { align-self: end; justify-self: start; }
/* functions.php wraps the set's cover in <picture> (2 x 2 collage on phones), so the picture is the grid item */
ul.products li.product.sac-wide picture { display: block; }
@media (min-width: 768px) {
  ul.products li.product.sac-wide picture { grid-column: 1; grid-row: 1 / -1; align-self: stretch; min-height: 240px; }
  ul.products li.product.sac-wide picture img { height: 100%; min-height: 240px; }
}

/* Shop / category header + result count */
.woocommerce-products-header, .storefront-full-width-content .woocommerce-products-header { padding: 16px 0 24px; }
.woocommerce-products-header .term-description { color: var(--sac-muted); max-width: 70ch; margin: 0 auto; text-align: center; }
.storefront-sorting:not(:has(.woocommerce-result-count, .woocommerce-ordering, .woocommerce-pagination, .woocommerce-notices-wrapper > *)) { display: none; }
.woocommerce-result-count { color: var(--sac-muted); font-size: 14px; }
.woocommerce-ordering select {
  border-radius: 999px; border: 1px solid var(--sac-sep); background: var(--sac-card);
  padding: 8px 36px 8px 14px; font-size: 14px;
}
.woocommerce-pagination .page-numbers li .page-numbers {
  border-radius: 999px; border: 1px solid var(--sac-sep); background: var(--sac-card);
}
.woocommerce-pagination .page-numbers li .page-numbers.current { background: var(--sac-green-dark); color: #fff; border-color: var(--sac-green-dark); }

/* Collection chips (category list block / product categories widget rendered as pills) */
.sac-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 20px; padding: 0; list-style: none; }
.sac-chips li { margin: 0; }
.sac-chips a, .sac-chip {
  display: inline-flex; align-items: center; height: 40px; padding: 0 18px;
  border-radius: 999px; background: var(--sac-card); color: var(--sac-text);
  border: 1px solid rgba(60, 60, 67, 0.25); font-weight: 500; font-size: 15px;
}
.sac-chips a:hover { border-color: var(--sac-green); color: var(--sac-green-dark); }
.sac-chips .current-cat > a, .sac-chips a.is-active, .sac-chip.is-active {
  background: var(--sac-green-dark); color: #fff; border-color: var(--sac-green-dark); font-weight: 600;
}

/* ------------------------------------------------------------------
   Single product
   ------------------------------------------------------------------ */
.single-product div.product { margin-top: 16px; }
.single-product div.product .woocommerce-product-gallery {
  background: var(--sac-card);
  border: 1px solid var(--sac-sep);
  border-radius: var(--sac-radius-xl);
  box-shadow: var(--sac-shadow-lg);
  padding: 32px;
  box-sizing: border-box;
}
.single-product div.product .woocommerce-product-gallery img { background: transparent; }
/* Small source images (the Artpac covers) scale up to the card so the white box fits the picture */
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; }
.single-product div.product .woocommerce-product-gallery__trigger {
  border-radius: 999px; background: var(--sac-card); border: 1px solid var(--sac-sep);
}
.single-product div.product .summary .sac-eyebrow { margin-bottom: 10px; }
.single-product div.product .product_title { margin-bottom: 10px; }
.single-product div.product .sac-subtitle { font-size: 19px; color: var(--sac-muted); margin: 0 0 8px; line-height: 1.45; }
.single-product div.product .sac-byline { font-size: 16px; margin: 0 0 14px; }
.single-product div.product p.price,
.single-product div.product span.price {
  font-size: 24px; font-weight: 700; color: var(--sac-text); margin: 10px 0 18px;
}
/* Storefront's previous/next product tabs on the screen edges are off (functions.php); belt and braces */
.storefront-product-pagination { display: none !important; }
#jp-relatedposts, .jp-relatedposts, .single-product section.related.products { display: none !important; }
/* "More in this series" strip between the summary and the tabs */
.sac-series-nav { margin: 28px 0 32px; }
.sac-series-nav__label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sac-muted); margin: 0 0 10px; }
.sac-series-nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.sac-series-nav--artpacs ul { grid-template-columns: repeat(auto-fill, minmax(116px, 1fr)); }
.sac-series-nav--artpacs a span { white-space: nowrap; }
.sac-series-nav li { margin: 0; min-width: 0; }
.sac-series-nav a {
  display: flex; align-items: center; gap: 10px; padding: 4px 12px 4px 4px; border-radius: 22px; width: 100%; min-height: 40px; box-sizing: border-box;
  background: var(--sac-card); border: 1px solid var(--sac-sep); color: var(--sac-text); font-weight: 600; font-size: 14px; line-height: 1.2;
  text-decoration: none !important; transition: border-color .15s, color .15s;
}
.sac-series-nav a span { min-width: 0; font-size: 13px; line-height: 1.25; }
@media (max-width: 767px) { .sac-series-nav ul, .sac-series-nav--artpacs ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sac-series-nav a img { flex: 0 0 32px; width: 32px; height: 32px; object-fit: contain; border-radius: 50%; background: var(--sac-inset); padding: 3px; margin: 0; }
.sac-series-nav a:hover { border-color: var(--sac-green); color: var(--sac-green-dark); }
.sac-series-nav li.is-current a { background: var(--sac-green-dark); border-color: var(--sac-green-dark); color: #fff; }
@media (min-width: 768px) {
  /* On desktop the series strip sits under the product picture, as wide as the picture column, so it keeps the gutter from the buy box */
  .single-product div.product .sac-series-nav { float: left; clear: left; width: 41.1764705882%; margin: 24px 0 32px; }
  .single-product div.product .woocommerce-tabs, .single-product div.product .sac-disclaimer, .single-product div.product section.related, .single-product div.product section.up-sells { clear: both; }
}
.single-product div.product .stock.in-stock {
  display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 15px;
  background: var(--sac-soft); color: var(--sac-green-dark); font-size: 13px; font-weight: 600; margin: 0 0 14px;
}
.single-product div.product .stock.out-of-stock { color: var(--sac-danger); font-weight: 600; }
.single-product div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 4px 0 22px; }
.single-product div.product form.cart .quantity { margin: 0; }
.single-product div.product form.cart .quantity .qty {
  height: 50px; width: 88px; border-radius: 25px; border: 1px solid rgba(60, 60, 67, 0.25);
  background: var(--sac-card); text-align: center; font-weight: 600; font-size: 16px; padding: 0 10px;
}
.single-product div.product .product_meta {
  border: 0; padding: 0; margin: 10px 0 0; font-size: 14px; color: var(--sac-muted);
}
.single-product div.product .product_meta > span { display: block; margin: 2px 0; }
/* "SKU: 978…" reads as "ISBN 978…" (the SKU holds the ISBN; the literal "SKU:" text is collapsed) */
.single-product div.product .product_meta .sku_wrapper { font-size: 0; }
.single-product div.product .product_meta .sku_wrapper::before { content: "ISBN "; font-size: 14px; }
.single-product div.product .product_meta .sku_wrapper .sku { color: var(--sac-text); font-weight: 600; font-size: 14px; }

.sac-trust { display: flex; gap: 18px; flex-wrap: wrap; font-size: 14px; color: var(--sac-muted); margin: 0 0 18px; padding: 0; list-style: none; }
.sac-trust li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.sac-trust li::before {
  content: ""; width: 16px; height: 16px; flex: 0 0 auto;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234F7446' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") no-repeat center / contain;
}

/* Tabs: a segmented control (like the app's filter chips) above one white card.
   Storefront floats the tab list to the left on desktop; undo that. */
.woocommerce-tabs { margin-top: 40px; }
.woocommerce-tabs::after { content: ""; display: table; clear: both; }
.woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
  float: none; width: max-content; max-width: 100%; margin: 0 0 16px; padding: 4px;
  display: flex; gap: 4px; background: var(--sac-inset); border-radius: 999px; border: 0; list-style: none;
}
.woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; margin: 0; padding: 0; background: none; box-shadow: none; }
.woocommerce-tabs ul.tabs li a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--sac-sans); font-weight: 600; font-size: 14px; color: var(--sac-muted);
  padding: 9px 16px; border: 0; border-radius: 999px; display: block; background: transparent; box-shadow: none;
}
.woocommerce-tabs ul.tabs li a::after, .woocommerce-tabs ul.tabs li a::before,
.woocommerce-tabs ul.tabs li::after, .woocommerce-tabs ul.tabs li::before { display: none !important; content: none !important; }
.woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--sac-text); background: var(--sac-card); box-shadow: var(--sac-shadow); }
.woocommerce-tabs .panel,
.woocommerce div.product .woocommerce-tabs .panel {
  float: none; width: auto; margin: 0; padding: 28px;
  background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-lg);
}
.woocommerce-tabs .panel h2:first-child { font-family: var(--sac-serif); font-size: 26px; margin: 0 0 14px; }
.woocommerce-tabs .panel p { line-height: 1.7; }
.woocommerce-tabs .panel p:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .woocommerce-tabs .panel { padding: 18px; } }

/* Storefront's sticky "add to cart" bar (appears when the button scrolls out of view) */
.storefront-sticky-add-to-cart { background: rgba(255,255,255,0.82); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--sac-sep); box-shadow: 0 6px 20px rgba(31,42,28,0.08); }
.storefront-sticky-add-to-cart__content-title { font-family: var(--sac-sans); font-weight: 600; }
.storefront-sticky-add-to-cart__content-price { color: var(--sac-text); }

table.woocommerce-product-attributes, table.shop_attributes {
  background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-md);
  border-collapse: separate; border-spacing: 0; overflow: hidden; max-width: 520px; width: 100%;
}
table.shop_attributes th, table.shop_attributes td { padding: 12px 18px; border: 0; border-top: 1px solid var(--sac-sep); background: transparent; font-size: 15px; }
table.shop_attributes tr:first-child th, table.shop_attributes tr:first-child td { border-top: 0; }
table.shop_attributes th { color: var(--sac-muted); font-weight: 400; width: 40%; text-align: left; }
table.shop_attributes td { font-weight: 600; text-align: right; }
table.shop_attributes td p { margin: 0; }

/* Disclaimer box (Herbz Disclaimer component) */
.sac-disclaimer {
  background: var(--sac-fill); border-radius: var(--sac-radius-md); padding: 14px 18px;
  font-size: 13px; line-height: 1.5; color: var(--sac-muted); margin: 32px 0 8px;
}
.sac-disclaimer strong { font-weight: 600; }

/* Related / upsells */
.related.products > h2, .upsells.products > h2 { font-family: var(--sac-serif); font-size: 28px; margin: 48px 0 20px; }

/* ------------------------------------------------------------------
   Cart / checkout / account polish
   ------------------------------------------------------------------ */
.woocommerce-cart table.shop_table, .woocommerce-checkout #order_review, .woocommerce-account .woocommerce-MyAccount-navigation ul,
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-md);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a { padding: 12px 18px; display: block; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--sac-green-dark); font-weight: 600; }
.woocommerce-cart .cart-collaterals .cart_totals { padding: 20px; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], textarea, select, .select2-container .select2-selection--single {
  border-radius: var(--sac-radius-sm) !important; border: 1px solid var(--sac-sep) !important; background: var(--sac-card) !important; box-shadow: none !important; padding: 10px 12px;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  border-radius: var(--sac-radius-md); background: var(--sac-soft); color: var(--sac-green-deep);
}
.woocommerce-message a.button, .woocommerce-info a.button { margin-left: auto; }
.woocommerce-error { background: #FBE9E7; color: var(--sac-danger); }

/* ------------------------------------------------------------------
   Homepage blocks
   ------------------------------------------------------------------ */
.sac-card {
  background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-xl);
  box-shadow: var(--sac-shadow); padding: 28px; box-sizing: border-box;
}
.sac-card--hero { box-shadow: var(--sac-shadow-lg); padding: 32px 28px; }
.sac-card--hero .wp-block-image, .sac-card--hero figure { margin: 0; }
.sac-card--hero img { display: block; width: 100%; height: auto; }
.sac-card--inset { background: var(--sac-inset); }
.sac-hero .sac-hero-note { font-size: 16px; color: var(--sac-muted); margin: 0; }
/* Home hero photo (the family picture): a rounded photograph instead of a white card */
.sac-hero .sac-hero-photo figure, .sac-hero .sac-hero-photo .wp-block-image { margin: 0; }
.sac-hero .sac-hero-photo img { display: block; width: 100%; height: auto; border-radius: var(--sac-radius-xl); box-shadow: var(--sac-shadow-lg); }
.sac-hero .sac-hero-photo figcaption { font-size: 13px; color: var(--sac-muted); text-align: center; margin: 12px 0 0; }
.sac-chips a, .main-navigation ul.menu a, .sac-trust a, ul.products li.product a,
.hentry .entry-content .sac-chips a, .hentry .entry-content ul.products li.product a,
.hentry .entry-content .sac-trust a, .hentry .entry-content .wp-block-button__link,
.hentry .entry-content .sac-card--hero a { text-decoration: none; }
@media (max-width: 767px) {
  .sac-card { padding: 18px; }
  .sac-card--hero { padding: 18px; }
  .sac-hero .wp-block-columns { gap: 16px; }
}
/* Vertical rhythm for the home-page blocks: eyebrow 6 → heading 14 → text 22 → buttons 12 → trust 20 → next section 48 */
.entry-content .sac-eyebrow { margin: 0 0 6px; }
.entry-content h1 + p, .entry-content h2 + p { margin-top: 0; }
.sac-hero h1 { margin: 0 0 14px; }
.sac-hero p.sac-lead { font-size: 18px; color: var(--sac-muted); max-width: 56ch; margin: 0 0 22px; line-height: 1.6; }
.entry-content .wp-block-buttons { gap: 12px; margin: 0 0 20px; }
.entry-content .wp-block-buttons .wp-block-button { margin: 0; }
.entry-content .sac-trust { margin: 0; row-gap: 10px; }
.entry-content .sac-chips { margin: 14px 0 20px; }
.entry-content h2 { margin: 0 0 14px; }
.entry-content > .wp-block-group + .wp-block-group, .entry-content .wp-block-group[style*="margin-top"] { margin-top: 48px !important; }
.home .site-content, .page-template-template-fullwidth .site-content { padding-top: 40px; padding-bottom: 32px; }
.home .hentry, .page-template-template-fullwidth .hentry { margin-bottom: 0; }
.entry-content .wp-block-columns { margin-bottom: 0; }
.entry-content .sac-card .wp-block-image, .entry-content .sac-card figure { margin: 0; }
.entry-content .sac-card p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .sac-hero p.sac-lead { font-size: 16px; }
  .home .site-content, .page-template-template-fullwidth .site-content { padding-top: 24px; padding-bottom: 16px; }
  .entry-content > .wp-block-group + .wp-block-group, .entry-content .wp-block-group[style*="margin-top"] { margin-top: 36px !important; }
  .entry-content .wp-block-columns { gap: 20px; }
  .entry-content .wp-block-buttons .wp-block-button, .entry-content .wp-block-buttons .wp-block-button__link { width: 100%; justify-content: center; }
}
.sac-section-title { font-family: var(--sac-serif); }
.sac-list { background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-lg); box-shadow: var(--sac-shadow); padding: 8px 0 4px; list-style: none; margin: 0; }
.sac-list li { display: flex; align-items: center; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--sac-sep); margin: 0; font-size: 16px; }
.sac-list li:first-child { border-top: 0; }
.sac-list li::before {
  content: ""; width: 32px; height: 32px; border-radius: 8px; background: var(--sac-soft) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234F7446' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") no-repeat center / 16px; flex: 0 0 auto;
}
.wp-block-buttons .wp-block-button__link { height: 50px; padding: 0 28px !important; font-size: 17px; }
.wp-block-image img { border-radius: var(--sac-radius-md); }
.sac-memorial { display: block; background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-md); padding: 18px 22px; color: var(--sac-green-deep); font-size: 16px; line-height: 1.55; }
.sac-memorial strong { display: inline; margin-right: 4px; color: var(--sac-text); }

/* Products block / shortcode grids share the loop styling above */
.wc-block-grid__products .wc-block-grid__product { border: 0; }
.wc-block-grid__product { background: var(--sac-card); border: 1px solid var(--sac-sep) !important; border-radius: var(--sac-radius-lg); box-shadow: var(--sac-shadow); overflow: hidden; text-align: left; padding: 0; }
.wc-block-grid__product-image img { background: var(--sac-inset); padding: 22px; height: 260px; object-fit: contain; width: 100%; }
.wc-block-grid__product-title { font-weight: 600; font-size: 17px; padding: 16px 18px 2px; }
.wc-block-grid__product-price { padding: 8px 18px 0; font-weight: 700; font-size: 18px; }
.wc-block-grid__product-add-to-cart { padding: 12px 18px 18px; text-align: left; }

/* ------------------------------------------------------------------
   Cart page, slide-out cart and the header cart button
   ------------------------------------------------------------------ */
/* The header cart is a plain icon button; Storefront's hover dropdown (a narrow strip here) is not used.
   The slide-out cart and the cart page cover it. */
.site-header-cart .widget_shopping_cart, .site-header-cart:hover .widget_shopping_cart, .site-header-cart.focus .widget_shopping_cart { display: none !important; }
/* Cart table: room around the coupon / update row, normal-sized checkout button */
.woocommerce-cart table.shop_table th, .woocommerce-cart table.shop_table td { padding: 14px 16px; }
.woocommerce-cart table.shop_table td.actions { padding: 18px 22px; }
.woocommerce-cart table.shop_table td.actions .coupon #coupon_code { height: 44px; margin: 0 10px 0 0; width: 180px; }
.woocommerce-cart table.shop_table td.actions .button { margin: 0; }
.woocommerce-cart table.shop_table td.product-thumbnail img { width: 64px; height: auto; border-radius: 8px; }
.woocommerce-cart .cart-collaterals .cart_totals h2, .woocommerce-cart .cross-sells h2 { font-size: 24px; margin: 0 0 14px; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0; margin: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: 16px !important; height: 48px; width: 100%; display: inline-flex; padding: 0 24px !important; margin: 0; }
/* Cart on phones: each line is one compact row (thumbnail · name and price · remove / quantity · line
   total) instead of Storefront's stacked "Product: / Price: / Quantity: / Subtotal:" list */
@media (max-width: 767px) {
  .woocommerce-cart table.shop_table_responsive.cart, .woocommerce-cart table.shop_table_responsive.cart tbody { display: block; width: 100%; }
  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty subtotal"; column-gap: 12px; row-gap: 4px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--sac-sep); }
  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; min-width: 0; }
  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item td::before, .woocommerce-cart table.shop_table_responsive.cart tr.cart_item td::after { display: none !important; content: none !important; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail { grid-area: thumb; align-self: start; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail img { width: 64px; height: auto; display: block; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-name { grid-area: name; font-weight: 600; font-size: 15px; line-height: 1.3; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-name a { color: var(--sac-text); text-decoration: none; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-price { grid-area: price; font-size: 14px; color: var(--sac-muted); }
  .woocommerce-cart table.shop_table_responsive.cart td.product-quantity { grid-area: qty; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-quantity .quantity { margin: 0; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-quantity .qty { width: 72px; height: 40px; padding: 0 8px; margin: 0; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-subtotal { grid-area: subtotal; text-align: right !important; font-weight: 700; font-size: 16px; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; }
  .woocommerce-cart table.shop_table_responsive.cart td.product-remove a.remove { position: static; width: 28px; height: 28px; line-height: 28px; font-size: 18px; border-radius: 50%; background: var(--sac-inset); color: var(--sac-muted) !important; text-align: center; display: block; margin: 0; }
  .woocommerce-cart table.shop_table_responsive.cart tr:last-child { display: block; }
  .woocommerce-cart table.shop_table_responsive.cart td.actions { display: grid !important; gap: 10px; padding: 14px 16px !important; }
  .woocommerce-cart table.shop_table_responsive.cart td.actions .coupon { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
  .woocommerce-cart table.shop_table_responsive.cart td.actions .coupon #coupon_code { width: 100%; margin: 0; }
  .woocommerce-cart table.shop_table_responsive.cart td.actions button[name="update_cart"] { width: 100%; }
  .woocommerce-cart .cart-collaterals .cart_totals { padding: 16px; }
  .woocommerce-cart .cart-collaterals { display: flex; flex-direction: column; gap: 24px; }
  .woocommerce-cart .cart-collaterals .cart_totals { order: -1; width: 100%; float: none; margin: 0; }
  .woocommerce-cart .cart-collaterals .cross-sells { width: 100%; float: none; margin: 0; }
}
/* Slide-out cart (Side Cart plugin): one primary action, quieter secondary ones, more air */
.xoo-wsc-container .xoo-wsc-header { padding: 16px 20px; border-bottom: 1px solid var(--sac-sep); }
.xoo-wsc-container .xoo-wsch-text { font-family: var(--sac-serif); font-size: 22px; font-weight: 700; }
.xoo-wsc-container .xoo-wsc-product { padding: 16px 20px; border-bottom: 1px solid var(--sac-sep); }
.xoo-wsc-container .xoo-wsc-img-col img { border-radius: 8px; background: var(--sac-inset); }
.xoo-wsc-container .xoo-wsc-footer { padding: 16px 20px 20px; border-top: 1px solid var(--sac-sep); }
.xoo-wsc-container .xoo-wsc-ft-totals { padding: 0 0 14px; }
.xoo-wsc-container .xoo-wsc-ft-amt { display: flex; justify-content: space-between; width: 100%; font-size: 16px; }
.xoo-wsc-container .xoo-wsc-ft-amt-value { font-weight: 700; }
.xoo-wsc-container .xoo-wsc-ft-buttons-cont { display: flex; flex-direction: column; gap: 10px; }
.xoo-wsc-container a.xoo-wsc-ft-btn.button { font-size: 15px !important; height: 44px; width: 100%; margin: 0 !important; }
.xoo-wsc-container a.xoo-wsc-ft-btn-checkout.button { order: 1; }
.xoo-wsc-container a.xoo-wsc-ft-btn-cart.button { order: 2; background: var(--sac-soft) !important; color: var(--sac-green-dark) !important; }
.xoo-wsc-container a.xoo-wsc-ft-btn-cart.button:hover { background: var(--sac-green) !important; color: #fff !important; }
.xoo-wsc-container a.xoo-wsc-ft-btn-continue.button { order: 3; background: transparent !important; color: var(--sac-muted) !important; border: 1px solid var(--sac-sep) !important; }
.xoo-wsc-container a.xoo-wsc-ft-btn-continue.button:hover { background: var(--sac-soft) !important; color: var(--sac-green-dark) !important; }

/* ------------------------------------------------------------------
   Checkout: Contact → Shipping address → Billing → Payment on the left,
   a sticky order summary on the right; one column (summary first) on phones
   ------------------------------------------------------------------ */
.woocommerce-checkout .woocommerce { max-width: 1140px; margin: 0 auto; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
form.checkout.woocommerce-checkout::before, form.checkout.woocommerce-checkout::after { display: none; content: none; }
form.checkout > .woocommerce-NoticeGroup, form.checkout > .woocommerce-error, form.checkout > .woocommerce-message, form.checkout > .woocommerce-info { grid-column: 1 / -1; margin: 0; }
.woocommerce-checkout .sac-checkout-main { min-width: 0; display: grid; gap: 16px; counter-reset: sacstep; }
.woocommerce-checkout .sac-checkout-main > div:not(:has(*)) { display: none; }
.woocommerce-checkout .col2-set#customer_details, .woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; margin: 0; }
.woocommerce-checkout #customer_details, .woocommerce-checkout #customer_details .col-1 { display: contents; }
.woocommerce-checkout #customer_details .col-2:not(:has(*)) { display: none; }
.woocommerce-checkout .sac-checkout-section { background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-lg); box-shadow: var(--sac-shadow); padding: 22px 24px; min-width: 0; }
.woocommerce-checkout .sac-step-title, .woocommerce-checkout .woocommerce-billing-fields > h3 { display: flex; align-items: center; gap: 12px; font-family: var(--sac-sans); font-size: 18px; font-weight: 600; margin: 0 0 16px; }
.woocommerce-checkout .sac-step-title::before, .woocommerce-checkout .woocommerce-billing-fields > h3::before { counter-increment: sacstep; content: counter(sacstep); flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: var(--sac-green-deep); color: #fff; font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
/* Fields in a tidy grid: name side by side, city / state / ZIP on one line */
.woocommerce-checkout .sac-fields, .woocommerce-checkout .woocommerce-billing-fields__field-wrapper, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px 14px; }
.woocommerce-checkout .sac-fields::before, .woocommerce-checkout .sac-fields::after, .woocommerce-checkout .woocommerce-billing-fields__field-wrapper::before, .woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::before, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::after { display: none; content: none; }
.woocommerce-checkout .form-row { grid-column: 1 / -1; float: none !important; width: auto !important; margin: 0 !important; padding: 0; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { grid-column: span 3; }
@media (min-width: 560px) {
  .woocommerce-checkout #billing_email_field, .woocommerce-checkout #billing_phone_field { grid-column: span 3; }
  .woocommerce-checkout #billing_city_field, .woocommerce-checkout #shipping_city_field, .woocommerce-checkout #billing_state_field, .woocommerce-checkout #shipping_state_field, .woocommerce-checkout #billing_postcode_field, .woocommerce-checkout #shipping_postcode_field { grid-column: span 2; }
}
.woocommerce-checkout .form-row label { font-size: 14px; margin: 0 0 4px; color: var(--sac-muted); }
.woocommerce-checkout .form-row label .required { color: var(--sac-muted); text-decoration: none; }
.woocommerce-checkout .form-row .input-text, .woocommerce-checkout .form-row select, .woocommerce-checkout .select2-container .select2-selection--single { height: 44px; padding: 8px 12px; font-size: 15px; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.woocommerce-checkout .form-row.woocommerce-invalid .input-text, .woocommerce-checkout .form-row.woocommerce-invalid select { border-color: var(--sac-danger) !important; }
/* Orders ship to the shipping fields: WooCommerce's own tick box is hidden and the fields always show */
.woocommerce-checkout h3#ship-to-different-address { display: none !important; }
.woocommerce-checkout div.shipping_address { display: block !important; height: auto !important; overflow: visible !important; }
.woocommerce-checkout .woocommerce-shipping-fields { margin: 0; }
.woocommerce-checkout .woocommerce-additional-fields:not(:has(*)) { display: none; }
/* Billing: a "same as my shipping address" tick box; the address fields only when it is unticked */
.woocommerce-checkout .form-row.sac-billing-same { display: flex; align-items: center; background: var(--sac-inset); border-radius: 12px; padding: 12px 14px !important; margin: 0 0 14px !important; }
.woocommerce-checkout .form-row.sac-billing-same label { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 15px; color: var(--sac-text); cursor: pointer; }
.woocommerce-checkout .form-row.sac-billing-same input { width: 18px; height: 18px; margin: 0; accent-color: var(--sac-green-dark); }
.woocommerce-checkout .woocommerce-billing-fields:has(#sac_billing_same:checked) .woocommerce-billing-fields__field-wrapper { display: none; }
.woocommerce-checkout .woocommerce-billing-fields:has(#sac_billing_same:checked) .form-row.sac-billing-same { margin-bottom: 0 !important; }
/* Payment */
.woocommerce-checkout #payment { background: transparent; border: 0; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; margin: 0 0 16px; border: 0; display: grid; gap: 10px; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li { margin: 0; padding: 12px 14px; border: 1px solid var(--sac-sep); border-radius: 12px; background: var(--sac-card); font-size: 15px; }
.woocommerce-checkout #payment ul.payment_methods li:has(input[name="payment_method"]:checked) { border-color: var(--sac-green-dark); box-shadow: 0 0 0 1px var(--sac-green-dark) inset; }
.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 600; display: inline; }
.woocommerce-checkout #payment ul.payment_methods li input[name="payment_method"] { accent-color: var(--sac-green-dark); margin: 0 10px 0 0; }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 24px; vertical-align: middle; margin-left: 6px; }
.woocommerce-checkout #payment div.payment_box { background: transparent; padding: 10px 0 0; margin: 0; font-size: 14px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box .wc-saved-payment-methods { padding: 0; margin: 0; list-style: none; }
.woocommerce-checkout #payment div.payment_box .wc-saved-payment-methods li { margin: 8px 0 0; }
.woocommerce-checkout #payment div.payment_box .wc-saved-payment-methods li:first-child { margin-top: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { padding: 0; }
.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods > li:last-child { padding-bottom: 12px; }
.woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method > label::before { content: "" !important; font-family: inherit !important; display: inline-block; width: 18px; height: 18px; box-sizing: border-box; border-radius: 50%; border: 2px solid #B9C2B4; background: #fff; margin: 0 10px 0 0; vertical-align: -4px; flex: 0 0 auto; }
.woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method > input:checked + label::before { border-color: var(--sac-green-dark); background: var(--sac-green-dark); box-shadow: inset 0 0 0 3px #fff; }
.woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method:not([class*="woocommerce_payments"]) > label { display: flex; align-items: center; }
.woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method:not([class*="woocommerce_payments"]) > label img { margin-left: auto; max-height: 22px; }
.woocommerce-checkout #payment fieldset.wc-payment-form { padding: 0 !important; margin: 12px 0 0 !important; border: 0; }
.woocommerce-checkout #payment .place-order { padding: 0; margin: 0; background: transparent; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; }
.woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--sac-muted); margin: 0 0 12px; line-height: 1.5; }
.woocommerce-checkout #payment .place-order button#place_order, .woocommerce-checkout #payment .place-order .button { width: 100%; height: 52px; font-size: 17px !important; margin: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0 24px !important; }
/* Apple Pay / Google Pay inside the Payment card, right under the payment methods and above "Place order".
   The slot always stays in flow and visible: Stripe only draws the wallet buttons once their frame is really
   on screen, so the slot must never be hidden. While the frame is empty it is 0 px tall; the "Or pay with"
   label and the spacing appear only once the checkout script sees real buttons (.has-buttons). */
.woocommerce-checkout .wcpay-express-checkout-wrapper { margin: 0; }
.woocommerce-checkout .wcpay-express-checkout-wrapper.has-buttons { margin: 0 0 16px; }
.woocommerce-checkout #payment .place-order { display: flex; flex-direction: column; }
.woocommerce-checkout #payment .place-order .wcpay-express-checkout-wrapper { order: -1; }
/* No floating basket or admin "Edit" link on the checkout page */
.woocommerce-checkout .xoo-wsc-basket, .woocommerce-checkout .xoo-wsc-basket[style*="block"], .woocommerce-checkout .edit-link { display: none !important; }
.woocommerce-checkout .wcpay-express-checkout-wrapper::before { content: "Or pay with"; display: none; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sac-muted); text-align: center; margin: 0 0 10px; }
.woocommerce-checkout .wcpay-express-checkout-wrapper.has-buttons::before { display: block; }
.woocommerce-checkout #wcpay-express-checkout-button-separator, .woocommerce-checkout .wcpay-express-checkout-button-separator { display: none !important; }
/* Order summary */
.woocommerce-checkout .sac-checkout-summary { min-width: 0; }
.woocommerce-checkout .sac-summary-inner { background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-lg); box-shadow: var(--sac-shadow); padding: 22px 24px; }
.woocommerce-checkout #order_review_heading { font-size: 18px; font-weight: 600; margin: 0 0 6px; float: none; width: auto; }
.woocommerce-checkout #order_review { background: transparent; border: 0; border-radius: 0; float: none; width: auto; margin: 0; }
.woocommerce-checkout #order_review table.shop_table { border: 0; margin: 0; background: transparent; border-radius: 0; }
.woocommerce-checkout #order_review table.shop_table thead { display: none; }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: 12px 0; font-size: 15px; background: transparent; border: 0; border-bottom: 1px solid var(--sac-sep); vertical-align: middle; }
.woocommerce-checkout #order_review table.shop_table td.product-total, .woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout #order_review table.shop_table td.product-total { width: 1%; padding-left: 14px; }
.woocommerce-checkout #order_review table.shop_table tfoot th { font-weight: 500; color: var(--sac-muted); text-align: left; }
.woocommerce-checkout #order_review table.shop_table tr.order-total th, .woocommerce-checkout #order_review table.shop_table tr.order-total td { border-bottom: 0; font-size: 18px; font-weight: 700; color: var(--sac-text); padding-top: 16px; }
.woocommerce-checkout #order_review table.shop_table tr.order-total td small { font-size: 12px; font-weight: 500; color: var(--sac-muted); }
.woocommerce-checkout #order_review #shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-checkout #order_review #shipping_method li { margin: 0; padding: 0; text-indent: 0; }
.woocommerce-checkout #order_review #shipping_method label { margin: 0; font-weight: 500; display: inline; }
.woocommerce-checkout #order_review .woocommerce-shipping-destination { display: none; }
.woocommerce-checkout .sac-oi { display: flex; align-items: center; gap: 12px; }
.woocommerce-checkout .sac-oi__img { flex: 0 0 auto; }
.woocommerce-checkout .sac-oi__img img { display: block; width: auto; height: auto; max-width: 88px; max-height: 88px; object-fit: contain; background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: 8px; padding: 0; box-sizing: border-box; }
.woocommerce-checkout .sac-oi__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.woocommerce-checkout .sac-oi__name { font-weight: 600; line-height: 1.3; }
.woocommerce-checkout .sac-oi__qty { font-size: 13px; color: var(--sac-muted); }
.woocommerce-checkout #order_review table.shop_table td.product-name dl.variation { margin: 4px 0 0; font-size: 13px; }
/* Coupon field in the summary */
.woocommerce-checkout .sac-coupon { margin: 14px 0 0; }
.woocommerce-checkout .sac-coupon__toggle { background: none; border: 0; padding: 0; color: var(--sac-green-dark); font-weight: 600; font-size: 14px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-checkout .sac-coupon__toggle:hover { color: var(--sac-green-deep); }
.woocommerce-checkout .sac-coupon__form { display: flex; gap: 8px; margin: 10px 0 0; }
.woocommerce-checkout .sac-coupon__form[hidden] { display: none; }
.woocommerce-checkout .sac-coupon__form input { flex: 1 1 auto; min-width: 0; height: 42px; }
.woocommerce-checkout .sac-coupon__form .button { height: 42px; padding: 0 18px !important; font-size: 14px !important; margin: 0; background: var(--sac-soft) !important; color: var(--sac-green-dark) !important; }
.woocommerce-checkout .sac-coupon.processing { opacity: .6; pointer-events: none; }
.woocommerce-checkout .sac-coupon__msg { font-size: 13px; margin: 8px 0 0; color: var(--sac-muted); }
.woocommerce-checkout .sac-coupon__msg.is-error { color: var(--sac-danger); }
.woocommerce-checkout .sac-coupon__msg.is-ok { color: var(--sac-green-deep); }
.woocommerce-checkout .sac-coupon__msg:empty { display: none; }
/* Two columns from 900px; the summary is sticky */
.woocommerce-checkout .sac-summary-toggle { display: none; }
@media (min-width: 900px) {
  form.checkout.woocommerce-checkout { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: 24px 40px; align-items: start; }
  .woocommerce-checkout .sac-checkout-summary { position: sticky; top: 104px; }
  .admin-bar.woocommerce-checkout .sac-checkout-summary { top: 136px; }
}
/* Phones: the summary becomes a collapsible bar above the form */
@media (max-width: 899px) {
  .woocommerce-checkout .sac-checkout-summary { order: -1; }
  .woocommerce-checkout .sac-summary-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; background: var(--sac-card); border: 1px solid var(--sac-sep); border-radius: var(--sac-radius-md); font-size: 15px; font-weight: 600; color: var(--sac-text); cursor: pointer; text-align: left; box-shadow: var(--sac-shadow); }
  .woocommerce-checkout .sac-summary-toggle__label { color: var(--sac-green-dark); }
  .woocommerce-checkout .sac-checkout-summary:not(.is-open) .sac-summary-inner { display: none; }
  .woocommerce-checkout .sac-checkout-summary.is-open .sac-summary-inner { margin-top: 10px; }
  .woocommerce-checkout .sac-checkout-summary.is-open .sac-summary-toggle { border-color: var(--sac-green-dark); }
  .woocommerce-checkout .sac-checkout-section, .woocommerce-checkout .sac-summary-inner { padding: 16px 14px; border-radius: var(--sac-radius-md); }
  .woocommerce-checkout form.checkout.woocommerce-checkout, .woocommerce-checkout .sac-checkout-main { gap: 12px; }
  .woocommerce-checkout .sac-step-title, .woocommerce-checkout .woocommerce-billing-fields > h3 { font-size: 17px; margin: 0 0 12px; }
  .woocommerce-checkout .sac-step-title::before, .woocommerce-checkout .woocommerce-billing-fields > h3::before { width: 26px; height: 26px; font-size: 13px; }
  .woocommerce-checkout .sac-fields, .woocommerce-checkout .woocommerce-billing-fields__field-wrapper, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { gap: 10px; }
  .woocommerce-checkout .form-row label { font-size: 13px; margin: 0 0 3px; }
  .woocommerce-checkout .sac-oi { gap: 10px; }
  .woocommerce-checkout .sac-oi__img img { max-width: 60px; max-height: 60px; }
  .woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: 10px 0; font-size: 14px; }
  .woocommerce-checkout #order_review table.shop_table td.product-total { padding-left: 10px; }
  .woocommerce-checkout #payment ul.payment_methods li { padding: 10px 12px; font-size: 14px; }
  .woocommerce-checkout #payment ul.payment_methods > li:last-child { padding-bottom: 10px; }
}

/* ------------------------------------------------------------------
   About and Contact pages
   ------------------------------------------------------------------ */
.sac-about-cards .sac-card { padding: 28px; }
/* Storefront's block CSS strips the side padding from columns and adds percentage margins between
   them; a card that is a column gets its padding back and leaves the spacing to the block gap. */
.wp-block-columns .wp-block-column.sac-card { padding: 28px !important; margin: 0 !important; }
.sac-about-cards .sac-card .sac-card-photo { margin: 0 0 18px; }
.sac-about-cards .sac-card .sac-card-photo img { display: block; width: 100%; height: auto; background: var(--sac-inset); border-radius: 14px; padding: 14px; box-sizing: border-box; }
.sac-about-cards .sac-card h3 { margin: 6px 0 10px; font-family: var(--sac-serif); font-size: 24px; font-weight: 700; }
.sac-about-cards .sac-card .sac-eyebrow { margin: 0; }
.entry-content .sac-photo img { border-radius: var(--sac-radius-lg); box-shadow: var(--sac-shadow-lg); width: 100%; height: auto; }
.entry-content .sac-photo figcaption { font-size: 13px; color: var(--sac-muted); text-align: center; margin: 10px 0 0; }
.sac-contact-card p { margin: 0 0 14px; }
.sac-contact-card p:last-child { margin: 0; }
.sac-contact-card .sac-caption { margin: 18px 0 6px; }
.sac-form-card { padding: 28px; }
/* ------------------------------------------------------------------
   Herbz app page (/herbz/) and the home-page teaser
   ------------------------------------------------------------------ */
.sac-herbz-hero .sac-herbz-logo { margin: 0 0 18px; }
.sac-herbz-hero .sac-herbz-logo img { width: 220px; height: auto; display: block; }
.sac-herbz-hero .sac-chips { margin: 0 0 24px; }
.sac-herbz-hero .sac-chips .sac-chip { height: 36px; font-size: 14px; padding: 0 14px; background: var(--sac-soft); border-color: transparent; color: var(--sac-green-deep); font-weight: 600; }
.sac-herbz-hero .wp-block-buttons { margin: 0; }
.sac-phones { display: flex; gap: 18px; justify-content: center; align-items: flex-start; }
.sac-phones figure, .sac-phones .wp-block-image { margin: 0; flex: 0 1 220px; }
.sac-phones img { display: block; width: 100%; height: auto; border-radius: 28px; border: 6px solid #1F2A1C; box-shadow: var(--sac-shadow-lg); background: #fff; }
.sac-phones .wp-block-image:nth-child(2), .sac-phones .sac-phone:nth-child(2) { margin-top: 44px; }
/* Auto-rotating screenshots: each phone is a stack of images, one visible, crossfading (functions.php drives it) */
.sac-phone-carousel .sac-phone { position: relative; margin: 0; flex: 0 1 220px; aspect-ratio: 340 / 676; border-radius: 28px; border: 6px solid #1F2A1C; box-shadow: var(--sac-shadow-lg); background: #fff; overflow: hidden; }
.sac-phone-carousel .sac-phone img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; border-radius: 0; box-shadow: none; opacity: 0; transition: opacity .9s ease; }
.sac-phone-carousel .sac-phone img.is-active { opacity: 1; }
.sac-phone-carousel__dots { display: flex; justify-content: center; gap: 8px; margin: 18px 0 0; }
.sac-phone-carousel__dots:empty { display: none; }
.sac-phone-carousel__dot { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; margin: 0; background: var(--sac-sep); cursor: pointer; transition: background .3s, transform .3s; box-shadow: none; }
.sac-phone-carousel__dot.is-active { background: var(--sac-green-dark); transform: scale(1.25); }
@media (prefers-reduced-motion: reduce) { .sac-phone-carousel .sac-phone img { transition: none; } }
/* "What's inside" cards: a soft green tile with a line icon above the eyebrow */
.sac-card--icon::before { content: ""; display: block; width: 44px; height: 44px; border-radius: 12px; background-color: var(--sac-soft); background-repeat: no-repeat; background-position: center; background-size: 24px 24px; margin: 0 0 16px; }
.sac-icon-ailments::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23345030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); }
.sac-icon-herbs::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23345030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4C10 4 4 10 4 20c10 0 16-6 16-16Z'/%3E%3Cpath d='M4 20c4-5 8-9 12-12'/%3E%3C/svg%3E"); }
.sac-icon-favorites::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23345030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12v18l-6-4-6 4Z'/%3E%3C/svg%3E"); }
.sac-icon-products::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23345030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2h6v3H9Z'/%3E%3Cpath d='M9 5h6l2 5v10a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V10Z'/%3E%3Cpath d='M9 13h6'/%3E%3C/svg%3E"); }
.sac-herbz-cards .sac-card h3 { margin: 6px 0 10px; font-family: var(--sac-serif); font-size: 22px; font-weight: 700; }
.sac-herbz-cards .sac-card .sac-eyebrow { margin: 0; }
.sac-herbz-cards .sac-card p:last-child { margin-bottom: 0; }
.sac-herbz-pricing p:last-child { margin-bottom: 0; }
.sac-herbz-pricing .sac-eyebrow { margin: 0 0 8px; }
.sac-notify-card { margin: 0 auto; max-width: 680px; }
/* The Herbz page carries its own headline in the hero, so the page title is not repeated above it */
body:has(.sac-herbz-hero) .hentry .entry-header { display: none; }
.sac-notify-card .sac-eyebrow { margin: 0 0 6px; }
.sac-notify-card h3 { margin-bottom: 10px; }
.sac-notify-card .wp-block-jetpack-contact-form { margin-top: 18px; }
.sac-fineprint, .entry-content p.sac-fineprint { font-size: 13px; color: var(--sac-muted); line-height: 1.5; margin: 18px 0 0; }
.sac-herbz-teaser { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.sac-herbz-teaser .sac-app-icon { margin: 0; }
.sac-herbz-teaser .sac-app-icon img { display: block; width: 72px; height: 72px; border-radius: 18px; box-shadow: var(--sac-shadow); }
.sac-herbz-teaser h3 { margin: 0 0 4px; font-family: var(--sac-serif); font-size: 22px; font-weight: 700; }
.sac-herbz-teaser p { margin: 0; color: var(--sac-muted); }
.sac-herbz-teaser .wp-block-buttons { margin: 0; }
@media (max-width: 767px) {
  .sac-herbz-hero .sac-herbz-logo img { width: 180px; }
  .sac-phones { gap: 12px; }
  .sac-phones .wp-block-image:nth-child(2) { margin-top: 28px; }
  .sac-herbz-teaser { grid-template-columns: 56px minmax(0, 1fr); gap: 14px; }
  .sac-herbz-teaser .sac-app-icon img { width: 56px; height: 56px; border-radius: 14px; }
  .sac-herbz-teaser .wp-block-buttons { grid-column: 1 / -1; }
}
.sac-form-card h3 { margin: 0 0 18px; font-family: var(--sac-serif); font-size: 24px; font-weight: 700; }
.sac-form-card .wp-block-jetpack-contact-form, .sac-form-card .contact-form { margin: 0; }
.sac-form-card .grunion-field-wrap, .sac-form-card .contact-form > div { margin: 0 0 16px; }
.sac-form-card .grunion-field-label, .sac-form-card label { display: block; font-size: 14px; font-weight: 600; margin: 0 0 6px; color: var(--sac-text); }
.sac-form-card .grunion-field-label .grunion-label-required, .sac-form-card .required { color: var(--sac-muted); font-weight: 400; font-size: 13px; }
.sac-form-card input[type="text"], .sac-form-card input[type="email"], .sac-form-card input[type="tel"], .sac-form-card textarea { width: 100%; font-size: 16px; }
.sac-form-card textarea { min-height: 160px; }
.sac-form-card .wp-block-jetpack-button, .sac-form-card .contact-form .wp-block-button { margin: 4px 0 0; }
.sac-form-card .contact-form-submission { background: var(--sac-soft); border-radius: var(--sac-radius-md); padding: 20px; }
.sac-form-card .contact-form-submission h4 { margin: 0 0 8px; }
@media (max-width: 767px) { .sac-about-cards .sac-card, .sac-form-card { padding: 20px; } .wp-block-columns .wp-block-column.sac-card { padding: 20px !important; } }

/* ------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------ */
.site-footer {
  background: var(--sac-card) !important;
  color: var(--sac-muted);
  border-top: 1px solid var(--sac-sep);
  padding: 36px 0 0;
  margin-top: 24px;
}
@media (max-width: 767px) { .site-footer { padding-top: 28px; margin-top: 8px; } .site-footer .widget { margin-bottom: 20px; } }
.site-footer .footer-widgets { padding-bottom: 8px; border: 0; }
.site-footer .widget-title, .site-footer h3, .site-footer .wp-block-heading { font-family: var(--sac-sans); font-size: 15px; font-weight: 600; color: var(--sac-text); margin-bottom: 10px; }
.site-footer a { color: var(--sac-muted); }
.site-footer a:hover { color: var(--sac-text); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer ul li { margin: 0 0 8px; }
.site-footer .widget { font-size: 15px; margin-bottom: 24px; }
.site-footer .site-info { border-top: 1px solid var(--sac-sep); padding: 16px 0; font-size: 13px; color: var(--sac-muted); margin-top: 8px; }
.site-footer .sac-disclaimer { margin: 0 0 24px; }

@media (max-width: 767px) {
  body { font-size: 16px; }
  /* Two cards per row on phones, like the app */
  ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  ul.products::before, ul.products::after { display: none; content: none; } /* Storefront's clearfix would occupy a grid cell */
  ul.products li.product, ul.products li.product:nth-child(2n), ul.products li.product.first, ul.products li.product.last {
    width: auto !important; float: none !important; clear: none !important; margin: 0 !important;
  }
  ul.products li.product img, ul.products li.product .attachment-woocommerce_thumbnail { height: 170px; padding: 14px; }
  /* The set tile spans both columns: the 2 x 2 collage (functions.php's <picture>) on the left, text on the right */
  ul.products li.product.sac-wide { grid-column: 1 / -1; width: auto !important; grid-template-columns: minmax(0, 52%) minmax(0, 1fr); }
  ul.products li.product.sac-wide picture { grid-column: 1; grid-row: 1 / -1; align-self: stretch; min-height: 0; }
  ul.products li.product.sac-wide img, ul.products li.product.sac-wide picture img, ul.products li.product.sac-wide .attachment-woocommerce_thumbnail { grid-column: 1; grid-row: 1 / -1; height: 100%; min-height: 0; width: 100%; padding: 6px; object-fit: contain; }
  ul.products li.product .woocommerce-loop-product__title, ul.products li.product h2 { font-size: 15px; padding: 12px 14px 2px; }
  ul.products li.product .sac-subtitle { font-size: 13px; padding: 0 14px; }
  ul.products li.product .price { font-size: 16px; padding: 8px 14px 0; }
  ul.products li.product .button, ul.products li.product .add_to_cart_button { margin: 10px 14px 14px; height: 36px; font-size: 13px; padding: 0 14px !important; }
  ul.products li.product .added_to_cart { margin: 0 14px 14px; height: 36px; font-size: 13px; padding: 0 14px !important; }
  .single-product div.product .woocommerce-product-gallery { padding: 20px; }
}
