/* ==========================================================================
   Kiehl's Shop CSS — PLP / PDP / Cart / Checkout / Account
   Owner: theme-shop. Desktop 1440 reference, mobile 390. No external assets.
   Self-contained: works with theme-core base.css tokens where present,
   otherwise falls back to the Kiehl's reference palette below.
   ========================================================================== */

.k-shop,
.k-shop * ,
.k-shop *::before,
.k-shop *::after {
  box-sizing: border-box;
}

.k-shop {
  /* theme-core base.css owns --k-black/--k-white/--k-ink/--k-font/-cond/
     --k-bg-soft on :root. Only aliases + shop-only tokens are defined here
     (never re-declare a token using var() on itself — that is a CSS cycle). */
  --k-grey: var(--k-gray-600, #6e6e6e);
  --k-grey-2: var(--k-gray-500, #8f8f8f);
  --k-line: var(--k-gray-300, #ccc);
  --k-line-soft: var(--k-gray-200, #e9e9e9);
  --k-bg-softer: var(--k-gray-100, #f8f8f8);
  --k-sale: var(--k-sale, #000);
  --k-error: #b00020;
  --k-success: #1f7a3d;
  --k-shop-container: var(--k-container, 1200px);
  --k-pad: 15px;
  --k-radius: 0px;
  --k-btn-h: 44px;
  color: var(--k-ink);
  font-family: var(--k-font);
  font-size: 14px;
  line-height: 1.5;
}

.k-shop a {
  color: inherit;
  text-decoration: none;
}
.k-shop a:hover {
  text-decoration: underline;
}
.k-shop img {
  max-width: 100%;
  height: auto;
}
.k-shop button {
  font-family: inherit;
  cursor: pointer;
}
.k-shop .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* shop-owned overlay (theme-core owns .k-overlay for header/mega/drawer) */
.k-shop-overlay {
  position: fixed;
  inset: 0;
  z-index: 9980;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}
.k-shop-overlay.is-open {
  opacity: 1;
  visibility: visible;
}


/* WooCommerce pages are rendered inside theme-core .k-content (max-width:900px);
   shop layouts need the full 1200px container. */
body.woocommerce-cart .k-content,
body.woocommerce-checkout .k-content,
body.woocommerce-account .k-content,
body.woocommerce-page .k-content,
body.woocommerce-order-received .k-content,
body.woocommerce-cart .k-page__article,
body.woocommerce-checkout .k-page__article,
body.woocommerce-account .k-page__article,
body.woocommerce-page .k-page__article,
body.woocommerce-order-received .k-page__article {
  max-width: none;
}

/* ---------- container / shared ---------- */
.k-shop .k-container {
  width: 100%;
  max-width: var(--k-shop-container);
  margin: 0 auto;
  padding-left: var(--k-pad);
  padding-right: var(--k-pad);
}
/* Woo shortcode output lives inside theme-core's page container already. */
.k-container .k-container,
.k-shop .k-container .k-container {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.k-shop .k-btn,
.k-shop button.k-btn,
.k-shop .wp-element-button.k-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--k-btn-h);
  padding: 12px 24px;
  border: 1px solid var(--k-black);
  border-radius: 0;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.k-shop .k-btn:hover,
.k-shop .k-btn:focus-visible {
  background: #333;
  border-color: #333;
  color: var(--k-white);
  text-decoration: none;
}
.k-shop .k-btn--ghost {
  background: transparent;
  color: var(--k-black);
}
.k-shop .k-btn--ghost:hover {
  background: var(--k-black);
  color: var(--k-white);
}
.k-shop .k-btn--full {
  width: 100%;
}
.k-shop .k-btn[disabled],
.k-shop .k-btn[aria-disabled="true"] {
  opacity: 0.45;
  pointer-events: none;
}

.k-shop .k-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  vertical-align: middle;
  flex: 0 0 auto;
}
.k-shop .k-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* breadcrumb */
.k-breadcrumb {
  margin: 0;
  padding: 18px 0 0;
  font-size: 12px;
  color: var(--k-grey);
}
.k-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.k-breadcrumb a {
  color: var(--k-grey);
}
.k-breadcrumb a:hover {
  color: var(--k-black);
}
.k-breadcrumb .k-breadcrumb__sep {
  color: #b5b5b5;
}
.k-breadcrumb [aria-current="page"] {
  color: var(--k-ink);
}

/* section headings */
.k-shop .k-sec-title {
  margin: 0 0 24px;
  font-family: var(--k-font-cond);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--k-black);
  text-align: center;
}
.k-shop .k-sec-title--left {
  text-align: left;
}

/* forms */
.k-shop .k-field {
  margin: 0 0 16px;
}
.k-shop .k-field label,
.k-shop .k-label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--k-ink);
}
.k-shop .k-req {
  color: var(--k-error);
  margin-left: 2px;
}
.k-shop .k-input,
.k-shop .k-select,
.k-shop input[type="text"].k-input,
.k-shop input[type="email"].k-input,
.k-shop input[type="password"].k-input,
.k-shop input[type="tel"].k-input,
.k-shop textarea.k-input,
.k-shop select.k-select {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid #b9b9b9;
  border-radius: 0;
  background: var(--k-white);
  color: var(--k-ink);
  font-family: var(--k-font);
  font-size: 14px;
  line-height: 1.4;
}
.k-shop textarea.k-input {
  height: auto;
  min-height: 110px;
  padding: 12px 14px;
}
.k-shop .k-input:focus,
.k-shop .k-select:focus,
.k-shop textarea.k-input:focus {
  outline: none;
  border-color: var(--k-black);
  box-shadow: 0 0 0 1px var(--k-black);
}
.k-shop .k-input[aria-invalid="true"],
.k-shop .k-select[aria-invalid="true"] {
  border-color: var(--k-error);
}
.k-shop .k-error-msg {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--k-error);
}
.k-shop .k-help {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-shop .k-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--k-ink);
}
.k-shop .k-check input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--k-black);
}
.k-shop .k-check a {
  color: var(--k-black);
  text-decoration: underline;
}

/* notices */
.k-shop .woocommerce-notices-wrapper:empty {
  display: none;
}
.k-shop .woocommerce-message,
.k-shop .woocommerce-info,
.k-shop .woocommerce-error {
  margin: 0 0 20px;
  padding: 14px 18px;
  border: 1px solid var(--k-line);
  border-left: 3px solid var(--k-black);
  background: var(--k-bg-soft);
  font-size: 13px;
  list-style: none;
}
.k-shop .woocommerce-error {
  border-left-color: var(--k-error);
}
.k-shop .woocommerce-error li {
  margin: 0 0 4px;
}
.k-shop .woocommerce-message .button,
.k-shop .woocommerce-info .button {
  float: right;
  margin-left: 12px;
}

/* ==========================================================================
   PLP — archive-product.php
   ========================================================================== */
.k-plp {
  padding-bottom: 72px;
}
.k-plp__head {
  padding-top: 8px;
}
.k-plp__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 18px 0 10px;
}
.k-plp__title {
  margin: 0;
  font-family: var(--k-font-cond);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--k-black);
}
.k-plp__desc {
  max-width: 760px;
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--k-grey);
}
.k-plp__discover {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
}
.k-plp__discover-label {
  font-family: var(--k-font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--k-black);
}
.k-plp__chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 4px 14px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
  font-size: 12px;
  color: var(--k-ink);
  text-decoration: none;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.k-plp__chip:hover,
.k-plp__chip.is-active {
  border-color: var(--k-black);
  background: var(--k-black);
  color: var(--k-white);
  text-decoration: none;
}

.k-plp__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid var(--k-line);
  border-bottom: 1px solid var(--k-line);
}
.k-plp__toolbar-left,
.k-plp__toolbar-right {
  display: flex;
  align-items: center;
  gap: 18px;
}
.k-plp__count {
  font-size: 13px;
  color: var(--k-grey);
}
.k-plp__filter-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--k-black);
  background: var(--k-white);
  color: var(--k-black);
  font-family: var(--k-font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.k-plp__sort {
  display: flex;
  align-items: center;
  gap: 8px;
}
.k-plp__sort label {
  font-size: 12px;
  color: var(--k-grey);
  white-space: nowrap;
}
.k-plp__sort select {
  height: 40px;
  min-width: 190px;
  padding: 0 30px 0 12px;
  border: 1px solid var(--k-line);
  border-radius: 0;
  background: var(--k-white)
    url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E")
    no-repeat right 12px center;
  font-family: var(--k-font);
  font-size: 13px;
  color: var(--k-ink);
  appearance: none;
}
.k-plp__active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px 0 0;
}
.k-plp__active-filters:empty {
  display: none;
}
.k-plp__active-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border: 1px solid var(--k-line);
  background: var(--k-bg-soft);
  font-size: 12px;
  color: var(--k-ink);
}
.k-plp__active-filter button {
  border: 0;
  background: none;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  color: var(--k-grey);
}

