/*
Theme Name: KooshkiMed
Theme URI: https://example.com/kooshkimed
Author: KooshkiMed
Copyright: 2026 KooshkiMed
Description: قالب فروشگاهی مدرن، روشن و راست‌چین تجهیزات پزشکی با پشتیبانی ووکامرس و المنتور.
Version: 2.3.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: kooshkimed
Domain Path: /languages
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: e-commerce, rtl-language-support, custom-logo, custom-colors, accessibility-ready
*/

@font-face {
  font-family: "Yekan Bakh ProPlus";
  src: url("assets/fonts/YekanBakhFaNum-VF.woff2") format("woff2");
  font-weight: 100 950;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Core master palette - bright medical retail */
  --km-primary: #0f8884;
  --km-primary-deep: #096e6b;
  --km-primary-light: #20a39e;
  --km-primary-soft: #dff4f2;
  --km-primary-glow: rgba(15, 136, 132, 0.18);
  
  --km-accent: #0f8884;
  --km-accent-light: #35aaa6;
  --km-accent-soft: #dff4f2;
  
  --km-emerald: #0f8884;
  --km-emerald-deep: #096e6b;
  --km-emerald-soft: #d8f2dc;
  
  --km-danger: #e11d48;
  --km-danger-soft: #ffe4e6;
  --km-warning: #f59e0b;
  --km-info: #0284c7;

  /* Surfaces & Canvas */
  --km-bg: #ffffff;
  --km-paper: #ffffff;
  --km-paper-alt: #f6f8f8;
  --km-tint: #edf9f8;
  --km-footer: #edf9f8;

  /* UI/UX Pro Max Standard Design Tokens */
  --color-primary: var(--km-primary);
  --color-on-primary: #ffffff;
  --color-secondary: var(--km-primary-deep);
  --color-on-secondary: #ffffff;
  --color-accent: var(--km-emerald);
  --color-on-accent: #0f172a;
  --color-background: var(--km-bg);
  --color-foreground: var(--km-ink);
  --color-card: var(--km-paper);
  --color-card-foreground: var(--km-text);
  --color-muted: var(--km-tint);
  --color-muted-foreground: var(--km-muted);
  --color-border: var(--km-line);
  --color-destructive: var(--km-danger);
  --color-on-destructive: #ffffff;
  --color-ring: var(--km-primary-light);
  
  /* Text & Ink */
  --km-ink: #101c1b;
  --km-text: #314442;
  --km-muted: #617270;
  
  /* Borders & Dividers */
  --km-line: #dce5e4;
  --km-line-strong: #c7d6d4;
  --km-line-glass: rgba(255, 255, 255, 0.65);
  
  /* Metrics & Rhythm */
  --km-radius-sm: 8px;
  --km-radius: 10px;
  --km-radius-lg: 16px;
  --km-radius-full: 10px;
  --km-container: 1320px;
  --km-font: "Yekan Bakh ProPlus", Vazirmatn, system-ui, Tahoma, Arial, sans-serif;
  --km-header-height: 80px;

  /* Elevations & Shadows */
  --km-shadow-sm: 0 2px 8px rgba(16, 28, 27, 0.04);
  --km-shadow-md: 0 8px 24px rgba(16, 28, 27, 0.07);
  --km-shadow-lg: 0 18px 48px rgba(16, 28, 27, 0.1);
  --km-shadow-glass: 0 20px 45px -10px rgba(16, 28, 27, 0.09);
  --km-shadow-glow: 0 0 35px rgba(15, 136, 132, 0.16);

  /* Animation Easing */
  --km-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --km-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Base Styles */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  overflow-x: clip;
  background: var(--km-bg);
  color: var(--km-text);
  font-family: var(--km-font);
  font-size: 16px;
  font-weight: 450;
  line-height: 1.82;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body::selection { background: var(--km-primary); color: #fff; }
body.km-dialog-open { overflow: hidden; }

a {
  color: var(--km-primary);
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}
a:hover { color: var(--km-primary-light); }

a, button, input, select, textarea { touch-action: manipulation; }
button, input, select, textarea { color: inherit; font: inherit; }
button, [role="button"], select, input[type="submit"] { cursor: pointer; }
button:disabled, input:disabled, .button.disabled {
  cursor: not-allowed;
  opacity: 0.5;
  box-shadow: none !important;
  transform: none !important;
}

img { display: block; max-width: 100%; height: auto; }
svg { overflow: visible; }
h1, h2, h3, h4, h5, h6 {
  color: var(--km-ink);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.35;
  text-wrap: balance;
}
p, li, td, th, a, span { overflow-wrap: anywhere; }
table { max-width: 100%; }

:focus-visible {
  outline: 3px solid var(--km-accent);
  outline-offset: 3px;
  border-radius: var(--km-radius-sm);
}

/* Accessibility Skip Links */
.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;
}
.screen-reader-text:focus {
  clip: auto !important;
  width: auto;
  height: auto;
  margin: 12px;
  padding: 12px 20px;
  background: #fff;
  color: var(--km-ink);
  font-weight: 800;
  border-radius: var(--km-radius-sm);
  box-shadow: var(--km-shadow-lg);
  z-index: 100000;
}
.skip-link {
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 100001;
  transform: translateY(-180%);
  padding: 12px 22px;
  background: var(--km-primary-deep);
  color: #fff;
  font-weight: 800;
  border-radius: var(--km-radius);
  box-shadow: var(--km-shadow-lg);
  transition: transform 0.25s var(--km-ease);
}
.skip-link:focus { transform: translateY(0); color: #fff; }

/* Layout Utilities */
.km-container {
  width: min(calc(100% - 48px), var(--km-container));
  margin-inline: auto;
}
.km-site-content {
  position: relative;
  z-index: 1;
  min-height: 60vh;
  background: var(--km-bg);
}
.km-site-main { display: block; }
.km-main {
  min-height: 60vh;
  padding-block: 48px 100px;
}
.km-section {
  padding-block: clamp(60px, 7.5vw, 110px);
}

/* Glassmorphism & Cards */
.km-glass {
  border: 1px solid var(--km-line-glass);
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
  box-shadow: var(--km-shadow-glass);
}
.km-card {
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-sm);
  transition: transform 0.28s var(--km-ease), box-shadow 0.28s var(--km-ease), border-color 0.28s ease;
}
.km-card:hover {
  border-color: var(--km-primary-light);
  transform: translateY(-4px);
  box-shadow: var(--km-shadow-md);
}

/* Typography Labels & Badges */
.km-editorial-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--km-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}
.km-editorial-label b {
  width: 28px;
  height: 2px;
  border-radius: 99px;
  background: var(--km-primary);
}
.km-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-full);
  background: var(--km-primary-soft);
  color: var(--km-primary);
  font-size: 0.8rem;
  font-weight: 800;
}
.km-kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--km-emerald);
  box-shadow: 0 0 0 3px rgba(15, 136, 132, 0.2);
}

/* Icons */
.km-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Buttons */
.km-button,
.button,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 24px;
  border: 1px solid var(--km-primary);
  border-radius: var(--km-radius);
  background: linear-gradient(145deg, var(--km-primary-light), var(--km-primary));
  color: #ffffff !important;
  font-weight: 800;
  font-size: 0.92rem;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: 0 8px 20px -4px rgba(15, 136, 132, 0.2);
  transition: all 0.24s var(--km-ease);
}
.km-button:hover,
.button:hover,
button[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  border-color: var(--km-primary-light);
  background: linear-gradient(145deg, var(--km-primary), var(--km-primary-deep));
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -4px rgba(15, 136, 132, 0.24);
}
.km-button:active, .button:active, button[type="submit"]:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(15, 136, 132, 0.16);
}

.km-button--ghost {
  border: 1px solid var(--km-line-strong);
  background: transparent;
  color: var(--km-ink) !important;
  box-shadow: none;
}
.km-button--ghost:hover {
  border-color: var(--km-primary);
  background: var(--km-primary-soft);
  color: var(--km-primary) !important;
  box-shadow: var(--km-shadow-sm);
}

.km-button--light {
  border: 1px solid #ffffff;
  background: #ffffff;
  color: var(--km-primary-deep) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.km-button--light:hover {
  border-color: var(--km-accent-light);
  background: var(--km-accent-soft);
  color: var(--km-primary-deep) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
}

.km-button--emerald {
  border-color: var(--km-emerald);
  background: linear-gradient(145deg, var(--km-emerald), var(--km-emerald-deep));
  box-shadow: 0 8px 20px -4px rgba(15, 136, 132, 0.2);
}
.km-button--emerald:hover {
  border-color: var(--km-emerald-deep);
  background: var(--km-emerald-deep);
  box-shadow: 0 12px 28px -4px rgba(15, 136, 132, 0.24);
}

.km-text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  color: var(--km-primary);
  font-size: 0.88rem;
  font-weight: 800;
  transition: all 0.2s ease;
}
.km-text-link .km-icon { width: 16px; height: 16px; transition: transform 0.2s ease; }
.km-text-link:hover { color: var(--km-primary-deep); }
.km-text-link:hover .km-icon { transform: translateX(-4px); }

/* ==========================================================================
   Header & Topbar (Phase 2)
   ========================================================================== */
.km-topbar {
  position: relative;
  z-index: 1000;
  min-height: 38px;
  background: var(--km-footer);
  color: #f1e4d7;
  font-size: 0.78rem;
}
.km-topbar__inner {
  display: grid;
  min-height: 38px;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
}
.km-topbar__promise {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.km-topbar__promise i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--km-emerald);
  box-shadow: 0 0 0 3px rgba(15, 136, 132, 0.2);
}
.km-topbar__edition {
  color: #8da4a0;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.km-topbar__phone {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  gap: 8px;
  justify-self: end;
  color: #f1f8f7;
  font-weight: 700;
  direction: ltr;
  transition: color 0.2s ease;
}
.km-topbar__phone:hover { color: var(--km-emerald); }
.km-topbar__phone .km-icon { width: 14px; height: 14px; }

/* Sticky Floating Header */
.km-header {
  position: sticky;
  top: 0;
  z-index: 990;
  min-height: var(--km-header-height);
  border-bottom: 1px solid var(--km-line);
  background: rgba(248, 250, 249, 0.88);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  transition: all 0.3s var(--km-ease);
}
.admin-bar .km-header { top: 32px; }

.km-header__row {
  display: grid;
  min-height: var(--km-header-height);
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
  transition: all 0.3s var(--km-ease);
}

.km-header.is-scrolled {
  background: transparent;
  border-bottom-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.km-header.is-scrolled .km-header__row {
  min-height: 64px;
  margin-top: 10px;
  padding-inline: 20px;
  border: 1px solid var(--km-line-glass);
  border-radius: var(--km-radius-full);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 40px -8px rgba(16, 28, 27, 0.1);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
}

/* Brand */
.km-brand {
  display: inline-flex;
  min-width: 170px;
  align-items: center;
  gap: 12px;
  color: var(--km-ink);
  text-decoration: none;
}
.km-brand__mark {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: var(--km-radius);
  background: linear-gradient(145deg, var(--km-primary-light), var(--km-primary-deep));
  color: #ffffff;
  box-shadow: 0 6px 16px rgba(15, 136, 132, 0.2);
  transition: transform 0.28s var(--km-ease-bounce);
}
.km-brand:hover .km-brand__mark { transform: scale(1.08) rotate(-4deg); }
.km-brand__mark .km-icon { width: 22px; height: 22px; stroke-width: 2; }
.km-brand__name {
  display: block;
  color: var(--km-ink);
  font-size: 1.2rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1.15;
}
.km-brand__copy small {
  display: block;
  margin-top: 2px;
  color: var(--km-primary);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}
.custom-logo {
  width: auto;
  max-width: 190px;
  max-height: 48px;
  object-fit: contain;
}

/* Main Navigation Menu */
.km-nav { min-width: 0; }
.km-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.km-menu li { position: relative; }
.km-menu a {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: 8px 14px;
  border-radius: var(--km-radius-sm);
  color: var(--km-text);
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}
.km-menu a:hover,
.km-menu .current-menu-item > a {
  color: var(--km-primary);
  background: var(--km-primary-soft);
}
.km-menu .current-menu-item > a {
  font-weight: 850;
}

/* Submenus */
.km-menu .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 240px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-lg);
  list-style: none;
  animation: kmMenuFade 0.22s var(--km-ease);
}
@keyframes kmMenuFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.km-menu li:hover > .sub-menu,
.km-menu li:focus-within > .sub-menu {
  display: block;
}
.km-menu .sub-menu a {
  padding: 10px 14px;
  border-radius: var(--km-radius-sm);
  font-size: 0.84rem;
}

/* Header Actions */
.km-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.km-action {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: #ffffff;
  color: var(--km-ink);
  box-shadow: var(--km-shadow-sm);
  transition: all 0.22s var(--km-ease);
}
.km-action:hover {
  border-color: var(--km-primary);
  background: var(--km-primary);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px -2px rgba(15, 136, 132, 0.2);
}
.km-action__count {
  position: absolute;
  top: -5px;
  left: -5px;
  display: grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  padding: 0 5px;
  border: 2px solid #ffffff;
  border-radius: var(--km-radius-full);
  background: var(--km-accent);
  color: #ffffff;
  font-size: 0.65rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(200, 148, 61, 0.4);
}
.km-menu-toggle { display: none; }

/* ==========================================================================
   Off-Canvas Mobile Drawer (Phase 2)
   ========================================================================== */
.km-drawer {
  position: fixed;
  inset: 0;
  z-index: 1200;
  visibility: hidden;
  transition: visibility 0.3s ease;
}
.km-drawer.is-open {
  visibility: visible;
}
.km-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 35, 33, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.km-drawer.is-open .km-drawer__backdrop {
  opacity: 1;
}
.km-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(340px, 86vw);
  display: flex;
  flex-direction: column;
  padding: 24px 20px;
  background: #ffffff;
  box-shadow: -10px 0 35px rgba(0, 0, 0, 0.2);
  transform: translateX(100%);
  transition: transform 0.32s var(--km-ease);
}
.km-drawer.is-open .km-drawer__panel {
  transform: translateX(0);
}
.km-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--km-line);
}
.km-drawer__close {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-ink);
  transition: all 0.2s ease;
}
.km-drawer__close:hover {
  background: var(--km-danger);
  border-color: var(--km-danger);
  color: #ffffff;
  transform: rotate(90deg);
}
.km-drawer__nav {
  flex: 1;
  overflow-y: auto;
  padding-block: 20px;
}
.km-drawer-menu {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}
.km-drawer-menu a {
  display: flex;
  min-height: 46px;
  align-items: center;
  padding: 10px 16px;
  border-radius: var(--km-radius-sm);
  color: var(--km-ink);
  font-weight: 750;
  font-size: 0.94rem;
  transition: all 0.2s ease;
}
.km-drawer-menu a:hover,
.km-drawer-menu .current-menu-item > a {
  background: var(--km-primary-soft);
  color: var(--km-primary);
}
.km-drawer__footer {
  padding-top: 16px;
  border-top: 1px solid var(--km-line);
}
.km-drawer__footer .km-button {
  width: 100%;
}

/* ==========================================================================
   Slide-over Mini-Cart Drawer
   ========================================================================== */
.km-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 1250;
  visibility: hidden;
  transition: visibility 0.3s ease;
}
.km-cart-drawer.is-open {
  visibility: visible;
}
.km-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 35, 33, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.km-cart-drawer.is-open .km-cart-drawer__backdrop {
  opacity: 1;
}
.km-cart-drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(420px, 92vw);
  display: flex;
  flex-direction: column;
  background: #ffffff;
  box-shadow: 10px 0 35px rgba(0, 0, 0, 0.2);
  transform: translateX(-100%);
  transition: transform 0.32s var(--km-ease);
}
.km-cart-drawer.is-open .km-cart-drawer__panel {
  transform: translateX(0);
}
.km-cart-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  border-bottom: 1px solid var(--km-line);
  background: var(--km-tint);
}
.km-cart-drawer__title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--km-ink);
  font-size: 1.05rem;
  font-weight: 850;
}
.km-cart-drawer__title .km-icon {
  width: 22px;
  height: 22px;
  color: var(--km-primary);
}
.km-cart-drawer__count {
  color: var(--km-muted);
  font-size: 0.85rem;
  font-weight: 700;
}
.km-cart-drawer__close {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  color: var(--km-ink);
  cursor: pointer;
  transition: all 0.2s ease;
}
.km-cart-drawer__close:hover {
  background: var(--km-danger);
  border-color: var(--km-danger);
  color: #ffffff;
  transform: rotate(90deg);
}
.km-cart-drawer__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 20px;
}
.km-cart-drawer__items {
  display: grid;
  gap: 14px;
  flex: 1;
}
.km-cart-item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  transition: border-color 0.2s ease;
}
.km-cart-item:hover {
  border-color: var(--km-primary-soft);
}
.km-cart-item__image {
  width: 64px;
  height: 64px;
  border-radius: var(--km-radius-sm);
  overflow: hidden;
  background: var(--km-tint);
}
.km-cart-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.km-cart-item__details h4 {
  margin: 0 0 6px;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.4;
}
.km-cart-item__details h4 a {
  color: var(--km-ink);
}
.km-cart-item__details h4 a:hover {
  color: var(--km-primary);
}
.km-cart-item__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.82rem;
}
.km-cart-item__qty {
  color: var(--km-muted);
}
.km-cart-item__price {
  color: var(--km-primary);
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}
.km-cart-item__remove {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: var(--km-tint);
  color: var(--km-muted);
  transition: all 0.2s ease;
}
.km-cart-item__remove:hover {
  background: var(--km-danger);
  color: #ffffff;
}
.km-cart-drawer__summary {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--km-line);
}
.km-cart-drawer__subtotal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  font-size: 1rem;
}
.km-cart-drawer__subtotal span {
  color: var(--km-muted);
  font-weight: 750;
}
.km-cart-drawer__subtotal strong {
  color: var(--km-ink);
  font-size: 1.18rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.km-cart-drawer__buttons {
  display: grid;
  gap: 8px;
}
.km-cart-empty {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 40px 10px;
  margin: auto;
}
.km-cart-empty__icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--km-primary-soft);
  color: var(--km-primary);
  margin-bottom: 16px;
}
.km-cart-empty h3 {
  margin: 0 0 8px;
  color: var(--km-ink);
  font-size: 1.1rem;
  font-weight: 850;
}
.km-cart-empty p {
  color: var(--km-muted);
  font-size: 0.88rem;
  margin: 0 0 20px;
  max-width: 280px;
}

/* ==========================================================================
   Search & Quick View Modals
   ========================================================================== */
.km-header-search,
.km-qv-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: grid;
  place-items: start center;
  padding: 10vh 20px 30px;
  overflow-y: auto;
  background: rgba(7, 35, 33, 0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.24s ease, visibility 0.24s ease;
}
.km-header-search.is-open,
.km-qv-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.km-header-search__panel {
  position: relative;
  width: min(780px, 100%);
  padding: clamp(30px, 5vw, 56px);
  border-top: 5px solid var(--km-primary);
  border-radius: var(--km-radius-lg);
  background: #ffffff;
  box-shadow: var(--km-shadow-lg);
  animation: kmModalSlide 0.3s var(--km-ease);
}
@keyframes kmModalSlide {
  from { opacity: 0; transform: translateY(-20px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.km-header-search__close,
.km-qv-close {
  position: absolute;
  top: 18px;
  left: 18px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-bg);
  color: var(--km-ink);
  transition: all 0.2s ease;
}
.km-header-search__close:hover,
.km-qv-close:hover {
  background: var(--km-danger);
  border-color: var(--km-danger);
  color: #ffffff;
  transform: rotate(90deg);
}

.km-header-search__panel h2 {
  margin: 18px 0 8px;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 850;
  line-height: 1.25;
}
.km-header-search__panel > p {
  margin: 0 0 24px;
  color: var(--km-muted);
  font-size: 0.94rem;
}

/* Search Form & Live Dropdown */
.km-search-form {
  position: relative;
  display: flex;
  width: 100%;
  gap: 10px;
}
.km-search-form label { flex: 1; min-width: 0; margin: 0; }
.km-search-form .search-field {
  width: 100%;
  height: 54px;
  padding: 10px 18px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius);
  background: var(--km-paper);
  color: var(--km-ink);
  font-size: 0.98rem;
  font-weight: 600;
  transition: all 0.2s ease;
}
.km-search-form .search-field:focus {
  border-color: var(--km-primary);
  box-shadow: 0 0 0 4px var(--km-primary-glow);
  outline: none;
}
.km-search-form .search-submit {
  flex: 0 0 auto;
  min-width: 130px;
  height: 54px;
}

.km-ajax-results {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  left: 0;
  z-index: 20;
  display: none;
  max-height: min(480px, 58vh);
  overflow-y: auto;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: #ffffff;
  box-shadow: var(--km-shadow-lg);
  padding: 8px;
}
.km-ajax-results.is-open { display: block; animation: kmMenuFade 0.2s ease; }
.km-ajax-results__list a {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: var(--km-radius-sm);
  color: var(--km-ink);
  transition: background-color 0.18s ease;
}
.km-ajax-results__list a:hover {
  background: var(--km-primary-soft);
}
.km-ajax-results__image {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  overflow: hidden;
}
.km-ajax-results__image img { max-height: 58px; object-fit: contain; }
.km-ajax-results__list strong {
  display: block;
  font-size: 0.92rem;
  font-weight: 750;
}
.km-ajax-results__list small {
  display: block;
  margin-top: 3px;
  color: var(--km-primary);
  font-size: 0.84rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}
.km-ajax-results__all {
  display: block;
  margin-top: 8px;
  padding: 12px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-primary-deep);
  font-size: 0.88rem;
  font-weight: 850;
  text-align: center;
  transition: background-color 0.2s ease;
}
.km-ajax-results__all:hover { background: var(--km-primary-soft); }
.km-ajax-results__empty {
  margin: 0;
  padding: 24px;
  color: var(--km-muted);
  font-weight: 700;
  text-align: center;
}

