/* Homepage presentation only. Cart, checkout, admin and product detail styles live elsewhere. */
body.storefront {
  background: #f3f5f2;
  font-family: Arial, Helvetica, sans-serif;
  color: #203226;
  line-height: 1.35;
}

body.storefront .store-topline {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .35rem max(1rem, calc((100vw - 1320px) / 2));
  background: #175d3c;
  color: #fff;
  font-size: .69rem;
  font-weight: 600;
}
body.storefront .store-topline span { color: inherit; padding: 0; }
body.storefront .store-topline-left { display: flex; align-items: center; gap: .5rem; }
body.storefront .store-topline .store-topline-divider { opacity: .55; }
body.storefront .store-topline a { display: inline-flex; align-items: center; gap: .25rem; color: inherit; text-decoration: none; }
body.storefront .store-topline a:hover,
body.storefront .store-topline a:focus-visible { text-decoration: underline; }
body.storefront .store-facebook-icon { display: inline-grid; place-items: center; width: .85rem; height: .85rem; border-radius: 2px; background: #fff; color: #175d3c !important; font-family: Arial, Helvetica, sans-serif; font-size: .7rem; font-weight: 700; line-height: 1; }
body.storefront .store-header-shell { position: sticky; top: 0; z-index: 50; }
@media (min-width: 761px) {
  html { scroll-padding-top: 11rem; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 8.5rem; }
}
body.storefront .site-header {
  display: grid;
  grid-template-columns: minmax(260px, 310px) minmax(270px, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: .2rem 1.35rem;
  position: relative;
  padding: .65rem max(1rem, calc((100vw - 1320px) / 2)) .5rem;
  background: linear-gradient(100deg, #fff 0, #fff 330px, #edf5ed 345px, #a9cfb4 360px, #4c9568 375px, #1b6844 390px, #1b6844 100%);
  border: 0;
  backdrop-filter: none;
  isolation: isolate;
}
body.storefront .brand { grid-row: 1 / 3; display: block; min-width: 0; position: relative; }
body.storefront .brand .official-wordmark { display: block; width: min(100%, 286px); height: 88px; object-fit: contain; border: 0; border-radius: 0; background: transparent; mix-blend-mode: multiply; }
body.storefront .brand #companyLogo, body.storefront .brand .brand-text { display: none; }
body.storefront .brand-leaf { position: absolute; z-index: 1; display: block; width: 46px; height: 18px; border-radius: 100% 0 100% 0; background: #287d4e; opacity: .12; pointer-events: none; }
body.storefront .brand-leaf-one { left: 340px; top: 24px; transform: rotate(-32deg); }
body.storefront .brand-leaf-two { left: 365px; top: 61px; width: 30px; height: 12px; transform: rotate(34deg); opacity: .09; }
body.storefront .brand-leaf-three { left: 305px; top: 72px; width: 35px; height: 14px; transform: rotate(-48deg); opacity: .1; }
body.storefront .brand-leaf-four { left: 390px; top: 13px; width: 32px; height: 13px; transform: rotate(30deg); opacity: .08; }
body.storefront .store-search { grid-column: 2; grid-row: 1; position: relative; z-index: 2; flex-direction: row-reverse; justify-content: space-between; padding: 0 .55rem 0 .85rem; min-height: 39px; background: #fff; border: 2px solid #fff; border-radius: 2px; color: #fff; }
body.storefront .store-search:focus-within { border-color: #e2be58; box-shadow: none; }
body.storefront .store-search-icon { display: grid; place-items: center; flex: none; width: 42px; height: 31px; background: #d7a72d; color: #fff; font-size: 1.6rem; line-height: 1; }
body.storefront #productSearch { padding: .45rem 0; font-family: Arial, Helvetica, sans-serif; font-size: .83rem; }
body.storefront .store-search-suggestions { grid-column: 2; grid-row: 2; position: relative; z-index: 2; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding: .26rem 0; background: transparent; color: #f5d68b; font-size: .64rem; font-weight: 800; }
body.storefront .store-search-suggestions span { padding: 0 .65rem; }
body.storefront .nav { grid-column: 3; grid-row: 1 / 3; position: relative; z-index: 2; gap: .2rem; }
body.storefront .nav a { color: #fff; font-size: .72rem; padding: .4rem .32rem; }
body.storefront .nav a:hover { background: #ffffff1c; color: #fff; }
body.storefront .nav .install-app-btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 38px; padding: .45rem .7rem; border: 1px solid #e1bd5b; border-radius: 3px; background: linear-gradient(#e6b642, #d3a02e); color: #fff; box-shadow: none; font-size: .75rem; font-weight: 700; line-height: 1; }
body.storefront .nav .install-app-btn:hover { background: #c89526; color: #fff; }
body.storefront .nav .install-app-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body.storefront .nav .install-app-btn[hidden] { display: none; }
body.storefront .install-app-icon { font-size: 1.2rem; line-height: .8; }
body.storefront .cart-btn { padding: .45rem .65rem; border-radius: 2px; background: transparent; border: 1px solid #ffffff60; color: #fff; box-shadow: none; }

body.storefront .hero { width: auto; margin: 0; padding: 9px 1rem 0; background: #f3f5f2; }
body.storefront .market-hero-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 5px; width: min(100%, 1320px); height: 250px; margin: auto; }
body.storefront .market-hero-layout.no-promo-tiles { grid-template-columns: 1fr; }
body.storefront .market-hero-layout.no-main-banner { grid-template-columns: 1fr; }
body.storefront .hero[hidden], body.storefront .slider[hidden] { display: none; }
body.storefront .slider { min-width: 0; height: 250px; border-radius: 0; box-shadow: none; background: #205e3e; touch-action: pan-y; }
body.storefront .slider.is-loading { background: #fff; }
body.storefront .banner-loading { display: none; position: absolute; inset: 0; z-index: 4; place-items: center; background: #fff; }
body.storefront .slider.is-loading .banner-loading { display: grid; }
body.storefront .banner-spinner { width: 2rem; height: 2rem; border: 3px solid #d7e8dc; border-top-color: #19673e; border-radius: 50%; animation: banner-spin .8s linear infinite; }
@keyframes banner-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { body.storefront .banner-spinner { animation: none; border-top-color: #19673e; } }
body.storefront .slide { background: #205e3e; }
body.storefront .slide::after { display: none; }
body.storefront .slide-image { object-fit: cover; background: #205e3e; }
body.storefront .slider-nav { width: 1.9rem; height: 1.9rem; background: #ffffffd4; border-radius: 50%; font-size: 1.2rem; }
body.storefront #prev { left: .55rem; }
body.storefront #next { right: .55rem; }
body.storefront .hero-content { width: min(520px, 65%); left: 5%; }
body.storefront .hero-content h2 { font-family: Arial, Helvetica, sans-serif; font-size: clamp(1.5rem, 2.6vw, 2.7rem); font-weight: 900; letter-spacing: -.04em; }
body.storefront .hero-kicker { font-size: .64rem; }
body.storefront .hero-content > p:not(.hero-kicker):not(.hero-proof) { font-size: .8rem; }
body.storefront .hero-actions a { border-radius: 2px; }
body.storefront .market-side-banners { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 5px; min-width: 0; }
body.storefront .market-side-banners[hidden], body.storefront .market-side-banner[hidden] { display: none; }
body.storefront .market-side-loading { display: none; place-items: center; background: #fff; }
body.storefront .market-side-banners.is-loading { grid-template-rows: 1fr; }
body.storefront .market-side-banners.is-loading .market-side-loading { display: grid; }
body.storefront .market-side-banners.has-one-tile { grid-template-rows: 1fr; }
body.storefront .market-side-banner { display: block; position: relative; overflow: hidden; padding: 0; background: transparent; color: #fff; }
body.storefront .market-side-banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.storefront .market-side-banner img[hidden] { display: none; }
body.storefront .market-side-banner.has-image { padding: 0; }
body.storefront .market-side-banner.has-image .market-side-copy { display: none; }
body.storefront .market-side-copy { position: relative; display: flex; flex-direction: column; gap: .23rem; }
body.storefront .market-side-copy small { font-size: .62rem; font-weight: 800; letter-spacing: .1em; }
body.storefront .market-side-copy strong { font-size: 1.25rem; font-weight: 900; line-height: 1.05; }
body.storefront .market-side-copy > span { font-size: .72rem; }

body.storefront .market-shortcuts { display: flex; gap: 2rem; width: min(calc(100% - 2rem), 1320px); margin: 8px auto 0; padding: .9rem 1.15rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; background: #fff; }
body.storefront .market-shortcuts::-webkit-scrollbar, body.storefront .category-chips::-webkit-scrollbar { display: none; }
body.storefront .market-shortcuts a { flex: none; color: #175d3c; font-size: .85rem; font-weight: 600; white-space: nowrap; }
body.storefront .market-shortcuts a:hover { color: #197247; }
body.storefront .market-categories { width: min(calc(100% - 2rem), 1320px); margin: 14px auto 0; background: #fff; }
body.storefront .market-categories h2, body.storefront .section-header h2 { margin: 0; padding: 1.05rem 1.15rem; color: #566b5a; font-family: Arial, Helvetica, sans-serif; font-size: .95rem; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; }
body.storefront .category-chips { display: flex; gap: 1.5rem; padding: 0 1.15rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; border-top: 1px solid #e8ece7; }
body.storefront .category-chip { display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 48px; padding: .65rem 0 .5rem; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: #fff; color: #175d3c; font-size: .79rem; font-weight: 500; white-space: nowrap; cursor: pointer; }
body.storefront .category-chip[aria-pressed="true"] { border-bottom-color: #19673e; background: #fff; color: #145b38; font-weight: 800; box-shadow: none; }
body.storefront .category-chip:hover { background: #fff; color: #0e492e; }
body.storefront .category-chip:focus-visible { outline: 2px solid #d7a72d; outline-offset: -2px; }

body.storefront .products-section { max-width: 1320px; margin: 14px auto 0; padding: 0 0 2rem; background: #fff; }
body.storefront .section-header { margin: 0; }
body.storefront .products-count { margin: 0; min-height: 0; padding: 0 1.15rem .55rem; font-size: .7rem; }
body.storefront .catalog-status { display: flex; align-items: center; justify-content: center; gap: .65rem; min-height: 4rem; padding: .75rem; color: #205c3d; font-size: .85rem; }
body.storefront .catalog-status[hidden], body.storefront .catalog-status button[hidden], body.storefront .catalog-spinner[hidden] { display: none; }
body.storefront .catalog-spinner { width: 1.1rem; height: 1.1rem; border: 2px solid #cce2d2; border-top-color: #19673e; border-radius: 50%; animation: catalog-spin .8s linear infinite; }
body.storefront .catalog-status button { border: 1px solid #19673e; background: #fff; color: #19673e; padding: .35rem .7rem; cursor: pointer; }
@keyframes catalog-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { body.storefront .catalog-spinner { animation: none; border-top-color: #19673e; } }
body.storefront .products-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 8px; background: #eff0ee; }
body.storefront .product-card { min-height: 370px; grid-template-rows: auto 1fr auto; border: 1px solid #d8ddda; border-radius: 18px; background: #fff; box-shadow: none; }
body.storefront .product-card:hover,
body.storefront .product-card:focus-within { transform: translateY(-2px); border-color: #267c4b; box-shadow: 0 8px 20px rgba(20, 84, 51, .16); }
body.storefront .product-card:active { transform: translateY(0); box-shadow: 0 0 0 2px rgba(38, 124, 75, .28), 0 4px 12px rgba(20, 84, 51, .14); }
body.storefront .product-card img { height: 250px; padding: .4rem; background: #f9faf8; }
body.storefront .product-card .product-body { padding: .45rem .55rem 0; }
body.storefront .product-card .product-body h4 { min-height: 2.5em; margin: 0; font-family: Arial, Helvetica, sans-serif; font-size: .75rem; font-weight: 600; line-height: 1.3; }
body.storefront .product-card .product-footer { gap: .4rem; padding: .35rem .55rem .6rem; }
body.storefront .product-card .product-footer > :first-child { font-family: Arial, Helvetica, sans-serif; font-size: 1rem; }
body.storefront .product-card .price { color: #147544; font-size: 1rem; font-weight: 900; }
body.storefront .product-card .product-actions { gap: .3rem; }
body.storefront .product-card .product-actions .btn { min-height: 38px; padding: .45rem .3rem; border-radius: 10px; font-size: .75rem; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
body.storefront .product-card .product-actions .view-details { border: 1px solid #83ae91; background: #fff; color: #155c3b; }
body.storefront .product-card .product-actions .view-details:hover { border-color: #267c4b; background: #edf7f0; box-shadow: 0 3px 9px rgba(20, 84, 51, .1); }
body.storefront .product-card .product-actions .add-to-cart { border: 1px solid #145a39; background: #17613e; color: #fff; box-shadow: 0 3px 8px rgba(20, 84, 51, .2); }
body.storefront .product-card .product-actions .add-to-cart:hover:not(:disabled) { background: #104c30; box-shadow: 0 5px 12px rgba(20, 84, 51, .24); }
body.storefront .product-card .product-actions .add-to-cart:disabled { box-shadow: none; }
body.storefront .product-card .product-actions .btn:focus-visible { outline: 2px solid #d6a431; outline-offset: 2px; }
body.storefront .product-card .status { padding: .2rem .35rem; border-radius: 2px; font-size: .55rem; }
body.storefront .mobile-store-nav { display: none; }

@media (max-width: 1100px) {
  body.storefront .site-header { grid-template-columns: minmax(220px, 260px) minmax(180px, 1fr) auto; gap: .2rem .7rem; background: linear-gradient(100deg, #fff 0, #fff 220px, #edf5ed 240px, #90c59e 260px, #1b6844 285px, #1b6844 100%); }
  body.storefront .brand .official-wordmark { width: min(100%, 250px); height: 78px; }
  body.storefront .brand-leaf-one { left: 250px; }
  body.storefront .brand-leaf-two { left: 270px; }
  body.storefront .brand-leaf-three { left: 235px; }
  body.storefront .brand-leaf-four { left: 290px; }
  body.storefront .nav a[href="#home"], body.storefront .nav a[href="#about"] { display: none; }
  body.storefront .products-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.storefront { padding-bottom: 60px; }
  body.storefront .store-topline { display: none; }
  body.storefront .site-header { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: .5rem; row-gap: 0; padding: .35rem .7rem .5rem; background: #1b6844; }
  body.storefront .site-header::before { content: ""; position: absolute; z-index: 0; inset: 0 0 auto; height: 72px; background: linear-gradient(104deg, #fff 0%, #fff 47%, #edf5ee 58%, #9bc9a8 74%, #1b6844 92%); }
  body.storefront .brand { grid-column: 1; grid-row: 1; }
  body.storefront .brand .official-wordmark { width: min(224px, calc(100vw - 142px)); height: 66px; }
  body.storefront .brand-leaf-one { left: min(62vw, 230px); top: 18px; width: 30px; height: 12px; }
  body.storefront .brand-leaf-two { left: min(68vw, 252px); top: 51px; width: 23px; height: 10px; }
  body.storefront .brand-leaf-three { left: min(55vw, 205px); top: 54px; width: 22px; height: 9px; }
  body.storefront .brand-leaf-four { left: min(76vw, 280px); top: 12px; width: 21px; height: 8px; }
  body.storefront .nav { grid-column: 2; grid-row: 1; align-self: center; }
  body.storefront .nav a { display: none; }
  body.storefront .nav .install-app-btn { min-height: 37px; padding: .35rem .48rem; font-size: .72rem; }
  body.storefront .nav .install-app-label { font-size: 0; }
  body.storefront .nav .install-app-label::after { content: "App"; font-size: .72rem; }
  body.storefront .cart-btn { display: flex; align-items: center; justify-content: center; min-width: 43px; height: 37px; padding: .25rem .35rem; font-size: .78rem; }
  body.storefront .store-search { grid-column: 1 / 3; grid-row: 2; min-height: 37px; margin-top: .5rem; padding: 0 .2rem 0 .65rem; border: 1px solid #145937; }
  body.storefront #productSearch { padding: .4rem 0; font-size: .82rem; }
  body.storefront .store-search-icon { height: 29px; width: 39px; }
  body.storefront .store-search-suggestions { display: none; }
  body.storefront .hero { padding: 7px .45rem 0; }
  body.storefront .market-hero-layout { display: block; height: auto; }
  body.storefront .slider.has-slides { height: auto; aspect-ratio: var(--mobile-banner-ratio, 3 / 2); background: transparent; }
  body.storefront .slider.has-slides .slide { background: transparent; }
  body.storefront .slider.has-slides .slide-image { object-fit: contain; background: transparent; }
  body.storefront .slider:not(.has-slides) { height: clamp(145px, 39vw, 205px); }
  body.storefront .hero-content { width: 75%; left: 1rem; }
  body.storefront .hero-content h2 { font-size: clamp(1.25rem, 5.5vw, 1.8rem); }
  body.storefront .hero-content > p:not(.hero-kicker):not(.hero-proof), body.storefront .hero-proof, body.storefront .hero-secondary { display: none; }
  body.storefront .market-side-banners { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 75px; margin-top: 5px; }
  body.storefront .market-side-banners.is-loading { min-height: 75px; }
  body.storefront .market-side-banners.has-one-tile { grid-template-columns: 1fr; }
  body.storefront .market-side-banner { padding: .55rem .65rem; }
  body.storefront .market-side-copy small { font-size: .48rem; }
  body.storefront .market-side-copy strong { font-size: .83rem; }
  body.storefront .market-side-copy > span { display: none; }
  body.storefront .market-shortcuts { gap: 1.2rem; width: calc(100% - .9rem); margin-top: 7px; padding: .75rem .7rem; }
  body.storefront .market-shortcuts a { font-size: .76rem; }
  body.storefront .market-categories { width: calc(100% - .9rem); margin-top: 8px; }
  body.storefront .market-categories h2, body.storefront .section-header h2 { padding: .75rem .7rem; font-size: .78rem; }
  body.storefront .category-chips { gap: 1.2rem; padding: 0 .7rem; }
  body.storefront .category-chip { min-height: 43px; padding: .55rem 0 .4rem; font-size: .73rem; }
  body.storefront .products-section { margin-top: 8px; }
  body.storefront .products-count { padding: 0 .7rem .45rem; }
  body.storefront .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  body.storefront .product-card { min-height: 0; }
  body.storefront .product-card img { height: clamp(145px, 42vw, 195px); }
  body.storefront .product-card .product-body h4 { font-size: .75rem; }
  body.storefront .product-card .product-footer > :first-child, body.storefront .product-card .price { font-size: .91rem; }
  body.storefront .product-card .product-actions .btn { min-height: 36px; font-size: .69rem; }
  body.storefront .mobile-store-nav { position: fixed; z-index: 45; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(4, 1fr); padding: .25rem .2rem max(.25rem, env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #dfe8df; }
  body.storefront .mobile-store-nav a, body.storefront .mobile-store-nav button { display: flex; align-items: center; justify-content: center; gap: .25rem; min-height: 42px; border: 0; background: transparent; color: #175d3c; font-size: .7rem; font-weight: 700; text-align: center; }
  body.storefront .cart-panel { bottom: 60px; max-height: calc(100dvh - 68px); }
}
@media (max-width: 360px) {
  body.storefront .market-shortcuts a { font-size: .73rem; }
}

/* Full-page cart view keeps the existing cart renderer and checkout flow. */
body.storefront.cart-view { min-height: 100vh; background: #f3f5f2; }
body.storefront.cart-view > .store-header-shell,
body.storefront.cart-view > main,
body.storefront.cart-view > .mobile-store-nav { display: none; }
body.storefront.cart-view .lab-ai-launcher,
body.storefront.cart-view #lab-ai-panel { display: none !important; }
body.storefront.cart-view #cartPanel {
  position: static;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  align-items: start;
  column-gap: clamp(1.5rem, 4vw, 3rem);
  row-gap: 1.25rem;
  width: min(1120px, calc(100% - 2rem));
  max-width: none;
  max-height: none;
  min-height: calc(100vh - 3rem);
  margin: 1.5rem auto;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  overflow: visible;
  border: 1px solid #dce6dc;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(20, 54, 42, .06);
}
body.storefront.cart-view #cartPanel.hidden { display: none; }
body.storefront.cart-view .cart-panel-header { grid-column: 1 / -1; flex-direction: row-reverse; border-bottom: 1px solid #e4ebe4; padding-bottom: 1rem; margin: 0; }
body.storefront.cart-view .cart-panel-header > div { margin-right: auto; }
body.storefront.cart-view .cart-page-eyebrow { color: #61816a; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
body.storefront.cart-view #cartPageTitle { margin: .15rem 0 0; color: #174e35; font-size: clamp(1.55rem, 3vw, 2.1rem); }
body.storefront.cart-view .cart-close-btn { width: auto; height: auto; min-height: 40px; gap: .4rem; padding: .45rem .8rem; border-radius: 8px; font-size: .86rem; font-weight: 700; white-space: nowrap; }
body.storefront.cart-view #cartItems { min-width: 0; overflow: visible; }
body.storefront.cart-view .cart-panel .cart-item { grid-template-columns: 82px minmax(0, 1fr) auto; }
body.storefront.cart-view .cart-panel .cart-item-image { width: 82px; height: 82px; }
body.storefront.cart-view .cart-item-name { white-space: normal; font-size: .95rem; }
body.storefront.cart-view .cart-summary { position: sticky; top: 1.5rem; padding: 1.25rem; border: 1px solid #e2e9e2; border-radius: 12px; background: #fafcf9; }
@media (max-width: 900px) {
  body.storefront.cart-view #cartPanel { grid-template-columns: minmax(0, 1fr); }
  body.storefront.cart-view .cart-summary { position: static; }
}
@media (max-width: 700px) {
  body.storefront.cart-view #cartPanel { display: block; width: 100%; min-height: 100vh; margin: 0; padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom)); border: 0; border-radius: 0; }
  body.storefront.cart-view .cart-panel-header { display: flex; margin-bottom: 1rem; }
  body.storefront.cart-view .cart-close-btn { font-size: .78rem; }
  body.storefront.cart-view .cart-panel .cart-item { grid-template-columns: 64px minmax(0, 1fr); gap: .65rem; }
  body.storefront.cart-view .cart-panel .cart-item-image { width: 64px; height: 64px; }
  body.storefront.cart-view .cart-item-actions { grid-column: 2; min-height: 0; flex-direction: row; align-items: center; justify-content: space-between; }
  body.storefront.cart-view .cart-summary { position: static; margin-top: 1.25rem; }
}