.k-plp__layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 48px;
  padding-top: 24px;
}

/* filters */
.k-filters__section {
  border-bottom: 1px solid var(--k-line);
}
.k-filters__section:first-child {
  border-top: 1px solid var(--k-line);
}
.k-filters__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 0;
  border: 0;
  background: none;
  text-align: left;
  font-family: var(--k-font-cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--k-black);
}
.k-filters__toggle .k-filters__chev {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
.k-filters__section.is-open .k-filters__chev {
  transform: rotate(180deg);
}
.k-filters__panel {
  display: none;
  padding: 0 0 16px;
}
.k-filters__section.is-open .k-filters__panel {
  display: block;
}
.k-filters__list {
  margin: 0;
  padding: 0;
  list-style: none;
  max-height: 260px;
  overflow-y: auto;
}
.k-filters__list li {
  margin: 0 0 9px;
}
.k-filters__list label {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: var(--k-ink);
  cursor: pointer;
}
.k-filters__list input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--k-black);
}
.k-filters__list .k-filters__n {
  margin-left: auto;
  font-size: 11px;
  color: var(--k-grey);
}
.k-filters__colors {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.k-filters__color {
  position: relative;
  display: inline-flex;
  width: 26px;
  height: 26px;
  border: 1px solid var(--k-line);
  border-radius: 50%;
  padding: 0;
}
.k-filters__color span {
  position: absolute;
  inset: 3px;
  border-radius: 50%;
}
.k-filters__color.is-active {
  outline: 2px solid var(--k-black);
  outline-offset: 2px;
}
.k-filters__price {
  display: flex;
  align-items: center;
  gap: 8px;
}
.k-filters__price input {
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #b9b9b9;
  border-radius: 0;
  font-size: 13px;
}
.k-filters__price span {
  color: var(--k-grey);
}
.k-filters__reset {
  display: inline-block;
  margin-top: 4px;
  border: 0;
  background: none;
  padding: 0;
  font-size: 12px;
  color: var(--k-grey);
  text-decoration: underline;
}
.k-filters__apply {
  width: 100%;
  margin-top: 20px;
}

.k-shop .k-plp__sidebar button.k-filters__apply {
  display: none;
}
/* product grid */
.k-plp .k-products {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 24px;
}
.k-plp .k-products::before,
.k-plp .k-products::after {
  display: none;
}
.k-plp .k-products li.product,
.k-plp .k-products .product {
  margin: 0;
  padding: 0;
  width: auto;
  float: none;
  list-style: none;
}


/* category SEO copy — reference DOM order: below the product grid */
.k-plp__seo {
  margin-top: 72px;
  padding-top: 40px;
  border-top: 1px solid var(--k-line);
  max-width: 980px;
}
.k-plp__seo-title {
  margin: 0 0 18px;
  font-family: var(--k-font-cond);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--k-black);
}
.k-plp__seo-text {
  font-size: 13px;
  line-height: 1.75;
  color: var(--k-gray-800, #373737);
}
.k-plp__seo-text h3,
.k-plp__seo-text h4 {
  margin: 22px 0 10px;
  font-family: var(--k-font-cond);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.k-plp__seo-text a {
  text-decoration: underline;
}

/* pagination */
.k-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 48px 0 0;
}
.k-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
  font-size: 13px;
  color: var(--k-ink);
}
.k-pagination .page-numbers.current {
  border-color: var(--k-black);
  background: var(--k-black);
  color: var(--k-white);
}
.k-pagination .page-numbers:hover {
  border-color: var(--k-black);
  text-decoration: none;
}
.k-plp__loadmore {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}
.k-plp__loadmore .k-btn {
  min-width: 260px;
}

/* empty state — must stay a 200 page, filters hidden */
.k-plp__empty {
  padding: 80px 20px;
  text-align: center;
  border: 1px solid var(--k-line-soft);
  background: var(--k-bg-softer);
}
.k-plp__empty-title {
  margin: 0 0 10px;
  font-family: var(--k-font-cond);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.k-plp__empty-text {
  margin: 0 auto 22px;
  max-width: 520px;
  font-size: 14px;
  color: var(--k-grey);
}

/* mobile filter drawer + overlay */
.k-drawer {
  position: fixed;
  top: 0;
  z-index: 9990;
  display: flex;
  flex-direction: column;
  width: min(420px, 92vw);
  height: 100vh;
  height: 100dvh;
  background: var(--k-white);
  transition: transform 0.28s ease;
  visibility: hidden;
}
.k-drawer--right {
  right: 0;
  transform: translateX(102%);
}
.k-drawer--left {
  left: 0;
  transform: translateX(-102%);
}
.k-drawer.is-open {
  visibility: visible;
  transform: translateX(0);
}
.k-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--k-line);
}
.k-drawer__title {
  margin: 0;
  font-family: var(--k-font-cond);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--k-line);
  background: none;
  font-size: 20px;
  line-height: 1;
  color: var(--k-black);
}
.k-drawer__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0 20px 24px;
}
.k-drawer__foot {
  padding: 16px 20px;
  border-top: 1px solid var(--k-line);
}

.k-overlay {
  position: fixed;
  inset: 0;
  z-index: 9980;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}
.k-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
body.k-no-scroll {
  overflow: hidden;
}

/* Added-to-cart drawer — client reference layout:
   head (green check + close), promo strip, milestone progress, product summary
   with quantity stepper, "Könnte Dir auch gefallen" recommendations and pinned
   actions. Desktop 440px right-hand drawer, full screen on mobile. */