/* Quick View Modal (Enhanced) */
.km-qv-modal { place-items: center; padding-block: 30px; }
.km-qv-panel {
  position: relative;
  width: min(920px, 100%);
  max-height: calc(100dvh - 60px);
  overflow-y: auto;
  border-top: 5px solid var(--km-primary);
  border-radius: var(--km-radius-lg);
  background: #ffffff;
  box-shadow: var(--km-shadow-lg);
}
.km-qv-content { padding: clamp(28px, 5vw, 48px); }
.km-qv-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(24px, 4vw, 50px);
}
.km-qv-image {
  display: grid;
  min-height: 380px;
  place-items: center;
  padding: 20px;
  border-radius: var(--km-radius);
  background: var(--km-tint);
}
.km-qv-image img {
  width: 100%;
  max-height: 360px;
  object-fit: contain;
  transition: transform 0.3s ease;
}
.km-qv-info h2 {
  margin: 10px 0 14px;
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  line-height: 1.35;
}
.km-qv-price {
  margin-bottom: 16px;
  color: var(--km-primary);
  font-size: 1.35rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.km-qv-stock {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 4px 10px;
  border-radius: var(--km-radius-sm);
  background: var(--km-emerald-soft);
  color: var(--km-emerald-deep);
  font-size: 0.78rem;
  font-weight: 800;
}

/* Homepage: warm editorial composition */
.km-hero { padding: 40px 0 48px; }
.km-hero__frame { display:grid; grid-template-columns:1.12fr 1fr; gap: clamp(32px,5vw,80px); align-items:center; border-bottom:1px solid var(--km-line-strong); padding-bottom:48px; }
.km-hero__content { padding: 16px 0; min-width:0; }
.km-hero__content .km-editorial-label { display:block; color:var(--km-muted); font-size:11px; letter-spacing:.09em; margin-bottom:36px; }
.km-hero__content .km-kicker { padding:0; background:none; border:0; color:var(--km-accent); font-size:14px; }
.km-hero h1 { font-size:clamp(3rem,5.4vw,5.15rem); font-weight:850; letter-spacing:-.045em; line-height:1.3; margin:16px 0 24px; color:var(--km-primary); max-width:670px; }
.km-hero h1 em { color:var(--km-accent); font-style:normal; }
.km-hero__content>p { max-width:460px; font-size:17px; line-height:2; color:var(--km-muted); margin:0 0 28px; }
.km-hero__buttons { display:flex; flex-wrap:wrap; gap:24px; align-items:center; }
.km-hero__footnote { display:flex; gap:14px; align-items:center; color:var(--km-muted); margin-top:40px; font-size:12px; }
.km-hero__footnote span { font-family:Georgia,serif; color:var(--km-accent); direction:ltr; }
.km-hero__visual { min-width:0; padding:24px; background:#ecdfd0; border-radius:var(--km-radius-lg); }
.km-hero-product { display:flex; flex-direction:column; color:var(--km-ink); width:100%; }
.km-hero-product:hover { color:var(--km-primary); }
.km-hero-product__eyebrow { display:flex; justify-content:space-between; font-size:12px; color:var(--km-muted); align-items:center; }
.km-hero-product__eyebrow>span { font-size:28px; line-height:1; color:var(--km-accent); }
.km-hero-product__image { display:grid; place-items:center; background:#fff; border-radius:var(--km-radius); margin:18px 0 24px; height:300px; overflow:hidden; }
.km-hero-product__image img { width:100%; height:100%; max-height:300px; object-fit:contain; padding:14px; transition:transform .4s ease; }
.km-hero-product:hover .km-hero-product__image img { transform:scale(1.025); }
.km-hero-product__meta { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; }
.km-hero-product__meta strong { flex:1 1 200px; font-size:20px; line-height:1.6; }
.km-hero-product__price { color:var(--km-primary); font-weight:750; font-size:16px; }
.km-hero-product__price del { font-size:12px; color:var(--km-muted); }
.km-hero-product__price ins { text-decoration:none; }
.km-hero-product__btn { display:flex; align-items:center; justify-content:space-between; margin-top:18px; padding-top:16px; border-top:1px solid var(--km-line-strong); font-size:13px; }
.km-hero-empty { min-height:400px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:20px; }
.km-hero-empty>span { letter-spacing:.2em; color:var(--km-accent); }

/* ==========================================================================
   Section Headers & Bento Categories
   ========================================================================== */
.km-section__head {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
  align-items: end;
  gap: 40px;
  margin-bottom: 36px;
  padding-bottom: 16px;
  border-bottom: 1.5px solid var(--km-line);
}
.km-section__head > div:first-child { position: relative; }
.km-section__number {
  position: absolute;
  top: -6px;
  left: 0;
  color: var(--km-line-strong);
  font-size: 0.76rem;
  font-weight: 850;
  direction: ltr;
}
.km-section__head h1,
.km-section__head h2 {
  max-width: 760px;
  margin: 10px 0 0;
  font-size: clamp(2rem, 4.2vw, 4.2rem);
  font-weight: 850;
  letter-spacing: -0.045em;
  line-height: 1.2;
}
.km-section__aside {
  max-width: 380px;
  justify-self: end;
}
.km-section__aside p {
  margin: 0 0 10px;
  color: var(--km-muted);
  font-size: 0.92rem;
  line-height: 1.8;
}

/* Category Grid (Bento Style) */
.km-categories {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}
.km-category-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 240px;
  flex-direction: column;
  padding: 20px 16px;
  overflow: hidden;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-paper);
  color: var(--km-ink);
  text-decoration: none;
  box-shadow: var(--km-shadow-sm);
  transition: all 0.28s var(--km-ease);
}
.km-category-card::after {
  content: "↙";
  position: absolute;
  top: 14px;
  left: 14px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: var(--km-tint);
  color: var(--km-muted);
  font-size: 0.78rem;
  font-weight: 900;
  transition: all 0.28s var(--km-ease);
}
.km-category-card:hover {
  border-color: var(--km-primary);
  background: var(--km-primary);
  color: #ffffff;
  transform: translateY(-6px);
  box-shadow: 0 16px 36px -6px rgba(15, 136, 132, 0.18);
}
.km-category-card:hover::after {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  transform: scale(1.15) translate(-2px, 2px);
}
.km-category-card__image {
  display: grid;
  width: 104px;
  height: 104px;
  place-items: center;
  margin: auto auto 20px;
  border-radius: 50%;
  background: var(--km-tint);
  overflow: hidden;
  transition: transform 0.3s var(--km-ease);
}
.km-category-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform 0.3s var(--km-ease);
}
.km-category-card:hover .km-category-card__image {
  background: #ffffff;
  transform: scale(1.06);
}
.km-category-card__image .km-icon {
  width: 40px;
  height: 40px;
  color: var(--km-primary);
}
.km-category-card strong {
  display: block;
  color: inherit;
  font-size: 0.96rem;
  font-weight: 850;
  line-height: 1.4;
  text-align: center;
}
.km-category-card small {
  display: block;
  margin-top: 3px;
  color: var(--km-muted);
  font-size: 0.72rem;
  font-weight: 700;
  text-align: center;
}
.km-category-card:hover small { color: rgba(255, 255, 255, 0.8); }

/* Curated Medical Departments Bento Layout */
.km-categories--curated {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}
.km-category-card--curated {
  position: relative;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  min-height: auto !important;
  padding: 18px 22px !important;
  border-radius: var(--km-radius-lg) !important;
  background: var(--km-paper) !important;
  border: 1px solid var(--km-line) !important;
  text-decoration: none !important;
  color: var(--km-ink) !important;
  box-shadow: var(--km-shadow-sm) !important;
  transition: all 0.3s var(--km-ease) !important;
  overflow: hidden;
}
.km-category-card--curated::after { display: none !important; }
.km-category-card--curated:hover {
  border-color: var(--km-primary) !important;
  background: var(--km-paper) !important;
  color: var(--km-ink) !important;
  transform: translateY(-4px) !important;
  box-shadow: var(--km-shadow-md) !important;
}
.km-category-card__icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--km-primary-soft);
  color: var(--km-primary);
  flex-shrink: 0;
  transition: all 0.3s var(--km-ease);
}
.km-category-card__icon .km-icon { width: 24px; height: 24px; }
.km-category-card--curated:hover .km-category-card__icon {
  background: var(--km-primary);
  color: #ffffff;
  transform: scale(1.08);
}
.km-category-card__info {
  flex: 1;
  min-width: 0;
}
.km-category-card__info strong {
  display: block;
  font-size: 0.98rem;
  font-weight: 850;
  color: var(--km-ink);
  margin-bottom: 4px;
  text-align: right !important;
  transition: color 0.2s ease;
}
.km-category-card--curated:hover .km-category-card__info strong {
  color: var(--km-primary);
}
.km-category-card__info p {
  display: block;
  font-size: 0.76rem;
  color: var(--km-muted);
  margin: 0 0 6px;
  line-height: 1.5;
  text-align: right !important;
}
.km-category-card__badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  color: var(--km-primary);
  background: var(--km-primary-soft);
  padding: 2px 10px;
  border-radius: var(--km-radius-full);
}
.km-category-card__arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--km-tint);
  color: var(--km-muted);
  flex-shrink: 0;
  transition: all 0.25s var(--km-ease);
}
.km-category-card__arrow .km-icon { width: 14px; height: 14px; }
.km-category-card--curated:hover .km-category-card__arrow {
  background: var(--km-primary);
  color: #ffffff;
  transform: translateX(-4px);
}

/* Catalog Filter Bar */
.km-catalog-filter-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 32px;
  overflow-x: auto;
  padding-bottom: 6px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.km-catalog-filter-bar::-webkit-scrollbar { display: none; }
.km-catalog-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--km-radius-full);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  color: var(--km-text);
  font-size: 0.86rem;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.22s var(--km-ease);
  box-shadow: var(--km-shadow-sm);
}
.km-catalog-pill .km-icon {
  width: 16px;
  height: 16px;
  color: var(--km-primary);
  transition: transform 0.2s ease;
}
.km-catalog-pill:hover {
  border-color: var(--km-primary);
  color: var(--km-primary);
  transform: translateY(-2px);
  box-shadow: var(--km-shadow-md);
}
.km-catalog-pill:hover .km-icon {
  transform: scale(1.15);
}
.km-catalog-pill.is-active {
  background: var(--km-primary);
  border-color: var(--km-primary);
  color: #ffffff;
  box-shadow: 0 6px 20px rgba(15, 136, 132, 0.2);
}
.km-catalog-pill.is-active .km-icon {
  color: #ffffff;
}

/* Manifesto & Principles */
.km-manifesto {
  background: linear-gradient(145deg, #f1e6da, #ecddcf);
  border-block: 1px solid var(--km-line);
}
.km-manifesto__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(48px, 7vw, 100px);
}
.km-manifesto__statement {
  position: sticky;
  top: 130px;
  align-self: start;
}
.km-manifesto__statement h2 {
  max-width: 580px;
  margin: 18px 0;
  font-size: clamp(2.2rem, 4.2vw, 4.2rem);
  font-weight: 850;
  letter-spacing: -0.045em;
  line-height: 1.2;
}
.km-manifesto__statement p {
  max-width: 500px;
  color: var(--km-muted);
  font-size: 1.02rem;
  line-height: 1.9;
}

.km-principles {
  display: grid;
  gap: 12px;
}
.km-principle {
  display: grid;
  min-height: 120px;
  grid-template-columns: 36px 54px 1fr;
  align-items: center;
  gap: 20px;
  padding: 22px 24px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(10px);
  box-shadow: var(--km-shadow-sm);
  transition: all 0.25s ease;
}
.km-principle:hover {
  background: #ffffff;
  border-color: var(--km-primary);
  transform: translateX(-4px);
  box-shadow: var(--km-shadow-md);
}
.km-principle__index {
  color: var(--km-muted);
  font-size: 0.74rem;
  font-weight: 850;
  direction: ltr;
}
.km-principle__icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  background: var(--km-primary-soft);
  color: var(--km-primary);
}
.km-principle__icon .km-icon { width: 24px; height: 24px; }
.km-principle h3 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 850;
}
.km-principle p {
  margin: 4px 0 0;
  color: var(--km-muted);
  font-size: 0.88rem;
}

/* Consultation Banner */
.km-consult { padding-top: 0; }
.km-consult__card {
  position: relative;
  display: grid;
  min-height: 380px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 36px;
  padding: clamp(36px, 6vw, 84px);
  overflow: hidden;
  border-radius: var(--km-radius-lg);
  background: var(--km-tint);
  color: var(--km-text);
  box-shadow: none;
}
.km-consult__card > div:not(.km-consult__signal) {
  position: relative;
  z-index: 2;
  max-width: 760px;
}
.km-consult__card .km-kicker {
  background: transparent;
  border-color: transparent;
  color: var(--km-primary-deep);
}
.km-consult__card h2 {
  margin: 16px 0;
  color: #ffffff;
  font-size: clamp(2.4rem, 4.6vw, 4.4rem);
  font-weight: 850;
  letter-spacing: -0.05em;
  line-height: 1.15;
}
.km-consult__card p {
  max-width: 660px;
  margin: 0;
  color: #eadbd0;
  font-size: 1.05rem;
  line-height: 1.85;
}
.km-consult__card > .km-button {
  position: relative;
  z-index: 2;
}

.km-consult__signal {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 44px);
  opacity: 0.12;
  transform: rotate(-6deg);
  pointer-events: none;
}
.km-consult__signal span {
  width: 2px;
  height: 60%;
  background: #e7bea2;
  border-radius: 99px;
}
.km-consult__signal span:nth-child(2) { height: 30%; }
.km-consult__signal span:nth-child(3) { height: 85%; }
.km-consult__signal span:nth-child(4) { height: 45%; }
.km-consult__signal span:nth-child(5) { height: 70%; }

/* ==========================================================================
   WooCommerce Catalog & Product Cards (Phase 4)
   ========================================================================== */
.woocommerce .woocommerce-breadcrumb {
  margin: 0 0 28px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--km-line);
  color: var(--km-muted);
  font-size: 0.84rem;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--km-ink); font-weight: 700; }
.woocommerce-products-header__title.page-title {
  margin-bottom: 30px;
  font-size: clamp(2.2rem, 4vw, 3.8rem);
}
.woocommerce .woocommerce-result-count {
  display: flex;
  min-height: 48px;
  align-items: center;
  margin: 0 0 20px;
  color: var(--km-muted);
  font-size: 0.84rem;
  font-weight: 700;
}
.woocommerce .woocommerce-ordering { margin: 0 0 20px; }
.woocommerce .woocommerce-ordering select {
  min-width: 240px;
  min-height: 48px;
  padding: 10px 16px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius);
  background: var(--km-paper);
  color: var(--km-ink);
  font-size: 0.86rem;
  font-weight: 700;
}

/* Product Grid */
/* ==========================================================================
   Pixel-Perfect Synchronized Product Loop Cards
   ========================================================================== */
.woocommerce ul.products {
  display: grid !important;
  clear: both;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  align-items: stretch !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }

@media (max-width: 1024px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
}
@media (max-width: 640px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}

/* Card Container */
.woocommerce ul.products li.product {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  min-width: 0;
}

.km-product-card {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  width: 100% !important;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
  overflow: hidden;
  transition: all 0.3s var(--km-ease);
  box-sizing: border-box;
}
.km-product-card:hover {
  transform: translateY(-5px);
  border-color: var(--km-primary);
  box-shadow: var(--km-shadow-md);
}

/* Standard loop wrapper (when not using custom template) */
.woocommerce ul.products li.product:not(.km-loop-product-card) {
  padding: 14px 14px 16px !important;
  border: 1px solid var(--km-line) !important;
  border-radius: var(--km-radius) !important;
  background: var(--km-paper) !important;
  box-shadow: var(--km-shadow-sm) !important;
}
.woocommerce ul.products li.product:not(.km-loop-product-card):hover {
  transform: translateY(-5px);
  border-color: var(--km-primary);
  box-shadow: var(--km-shadow-md);
}

/* Standard loop elements */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 0 auto !important;
  min-width: 0;
  color: var(--km-ink);
  text-decoration: none;
}
.woocommerce ul.products li.product .woocommerce-LoopProduct-link a img,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link img {
  width: 100% !important;
  height: 200px !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 0 10px !important;
  object-fit: contain !important;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  transition: transform 0.4s var(--km-ease);
}
.woocommerce ul.products li.product:hover .woocommerce-LoopProduct-link img {
  transform: scale(1.04);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  color: var(--km-ink);
  font-size: 0.9rem !important;
  font-weight: 800;
  line-height: 1.45 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  transition: color 0.2s ease;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--km-primary);
}

.woocommerce ul.products li.product .star-rating {
  height: 18px !important;
  margin: 0 0 8px !important;
  color: var(--km-accent);
  font-size: 0.74rem;
}

.woocommerce ul.products li.product .price {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  min-height: 36px !important;
  margin: auto 0 12px !important;
  color: var(--km-primary) !important;
  font-size: 1.02rem !important;
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .price del {
  margin-left: 6px;
  color: var(--km-muted);
  font-size: 0.78rem;
  font-weight: 400;
  opacity: 0.8;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button {
  width: 100% !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  margin-top: auto !important;
  padding: 0 12px !important;
  font-size: 0.82rem !important;
  font-weight: 850 !important;
  border-radius: var(--km-radius-sm) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.woocommerce span.onsale {
  position: absolute !important;
  top: 20px !important;
  right: 20px !important;
  left: auto !important;
  z-index: 3;
  display: grid;
  min-width: 48px !important;
  min-height: 28px !important;
  place-items: center;
  padding: 4px 10px !important;
  border-radius: var(--km-radius-sm) !important;
  background: var(--km-accent) !important;
  color: #ffffff !important;
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 4px 12px rgba(200, 148, 61, 0.35);
}

.km-quick-view {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 8px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-tint);
  color: var(--km-ink);
  font-size: 0.8rem;
  font-weight: 800;
  transition: all 0.2s ease;
}
.km-quick-view:hover {
  background: var(--km-primary-soft);
  border-color: var(--km-primary);
  color: var(--km-primary);
}

/* ==========================================================================
   Single Product Experience (Phase 4)
   ========================================================================== */
.single-product .km-main > .km-container { width: min(calc(100% - 48px), 1360px); }
.woocommerce div.product.km-product-detail { padding: 0; border: 0; background: transparent; }

.km-product-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(400px, 0.85fr);
  align-items: start;
  gap: 28px;
}

.km-product-gallery-card,
.km-product-buy-card {
  position: relative;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-lg);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-sm);
}

.km-product-gallery-card {
  padding: 20px;
  overflow: hidden;
}
.km-product-card-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 4px 16px;
  color: var(--km-muted);
  font-size: 0.74rem;
  font-weight: 800;
}
.km-product-card-label b {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-ink);
  font-weight: 800;
  direction: ltr;
}

.km-product-gallery-card .woocommerce-product-gallery,
.woocommerce div.product div.images .woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: var(--km-radius);
  background: var(--km-tint) !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.km-product-gallery-card .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  opacity: 1 !important;
  visibility: visible !important;
}
.km-product-gallery-card .woocommerce-product-gallery__image,
.woocommerce div.product div.images .woocommerce-product-gallery__image {
  display: grid !important;
  min-height: 380px !important;
  max-height: 520px !important;
  place-items: center !important;
  padding: 24px !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.km-product-gallery-card .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 440px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.km-product-gallery-card .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px !important;
  padding: 0 !important;
}
.km-product-gallery-card .flex-control-thumbs li { float: none !important; width: auto !important; }
.km-product-gallery-card .flex-control-thumbs img {
  border: 2px solid transparent;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  transition: all 0.2s ease;
}
.km-product-gallery-card .flex-control-thumbs img.flex-active {
  border-color: var(--km-primary);
  box-shadow: 0 4px 12px var(--km-primary-glow);
}

/* Single Buy Card */
.woocommerce div.product .summary.km-product-buy-card {
  position: sticky;
  top: 100px;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 32px);
}

.km-product-buy-card__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--km-line);
  color: var(--km-primary);
  font-size: 0.74rem;
  font-weight: 800;
}
.km-product-buy-card__topline small {
  padding: 2px 8px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-muted);
  font-variant-numeric: tabular-nums;
  direction: ltr;
}

.woocommerce div.product .km-product-buy-card .product_title,
.woocommerce div.product .product_title,
h1.product_title {
  margin: 0 0 10px;
  font-size: 1.02rem !important;
  font-weight: 800;
  line-height: 1.48;
  color: var(--km-ink);
}

.km-product-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 14px;
  padding: 4px 12px;
  border-radius: var(--km-radius-full);
  background: var(--km-emerald-soft);
  color: var(--km-emerald-deep);
  font-size: 0.76rem;
  font-weight: 800;
}
.km-product-badge .km-icon { width: 14px; height: 14px; }

.woocommerce div.product .km-product-buy-card p.price {
  margin: 0 0 16px;
  color: var(--km-primary);
  font-size: clamp(1.15rem, 1.4vw, 1.38rem) !important;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.woocommerce div.product .km-product-buy-card form.cart {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 10px;
  margin: 0 0 18px;
  padding: 10px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-tint);
}
.woocommerce div.product .km-product-buy-card .quantity .qty {
  height: 44px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius-sm);
  background: var(--km-paper);
  color: var(--km-ink);
  font-weight: 850;
  text-align: center;
}
.woocommerce div.product .km-product-buy-card form.cart .button {
  width: 100%;
  min-height: 44px;
  font-size: 0.88rem;
}

.km-product-guide-trigger {
  margin: 12px 0 18px;
}
.km-open-guide-btn {
  font-size: 0.82rem;
  color: var(--km-primary-light);
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.km-open-guide-btn:hover {
  color: var(--km-primary);
  text-decoration: underline;
}

.km-product-assurance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--km-line);
  gap: 12px;
}

/* ==========================================================================
   Frequently Bought Together Bundle Box (Feature 2)
   ========================================================================== */
.km-bundle-box {
  margin-top: 36px;
  padding: clamp(24px, 4vw, 36px);
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-lg);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-sm);
}
.km-bundle-box__header {
  margin-bottom: 24px;
}
.km-bundle-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: var(--km-radius-full);
  background: var(--km-primary-soft);
  color: var(--km-primary);
  font-size: 0.74rem;
  font-weight: 850;
  margin-bottom: 10px;
}
.km-bundle-badge .km-icon { width: 14px; height: 14px; }
.km-bundle-box__header h3 {
  margin: 0 0 6px;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 850;
  color: var(--km-ink);
}
.km-bundle-box__header p {
  margin: 0;
  color: var(--km-muted);
  font-size: 0.88rem;
}
.km-bundle-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
  align-items: center;
}
.km-bundle-items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.km-bundle-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: var(--km-tint);
  flex: 1;
  min-width: 200px;
}
.km-bundle-item__check {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
.km-bundle-toggle {
  width: 20px;
  height: 20px;
  accent-color: var(--km-primary);
  cursor: pointer;
}
.km-bundle-thumb {
  width: 58px;
  height: 58px;
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  overflow: hidden;
  display: block;
}
.km-bundle-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.km-bundle-tag {
  display: block;
  color: var(--km-muted);
  font-size: 0.68rem;
  font-weight: 800;
}
.km-bundle-item__info strong {
  display: block;
  font-size: 0.84rem;
  color: var(--km-ink);
  margin: 2px 0 4px;
}
.km-bundle-item__info b {
  color: var(--km-primary);
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
}
.km-bundle-summary {
  padding: 20px;
  border-radius: var(--km-radius);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
}
.km-bundle-pricing__label {
  display: block;
  color: var(--km-muted);
  font-size: 0.78rem;
  font-weight: 750;
}
.km-bundle-pricing__amounts {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 6px 0;
}
.km-bundle-regular {
  color: var(--km-muted);
  font-size: 0.88rem;
}
.km-bundle-final {
  color: var(--km-primary);
  font-size: 1.3rem;
  font-weight: 900;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}
.km-bundle-savings {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--km-radius-sm);
  background: var(--km-emerald-soft);
  color: var(--km-emerald-deep);
  font-size: 0.72rem;
  font-weight: 850;
  margin-bottom: 14px;
}
.km-add-bundle-btn {
  width: 100%;
}
@media (max-width: 782px) {
  .km-bundle-grid { grid-template-columns: minmax(0, 1fr); }
  .km-bundle-item { min-width: 0; flex-basis: 100%; }
}

/* ==========================================================================
   Medical Spec & Size Guide Modal (Feature 3)
   ========================================================================== */
