/* Scoped to this extension. No global WooCommerce layout overrides. */
.kcs-wrap {box-sizing:border-box;clear:both;width:100%;max-width:var(--kcs-max-width,100%);color:var(--kcs-text,#1f2937);font-size:14px;line-height:1.5;margin:18px 0 24px;min-width:0;position:relative}
.kcs-wrap *, .kcs-wrap *::before,.kcs-wrap *::after{box-sizing:border-box}
.kcs-wrap .kcs-header{margin:0 0 12px;padding:0}
.kcs-wrap .kcs-heading{font-size:var(--kcs-heading-size,19px);line-height:1.3;font-weight:700;margin:0 0 6px;padding:0;color:var(--kcs-text,#1f2937)}
.kcs-wrap .kcs-intro{margin:0;color:var(--kcs-text,#1f2937);opacity:.8;font-size:13px}
.kcs-wrap .kcs-viewport{min-width:0;max-width:100%}
.kcs-wrap .kcs-track{display:grid;gap:var(--kcs-gap,12px);min-width:0;align-items:stretch}
.kcs-layout-list .kcs-track{grid-template-columns:minmax(0,1fr)}
.kcs-layout-grid .kcs-track{grid-template-columns:repeat(var(--kcs-grid-d,3),minmax(0,1fr))}
.kcs-layout-carousel .kcs-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:1px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.kcs-layout-carousel .kcs-track{grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--kcs-cols-d,2) - 1)*var(--kcs-gap,12px))/var(--kcs-cols-d,2));width:100%}
.kcs-layout-carousel .kcs-card{scroll-snap-align:start;scroll-snap-stop:normal;min-width:0}
.kcs-hide-scrollbar .kcs-viewport{scrollbar-width:none}
.kcs-hide-scrollbar .kcs-viewport::-webkit-scrollbar{display:none}
.kcs-wrap .kcs-card{min-width:0;display:flex;flex-direction:row;align-items:flex-start;gap:11px;background:var(--kcs-bg,#fff);color:var(--kcs-text,#1f2937);padding:var(--kcs-padding,12px);border:1px solid var(--kcs-border,#e2e8f0);border-radius:var(--kcs-radius,8px);text-align:left;float:none!important;max-width:none;width:100%;box-shadow:none;overflow:hidden}
.kcs-wrap.kcs-no-border .kcs-card{border-color:transparent}
.kcs-wrap .kcs-card a{text-decoration:none;box-shadow:none}
.kcs-wrap .kcs-thumb{width:min(var(--kcs-thumb,105px),42%);max-width:min(var(--kcs-thumb,105px),42%);flex:0 0 auto;display:block;background:var(--kcs-image-bg,#fff);border-radius:max(0px,calc(var(--kcs-radius,8px) - 3px));overflow:hidden;line-height:0;align-self:flex-start}
.kcs-wrap .kcs-thumb img{display:block;object-fit:var(--kcs-fit,contain);aspect-ratio:var(--kcs-ratio,1/1);width:100%;height:auto;max-width:100%;margin:0!important;border:0!important;border-radius:0!important;background:var(--kcs-image-bg,#fff)}
.kcs-wrap.kcs-orientation-stack .kcs-card{flex-direction:column}
.kcs-wrap.kcs-orientation-stack .kcs-thumb{width:min(100%,var(--kcs-thumb,105px));max-width:100%;align-self:center}
.kcs-wrap.kcs-orientation-stack .kcs-info{width:100%}
.kcs-wrap.kcs-no-images .kcs-card{gap:0}
.kcs-wrap .kcs-info{flex:1 1 auto;min-width:0;max-width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.kcs-wrap .kcs-name{font-size:var(--kcs-name-size,14px);font-weight:650;line-height:1.35;color:var(--kcs-text,#1f2937);overflow-wrap:anywhere;word-break:normal;margin:0;display:block}
.kcs-wrap .kcs-name:hover{text-decoration:underline;color:var(--kcs-accent,#1666c5)}
.kcs-wrap .kcs-price{font-size:var(--kcs-price-size,16px);font-weight:750;line-height:1.35;color:var(--kcs-text,#1f2937);margin:1px 0;white-space:normal;overflow-wrap:anywhere}
.kcs-wrap .kcs-price del{font-size:.8em;opacity:.65}.kcs-wrap .kcs-price ins{background:none;text-decoration:none}
.kcs-wrap .kcs-sku,.kcs-wrap .kcs-stock{font-size:11px;opacity:.78;line-height:1.4}
.kcs-wrap .kcs-excerpt{font-size:12px;line-height:1.45;opacity:.85;overflow-wrap:anywhere}
.kcs-wrap .kcs-rating{line-height:1;min-height:16px}.kcs-wrap .kcs-rating .star-rating{float:none;margin:0;display:inline-block}
.kcs-wrap .kcs-sale{display:inline-block;color:#9c3900;background:#fff2de;border:1px solid #ffdfb0;padding:2px 6px;font-size:10px;font-weight:700;border-radius:4px;line-height:1.2}
.kcs-wrap .kcs-button.button,.kcs-wrap a.kcs-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal;width:var(--kcs-button-width,auto);max-width:100%;min-height:var(--kcs-button-height,31px);margin:4px 0 0;padding:var(--kcs-button-pad-v,7px) var(--kcs-button-pad-h,10px);border:0;border-radius:var(--kcs-button-radius,5px);background:var(--kcs-accent,#1666c5);color:#fff!important;font-size:var(--kcs-button-font-size,12px);font-weight:var(--kcs-button-weight,650);line-height:1.25;text-decoration:none;box-shadow:none;cursor:pointer;transition:filter .15s}
.kcs-wrap .kcs-button:hover,.kcs-wrap .kcs-button:focus-visible{filter:brightness(.88);background:var(--kcs-accent,#1666c5);color:#fff}
.kcs-wrap .kcs-button.added::after{margin-left:6px}
.kcs-wrap .added_to_cart{font-size:12px;margin-top:3px}
.kcs-wrap .kcs-empty{font-size:13px;color:var(--kcs-text);opacity:.7;margin:0}
.kcs-wrap .kcs-controls{display:flex;justify-content:flex-end;gap:7px;margin:0 0 7px}
.kcs-wrap .kcs-arrow{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border:1px solid var(--kcs-border,#e2e8f0);border-radius:7px;background:var(--kcs-bg,#fff);color:var(--kcs-accent,#1666c5);font-size:27px;font-weight:400;line-height:1;cursor:pointer;padding:0;text-shadow:none;box-shadow:none;transition:background .15s,opacity .15s}
.kcs-wrap .kcs-arrow:focus-visible,.kcs-wrap .kcs-dot:focus-visible,.kcs-wrap .kcs-button:focus-visible{outline:2px solid var(--kcs-accent);outline-offset:2px}
.kcs-wrap .kcs-arrow:disabled{opacity:.3;cursor:default}
.kcs-wrap .kcs-arrow:hover:not(:disabled){background:#f1f5f9}
.kcs-wrap .kcs-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;min-height:12px;margin:12px 0 0}
.kcs-wrap .kcs-dot{width:9px;height:9px;padding:0;border-radius:50%;border:0;background:var(--kcs-border,#e2e8f0);cursor:pointer}
.kcs-wrap .kcs-dot.is-active{background:var(--kcs-accent,#1666c5)}
.kcs-wrap .kcs-dot[hidden]{display:none}
@media(max-width:960px){.kcs-layout-carousel .kcs-track{grid-auto-columns:calc((100% - (var(--kcs-cols-t,2) - 1)*var(--kcs-gap,12px))/var(--kcs-cols-t,2))}.kcs-layout-grid .kcs-track{grid-template-columns:repeat(var(--kcs-grid-t,2),minmax(0,1fr))}}
@media(max-width:600px){.kcs-layout-carousel .kcs-track{grid-auto-columns:calc((100% - (var(--kcs-cols-m,1) - 1)*var(--kcs-gap,12px))/var(--kcs-cols-m,1))}.kcs-layout-grid .kcs-track{grid-template-columns:repeat(var(--kcs-grid-m,1),minmax(0,1fr))}.kcs-wrap .kcs-card{gap:10px}.kcs-wrap{margin:14px 0 22px}}
@media(prefers-reduced-motion:reduce){.kcs-wrap .kcs-button,.kcs-wrap .kcs-arrow{transition:none}}

/* Product-summary columns can be narrow even on a wide desktop viewport. */
@supports(container-type:inline-size){
  .kcs-wrap{container-type:inline-size}
  @container (max-width:520px){
    .kcs-layout-carousel .kcs-track{grid-auto-columns:calc((100% - (var(--kcs-cols-m,1) - 1)*var(--kcs-gap,12px))/var(--kcs-cols-m,1))}
    .kcs-layout-grid .kcs-track{grid-template-columns:repeat(var(--kcs-grid-m,1),minmax(0,1fr))}
  }
}

/* 1.1.0: Cross-sell cards between the product purchase panel and description. */
.single-product .kcs-wrap.kcs-placement-under_main_grid {
  clear:both; float:none; display:block; width:100%; max-width:100%;
  margin:24px 0 28px;
}
.single-product .kcs-wrap.kcs-placement-under_main_grid .kcs-track {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:600px) {
  .single-product .kcs-wrap.kcs-placement-under_main_grid .kcs-track {
    grid-template-columns:minmax(0,1fr);
  }
}

/* 1.1.0: An independent third column, not the theme's sidebar widget area.
   The kcs-rail-wide class is added only when the ACTUAL product container is wide
   enough and the canonical gallery / summary / rail are direct siblings. */
.single-product .kcs-wrap.kcs-placement-right_rail {
  clear:both; float:none; display:block; width:100%; max-width:100%;
  margin:24px 0 28px;
}
.single-product div.product.kcs-rail-wide {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(200px,var(--kcs-rail-width,270px));
  grid-template-rows:auto;
  align-items:start;
  column-gap:var(--kcs-rail-gap,20px);
}
.single-product div.product.kcs-rail-wide > .woocommerce-product-gallery,
.single-product div.product.kcs-rail-wide > .images {
  grid-column:1; grid-row:1; min-width:0; width:100%!important;
  max-width:100%!important; float:none!important; margin-left:0!important; margin-right:0!important;
}
.single-product div.product.kcs-rail-wide > .summary {
  grid-column:2; grid-row:1; min-width:0; width:100%!important;
  max-width:100%!important; float:none!important; margin-left:0!important; margin-right:0!important;
}
.single-product div.product.kcs-rail-wide > .kcs-placement-right_rail {
  grid-column:3; grid-row:1; min-width:0; align-self:start;
  clear:none; width:100%; max-width:100%; margin:0 0 24px;
}
.single-product div.product.kcs-rail-wide > :not(.woocommerce-product-gallery):not(.images):not(.summary):not(.kcs-placement-right_rail) {
  grid-column:1 / -1;
}
/* Prevent the card layout from inheriting unrelated WooCommerce product-loop rules. */
.single-product div.product.kcs-rail-wide > .kcs-placement-right_rail .kcs-card {
  width:100%; max-width:100%; float:none;
}
@supports (container-type:inline-size) {
  @container (max-width:600px) {
    .single-product .kcs-wrap.kcs-placement-under_main_grid .kcs-track {
      grid-template-columns:minmax(0,1fr);
    }
  }
}


/* 1.2.1 — Enwoo / WooCommerce can set button sizing with highly specific
   selectors or !important. Restrict geometry overrides to KCS card links so
   the main product button and the theme's color palette stay untouched.
   Read every value from the settings-controlled CSS custom properties. */
.kcs-wrap .kcs-card .kcs-info > a.kcs-button.button,
body.single-product .kcs-wrap .kcs-card .kcs-info > a.kcs-button.button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: flex-start !important;
    box-sizing: border-box !important;
    flex: 0 1 auto !important;
    width: var(--kcs-button-width, auto) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: var(--kcs-button-height, 31px) !important;
    max-height: none !important;
    margin: 4px 0 0 !important;
    padding: var(--kcs-button-pad-v, 7px) var(--kcs-button-pad-h, 10px) !important;
    font-size: var(--kcs-button-font-size, 12px) !important;
    font-weight: var(--kcs-button-weight, 650) !important;
    line-height: 1.25 !important;
    border-radius: var(--kcs-button-radius, 5px) !important;
    white-space: normal !important;
    text-align: center !important;
}