.k-added-modal {
  position: fixed;
  inset: 0;
  z-index: 10010;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  padding: 0;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.k-added-modal.is-open {
  visibility: visible;
  opacity: 1;
}
.k-added-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.k-added-modal__box {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(440px, 100%);
  height: 100%;
  max-height: 100dvh;
  margin-left: auto;
  overflow: hidden;
  background: var(--k-white, #fff);
  box-shadow: -18px 0 60px rgba(0, 0, 0, 0.25);
  transform: translateX(100%);
  transition: transform 0.28s ease;
}
.k-added-modal.is-open .k-added-modal__box {
  transform: translateX(0);
}
.k-added-modal__head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--k-line, #ddd);
}
.k-added-modal__check {
  flex: 0 0 auto;
  display: block;
  width: 28px;
  height: 28px;
  color: #0b7a3f;
}
.k-added-modal__check svg {
  display: block;
  width: 100%;
  height: 100%;
}
.k-added-modal__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--k-black, #000);
  font: 700 15px/1.25 var(--k-font-cond, Arial, sans-serif);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.k-added-modal__close {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--k-black, #000);
  cursor: pointer;
}
.k-added-modal__close svg {
  width: 20px;
  height: 20px;
}
.k-added-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 16px 20px 22px;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.k-added-modal__promo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #ecece8;
  background: #f3f3f0;
  color: var(--k-ink, #1a1a1a);
  font-size: 12px;
  line-height: 1.5;
}
.k-added-modal__promo strong {
  color: var(--k-black, #000);
  font: 700 12px/1.35 var(--k-font-cond, Arial, sans-serif);
  letter-spacing: 0.05em;
}
.k-added-modal__promo span {
  display: block;
}
.k-added-modal__progress {
  margin: 0 0 18px;
}
.k-added-modal__bar {
  position: relative;
  height: 6px;
  border-radius: 999px;
  background: #e4e4df;
}
.k-added-modal__bar-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--k-black, #000);
  transition: width 0.3s ease;
}
.k-added-modal__milestone {
  position: absolute;
  top: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
}
.k-added-modal__milestone-dot {
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid #b9b9b3;
  border-radius: 50%;
  background: #fff;
  box-sizing: border-box;
}
.k-added-modal__milestone.is-reached .k-added-modal__milestone-dot {
  border-color: var(--k-black, #000);
  background: var(--k-black, #000);
}
.k-added-modal__bar-labels {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  color: var(--k-grey, #6e6e6e);
  font-size: 11px;
}
.k-added-modal__note {
  margin: 9px 0 0;
  color: var(--k-ink, #1a1a1a);
  font-size: 12px;
  line-height: 1.5;
}
.k-added-modal__note-ok {
  color: #0b7a3f;
  font-weight: 700;
}
.k-added-modal__samples {
  margin: 4px 0 0;
  color: var(--k-grey, #6e6e6e);
  font-size: 11px;
}
.k-added-modal__product {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 16px 0 18px;
  border-top: 1px solid var(--k-line, #ddd);
  border-bottom: 1px solid var(--k-line, #ddd);
}
.k-added-modal__img {
  display: block;
  width: 84px;
  height: 84px;
  object-fit: contain;
  background: #f5f5f2;
}
.k-added-modal__info {
  min-width: 0;
}
.k-added-modal__name {
  margin: 0 0 4px;
  color: var(--k-black, #000);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.k-added-modal__desc {
  display: -webkit-box;
  margin: 0 0 6px;
  overflow: hidden;
  color: var(--k-grey, #6e6e6e);
  font-size: 12px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.k-added-modal__meta {
  margin: 0 0 8px;
  color: var(--k-grey, #6e6e6e);
  font-size: 11px;
}
.k-added-modal__qty-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
}
.k-added-modal__qty-label {
  color: var(--k-ink, #1a1a1a);
  font-size: 12px;
}
.k-added-qty {
  display: inline-flex;
  align-items: center;
  height: 34px;
  border: 1px solid #cfcfc9;
  background: #fff;
}
.k-added-qty__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: var(--k-black, #000);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.k-added-qty__btn:hover {
  background: #f2f2ee;
}
.k-added-qty__input {
  width: 38px;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: var(--k-black, #000);
  font: 600 13px/1 var(--k-font, Arial, sans-serif);
  text-align: center;
  -moz-appearance: textfield;
}
.k-added-qty__input::-webkit-outer-spin-button,
.k-added-qty__input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.k-added-modal__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin: 0;
}
.k-added-modal__price-struck {
  color: #8f8f8f;
  font-size: 12px;
}
.k-added-modal__price-struck[hidden] {
  display: none;
}
.k-added-modal__price-sale {
  color: var(--k-black, #000);
  font-size: 15px;
  font-weight: 700;
}
.k-added-modal__qty-msg {
  margin: 4px 0 0;
  color: var(--k-error, #b00020);
  font-size: 11px;
}
.k-added-modal__qty-msg:empty {
  display: none;
}
.k-added-modal__recs {
  margin: 18px 0 0;
}
.k-added-modal__recs-title {
  margin: 0 0 12px;
  color: var(--k-black, #000);
  font: 700 13px/1.25 var(--k-font-cond, Arial, sans-serif);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-added-modal__recs-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.k-added-modal__rec {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.k-added-modal__rec-media {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: #f5f5f2;
}
.k-added-modal__rec-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.k-added-modal__rec-name {
  display: -webkit-box;
  overflow: hidden;
  color: var(--k-black, #000);
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 600;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.k-added-modal__rec-name:hover {
  text-decoration: underline;
}
.k-added-modal__rec-spec {
  color: var(--k-grey, #6e6e6e);
  font-size: 11px;
  line-height: 1.3;
}
.k-added-modal__rec-price {
  margin-top: auto;
  color: var(--k-black, #000);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
}
.k-added-modal__rec-price del {
  color: #8f8f8f;
  font-size: 11px;
  font-weight: 400;
}
.k-added-modal__rec-price ins {
  text-decoration: none;
}
.k-added-modal__rec-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin-top: 2px;
  padding: 8px 4px;
  background: var(--k-black, #000);
  color: var(--k-white, #fff) !important;
  font: 700 9.5px/1.15 var(--k-font-cond, Arial, sans-serif);
  letter-spacing: 0.04em;
  text-align: center;
}
.k-added-modal__rec-btn:hover,
.k-added-modal__rec-btn:focus-visible {
  background: #1a1a1a;
  color: var(--k-white, #fff) !important;
  text-decoration: none;
}
.k-added-modal__foot {
  flex: 0 0 auto;
  display: grid;
  gap: 10px;
  padding: 14px 20px calc(16px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--k-line, #ddd);
  background: var(--k-white, #fff);
}
.k-added-modal__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid var(--k-black, #000);
  background: var(--k-black, #000);
  color: var(--k-white, #fff);
  font: 700 12px/1.1 var(--k-font-cond, Arial, sans-serif);
  letter-spacing: 0.1em;
  text-align: center;
  cursor: pointer;
}
.k-added-modal__cta:hover,
.k-added-modal__cta:focus-visible {
  background: #1a1a1a;
  color: var(--k-white, #fff);
  text-decoration: none;
}
.k-added-modal__cta--ghost {
  background: transparent;
  color: var(--k-black, #000);
}
.k-added-modal__cta--ghost:hover,
.k-added-modal__cta--ghost:focus-visible {
  background: var(--k-black, #000);
  color: var(--k-white, #fff);
}

/* `.k-shop a` is more specific than the button classes on the PDP; re-assert
   the drawer CTA colours so link-styled buttons stay legible. */
.k-shop .k-added-modal__cta {
  color: var(--k-white, #fff);
}
.k-shop .k-added-modal__cta--ghost {
  color: var(--k-black, #000);
}
.k-shop .k-added-modal__cta:hover,
.k-shop .k-added-modal__cta:focus-visible {
  color: var(--k-white, #fff);
}
@media (max-width: 767px) {
  .k-added-modal__box {
    width: 100%;
  }
  .k-added-modal__head {
    padding: 14px 16px;
  }
  .k-added-modal__title {
    font-size: 14px;
    letter-spacing: 0.06em;
  }
  .k-added-modal__body {
    padding: 14px 16px 18px;
  }
  .k-added-modal__foot {
    padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px));
  }
  .k-added-modal__promo {
    margin-bottom: 14px;
  }
  .k-added-modal__product {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
  }
  .k-added-modal__img {
    width: 76px;
    height: 76px;
  }
  .k-added-modal__recs-track {
    gap: 8px;
  }
  .k-added-modal__rec-btn {
    font-size: 9px;
    letter-spacing: 0.02em;
  }
  .k-added-modal__bar-labels {
    font-size: 10.5px;
  }
  /* Keep promo + product + all three recommendation buttons visible in the
     390x844 viewport without forcing the user to scroll. */
  .k-added-modal__promo {
    padding: 10px 12px;
  }
  .k-added-modal__progress {
    margin-bottom: 12px;
  }
  .k-added-modal__product {
    padding: 12px 0;
  }
  .k-added-modal__recs {
    margin-top: 12px;
  }
  .k-added-modal__recs-title {
    margin-bottom: 8px;
  }
  .k-added-modal__rec {
    gap: 4px;
  }
  .k-added-modal__rec-media {
    aspect-ratio: auto;
    height: 100px;
  }
}

/* ==========================================================================
   PDP — single-product.php
   ========================================================================== */
.k-pdp {
  padding-bottom: 72px;
}
.k-pdp__top {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
  gap: 56px;
  padding: 24px 0 56px;
}
.k-pdp__media {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.k-pdp__gallery {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 620px;
  overflow-y: auto;
  scrollbar-width: thin;
  padding-right: 2px;
}
.k-pdp__thumb {
  display: block;
  width: 84px;
  height: 84px;
  padding: 0;
  border: 1px solid transparent;
  background: var(--k-bg-soft);
  overflow: hidden;
}
.k-pdp__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.k-pdp__thumb.is-active {
  border-color: var(--k-black);
}
.k-pdp__stage {
  position: relative;
  background: var(--k-bg-soft);
}
.k-pdp__main {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--k-bg-soft);
  cursor: zoom-in;
}
.k-pdp__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.k-pdp__wish {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background: rgba(255, 255, 255, 0.85);
  color: var(--k-black);
}
.k-pdp__wish.is-active svg {
  fill: var(--k-black);
}

.k-pdp__buy {
  position: sticky;
  top: 24px;
  align-self: start;
}
.k-pdp__brand {
  margin: 0 0 6px;
  font-family: var(--k-font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--k-grey);
}
.k-pdp__title {
  margin: 0 0 8px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.22;
  color: var(--k-black);
}
.k-pdp__subtitle {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--k-grey);
}
.k-pdp__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-stars {
  display: inline-flex;
  gap: 2px;
  color: #f0a500;
}
.k-stars svg {
  width: 14px;
  height: 14px;
}
.k-pdp__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  margin: 18px 0 6px;
}
.k-price--struck {
  font-size: 14px;
  color: var(--k-grey);
  text-decoration: line-through;
}
.k-price--sale {
  font-size: 22px;
  font-weight: 700;
  color: var(--k-black);
}
.k-price--discount {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.k-pdp__tax {
  margin: 0 0 18px;
  font-size: 11px;
  color: var(--k-grey);
}
.k-pdp__options {
  margin: 0 0 18px;
}
.k-pdp__option {
  margin: 0 0 16px;
}
.k-pdp__option-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
}
.k-pdp__option-label .k-pdp__option-value {
  font-weight: 400;
  color: var(--k-grey);
}
.k-pdp__swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.k-pdp__swatch {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
  font-size: 13px;
  color: var(--k-ink);
  transition: border-color 0.12s ease;
}
.k-pdp__swatch:hover {
  border-color: #7d7d7d;
}
.k-pdp__swatch.is-active,
.k-pdp__swatch[aria-checked="true"] {
  border-color: var(--k-black);
  box-shadow: inset 0 0 0 1px var(--k-black);
  font-weight: 600;
}
.k-pdp__swatch.is-disabled {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}
.k-pdp__swatch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.k-pdp__color-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.2);
}
.k-pdp__qty-row {
  display: flex;
  align-items: stretch;
  gap: 14px;
  margin: 0 0 14px;
}
.k-qty {
  display: inline-flex;
  align-items: stretch;
  height: 56px;
  border: 1px solid #b9b9b9;
  background: var(--k-white);
}
.k-qty__btn {
  width: 40px;
  border: 0;
  background: none;
  font-size: 18px;
  line-height: 1;
  color: var(--k-black);
}
.k-qty__btn:hover {
  background: var(--k-bg-soft);
}
.k-qty__input {
  width: 46px;
  height: 100%;
  padding: 0;
  border: 0;
  text-align: center;
  font-size: 14px;
  font-family: var(--k-font);
  color: var(--k-ink);
  -moz-appearance: textfield;
}
.k-qty__input::-webkit-outer-spin-button,
.k-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.k-pdp__add {
  flex: 1 1 auto;
  min-height: 56px;
  font-size: 14px;
}
.k-pdp__add.is-loading {
  position: relative;
  color: transparent;
}
.k-pdp__add.is-loading::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: k-spin 0.8s linear infinite;
}
@keyframes k-spin {
  to {
    transform: rotate(360deg);
  }
}
.k-pdp__wish-row {
  display: flex;
  justify-content: flex-end;
  margin: -4px 0 14px;
}
.k-pdp__wishlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 0;
  background: none;
  padding: 0;
  font-size: 12px;
  color: var(--k-grey);
}
.k-pdp__wishlink.is-active {
  color: var(--k-black);
}
.k-pdp__wishlink.is-active svg {
  fill: var(--k-black);
}
.k-pdp__stock {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 18px 0;
  padding: 14px 16px;
  border: 1px solid var(--k-line-soft);
  background: var(--k-bg-softer);
}
.k-pdp__stock-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  color: var(--k-ink);
}
.k-pdp__stock-line strong {
  font-weight: 700;
}
.k-pdp__stock-bar {
  height: 5px;
  width: 100%;
  background: #e6e6e6;
}
.k-pdp__stock-bar span {
  display: block;
  height: 100%;
  background: var(--k-black);
  transition: width 0.4s ease;
}
.k-pdp__viewers {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--k-ink);
}
.k-pdp__viewers-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e10600;
  animation: k-pulse 1.6s ease infinite;
}
@keyframes k-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.35;
    transform: scale(0.8);
  }
}
.k-pdp__countdown {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.k-pdp__sku {
  margin: 0 0 14px;
  font-size: 11px;
  color: var(--k-grey);
}


/* PDP gallery without thumbnails (product media not imported yet) */
.k-pdp__media--no-thumbs {
  grid-template-columns: minmax(0, 1fr);
}
.k-pdp__media--no-thumbs .k-pdp__stage {
  grid-column: 1 / -1;
}
.k-pdp__stage {
  min-height: 420px;
}
@media (max-width: 767px) {
  .k-pdp__stage {
    min-height: 320px;
  }
}

/* trust / USP row */
.k-usp {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  margin: 22px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--k-line);
}
.k-usp__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--k-ink);
}
.k-usp__item .k-icon {
  width: 22px;
  height: 22px;
  color: var(--k-black);
}
.k-usp__item strong {
  display: block;
  font-size: 12px;
  font-weight: 700;
}

/* PDP content sections */
.k-pdp__section {
  padding: 56px 0;
  border-top: 1px solid var(--k-line);
}
.k-pdp__section--soft {
  background: var(--k-bg-softer);
}
.k-pdp__intro {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 56px;
  align-items: start;
}
.k-pdp__intro h2,
.k-pdp__intro h3 {
  font-family: var(--k-font-cond);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.k-pdp__intro h2 {
  margin: 0 0 18px;
  font-size: 24px;
}
.k-pdp__intro h3 {
  margin: 26px 0 10px;
  font-size: 16px;
}
.k-pdp__intro p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--k-ink);
}
.k-pdp__intro-media img {
  width: 100%;
  height: auto;
  background: var(--k-bg-soft);
}

/* accordions */
.k-acc {
  border-top: 1px solid var(--k-line);
}
.k-acc__item {
  border-bottom: 1px solid var(--k-line);
}
.k-acc__head {
  margin: 0;
}
.k-acc__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 20px 0;
  border: 0;
  background: none;
  text-align: left;
  font-family: var(--k-font-cond);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--k-black);
}
.k-acc__toggle .k-acc__icon {
  position: relative;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}
.k-acc__toggle .k-acc__icon::before,
.k-acc__toggle .k-acc__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 1px;
  background: var(--k-black);
  transition: transform 0.2s ease;
}
.k-acc__toggle .k-acc__icon::after {
  transform: rotate(90deg);
}
.k-acc__item.is-open .k-acc__toggle .k-acc__icon::after {
  transform: rotate(0deg);
}
.k-acc__panel {
  display: none;
  padding: 0 0 24px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--k-ink);
  max-width: 900px;
}
.k-acc__item.is-open .k-acc__panel {
  display: block;
}
.k-acc__panel p {
  margin: 0 0 12px;
}
.k-acc__panel ul {
  margin: 0 0 12px;
  padding-left: 18px;
}

/* before/after + FAQ */
.k-cols--2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  align-items: start;
}
.k-faq-list {
  max-width: 900px;
  margin: 0 auto;
}
.k-faq-list .k-acc__toggle {
  font-size: 14px;
  letter-spacing: 0.02em;
}

/* related products rail */
.k-rail__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.k-rail__title {
  margin: 0;
  font-family: var(--k-font-cond);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  flex: 1 1 auto;
}
.k-rail {
  position: relative;
}
.k-rail__viewport {
  overflow: hidden;
}
.k-rail__track {
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.k-rail__track {
  width: max-content;
}
.k-rail__track > .k-card,
.k-rail__track > li {
  flex: 0 0 265px;
  width: 265px;
  max-width: 265px;
  list-style: none;
  margin: 0;
}
.k-rail__nav {
  display: flex;
  gap: 8px;
}
.k-rail__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
  color: var(--k-black);
  font-size: 16px;
}
.k-rail__btn:hover {
  border-color: var(--k-black);
}
.k-rail__btn[disabled] {
  opacity: 0.35;
  pointer-events: none;
}

/* ==========================================================================
   Shared product card fallback (used only if theme-core card missing;
   theme-core owns the primary card styles in base.css)
   ========================================================================== */
.k-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--k-white);
}
.k-card__media {
  position: relative;
  display: block;
  background: var(--k-bg-soft);
  overflow: hidden;
}
.k-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  transition: opacity 0.25s ease;
}
.k-card__badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  padding: 3px 8px;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.k-card__wish {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  background: rgba(255, 255, 255, 0.86);
  color: var(--k-black);
}
.k-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 14px 4px 0;
  text-align: center;
}
.k-card__brand {
  margin: 0 0 4px;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--k-grey);
}
.k-card__name {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}
.k-card__sub {
  margin: 0 0 6px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--k-grey);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.k-card__rating {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 2px 0 6px;
  font-size: 11px;
  color: var(--k-grey);
}
.k-card__rating .k-stars svg {
  width: 12px;
  height: 12px;
}
.k-card__prices {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin: 6px 0 4px;
}
.k-card__prices .k-price--sale {
  font-size: 16px;
}
.k-card__prices .k-price--struck {
  font-size: 12px;
}
.k-card__discount {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 10px;
  font-weight: 700;
}
.k-card__options {
  margin: 2px 0 10px;
  font-size: 11px;
  color: var(--k-grey);
}
.k-card__add {
  margin-top: auto;
  width: 100%;
  min-height: 40px;
  font-size: 11px;
}
.k-card__colors {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0 0 8px;
}
.k-card__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.18);
}
.k-card__dot--more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  color: var(--k-grey);
  border-color: transparent;
}

/* ==========================================================================
   CART
   ========================================================================== */
.k-cart {
  padding-bottom: 80px;
}
.k-cart__title {
  margin: 24px 0 28px;
  font-family: var(--k-font-cond);
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.k-cart__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 388px;
  gap: 48px;
  align-items: start;
}
.k-cart__items {
  border-top: 1px solid var(--k-line);
}
.k-cart-item {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) 150px 150px;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--k-line);
}
.k-cart-item__media {
  display: block;
  background: var(--k-bg-soft);
}
.k-cart-item__media img {
  display: block;
  width: 118px;
  height: 118px;
  object-fit: contain;
}
.k-cart-item__info {
  min-width: 0;
}
.k-cart-item__name {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
}
.k-cart-item__name a:hover {
  text-decoration: underline;
}
.k-cart-item__meta {
  margin: 0 0 6px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-cart-item__price {
  font-size: 13px;
  color: var(--k-ink);
}
.k-cart-item__qty {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.k-cart-item__qty .k-qty {
  height: 44px;
}
.k-cart-item__qty .k-qty__btn {
  width: 32px;
}
.k-cart-item__qty .k-qty__input {
  width: 40px;
}
.k-cart-item__total {
  text-align: right;
  font-size: 15px;
  font-weight: 700;
}
.k-cart-item__remove {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  border: 0;
  background: none;
  padding: 0;
  font-size: 11px;
  color: var(--k-grey);
  text-decoration: underline;
}
.k-cart__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 24px 0 0;
}
.k-cart__update {
  display: inline-flex;
  min-height: 44px;
}
.k-cart__continue {
  font-size: 12px;
  color: var(--k-grey);
  text-decoration: underline;
}

.k-cart__summary {
  position: sticky;
  top: 24px;
  padding: 28px 26px;
  background: var(--k-bg-soft);
}
.k-cart__summary-title {
  margin: 0 0 20px;
  font-family: var(--k-font-cond);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-cart__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  font-size: 14px;
}
.k-cart__row--total {
  margin-top: 6px;
  padding-top: 18px;
  border-top: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.k-cart__row--total .amount {
  font-size: 22px;
}
.k-cart__shipping-note {
  margin: 4px 0 18px;
  padding: 12px 0 0;
  border-top: 1px solid var(--k-line-soft);
  font-size: 12px;
  color: var(--k-grey);
}
.k-free-ship {
  margin: 0 0 20px;
  padding: 14px 16px;
  background: var(--k-white);
  border: 1px solid var(--k-line);
}
.k-free-ship__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--k-ink);
}
.k-free-ship__label strong {
  font-weight: 700;
}
.k-free-ship.is-complete .k-free-ship__label {
  display: block;
}
.k-free-ship.is-complete .k-free-ship__label strong {
  display: inline;
  color: var(--k-success);
}
.k-free-ship.is-complete .k-free-ship__bar span {
  background: var(--k-success);
}
.k-free-ship__bar {
  height: 6px;
  background: #e6e6e6;
  overflow: hidden;
}
.k-free-ship__bar span {
  display: block;
  height: 100%;
  background: var(--k-black);
  transition: width 0.4s ease;
}
.k-cart__pay {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--k-line);
}
.k-pay-label {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-pay-icons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.k-pay-icons img {
  display: block;
  height: 24px;
  width: auto;
}
.k-pay-icons--large img {
  height: 28px;
}
.k-pay-icons--26 {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: 8px;
}
.k-pay-icons--26 img {
  width: 100%;
  height: 26px;
  object-fit: contain;
  padding: 3px;
  border: 1px solid var(--k-line-soft);
  background: var(--k-white);
}


.k-cart-item__price .k-price--struck {
  font-size: 12px;
  color: var(--k-grey);
  text-decoration: line-through;
  margin-right: 6px;
}
.k-cart-item__price .k-price--sale {
  font-size: 14px;
  font-weight: 700;
}
.k-cart-item__price .k-price--discount {
  margin-left: 6px;
  padding: 1px 5px;
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 10px;
  font-weight: 700;
}

/* empty cart / checkout empty */
.k-empty {
  max-width: 620px;
  margin: 48px auto 80px;
  text-align: center;
}
.k-empty__icon {
  margin: 0 auto 18px;
  width: 64px;
  height: 64px;
  color: #c4c4c4;
}
.k-empty__title {
  margin: 0 0 10px;
  font-family: var(--k-font-cond);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.k-empty__text {
  margin: 0 0 26px;
  font-size: 14px;
  color: var(--k-grey);
}

/* cross sells / cart rail */
.k-cart__cross {
  margin-top: 64px;
}

/* ==========================================================================
   CHECKOUT
   ========================================================================== */
.k-checkout {
  padding-bottom: 80px;
}
.k-checkout__title {
  margin: 24px 0 8px;
  font-family: var(--k-font-cond);
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.k-checkout__steps {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 28px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-checkout__steps .is-current {
  color: var(--k-black);
  font-weight: 700;
}
.k-checkout__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 440px;
  gap: 56px;
  align-items: start;
}
.k-checkout__form {
  min-width: 0;
}
.k-checkout__section {
  margin: 0 0 34px;
}
.k-checkout__section-title {
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-checkout__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}
.k-checkout__cols .k-field--full,
.k-checkout__cols .form-row-wide,
.k-checkout__cols .form-row-full {
  grid-column: 1 / -1;
}
.k-checkout__note {
  margin: 0 0 18px;
  padding: 12px 14px;
  background: var(--k-bg-soft);
  font-size: 12px;
  color: var(--k-grey);
}
.k-checkout .woocommerce-billing-fields h3,
.k-checkout .woocommerce-shipping-fields h3,
.k-checkout .woocommerce-additional-fields h3,
.k-checkout .woocommerce-account-fields h3 {
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-checkout .woocommerce-billing-fields__field-wrapper,
.k-checkout .woocommerce-shipping-fields__field-wrapper,
.k-checkout .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}
.k-checkout .form-row {
  margin: 0 0 16px;
  padding: 0;
}
.k-checkout .form-row-full,
.k-checkout .form-row-wide,
.k-checkout .woocommerce-additional-fields .form-row,
.k-checkout .notes {
  grid-column: 1 / -1;
}
.k-checkout .form-row label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--k-ink);
}
.k-checkout .form-row .required {
  color: var(--k-error);
  text-decoration: none;
}
.k-checkout .form-row input.input-text,
.k-checkout .form-row select,
.k-checkout .form-row textarea {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid #b9b9b9;
  border-radius: 0;
  background: var(--k-white);
  font-family: var(--k-font);
  font-size: 14px;
  color: var(--k-ink);
}
.k-checkout .form-row textarea {
  height: auto;
  min-height: 100px;
  padding: 12px 14px;
}
.k-checkout .form-row input.input-text:focus,
.k-checkout .form-row select:focus,
.k-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--k-black);
  box-shadow: 0 0 0 1px var(--k-black);
}
.k-checkout .form-row.woocommerce-invalid input.input-text,
.k-checkout .form-row.woocommerce-invalid select {
  border-color: var(--k-error);
}
.k-checkout .select2-container .select2-selection--single {
  height: 48px;
  border: 1px solid #b9b9b9;
  border-radius: 0;
}
.k-checkout .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.45;
}
.k-checkout .woocommerce-form__label-for-checkbox input {
  margin-top: 2px;
}
.k-checkout .ship-to-different-address {
  margin: 0 0 4px;
  font-size: 14px;
}
.k-checkout .woocommerce-account-fields .create-account {
  margin-top: 10px;
}

