:root {
  --cab-ink: #1e1d19;
  --cab-muted: #5c5a4e;
  --cab-line: #d8d3c4;
  --cab-bg: #eeebdc;
  --cab-paper: #f7f4ea;
  --cab-green: #263411;
  --cab-green-2: #3d401d;
  --cab-olive: #616630;
  --cab-gold: #f8bf00;
  --cab-khaki: #dcd7c1;
  --cab-red: #8b0f0a;
  --cab-max: 1320px;
  --cab-sans: "Source Sans 3", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --cab-display: "Oswald", "Impact", sans-serif;
  --cab-icon: 40px;
  --cab-field: 48px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; }
body.cab-site {
  font-family: var(--cab-sans);
  color: var(--cab-ink);
  background: var(--cab-paper);
}
body.cab-drawer-open { overflow: hidden; }
body.cab-site .header-wrapper,
body.cab-site #header,
body.cab-site .header-main,
body.cab-site .header-bottom,
body.cab-site .footer-wrapper,
body.cab-site .absolute-footer,
body.cab-site .mobile-sidebar,
body.cab-site .mfp-hide { display: none !important; }
.cab-wrap { width: min(100% - 40px, var(--cab-max)); margin-inline: auto; max-width: 100%; }

.cab-topbar {
  background: var(--cab-gold);
  color: var(--cab-green);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.cab-topbar .cab-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  text-align: center;
}
.cab-topbar p { margin: 0; }

.cab-header {
  background: var(--cab-green);
  color: #f4ead0;
  position: sticky;
  top: 0;
  z-index: 50;
}
.cab-header__row {
  display: flex;
  align-items: center;
  min-height: 76px;
  gap: 16px;
  min-width: 0;
}
.cab-icon-btn {
  width: var(--cab-icon);
  height: var(--cab-icon);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #f4ead0;
  line-height: 0;
  appearance: none;
  -webkit-appearance: none;
  text-decoration: none;
  position: relative;
  cursor: pointer;
  flex: 0 0 var(--cab-icon);
  font-size: 0;
  box-shadow: none;
  border-radius: 0;
}
.cab-icon-btn svg { width: 22px; height: 22px; display: block; }
.cab-burger { display: none; }
.cab-logo {
  display: flex;
  align-items: center;
  height: 52px;
  flex: 0 0 auto;
  text-decoration: none;
  color: #f8bf00;
}
.cab-logo img,
.cab-logo svg {
  height: 48px;
  width: auto;
  max-width: 240px;
  display: block;
  object-fit: contain;
}
.cab-logo-text {
  font-family: var(--cab-display);
  font-size: 26px;
  letter-spacing: .18em;
  font-weight: 700;
}
.cab-nav { flex: 1 1 auto; min-width: 0; }
.cab-nav ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.cab-nav > ul > li { position: relative; }
.cab-nav a {
  display: block;
  padding: 10px 8px;
  color: #f4ead0;
  text-decoration: none;
  font-family: var(--cab-display);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}