.km-guide-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  visibility: hidden;
  transition: visibility 0.3s ease;
}
.km-guide-modal.is-open {
  visibility: visible;
}
.km-guide-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 35, 33, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.km-guide-modal.is-open .km-guide-modal__backdrop {
  opacity: 1;
}
.km-guide-modal__panel {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  width: min(680px, 92vw);
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  border-radius: var(--km-radius-lg);
  background: #ffffff;
  box-shadow: var(--km-shadow-lg);
  transition: transform 0.3s var(--km-ease);
  overflow: hidden;
}
.km-guide-modal.is-open .km-guide-modal__panel {
  transform: translate(-50%, -50%) scale(1);
}
.km-guide-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--km-line);
  background: var(--km-tint);
}
.km-guide-modal__title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--km-ink);
  font-size: 1rem;
  font-weight: 850;
}
.km-guide-modal__title .km-icon { width: 20px; height: 20px; color: var(--km-primary); }
.km-guide-modal__close {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  color: var(--km-ink);
  cursor: pointer;
  transition: all 0.2s ease;
}
.km-guide-modal__close:hover {
  background: var(--km-danger);
  border-color: var(--km-danger);
  color: #ffffff;
}
.km-guide-modal__body {
  padding: 24px;
  overflow-y: auto;
}
.km-guide-table-wrap h3 {
  margin: 0 0 14px;
  font-size: 1.05rem;
  color: var(--km-ink);
}
.km-guide-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}
.km-guide-table th, .km-guide-table td {
  padding: 12px 14px;
  border: 1px solid var(--km-line);
  text-align: right;
  font-size: 0.86rem;
}
.km-guide-table th {
  background: var(--km-tint);
  color: var(--km-ink);
  font-weight: 850;
}
.km-size-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  font-weight: 800;
  font-size: 0.78rem;
}
.km-size-badge--popular {
  background: var(--km-primary-soft);
  color: var(--km-primary);
}
.km-guide-tips {
  padding: 18px;
  border-radius: var(--km-radius);
  background: var(--km-tint);
  border-right: 4px solid var(--km-primary);
}
.km-guide-tips h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  color: var(--km-ink);
  font-size: 0.92rem;
}
.km-guide-tips h4 .km-icon { width: 18px; height: 18px; color: var(--km-primary); }
.km-guide-tips ul {
  margin: 0;
  padding-right: 20px;
  color: var(--km-muted);
  font-size: 0.84rem;
  line-height: 1.9;
}

/* ==========================================================================
   Live Sales Social Proof Toast Notification (Feature 4)
   ========================================================================== */
.km-social-proof {
  display: none !important;
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 1000;
  pointer-events: none;
}
.km-toast-proof {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 12px;
  align-items: center;
  width: min(360px, 90vw);
  padding: 12px 16px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--km-shadow-md);
  transform: translateY(120%);
  opacity: 0;
  transition: transform 0.4s var(--km-ease), opacity 0.4s ease;
}
.km-toast-proof.is-visible {
  transform: translateY(0);
  opacity: 1;
}
.km-toast-proof__thumb {
  width: 56px;
  height: 56px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  overflow: hidden;
}
.km-toast-proof__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.km-toast-proof__content {
  min-width: 0;
}
.km-toast-proof__city {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  color: var(--km-muted);
  font-weight: 750;
}
.km-toast-proof__badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--km-emerald);
  font-weight: 850;
}
.km-toast-proof__badge .km-icon { width: 12px; height: 12px; }
.km-toast-proof__title {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 0.84rem;
  font-weight: 850;
  margin: 3px 0;
}
.km-toast-proof__title a {
  color: var(--km-ink);
  transition: color 0.2s ease;
}
.km-toast-proof__title a:hover {
  color: var(--km-primary);
}
.km-toast-proof__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}
.km-toast-proof__time {
  color: var(--km-muted);
  font-size: 0.72rem;
  font-weight: 750;
}
.km-toast-proof__btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--km-radius-sm);
  background: var(--km-primary);
  color: #ffffff !important;
  font-size: 0.72rem;
  font-weight: 850;
  text-decoration: none;
  transition: all 0.2s ease;
}
.km-toast-proof__btn:hover {
  background: var(--km-primary-light);
  transform: scale(1.04);
}
.km-toast-proof__btn .km-icon { width: 11px; height: 11px; }
.km-toast-proof__close {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: var(--km-muted);
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
}
.km-toast-proof__close:hover {
  color: var(--km-danger);
}
.km-toast-proof__close .km-icon { width: 14px; height: 14px; }
.km-product-assurance > div {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
}
.km-product-assurance .km-icon {
  width: 22px;
  height: 22px;
  color: var(--km-primary);
}
.km-product-assurance strong { display: block; font-size: 0.74rem; font-weight: 850; }
.km-product-assurance small { display: block; color: var(--km-muted); font-size: 0.64rem; }

/* Tabs & Product After */
.km-product-after { margin-top: 32px; }
.woocommerce div.product .km-product-after .woocommerce-tabs {
  padding: 0;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-lg);
  background: var(--km-paper);
  overflow: hidden;
  box-shadow: var(--km-shadow-sm);
}
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs {
  display: flex;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--km-line);
  background: var(--km-tint);
  list-style: none;
}
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 1px solid var(--km-line) !important;
  background: transparent !important;
}
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li a {
  display: flex;
  min-height: 54px;
  align-items: center;
  padding: 14px 24px !important;
  color: var(--km-muted);
  font-size: 0.88rem;
  font-weight: 750;
  transition: all 0.2s ease;
}
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li.active {
  background: #ffffff !important;
}
.woocommerce div.product .km-product-after .woocommerce-tabs ul.tabs li.active a {
  color: var(--km-primary);
  font-weight: 850;
}
.woocommerce div.product .km-product-after .woocommerce-tabs .panel {
  max-width: 1060px;
  margin: 0 auto !important;
  padding: clamp(32px, 5vw, 68px);
  color: var(--km-text);
  font-size: 1rem;
  line-height: 2;
}

/* ==========================================================================
   Checkout & Cart Flows (Phase 4)
   ========================================================================== */
.woocommerce table.shop_table {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--km-line);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-sm);
}
.woocommerce table.shop_table th {
  padding: 16px;
  background: var(--km-tint);
  color: var(--km-ink);
  font-weight: 850;
  border-bottom: 1px solid var(--km-line);
}
.woocommerce table.shop_table td {
  padding: 16px;
  border-bottom: 1px solid var(--km-line);
  vertical-align: middle;
}
.woocommerce-cart table.cart img {
  width: 80px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
}
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
  padding: 28px;
  border: 1px solid var(--km-line);
  border-radius: var(--km-radius-lg);
  background: var(--km-paper);
  box-shadow: var(--km-shadow-sm);
}
.woocommerce-checkout #payment {
  border-radius: var(--km-radius);
  background: var(--km-tint);
}
.woocommerce-checkout #payment div.payment_box {
  background: #ffffff;
  border-radius: var(--km-radius-sm);
  border: 1px solid var(--km-line);
}

/* Form Controls */
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="password"], input[type="number"], input[type="url"], select, textarea {
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  color: var(--km-ink);
  font-family: inherit;
  font-size: 0.94rem;
  transition: all 0.2s ease;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: var(--km-primary);
  box-shadow: 0 0 0 3px var(--km-primary-glow);
  outline: none;
}
label { font-weight: 750; font-size: 0.88rem; }

/* ==========================================================================
   Footer & Mobile Bar (Phase 5)
   ========================================================================== */
.km-footer {
  position: relative;
  z-index: 2;
  padding: 48px 0 30px;
  overflow: hidden;
  background: var(--km-footer);
  color: #c2deda;
}
.km-footer a { color: #dbeefc; }
.km-footer__masthead {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  color: #8daea8;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  direction: ltr;
}
.km-footer__masthead strong {
  color: #ffffff;
  font-size: clamp(1.15rem, 2vw, 1.7rem);
  font-weight: 700;
  letter-spacing: 0;
  direction: rtl;
}
.km-footer__masthead span:last-child { justify-self: end; }

.km-footer__grid {
  display: grid;
  grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: clamp(24px, 4vw, 56px);
  padding-block: 56px;
}
.km-footer__grid--5col {
  grid-template-columns: 1.3fr 0.9fr 0.9fr 1fr 1.3fr;
}
.km-footer__about { max-width: 440px; }
.km-footer__eyebrow {
  display: block;
  margin-bottom: 14px;
  color: var(--km-emerald);
  font-size: 0.72rem;
  font-weight: 800;
}
.km-footer h2, .km-footer h3 {
  margin-top: 0;
  color: #ffffff;
}
.km-footer h2 {
  margin-bottom: 14px;
  font-size: clamp(1.8rem, 3vw, 3rem);
  font-weight: 850;
}
.km-footer h3 {
  margin-bottom: 20px;
  font-size: 0.94rem;
}
.km-footer p { color: #9bbbb5; font-size: 0.88rem; line-height: 1.85; }
.km-footer ul { margin: 0; padding: 0; list-style: none; }
.km-footer li { margin: 6px 0; }
.km-footer li a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  color: #eadbd0;
  font-size: 0.84rem;
  transition: all 0.2s ease;
}
.km-footer li a:hover {
  color: var(--km-emerald);
  transform: translateX(-4px);
}

/* ==========================================================================
   Flagship 7-Feature Enhancements
   ========================================================================== */

/* 1. Free Shipping Progress Rail */
.km-free-shipping-rail {
  padding: 14px 16px;
  margin-bottom: 16px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
}
.km-free-shipping-text {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--km-ink);
  margin-bottom: 8px;
}
.km-free-shipping-text strong {
  color: var(--km-primary);
  font-variant-numeric: tabular-nums;
}
.km-free-shipping-success {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--km-emerald-deep);
  font-weight: 850;
}
.km-free-shipping-success .km-icon { width: 16px; height: 16px; color: var(--km-emerald); }
.km-free-shipping-bar {
  height: 6px;
  border-radius: 999px;
  background: var(--km-line);
  overflow: hidden;
}
.km-free-shipping-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--km-primary), var(--km-emerald));
  transition: width 0.4s var(--km-ease);
}

/* 2. Card Action Buttons (Wishlist, Compare, Quick View) */
.km-card-actions {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 6px;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.25s var(--km-ease);
}
.woocommerce ul.products li.product:hover .km-card-actions {
  opacity: 1;
  transform: translateX(0);
}
.km-card-action-btn {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--km-line-glass);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  color: var(--km-ink);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  cursor: pointer;
  transition: all 0.2s var(--km-ease);
}
.km-card-action-btn .km-icon { width: 16px; height: 16px; }
.km-card-action-btn:hover {
  background: var(--km-primary);
  color: #ffffff;
  transform: scale(1.12);
}
.km-wishlist-toggle.is-active {
  background: var(--km-danger);
  color: #ffffff;
  border-color: var(--km-danger);
}

/* 3. Prescription Modal & Topbar button */
.km-topbar__links {
  display: flex;
  align-items: center;
  gap: 18px;
}
.km-topbar__prescription-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--km-radius-full);
  color: #ffffff;
  padding: 3px 12px;
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.2s ease;
}
.km-topbar__prescription-btn:hover {
  background: var(--km-emerald);
  border-color: var(--km-emerald);
  color: #ffffff;
}
.km-topbar__prescription-btn .km-icon { width: 13px; height: 13px; }
.km-form-desc {
  color: var(--km-muted);
  font-size: 0.88rem;
  line-height: 1.8;
  margin-bottom: 20px;
}
.km-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.km-upload-field {
  display: block;
  margin-top: 14px;
}
.km-upload-field span {
  display: block;
  margin-bottom: 6px;
  font-size: 0.84rem;
  font-weight: 750;
}
.km-upload-field input[type="file"] {
  padding: 12px;
  border: 1.5px dashed var(--km-primary);
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
}

/* 4. Product Comparison Dock & Modal */
.km-compare-dock {
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 1100;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
  border-top: 1px solid var(--km-line);
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.08);
  padding: 12px 24px;
  transform: translateY(100%);
  transition: transform 0.3s var(--km-ease);
}
.km-compare-dock.is-visible { transform: translateY(0); }
.km-compare-dock__inner {
  max-width: var(--km-container);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.km-compare-dock__items {
  display: flex;
  align-items: center;
  gap: 12px;
  overflow-x: auto;
}
.km-compare-item-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
  font-size: 0.82rem;
  font-weight: 750;
  white-space: nowrap;
}
.km-compare-item-chip img {
  width: 32px;
  height: 32px;
  border-radius: 4px;
  object-fit: cover;
}
.km-compare-item-remove {
  background: transparent;
  border: none;
  color: var(--km-muted);
  cursor: pointer;
  padding: 0;
  font-weight: 900;
}
.km-compare-dock__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.km-compare-clear-btn {
  background: transparent;
  border: none;
  color: var(--km-muted);
  font-family: inherit;
  font-size: 0.82rem;
  cursor: pointer;
}
.km-compare-modal__panel {
  width: min(960px, 94vw);
}
.km-compare-table {
  width: 100%;
  border-collapse: collapse;
}
.km-compare-table th, .km-compare-table td {
  padding: 14px;
  border: 1px solid var(--km-line);
  text-align: right;
  font-size: 0.88rem;
}
.km-compare-table th { background: var(--km-tint); font-weight: 850; }

/* 5. BNPL Card (SnapPay) */
.km-bnpl-card {
  margin: 16px 0;
  padding: 12px 16px;
  border: 1px solid rgba(225, 29, 72, 0.2);
  border-radius: var(--km-radius-sm);
  background: #fff5f7;
}
.km-bnpl-head {
  display: flex;
  align-items: center;
  gap: 14px;
}
.km-bnpl-logo {
  padding: 4px 10px;
  border-radius: 6px;
  background: #e11d48;
  color: #ffffff;
  font-weight: 900;
  font-size: 0.82rem;
  letter-spacing: 0.05em;
}
.km-bnpl-head strong { display: block; font-size: 0.84rem; color: var(--km-ink); }
.km-bnpl-head span { font-size: 0.8rem; color: var(--km-text); }
.km-bnpl-head b { color: #e11d48; font-variant-numeric: tabular-nums; }

/* 6. Flash Sale Banner */
.km-flash-sale-banner {
  margin: 0 0 20px;
  padding: 16px;
  border-radius: var(--km-radius);
  background: linear-gradient(135deg, rgba(225, 29, 72, 0.08), rgba(200, 148, 61, 0.08));
  border: 1px solid rgba(225, 29, 72, 0.2);
}
.km-flash-sale-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.km-flash-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--km-danger);
  font-weight: 850;
  font-size: 0.84rem;
}
.km-flash-badge .km-icon { width: 16px; height: 16px; }
.km-countdown-timer {
  display: flex;
  align-items: center;
  gap: 4px;
  direction: ltr;
}
.km-timer-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 38px;
  padding: 4px 6px;
  border-radius: 6px;
  background: var(--km-danger);
  color: #ffffff;
}
.km-timer-unit b { font-size: 0.92rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.km-timer-unit small { font-size: 0.58rem; }
.km-flash-stock {
  font-size: 0.74rem;
  color: var(--km-muted);
}
.km-flash-bar {
  height: 6px;
  margin-top: 6px;
  border-radius: 999px;
  background: var(--km-line);
  overflow: hidden;
}
.km-flash-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--km-warning), var(--km-danger));
}

/* 7. Video Trigger & Player */
.km-video-trigger-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: var(--km-radius-full);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
  color: var(--km-ink);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.2s ease;
}
.km-video-trigger-btn:hover {
  background: var(--km-primary);
  color: #ffffff;
}
.km-video-trigger-btn .km-icon { width: 12px; height: 12px; color: var(--km-danger); }
.km-video-trigger-btn:hover .km-icon { color: #ffffff; }
.km-video-modal__panel { width: min(800px, 92vw); }
.km-video-container { padding: 24px; }
.km-video-placeholder {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 48px 24px;
  border-radius: var(--km-radius);
  background: var(--km-tint);
  border: 1.5px dashed var(--km-primary);
}
.km-video-player-graphic {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--km-primary);
  color: #ffffff;
  box-shadow: 0 0 25px var(--km-primary-glow);
  margin-bottom: 16px;
}
.km-video-player-graphic .km-icon { width: 32px; height: 32px; transform: translateX(-2px); }
.km-video-placeholder h3 { margin: 0 0 8px; color: var(--km-ink); font-size: 1.15rem; }
.km-video-placeholder p { max-width: 500px; margin: 0; color: var(--km-muted); font-size: 0.88rem; line-height: 1.8; }

/* ==========================================================================
   Clinical Support Hub, Printable Invoice & Shop Faceted Filters
   ========================================================================== */

/* 1. Clinical Support Floating Hub */
.km-support-hub {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 1050;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.km-support-hub__menu {
  position: absolute;
  bottom: calc(100% + 14px);
  right: 0;
  width: 290px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  border-radius: var(--km-radius);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(16px);
  border: 1px solid var(--km-line-glass);
  box-shadow: 0 14px 34px -4px rgba(16, 28, 27, 0.14);
  opacity: 0;
  transform: translateY(12px) scale(0.95);
  pointer-events: none;
  transition: all 0.25s var(--km-ease);
}
.km-support-hub.is-open .km-support-hub__menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.km-support-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
  color: var(--km-ink);
  text-decoration: none;
  font-family: inherit;
  cursor: pointer;
  text-align: right;
  transition: all 0.2s ease;
}
.km-support-item:hover {
  background: var(--km-primary);
  color: #ffffff;
  transform: translateX(-4px);
}
.km-support-item strong { display: block; font-size: 0.82rem; line-height: 1.3; }
.km-support-item small { font-size: 0.72rem; opacity: 0.8; }
.km-support-item__icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.8);
  color: var(--km-primary);
  flex-shrink: 0;
}
.km-support-item:hover .km-support-item__icon { background: rgba(255, 255, 255, 0.2); color: #ffffff; }
.km-support-item__icon .km-icon { width: 18px; height: 18px; }

.km-support-hub__toggle .km-hub-icon-close { display: none; }
.km-support-hub.is-open .km-support-hub__toggle .km-hub-icon-open { display: none; }
.km-support-hub.is-open .km-support-hub__toggle .km-hub-icon-close { display: block; }

/* ==========================================================================
   Ultra-Luxury Catalog & Shop Archive Styles (KooshkiMed 1.0.0)
   ========================================================================== */
.km-shop-page {
  padding-bottom: 60px;
}

.km-shop-hero {
  position: relative;
  margin-bottom: 28px;
  padding: clamp(36px, 5vw, 56px) 0;
  border-radius: 0;
  background: var(--km-tint);
  color: var(--km-text);
  box-shadow: none;
}
.km-shop-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: var(--km-radius-full);
  background: transparent;
  color: var(--km-primary-deep);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
}
.km-shop-hero__title {
  margin: 12px 0 8px;
  color: var(--km-ink) !important;
  font-size: clamp(1.5rem, 2.6vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.km-shop-hero__desc {
  max-width: 760px;
  margin: 0;
  color: var(--km-text);
  font-size: 0.92rem;
  line-height: 1.8;
}

/* Category Navigation Rail */
.km-shop-cats-rail {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: 4px;
}
.km-shop-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: var(--km-radius-full);
  background: #ffffff;
  border: 1px solid var(--km-line-strong);
  color: var(--km-ink) !important;
  font-size: 0.82rem;
  font-weight: 750;
  white-space: nowrap;
  transition: all 0.25s var(--km-ease);
}
.km-shop-cat-chip:hover, .km-shop-cat-chip.is-active {
  background: var(--km-primary-deep);
  border-color: var(--km-primary-deep);
  color: #ffffff !important;
  font-weight: 850;
  box-shadow: none;
}
.km-shop-cat-chip small {
  opacity: 0.8;
  font-size: 0.74rem;
}
.km-shop-cat-chip__icon .km-icon { width: 14px; height: 14px; }

/* Control Bar */
.km-shop-controls-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
  padding: 14px 20px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
}
.km-shop-controls-bar__left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.km-shop-results-count {
  color: var(--km-muted);
  font-size: 0.84rem;
  font-weight: 750;
}
.km-shop-results-count p { margin: 0; }
.km-shop-ordering select {
  min-height: 40px;
  padding: 6px 14px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius-sm);
  background: var(--km-paper);
  color: var(--km-ink);
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}
.km-shop-ordering select:focus {
  border-color: var(--km-primary);
  outline: none;
}

/* Shop Layout Grid */
.km-shop-main-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
@media (max-width: 960px) {
  .km-shop-main-grid {
    grid-template-columns: 1fr;
  }
}

/* Sidebar */
.km-shop-sidebar {
  position: sticky;
  top: 100px;
}
.km-shop-filter-card {
  padding: 22px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
}
.km-shop-filter-card__head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid var(--km-line);
  font-size: 0.95rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-shop-filter-card__head .km-icon { width: 16px; height: 16px; color: var(--km-primary); }

.km-filter-widget {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--km-line);
}
.km-filter-widget:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.km-filter-widget h4 {
  margin: 0 0 10px;
  font-size: 0.86rem;
  font-weight: 850;
  color: var(--km-ink);
}

.km-filter-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.km-filter-checklist a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 12px;
  border-radius: var(--km-radius-sm);
  color: var(--km-text);
  font-size: 0.82rem;
  font-weight: 750;
  transition: all 0.2s ease;
}
.km-filter-checklist a:hover, .km-filter-checklist a.is-active {
  background: var(--km-tint);
  color: var(--km-primary);
}
.km-filter-checklist a b {
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--km-tint);
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--km-muted);
}
.km-filter-checklist a.is-active b {
  background: var(--km-primary);
  color: #ffffff;
}

.km-filter-pills-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.km-filter-pills-col .km-pill {
  justify-content: flex-start;
  width: 100%;
}

.km-shop-sidebar-trust {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.km-shop-sidebar-trust div {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-ink);
  font-size: 0.78rem;
  font-weight: 750;
}
.km-shop-sidebar-trust .km-icon { width: 14px; height: 14px; color: var(--km-emerald); flex-shrink: 0; }

/* Products Grid Output */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
  gap: 20px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }

.km-loop-product-card {
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  float: none !important;
}

.km-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
  overflow: hidden;
  transition: all 0.3s var(--km-ease);
}
.km-product-card:hover {
  transform: translateY(-5px);
  border-color: var(--km-primary);
  box-shadow: var(--km-shadow-md);
}

/* Card Badges */
.km-card-badges {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 6px;
  pointer-events: none;
}
.km-badge--sale {
  background: #e11d48;
  color: #ffffff;
  font-size: 0.7rem;
  font-weight: 850;
  padding: 3px 8px;
  border-radius: var(--km-radius-full);
}
.km-badge--stock {
  background: rgba(15, 136, 132, 0.92);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: var(--km-radius-full);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.km-badge--stock .km-icon { width: 10px; height: 10px; }
.km-badge--out {
  background: #64748b;
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: var(--km-radius-full);
}

/* Card Floating Actions */
.km-card-actions {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 6px;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.25s var(--km-ease);
}
.km-product-card:hover .km-card-actions {
  opacity: 1;
  transform: translateX(0);
}
.km-card-action-btn {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--km-line-strong);
  color: var(--km-ink);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: all 0.2s ease;
}
.km-card-action-btn:hover {
  background: var(--km-primary);
  border-color: var(--km-primary);
  color: #ffffff;
  transform: scale(1.1);
}
.km-card-action-btn .km-icon { width: 15px; height: 15px; }

/* Thumbnail Stage */
.km-product-card__thumb {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
  padding: 16px;
  background: var(--km-tint);
  overflow: hidden;
}
.km-product-card__thumb img {
  width: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.4s var(--km-ease);
}
.km-product-card:hover .km-product-card__thumb img {
  transform: scale(1.06);
}

/* Body Content */
.km-product-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 16px 18px 18px;
}
.km-product-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  font-size: 0.72rem;
}
.km-product-card__cat {
  color: var(--km-primary);
  font-weight: 800;
}
.km-product-card__sku {
  color: var(--km-muted);
  font-variant-numeric: tabular-nums;
  direction: ltr;
}

.km-product-card__title {
  margin: 0 0 8px;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 42px;
}
.km-product-card__title a {
  color: var(--km-ink);
  transition: color 0.2s ease;
}
.km-product-card__title a:hover {
  color: var(--km-primary);
}