.k-checkout__summary {
  position: sticky;
  top: 24px;
  padding: 28px 26px;
  background: var(--k-bg-soft);
  border: 1px solid var(--k-line-soft);
}
.k-checkout__summary-title {
  margin: 0 0 18px;
  font-family: var(--k-font-cond);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-checkout__items {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--k-line);
}
.k-checkout__item {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--k-line-soft);
}
.k-checkout__item:first-child {
  border-top: 0;
}
.k-checkout__item-img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  background: var(--k-white);
}
.k-checkout__item-name {
  margin: 0 0 2px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}
.k-checkout__item-meta {
  margin: 0;
  font-size: 11px;
  color: var(--k-grey);
}
.k-checkout__item-total {
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.k-checkout__totals {
  margin: 0;
}
.k-checkout__totals .k-cart__row,
.k-checkout__totals .cart-subtotal,
.k-checkout__totals .order-total {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  font-size: 14px;
}
.k-checkout__totals .order-total {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 18px;
  font-weight: 700;
}
.k-checkout__totals .order-total .amount {
  font-size: 22px;
}
.k-checkout .woocommerce-shipping-totals td,
.k-checkout .woocommerce-shipping-totals th {
  padding: 0;
}
.k-checkout .woocommerce-shipping-destination {
  margin: 6px 0 0;
  font-size: 11px;
  color: var(--k-grey);
}


/* checkout review table rows (fragment-safe: template root IS the table) */
.k-checkout__totals {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}
.k-checkout__totals .k-checkout__item-cell {
  padding: 12px 0;
  border-bottom: 1px solid var(--k-line-soft);
  text-align: left;
  vertical-align: top;
}
.k-checkout__totals .k-checkout__item-total {
  padding: 12px 0 12px 16px;
  border-bottom: 1px solid var(--k-line-soft);
  text-align: right;
  vertical-align: top;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  width: 1%;
}

/* the review template reuses .k-checkout__item on a <tr>; keep it a real table row */
.k-checkout__totals tr.k-checkout__item {
  display: table-row;
}
.k-checkout__totals tr.k-checkout__item > .k-checkout__item-cell {
  display: table-cell;
  width: 100%;
}
.k-checkout__totals .k-checkout__item-inner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
}
.k-checkout__totals .k-checkout__item-total {
  margin-left: auto;
  flex: 0 0 auto;
}
.k-checkout__totals .k-checkout__item-img img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  background: var(--k-white);
}
.k-checkout__totals .k-checkout__item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}
.k-checkout__totals .k-checkout__item-name {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}
.k-checkout__totals .k-checkout__item-meta {
  font-size: 11px;
  color: var(--k-grey);
}
.k-checkout__totals tfoot th,
.k-checkout__totals tfoot td {
  padding: 9px 0;
  font-size: 14px;
  text-align: left;
  font-weight: 400;
}
.k-checkout__totals tfoot td {
  text-align: right;
}
.k-checkout__totals tfoot .order-total th,
.k-checkout__totals tfoot .order-total td {
  padding-top: 16px;
  border-top: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 18px;
  font-weight: 700;
}

