/* Editorial catalogue: institutional type, quiet surfaces and native WooCommerce controls.
 * Loaded after the base shop stylesheet. Product data and purchasing rules stay native.
 */
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .site-content {
  padding: 36px 0 64px;
}
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #content > .ast-container {
  display: grid;
  grid-template-columns: 224px minmax(0, 1fr);
  gap: 40px;
  width: min(var(--kl-content-width), calc(100% - 80px));
  max-width: var(--kl-content-width);
}
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #primary {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  margin: 0 !important;
  border: 0 !important;
}
body.kl-private-shop .woocommerce-products-header {
  margin-bottom: 26px;
  border-bottom: 1px solid var(--kl-line);
  padding-bottom: 22px;
}
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .woocommerce-products-header__title {
  margin: 0;
  font-family: var(--kl-serif);
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.02em;
}
body.kl-private-shop .woocommerce-products-header .term-description {
  max-width: 680px;
  margin-top: 14px;
  color: #526b65;
  font-size: 15px;
}
body.kl-private-shop .woocommerce-products-header .term-description p:last-child { margin-bottom: 0; }
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #secondary.kl-category-sidebar {
  grid-column: 1;
  grid-row: 1;
  position: sticky;
  top: 154px;
  border: 0;
  border-right: 1px solid var(--kl-line);
  border-radius: 0;
  padding: 0 24px 0 0;
  background: transparent;
  box-shadow: none;
}
body.admin-bar.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #secondary.kl-category-sidebar { top: 186px; }
body.kl-private-shop .kl-category-sidebar h2 {
  margin: 0 0 20px;
  font-family: var(--kl-serif);
  font-size: 25px;
  font-weight: 400;
}
body.kl-private-shop .kl-category-sidebar nav { gap: 3px; }
body.kl-private-shop .kl-category-sidebar a {
  min-height: 44px;
  border-radius: 3px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
}
body.kl-private-shop .kl-category-sidebar a span { min-width: 0; overflow-wrap: anywhere; }
body.kl-private-shop .kl-category-sidebar a.is-current { font-weight: 650; }
body.kl-private-shop .kl-category-sidebar small {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  font-size: 12px;
}
body.kl-private-shop .kl-category-nav--mobile { display: none; }
body.kl-private-shop .kl-category-nav {
  border: 0;
  border-bottom: 1px solid var(--kl-line);
  border-radius: 0;
  padding: 0 0 20px;
  background: transparent;
  box-shadow: none;
}
body.kl-private-shop .kl-category-nav > p { font-weight: 400; }
/* Native disclosure keeps filtering available without pushing mobile products down. */
body.kl-private-shop .kl-category-disclosure { margin: 0; border: 0; padding: 0; }
body.kl-private-shop .kl-category-disclosure summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  border: 1px solid var(--kl-line);
  border-radius: 3px;
  padding: 10px 14px;
  color: var(--kl-ink);
  background: transparent;
  font-family: var(--kl-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
}
body.kl-private-shop .kl-category-disclosure summary::-webkit-details-marker { display: none; }
body.kl-private-shop .kl-category-disclosure summary::marker { content: ''; }
body.kl-private-shop .kl-category-disclosure summary::after { display: none; }
body.kl-private-shop .kl-category-disclosure summary:focus-visible {
  outline: 3px solid var(--kl-focus, #b26731);
  outline-offset: 3px;
}
body.kl-private-shop .kl-category-disclosure summary > span {
  display: inline-block;
  flex: 0 0 auto;
  color: var(--kl-deep);
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
  transform-origin: center;
}
body.kl-private-shop .kl-category-disclosure[open] summary > span { transform: rotate(45deg); }
body.kl-private-shop .kl-category-disclosure .kl-category-nav__list { margin-top: 12px; }
body.kl-private-shop .kl-category-nav__list {
  flex-wrap: wrap;
  gap: 8px;
  overflow: visible;
}
body.kl-private-shop .kl-category-nav__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  max-width: 100%;
  border-radius: 3px;
  padding: 9px 13px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
body.kl-private-shop .kl-product-search { margin: 0 0 24px; gap: 7px; }
body.kl-private-shop .kl-product-search label { font-size: 13px; font-weight: 600; }
body.kl-private-shop .kl-product-search > div { min-width: 0; align-items: stretch; gap: 10px; }
body.kl-private-shop .kl-product-search input[type="search"] {
  min-height: 48px;
  border-radius: 3px;
  font-size: 16px;
}
body.kl-private-shop .kl-product-search button { min-height: 48px; padding-inline: 20px !important; }
body.kl-private-shop .woocommerce-result-count { color: #526b65; font-size: 13px; }
body.kl-private-shop .woocommerce-ordering { max-width: 100%; }
body.kl-private-shop .woocommerce-ordering select {
  width: 100%;
  min-height: 44px;
  border-radius: 3px;
  font-size: 14px;
}
body.kl-private-shop ul.products[class]:not(.elementor-grid) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 22px;
  margin: 0 0 32px;
  padding: 0;
}
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products { gap: 32px 22px; }
body.kl-private-shop ul.products li.product,
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 0;
  border-bottom: 1px solid var(--kl-line);
  border-radius: 0;
  padding: 0 0 22px !important;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  text-align: left;
  transition: none;
}
body.kl-private-shop ul.products li.product:hover { transform: none; box-shadow: none; }
body.kl-private-shop ul.products li.product > .woocommerce-LoopProduct-link,
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap {
  min-width: 0;
  text-align: left;
}
body.kl-private-shop ul.products li.product a img,
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product a img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 1 / 1;
  margin: 0 0 16px !important;
  border-radius: 3px;
  background: #f3f1e9;
  object-fit: contain;
}
body.kl-private-shop ul.products li.product .woocommerce-loop-product__title,
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product .woocommerce-loop-product__title {
  display: block;
  min-height: 0;
  margin: 0 0 10px;
  color: var(--kl-ink);
  font-family: var(--kl-serif);
  font-size: clamp(20px, 1.9vw, 22px) !important;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -.015em;
  overflow: visible;
  overflow-wrap: anywhere;
  -webkit-line-clamp: unset;
}
body.kl-private-shop ul.products li.product .kl-product-category {
  margin: 0 0 7px;
  color: #526b65;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}
body.kl-private-shop ul.products li.product .kl-product-requirement {
  border: 0;
  border-left: 2px solid #8ba99f;
  border-radius: 0;
  padding: 3px 8px;
  margin: 0 0 9px;
  background: transparent;
  font-size: 11px;
  font-weight: 600;
}
body.kl-private-shop ul.products li.product .price {
  margin: 0 0 14px;
  color: var(--kl-deep) !important;
  font-family: var(--kl-sans);
  font-size: 16px !important;
  font-weight: 650 !important;
  line-height: 1.5;
}
body.kl-private-shop ul.products li.product .price del { opacity: .7; font-weight: 400; }
body.kl-private-shop ul.products li.product .price ins { background: transparent; }
body.kl-private-shop ul.products li.product .kl-loop-cart {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  margin-top: auto;
  padding-top: 0;
}
body.kl-private-shop ul.products li.product .kl-quantity-control {
  justify-self: start;
  width: 134px;
  max-width: 100%;
  border-radius: 3px;
  background: white;
}
body.kl-private-shop ul.products li.product .kl-loop-cart__submit,
body.kl-private-shop ul.products li.product > .button,
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap > .button {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  margin: 0;
  border-radius: 3px !important;
  padding: 12px 14px !important;
  font-size: 14px;
  font-weight: 600 !important;
  text-align: center;
}
body.kl-private-shop ul.products li.product .added_to_cart {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  font-weight: 600;
}
body.kl-private-shop .woocommerce-pagination ul.page-numbers { border: 0; }
body.kl-private-shop .woocommerce-pagination ul.page-numbers li { border: 0; margin: 0 3px; }
body.kl-private-shop .woocommerce-pagination ul.page-numbers a,
body.kl-private-shop .woocommerce-pagination ul.page-numbers span {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  border: 1px solid var(--kl-line);
  border-radius: 3px;
  background: transparent;
  color: var(--kl-ink);
}
body.kl-private-shop .woocommerce-pagination ul.page-numbers .current { background: var(--kl-deep); color: white; border-color: var(--kl-deep); }

/* Product detail: two readable columns, then native WooCommerce information. */
body.kl-private-shop.single-product div.product.type-product {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 34px 48px;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
body.kl-private-shop.single-product div.product.type-product::before,
body.kl-private-shop.single-product div.product.type-product::after { display: none; }
body.kl-private-shop.single-product.woocommerce div.product.type-product div.images,
body.kl-private-shop.single-product.woocommerce div.product.type-product div.summary {
  float: none !important;
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  align-self: start;
}
body.kl-private-shop.single-product div.product div.images img { border-radius: 3px; }
body.kl-private-shop.single-product .woocommerce-product-gallery__image > a { display: block; background: #f3f1e9; }
body.kl-private-shop.single-product .woocommerce-product-gallery__image img:not(.zoomImg) {
  width: 100%;
  height: 420px;
  max-height: 420px;
  object-fit: contain;
}
body.kl-private-shop.single-product .flex-control-thumbs { margin-top: 10px; }
body.kl-private-shop.single-product .flex-control-thumbs li { padding: 3px; }
body.kl-private-shop.single-product .product_title {
  margin: 0 0 14px;
  color: var(--kl-ink);
  font-family: var(--kl-serif);
  font-size: clamp(34px, 3vw, 38px);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
body.kl-private-shop.single-product .summary > .price {
  margin-bottom: 14px;
  font-size: 22px !important;
  font-weight: 600 !important;
  color: var(--kl-deep) !important;
}
body.kl-private-shop.single-product .woocommerce-product-details__short-description {
  color: #526b65;
  margin-bottom: 16px;
  font-size: 15px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
body.kl-private-shop.single-product .woocommerce-product-details__short-description p { margin: 0 0 10px; }
body.kl-private-shop.single-product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
body.kl-private-shop.single-product .summary form.cart:not(.variations_form):not(.grouped_form) {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 20px 0;
}
body.kl-private-shop.single-product .summary form.cart .quantity { margin: 0; float: none; }
body.kl-private-shop.single-product .summary form.cart input.qty { min-height: 48px; width: 70px; border-radius: 3px; font-size: 16px; }
body.kl-private-shop.single-product .summary form.cart .single_add_to_cart_button {
  min-height: 48px;
  max-width: 100%;
  border-radius: 3px !important;
  padding: 13px 22px !important;
  font-weight: 600 !important;
  white-space: normal;
}
body.kl-private-shop.single-product .summary .product_meta {
  margin-top: 20px;
  border-top: 1px solid var(--kl-line);
  padding-top: 14px;
  font-family: var(--kl-sans);
  color: #526b65;
  font-size: 12px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
body.kl-private-shop.single-product .woocommerce-tabs,
body.kl-private-shop.single-product .related.products,
body.kl-private-shop.single-product .up-sells.products {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  margin-top: 24px;
}
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0 20px; overflow: visible; }
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border-radius: 0; }
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs li::before,
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs li a {
  display: flex;
  align-items: center;
  min-height: 48px;
  border-bottom: 2px solid transparent;
  padding: 12px 0;
  font-size: 14px;
  font-weight: 600;
}
body.kl-private-shop.single-product .woocommerce-tabs ul.tabs li.active a { border-bottom-color: var(--kl-deep); color: var(--kl-deep); }
body.kl-private-shop.single-product .woocommerce-tabs .panel { max-width: 850px; color: #526b65; font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; }
/* All product information stays visible with compact headings and spacing. */
body.kl-private-shop.single-product .kl-product-info-section {
  margin: 0;
  border-bottom: 1px solid var(--kl-line);
  padding: 0;
}
body.kl-private-shop.single-product .woocommerce-tabs .panel .kl-product-info-title {
  margin: 18px 0 10px;
  color: var(--kl-ink);
  font-family: var(--kl-serif);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.3;
}
body.kl-private-shop.single-product .kl-product-info-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 44px;
  padding: 13px 0;
  color: var(--kl-ink);
  font-family: var(--kl-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.35;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
}
body.kl-private-shop.single-product .kl-product-info-section > summary::-webkit-details-marker { display: none; }
body.kl-private-shop.single-product .kl-product-info-section > summary::marker { content: ''; }
body.kl-private-shop.single-product .kl-product-info-section > summary::after {
  content: '+';
  flex: 0 0 auto;
  color: var(--kl-deep);
  font-family: var(--kl-sans);
  font-size: 22px;
  line-height: 1;
}
body.kl-private-shop.single-product .kl-product-info-section[open] > summary::after { content: '−'; }
body.kl-private-shop.single-product .kl-product-info-section > summary:focus-visible {
  outline: 3px solid var(--kl-focus, #b26731);
  outline-offset: 3px;
}
body.kl-private-shop.single-product .kl-product-info-body {
  padding: 4px 0 16px;
  color: #526b65;
  font-family: var(--kl-sans);
  font-size: 15px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
body.kl-private-shop.single-product .kl-product-info-body p { margin: 0 0 12px; }
body.kl-private-shop.single-product .kl-product-info-body :is(h2, h3, h4),
body.kl-private-shop.single-product .woocommerce-tabs .panel .kl-product-info-body :is(h2, h3, h4) {
  margin: 20px 0 12px;
  font-family: var(--kl-serif);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.25;
}
body.kl-private-shop.single-product .kl-product-info-body > :first-child { margin-top: 0; }
body.kl-private-shop.single-product .kl-product-info-body > :last-child { margin-bottom: 0; }
body.kl-private-shop.single-product .woocommerce-tabs .panel h2,
body.kl-private-shop.single-product .related.products > h2,
body.kl-private-shop.single-product .up-sells.products > h2 { color: var(--kl-ink); font-family: var(--kl-serif); font-size: 32px; font-weight: 400; }
body.kl-private-shop.single-product .related.products,
body.kl-private-shop.single-product .up-sells.products { border-top: 1px solid var(--kl-line); padding-top: 34px; }
/* Shared text variation swatches: readable volume choices and generous touch targets. */
body.kl-private-shop .cfvsw-product-container {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	max-width: 100%;
}
body.kl-private-shop .cfvsw-product-container .cfvsw-label-option {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 96px !important;
	min-height: 52px !important;
	max-width: 100%;
	margin: 0;
	padding: 12px 20px;
	border: 1px solid var(--kl-line, #b9ccc5);
	background: #fff;
	color: var(--kl-ink, #153d38);
	font-family: var(--kl-sans);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	touch-action: manipulation;
}
body.kl-private-shop .cfvsw-product-container .cfvsw-label-option .cfvsw-swatch-inner {
	font: inherit;
	overflow-wrap: anywhere;
}
body.kl-private-shop .cfvsw-product-container .cfvsw-label-option.cfvsw-selected-swatch {
	border-color: var(--kl-deep, #005b53);
	background: #e7f1eb;
	color: var(--kl-deep, #005b53);
	box-shadow: inset 0 0 0 1px var(--kl-deep, #005b53);
}
body.kl-private-shop.single-product .variations { width: 100%; }
body.kl-private-shop.single-product .variations select { width: 100%; max-width: 100%; }
body.kl-private-shop.single-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

@media (min-width: 1101px) {
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #secondary.kl-category-sidebar { display: block !important; }
}
@media (max-width: 1100px) {
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #content > .ast-container { display: block; }
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #primary { grid-column: auto; grid-row: auto; }
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #secondary.kl-category-sidebar { display: none !important; }
  body.kl-private-shop .kl-category-nav--mobile { display: block; }
  body.kl-private-shop .kl-category-nav { padding-bottom: 12px; margin-bottom: 16px; }
  body.kl-private-shop ul.products[class]:not(.elementor-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #content > .ast-container { width: min(var(--kl-content-width), calc(100% - 56px)); }
  body.kl-private-shop.single-product div.product.type-product { gap: 28px; }
}
@media (max-width: 650px) {
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .site-content { padding: 24px 0 42px; }
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #content > .ast-container { width: calc(100% - 46px); }
  body.kl-private-shop .woocommerce-products-header { margin-bottom: 22px; padding-bottom: 18px; }
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .woocommerce-products-header__title { font-size: 34px; }
  body.kl-private-shop .woocommerce-result-count,
  body.kl-private-shop .woocommerce-ordering { float: none; width: 100%; margin: 0 0 14px; }
  body.kl-private-shop ul.products[class]:not(.elementor-grid) { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products { gap: 28px; }
  body.kl-private-shop ul.products li.product a img,
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product a img { height: auto; max-height: none; aspect-ratio: 1.15 / 1; }
  body.kl-private-shop ul.products li.product .kl-loop-cart { grid-template-columns: 134px minmax(0, 1fr); gap: 10px; }
  body.kl-private-shop ul.products li.product .woocommerce-loop-product__title { font-size: 22px !important; }
  body.kl-private-shop .kl-product-search > div { flex-wrap: wrap; }
  body.kl-private-shop .kl-product-search input[type="search"] { flex: 1 1 180px; }
  body.kl-private-shop .kl-product-search button { flex: 1 0 80px; }
  body.kl-private-shop.single-product div.product.type-product { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  body.kl-private-shop.single-product .woocommerce-product-gallery__image img:not(.zoomImg) { height: 300px; max-height: 300px; }
  body.kl-private-shop.single-product .product_title { font-size: 28px; }
  body.kl-private-shop.single-product .woocommerce-product-details__short-description { font-size: 15px; }
  body.kl-private-shop.single-product .woocommerce-tabs,
  body.kl-private-shop.single-product .related.products,
  body.kl-private-shop.single-product .up-sells.products { margin-top: 12px; }
  body.kl-private-shop.single-product .woocommerce-tabs .panel h2,
  body.kl-private-shop.single-product .related.products > h2 { font-size: 29px; }
}
@media (max-width: 420px) {
  body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) #content > .ast-container { width: calc(100% - 32px); }
}
@media (prefers-reduced-motion: reduce) {
  body.kl-private-shop ul.products li.product { transition: none; }
}




/* 0.9.22: quieter hierarchy, independent links and native keyboard disclosures. */
body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) #secondary.kl-category-sidebar {
  max-height: calc(100dvh - 204px);
  overflow-y: auto;
  scrollbar-width: thin;
  padding-right: 16px;
}
body.kl-private-shop .kl-category-menu { display: grid; gap: 4px; min-width: 0; }
body.kl-private-shop .kl-category-menu .kl-category-group { position: relative; min-width: 0; }
body.kl-private-shop .kl-category-menu a.kl-category-link {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  min-height: 46px; margin: 0; padding: 10px 12px;
  border: 0; border-radius: 3px; background: transparent;
  font-family: var(--kl-sans); font-size: 14px; font-weight: 500; line-height: 1.45;
  color: var(--kl-ink); text-decoration: none;
}
body.kl-private-shop .kl-category-menu .has-children > a.kl-category-link { padding-right: 48px; }
body.kl-private-shop .kl-category-menu a.kl-category-link span { min-width: 0; overflow-wrap: anywhere; }
body.kl-private-shop .kl-category-menu a.kl-category-link small { flex: 0 0 auto; padding: 0; background: none; color: #657871; font-size: 12px; font-weight: 400; }
body.kl-private-shop .kl-category-menu a.kl-category-link:hover { background: #f0f4f1; color: var(--kl-deep); }
body.kl-private-shop .kl-category-menu a.kl-category-link.is-current { background: #e7f1eb; color: var(--kl-deep); font-weight: 650; }
body.kl-private-shop .kl-category-menu .is-ancestor > a { font-weight: 650; }
body.kl-private-shop .kl-category-menu .kl-category-all { margin-bottom: 6px; }
body.kl-private-shop .kl-category-children { margin: 0; padding: 0; border: 0; background: none; }
body.kl-private-shop .kl-category-children > summary {
  position: absolute; top: 0; right: 0; display: flex; align-items: center; justify-content: center;
  width: 44px; height: 46px; min-height: 46px; padding: 0; border: 0; border-radius: 3px;
  background: transparent; color: var(--kl-deep); cursor: pointer; list-style: none;
  font-family: var(--kl-sans); font-size: 21px; line-height: 1; touch-action: manipulation;
}
body.kl-private-shop .kl-category-children > summary::-webkit-details-marker { display: none; }
body.kl-private-shop .kl-category-children > summary::marker { content: ''; }
body.kl-private-shop .kl-category-children > summary::after { display: none; }
body.kl-private-shop .kl-category-children > summary:hover { background: #e7f1eb; }
body.kl-private-shop .kl-category-children > summary span { display: block; transform: translateY(-3px); }
body.kl-private-shop .kl-category-children[open] > summary span { transform: rotate(180deg) translateY(-2px); }
body.kl-private-shop .kl-category-children__list { margin: 4px 0 8px 12px; padding-left: 9px; border-left: 1px solid var(--kl-line); }
body.kl-private-shop .kl-category-children__list a.kl-category-link { font-size: 13px; font-weight: 400; }
body.kl-private-shop .kl-category-menu :is(a,summary):focus-visible { outline: 3px solid var(--kl-focus,#b26731); outline-offset: 2px; }
body.kl-private-shop .kl-category-disclosure > summary .kl-category-disclosure__label { min-width: 0; font-size: 14px; line-height: 1.4; transform: none; }
body.kl-private-shop .kl-category-disclosure__label small { display: block; margin-top: 3px; color: #657871; font-size: 12px; font-weight: 400; overflow-wrap: anywhere; }
body.kl-private-shop .kl-category-disclosure[open] > summary .kl-category-disclosure__label { transform: none; }
body.kl-private-shop .kl-category-disclosure > .kl-category-menu { margin-top: 10px; }
@media (max-width:1100px) {
  body.kl-private-shop .kl-category-nav--mobile .kl-category-menu { padding: 8px; border: 1px solid var(--kl-line); border-radius: 3px; background: #fff; }
  body.kl-private-shop .kl-category-nav--mobile .kl-category-children__list a.kl-category-link { font-size: 14px; }
}

/* 0.9.23: stretch card summaries so every action ends on the same row baseline. */
body.kl-private-shop ul.products li.product {
  align-self: stretch;
}
body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative;
  flex: 0 0 auto;
}
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}
body.kl-private-shop ul.products li.product > .button,
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap > .button,
body.kl-private-shop ul.products li.product > .kl-loop-cart,
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap > .kl-loop-cart {
  margin-top: auto;
}
/* Keep Astra's actual, accessible stock message inside the product image. */
body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap .ast-shop-product-out-of-stock {
  position: absolute;
  top: 12px !important;
  right: auto !important;
  bottom: auto !important;
  left: 12px !important;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: calc(100% - 24px);
  min-height: 28px;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 3px;
  padding: 6px 10px;
  background: var(--kl-deep, #005b53);
  color: #fff;
  font-family: var(--kl-sans);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
  text-align: left;
  text-transform: none;
  pointer-events: none;
}

/* 0.9.24: clearer stock label on desktop and mobile. */
body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap .ast-shop-product-out-of-stock {
 min-height:38px; padding:10px 16px; font-size:14px; font-weight:700; line-height:1.25;
}
@media(max-width:600px) {
 body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap .ast-shop-product-out-of-stock {
  min-height:34px; padding:8px 12px; font-size:13px;
 }
}

/* 0.9.25: complete covers in an equal square frame, also on mobile. */
body.kl-private-shop:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product a img {
  width:100%; height:auto; aspect-ratio:1 / 1; object-fit:contain; object-position:center; background:#f3f1e9;
}

/* Revisión visual 2026-10-06. Las fotografías se muestran completas. */
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap{text-align:left}
body.kl-private-shop ul.products li.product .woocommerce-loop-product__title,
body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) ul.products li.product .woocommerce-loop-product__title{text-align:left;font-family:var(--kl-sans);font-size:17px!important;font-weight:600;line-height:1.4;letter-spacing:-.015em}
body.kl-private-shop ul.products li.product .price{text-align:left;font-size:17px!important;font-variant-numeric:tabular-nums}
body.kl-private-shop ul.products li.product a img,
body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) ul.products li.product a img{aspect-ratio:3/2;object-fit:contain;background:#f3f1e9}
body.kl-private-shop ul.products li.product .kl-loop-cart{grid-template-columns:132px minmax(0,1fr);gap:10px}
body.kl-private-shop ul.products li.product .astra-shop-summary-wrap>.price{margin-top:auto}
body.kl-private-shop .kl-catalog-tools{margin:0 0 20px;min-width:0;display:flex;justify-content:flex-end;align-items:center;gap:15px}
body.kl-private-shop .kl-catalog-tools .woocommerce-ordering{margin:0;float:none;max-width:100%}
body.kl-private-shop .kl-catalog-tools.kl-catalog-tools--manual{grid-template-columns:minmax(0,1fr)}
body.kl-private-shop .kl-catalog-tools .woocommerce-result-count{float:none;display:block;margin:0 auto 0 0;order:-1}
body.kl-private-shop.single-product .kl-product-heading{grid-column:1/-1;min-width:0}
@media(max-width:1100px){
 body.kl-private-shop .kl-catalog-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;position:relative;z-index:4;align-items:start}
 body.kl-private-shop .kl-catalog-tools .kl-category-nav{margin:0;padding:0;border:0;min-width:0;position:static}
 body.kl-private-shop .kl-catalog-tools .kl-category-disclosure{position:static}
 body.kl-private-shop .kl-catalog-tools .kl-category-disclosure>summary{min-height:50px;padding:9px 12px;background:#fff}
 body.kl-private-shop .kl-catalog-tools .kl-category-disclosure__label small{display:none}
 body.kl-private-shop .kl-catalog-tools .woocommerce-ordering{width:100%;align-self:start}
 body.kl-private-shop .kl-catalog-tools .woocommerce-result-count{grid-column:1/-1;order:0;width:auto;margin:0}
 body.kl-private-shop .kl-catalog-tools .woocommerce-ordering select{min-height:50px;font-size:13px;padding-left:10px;padding-right:28px}
 body.kl-private-shop .kl-catalog-tools .kl-category-disclosure>.kl-category-menu{position:absolute;left:0;right:0;top:100%;max-height:55dvh;overflow-y:auto;overscroll-behavior:contain;margin-top:6px;box-shadow:0 12px 25px #153d381a;background:#fff}
}
@media(max-width:650px){
 body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) .site-content{padding-top:18px}
 body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) .woocommerce-breadcrumb{margin-bottom:8px;font-size:12px}
 body.kl-private-shop .woocommerce-products-header{margin-bottom:16px;padding-bottom:0;border:0}
 body.kl-private-shop .woocommerce-products-header__title{font-size:32px!important}
 body.kl-private-shop .kl-product-search{margin-bottom:12px}
 body.kl-private-shop .kl-product-search label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 body.kl-private-shop .kl-product-search>div{flex-wrap:nowrap;gap:8px}
 body.kl-private-shop .kl-product-search input[type=search]{flex:1 1 0;min-width:0;min-height:46px}
 body.kl-private-shop .kl-product-search button{flex:0 0 auto;min-height:46px;padding-inline:15px!important}
 body.kl-private-shop .kl-catalog-tools{margin-bottom:16px}
 body.kl-private-shop .kl-catalog-tools .woocommerce-result-count{font-size:12px}
 body.kl-private-shop ul.products[class]:not(.elementor-grid){grid-template-columns:minmax(0,1fr);gap:20px}
 body.kl-private-shop ul.products li.product,
 body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) ul.products li.product{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px 16px;padding-bottom:20px!important;align-items:start}
 body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap{grid-column:1;grid-row:1;min-width:0}
 body.kl-private-shop ul.products li.product .astra-shop-summary-wrap{grid-column:2;grid-row:1;align-self:start;padding:0;min-width:0}
 body.kl-private-shop ul.products li.product .woocommerce-loop-product__title,
 body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) ul.products li.product .woocommerce-loop-product__title{font-size:16px!important;line-height:1.4;margin-bottom:10px}
 body.kl-private-shop ul.products li.product a img,
 body.kl-private-shop:is(.post-type-archive-product,.tax-product_cat,.tax-product_tag) ul.products li.product a img{aspect-ratio:1/1;margin-bottom:0!important}
 body.kl-private-shop ul.products li.product .kl-product-category{font-size:12px;margin:0 0 6px;line-height:1.4}
 body.kl-private-shop ul.products li.product .kl-product-requirement{font-size:11px;margin:0 0 8px;padding:2px 7px;align-self:start}
 body.kl-private-shop ul.products li.product>.kl-loop-cart{grid-column:1/-1;grid-template-columns:132px minmax(0,1fr);gap:12px;margin:0}
 body.kl-private-shop ul.products li.product>.button,
 body.kl-private-shop ul.products li.product>.added_to_cart{grid-column:1/-1;min-height:44px;margin:0}
 body.kl-private-shop ul.products li.product .astra-shop-thumbnail-wrap .ast-shop-product-out-of-stock{left:5px!important;top:5px!important;max-width:calc(100% - 10px);min-height:28px;padding:6px 8px;font-size:11px}
 body.kl-private-shop.single-product .site-content{padding-top:20px}
 body.kl-private-shop.single-product div.product.type-product{gap:16px}
 body.kl-private-shop.single-product .kl-product-heading .woocommerce-breadcrumb{margin:0 0 10px;font-size:12px}
 body.kl-private-shop.single-product .kl-product-heading .product_title{font-size:29px;margin-bottom:10px}
 body.kl-private-shop.single-product .kl-product-heading .price{font-size:22px;font-weight:600;color:var(--kl-deep);margin:0}
 body.kl-private-shop.single-product .woocommerce-product-gallery__image img:not(.zoomImg){height:230px;max-height:230px;object-fit:contain}
 body.kl-private-shop.single-product .flex-control-thumbs{display:flex;gap:6px;margin:8px 0 0}
 body.kl-private-shop.single-product .flex-control-thumbs li{width:48px!important;float:none;padding:0}
 body.kl-private-shop.single-product .flex-control-thumbs img{height:48px;object-fit:contain}
 body.kl-private-shop.single-product .summary form.cart:not(.variations_form):not(.grouped_form){margin:0 0 20px;gap:10px}
 body.kl-private-shop.single-product .summary form.cart .single_add_to_cart_button{flex:1;min-height:48px}
}

/* Product purchase controls: native quantity, clear −/+ targets and aligned action. */
body.kl-private-shop.single-product .summary form.cart .kl-quantity-control {
  display: grid;
  grid-template-columns: repeat(3, 44px);
  flex: 0 0 134px;
  width: 134px;
  height: 48px;
  min-height: 48px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--kl-line);
  border-radius: 3px;
  box-sizing: border-box;
  background: #fff;
  align-items: center;
}
body.kl-private-shop.single-product .summary form.cart .kl-quantity-control .quantity,
body.kl-private-shop.single-product .summary form.cart .kl-quantity-control input.qty {
  width: 44px;
  min-width: 0;
  height: 46px;
  min-height: 46px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-sizing: border-box;
  float: none;
  text-align: center;
}
body.kl-private-shop.single-product .summary form.cart .kl-quantity-control .kl-quantity-control__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 46px;
  min-height: 46px;
  padding: 0 !important;
  margin: 0;
  border: 0;
  line-height: 1;
  font-size: 22px;
  font-weight: 600;
  box-shadow: none;
}
body.kl-private-shop.single-product .summary form.cart .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 48px;
  padding: 12px 22px !important;
  margin: 0;
  float: none;
  line-height: 1.35;
  font-size: 16px;
}
body.kl-private-shop.single-product .summary .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
@media (max-width: 420px) {
  body.kl-private-shop.single-product .summary form.cart .single_add_to_cart_button {
    flex: 1 1 160px;
    padding-inline: 12px !important;
  }
}

/* Category navigation: full-row disclosure, quiet hierarchy and clear destinations. */
body.kl-private-shop .kl-category-children > summary.kl-category-toggle {
  position: static; width: 100%; height: auto; min-height: 54px; box-sizing: border-box;
  display: flex; align-items: center; justify-content: flex-start; gap: 10px;
  padding: 12px; border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1.45;
  color: var(--kl-ink); transition: background-color .18s ease, color .18s ease;
}
body.kl-private-shop .kl-category-children > summary.kl-category-toggle > span { transform: none; font-size: inherit; font-weight: inherit; line-height: inherit; }
body.kl-private-shop .kl-category-children > summary.kl-category-toggle > .kl-category-toggle__label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
body.kl-private-shop .kl-category-toggle small { flex: 0 0 auto; color: #657871; font-size: 12px; font-weight: 400; }
body.kl-private-shop .kl-category-children > summary.kl-category-toggle > .kl-category-toggle__icon {
  position: relative; flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background: #e7f1eb;
}
body.kl-private-shop .kl-category-toggle__icon::before,
body.kl-private-shop .kl-category-toggle__icon::after {
  content: ''; position: absolute; top: 11px; left: 7px; width: 10px; height: 2px; background: var(--kl-deep);
  transition: transform .22s ease;
}
body.kl-private-shop .kl-category-toggle__icon::after { transform: rotate(90deg); }
body.kl-private-shop .kl-category-children[open] > summary .kl-category-toggle__icon::after { transform: rotate(0); }
body.kl-private-shop .kl-category-children[open] > summary.kl-category-toggle { color: var(--kl-deep); background: #edf4ef; }
body.kl-private-shop .kl-category-children > summary.kl-category-toggle:hover { background: #e3eee7; }
body.kl-private-shop .kl-category-children__list { margin: 6px 0 12px 12px; padding-left: 10px; border-left: 2px solid #d8e6dd; }
body.kl-private-shop .kl-category-menu a.kl-category-link { min-height: 46px; border-radius: 6px; }
body.kl-private-shop .kl-category-children__list a.kl-category-view-all { color: var(--kl-deep); font-weight: 650; }
body.kl-private-shop .kl-category-menu a.kl-category-link.is-current { box-shadow: inset 3px 0 var(--kl-deep); }
body.kl-private-shop .kl-category-disclosure > summary .kl-category-disclosure__icon { font-size: 0; transform: none; }
body.kl-private-shop .kl-category-disclosure[open] > summary .kl-category-disclosure__icon { transform: none; }
body.kl-private-shop .kl-category-disclosure__icon::before { content: '+'; font-size: 24px; }
body.kl-private-shop .kl-category-disclosure[open] > summary .kl-category-disclosure__icon::before { content: '−'; }
body.kl-private-shop ul.products li.product a.kl-product-category {
  display: inline-flex; align-self: flex-start; align-items: center; width: fit-content; max-width: 100%; min-height: 30px;
  color: #476a60; text-decoration: underline; text-decoration-color: #b5cbc0; text-underline-offset: 4px;
  text-decoration-thickness: 1px; overflow-wrap: anywhere; line-height: 1.5;
}
body.kl-private-shop ul.products li.product a.kl-product-category:hover { color: var(--kl-deep); text-decoration-color: currentColor; }
body.kl-private-shop ul.products li.product a.kl-product-category:focus-visible { outline: 3px solid var(--kl-focus,#b26731); outline-offset: 3px; border-radius: 2px; }
@media(max-width:1100px) {
  body.kl-private-shop .kl-catalog-tools .kl-category-disclosure > .kl-category-menu {
    position: static; max-height: 60dvh; margin-top: 8px; box-shadow: none; padding: 8px; border-radius: 6px;
  }
  body.kl-private-shop .kl-catalog-tools .kl-category-disclosure > summary { border-radius: 6px; }
  body.kl-private-shop .kl-catalog-tools .kl-category-disclosure__label small { display: block; }
  body.kl-private-shop ul.products li.product a.kl-product-category { min-height: 36px; }
}
@media(prefers-reduced-motion:reduce) {
  body.kl-private-shop .kl-category-toggle__icon::before,
  body.kl-private-shop .kl-category-toggle__icon::after,
  body.kl-private-shop .kl-category-children > summary.kl-category-toggle { transition: none; }
}