.cab-nav li.is-sale > a { color: #f8bf00; }
.cab-mega {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 240px;
  background: #fff;
  color: var(--cab-ink);
  padding: 16px 0;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  z-index: 20;
}
.cab-nav li.has-mega:hover > .cab-mega,
.cab-nav li.has-mega:focus-within > .cab-mega { display: grid; }
.cab-mega a {
  color: var(--cab-ink);
  font-family: var(--cab-sans);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 500;
  padding: 8px 22px;
  white-space: normal;
}
.cab-mega a:hover { background: var(--cab-bg); }
.cab-mega--wide {
  min-width: min(640px, 78vw);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 16px 8px;
}
.cab-nav li.has-mega:hover > .cab-mega--wide,
.cab-nav li.has-mega:focus-within > .cab-mega--wide { display: grid; }
.cab-tools { display: flex; align-items: center; margin-left: auto; gap: 0; flex: 0 0 auto; }
.cab-cart-count {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 15px;
  height: 15px;
  border-radius: 99px;
  background: var(--cab-gold);
  color: var(--cab-green);
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0 3px;
}
.cab-search-overlay {
  background: var(--cab-green);
  border-top: 1px solid rgba(244,234,208,.18);
  padding: 14px 0 16px;
}
.cab-search-panel {
  display: flex;
  align-items: stretch;
  gap: 8px;
  min-height: var(--cab-field);
}
.cab-search-field {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  height: var(--cab-field);
  background: #fff;
  color: var(--cab-ink);
  padding: 0 12px 0 14px;
  border: 0;
  box-shadow: none;
  overflow: hidden;
}
.cab-search-field svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--cab-olive);
}
.cab-search-field input {
  flex: 1 1 auto;
  height: 100%;
  margin: 0;
  border: 0 !important;
  padding: 0 10px;
  font-size: 16px;
  font-family: inherit;
  background: transparent !important;
  color: var(--cab-ink);
  min-width: 0;
  outline: none !important;
  box-shadow: none !important;
  border-radius: 0;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.cab-search-panel .cab-search-go {
  height: var(--cab-field);
  min-width: 120px;
  width: auto;
  padding: 0 22px;
  border: 0;
  background: var(--cab-gold);
  color: var(--cab-green);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--cab-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  flex: 0 0 auto;
}
.cab-search-panel .cab-search-close {
  height: var(--cab-field);
  width: var(--cab-field);
  flex: 0 0 var(--cab-field);
  border: 0;
  background: transparent;
  color: #f4ead0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cab-drawer-mask {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 80;
}
.cab-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(90vw, 360px);
  background: #fff;
  z-index: 90;
  overflow: hidden;
  color: var(--cab-ink);
  display: flex;
  flex-direction: column;
  box-shadow: 8px 0 28px rgba(0,0,0,.22);
}
.cab-drawer__bar {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 60px;
  padding: 0 12px 0 4px;
  background: var(--cab-green);
  color: #f4ead0;
  flex: 0 0 auto;
}
.cab-drawer__bar .cab-icon-btn { color: #f4ead0; }
.cab-drawer__brand {
  display: flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
  color: #f8bf00;
}
.cab-drawer__brand img {
  height: 32px;
  width: auto;
  max-width: 210px;
  display: block;
  object-fit: contain;
}
.cab-drawer__search {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin: 14px 14px 10px;
  flex: 0 0 auto;
}
.cab-drawer__field {
  display: flex;
  align-items: center;
  height: var(--cab-field);
  background: #f7f4ea;
  padding: 0 12px 0 14px;
  overflow: hidden;
}
.cab-drawer__field svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--cab-olive);
}
.cab-drawer__search input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  margin: 0;
  border: 0 !important;
  padding: 0 10px;
  font-size: 16px;
  font-family: inherit;
  outline: none !important;
  box-shadow: none !important;
  border-radius: 0;
  background: transparent !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.cab-drawer__go {
  height: var(--cab-field);
  width: 100%;
  min-width: 0;
  border: 0;
  background: var(--cab-gold);
  color: var(--cab-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-family: var(--cab-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cab-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0 0 12px;
  flex: 1 1 auto;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.cab-drawer__list a {
  color: var(--cab-ink);
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
}
.cab-drawer__row {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  min-height: 52px;
  padding: 0 0 0 18px;
  gap: 0;
  border-bottom: 1px solid #eeeae0;
}
.cab-drawer__row > a {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  padding: 14px 12px 14px 0;
}
.cab-drawer li.is-sale > .cab-drawer__row > a { color: #8b0f0a; }
.cab-drawer__toggle {
  width: 52px;
  min-height: 52px;
  flex: 0 0 52px;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid #eeeae0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
  color: var(--cab-olive);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.cab-drawer__toggle svg {
  display: block;
  width: 16px;
  height: 16px;
  transition: transform .2s ease;
}
.cab-drawer li.is-open > .cab-drawer__row { background: #fff; }
.cab-drawer li.is-open > .cab-drawer__row .cab-drawer__toggle {
  background: transparent !important;
  color: var(--cab-green);
}
.cab-drawer li.is-open > .cab-drawer__row .cab-drawer__toggle svg { transform: rotate(180deg); }
.cab-drawer__sub {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0 0 6px;
  background: #fff;
  border-bottom: 1px solid #eeeae0;
}
.cab-drawer li.is-open > .cab-drawer__sub { display: block; }
.cab-drawer__sub a {
  font-weight: 500;
  display: block;
  padding: 12px 18px 12px 28px;
  font-size: 14px;
  color: var(--cab-muted);
}
.cab-drawer__sub a:hover { color: var(--cab-green); background: #f7f4ea; }
.cab-drawer__foot {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--cab-line);
  flex: 0 0 auto;
  background: #f7f4ea;
}
.cab-drawer__foot a {
  flex: 1 1 50%;
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  color: var(--cab-green);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  font-family: var(--cab-display);
}
.cab-drawer__foot a + a { border-left: 1px solid var(--cab-line); }
.cab-drawer__foot svg { width: 18px; height: 18px; display: block; }

.cab-hero { position: relative; min-height: 420px; background: var(--cab-green); overflow: hidden; }
.cab-hero img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  display: block;
}
.cab-hero__copy {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 48px 8vw;
  color: #fff;
  background: linear-gradient(90deg, rgba(30,29,25,.72) 0%, rgba(30,29,25,.15) 70%);
  max-width: 100%;
}
.cab-hero__copy p {
  margin: 0 0 8px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 700;
}
.cab-hero__copy h1 {
  font-family: var(--cab-display);
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.15;
  margin: 0 0 20px;
  max-width: 16ch;
  font-weight: 600;
  color: #fff;
}
.cab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  background: var(--cab-gold);
  color: var(--cab-green);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 13px;
  border: 0;
  cursor: pointer;
}
.cab-btn.ghost {
  background: transparent;
  color: var(--cab-green);
  border: 2px solid var(--cab-green);
}
.cab-section { padding: 48px 0 24px; }
.cab-section h2,
.cab-cats h2 {
  font-family: var(--cab-display);
  font-size: 28px;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin: 0 0 20px;
  color: var(--cab-green);
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.cab-section-cta { text-align: center; margin: 24px 0 0; }
.cab-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  max-width: 100%;
}
.cab-grid > * { min-width: 0; max-width: 100%; }
.cab-card {
  background: #fff;
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cab-card a { color: inherit; text-decoration: none; display: block; max-width: 100%; }
.cab-card > a:first-child {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.cab-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  background: #fff;
  display: block;
  padding: 8px;
}
.cab-card h3 {
  font-size: 14px;
  font-weight: 600;
  margin: 6px 12px 4px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: calc(100% - 24px);
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cab-card__brand {
  margin: 8px 12px 0;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cab-olive);
  min-height: 1.15em;
}
.cab-card .price {
  margin: auto 12px 10px;
  font-weight: 700;
  color: var(--cab-green);
  max-width: calc(100% - 24px);
  min-height: 1.4em;
}
.cab-card__atc {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: calc(100% - 24px);
  min-height: 44px;
  height: 44px;
  line-height: 1 !important;
  margin: 0 12px 14px;
  padding: 0 12px !important;
  background: var(--cab-green);
  color: #fff !important;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
}
.cab-card__atc:before,
.cab-card__atc:after {
  display: none !important;
  content: none !important;
  margin: 0 !important;
  width: 0 !important;
}
.cab-card__atc:hover { background: var(--cab-olive); color: #fff !important; }
.cab-card del { color: var(--cab-muted); font-weight: 500; margin-right: 6px; }
.cab-card ins { text-decoration: none; color: var(--cab-red); }

.cab-cats { padding: 40px 0 8px; }
.cab-cats__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.cab-cats__grid a {
  position: relative;
  display: block;
  color: #fff;
  text-decoration: none;
  min-height: 180px;
  overflow: hidden;
}
.cab-cats__grid img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.cab-cats__grid span {
  position: absolute;
  left: 16px;
  bottom: 14px;
  font-family: var(--cab-display);
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: 18px;
  text-shadow: 0 1px 8px rgba(0,0,0,.5);
}

.cab-newsletter {
  background: var(--cab-green);
  color: #f4ead0;
  padding: 48px 0;
  text-align: center;
  margin-top: 24px;
}
.cab-newsletter h2 {
  font-family: var(--cab-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 8px;
  color: #f4ead0;
}
.cab-news {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  max-width: 520px;
  width: 100%;
  height: auto;
}
.cab-news input,
.cab-news button {
  width: 100%;
  flex: 0 0 auto;
  height: var(--cab-field);
  min-width: 0;
  box-sizing: border-box;
}
.cab-news input {
  border: 0;
  padding: 0 14px !important;
  font-size: 16px;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  box-shadow: none;
  height: var(--cab-field) !important;
  min-height: var(--cab-field);
  line-height: var(--cab-field);
}
.cab-news button {
  padding: 0;
  border: 0;
  background: var(--cab-gold);
  color: var(--cab-green);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  font-family: var(--cab-display);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1;
}
.cab-news--lg { margin: 18px auto 0; max-width: 520px; }

.cab-footer { background: #1e1d19; color: #dcd7c1; padding: 48px 0 0; }
.cab-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 32px;
  padding-bottom: 36px;
}
.cab-footer h2 {
  font-family: var(--cab-display);
  font-size: 15px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #f4ead0;
  margin: 0 0 14px;
}
.cab-footer ul { list-style: none; margin: 0; padding: 0; }
.cab-footer li { margin: 0 0 8px; }
.cab-footer a { color: #dcd7c1; text-decoration: none; }
.cab-footer a:hover { color: #fff; }
.cab-footer__contact,
.cab-social { display: none; }
.cab-footer__copy {
  border-top: 1px solid #3a3830;
  padding: 16px 0;
  font-size: 13px;
  color: #9a9584;
}

.cab-pdp__main {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 40px;
  padding: 28px 0 12px;
  align-items: start;
}
.cab-pdp__gallery img { width: 100%; height: auto; object-fit: contain; background: #fff; }
.cab-pdp .product-info, .cab-pdp .product-gallery { width: 100%; }
.cab-pdp .product_title {
  font-family: var(--cab-display);
  font-size: 28px;
  letter-spacing: .03em;
  margin: 0 0 10px;
  color: var(--cab-green);
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.cab-pdp .price { font-size: 22px; font-weight: 700; color: var(--cab-green); }
.cab-pdp form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
}
.cab-pdp .quantity { width: 110px; flex: 0 0 110px; }
.cab-pdp .single_add_to_cart_button,
.cab-pdp .cab-buy-now {
  min-height: 48px;
  padding: 0 22px;
  flex: 1 1 160px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
}
.cab-pdp .single_add_to_cart_button { background: var(--cab-green); color: #fff; }
.cab-pdp .cab-buy-now { background: var(--cab-gold); color: var(--cab-green); }
.cab-pdp-desc {
  max-width: 760px;
  margin: 48px auto;
  padding: 0 28px;
}
.cab-pdp-desc h2 {
  font-family: var(--cab-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 20px;
  color: var(--cab-green);
}
.cab-pdp-desc__body { font-size: 16px; line-height: 1.65; }
.cab-related { padding: 12px 0 48px; }
.cab-related h2 {
  font-family: var(--cab-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cab-green);
}

body.cab-site.archive .shop-page-title,
body.cab-site .shop-page-title,
body.cab-site .category-page-title,
body.cab-site .page-title.shop-page-title {
  background: var(--cab-green) !important;
  color: #f8bf00 !important;
}
body.cab-site .shop-page-title a,
body.cab-site .shop-page-title .is-large,
body.cab-site .shop-page-title .page-title-inner,
body.cab-site .shop-page-title h1,
body.cab-site .shop-page-title .woocommerce-result-count,
body.cab-site .shop-page-title .woocommerce-breadcrumb,
body.cab-site .shop-page-title .breadcrumbs,
body.cab-site .shop-page-title .breadcrumbs a,
body.cab-site .shop-page-title .woocommerce-breadcrumb a,
body.cab-site .shop-page-title .divider,
body.cab-site .shop-page-title .filter-button,
body.cab-site .shop-page-title .filter-button strong,
body.cab-site .category-page-title .woocommerce-breadcrumb,
body.cab-site .category-page-title .breadcrumbs,
body.cab-site .category-page-title .breadcrumbs a,
body.cab-site .category-page-title .woocommerce-breadcrumb a {
  color: #f8bf00 !important;
  opacity: 1 !important;
}
body.cab-site .shop-page-title .woocommerce-ordering select,
body.cab-site .shop-page-title .orderby {
  color: var(--cab-ink) !important;
  background: #fff;
}
body.cab-site .shop-page-title .breadcrumbs a:hover,
body.cab-site .shop-page-title .woocommerce-breadcrumb a:hover {
  color: #fff !important;
}
body.cab-site ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
body.cab-site ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  min-width: 0;
  display: flex;
  background: #fff;
}
body.cab-site ul.products li.product .col-inner,
body.cab-site ul.products li.product .box,
body.cab-site ul.products li.product .box-text {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;
}
body.cab-site ul.products li.product .box-text { padding: 10px 12px 12px; }
body.cab-site ul.products li.product .product-title,
body.cab-site ul.products li.product .woocommerce-loop-product__title {
  font-size: 15px;
  line-height: 1.35;
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.cab-site ul.products li.product .price { margin-top: auto; min-height: 1.4em; }
body.cab-site ul.products li.product .add_to_cart_button,
body.cab-site ul.products li.product .product_type_simple,
body.cab-site ul.products li.product .ajax_add_to_cart {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 100%;
  margin: 10px 0 0 !important;
  min-height: 44px;
  height: 44px;
  padding: 0 12px !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  background: var(--cab-green) !important;
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 0;
  border: 0 !important;
}
body.cab-site ul.products li.product img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: #fff;
}
body.cab-site .products.row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
}
body.cab-site .products.row .product-small.col {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  background: #fff;
}
body.cab-site .products.row .product-small .col-inner,
body.cab-site .products.row .product-small .box,
body.cab-site .products.row .product-small .box-text {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
}
body.cab-site .products.row .product-small .box-image {
  position: relative !important;
  width: 100% !important;
  height: 0 !important;
  padding-top: 100% !important;
  background: #fff;
  overflow: hidden;
}
body.cab-site .products.row .product-small .box-image a,
body.cab-site .products.row .product-small .box-image .image-none,
body.cab-site .products.row .product-small .box-image .image-fade {
  position: absolute !important;
  inset: 0 !important;
  display: block;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.cab-site .products.row .product-small .star-rating,
body.cab-site .products.row .product-small .quick-view,
body.cab-site .products.row .product-small .wishlist-icon,
body.cab-site .products.row .product-small .badge-container {
  display: none !important;
}
body.cab-site .products.row .product-small .box-text { padding: 10px 12px 12px; }
body.cab-site .products.row .product-small .product-cat {
  min-height: 1.15em;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cab-olive);
}
body.cab-site .products.row .product-small .name.product-title,
body.cab-site .products.row .product-small .woocommerce-loop-product__title {
  font-size: 14px;
  line-height: 1.35;
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.cab-site .products.row .product-small .price-wrapper {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.cab-site .products.row .product-small .price {
  min-height: 1.4em;
  font-weight: 700;
  color: var(--cab-green);
}
body.cab-site .products.row .product-small .add_to_cart_button,
body.cab-site .products.row .product-small .ajax_add_to_cart,
body.cab-site .products.row .product-small .product_type_simple {
  display: flex !important;
  width: 100% !important;
  min-height: 44px;
  height: 44px;
  margin: 0 !important;
  padding: 0 12px !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  background: var(--cab-green) !important;
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 0 !important;
  border-radius: 0;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: none !important;
}
body.cab-site .add_to_cart_button:before,
body.cab-site .add_to_cart_button:after,
body.cab-site .product_type_simple:before,
body.cab-site .product_type_simple:after {
  display: none !important;
  content: none !important;
  margin: 0 !important;
  width: 0 !important;
}
body.cab-site .products.row .product-small img {
  width: 100% !important;
  height: 100% !important;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  background: #fff;
  padding: 10px;
}
body.cab-site .widget-title { font-family: var(--cab-display); letter-spacing: .08em; text-transform: uppercase; font-size: 14px; }
body.cab-site .widget_product_categories .product-categories {
  max-height: 360px;
  overflow-y: auto;
}
body.cab-site .widget_layered_nav select,
body.cab-site .widget_price_filter {
  max-width: 100%;
}
body.cab-site .button, body.cab-site button.button {
  background: var(--cab-green);
  color: #fff;
  border-radius: 0;
}
body.cab-site .checkout-button,
body.cab-site #place_order { background: var(--cab-green); }

.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px; height: 1px; overflow: hidden;
}

@media (max-width: 1100px) {
  .cab-nav { display: none; }
  .cab-burger { display: inline-flex; }
  .cab-logo { margin-inline: auto; min-width: 0; max-width: 56vw; height: 40px; }
  .cab-logo img,
  .cab-logo svg { height: 34px; max-width: 100%; }
  .cab-header__row { min-height: 56px; gap: 6px; }
  .cab-icon-btn { width: 36px; height: 36px; flex: 0 0 36px; }
  .cab-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cab-cats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cab-footer__grid { grid-template-columns: 1fr 1fr; }
  .cab-pdp__main { grid-template-columns: 1fr; gap: 20px; }
  .cab-hero img { height: 380px; }
  body.cab-site ul.products,
  body.cab-site .products.row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 767px) {
  .cab-wrap { width: min(100% - 20px, var(--cab-max)); }
  .cab-hero img { height: 320px; }
  .cab-hero__copy { padding: 24px 20px; background: linear-gradient(180deg, rgba(30,29,25,.2), rgba(30,29,25,.78)); justify-content: flex-end; }
  .cab-footer__grid { grid-template-columns: 1fr; }
  .cab-footer__col { padding-bottom: 8px; border-bottom: 1px solid #3a3830; }
  .cab-pdp-desc { padding: 0 20px; margin: 32px auto 28px; }
  .cab-news { width: 100%; }
  .cab-search-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    grid-template-areas:
      "field close"
      "go go";
    gap: 8px;
    align-items: stretch;
  }
  .cab-search-field { grid-area: field; width: 100%; }
  .cab-search-panel .cab-search-go {
    grid-area: go;
    width: 100%;
    min-width: 0;
    height: var(--cab-field);
  }
  .cab-search-panel .cab-search-close {
    grid-area: close;
    width: 48px;
    height: var(--cab-field);
  }
  .cab-card h3 { font-size: 13px; }
}
@media (max-width: 374px) {
  .cab-logo-text { font-size: 18px; letter-spacing: .1em; }
  .cab-logo img,
  .cab-logo svg { height: 28px; }
  .cab-hero img { height: 280px; }
  .cab-icon-btn { width: 34px; height: 34px; flex: 0 0 34px; }
  .cab-header__row { gap: 4px; }
}
@media (min-width: 1101px) {
  .cab-nav ul { flex-wrap: nowrap; }
}