/* payment area */
.k-payment {
  margin: 0 0 26px;
  padding: 22px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
}
.k-payment__title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 6px;
  font-family: var(--k-font-cond);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-payment__title .k-icon {
  width: 22px;
  height: 22px;
}
.k-payment__sub {
  margin: 0 0 14px;
  font-size: 12px;
  color: var(--k-grey);
}
.k-payment__options {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--k-line-soft);
  background: var(--k-bg-softer);
  font-size: 13px;
}
.k-payment__radio {
  width: 18px;
  height: 18px;
  accent-color: var(--k-black);
}
.k-payment__charity {
  margin: 16px 0 0;
  padding: 14px 16px;
  background: var(--k-bg-soft);
  border-left: 3px solid var(--k-black);
  font-size: 12px;
  line-height: 1.6;
  color: var(--k-ink);
}
.k-payment__charity strong {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
}
.k-terms-box {
  margin: 0 0 20px;
  padding: 16px 18px;
  border: 1px solid var(--k-line-soft);
  background: var(--k-bg-softer);
}
.k-terms-box .k-check {
  margin-bottom: 10px;
}
.k-terms-box .k-check:last-child {
  margin-bottom: 0;
}
.k-checkout__submit {
  width: 100%;
  min-height: 58px;
  font-size: 15px;
  letter-spacing: 0.04em;
}
.k-checkout__submit-note {
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: var(--k-grey);
  text-align: center;
}
.k-checkout__trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--k-line);
}
.k-checkout__trust .k-usp__item {
  font-size: 11px;
}
.k-checkout__coupon {
  margin: 0 0 18px;
}
.k-checkout__coupon summary {
  cursor: pointer;
  font-size: 12px;
  color: var(--k-grey);
}
.k-checkout__coupon .form-row {
  margin: 10px 0 0;
}