.km-product-card__rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
  font-size: 0.72rem;
}
.km-stars { color: #f59e0b; font-size: 0.76rem; letter-spacing: 1px; }
.km-product-card__rating small { color: var(--km-muted); }

.km-product-card__price {
  margin-top: auto;
  margin-bottom: 12px;
  color: var(--km-primary);
  font-size: 1.02rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.km-product-card__price del {
  color: var(--km-muted);
  font-size: 0.8rem;
  font-weight: 400;
  margin-left: 6px;
}
.km-product-card__price ins {
  text-decoration: none;
}

.km-product-card__footer .button,
.km-product-card__footer .km-button {
  width: 100% !important;
  min-height: 38px !important;
  padding: 6px 12px !important;
  font-size: 0.82rem !important;
  font-weight: 850 !important;
  border-radius: var(--km-radius-sm) !important;
  text-align: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}

/* 3. Printable Medical Invoice */
.km-invoice-modal__panel { width: min(840px, 94vw); }
.km-invoice-printable {
  padding: 32px;
  background: #ffffff;
  color: #000000;
  font-size: 0.88rem;
}
.km-invoice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.km-invoice-header h2 { margin: 0 0 4px; font-size: 1.4rem; color: #000000; }
.km-invoice-header p { margin: 0 0 4px; font-size: 0.84rem; color: #444444; }
.km-invoice-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
  font-size: 0.82rem;
}
.km-invoice-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}
.km-invoice-table th, .km-invoice-table td {
  padding: 10px 14px;
  border: 1px solid #000000;
  text-align: right;
  font-size: 0.84rem;
}
.km-invoice-table th { background: #f0f0f0; font-weight: 850; }
.km-invoice-footer {
  border-top: 1px dashed #666666;
  padding-top: 12px;
  font-size: 0.78rem;
  color: #444444;
}

@media print {
  body * { visibility: hidden; }
  .km-invoice-printable, .km-invoice-printable * { visibility: visible; }
  .km-invoice-printable {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 20px;
  }
  .no-print { display: none !important; }
}
.km-footer__hours {
  margin: 10px 0 14px;
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--km-radius-sm);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.82rem;
}
.km-footer__hours span {
  display: block;
  color: #8daea8;
  font-size: 0.72rem;
}
.km-footer__hours strong {
  display: block;
  margin-top: 2px;
  color: #ffffff;
  font-weight: 800;
}
.km-footer-form__wrap {
  display: flex;
  align-items: center;
  margin-top: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--km-radius-sm);
  background: rgba(255, 255, 255, 0.06);
  padding: 4px;
}
.km-footer-form__wrap input {
  flex: 1;
  min-height: 40px;
  padding: 6px 12px;
  background: transparent;
  border: none;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.86rem;
  outline: none;
}
.km-footer-form__wrap input::placeholder {
  color: #8daea8;
}
.km-footer-form__wrap .km-button {
  min-height: 40px;
  padding: 0 14px;
  border-radius: calc(var(--km-radius-sm) - 2px);
}
.km-footer__contact {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--km-radius);
  background: rgba(255, 255, 255, 0.06);
  direction: ltr;
  color: #ffffff !important;
  transition: all 0.2s ease;
}
.km-footer__contact:hover {
  background: var(--km-primary-light);
  border-color: var(--km-primary-light);
}

.km-footer__trust-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  direction: ltr;
}
.km-footer__trust-row > * { direction: rtl; }
.km-footer__logo {
  max-width: 180px;
  max-height: 56px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.km-footer__logo-fallback {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.1rem;
  color: #ffffff;
}
.km-footer__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.km-footer__badge-placeholder {
  display: flex;
  min-width: 175px;
  min-height: 68px;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--km-radius);
  background: rgba(255, 255, 255, 0.04);
}
.km-footer__badge-placeholder > .km-icon {
  width: 26px;
  height: 26px;
  color: var(--km-emerald);
}
.km-footer__badge-placeholder strong { display: block; color: #ffffff; font-size: 0.78rem; font-weight: 800; }
.km-footer__badge-placeholder small { display: block; color: #8daea8; font-size: 0.65rem; }

.km-footer__bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: #799d97;
  font-size: 0.72rem;
}
.km-footer__bottom span:last-child { direction: ltr; letter-spacing: 0.08em; }

/* Floating Support Button */
.km-floating {
  position: fixed;
  bottom: 28px;
  left: 28px;
  z-index: 800;
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  background: linear-gradient(145deg, var(--km-emerald), var(--km-emerald-deep));
  color: #ffffff !important;
  box-shadow: 0 16px 36px rgba(15, 136, 132, 0.2);
  transition: all 0.25s var(--km-ease);
}
.km-floating:hover {
  transform: scale(1.1) translateY(-4px);
  box-shadow: 0 20px 42px rgba(15, 136, 132, 0.24);
}
.km-floating .km-icon { width: 24px; height: 24px; }
.km-mobile-toolbar { display: none; }

/* Sticky Mobile Buy Bar */
.km-sticky-buy-bar {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 950;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 18px;
  border-top: 1px solid var(--km-line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform 0.3s var(--km-ease);
}
.km-sticky-buy-bar.is-visible {
  transform: translateY(0);
}
.km-sticky-buy-bar__info { min-width: 0; }
.km-sticky-buy-bar__title {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--km-ink);
}
.km-sticky-buy-bar__price {
  display: block;
  color: var(--km-primary);
  font-size: 0.94rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.km-sticky-buy-bar .km-button {
  min-height: 44px;
  padding: 8px 18px;
  font-size: 0.84rem;
}

/* ==========================================================================
   Reveal Animations
   ========================================================================== */
.km-js [data-km-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.45s ease-out, transform 0.45s var(--km-ease);
}
[data-km-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* ==========================================================================
   Responsive Breakpoints
   ========================================================================== */
@media (max-width: 1200px) {
  .km-header__row { grid-template-columns: auto auto 1fr; gap: 16px; }
  .km-menu-toggle { display: grid; }
  .km-nav { display: none; }
  .km-actions { justify-self: end; }
  .km-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .km-product-stage { grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr); }
}

@media (max-width: 1024px) {
  .km-container { width: min(calc(100% - 36px), var(--km-container)); }
  .km-hero__frame { grid-template-columns: 1fr; }
  .km-hero__visual { min-height: 540px; }
  .km-section__head { grid-template-columns: 1fr; gap: 18px; }
  .km-section__aside { justify-self: start; max-width: 600px; }
  .km-manifesto__grid { grid-template-columns: 1fr; }
  .km-manifesto__statement { position: static; }
  .km-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .km-product-stage { grid-template-columns: 1fr; }
  .woocommerce div.product .summary.km-product-buy-card { position: relative; top: auto; }
}

@media (max-width: 782px) {
  :root { --km-header-height: 68px; }
  .admin-bar .km-header { top: 46px; }
  .km-topbar__inner { grid-template-columns: 1fr auto; }
  .km-topbar__edition { display: none; }
  .km-header.is-scrolled .km-header__row {
    min-height: 58px;
    padding-inline: 14px;
    border-radius: var(--km-radius);
  }
  .km-brand__copy { display: none; }
  .km-actions .km-account { display: none; }
  .km-hero__proof { grid-template-columns: repeat(3, 1fr); }
  .km-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .km-consult__card { grid-template-columns: 1fr; }
  .km-consult__card > .km-button { justify-self: start; }
  .km-footer__grid { grid-template-columns: 1fr; }
  .km-footer__trust-row { flex-direction: column; align-items: stretch; }
  .km-footer__bottom { flex-direction: column; }
  .km-footer { padding-bottom: 110px; }

  /* Mobile Bottom Dock */
  .km-mobile-toolbar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 900;
    display: grid;
    min-height: 68px;
    grid-template-columns: repeat(5, 1fr);
    border-top: 1px solid var(--km-line);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.06);
  }
  .km-mobile-toolbar a,
  .km-mobile-toolbar button {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 68px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 6px 2px;
    border: 0;
    background: transparent;
    color: var(--km-muted);
    font-size: 0.65rem;
    font-weight: 750;
    text-decoration: none;
    transition: color 0.2s ease;
  }
  .km-mobile-toolbar a:hover,
  .km-mobile-toolbar button:hover,
  .km-mobile-toolbar a.is-active {
    color: var(--km-primary);
  }
  .km-mobile-toolbar .km-icon { width: 20px; height: 20px; }
  .km-mobile-toolbar .km-action__count {
    top: 6px;
    left: calc(50% - 22px);
    border-color: #ffffff;
  }
  .km-floating { bottom: 84px; left: 16px; width: 48px; height: 48px; }
  .km-qv-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .km-container { width: min(calc(100% - 24px), var(--km-container)); }
  .km-main { padding-block: 28px 64px; }
  .km-section { padding-block: 54px; }
  .km-hero__content { padding: 36px 18px; }
  .km-hero h1 { font-size: clamp(2.4rem, 11vw, 3.6rem); }
  .km-hero__buttons { flex-direction: column; align-items: stretch; }
  .km-hero__buttons .km-button,
  .km-hero__buttons .km-text-link { width: 100%; justify-content: center; }
  .km-hero__visual { min-height: 420px; padding: 24px 14px; }
  .km-hero-product__meta { right: 6px; bottom: 16px; width: calc(100% - 68px); padding: 12px; }
  .km-hero-product__arrow { bottom: 16px; left: 6px; width: 46px; height: 46px; }
  .km-section__head h1, .km-section__head h2 { font-size: clamp(1.8rem, 8.5vw, 2.8rem); }
  .km-categories { grid-template-columns: 1fr 1fr; gap: 10px; }
  .km-category-card { min-height: 180px; padding: 14px 10px; }
  .km-category-card__image { width: 76px; height: 76px; margin-bottom: 14px; }
  .woocommerce ul.products { gap: 10px; }
  .woocommerce ul.products li.product { padding: 10px 10px 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 0.84rem !important; }
  .km-search-form { flex-direction: column; }
  .km-search-form .search-submit { width: 100%; }
}

/* ==========================================================================
   Editorial About Us & Contact Page Styles (KooshkiMed 1.0.0)
   ========================================================================== */
.km-page-hero {
  position: relative;
  margin-bottom: 32px;
  padding: clamp(36px, 5vw, 56px) 0;
  border-radius: 0;
  background: var(--km-tint);
  color: var(--km-text);
  box-shadow: none;
}
.km-page-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: var(--km-radius-full);
  background: transparent;
  color: var(--km-primary-deep);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
}
.km-page-hero__title {
  margin: 12px 0 8px;
  color: var(--km-ink) !important;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.km-page-hero__desc {
  max-width: 760px;
  margin: 0;
  color: var(--km-text);
  font-size: 0.92rem;
  line-height: 1.8;
}

.km-page-content {
  padding-bottom: 60px;
}

/* About Page */
.km-about-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}
@media (max-width: 840px) {
  .km-about-metrics { grid-template-columns: repeat(2, 1fr); }
}
.km-about-metric-card {
  padding: 22px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
  text-align: center;
}
.km-about-metric-card strong {
  display: block;
  font-size: 1.9rem;
  font-weight: 900;
  color: var(--km-primary);
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
.km-about-metric-card span {
  color: var(--km-muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.km-about-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 768px) {
  .km-about-grid { grid-template-columns: 1fr; }
}
.km-about-card {
  padding: 24px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
}
.km-about-card__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-primary);
  display: grid;
  place-items: center;
  margin-bottom: 14px;
}
.km-about-card__icon .km-icon { width: 22px; height: 22px; }
.km-about-card h3 {
  margin: 0 0 8px;
  font-size: 1.02rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-about-card p {
  color: var(--km-text);
  font-size: 0.88rem;
  line-height: 1.8;
  margin: 0;
}

.km-about-seals-card {
  padding: 32px;
  border-radius: var(--km-radius);
  background: var(--km-tint);
  border: 1px solid var(--km-line);
  text-align: center;
}
.km-about-seals-card h3 {
  margin: 0 0 8px;
  font-size: 1.15rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-about-seals-card p {
  margin: 0 0 20px;
  color: var(--km-muted);
  font-size: 0.88rem;
}
.km-about-seals-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 768px) {
  .km-about-seals-grid { grid-template-columns: repeat(2, 1fr); }
}
.km-about-seals-grid div {
  padding: 16px;
  border-radius: var(--km-radius-sm);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
}
.km-about-seals-grid strong {
  display: block;
  color: var(--km-primary);
  font-size: 1.1rem;
  font-weight: 900;
  margin-bottom: 4px;
}
.km-about-seals-grid span {
  color: var(--km-muted);
  font-size: 0.74rem;
}

/* Contact Page */
.km-contact-channels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 36px;
}
@media (max-width: 880px) {
  .km-contact-channels { grid-template-columns: 1fr; }
}
.km-channel-card {
  padding: 24px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.km-channel-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
  color: var(--km-primary);
  display: grid;
  place-items: center;
  margin-bottom: 14px;
}
.km-channel-card__icon .km-icon { width: 22px; height: 22px; }
.km-channel-card h3 {
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-channel-card p {
  margin: 0 0 16px;
  color: var(--km-muted);
  font-size: 0.84rem;
  line-height: 1.7;
}

.km-contact-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) 1fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 900px) {
  .km-contact-main-grid { grid-template-columns: 1fr; }
}
.km-contact-form-card {
  padding: 32px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
}
.km-contact-form-head {
  margin-bottom: 24px;
}
.km-contact-form-head h2 {
  margin: 6px 0;
  font-size: 1.25rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-contact-form-head p {
  margin: 0;
  color: var(--km-muted);
  font-size: 0.88rem;
}
.km-contact-form .km-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .km-contact-form .km-form-row { grid-template-columns: 1fr; }
}
.km-contact-form .km-form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.km-contact-form label {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--km-ink);
}
.km-contact-form input,
.km-contact-form select,
.km-contact-form textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--km-line-strong);
  border-radius: var(--km-radius-sm);
  background: #ffffff;
  color: var(--km-ink);
  font-size: 0.86rem;
  transition: all 0.2s ease;
}
.km-contact-form input:focus,
.km-contact-form select:focus,
.km-contact-form textarea:focus {
  border-color: var(--km-primary);
  box-shadow: 0 0 0 3px rgba(15, 136, 132, 0.15);
  outline: none;
}

.km-contact-info-box {
  padding: 28px;
  border-radius: var(--km-radius);
  background: var(--km-paper);
  border: 1px solid var(--km-line);
  box-shadow: var(--km-shadow-sm);
}
.km-contact-info-box h3 {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid var(--km-line);
  font-size: 1rem;
  font-weight: 850;
  color: var(--km-ink);
}
.km-contact-hours-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.km-contact-hours-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
}
.km-contact-hours-list span { color: var(--km-muted); }
.km-contact-hours-list strong { color: var(--km-ink); font-weight: 850; }

.km-contact-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border-radius: var(--km-radius-sm);
  background: var(--km-tint);
}
.km-contact-notice .km-icon { width: 20px; height: 20px; color: var(--km-emerald); flex-shrink: 0; margin-top: 2px; }
.km-contact-notice strong { display: block; color: var(--km-ink); font-size: 0.84rem; margin-bottom: 4px; }
.km-contact-notice p { margin: 0; color: var(--km-text); font-size: 0.78rem; line-height: 1.7; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-km-reveal] { opacity: 1; transform: none; }
}

/* ========================================================================== 
   Editorial system: shared surfaces, commerce and responsive composition.
   ========================================================================== */