/* order received / thankyou */
.k-thankyou {
  max-width: 980px;
  margin: 0 auto;
  padding: 24px 0 80px;
}
.k-thankyou__title {
  margin: 0 0 10px;
  font-family: var(--k-font-cond);
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-align: center;
}
.k-thankyou__lead {
  margin: 0 0 30px;
  font-size: 15px;
  color: var(--k-grey);
  text-align: center;
}
.k-thankyou__card {
  padding: 28px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
}
.k-thankyou .order_details,
.k-thankyou .woocommerce-order-details__title,
.k-thankyou .woocommerce-column__title {
  font-family: var(--k-font-cond);
  letter-spacing: 0.03em;
}
.k-thankyou .wc-item-meta,
.k-thankyou .wc-bacs-bank-details {
  font-size: 13px;
}
.k-thankyou .woocommerce-table--order-details {
  width: 100%;
  border-collapse: collapse;
}
.k-thankyou .woocommerce-table--order-details th,
.k-thankyou .woocommerce-table--order-details td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--k-line-soft);
  text-align: left;
  font-size: 13px;
}
.k-thankyou .woocommerce-table--order-details thead th {
  border-bottom: 1px solid var(--k-line);
  font-family: var(--k-font-cond);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-thankyou .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}
.k-thankyou .woocommerce-order-overview li {
  padding: 14px 16px;
  background: var(--k-bg-soft);
  border: 0;
  float: none;
  margin: 0;
  font-size: 12px;
  color: var(--k-grey);
}
.k-thankyou .woocommerce-order-overview li strong {
  display: block;
  margin-top: 4px;
  font-family: var(--k-font-cond);
  font-size: 15px;
  color: var(--k-ink);
}

/* ==========================================================================
   ACCOUNT
   ========================================================================== */
.k-account {
  padding-bottom: 80px;
}
.k-account__title {
  margin: 24px 0 28px;
  font-family: var(--k-font-cond);
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.k-auth {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  max-width: 1040px;
  margin: 0 auto;
  padding: 12px 0 40px;
}
.k-auth__col {
  padding: 34px 36px;
  border: 1px solid var(--k-line);
  background: var(--k-white);
}
.k-auth__col--accent {
  background: var(--k-bg-soft);
}
.k-auth__heading {
  margin: 0 0 6px;
  font-family: var(--k-font-cond);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: center;
}
.k-auth__sub {
  margin: 0 0 22px;
  font-size: 12px;
  color: var(--k-grey);
  text-align: center;
}
.k-auth .woocommerce-form-row,
.k-auth .form-row {
  margin: 0 0 16px;
  padding: 0;
}
.k-auth label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
}
.k-auth input.input-text,
.k-auth input[type="text"],
.k-auth input[type="email"],
.k-auth input[type="password"] {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid #b9b9b9;
  border-radius: 0;
  font-size: 14px;
}
.k-auth input:focus {
  outline: none;
  border-color: var(--k-black);
  box-shadow: 0 0 0 1px var(--k-black);
}
.k-auth .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-size: 12px;
}
.k-auth .woocommerce-LostPassword {
  margin: 12px 0 0;
  font-size: 12px;
}
.k-auth .woocommerce-LostPassword a {
  text-decoration: underline;
  color: var(--k-grey);
}
.k-auth .k-btn {
  width: 100%;
  margin-top: 6px;
}
.k-auth .woocommerce-privacy-policy-text {
  margin: 0 0 14px;
  font-size: 11px;
  color: var(--k-grey);
}
.k-auth__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0;
  font-size: 11px;
  color: var(--k-grey);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.k-auth__divider::before,
.k-auth__divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--k-line);
}
.k-auth__benefits {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  font-size: 12px;
  color: var(--k-grey);
}
.k-auth__benefits li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 8px;
}
.k-auth__benefits .k-icon {
  width: 16px;
  height: 16px;
  color: var(--k-black);
}

/* logged-in account */
.k-myaccount {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 48px;
  align-items: start;
  padding-bottom: 60px;
}
.k-myaccount__nav {
  border-top: 1px solid var(--k-line);
}
.k-myaccount__nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.k-myaccount__nav li {
  border-bottom: 1px solid var(--k-line);
}
.k-myaccount__nav a {
  display: block;
  padding: 13px 0;
  font-size: 13px;
  color: var(--k-ink);
}
.k-myaccount__nav a:hover,
.k-myaccount__nav li.is-active a {
  color: var(--k-black);
  font-weight: 600;
  text-decoration: none;
}
.k-myaccount__content {
  min-width: 0;
}
.k-myaccount__content h2,
.k-myaccount__content h3 {
  font-family: var(--k-font-cond);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.k-myaccount__content h2 {
  font-size: 22px;
  margin: 0 0 16px;
}
.k-myaccount__content p {
  font-size: 14px;
  line-height: 1.65;
}
.k-myaccount__content .woocommerce-MyAccount-orders,
.k-myaccount__content table {
  width: 100%;
  border-collapse: collapse;
}
.k-myaccount__content .woocommerce-orders-table th,
.k-myaccount__content .woocommerce-orders-table td,
.k-myaccount__content table th,
.k-myaccount__content table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--k-line-soft);
  text-align: left;
  font-size: 13px;
}
.k-myaccount__content .woocommerce-orders-table thead th {
  font-family: var(--k-font-cond);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--k-line);
}
.k-myaccount__content .woocommerce-button,
.k-myaccount__content button.button,
.k-myaccount__content a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 18px;
  border: 1px solid var(--k-black);
  background: var(--k-black);
  color: var(--k-white);
  font-family: var(--k-font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.k-lostpw {
  max-width: 520px;
  margin: 0 auto;
  padding: 20px 0 60px;
}
.k-lostpw .k-field {
  margin-bottom: 18px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1280px) {
  .k-shop {
    --k-pad: 32px;
  }
  .k-pdp__top {
    gap: 36px;
  }
  .k-plp .k-products {
    gap: 32px 20px;
  }
  .k-rail__track > .k-card,
  .k-rail__track > li {
    flex-basis: 235px;
    width: 235px;
    max-width: 235px;
  }
}

@media (max-width: 1024px) {
  .k-plp__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .k-plp__sidebar {
    display: none;
  }
  .k-plp__filter-toggle {
    display: inline-flex;
  }
  .k-plp .k-products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .k-pdp__top {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .k-pdp__buy {
    position: static;
  }
  .k-cart__layout,
  .k-checkout__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .k-cart__summary,
  .k-checkout__summary {
    position: static;
  }
  .k-auth {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .k-myaccount {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .k-myaccount__nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
  }
  .k-myaccount__nav li {
    border: 0;
  }
  .k-pdp__intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .k-cols--2 {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}

@media (max-width: 767px) {
  .k-shop {
    --k-pad: 16px;
  }
  .k-plp__title {
    font-size: 24px;
  }
  .k-plp__heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .k-plp__toolbar {
    flex-wrap: wrap;
    gap: 10px;
  }
  .k-plp__toolbar-left,
  .k-plp__toolbar-right {
    gap: 10px;
  }
  .k-plp__sort {
    width: 100%;
  }
  .k-plp__sort select {
    flex: 1 1 auto;
    min-width: 0;
  }
  .k-plp .k-products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 12px;
  }
  .k-rail__track {
    gap: 12px;
  }
  .k-rail__track > .k-card,
  .k-rail__track > li {
    flex-basis: 165px;
    width: 165px;
    max-width: 165px;
  }
  .k-pdp__media {
    grid-template-columns: minmax(0, 1fr);
  }
  .k-pdp__gallery {
    flex-direction: row;
    order: 2;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
  }
  .k-pdp__thumb {
    width: 64px;
    height: 64px;
    flex: 0 0 auto;
  }
  .k-pdp__stage {
    order: 1;
  }
  .k-pdp__title {
    font-size: 22px;
  }
  .k-usp {
    grid-template-columns: minmax(0, 1fr);
  }
  .k-pdp__section {
    padding: 36px 0;
  }
  .k-cart__title,
  .k-checkout__title,
  .k-account__title,
  .k-thankyou__title {
    font-size: 26px;
  }
  .k-cart-item {
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
  }
  .k-cart-item__media img {
    width: 84px;
    height: 84px;
  }
  .k-cart-item__qty {
    grid-column: 2;
    margin-top: 8px;
  }
  .k-cart-item__total {
    grid-column: 2;
    text-align: left;
    margin-top: 4px;
  }
  .k-cart__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .k-checkout .woocommerce-billing-fields__field-wrapper,
  .k-checkout .woocommerce-shipping-fields__field-wrapper,
  .k-checkout .woocommerce-additional-fields__field-wrapper {
    grid-template-columns: minmax(0, 1fr);
  }
  .k-checkout__cols {
    grid-template-columns: minmax(0, 1fr);
  }
  .k-pay-icons--26 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .k-checkout__trust {
    grid-template-columns: minmax(0, 1fr);
  }
  .k-thankyou .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .k-pdp__qty-row {
    flex-wrap: wrap;
  }
  .k-pdp__add {
    flex-basis: 100%;
    order: 3;
  }
  .k-auth__col {
    padding: 24px 18px;
  }
  .k-cols--2 {
    gap: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .k-shop *,
  .k-shop *::before,
  .k-shop *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}

/* ==========================================================================
   Compatibility with theme-core base utilities
   ========================================================================== */
.k-shop .k-btn--dark,
.k-shop .k-btn--block.k-btn--dark {
  background: var(--k-black);
  border-color: var(--k-black);
  color: var(--k-white);
}
.k-shop .k-btn--dark:hover,
.k-shop .k-btn--dark:focus-visible {
  background: var(--k-white);
  border-color: var(--k-black);
  color: var(--k-black);
}
.k-shop .k-btn--light {
  background: var(--k-white);
  border-color: var(--k-white);
  color: var(--k-black);
}
.k-shop .k-btn--outline {
  background: transparent;
  border-color: var(--k-black);
  color: var(--k-black);
}
.k-shop .k-btn--outline:hover {
  background: var(--k-black);
  color: var(--k-white);
}
.k-shop .k-btn--block,
.k-shop .k-btn--full {
  width: 100%;
}
.k-shop .k-btn--sm {
  min-height: 34px;
  padding: 7px 14px;
  font-size: 12px;
}

/* filter category links */
.k-filter-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 0;
  font-size: 13px;
  color: var(--k-ink);
}
.k-filter-link:hover {
  color: var(--k-black);
  text-decoration: underline;
}
.k-filter-link .k-filters__n {
  margin-left: auto;
  font-size: 11px;
  color: var(--k-grey);
}
.k-shop .k-cart__row--small {
  font-size: 12px;
  color: var(--k-grey);
}
.k-shop .k-cart__row--small .amount {
  color: var(--k-grey);
}

/* PDP stock note + sale badge fallbacks for theme-core card */
.k-shop .k-price--struck,
.k-shop .k-price--sale {
  text-decoration: none;
}
.k-shop .k-price--struck {
  text-decoration: line-through;
}

/* checkout review table on mobile: give the product name room */
@media (max-width: 767px) {
  .k-checkout__totals .k-checkout__item-img img {
    width: 44px;
    height: 44px;
  }
  .k-checkout__totals .k-checkout__item-name {
    font-size: 12px;
  }
  .k-checkout__totals .k-checkout__item-inner {
    gap: 10px;
  }
  .k-checkout__totals tfoot th,
  .k-checkout__totals tfoot td {
    font-size: 12px;
  }
  .k-checkout__totals tfoot .woocommerce-shipping-destination {
    display: none;
  }
  .k-checkout__totals .order-total th,
  .k-checkout__totals .order-total td {
    font-size: 15px;
  }
}

/* drag-to-scroll carousels */
.k-rail__viewport,
.k-pdp__gallery {
  cursor: grab;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.k-rail__viewport::-webkit-scrollbar,
.k-pdp__gallery::-webkit-scrollbar {
  display: none;
}
.k-rail__viewport {
  overflow-x: auto;
}
.is-dragging {
  cursor: grabbing;
  user-select: none;
}

/* Lead fix 2026-11-12: PDP alignment with the reference layout —
   larger title, variation boxes carrying prices, rewards strip under add-to-cart. */
.k-pdp__title { font-size: 32px; line-height: 1.14; letter-spacing: -0.01em; }
.k-pdp__swatch--priced { flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; min-height: 54px; padding: 6px 14px; }
.k-pdp__swatch--priced .k-pdp__swatch-name { font-size: 13px; line-height: 1.2; }
.k-pdp__swatch-price { display: flex; align-items: baseline; gap: 6px; font-size: 12px; line-height: 1.3; }
.k-pdp__swatch-price s { color: #8a8a8a; font-weight: 400; }
.k-pdp__swatch-price strong { font-weight: 700; }
.k-pdp__rewards { display: flex; align-items: center; gap: 16px; margin: 18px 0 0; padding: 14px 18px; border: 1px solid var(--k-line); background: #f7f7f5; color: var(--k-black); text-decoration: none; transition: border-color .15s ease, background .15s ease; }
.k-pdp__rewards:hover { border-color: var(--k-black); background: #f1f1ee; }
.k-pdp__rewards-logo img { display: block; max-width: 92px; height: auto; opacity: .85; }
.k-pdp__rewards-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.k-pdp__rewards-kicker { font: 700 10px/1.2 var(--k-font-cond); letter-spacing: .12em; text-transform: uppercase; color: var(--k-grey); }
.k-pdp__rewards-title { font-size: 14px; font-weight: 700; }
.k-pdp__rewards-text { font-size: 12px; color: var(--k-grey); }
.k-pdp__rewards-cta { flex: 0 0 auto; padding: 9px 14px; border: 1px solid var(--k-black); font: 700 11px/1 var(--k-font-cond); letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 767px) {
  .k-pdp__title { font-size: 24px; }
  .k-pdp__rewards { flex-wrap: wrap; gap: 10px; }
  .k-pdp__rewards-cta { width: 100%; text-align: center; }
}

/* Client request 2026-11-12: do not display the native gateway radio/logo/description
   block on checkout — the branded payment area (icons + charity + consents) is the UI.
   The gateway stays selected/functional (radio remains in the DOM, just hidden). */
.k-payment .wc_payment_methods,
#payment .wc_payment_methods,
.k-payment .wc_payment_methods + .woocommerce-info,
#payment .wc_payment_methods + .woocommerce-info { display: none !important; }

/* Checkout review polish (client feedback 2026-11-12): lighter summary table,
   product thumbnails, borderless rows, stronger total row. */
.k-checkout__totals { width: 100%; border-collapse: collapse; font-size: 13px; }
.k-checkout__totals tr { border-bottom: 1px solid var(--k-line); }
.k-checkout__totals tr:last-child { border-bottom: 0; }
.k-checkout__totals th,
.k-checkout__totals td { padding: 10px 0; border: 0 !important; background: none !important; vertical-align: top; }
.k-checkout__totals .cart_item td { padding: 12px 0; }
.k-checkout__item-inner { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.k-checkout__item-img img { display: block; width: 56px; height: 56px; object-fit: contain; background: #f5f5f2; }
.k-checkout__item-name { display: block; font-weight: 600; line-height: 1.35; }
.k-checkout__item-meta { display: block; margin-top: 2px; font-size: 12px; color: var(--k-grey); }
.k-checkout__item-total { font-weight: 600; white-space: nowrap; }
.k-checkout__totals th { text-align: left; font-weight: 400; color: #3a3a3a; }
.k-checkout__totals td { text-align: right; }
.k-checkout__totals .woocommerce-shipping-destination { margin: 2px 0 0; font-size: 11px; color: var(--k-grey); }
.k-checkout__totals .cart-subtotal th,
.k-checkout__totals .cart-subtotal td { padding-top: 14px; }
.k-checkout__totals .order-total th,
.k-checkout__totals .order-total td { padding-top: 14px; border-top: 1px solid var(--k-black) !important; font-size: 16px; font-weight: 700; }
.k-checkout__summary .shop_table { margin: 0; }
@media (max-width: 767px) {
  .k-checkout__item-inner { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; }
  .k-checkout__item-img img { width: 48px; height: 48px; }
}

/* Checkout summary overflow fix (client feedback 2026-11-14): long item names /
   totals rows were pushing past the summary card. Widen the card slightly and
   constrain the table so nothing overflows. */
.k-checkout__layout { grid-template-columns: minmax(0, 1fr) 460px; }
.k-checkout__totals { width: 100%; max-width: 100%; }
.k-checkout__totals .cart_item td { width: 100%; }
.k-checkout__item-inner { width: 100%; min-width: 0; grid-template-columns: 56px minmax(0, 1fr) auto; }
.k-checkout__item-info { min-width: 0; }
.k-checkout__item-name { white-space: normal; overflow-wrap: anywhere; }
.k-checkout__totals th,
.k-checkout__totals td { overflow-wrap: anywhere; }
.k-checkout__totals td { white-space: normal; }
.k-checkout__totals .product-total,
.k-checkout__totals .k-checkout__item-total { white-space: nowrap; }
@media (max-width: 1023px) {
  .k-checkout__layout { grid-template-columns: minmax(0, 1fr); }
}

/* Higher-specificity override: the base rule forces flex on the review row;
   switch it to a grid so item name + price stay inside the summary card. */
.k-checkout__totals .k-checkout__item-inner { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; width: 100%; }
@media (max-width: 767px) {
  .k-checkout__totals .k-checkout__item-inner { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; }
}

/* The review-row total was inheriting table-cell padding/border inside the new
   grid, which shrank it and pushed the price out of the card. */
.k-checkout__totals .k-checkout__item-total { padding: 0; border: 0; margin-left: 0; width: auto; justify-self: end; }

/* Free-sample picker (cart page) — client request 2026-11-14. */
.k-samples { margin: 28px 0 18px; padding: 22px; border: 1px solid var(--k-line); background: #fff; }
.k-samples__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.k-samples__title { margin: 0 0 4px; font: 700 18px/1.2 var(--k-font-cond); letter-spacing: .03em; text-transform: uppercase; }
.k-samples__sub { margin: 0; font-size: 12px; color: var(--k-grey); }
.k-samples__count { flex: 0 0 auto; font-size: 12px; font-weight: 700; color: var(--k-black); background: var(--k-bg-soft); padding: 6px 10px; white-space: nowrap; }
.k-samples__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.k-sample { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--k-line); background: #fafaf8; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.k-sample:hover { border-color: #9a9a9a; }
.k-sample.is-selected { border-color: var(--k-black); box-shadow: inset 0 0 0 1px var(--k-black); background: #fff; }
.k-sample__input { position: absolute; top: 10px; right: 10px; width: 16px; height: 16px; accent-color: var(--k-black); }
.k-sample__media { display: block; aspect-ratio: 1; background: #f3f3f0; }
.k-sample__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.k-sample__name { font-size: 12px; line-height: 1.35; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.k-sample__free { align-self: flex-start; margin-top: auto; padding: 3px 7px; background: #eaf4ee; color: #0a6b3d; font: 700 10px/1 var(--k-font-cond); letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 767px) {
  .k-samples__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-samples { padding: 16px; }
}

/* Free-sample cart lines: no qty/price controls, show a green "Gratis" label. */
.k-cart-item--sample { background: #fafaf8; }
.k-cart-item--sample .k-cart-item__price { display: flex; align-items: center; gap: 8px; }
.k-cart-item__free,
.k-cart-item--sample .k-cart-item__total .k-cart-item__free { display: inline-block; padding: 3px 8px; background: #eaf4ee; color: #0a6b3d; font: 700 10px/1 var(--k-font-cond); letter-spacing: .06em; text-transform: uppercase; }
.k-cart-item--sample .k-cart-item__remove { margin-top: 6px; }

/* Product-card action consistency (client feedback 2026-11-14): variable-product
   links ("Zum Produkt") inherited the black text colour on the black button,
   making them look dim next to the white "In den Warenkorb" buttons. */
.k-card__quick-add,
.k-card__add { background: #111; color: #fff !important; }
.k-card__quick-add:hover,
.k-card__add:hover { background: #000; color: #fff !important; }
.k-card__quick-add:focus-visible,
.k-card__add:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