.km-glass,.km-card { background:var(--km-paper); backdrop-filter:none; box-shadow:none; border-color:var(--km-line); }
.km-header,.km-header.is-scrolled { background:var(--km-bg); border-bottom:1px solid var(--km-line); backdrop-filter:none; }
.km-header.is-scrolled .km-header__row { min-height:var(--km-header-height); margin-top:0; padding-inline:0; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.km-header__row { gap:24px; }
.km-brand .custom-logo { max-width:172px; max-height:58px; object-fit:contain; }
.km-topbar { background:var(--km-primary); color:#fff; }
.km-topbar__inner { grid-template-columns:1fr auto; }
.km-topbar__promise i { display:none; }
.km-topbar__links { display:flex; gap:20px; align-items:center; }
.km-topbar a { color:#fff; }
.km-action { border:1px solid var(--km-line); background:transparent; border-radius:var(--km-radius-sm); box-shadow:none; }
.km-menu>li>a { font-weight:650; }
.km-menu>li>a:hover,.km-menu>.current-menu-item>a { color:var(--km-accent); }
.km-kicker { border:0; padding:0; background:transparent; color:var(--km-accent); font-size:13px; font-weight:700; }
.km-button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wp-element-button,.woocommerce #respond input#submit { background:var(--km-primary); border-color:var(--km-primary); color:#fff; box-shadow:none; border-radius:var(--km-radius); min-height:48px; font-weight:750; }
.km-button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover { background:var(--km-primary-deep); border-color:var(--km-primary-deep); color:#fff; box-shadow:none; transform:translateY(-1px); }
.km-button--outline { background:transparent; color:var(--km-primary); }
.km-button--light { background:#fff; border-color:#fff; color:var(--km-primary); }
.km-button--emerald { background:var(--km-primary); color:#fff; }
.km-text-link { color:var(--km-primary); font-weight:700; }
.km-section { padding-block:64px; }
.km-section__head { align-items:end; margin-bottom:32px; gap:28px; }
.km-section__head h2 { font-size:clamp(1.9rem,3.2vw,3rem); line-height:1.4; margin:12px 0 0; }
.km-section__head>p { max-width:330px; color:var(--km-muted); margin:0; }
.km-departments { padding-top:0; }
.km-categories { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-block:1px solid var(--km-line-strong); }
.km-category-card,.km-category-card:first-child { display:grid; grid-template-columns:60px 1fr auto; gap:18px; align-items:center; min-height:112px; grid-column:auto; grid-row:auto; padding:24px 20px; border:0; border-radius:0; border-bottom:1px solid var(--km-line); background:transparent; box-shadow:none; text-align:start; }
.km-category-card::before,.km-category-card::after { display:none; }
.km-category-card:hover { background:var(--km-paper-alt); transform:none; box-shadow:none; }
.km-category-card__image { width:56px; height:56px; margin:0; background:var(--km-paper); border:1px solid var(--km-line); border-radius:var(--km-radius); }
.km-category-card__image img { width:100%; height:100%; object-fit:contain; }
.km-category-card strong { font-size:17px; color:var(--km-ink); }
.km-category-card small { color:var(--km-muted); font-size:12px; margin:0; }
.km-selection { background:#f0e7dd; }
.km-catalog-filter-bar { background:transparent; padding:0 0 24px; border:0; border-radius:0; gap:10px; box-shadow:none; }
.km-catalog-pill { border-radius:var(--km-radius-sm); background:transparent; border:1px solid var(--km-line-strong); color:var(--km-text); }
.km-catalog-pill.is-active,.km-catalog-pill:hover { background:var(--km-primary); color:#fff; border-color:var(--km-primary); box-shadow:none; }
.woocommerce ul.products { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:24px !important; }
.km-shop-products .woocommerce ul.products,.km-shop-products ul.products { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.km-product-card { border:0; border-radius:var(--km-radius); background:var(--km-paper); box-shadow:none; }
.km-product-card:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(48,38,36,.07); }
.km-product-card__thumb { background:#fff; padding:24px; height:240px; border-bottom:1px solid var(--km-line); }
.km-product-card__thumb img { mix-blend-mode:normal; object-fit:contain; }
.km-product-card__body { padding:20px; }
.km-product-card__title { font-size:17px; line-height:1.7; min-height:58px; }
.km-product-card__price { color:var(--km-primary); font-size:19px; }
.km-card-actions { opacity:1; transform:none; }
.km-card-action-btn { background:#fff; border:1px solid var(--km-line-strong); color:var(--km-primary); box-shadow:none; width:36px; height:36px; }
.km-badge { border-radius:4px; font-size:11px; box-shadow:none; }
.km-badge--stock { background:var(--km-paper-alt); color:var(--km-text); }
.km-badge--sale { background:var(--km-primary); color:#fff; }
.km-product-card__footer .button { background:var(--km-paper); color:var(--km-primary); border:1px solid var(--km-line-strong); border-radius:var(--km-radius-sm); }
.km-product-card__footer .button:hover { background:var(--km-primary); color:#fff; }
.km-manifesto { background:var(--km-bg); border:0; }
.km-manifesto__grid { grid-template-columns:1fr 1fr; gap:80px; }
.km-manifesto__statement { position:static; }
.km-manifesto__statement h2 { font-size:clamp(2.3rem,4vw,3.7rem); color:var(--km-primary); line-height:1.4; }
.km-principles { gap:0; border-top:1px solid var(--km-line-strong); }
.km-principle { grid-template-columns:36px 1fr; padding:24px 0; border:0; border-bottom:1px solid var(--km-line-strong); border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.km-principle:hover { background:transparent; transform:none; box-shadow:none; }
.km-principle__index { font-family:Georgia,serif; font-size:22px; color:var(--km-accent); }
.km-consult { padding-top:0; }
.km-consult__card { min-height:260px; background:var(--km-primary); padding:48px; box-shadow:none; border-radius:var(--km-radius-lg); }
.km-consult__card .km-kicker,.km-consult__card p { color:#eadbd0; background:transparent; border:0; }
.km-consult__card h2 { font-size:clamp(2rem,3.3vw,3.25rem); line-height:1.45; }
.km-consult__actions { display:grid; gap:16px; }
.km-consult__phone { color:#fff; direction:ltr; text-align:center; }
.km-shop-hero,.km-page-hero { background:var(--km-primary); padding:48px 0; border-radius:0; box-shadow:none; }
.km-shop-hero__title,.km-page-hero__title { font-size:clamp(2rem,4vw,3.6rem); line-height:1.5; }
.km-shop-hero__badge,.km-page-hero__badge { padding:0; background:transparent; color:#e7bea2; }
.km-shop-hero__desc,.km-page-hero__desc { color:#eadbd0; }
.km-shop-cat-chip { border-radius:var(--km-radius-sm); background:transparent; }
.km-shop-cat-chip:hover,.km-shop-cat-chip.is-active { background:#fff; color:var(--km-primary)!important; border-color:#fff; box-shadow:none; }
.km-shop-controls-bar { padding:18px 0; background:transparent; border:0; border-bottom:1px solid var(--km-line-strong); border-radius:0; box-shadow:none; }
.km-shop-main-grid { grid-template-columns:240px minmax(0,1fr); gap:32px; }
.km-shop-filter-card { background:transparent; padding:0 0 24px 24px; border:0; border-left:1px solid var(--km-line-strong); border-radius:0; box-shadow:none; }
.km-shop-filter-card__head h3 { font-size:20px; }
.km-product-stage { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:48px; }
.km-product-gallery-card { border:0; padding:24px; background:#fff; box-shadow:none; }
.km-product-buy-card { border:0; padding:16px 0; background:transparent; box-shadow:none; }
.woocommerce div.product .product_title { font-size:clamp(1.9rem,2.9vw,2.8rem); line-height:1.5; }
.woocommerce div.product .summary .price { font-size:27px; color:var(--km-primary); }
.woocommerce div.product form.cart { padding-block:24px; border-block:1px solid var(--km-line-strong); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding:0!important; border-bottom:1px solid var(--km-line-strong); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:transparent!important; border:0!important; border-radius:0!important; margin:0!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom:3px solid var(--km-primary)!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display:none; }
.km-product-assurance { display:block; background:transparent; padding:20px 0; border:0; border-radius:0; }
.km-product-after { margin-top:52px; }
.km-entry,.km-page,.km-post-card,.woocommerce form.login,.woocommerce form.register,.woocommerce form.checkout_coupon { border-color:var(--km-line); border-radius:var(--km-radius); box-shadow:none; }
.entry-title,.km-entry-title { font-size:clamp(2rem,3.5vw,3.4rem); color:var(--km-primary); }
.entry-content { font-size:17px; line-height:2; }
.entry-content h2 { font-size:clamp(1.65rem,2.6vw,2.5rem); }
.woocommerce table.shop_table { border:1px solid var(--km-line-strong); background:#fff; border-radius:var(--km-radius); }
.woocommerce table.shop_table th { background:var(--km-paper-alt); }
.woocommerce-cart .cart-collaterals .cart_totals,.woocommerce-checkout #order_review { padding:24px; border:1px solid var(--km-line); background:var(--km-paper); border-radius:var(--km-radius); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style:none; padding:0; border-top:1px solid var(--km-line-strong); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display:block; padding:14px 18px; border-bottom:1px solid var(--km-line); }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background:var(--km-primary); color:#fff; }
.woocommerce-info,.woocommerce-message { border-top-color:var(--km-primary); background:var(--km-paper-alt); color:var(--km-ink); }
.woocommerce-error { background:#fff0ed; color:#8c2936; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]),select,textarea { border-color:var(--km-line-strong); border-radius:var(--km-radius-sm); background:#fff; }
.km-header-search__panel,.km-guide-modal__panel,.km-cart-drawer__panel,.km-drawer__panel,.km-qv-panel { background:var(--km-bg); border-radius:var(--km-radius); }
.km-footer { background:var(--km-footer); color:#e7d9ce; padding-top:48px; }
.km-footer__masthead { color:#e7bea2; border-color:#66544a; }
.km-footer__masthead strong { color:#fff; font-size:20px; }
.km-footer__grid--5col { grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
.km-footer h2,.km-footer h3,.km-footer a { color:#fff; }
.km-footer p,.km-footer__eyebrow { color:#d8c6b8; }
.km-footer__trust-row,.km-footer__bottom { border-color:#66544a; }
.km-footer__logo { filter:none; background:#fff; padding:10px; border-radius:var(--km-radius-sm); }
.km-support-simple { position:fixed; left:24px; bottom:24px; z-index:890; display:flex; align-items:center; gap:10px; padding:12px 18px; background:var(--km-primary); color:#fff; border:1px solid #bd8c75; border-radius:var(--km-radius); box-shadow:var(--km-shadow-sm); font-size:13px; }
.km-support-simple:hover { color:#fff; background:var(--km-primary-deep); }
@media (max-width:1100px) {
 .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
 .km-categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .km-hero__frame { gap:32px; }.km-hero h1 { font-size:3.7rem; }.km-hero__visual { padding:20px; }
}
@media (max-width:960px) {
 .km-shop-main-grid { grid-template-columns:1fr; }.km-shop-filter-card { border:1px solid var(--km-line); padding:20px; }
 .km-product-stage { grid-template-columns:1fr; gap:24px; }.km-product-buy-card { position:static; }
 .km-footer__grid--5col { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .km-manifesto__grid { gap:36px; }
}
@media (max-width:782px) {
 .km-header__row { gap:12px; }.km-header.is-scrolled .km-header__row { padding-inline:0; }
 .km-brand .custom-logo { max-width:120px; max-height:44px; }.km-topbar__promise { font-size:10px; }.km-topbar__links { gap:8px; }
 .km-hero { padding:24px 0 36px; }.km-hero__frame { grid-template-columns:1fr; gap:32px; padding-bottom:30px; }
 .km-hero__content { padding:0; }.km-hero__content .km-editorial-label { margin-bottom:20px; font-size:10px; }
 .km-hero h1 { font-size:clamp(2.8rem,8vw,4rem); margin-block:14px 20px; }.km-hero__content>p { font-size:16px; margin-bottom:24px; }
 .km-hero__footnote { margin-top:24px; }.km-hero-product__image { height:280px; }.km-hero-product__image img { max-height:280px; }
 .km-section { padding-block:40px; }.km-departments { padding-top:0; }.km-section__head { align-items:start; margin-bottom:24px; }.km-section__head h2 { font-size:1.9rem; }
 .km-category-card,.km-category-card:first-child { grid-template-columns:44px 1fr; gap:12px; padding:20px 12px; min-height:100px; }.km-category-card__image { width:44px; height:44px; }.km-category-card strong { font-size:15px; }.km-category-card small { grid-column:2; }
 .woocommerce ul.products,.km-shop-products ul.products { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px!important; }
 .km-product-card__thumb { height:185px; padding:20px 12px; }.km-product-card__body { padding:14px; }.km-product-card__title { font-size:15px; }.km-product-card__price { font-size:16px; }.km-product-card__footer .button { padding:8px; font-size:12px; }
 .km-manifesto__grid { grid-template-columns:1fr; gap:28px; }.km-consult { padding-top:0; }.km-consult__card { padding:28px; grid-template-columns:1fr; gap:28px; }
 .km-shop-hero,.km-page-hero { padding:32px 0; }.km-shop-controls-bar__left { flex-wrap:wrap; }
 .km-support-simple { bottom:84px; left:14px; padding:12px; }.km-support-simple span { display:none; }
 .km-footer { padding-bottom:100px; }.km-footer__grid--5col { gap:28px; }.km-footer__masthead { gap:18px; }
 .km-sticky-buy-bar { bottom:68px; }.single-product .km-support-simple { bottom:160px; }
}
@media (max-width:420px) {
 .km-topbar__inner { grid-template-columns:1fr; gap:0; text-align:center; }.km-topbar__links { display:none; }
 .km-categories { grid-template-columns:1fr; }.km-category-card,.km-category-card:first-child { grid-template-columns:48px 1fr auto; }.km-category-card small { grid-column:auto; }
 .km-product-card__thumb { height:160px; }.km-product-card__body { padding:12px; }.km-badge--stock { display:none; }.km-card-badges { top:8px; right:8px; }.km-card-actions { left:8px; top:8px; }
 .km-footer__grid--5col { grid-template-columns:1fr; }
}
@media (max-width:782px) {
 .km-header__row { grid-template-columns:minmax(0,1fr) 44px auto; gap:10px; }
 .km-actions { gap:6px; }.km-action { width:44px; height:44px; min-width:44px; }
 .km-actions .km-wishlist-toggle-btn { display:none; }
 .km-header .km-brand { min-width:0; }.km-header .km-brand .custom-logo { width:112px; }
}

/* ========================================================================== 
   Wellnest storefront system — bright, compact and clinically approachable.
   This final layer intentionally normalizes legacy editorial selectors.
   ========================================================================== */
body {
  background: #fff;
  color: var(--km-text);
  font-size: 15px;
  line-height: 1.75;
}
.km-site-content { background: #fff; }
.km-container { width: min(calc(100% - 40px), var(--km-container)); }
.km-main { padding-block: 34px 72px; }
.km-section { padding-block: 54px; }
.km-glass,
.km-card { background: #fff; border: 1px solid var(--km-line); box-shadow: none; backdrop-filter: none; }
.km-icon { stroke-width: 1.8; }

/* Header */
.km-topbar { display: none; }
.km-header,
.km-header.is-scrolled {
  position: sticky;
  top: 0;
  min-height: 76px;
  border: 0;
  border-bottom: 1px solid var(--km-line);
  background: #fff;
  box-shadow: none;
  backdrop-filter: none;
}
.admin-bar .km-header { top: 32px; }
.km-header__row,
.km-header.is-scrolled .km-header__row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(220px, 350px) max-content;
  min-height: 76px;
  gap: clamp(10px, 1.4vw, 20px);
  margin-inline: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.km-brand { min-width: 145px; gap: 9px; }
.km-brand__mark {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  background: var(--km-primary);
  box-shadow: none;
}
.km-brand:hover .km-brand__mark { transform: none; background: var(--km-primary-deep); }
.km-brand__name { color: var(--km-ink); font-size: 1.15rem; }
.km-brand__copy small { color: var(--km-primary); font-size: .55rem; }
.km-brand .custom-logo { max-width: 150px; max-height: 50px; }
.km-menu { justify-content: flex-start; gap: 0; white-space: nowrap; }
.km-menu a { padding: 8px 8px; border-radius: 0; color: var(--km-ink); font-size: .8rem; font-weight: 650; }
.km-menu a:hover,
.km-menu .current-menu-item > a { color: var(--km-primary); background: transparent; box-shadow: inset 0 -2px var(--km-primary); }
.km-header__search { min-width: 0; }
.km-header__search .km-search-form { display: block; }
.km-header__search .km-search-form label { display: block; }
.km-header__search .km-search-form .search-field {
  height: 44px;
  padding: 8px 16px 8px 48px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: var(--km-paper-alt);
  font-size: .86rem;
  font-weight: 500;
}
.km-header__search .km-search-form .search-field:focus { border-color: var(--km-primary); background: #fff; box-shadow: 0 0 0 3px var(--km-primary-glow); }
.km-header__search .search-submit {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 44px;
  min-width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--km-ink);
}
.km-header__search .search-submit span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.km-header__search .search-submit:hover { color: var(--km-primary); background: transparent; }
.km-actions { flex-wrap: nowrap; gap: 0; white-space: nowrap; }
.km-action {
  width: 44px;
  min-width: 44px;
  height: 44px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--km-ink);
  box-shadow: none;
}
.km-action:hover { background: var(--km-tint); color: var(--km-primary-deep); transform: none; box-shadow: none; }
.km-action__count { top: 0; left: 0; min-width: 18px; height: 18px; border: 2px solid #fff; background: var(--km-primary-deep); box-shadow: none; }
.km-header .km-search-toggle { display: none; }

/* Buttons and fields */
.km-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wp-element-button,
.woocommerce #respond input#submit {
  min-height: 44px;
  padding: 9px 20px;
  border: 1px solid var(--km-primary-deep);
  border-radius: 8px;
  background: var(--km-primary-deep);
  color: #fff;
  box-shadow: none;
  font-weight: 780;
}
.km-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wp-element-button:hover,
.woocommerce #respond input#submit:hover { border-color: #075b59; background: #075b59; color: #fff; box-shadow: none; transform: translateY(-1px); }
.km-button--outline { background: #fff; color: var(--km-primary-deep); }
.km-button--light { border-color: #fff; background: #fff; color: var(--km-primary-deep); }
.km-text-link { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; color: var(--km-primary-deep); font-weight: 750; }
.km-text-link:hover { color: #075b59; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]), select, textarea {
  min-height: 44px;
  border: 1px solid var(--km-line-strong);
  border-radius: 8px;
  background: #fff;
}

/* Homepage hero */
.home .km-site-content { overflow: visible; }
.km-hero { padding: 0 0 52px; background: var(--km-tint); }
.km-hero .km-container { width: min(100%, 1440px); }
.km-hero__frame {
  display: grid;
  grid-template-columns: minmax(340px, .78fr) minmax(0, 1.35fr);
  min-height: 470px;
  align-items: stretch;
  gap: 0;
  padding: 0;
  border: 0;
}
.km-hero__content { display: flex; flex-direction: column; justify-content: center; padding: 54px clamp(28px, 5vw, 76px); }
.km-kicker { display: block; padding: 0; border: 0; background: transparent; color: var(--km-primary-deep); font-size: 12px; font-weight: 780; }
.km-hero h1 {
  max-width: 570px;
  margin: 12px 0 14px;
  color: var(--km-ink);
  font-size: clamp(2.7rem, 4.45vw, 4.7rem);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: 1.23;
}
.km-hero h1 em { color: var(--km-ink); font-style: normal; }
.km-hero__content > p { max-width: 500px; margin: 0 0 22px; color: var(--km-text); font-size: 16px; line-height: 1.8; }
.km-hero__buttons { gap: 18px; }
.km-hero__visual { min-width: 0; padding: 0; overflow: hidden; border-radius: 0 0 0 26px; background: var(--km-paper-alt); }
.km-hero__visual picture { display: block; width: 100%; height: 100%; }
.km-hero__visual img { width: 100%; height: 100%; min-height: 470px; object-fit: cover; object-position: 38% center; }

/* Category strip */
.km-departments { position: relative; z-index: 3; margin-top: -54px; padding: 0 0 22px; }
.km-departments__panel { padding: 20px 28px 22px; border: 1px solid var(--km-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 22px rgba(16, 28, 27, .05); }
.km-section__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; padding: 0; border: 0; }
.km-section__head h1,
.km-section__head h2 { max-width: 760px; margin: 7px 0 0; color: var(--km-ink); font-size: clamp(1.65rem, 2.7vw, 2.65rem); font-weight: 850; line-height: 1.35; }
.km-departments .km-section__head { align-items: center; margin-bottom: 12px; }
.km-departments .km-section__head h2 { margin: 0; font-size: 1.2rem; }
.km-categories { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; border: 0; }
.km-category-card,
.km-category-card:first-child {
  display: flex;
  min-width: 0;
  min-height: 118px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 8px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  color: var(--km-ink);
  text-align: center;
}
.km-category-card::before,
.km-category-card::after { display: none; }
.km-category-card:hover { background: var(--km-paper-alt); color: var(--km-primary-deep); transform: none; box-shadow: none; }
.km-category-card__image {
  display: grid;
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  place-items: center;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: var(--km-emerald-soft);
}
.km-category-card--tone-2 .km-category-card__image { background: #ccefed; }
.km-category-card__image .km-icon { width: 30px; height: 30px; color: var(--km-ink); stroke-width: 1.65; }
.km-category-card:hover .km-category-card__image { background: var(--km-primary); transform: none; }
.km-category-card:hover .km-category-card__image .km-icon { color: #fff; }
.km-category-card strong { color: inherit; font-size: .86rem; font-weight: 750; line-height: 1.45; text-align: center; }

/* Product cards and catalog */
.km-selection { background: #fff; }
.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important; }
.km-shop-products .woocommerce ul.products,
.km-shop-products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.km-product-card {
  overflow: hidden;
  border: 1px solid var(--km-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}
.km-product-card:hover { border-color: #b8cfcd; transform: translateY(-2px); box-shadow: 0 7px 18px rgba(16,28,27,.07); }
.km-product-card__thumb { height: 218px; aspect-ratio: auto; padding: 20px; border: 0; background: var(--km-tint); }
.km-product-card__thumb img { max-height: 178px; object-fit: contain; mix-blend-mode: normal; }
.km-product-card:hover .km-product-card__thumb img { transform: scale(1.025); }
.km-product-card__body { padding: 14px; }
.km-product-card__cat { margin-bottom: 4px; color: var(--km-muted); font-size: 11px; font-weight: 650; }
.km-product-card__cat a { color: inherit; }
.km-product-card__title { min-height: 50px; margin: 0 0 6px; font-size: .96rem; font-weight: 820; line-height: 1.6; }
.km-product-card__rating:empty { display: none; }
.km-product-card__rating { margin-bottom: 6px; }
.km-product-card__price { margin: auto 0 10px; color: var(--km-primary-deep); font-size: 1rem; font-weight: 850; }
.km-product-card__footer .button,
.km-product-card__footer .km-button { height: 44px !important; min-height: 44px !important; max-height: 44px !important; border-color: var(--km-primary-deep) !important; background: var(--km-primary-deep) !important; color: #fff !important; }
.km-product-card__footer .button:hover { border-color: #075b59 !important; background: #075b59 !important; }
.km-card-actions { top: 10px; left: 10px; gap: 5px; opacity: 1; transform: none; }
.km-card-action-btn { width: 38px; height: 38px; border: 1px solid var(--km-line); border-radius: 8px; background: rgba(255,255,255,.96); color: var(--km-ink); box-shadow: none; }
.km-card-action-btn:hover { border-color: var(--km-primary); background: var(--km-primary); color: #fff; transform: none; }
.km-badge--sale { background: #b4233d; }
.km-badge--stock { background: #fff; color: var(--km-primary-deep); border: 1px solid #b9d9d6; }
.km-catalog-filter-bar { border: 0; background: transparent; }
.km-catalog-pill { border-radius: 8px; }

/* How it works and contact */
.km-how { padding: 42px 0 48px; border-block: 1px solid var(--km-line); background: var(--km-paper-alt); }
.km-how > .km-container > h2 { margin: 0 0 26px; text-align: center; font-size: clamp(1.35rem, 2.5vw, 2rem); }
.km-how__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.km-how__item { min-width: 0; padding: 12px 24px; text-align: center; border-left: 1px solid var(--km-line); }
.km-how__item:last-child { border-left: 0; }
.km-how__icon { display: grid; width: 50px; height: 50px; place-items: center; margin: 0 auto 10px; color: var(--km-ink); }
.km-how__icon .km-icon { width: 30px; height: 30px; }
.km-how__item h3 { margin: 0 0 4px; font-size: .96rem; }
.km-how__item p { max-width: 240px; margin: 0 auto; color: var(--km-muted); font-size: .79rem; line-height: 1.7; }
.km-consult { padding: 38px 0; background: #fff; }
.km-consult__card {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  min-height: 0;
  align-items: center;
  gap: 28px;
  padding: 30px 34px;
  border: 1px solid #cfe9e7;
  border-radius: 12px;
  background: var(--km-tint);
  color: var(--km-text);
  box-shadow: none;
}
.km-consult__card h2 { margin: 0 0 5px; color: var(--km-ink); font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1.45; }
.km-consult__card p { margin: 0; color: var(--km-text); font-size: .9rem; }
.km-consult__actions { display: flex; align-items: center; gap: 16px; }
.km-consult__phone { color: var(--km-primary-deep); direction: ltr; font-weight: 800; white-space: nowrap; }

/* Shop, product, content, cart, checkout and account */
.km-shop-page { padding-bottom: 64px; }
.km-shop-hero,
.km-page-hero {
  margin-bottom: 26px;
  padding: 34px 0;
  border: 0;
  border-bottom: 1px solid var(--km-line);
  border-radius: 0;
  background: var(--km-tint);
  background-image: none;
  color: var(--km-text);
  box-shadow: none;
}
.km-shop-hero__title,
.km-page-hero__title { margin: 7px 0; color: var(--km-ink) !important; font-size: clamp(2rem, 3.7vw, 3.25rem); }
.km-shop-hero__badge,
.km-page-hero__badge { padding: 0; background: transparent; color: var(--km-primary-deep); }
.km-shop-hero__desc,
.km-page-hero__desc { color: var(--km-text); }
.km-shop-cats-rail { border-color: var(--km-line); }
.km-shop-cat-chip { min-height: 42px; border: 1px solid var(--km-line-strong); border-radius: 8px; background: #fff; color: var(--km-ink) !important; }
.km-shop-cat-chip:hover,
.km-shop-cat-chip.is-active { border-color: var(--km-primary-deep); background: var(--km-primary-deep); color: #fff !important; box-shadow: none; }
.km-shop-controls-bar { padding: 14px 0; border: 0; border-bottom: 1px solid var(--km-line); border-radius: 0; background: #fff; box-shadow: none; }
.km-shop-main-grid { grid-template-columns: 228px minmax(0, 1fr); gap: 28px; }
.km-shop-filter-card { padding: 0 0 20px 20px; border: 0; border-left: 1px solid var(--km-line); border-radius: 0; background: #fff; box-shadow: none; }
.km-product-stage { gap: 34px; }
.km-product-gallery-card { padding: 20px; border: 1px solid var(--km-line); border-radius: 12px; background: #fff; box-shadow: none; }
.woocommerce div.product .summary.km-product-buy-card { padding: 22px; border: 1px solid var(--km-line); border-radius: 12px; background: #fff; box-shadow: none; }
.woocommerce div.product .product_title { color: var(--km-ink); font-size: clamp(1.75rem, 2.8vw, 2.55rem) !important; }
.woocommerce div.product .summary .price { color: var(--km-primary-deep); }
.woocommerce div.product form.cart { border-color: var(--km-line); }
.km-product-card-label,
.km-product-buy-card__topline { color: var(--km-primary-deep); }
.km-product-assurance { border-top: 1px solid var(--km-line); }
.km-entry,
.km-page,
.km-post-card,
.km-content-card,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon { border: 1px solid var(--km-line); border-radius: 10px; background: #fff; box-shadow: none; }
.entry-title,
.km-entry-title { color: var(--km-ink); }
.woocommerce table.shop_table { border-color: var(--km-line); border-radius: 10px; }
.woocommerce table.shop_table th { background: var(--km-paper-alt); }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review { border-color: var(--km-line); border-radius: 10px; box-shadow: none; }
.woocommerce-info,
.woocommerce-message { border-top-color: var(--km-primary); background: var(--km-tint); color: var(--km-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--km-primary-deep); }
.km-empty { padding: clamp(28px,5vw,54px); }

/* Drawers and modals */
.km-header-search__panel,
.km-guide-modal__panel,
.km-cart-drawer__panel,
.km-drawer__panel,
.km-qv-panel { border-color: var(--km-line); border-radius: 10px; background: #fff; box-shadow: var(--km-shadow-lg); }
.km-drawer__backdrop,
.km-cart-drawer__backdrop,
.km-guide-modal__backdrop { background: rgba(16,28,27,.48); -webkit-backdrop-filter: none; backdrop-filter: none; }
.km-header-search__panel .km-editorial-label { display: none; }

/* Footer */
.km-footer { padding: 42px 0 20px; background: var(--km-footer); color: var(--km-text); }
.km-footer__grid,
.km-footer__grid--5col { grid-template-columns: 1.45fr .8fr .8fr 1fr; gap: clamp(26px, 4vw, 54px); padding: 0 0 36px; }
.km-footer__brand { display: inline-flex; align-items: center; gap: 10px; color: var(--km-ink); font-size: 1.2rem; }
.km-footer__about { max-width: 380px; }
.km-footer h2,
.km-footer h3,
.km-footer a { color: var(--km-ink); }
.km-footer h3 { margin-bottom: 12px; font-size: .9rem; }
.km-footer p { margin: 12px 0 0; color: var(--km-muted); font-size: .82rem; line-height: 1.8; }
.km-footer li { margin: 0; }
.km-footer li a { min-height: 36px; color: var(--km-text); font-size: .8rem; }
.km-footer li a:hover { color: var(--km-primary-deep); transform: none; }
.km-footer__contact { min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--km-primary-deep) !important; }
.km-footer__email { display: inline-flex; min-height: 40px; align-items: center; direction: ltr; font-size: .82rem; }
.km-footer__logo { max-width: 145px; padding: 0; background: transparent; }
.km-footer__trust-row { padding-block: 18px; border-color: var(--km-line); }
.km-footer__bottom { padding-top: 18px; border-color: var(--km-line); color: var(--km-muted); font-size: .72rem; }
.km-support-simple { min-height: 44px; border: 0; border-radius: 8px; background: var(--km-primary-deep); color: #fff; box-shadow: 0 6px 18px rgba(16,28,27,.12); }
.km-support-simple:hover { background: #075b59; color: #fff; }

@media (max-width: 1180px) {
  .km-header__row,
  .km-header.is-scrolled .km-header__row { grid-template-columns: auto 44px minmax(220px,1fr) auto; }
  .km-nav { display: none; }
  .km-menu-toggle { display: grid; }
  .km-header__search { min-width: 220px; }
  .woocommerce ul.products { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  .km-categories { grid-template-columns: repeat(6,minmax(105px,1fr)); overflow-x: auto; scrollbar-width: thin; }
}

@media (max-width: 960px) {
  .km-hero__frame { grid-template-columns: minmax(300px,.9fr) minmax(0,1.1fr); }
  .km-hero h1 { font-size: clamp(2.5rem,5vw,3.6rem); }
  .km-how__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .km-how__item:nth-child(2) { border-left: 0; }
  .km-how__item:nth-child(-n+2) { border-bottom: 1px solid var(--km-line); }
  .km-shop-main-grid { grid-template-columns: 1fr; }
  .km-shop-filter-card { padding: 18px; border: 1px solid var(--km-line); border-radius: 10px; }
  .km-product-stage { grid-template-columns: 1fr; }
  .woocommerce div.product .summary.km-product-buy-card { position: static; }
  .km-footer__grid,
  .km-footer__grid--5col { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 782px) {
  .admin-bar .km-header { top: 46px; }
  .km-container,
  .single-product .km-main > .km-container { width: min(calc(100% - 28px), var(--km-container)); }
  .km-header,
  .km-header.is-scrolled { min-height: 66px; }
  .km-header__row,
  .km-header.is-scrolled .km-header__row { grid-template-columns: minmax(0,1fr) 44px auto; min-height: 66px; gap: 4px; }
  .km-header__search { display: none; }
  .km-header .km-search-toggle { display: grid; }
  .km-header .km-brand { min-width: 0; }
  .km-header .km-brand__mark { width: 38px; height: 38px; }
  .km-header .km-brand__name { font-size: 1rem; }
  .km-header .km-brand__copy small { display: none; }
  .km-actions .km-wishlist-toggle-btn,
  .km-actions .km-account { display: none; }
  .km-hero { padding-bottom: 28px; }
  .km-hero .km-container { width: 100%; }
  .km-hero__frame { grid-template-columns: 1fr; min-height: 0; }
  .km-hero__content { padding: 38px 22px 30px; }
  .km-hero h1 { margin: 10px 0 12px; font-size: clamp(2.35rem,10.5vw,3.35rem); }
  .km-hero__content > p { margin-bottom: 18px; font-size: 15px; }
  .km-hero__visual { border-radius: 0; }
  .km-hero__visual img { min-height: 280px; height: 52vw; max-height: 390px; object-position: 32% center; }
  .km-departments { margin-top: -18px; padding-bottom: 10px; }
  .km-departments__panel { padding: 16px 14px 18px; border-radius: 12px; }
  .km-departments .km-section__head { margin-bottom: 8px; }
  .km-departments .km-section__head .km-text-link { font-size: .78rem; }
  .km-categories { grid-template-columns: repeat(6,105px); gap: 4px; margin-inline: -4px; padding: 0 4px 6px; }
  .km-category-card,
  .km-category-card:first-child { min-height: 104px; padding: 8px 4px; }
  .km-category-card__image { width: 58px; height: 58px; flex-basis: 58px; }
  .km-category-card__image .km-icon { width: 26px; height: 26px; }
  .km-section { padding-block: 38px; }
  .km-section__head { align-items: flex-end; margin-bottom: 18px; }
  .km-section__head h2 { font-size: 1.65rem; }
  .woocommerce ul.products,
  .km-shop-products ul.products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px !important; }
  .km-product-card__thumb { height: 170px; padding: 15px; }
  .km-product-card__thumb img { max-height: 140px; }
  .km-product-card__body { padding: 12px; }
  .km-product-card__title { min-height: 46px; font-size: .88rem; }
  .km-card-action-btn { width: 36px; height: 36px; }
  .km-badge--stock { display: none; }
  .km-how { padding: 34px 0; }
  .km-how__item { padding: 16px 12px; }
  .km-consult { padding: 28px 0; }
  .km-consult__card { grid-template-columns: 1fr; padding: 24px; }
  .km-consult__actions { flex-wrap: wrap; }
  .km-shop-hero,
  .km-page-hero { padding: 28px 0; }
  .km-footer { padding-bottom: 94px; }
  .km-support-simple { bottom: 76px; left: 12px; }
}

@media (max-width: 520px) {
  .km-section__head { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
  .km-departments .km-section__head { flex-direction: row; align-items: center; }
  .km-how__grid { grid-template-columns: 1fr; }
  .km-how__item { border: 0; border-bottom: 1px solid var(--km-line); }
  .km-how__item:nth-child(2) { border-bottom: 1px solid var(--km-line); }
  .km-how__item:last-child { border-bottom: 0; }
  .km-footer__grid,
  .km-footer__grid--5col { grid-template-columns: 1fr; gap: 24px; }
  .km-footer__bottom { align-items: flex-start; flex-direction: column; gap: 6px; }
}

@media (max-width: 390px) {
  .km-container,
  .single-product .km-main > .km-container { width: min(calc(100% - 20px), var(--km-container)); }
  .km-header .km-brand__mark { display: none; }
  .km-header .km-brand { min-width: 82px; }
  .km-header .km-brand__name { white-space: nowrap; }
  .km-header__row,
  .km-header.is-scrolled .km-header__row { grid-template-columns: minmax(82px,1fr) 44px auto; }
  .km-hero__content { padding-inline: 16px; }
  .km-hero h1 { font-size: 2.3rem; }
  .woocommerce ul.products,
  .km-shop-products ul.products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; }
  .km-product-card__thumb { height: 145px; padding: 12px; }
  .km-product-card__thumb img { max-height: 121px; }
  .km-product-card__cat { display: none; }
  .km-product-card__body { padding: 10px; }
  .km-product-card__title { font-size: .82rem; }
  .km-product-card__price { font-size: .86rem; }
  .km-product-card__footer .button,
  .km-product-card__footer .km-button { padding-inline: 6px !important; font-size: .72rem !important; }
  .km-card-actions .km-quick-view { display: none; }
  .km-consult__actions { align-items: stretch; flex-direction: column; }
}

/* Product purchase controls: override WooCommerce/plugin button palettes. */
.woocommerce div.product form.cart {
  display: flex;
  align-items: stretch;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
}
.woocommerce div.product form.cart div.quantity { display: inline-flex; flex: 0 0 82px; align-items: center; margin: 0; }
.woocommerce div.product form.cart div.quantity .qty {
  width: 82px !important;
  min-width: 82px;
  height: 46px;
  padding-inline: 6px;
  border: 1px solid var(--km-line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--km-ink);
  opacity: 1;
  font-weight: 850;
  text-align: center;
}
.woocommerce div.product form.cart div.quantity button.plus,
.woocommerce div.product form.cart div.quantity button.minus {
  display: grid;
  width: 36px;
  min-width: 36px;
  height: 44px;
  place-items: center;
  border: 1px solid var(--km-line-strong);
  background: #fff;
  color: var(--km-ink);
}
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product .summary button.single_add_to_cart_button,
body.woocommerce div.product button.button.alt {
  min-height: 46px !important;
  border: 1px solid var(--km-primary-deep) !important;
  border-radius: 8px !important;
  background: var(--km-primary-deep) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: none !important;
  opacity: 1;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:focus-visible,
body.woocommerce div.product button.button.alt:hover {
  border-color: #075b59 !important;
  background: #075b59 !important;
  color: #fff !important;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:disabled,
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled,
body.woocommerce div.product button.button.alt.disabled {
  border-color: #8aa6a4 !important;
  background: #8aa6a4 !important;
  color: #fff !important;
  opacity: .72;
}
@media (max-width: 390px) {
  .woocommerce div.product form.cart { flex-wrap: wrap; }
  .woocommerce div.product form.cart button.single_add_to_cart_button { flex: 1 1 190px; }
}

/* ========================================================================== 
   Sunlit Wellness Market — commerce, account and footer refresh (2.2.0)
   ========================================================================== */
:root {
  --km-sun-aqua: #eaf8f7;
  --km-sun-cream: #fff7ea;
  --km-sun-apricot: #ffb66e;
  --km-sun-coral: #f47f6b;
  --km-sun-lime: #dff3a6;
  --km-sun-ink: #102322;
  --km-sun-shadow: 0 12px 32px rgba(16, 35, 34, .08);
}

/* Wishlist drawer control: fully reset native button chrome. */
.km-wishlist-drawer__close {
  position: relative;
  display: grid !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  flex: 0 0 44px;
  place-items: center;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #cfe4e2 !important;
  border-radius: 12px !important;
  appearance: none;
  background: #fff !important;
  background-image: none !important;
  color: var(--km-sun-ink) !important;
  box-shadow: none !important;
  font: inherit;
  line-height: 1;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.km-wishlist-drawer__close .km-icon { width: 21px; height: 21px; margin: 0; stroke-width: 2; }
.km-wishlist-drawer__close:hover { border-color: var(--km-sun-coral) !important; background: #fff0ec !important; color: #a8392d !important; }
.km-wishlist-drawer__close:active { transform: scale(.94); }
.km-wishlist-drawer__close:focus-visible { border-color: var(--km-primary-deep) !important; outline: 3px solid rgba(15,136,132,.24); outline-offset: 2px; }
.km-wishlist-drawer .km-cart-drawer__header { direction: rtl; }

/* Catalog masthead. */
.post-type-archive-product .km-main,
.tax-product_cat .km-main,
.tax-product_tag .km-main { padding-top: 22px; background: #fff; }
.km-market-hero {
  position: relative;
  display: grid;
  min-height: 238px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(28px, 6vw, 84px);
  margin: 0 0 28px;
  padding: clamp(34px, 4.5vw, 58px) clamp(28px, 5vw, 70px);
  overflow: hidden;
  border: 1px solid #cae7e4;
  border-radius: 24px 8px 24px 8px;
  background: var(--km-sun-aqua);
}
.km-market-hero::before {
  content: "";
  position: absolute;
  inset: auto auto -54px -34px;
  width: 170px;
  height: 120px;
  border-radius: 20px;
  background: var(--km-sun-lime);
  transform: rotate(-10deg);
  opacity: .72;
}
.km-market-hero__copy { position: relative; z-index: 1; max-width: 720px; }
.km-market-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--km-primary-deep); font-size: 13px; font-weight: 850; }
.km-market-hero__eyebrow .km-icon { width: 18px; height: 18px; }
.km-market-hero h1 { margin: 9px 0 7px; color: var(--km-sun-ink); font-size: clamp(2.25rem, 4vw, 4rem); font-weight: 930; letter-spacing: -.045em; line-height: 1.25; }
.km-market-hero p { max-width: 650px; margin: 0; color: #36504e; font-size: 16px; line-height: 1.85; }
.km-market-hero__tiles { position: relative; z-index: 1; display: grid; width: 260px; grid-template-columns: 1fr 1fr; gap: 12px; direction: ltr; }
.km-market-tile { display: grid; min-height: 86px; place-items: center; border: 1px solid rgba(16,35,34,.08); color: var(--km-sun-ink); box-shadow: 0 8px 18px rgba(16,35,34,.06); }
.km-market-tile .km-icon { width: 29px; height: 29px; stroke-width: 1.75; }
.km-market-tile--care { border-radius: 30px 8px 8px 8px; background: var(--km-sun-coral); color: #fff; }
.km-market-tile--health { border-radius: 8px 30px 8px 8px; background: #fff; }
.km-market-tile--safe { min-height: 58px; grid-column: 1 / -1; border-radius: 8px 8px 26px 26px; background: var(--km-sun-lime); }
.woocommerce-products-header:empty { display: none; }

/* Real catalog filter layout. */
.km-shop-main-grid { display: grid; grid-template-columns: 288px minmax(0,1fr); align-items: start; gap: 30px; }
.km-shop-sidebar { position: sticky; top: 98px; min-width: 0; }
.km-market-filter-card { overflow: hidden; border: 1px solid #d6e6e4; border-radius: 18px 6px 18px 6px; background: #fff; box-shadow: 0 8px 24px rgba(16,35,34,.055); }
.km-market-filter-card__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 20px 20px 16px; border-bottom: 1px solid #dce9e7; background: var(--km-sun-cream); }
.km-market-filter-card__head span { display: block; margin-bottom: 2px; color: #806141; font-size: 12px; font-weight: 800; }
.km-market-filter-card__head h2 { margin: 0; color: var(--km-sun-ink); font-size: 20px; line-height: 1.45; }
.km-market-filter-card__head > a { display: inline-flex; min-height: 44px; align-items: center; color: #a33c31; font-size: 12px; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.km-market-filter__group { padding: 18px 16px 12px; }
.km-market-filter__group h3,
.km-market-price legend { margin: 0 0 10px; padding: 0 4px; color: var(--km-sun-ink); font-size: 14px; font-weight: 850; }
.km-market-categories { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.km-market-categories li { margin: 0; }
.km-market-categories a { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-right: 3px solid transparent; border-radius: 4px 10px 10px 4px; color: #344b49; font-size: 14px; font-weight: 720; transition: background-color .18s ease, border-color .18s ease, color .18s ease; }
.km-market-categories a:hover { border-right-color: var(--km-sun-apricot); background: var(--km-sun-cream); color: var(--km-sun-ink); }
.km-market-categories a.is-active { border-right-color: var(--km-primary-deep); background: var(--km-sun-aqua); color: var(--km-primary-deep); font-weight: 850; }
.km-market-categories b { min-width: 28px; padding: 2px 7px; border-radius: 8px; background: #f0f5f4; color: #58706e; font-size: 12px; text-align: center; }
.km-market-categories a.is-active b { background: #fff; color: var(--km-primary-deep); }
.km-market-price { margin: 0 16px; padding: 16px 0 18px; border-top: 1px solid #e2eceb; }
.km-market-price fieldset { margin: 0; padding: 0; border: 0; }
.km-market-price__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.km-market-price label { min-width: 0; color: #536a68; font-size: 12px; }
.km-market-price label span { display: block; margin: 0 3px 5px; }
.km-market-price input { width: 100%; min-width: 0; height: 44px; min-height: 44px; padding: 8px 9px !important; border-radius: 8px !important; font-size: 13px !important; }
.km-market-price__submit { width: 100%; min-height: 44px; margin-top: 10px; border: 1px solid var(--km-primary-deep); border-radius: 8px; background: #fff; color: var(--km-primary-deep); font-family: inherit; font-weight: 850; cursor: pointer; transition: background-color .18s ease, color .18s ease; }
.km-market-price__submit:hover { background: var(--km-primary-deep); color: #fff; }
.km-market-price__submit:focus-visible { outline: 3px solid rgba(15,136,132,.22); outline-offset: 2px; }
.km-market-filter__assurance { display: flex; align-items: center; gap: 10px; margin: 0; padding: 15px 16px; border-top: 1px solid #e3eceb; background: var(--km-sun-lime); }
.km-market-filter__assurance > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: rgba(255,255,255,.76); color: #45620d; }
.km-market-filter__assurance .km-icon { width: 20px; height: 20px; }
.km-market-filter__assurance p { margin: 0; line-height: 1.45; }
.km-market-filter__assurance strong,
.km-market-filter__assurance small { display: block; color: #31460d; }
.km-market-filter__assurance strong { font-size: 12px; }
.km-market-filter__assurance small { margin-top: 2px; font-size: 12px; }
.km-market-filter-disclosure { display: none; }

.km-market-toolbar { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 10px 16px 10px 12px; border: 1px solid #d9e7e5; border-radius: 6px 16px 6px 16px; background: #fff; }
.km-market-toolbar__status { display: flex; align-items: center; gap: 9px; color: #526866; font-size: 14px; font-weight: 700; }
.km-market-toolbar__status > span { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 2px; background: var(--km-sun-coral); transform: rotate(10deg); }
.km-market-toolbar .woocommerce-result-count { float: none; margin: 0; }
.km-market-toolbar__clear { display: inline-flex; min-height: 44px; align-items: center; padding-inline: 10px; border-radius: 8px; background: #fff0ec; color: #a33c31; font-size: 12px; font-weight: 850; text-decoration: underline; text-underline-offset: 3px; }
.km-market-toolbar__clear:hover { background: var(--km-sun-coral); color: #35140f; }
.km-market-toolbar__order { display: flex; align-items: center; gap: 9px; }
.km-market-toolbar__label { color: #526866; font-size: 13px; font-weight: 750; white-space: nowrap; }
.km-market-toolbar .woocommerce-ordering { float: none; margin: 0; }
.km-market-toolbar .woocommerce-ordering select { width: auto; min-width: 205px; height: 46px; min-height: 46px; padding: 8px 12px; border: 1px solid #cddedc; border-radius: 8px; background-color: var(--km-sun-cream); color: var(--km-sun-ink); font-weight: 780; }
.km-shop-products { min-width: 0; }
.km-shop-products .products { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 18px !important; }
.km-shop-products .km-product-card { border-color: #d8e5e3; border-radius: 16px 6px 16px 6px; box-shadow: 0 6px 18px rgba(16,35,34,.045); }
.km-shop-products .km-loop-product-card:nth-child(4n+1) .km-product-card__thumb { background: var(--km-sun-aqua); }
.km-shop-products .km-loop-product-card:nth-child(4n+2) .km-product-card__thumb { background: var(--km-sun-cream); }
.km-shop-products .km-loop-product-card:nth-child(4n+3) .km-product-card__thumb { background: #f3f8e7; }
.km-shop-products .km-loop-product-card:nth-child(4n) .km-product-card__thumb { background: #fff1ed; }
.km-shop-products .km-product-card::after { content: ""; position: absolute; right: 0; bottom: 0; width: 46px; height: 4px; background: var(--km-sun-apricot); transition: width .2s ease; }
.km-shop-products .km-loop-product-card:nth-child(3n+2) .km-product-card::after { background: var(--km-sun-coral); }
.km-shop-products .km-loop-product-card:nth-child(3n) .km-product-card::after { background: var(--km-primary); }
.km-shop-products .km-product-card:hover { border-color: #9fc8c4; box-shadow: var(--km-sun-shadow); transform: translateY(-4px); }
.km-shop-products .km-product-card:hover::after { width: 100%; }
.km-shop-products .km-product-card__thumb { height: 226px; }
.km-shop-products .km-product-card__body { padding: 16px; }
.km-shop-products .km-product-card__cat { font-size: 12px; }
.km-shop-products .km-product-card__title { min-height: 52px; color: var(--km-sun-ink); font-size: 15px; }
.km-shop-products .km-product-card__price { color: var(--km-primary-deep); font-size: 17px; }
.km-shop-products .km-card-action-btn { width: 44px; height: 44px; border-radius: 12px 5px 12px 5px; }
.woocommerce nav.woocommerce-pagination { clear: both; margin-top: 30px; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; gap: 7px; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { overflow: visible; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { display: grid; width: 46px; min-width: 46px; height: 46px; place-items: center; padding: 0; border: 1px solid #d5e4e2; border-radius: 12px 5px 12px 5px; background: #fff; color: var(--km-sun-ink); font-weight: 800; }
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--km-primary-deep); background: var(--km-primary-deep); color: #fff; }
.km-market-empty-layout { display: grid; grid-template-columns: 288px minmax(0,1fr); align-items: start; gap: 30px; }
.km-market-empty { display: flex; min-height: 390px; flex-direction: column; align-items: center; justify-content: center; padding: 44px; border: 1px solid #d6e6e4; border-radius: 8px 22px 8px 22px; background: var(--km-sun-cream); text-align: center; }
.km-market-empty__icon { display: grid; width: 68px; height: 68px; place-items: center; margin-bottom: 16px; border-radius: 20px 7px 20px 7px; background: var(--km-sun-coral); color: #fff; }
.km-market-empty__icon .km-icon { width: 29px; height: 29px; }
.km-market-empty__eyebrow { color: #8a5e39; font-size: 12px; font-weight: 850; }
.km-market-empty h2 { max-width: 520px; margin: 7px 0; color: var(--km-sun-ink); font-size: clamp(1.55rem,3vw,2.4rem); }
.km-market-empty p { max-width: 530px; margin: 0 0 18px; color: #5e5144; }

/* Account guest experience. */
.woocommerce-account .km-content-card { max-width: none; padding: 0; overflow: hidden; border: 0; background: transparent; box-shadow: none; }
.woocommerce-account .km-content-card > .entry-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.woocommerce-account:not(.logged-in) .km-main { padding-top: 26px; background: #f9fcfb; }
.km-account-welcome { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.6fr); min-height: 610px; overflow: hidden; border: 1px solid #d1e5e2; border-radius: 26px 8px 26px 8px; background: #fff; box-shadow: var(--km-sun-shadow); }
.km-account-welcome__intro { position: relative; padding: clamp(38px,5vw,72px) clamp(28px,4vw,56px); overflow: hidden; background: var(--km-primary-deep); color: #fff; }
.km-account-welcome__intro::after { content: ""; position: absolute; left: -50px; bottom: -44px; width: 190px; height: 140px; border-radius: 30px; background: var(--km-sun-lime); transform: rotate(-12deg); opacity: .96; }
.km-account-welcome__eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #cfeeed; font-size: 13px; font-weight: 850; }
.km-account-welcome__eyebrow .km-icon { width: 18px; height: 18px; }
.km-account-welcome__intro h1 { max-width: 420px; margin: 16px 0 12px; color: #fff; font-size: clamp(2.1rem,4vw,3.65rem); font-weight: 920; letter-spacing: -.045em; line-height: 1.35; }
.km-account-welcome__intro > p { max-width: 420px; margin: 0; color: #d8f0ee; font-size: 15px; line-height: 1.9; }
.km-account-welcome__intro ul { position: relative; z-index: 1; display: grid; gap: 8px; margin: 34px 0 0; padding: 0; list-style: none; }
.km-account-welcome__intro li { display: flex; min-height: 48px; align-items: center; gap: 11px; padding: 9px 11px; border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: rgba(255,255,255,.07); color: #fff; font-size: 13px; font-weight: 760; }
.km-account-welcome__intro li .km-icon { width: 20px; height: 20px; color: var(--km-sun-lime); }
.km-account-welcome__forms { min-width: 0; padding: clamp(26px,4vw,52px); background: #fff; }
.km-account-welcome .u-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.km-account-welcome .u-columns::before,
.km-account-welcome .u-columns::after { content: none !important; display: none !important; }
.km-account-welcome .u-column1,
.km-account-welcome .u-column2 { float: none !important; width: auto !important; min-width: 0; padding: 24px !important; border: 1px solid #cce5e2; border-radius: 18px 6px 18px 6px; background: var(--km-sun-aqua); }
.km-account-welcome .u-column2 { border-color: #f1d8bd; background: var(--km-sun-cream); }
.km-account-welcome h2 { margin: 0 0 16px; color: var(--km-sun-ink); font-size: 25px; }
.km-account-welcome .u-column1 h2::after,
.km-account-welcome .u-column2 h2::after { display: block; margin-top: 5px; color: #58706e; font-size: 12px; font-weight: 600; line-height: 1.7; }
.km-account-welcome .u-column1 h2::after { content: "به حساب خود وارد شوید"; }
.km-account-welcome .u-column2 h2::after { content: "حساب تازه بسازید"; color: #76563d; }
.woocommerce .km-account-welcome form.login,
.woocommerce .km-account-welcome form.register { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.km-account-welcome .form-row { margin: 0 0 15px; padding: 0; }
.km-account-welcome label { display: block; margin-bottom: 6px; color: var(--km-sun-ink); font-size: 14px; font-weight: 800; }
.km-account-welcome label .required { color: #ad3529; }
.km-account-welcome input[type=text],
.km-account-welcome input[type=email],
.km-account-welcome input[type=password] { height: 50px; min-height: 50px; border: 1px solid #b9d6d3; border-radius: 9px; background: #fff; font-size: 15px; }
.km-account-welcome .u-column2 input { border-color: #dfc7ac; }
.km-account-welcome .password-input { display: block; }
.km-account-welcome .show-password-input { top: 50%; left: 13px; right: auto; transform: translateY(-50%); }
.km-account-welcome .woocommerce-form-login__rememberme { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; margin: 0 !important; }
.km-account-welcome input[type=checkbox] { width: 19px; height: 19px; accent-color: var(--km-primary-deep); }
.woocommerce .km-account-welcome button.button { width: 100%; min-height: 48px; border-radius: 9px; background: var(--km-primary-deep); font-size: 15px; }
.woocommerce .km-account-welcome .u-column2 button.button { border-color: #b84f3e; background: var(--km-sun-coral); color: #35150f; }
.woocommerce .km-account-welcome .u-column2 button.button:hover { border-color: #a34234; background: #e87461; color: #27100c; }
.km-account-welcome .woocommerce-LostPassword { margin: 5px 0 0; }
.km-account-welcome .woocommerce-LostPassword a { display: inline-flex; min-height: 44px; align-items: center; color: var(--km-primary-deep); font-size: 13px; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.km-account-welcome .woocommerce-privacy-policy-text { color: #64533f; font-size: 12px; line-height: 1.8; }

/* Logged-in My Account. */
.woocommerce-account.logged-in .km-main { padding-top: 26px; background: #f7fbfa; }
.woocommerce-account.logged-in .km-entry-content > .woocommerce { display: grid; grid-template-columns: 278px minmax(0,1fr); align-items: start; gap: 24px; }
.woocommerce-account.logged-in .km-entry-content > .woocommerce::before,
.woocommerce-account.logged-in .km-entry-content > .woocommerce::after,
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after { content: none !important; display: none !important; }
.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account.logged-in .woocommerce > .woocommerce-message,
.woocommerce-account.logged-in .woocommerce > .woocommerce-error,
.woocommerce-account.logged-in .woocommerce > .woocommerce-info { grid-column: 1 / -1; }
.km-account-dashboard-head { position: relative; display: flex; min-height: 186px; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 28px; padding: 30px clamp(26px,4vw,52px); overflow: hidden; border: 1px solid #c9e4e1; border-radius: 22px 7px 22px 7px; background: var(--km-sun-aqua); }
.km-account-dashboard-head::after { content: ""; position: absolute; left: -34px; bottom: -54px; width: 170px; height: 126px; border-radius: 24px; background: var(--km-sun-apricot); transform: rotate(-9deg); }
.km-account-dashboard-head > div { position: relative; z-index: 1; }
.km-account-dashboard-head > div > span { color: var(--km-primary-deep); font-size: 12px; font-weight: 850; }
.km-account-dashboard-head h1 { margin: 6px 0 4px; color: var(--km-sun-ink); font-size: clamp(2rem,3.5vw,3.2rem); font-weight: 920; letter-spacing: -.04em; line-height: 1.35; }
.km-account-dashboard-head p { margin: 0; color: #45605e; font-size: 14px; }
.km-account-dashboard-head > a { position: relative; z-index: 1; display: inline-flex; min-height: 48px; align-items: center; gap: 9px; padding: 10px 17px; border: 1px solid var(--km-primary-deep); border-radius: 8px; background: var(--km-primary-deep); color: #fff; font-weight: 820; }
.km-account-dashboard-head > a .km-icon { width: 19px; height: 19px; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation { float: none; width: auto; padding: 15px; border: 1px solid #d6e5e3; border-radius: 18px 6px 18px 6px; background: #fff; box-shadow: 0 8px 22px rgba(16,35,34,.05); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul { display: grid; gap: 5px; margin: 0; padding: 0; border: 0; list-style: none; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a { display: flex; min-height: 48px; align-items: center; gap: 11px; padding: 9px 12px; border: 0; border-right: 3px solid transparent; border-radius: 5px 11px 11px 5px; color: #354c4a; font-size: 14px; font-weight: 760; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a::before { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 7px; background: #edf4f3; color: #58716e; font-size: 15px; line-height: 1; }
.woocommerce-MyAccount-navigation-link--dashboard a::before { content: "⌂"; }
.woocommerce-MyAccount-navigation-link--orders a::before { content: "▤"; }
.woocommerce-MyAccount-navigation-link--downloads a::before { content: "⇩"; }
.woocommerce-MyAccount-navigation-link--edit-address a::before { content: "⌖"; }
.woocommerce-MyAccount-navigation-link--edit-account a::before { content: "○"; }
.woocommerce-MyAccount-navigation-link--customer-logout a::before { content: "←"; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:hover { border-right-color: var(--km-sun-apricot); background: var(--km-sun-cream); color: var(--km-sun-ink); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a { border-right-color: var(--km-primary-deep); background: var(--km-sun-aqua); color: var(--km-primary-deep); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a::before { background: var(--km-primary-deep); color: #fff; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:focus-visible { outline: 3px solid rgba(15,136,132,.22); outline-offset: 2px; }
.woocommerce-account.logged-in .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; padding: clamp(22px,3vw,34px); border: 1px solid #d6e5e3; border-radius: 7px 20px 7px 20px; background: #fff; box-shadow: 0 8px 22px rgba(16,35,34,.05); color: #334b49; }
.woocommerce-account.logged-in .woocommerce-MyAccount-content > p:first-child { margin-top: 0; padding: 16px; border-right: 4px solid var(--km-sun-apricot); background: var(--km-sun-cream); }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.woocommerce-account .woocommerce-Address { float: none !important; width: auto !important; padding: 20px; border: 1px solid #d7e5e3; border-radius: 14px 5px 14px 5px; background: #fbfdfc; }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0; font-size: 19px; }
.woocommerce-account .woocommerce-Address-title a { display: inline-flex; min-height: 44px; align-items: center; color: var(--km-primary-deep); font-weight: 800; }
.woocommerce-account .woocommerce-MyAccount-content form fieldset { margin: 22px 0; padding: 18px; border: 1px solid #dce8e7; border-radius: 12px; background: #fbfdfc; }
.woocommerce-account .woocommerce-MyAccount-content form legend { padding: 0 8px; color: var(--km-sun-ink); font-weight: 850; }
.woocommerce-account .woocommerce-MyAccount-content input,
.woocommerce-account .woocommerce-MyAccount-content select { min-height: 48px; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table { display: table; width: 100%; overflow: hidden; }

/* Footer composition. */
.km-footer { position: relative; z-index: 2; padding: 0 0 calc(20px + env(safe-area-inset-bottom)); overflow: hidden; border-top: 1px solid #d0e7e4; background: #f2faf9; color: #344e4b; }
.km-footer::before { content: ""; position: absolute; right: -70px; bottom: 95px; width: 210px; height: 115px; border-radius: 28px; background: var(--km-sun-lime); transform: rotate(8deg); opacity: .42; }
.km-footer-cta { position: relative; padding: 32px 0 0; }
.km-footer-cta__panel { position: relative; display: grid; min-height: 190px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 34px; padding: 30px clamp(26px,5vw,64px); overflow: hidden; border: 1px solid #ead9c6; border-radius: 22px 7px 22px 7px; background: var(--km-sun-cream); }
.km-footer-cta__copy { position: relative; z-index: 2; max-width: 690px; }
.km-footer-cta__eyebrow { color: #93623a; font-size: 12px; font-weight: 850; }
.km-footer-cta h2 { margin: 7px 0 4px; color: var(--km-sun-ink); font-size: clamp(1.75rem,3vw,2.75rem); font-weight: 920; letter-spacing: -.035em; line-height: 1.4; }
.km-footer-cta p { margin: 0; color: #5f5143; font-size: 14px; line-height: 1.85; }
.km-footer-cta__decor { position: absolute; inset: 0; pointer-events: none; }
.km-footer-cta__decor span { position: absolute; display: block; }
.km-footer-cta__decor span:nth-child(1) { top: -28px; left: 17%; width: 105px; height: 84px; border-radius: 12px 24px 12px 24px; background: var(--km-sun-apricot); transform: rotate(12deg); }
.km-footer-cta__decor span:nth-child(2) { right: 47%; bottom: -36px; width: 128px; height: 78px; border-radius: 28px 8px 28px 8px; background: var(--km-sun-aqua); transform: rotate(-8deg); }
.km-footer-cta__decor span:nth-child(3) { top: 16px; left: 4%; width: 32px; height: 32px; border-radius: 8px; background: var(--km-sun-coral); transform: rotate(9deg); }
.km-footer-cta__actions { position: relative; z-index: 2; display: flex; align-items: stretch; gap: 10px; }
.km-footer-cta__actions .km-button { min-height: 48px; gap: 8px; padding-inline: 17px; white-space: nowrap; }
.km-footer-cta__shop { border-color: var(--km-primary-deep) !important; background: var(--km-primary-deep) !important; }
.km-footer-cta__help { border-color: #d75e4d !important; background: var(--km-sun-coral) !important; color: #35140f !important; direction: ltr; }
.km-footer-cta__help:hover { border-color: #bd4d3e !important; background: #e87361 !important; color: #25100c !important; }
.km-footer__body { position: relative; z-index: 1; }
.km-footer__grid { display: grid; grid-template-columns: minmax(260px,1.35fr) .72fr .86fr 1fr; gap: clamp(28px,4vw,58px); padding: 46px 0 36px; }
.km-footer__brand-story { max-width: 390px; }
.km-footer__brand { display: inline-flex; align-items: center; gap: 11px; color: var(--km-sun-ink) !important; font-size: 20px; }
.km-footer__brand > span:last-child { display: flex; flex-direction: column; line-height: 1.2; }
.km-footer__brand small { margin-top: 4px; color: #66807d; font-size: 12px; letter-spacing: .12em; }
.km-footer__brand-story > p { margin: 15px 0 18px; color: #516a67; font-size: 14px; line-height: 1.9; }
.km-footer__logo { max-width: 150px; max-height: 56px; padding: 0; border-radius: 0; background: transparent; filter: none; object-fit: contain; }
.km-footer__promises { display: flex; flex-wrap: wrap; gap: 8px; }
.km-footer__promises span { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid #cfe3e0; border-radius: 9px; background: #fff; color: #38514e; font-size: 12px; font-weight: 780; }
.km-footer__promises .km-icon { width: 17px; height: 17px; color: var(--km-primary-deep); }
.km-footer__group { min-width: 0; }
.km-footer__group summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; color: var(--km-sun-ink); font-size: 15px; font-weight: 880; list-style: none; cursor: default; }
.km-footer__group summary::-webkit-details-marker { display: none; }
.km-footer__group summary > span { display: none; }
.km-footer__group-content { display: block; }
.km-footer ul { margin: 0; padding: 0; list-style: none; }
.km-footer li { margin: 0; }
.km-footer li a { display: inline-flex; min-height: 40px; align-items: center; color: #46605d; font-size: 13px; font-weight: 680; }
.km-footer li a::before { content: ""; width: 5px; height: 5px; margin-left: 9px; border-radius: 1px; background: var(--km-sun-apricot); transform: rotate(12deg); transition: transform .18s ease; }
.km-footer li a:hover { color: var(--km-primary-deep); transform: none; }
.km-footer li a:hover::before { transform: rotate(45deg) scale(1.2); }
.km-footer__contact-group p { margin: 0 0 10px; color: #58706e; font-size: 12px; line-height: 1.8; }
.km-footer__contact-item { display: flex; min-height: 42px; align-items: center; gap: 9px; color: #2e4b48 !important; font-size: 13px; font-weight: 760; direction: ltr; }
.km-footer__contact-item .km-icon { width: 18px; height: 18px; color: var(--km-primary-deep); }
.km-footer__trust-row { padding: 18px 0; border-top: 1px solid #d5e6e4; }
.km-footer__bottom { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 18px; margin: 0; padding: 12px 0; border-top: 1px solid #d5e6e4; color: #627976; font-size: 12px; }
.km-footer__legal { display: flex; flex-wrap: wrap; gap: 18px; }
.km-footer__legal a { display: inline-flex; min-height: 36px; align-items: center; color: #455e5b; }
.km-support-simple { transition: opacity .18s ease, transform .18s ease, background-color .18s ease; }
.woocommerce-page .km-support-simple { width: 44px; min-width: 44px; height: 44px; min-height: 44px; justify-content: center; padding: 0; }
.woocommerce-page .km-support-simple span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.km-footer-visible .km-support-simple { opacity: 0; transform: translateY(12px); pointer-events: none; }

@media (max-width: 1100px) {
  .km-market-hero__tiles { width: 210px; }
  .km-shop-main-grid { grid-template-columns: 248px minmax(0,1fr); gap: 22px; }
  .km-shop-products .products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .km-account-welcome { grid-template-columns: minmax(260px,.72fr) minmax(0,1.4fr); }
  .km-account-welcome .u-columns { grid-template-columns: 1fr; }
  .km-footer__grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .km-footer__contact-group { grid-column: 2 / -1; }
}

@media (max-width: 900px) {
  .km-market-hero { min-height: 210px; }
  .km-market-hero__tiles { width: 175px; }
  .km-market-tile { min-height: 68px; }
  .km-shop-main-grid { grid-template-columns: 1fr; }
  .km-market-empty-layout { grid-template-columns: 1fr; }
  .km-market-empty-layout .km-shop-sidebar { display: block; position: static; }
  .km-shop-sidebar { display: none; }
  .km-market-filter-disclosure { display: block; margin-bottom: 14px; border: 1px solid #cfe3e0; border-radius: 7px 16px 7px 16px; background: #fff; }
  .km-market-filter-disclosure > summary { display: flex; min-height: 52px; align-items: center; gap: 10px; padding: 9px 14px; color: var(--km-sun-ink); font-size: 15px; font-weight: 850; list-style: none; cursor: pointer; }
  .km-market-filter-disclosure > summary::-webkit-details-marker { display: none; }
  .km-market-filter-disclosure > summary .km-icon { width: 20px; height: 20px; color: var(--km-primary-deep); }
  .km-market-filter-disclosure > summary b { position: relative; width: 22px; height: 22px; margin-right: auto; }
  .km-market-filter-disclosure > summary b::before,
  .km-market-filter-disclosure > summary b::after { content: ""; position: absolute; top: 10px; left: 4px; width: 14px; height: 2px; background: var(--km-sun-ink); transition: transform .18s ease; }
  .km-market-filter-disclosure > summary b::after { transform: rotate(90deg); }
  .km-market-filter-disclosure[open] > summary b::after { transform: rotate(0); }
  .km-market-filter-disclosure > .km-market-filter-card { margin: 0 10px 10px; box-shadow: none; }
  .km-market-filter-disclosure .km-market-categories { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .km-account-welcome { grid-template-columns: 1fr; min-height: 0; }
  .km-account-welcome__intro { min-height: 330px; }
  .km-account-welcome__intro ul { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .km-account-welcome__intro li { align-items: flex-start; flex-direction: column; }
  .km-account-welcome .u-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .woocommerce-account.logged-in .km-entry-content > .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation { position: static; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a { min-height: 64px; flex-direction: column; justify-content: center; gap: 5px; padding: 7px 4px; border-right: 0; border-bottom: 3px solid transparent; text-align: center; font-size: 12px; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:hover,
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a { border-right-color: transparent; border-bottom-color: var(--km-primary-deep); }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a::before { width: 26px; height: 26px; }
  .km-footer-cta__panel { grid-template-columns: 1fr; gap: 20px; }
  .km-footer-cta__actions { justify-content: flex-start; }
  .km-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .km-footer__contact-group { grid-column: auto; }
}

@media (max-width: 782px) {
  .post-type-archive-product .km-main,
  .tax-product_cat .km-main,
  .tax-product_tag .km-main { padding-top: 14px; }
  .km-market-hero { min-height: 0; margin-bottom: 16px; padding: 26px 22px; border-radius: 18px 6px 18px 6px; }
  .km-market-hero h1 { font-size: clamp(2rem,9vw,3rem); }
  .km-market-hero__tiles { width: 126px; }
  .km-market-tile { min-height: 50px; }
  .km-market-tile .km-icon { width: 22px; height: 22px; }
  .km-market-toolbar { min-height: 0; align-items: stretch; flex-direction: column; gap: 10px; padding: 13px; }
  .km-market-toolbar__order { justify-content: space-between; }
  .km-market-toolbar .woocommerce-ordering { flex: 1; }
  .km-market-toolbar .woocommerce-ordering select { width: 100%; min-width: 0; }
  .km-shop-products .km-product-card__thumb { height: 180px; }
  .km-shop-products .km-card-action-btn { width: 44px; height: 44px; }
  .km-account-welcome__forms { padding: 18px; }
  .km-account-welcome .u-column1,
  .km-account-welcome .u-column2 { padding: 20px !important; }
  .km-account-dashboard-head { min-height: 0; align-items: flex-start; flex-direction: column; padding: 24px; }
  .km-account-dashboard-head > a { align-self: flex-start; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-content { padding: 20px; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .km-footer { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .km-mobile-toolbar a,
  .km-mobile-toolbar button { font-size: 12px; }
  .km-footer-cta { padding-top: 22px; }
  .km-footer__grid { padding: 32px 0 24px; }
  .km-mobile-toolbar { min-height: calc(68px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }
}

@media (max-width: 620px) {
  .km-market-hero { grid-template-columns: 1fr; }
  .km-market-hero__tiles { position: absolute; left: 10px; bottom: 8px; width: 92px; opacity: .46; }
  .km-market-hero__tiles .km-market-tile { min-height: 36px; }
  .km-market-hero__copy { padding-left: 48px; }
  .km-market-hero p { font-size: 14px; }
  .km-market-filter-disclosure .km-market-categories { grid-template-columns: 1fr; }
  .km-shop-products .products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px !important; }
  .km-shop-products .km-product-card__thumb { height: 156px; padding: 13px; }
  .km-shop-products .km-product-card__body { padding: 12px; }
  .km-shop-products .km-product-card__title { min-height: 48px; font-size: 13px; }
  .km-shop-products .km-product-card__price { font-size: 14px; }
  .km-shop-products .km-product-card__footer .button { padding-inline: 6px !important; font-size: 12px !important; }
  .km-account-welcome__intro { min-height: 0; padding: 32px 24px 76px; }
  .km-account-welcome__intro h1 { font-size: 2.25rem; }
  .km-account-welcome__intro ul { grid-template-columns: 1fr; margin-top: 24px; }
  .km-account-welcome__intro li { min-height: 44px; flex-direction: row; align-items: center; }
  .km-account-welcome .u-columns { grid-template-columns: 1fr; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation { padding: 10px; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table thead { display: none; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tbody,
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tr,
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td { display: block; width: 100%; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tr { margin-bottom: 12px; padding: 10px; border: 1px solid #dce8e6; border-radius: 12px 5px 12px 5px; background: #fbfdfc; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 14px; padding: 8px; border: 0; border-bottom: 1px solid #e3eceb; text-align: left !important; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td:last-child { border-bottom: 0; }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td::before { content: attr(data-title); color: #4f6664; font-size: 12px; font-weight: 820; text-align: right; }
  .km-footer-cta__panel { padding: 28px 22px; }
  .km-footer-cta__actions { align-items: stretch; flex-direction: column; }
  .km-footer-cta__actions .km-button { justify-content: center; }
  .km-footer__grid { grid-template-columns: 1fr; gap: 0; }
  .km-footer__brand-story { max-width: none; padding-bottom: 24px; }
  .km-footer__group { border-top: 1px solid #d5e6e4; }
  .km-footer__group summary { margin: 0; cursor: pointer; }
  .km-footer__group summary > span { position: relative; display: block; width: 24px; height: 24px; }
  .km-footer__group summary > span::before,
  .km-footer__group summary > span::after { content: ""; position: absolute; top: 11px; left: 5px; width: 14px; height: 2px; background: var(--km-sun-ink); transition: transform .18s ease; }
  .km-footer__group summary > span::after { transform: rotate(90deg); }
  .km-footer__group[open] summary > span::after { transform: rotate(0); }
  .km-footer__group-content { padding: 2px 4px 15px; }
  .km-footer__bottom { align-items: flex-start; flex-direction: column; gap: 2px; }
}

@media (max-width: 390px) {
  .km-market-hero { padding: 22px 17px; }
  .km-market-hero__copy { padding-left: 32px; }
  .km-market-hero__tiles { left: -5px; }
  .km-market-toolbar__order { align-items: stretch; flex-direction: column; }
  .km-shop-products .products { gap: 8px !important; }
  .km-shop-products .km-product-card__thumb { height: 142px; }
  .km-shop-products .km-product-card__body { padding: 10px; }
  .km-account-welcome__forms { padding: 12px; }
  .km-account-welcome .u-column1,
  .km-account-welcome .u-column2 { padding: 17px !important; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-content { padding: 16px; }
  .km-footer-cta__panel { padding-inline: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .km-wishlist-drawer__close,
  .km-market-categories a,
  .km-market-price__submit,
  .km-shop-products .km-product-card,
  .km-shop-products .km-product-card::after,
  .km-footer li a::before,
  .km-footer__group summary > span::after,
  .km-support-simple { transition: none !important; }
}

/* Tablet and phone header rhythm: equal safe edges and breathable controls. */
@media (max-width: 782px) {
  .km-header,
  .km-header.is-scrolled { min-height: 72px; }
  .km-header__row,
  .km-header.is-scrolled .km-header__row {
    width: 100%;
    max-width: var(--km-container);
    min-height: 72px;
    padding-inline: clamp(16px, 3.125vw, 24px);
    gap: 8px;
  }
  .km-header .km-actions { gap: 4px; }
}

/* ========================================================================== 
   About and contact — warm editorial care ledger
   ========================================================================== */
.km-editorial-page {
  --km-ledger-clay: #b95845;
  --km-ledger-clay-dark: #813b2e;
  --km-ledger-paper: #fff7ea;
  --km-ledger-ink: #102322;
  overflow: hidden;
  background: #fff;
  color: #334b49;
}
.km-editorial-page .km-ledger-eyebrow {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 12px;
  color: var(--km-ledger-clay-dark);
  font-size: 13px;
  font-weight: 850;
}
.km-editorial-page .km-ledger-eyebrow::after {
  content: "";
  width: 44px;
  height: 1px;
  background: currentColor;
  opacity: .45;
}
.km-editorial-page .km-ledger-eyebrow b {
  color: var(--km-primary-deep);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.km-editorial-page h1,
.km-editorial-page h2,
.km-editorial-page h3 { color: var(--km-ledger-ink); }
.km-editorial-page h1 {
  margin: 14px 0 18px;
  font-size: clamp(2.8rem, 5.4vw, 5.4rem);
  font-weight: 940;
  letter-spacing: -.055em;
  line-height: 1.17;
}
.km-editorial-page h2 {
  margin: 12px 0 18px;
  font-size: clamp(1.9rem, 3.25vw, 3.35rem);
  font-weight: 920;
  letter-spacing: -.045em;
  line-height: 1.28;
}
.km-ledger-hero {
  padding: clamp(34px, 5vw, 72px) 0 clamp(40px, 6vw, 88px);
  background: var(--km-ledger-paper);
}
.km-ledger-hero__grid {
  display: grid;
  grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(34px, 6.5vw, 96px);
}
.km-ledger-hero__copy { position: relative; z-index: 2; }
.km-ledger-hero__copy > p {
  max-width: 610px;
  margin: 0;
  color: #465c59;
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.95;
}
.km-ledger-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 22px;
  margin-top: 28px;
}
.km-ledger-hero__actions .km-button { min-height: 50px; padding-inline: 24px; }
.km-ledger-hero__visual {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 0 0 30px 32px;
}
.km-ledger-hero__visual picture {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 7px 34px 7px 34px;
  background: var(--km-sun-aqua);
}
.km-ledger-hero__visual picture::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(16, 35, 34, .1);
  border-radius: inherit;
  pointer-events: none;
}
.km-ledger-hero__visual img {
  width: 100%;
  min-height: 390px;
  aspect-ratio: 1.48 / 1;
  object-fit: cover;
  object-position: 62% center;
}
.km-ledger-hero__visual figcaption {
  position: absolute;
  right: -1px;
  bottom: 0;
  z-index: 2;
  min-width: 220px;
  padding: 12px 18px;
  border-right: 4px solid var(--km-sun-apricot);
  background: #fff;
  color: var(--km-ledger-ink);
  font-size: 13px;
  font-weight: 850;
}
.km-trust-seal {
  position: absolute;
  bottom: 2px;
  left: 0;
  z-index: 3;
  display: flex;
  width: 132px;
  height: 132px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px solid rgba(16, 35, 34, .18);
  border-radius: 50%;
  background: var(--km-sun-lime);
  color: var(--km-ledger-ink);
  box-shadow: 0 8px 0 rgba(16, 35, 34, .06);
  transform: rotate(-5deg);
}
.km-trust-seal::before,
.km-trust-seal::after { content: "•"; position: absolute; top: 50%; font-size: 20px; transform: translateY(-50%); }
.km-trust-seal::before { right: 12px; }
.km-trust-seal::after { left: 12px; }
.km-trust-seal .km-icon { width: 24px; height: 24px; margin-bottom: 5px; color: var(--km-primary-deep); }
/* The store name spans two lines inside the round seal. */
.km-trust-seal b { max-width: 72%; font-size: 13px; line-height: 1.35; text-align: center; }
.km-trust-seal small { font-size: 9px; font-weight: 700; }

.km-proof-strip { background: var(--km-primary-deep); color: #fff; }
.km-proof-strip ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.km-proof-strip li {
  display: grid;
  min-height: 116px;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 13px;
  padding: 24px clamp(16px, 2.5vw, 34px);
  border-left: 1px solid rgba(255, 255, 255, .17);
}
.km-proof-strip li:last-child { border-left: 0; }
.km-proof-strip li span { color: #9ed8d5; font-size: 12px; font-weight: 900; }
.km-proof-strip li strong { color: #fff; font-size: 15px; font-weight: 800; line-height: 1.65; }

.km-ledger-story { background: #fff; }
.km-ledger-story__grid {
  display: grid;
  grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr);
  align-items: start;
  gap: clamp(40px, 8vw, 120px);
}
.km-ledger-story header { position: sticky; top: 116px; }
.km-ledger-story__paper {
  position: relative;
  padding: clamp(28px, 4.5vw, 60px);
  border-top: 1px solid #dec9b3;
  border-bottom: 1px solid #dec9b3;
  background: var(--km-ledger-paper);
}
.km-ledger-story__paper::before {
  content: "“";
  position: absolute;
  top: 5px;
  left: 24px;
  color: var(--km-sun-apricot);
  font-family: Georgia, serif;
  font-size: 96px;
  line-height: 1;
  opacity: .65;
}
.km-ledger-story blockquote {
  position: relative;
  z-index: 1;
  margin: 0 0 30px;
  padding: 0 0 26px;
  border-bottom: 1px solid #e6d8c8;
  color: var(--km-ledger-ink);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 850;
  line-height: 1.8;
}
.km-page-editable-content { color: #4c5e5b; font-size: 16px; line-height: 2; }
.km-page-editable-content > :first-child { margin-top: 0; }
.km-page-editable-content > :last-child { margin-bottom: 0; }
.km-page-editable-content h2,
.km-page-editable-content h3 { margin-block: 24px 10px; font-size: clamp(1.2rem, 2vw, 1.55rem); }
.km-page-editable-content a { color: var(--km-primary-deep); text-decoration: underline; text-underline-offset: 4px; }

.km-principles { border-top: 1px solid var(--km-line); background: #f8fbfa; }
.km-principles__head { display: grid; grid-template-columns: .65fr 1.35fr; align-items: end; gap: 30px; margin-bottom: 42px; }
.km-principles__head h2 { max-width: 720px; margin: 0; }
.km-principles__list { display: grid; margin: 0; padding: 0; list-style: none; }
.km-principles__list li {
  display: grid;
  min-height: 164px;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  gap: clamp(20px, 4vw, 60px);
  padding: 26px clamp(20px, 4vw, 52px);
  border-top: 1px solid #cddfdd;
}
.km-principles__list li:nth-child(odd) { width: 88%; background: #fff; }
.km-principles__list li:nth-child(even) { width: 88%; margin-right: auto; background: var(--km-sun-aqua); }
.km-principles__list li > span { color: var(--km-ledger-clay); font-size: clamp(1.8rem, 4vw, 3.4rem); font-weight: 300; font-variant-numeric: tabular-nums; }
.km-principles__list h3 { margin: 0 0 5px; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.km-principles__list p { max-width: 770px; margin: 0; color: #536764; font-size: 15px; line-height: 1.9; }

.km-commitment-band { padding: 0 0 clamp(64px, 8vw, 112px); background: #f8fbfa; }
.km-commitment-band__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.15fr .95fr auto;
  align-items: center;
  gap: clamp(28px, 4vw, 64px);
  padding: clamp(30px, 5vw, 64px);
  overflow: hidden;
  border-radius: 30px 8px 30px 8px;
  background: var(--km-ledger-ink);
  color: #fff;
}
.km-commitment-band h2 { margin-bottom: 0; color: #fff; font-size: clamp(1.8rem, 3vw, 2.85rem); }
.km-commitment-band .km-ledger-eyebrow { color: #ffcf9d; }
.km-commitment-band .km-ledger-eyebrow b { color: #96d5d1; }
.km-commitment-band ol { margin: 0; padding: 0; list-style: none; }
.km-commitment-band li { display: flex; min-height: 42px; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.14); color: #dce8e6; font-size: 13px; font-weight: 700; }
.km-commitment-band li b { color: var(--km-sun-apricot); }
.km-commitment-band .km-button { border-color: var(--km-sun-coral); background: var(--km-sun-coral); color: #35140f !important; white-space: nowrap; }
.km-commitment-band .km-button:hover { border-color: #e87361; background: #e87361; }

/* Contact hero and channels. */
.km-contact-hero { padding: clamp(42px, 6vw, 84px) 0; background: var(--km-sun-aqua); }
.km-contact-hero__grid { display: grid; grid-template-columns: minmax(320px, .9fr) minmax(360px, 1.1fr); align-items: center; gap: clamp(38px, 8vw, 110px); }
.km-contact-hero__copy > p { max-width: 610px; margin: 0 0 28px; color: #45605d; font-size: clamp(15px,1.3vw,18px); line-height: 1.95; }
.km-contact-hero__copy .km-button { min-height: 50px; }
.km-contact-orbit {
  position: relative;
  display: grid;
  width: min(100%, 520px);
  min-height: 390px;
  place-items: center;
  justify-self: end;
}
.km-contact-orbit__ring { position: absolute; width: 326px; height: 326px; border: 1px solid #84c4c0; border-radius: 50%; }
.km-contact-orbit__ring::before,
.km-contact-orbit__ring::after { content: ""; position: absolute; border-radius: 50%; }
.km-contact-orbit__ring::before { inset: 30px; border: 1px dashed #9ebebc; }
.km-contact-orbit__ring::after { inset: 76px; border: 28px solid var(--km-ledger-paper); }
.km-contact-orbit__center { position: relative; z-index: 2; display: flex; width: 146px; height: 146px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; border: 1px solid #bfdfdc; border-radius: 50%; background: #fff; color: var(--km-primary-deep); box-shadow: 0 12px 0 rgba(16,35,34,.06); }
.km-contact-orbit__center .km-icon { width: 35px; height: 35px; }
.km-contact-orbit__center b { color: var(--km-ledger-ink); font-size: 14px; }
.km-contact-orbit i { position: absolute; z-index: 3; display: grid; width: 62px; height: 62px; place-items: center; border-radius: 14px 4px 14px 4px; box-shadow: 0 8px 18px rgba(16,35,34,.09); }
.km-contact-orbit i .km-icon { width: 25px; height: 25px; }
.km-contact-orbit__phone { top: 34px; right: 54px; background: var(--km-sun-coral); color: #35140f; transform: rotate(5deg); }
.km-contact-orbit__mail { bottom: 38px; left: 54px; background: var(--km-sun-lime); color: var(--km-ledger-ink); transform: rotate(-5deg); }
.km-contact-orbit > small { position: absolute; right: 20px; bottom: 0; color: #52706d; font-size: 11px; font-weight: 800; letter-spacing: .07em; }

.km-contact-channels {
  display: block;
  grid-template-columns: none;
  gap: 0;
  margin-bottom: 0;
  padding: clamp(44px, 6vw, 76px) 0;
  background: #fff;
}
.km-contact-channels header { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 32px; }
.km-contact-channels header h2 { max-width: 700px; margin: 0; }
.km-contact-channels__list { display: grid; grid-template-columns: .82fr 1.25fr 1fr; border-block: 1px solid var(--km-line-strong); }
.km-contact-channels__list > * { display: grid; min-width: 0; min-height: 190px; align-content: start; gap: 8px; padding: 32px clamp(20px,3vw,42px); border-left: 1px solid var(--km-line); color: var(--km-ledger-ink); }
.km-contact-channels__list > *:last-child { border-left: 0; }
.km-contact-channels__list > a:hover { background: var(--km-ledger-paper); color: var(--km-ledger-ink); }
.km-contact-channels__list > * > span { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 11px; border-radius: 13px 4px 13px 4px; background: var(--km-sun-aqua); color: var(--km-primary-deep); }
.km-contact-channels__list > *:nth-child(2) > span { background: var(--km-ledger-paper); color: var(--km-ledger-clay-dark); }
.km-contact-channels__list > *:nth-child(3) > span { background: #fff0ec; color: var(--km-ledger-clay-dark); }
.km-contact-channels__list small { color: #667b78; font-size: 12px; font-weight: 800; }
.km-contact-channels__list strong { font-size: 15px; font-weight: 850; line-height: 1.75; }

.km-contact-workspace { border-top: 1px solid var(--km-line); background: #f7fbfa; }
.km-contact-workspace__grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(310px,.7fr); align-items: stretch; gap: 0; }
.km-contact-form-wrap { padding: clamp(28px,5vw,64px); border: 1px solid #d2e2e0; border-left: 0; border-radius: 7px 0 0 28px; background: #fff; }
.km-contact-form-wrap header > p { max-width: 610px; margin: -7px 0 28px; color: #5c716e; }
.km-contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.km-contact-form__field { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.km-contact-form__field--wide { grid-column: 1 / -1; }
.km-contact-form label { color: var(--km-ledger-ink); font-size: 13px; font-weight: 820; }
.km-contact-form label span { color: var(--km-ledger-clay); }
.km-contact-form input,
.km-contact-form select,
.km-contact-form textarea { width: 100%; min-height: 50px; padding: 11px 14px; border: 1px solid #bfcfcd; border-radius: 8px; background: #fbfdfc; color: var(--km-ledger-ink); }
.km-contact-form textarea { min-height: 148px; resize: vertical; }
.km-contact-form input:focus,
.km-contact-form select:focus,
.km-contact-form textarea:focus { border-color: var(--km-primary-deep); outline: 3px solid rgba(15,136,132,.16); outline-offset: 1px; background: #fff; }
.km-contact-form__field > small { color: #687b78; font-size: 11px; }
/* Honeypot stays in place and clipped; a far off-screen offset widens the mobile layout viewport. */
.km-contact-form__trap { position: absolute !important; inset-inline-start: 0 !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; opacity: 0 !important; pointer-events: none !important; }
.km-contact-form__submit { display: flex; grid-column: 1 / -1; align-items: center; gap: 16px; margin-top: 4px; }
.km-contact-form__submit small { max-width: 300px; color: #687b78; font-size: 11px; line-height: 1.7; }
.km-contact-notice { display: flex; align-items: flex-start; gap: 11px; margin: 0 0 24px; padding: 14px 16px; border-right: 4px solid; }
.km-contact-notice .km-icon { width: 21px; height: 21px; margin-top: 2px; }
.km-contact-notice p { margin: 0; font-size: 13px; font-weight: 750; }
.km-contact-notice--success { border-color: var(--km-primary-deep); background: var(--km-sun-aqua); color: #164c49; }
.km-contact-notice--error { border-color: var(--km-danger); background: var(--km-danger-soft); color: #82132f; }

.km-contact-info { position: relative; padding: clamp(30px,4vw,54px); overflow: hidden; border-radius: 0 28px 7px 0; background: var(--km-ledger-ink); color: #d8e5e3; }
.km-contact-info::after { content: ""; position: absolute; left: -40px; bottom: -55px; width: 160px; height: 120px; border-radius: 25px 7px 25px 7px; background: var(--km-sun-coral); transform: rotate(-12deg); opacity: .75; }
.km-contact-info__number { display: block; color: #91d3cf; font-size: clamp(3rem,6vw,6.5rem); font-weight: 200; line-height: 1; }
.km-contact-info h2 { position: relative; z-index: 1; margin-top: 20px; color: #fff; font-size: clamp(1.65rem,2.5vw,2.45rem); }
.km-contact-info > p { position: relative; z-index: 1; color: #c2d3d1; font-size: 14px; line-height: 1.9; }
.km-contact-info dl { position: relative; z-index: 1; margin: 30px 0 0; }
.km-contact-info dl div { padding: 16px 0; border-top: 1px solid rgba(255,255,255,.15); }
.km-contact-info dt { color: #8faaa7; font-size: 11px; font-weight: 800; }
.km-contact-info dd { margin: 5px 0 0; color: #fff; font-size: 13px; font-weight: 750; line-height: 1.8; }
.km-contact-info dd a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.km-contact-info__editable { position: relative; z-index: 1; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.15); color: #d8e5e3; font-size: 13px; }
.km-contact-info__editable > :first-child { margin-top: 0; }
.km-contact-info__editable > :last-child { margin-bottom: 0; }
.km-contact-info__editable > h1:first-child,
.km-contact-info__editable > h2:first-child { display: none; }
.km-contact-info__editable h2,
.km-contact-info__editable h3 { margin-block: 20px 8px; color: #fff; font-size: 1.15rem; }
.km-contact-info__editable a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1024px) {
  .km-ledger-hero__grid,
  .km-contact-hero__grid { grid-template-columns: minmax(280px,.9fr) minmax(0,1.1fr); gap: 34px; }
  .km-editorial-page h1 { font-size: clamp(2.55rem,6.6vw,4.4rem); }
  .km-ledger-hero__visual img { min-height: 340px; }
  .km-trust-seal { width: 112px; height: 112px; }
  .km-proof-strip ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .km-proof-strip li:nth-child(2) { border-left: 0; }
  .km-proof-strip li:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.17); }
  .km-commitment-band__inner { grid-template-columns: 1fr 1fr; }
  .km-commitment-band .km-button { justify-self: start; }
  .km-contact-orbit { min-height: 330px; transform: scale(.88); transform-origin: center; }
  .km-contact-workspace__grid { grid-template-columns: minmax(0,1.25fr) minmax(290px,.75fr); }
  .km-contact-form-wrap { padding: 34px; }
}

@media (max-width: 782px) {
  .km-ledger-hero,
  .km-contact-hero { padding-block: 34px 46px; }
  .km-ledger-hero__grid,
  .km-contact-hero__grid { grid-template-columns: 1fr; }
  .km-editorial-page h1 { max-width: 690px; font-size: clamp(2.35rem,11vw,4rem); }
  .km-ledger-hero__visual { padding-left: 18px; }
  .km-ledger-hero__visual img { min-height: 300px; aspect-ratio: 1.5 / 1; }
  .km-ledger-hero__visual figcaption { min-width: 180px; }
  .km-trust-seal { left: -4px; width: 102px; height: 102px; }
  .km-proof-strip li { min-height: 96px; }
  .km-ledger-story__grid { grid-template-columns: 1fr; gap: 28px; }
  .km-ledger-story header { position: static; }
  .km-principles__head { grid-template-columns: 1fr; gap: 12px; }
  .km-principles__list li:nth-child(n) { width: 100%; margin: 0; }
  .km-commitment-band__inner { grid-template-columns: 1fr; }
  .km-contact-orbit { min-height: 300px; justify-self: center; transform: none; }
  .km-contact-orbit__ring { width: 270px; height: 270px; }
  .km-contact-orbit__phone { top: 20px; right: calc(50% - 155px); }
  .km-contact-orbit__mail { bottom: 20px; left: calc(50% - 155px); }
  .km-contact-channels header { align-items: flex-start; flex-direction: column; gap: 8px; }
  .km-contact-channels__list { grid-template-columns: 1fr; }
  .km-contact-channels__list > * { min-height: 0; grid-template-columns: 48px 1fr; align-items: center; gap: 2px 16px; padding: 22px 16px; border-left: 0; border-bottom: 1px solid var(--km-line); }
  .km-contact-channels__list > *:last-child { border-bottom: 0; }
  .km-contact-channels__list > * > span { grid-row: 1 / 3; margin: 0; }
  .km-contact-workspace__grid { grid-template-columns: 1fr; }
  .km-contact-form-wrap { border: 1px solid #d2e2e0; border-bottom: 0; border-radius: 7px 22px 0 0; }
  .km-contact-info { border-radius: 0 0 7px 22px; }
}

@media (max-width: 520px) {
  .km-editorial-page .km-ledger-eyebrow { gap: 8px; font-size: 12px; }
  .km-editorial-page .km-ledger-eyebrow::after { width: 24px; }
  .km-ledger-hero__actions { align-items: stretch; flex-direction: column; }
  .km-ledger-hero__actions .km-button,
  .km-ledger-hero__actions .km-text-link { width: 100%; justify-content: center; }
  .km-ledger-hero__visual { padding: 0 0 32px 10px; }
  .km-ledger-hero__visual img { min-height: 250px; aspect-ratio: 1.15 / 1; }
  .km-ledger-hero__visual figcaption { right: 0; max-width: calc(100% - 88px); min-width: 0; font-size: 11px; }
  .km-trust-seal { left: -3px; bottom: -2px; width: 88px; height: 88px; }
  .km-trust-seal::before,
  .km-trust-seal::after { display: none; }
  .km-trust-seal .km-icon { width: 19px; height: 19px; }
  .km-trust-seal b { max-width: 78%; font-size: 10px; line-height: 1.25; }
  .km-trust-seal small { font-size: 8px; }
  .km-proof-strip ul { grid-template-columns: 1fr; }
  .km-proof-strip li { min-height: 72px; border-left: 0; border-bottom: 1px solid rgba(255,255,255,.17); }
  .km-proof-strip li:last-child { border-bottom: 0; }
  .km-ledger-story__paper { padding: 24px 20px; }
  .km-ledger-story__paper::before { left: 12px; font-size: 70px; }
  .km-principles__list li { min-height: 0; grid-template-columns: 42px 1fr; gap: 12px; padding: 24px 14px; }
  .km-principles__list li > span { font-size: 1.5rem; }
  .km-commitment-band__inner { padding: 26px 20px; border-radius: 20px 6px 20px 6px; }
  .km-commitment-band .km-button { width: 100%; }
  .km-contact-orbit { min-height: 260px; transform: scale(.82); margin-block: -24px; }
  .km-contact-form-wrap { padding: 26px 18px; }
  .km-contact-form { grid-template-columns: 1fr; gap: 16px; }
  .km-contact-form__field--wide { grid-column: auto; }
  .km-contact-form__submit { grid-column: auto; align-items: stretch; flex-direction: column; }
  .km-contact-form__submit .km-button { width: 100%; }
  .km-contact-form__submit small { max-width: none; }
  .km-contact-info { padding: 28px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .km-contact-channels__list > *,
  .km-ledger-hero__actions a { transition: none !important; }
}

/* Wishlist & compare toggles: product cards and the single product gallery corner */
.km-card-action-btn.km-wishlist-toggle.is-active { border-color: var(--km-danger); background: var(--km-danger); color: #fff; }
.km-card-action-btn.km-compare-toggle.is-active { border-color: var(--km-primary-deep); background: var(--km-primary-deep); color: #fff; }
.km-product-gallery-actions {
  position: absolute;
  top: 72px;
  left: 32px;
  z-index: 6;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.km-product-gallery-actions .km-card-action-btn { width: 42px; height: 42px; }
.km-product-gallery-actions .km-card-action-btn .km-icon { width: 18px; height: 18px; }

/* AJAX add to cart opens the cart drawer, so WooCommerce's extra "view cart" link is redundant */
.km-product-card .added_to_cart,
.km-compare-table .added_to_cart { display: none !important; }
.km-button.loading { opacity: .65; pointer-events: none; }

/* Comparison dock and table */
.km-compare-dock { visibility: hidden; transition: transform .3s var(--km-ease), visibility .3s; }
.km-compare-dock.is-visible { visibility: visible; }
.km-compare-dock__items { flex: 1; min-width: 0; }
.km-compare-dock__actions { flex-shrink: 0; }
.km-compare-dock__actions .km-button,
.km-compare-clear-btn { white-space: nowrap; }
.km-compare-modal__panel { width: min(1080px, 94vw); }
.km-compare-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.km-compare-table { min-width: 560px; border-collapse: separate; border-spacing: 0; }
.km-compare-table th,
.km-compare-table td { min-width: 170px; border: 0; border-bottom: 1px solid var(--km-line); vertical-align: top; line-height: 1.8; }
.km-compare-table thead th { background: #fff; text-align: center; }
.km-compare-table tbody th,
.km-compare-table .km-compare-table__label { position: sticky; right: 0; z-index: 1; width: 120px; min-width: 120px; background: var(--km-tint); text-align: right; }
.km-compare-product { display: grid; gap: 8px; justify-items: center; color: var(--km-ink); text-align: center; }
.km-compare-product img { width: 88px; height: 88px; border-radius: 8px; background: #fff; object-fit: contain; }
.km-compare-product strong { font-size: .86rem; line-height: 1.6; }
.km-compare-table .km-compare-product__remove { display: block; margin: 8px auto 0; padding: 2px 8px; color: var(--km-muted); font: inherit; font-size: .74rem; font-weight: 700; text-decoration: underline; }
.km-compare-stock { font-weight: 800; }
.km-compare-stock.is-in { color: var(--km-primary-deep); }
.km-compare-stock.is-out { color: #a8392d; }
.km-compare-empty { color: var(--km-muted); }
.km-compare-table .km-button { min-height: 38px; padding: 6px 14px; font-size: .8rem; white-space: nowrap; }
.km-compare-status { margin: 0; padding: 32px 16px; color: var(--km-muted); text-align: center; }

@media (max-width: 782px) {
  body:has(.km-mobile-toolbar) .km-compare-dock { bottom: calc(68px + env(safe-area-inset-bottom)); }
  .km-compare-dock { padding: 10px 12px; }
  .km-compare-dock__inner { gap: 10px; }
  .km-compare-item-chip { padding: 4px 8px; }
  .km-compare-item-chip span { display: none; }
  .km-compare-dock__actions .km-button { min-height: 40px; padding: 8px 12px; font-size: .78rem; }
  .km-product-gallery-actions { top: 64px; left: 24px; }

  /* Home best sellers and amazing offers scroll sideways instead of stacking eight cards */
  .km-home-rail .woocommerce ul.products,
  .km-home-rail ul.products {
    grid-template-columns: none !important;
    grid-auto-flow: column;
    grid-auto-columns: 46%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .km-home-rail ul.products::-webkit-scrollbar { display: none; }
  .km-home-rail ul.products > li { scroll-snap-align: start; }
}

/* Keep page content from widening the layout viewport; otherwise fixed drawers open off-screen on mobile. */
.km-site-content,
.home .km-site-content { overflow-x: clip; }
